@kizahasi/util
Advanced tools
Comparing version 0.2.0 to 0.2.1
@@ -26,3 +26,3 @@ import { GroupJoinResult } from './types'; | ||
toMap(): Map<TKey1, Map<TKey2, TValue>>; | ||
toStringRecord(createStringKey1: (first: TKey1) => string, createStringKey2: (second: TKey2) => string): Record<string, Record<string, TValue>>; | ||
toStringRecord(createStringKey1: (first: TKey1) => string, createStringKey2: (second: TKey2) => string): Map<string, Record<string, TValue>>; | ||
get size(): number; | ||
@@ -29,0 +29,0 @@ get isEmpty(): boolean; |
import { DualKey, DualKeyMap } from './dualKeyMap'; | ||
export declare const mapToRecord: <TValue>(source: Map<string, TValue>) => Record<string, TValue>; | ||
export declare const chooseRecord: <TSource, TResult>(source: Record<string, TSource | undefined>, chooser: (element: TSource) => TResult | undefined) => Record<string, TResult>; | ||
@@ -16,3 +17,2 @@ export declare const chooseDualKeyRecord: <TSource, TResult>(source: Record<string, Record<string, TSource | undefined> | undefined>, chooser: (element: TSource) => TResult | undefined) => Record<string, Record<string, TResult>>; | ||
export declare const recordToDualKeyMap: <T>(source: Record<string, Record<string, T | undefined> | undefined>) => DualKeyMap<string, string, T>; | ||
export declare const mapToRecord: <TValue>(source: Map<string, TValue>) => Record<string, TValue>; | ||
export declare const recordForEach: <T>(source: Record<string, T | undefined>, action: (value: T, key: string) => void) => void; | ||
@@ -19,0 +19,0 @@ export declare const recordForEachAsync: <T>(source: Record<string, T | undefined>, action: (value: T, key: string) => Promise<void>) => Promise<void>; |
@@ -982,2 +982,214 @@ 'use strict'; | ||
var mapToRecord = function mapToRecord(source) { | ||
var result = {}; | ||
source.forEach(function (value, key) { | ||
if (result[key] !== undefined) { | ||
// プロトタイプ汚染などを防いでいる。ただ、これで十分なのだろうか? | ||
throw new Error(key + " already exists"); | ||
} | ||
result[key] = value; | ||
}); | ||
return result; | ||
}; | ||
var chooseRecord = function chooseRecord(source, chooser) { | ||
var result = new Map(); | ||
for (var key in source) { | ||
var element = source[key]; | ||
if (element !== undefined) { | ||
var newElement = chooser(element); | ||
if (newElement !== undefined) { | ||
result.set(key, newElement); | ||
} | ||
} | ||
} | ||
return mapToRecord(result); | ||
}; | ||
var chooseDualKeyRecord = function chooseDualKeyRecord(source, chooser) { | ||
return chooseRecord(source, function (inner) { | ||
return inner === undefined ? undefined : chooseRecord(inner, function (value) { | ||
return chooser(value); | ||
}); | ||
}); | ||
}; | ||
var mapRecord = function mapRecord(source, mapping) { | ||
var result = new Map(); | ||
for (var key in source) { | ||
var element = source[key]; | ||
if (element !== undefined) { | ||
var newElement = mapping(element); | ||
result.set(key, newElement); | ||
} | ||
} | ||
return mapToRecord(result); | ||
}; | ||
var mapDualKeyRecord = function mapDualKeyRecord(source, mapping) { | ||
return chooseRecord(source, function (inner) { | ||
return inner === undefined ? undefined : mapRecord(inner, function (value) { | ||
return mapping(value); | ||
}); | ||
}); | ||
}; | ||
var recordToArray = function recordToArray(source) { | ||
var result = []; | ||
for (var key in source) { | ||
var value = source[key]; | ||
if (value !== undefined) { | ||
result.push({ | ||
key: key, | ||
value: value | ||
}); | ||
} | ||
} | ||
return result; | ||
}; | ||
var recordToMap = function recordToMap(source) { | ||
var result = new Map(); | ||
for (var key in source) { | ||
var value = source[key]; | ||
if (value !== undefined) { | ||
result.set(key, value); | ||
} | ||
} | ||
return result; | ||
}; | ||
var dualKeyRecordToDualKeyMap = function dualKeyRecordToDualKeyMap(source) { | ||
var result = new DualKeyMap(); | ||
for (var first in source) { | ||
var innerRecord = source[first]; | ||
if (innerRecord !== undefined) { | ||
for (var second in innerRecord) { | ||
var value = innerRecord[second]; | ||
if (value !== undefined) { | ||
result.set({ | ||
first: first, | ||
second: second | ||
}, value); | ||
} | ||
} | ||
} | ||
} | ||
return result; | ||
}; | ||
/** | ||
* @deprecated Use dualKeyRecordToDualKeyMap instead. | ||
*/ | ||
var recordToDualKeyMap = dualKeyRecordToDualKeyMap; | ||
var recordForEach = function recordForEach(source, action) { | ||
for (var key in source) { | ||
var value = source[key]; | ||
if (value === undefined) { | ||
continue; | ||
} | ||
action(value, key); | ||
} | ||
}; | ||
var recordForEachAsync = /*#__PURE__*/function () { | ||
var _ref = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee(source, action) { | ||
var key, value; | ||
return runtime_1.wrap(function _callee$(_context) { | ||
while (1) { | ||
switch (_context.prev = _context.next) { | ||
case 0: | ||
_context.t0 = runtime_1.keys(source); | ||
case 1: | ||
if ((_context.t1 = _context.t0()).done) { | ||
_context.next = 10; | ||
break; | ||
} | ||
key = _context.t1.value; | ||
value = source[key]; | ||
if (!(value === undefined)) { | ||
_context.next = 6; | ||
break; | ||
} | ||
return _context.abrupt("continue", 1); | ||
case 6: | ||
_context.next = 8; | ||
return action(value, key); | ||
case 8: | ||
_context.next = 1; | ||
break; | ||
case 10: | ||
case "end": | ||
return _context.stop(); | ||
} | ||
} | ||
}, _callee); | ||
})); | ||
return function recordForEachAsync(_x, _x2) { | ||
return _ref.apply(this, arguments); | ||
}; | ||
}(); | ||
var isRecordEmpty = function isRecordEmpty(source) { | ||
for (var key in source) { | ||
var value = source[key]; | ||
if (value !== undefined) { | ||
return false; | ||
} | ||
} | ||
return true; | ||
}; | ||
var dualKeyRecordForEach = function dualKeyRecordForEach(source, action) { | ||
for (var first in source) { | ||
var inner = source[first]; | ||
if (inner === undefined) { | ||
continue; | ||
} | ||
for (var second in inner) { | ||
var value = inner[second]; | ||
if (value === undefined) { | ||
continue; | ||
} | ||
action(value, { | ||
first: first, | ||
second: second | ||
}); | ||
} | ||
} | ||
}; | ||
var dualKeyRecordFind = function dualKeyRecordFind(source, key) { | ||
var inner = source[key.first]; | ||
if (inner === undefined) { | ||
return undefined; | ||
} | ||
return inner[key.second]; | ||
}; | ||
var _Symbol$iterator; | ||
@@ -1192,10 +1404,10 @@ var dualKeyToString = function dualKeyToString(source) { | ||
_proto.toStringRecord = function toStringRecord(createStringKey1, createStringKey2) { | ||
var result = {}; | ||
var result = new Map(); | ||
this._core.forEach(function (inner, first) { | ||
var innerRecord = {}; | ||
var innerRecord = new Map(); | ||
inner.forEach(function (value, second) { | ||
innerRecord[createStringKey2(second)] = value; | ||
innerRecord.set(createStringKey2(second), value); | ||
}); | ||
result[createStringKey1(first)] = innerRecord; | ||
result.set(createStringKey1(first), mapToRecord(innerRecord)); | ||
}); | ||
@@ -1825,209 +2037,2 @@ | ||
var chooseRecord = function chooseRecord(source, chooser) { | ||
var result = {}; | ||
for (var key in source) { | ||
var element = source[key]; | ||
if (element !== undefined) { | ||
var newElement = chooser(element); | ||
if (newElement !== undefined) { | ||
result[key] = newElement; | ||
} | ||
} | ||
} | ||
return result; | ||
}; | ||
var chooseDualKeyRecord = function chooseDualKeyRecord(source, chooser) { | ||
return chooseRecord(source, function (inner) { | ||
return inner === undefined ? undefined : chooseRecord(inner, function (value) { | ||
return chooser(value); | ||
}); | ||
}); | ||
}; | ||
var mapRecord = function mapRecord(source, mapping) { | ||
var result = {}; | ||
for (var key in source) { | ||
var element = source[key]; | ||
if (element !== undefined) { | ||
var newElement = mapping(element); | ||
result[key] = newElement; | ||
} | ||
} | ||
return result; | ||
}; | ||
var mapDualKeyRecord = function mapDualKeyRecord(source, mapping) { | ||
return chooseRecord(source, function (inner) { | ||
return inner === undefined ? undefined : mapRecord(inner, function (value) { | ||
return mapping(value); | ||
}); | ||
}); | ||
}; | ||
var recordToArray = function recordToArray(source) { | ||
var result = []; | ||
for (var key in source) { | ||
var value = source[key]; | ||
if (value !== undefined) { | ||
result.push({ | ||
key: key, | ||
value: value | ||
}); | ||
} | ||
} | ||
return result; | ||
}; | ||
var recordToMap = function recordToMap(source) { | ||
var result = new Map(); | ||
for (var key in source) { | ||
var value = source[key]; | ||
if (value !== undefined) { | ||
result.set(key, value); | ||
} | ||
} | ||
return result; | ||
}; | ||
var dualKeyRecordToDualKeyMap = function dualKeyRecordToDualKeyMap(source) { | ||
var result = new DualKeyMap(); | ||
for (var first in source) { | ||
var innerRecord = source[first]; | ||
if (innerRecord !== undefined) { | ||
for (var second in innerRecord) { | ||
var value = innerRecord[second]; | ||
if (value !== undefined) { | ||
result.set({ | ||
first: first, | ||
second: second | ||
}, value); | ||
} | ||
} | ||
} | ||
} | ||
return result; | ||
}; | ||
/** | ||
* @deprecated Use dualKeyRecordToDualKeyMap instead. | ||
*/ | ||
var recordToDualKeyMap = dualKeyRecordToDualKeyMap; | ||
var mapToRecord = function mapToRecord(source) { | ||
var result = {}; | ||
source.forEach(function (value, key) { | ||
result[key] = value; | ||
}); | ||
return result; | ||
}; | ||
var recordForEach = function recordForEach(source, action) { | ||
for (var key in source) { | ||
var value = source[key]; | ||
if (value === undefined) { | ||
continue; | ||
} | ||
action(value, key); | ||
} | ||
}; | ||
var recordForEachAsync = /*#__PURE__*/function () { | ||
var _ref = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee(source, action) { | ||
var key, value; | ||
return runtime_1.wrap(function _callee$(_context) { | ||
while (1) { | ||
switch (_context.prev = _context.next) { | ||
case 0: | ||
_context.t0 = runtime_1.keys(source); | ||
case 1: | ||
if ((_context.t1 = _context.t0()).done) { | ||
_context.next = 10; | ||
break; | ||
} | ||
key = _context.t1.value; | ||
value = source[key]; | ||
if (!(value === undefined)) { | ||
_context.next = 6; | ||
break; | ||
} | ||
return _context.abrupt("continue", 1); | ||
case 6: | ||
_context.next = 8; | ||
return action(value, key); | ||
case 8: | ||
_context.next = 1; | ||
break; | ||
case 10: | ||
case "end": | ||
return _context.stop(); | ||
} | ||
} | ||
}, _callee); | ||
})); | ||
return function recordForEachAsync(_x, _x2) { | ||
return _ref.apply(this, arguments); | ||
}; | ||
}(); | ||
var isRecordEmpty = function isRecordEmpty(source) { | ||
for (var key in source) { | ||
var value = source[key]; | ||
if (value !== undefined) { | ||
return false; | ||
} | ||
} | ||
return true; | ||
}; | ||
var dualKeyRecordForEach = function dualKeyRecordForEach(source, action) { | ||
for (var first in source) { | ||
var inner = source[first]; | ||
if (inner === undefined) { | ||
continue; | ||
} | ||
for (var second in inner) { | ||
var value = inner[second]; | ||
if (value === undefined) { | ||
continue; | ||
} | ||
action(value, { | ||
first: first, | ||
second: second | ||
}); | ||
} | ||
} | ||
}; | ||
var dualKeyRecordFind = function dualKeyRecordFind(source, key) { | ||
var inner = source[key.first]; | ||
if (inner === undefined) { | ||
return undefined; | ||
} | ||
return inner[key.second]; | ||
}; | ||
exports.$free = $free; | ||
@@ -2034,0 +2039,0 @@ exports.$system = $system; |
@@ -1,2 +0,2 @@ | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=(e=require("lodash"))&&"object"==typeof e&&"default"in e?e.default:e,r=require("io-ts"),n=function(e){var r=e[0];if(void 0===r)return"root value";var n=r;return t(e).drop(1).forEach((function(e){n=n+"/"+e})),n},o=function(){function e(e,t){if(this.jsonObject=void 0,this.currentPath=void 0,this.jsonObject=e,this.currentPath=t,null==e)throw new Error("jsonObject == null")}e.init=function(t){return new e(t,[])};var t=e.prototype;return t.tryGet=function(t){if("object"==typeof this.jsonObject){var r=this.jsonObject[t];return null==r?r:new e(r,[].concat(this.currentPath,[t]))}},t.get=function(e){var t=this.tryGet(e);if(null==t)throw new Error(n([].concat(this.currentPath,[e]))+" is not object.");return t},t.valueAsString=function(){if("string"==typeof this.jsonObject)return this.jsonObject;throw new Error(n(this.currentPath)+" must be string.")},t.valueAsNullableString=function(){if(null===this.jsonObject||"string"==typeof this.jsonObject)return this.jsonObject;throw new Error(n(this.currentPath)+" must be string or null.")},t.valueAsBoolean=function(){if("boolean"==typeof this.jsonObject)return this.jsonObject;throw new Error(n(this.currentPath)+" must be true or false.")},e}();function i(e,t,r,n,o,i,a){try{var u=e[i](a),c=u.value}catch(e){return void r(e)}u.done?t(c):Promise.resolve(c).then(n,o)}function a(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var a=e.apply(t,r);function u(e){i(a,n,o,u,c,"next",e)}function c(e){i(a,n,o,u,c,"throw",e)}u(void 0)}))}}function u(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function c(e,t,r){return t&&u(e.prototype,t),r&&u(e,r),e}function s(){return(s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function p(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return f(e,void 0);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?f(e,void 0):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var h,l,v=(function(e){var t=function(e){var t=Object.prototype,r=t.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",i=n.asyncIterator||"@@asyncIterator",a=n.toStringTag||"@@toStringTag";function u(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,r){return e[t]=r}}function c(e,t,r,n){var o=Object.create((t&&t.prototype instanceof p?t:p).prototype),i=new S(n||[]);return o._invoke=function(e,t,r){var n="suspendedStart";return function(o,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw i;return{value:void 0,done:!0}}for(r.method=o,r.arg=i;;){var a=r.delegate;if(a){var u=w(a,r);if(u){if(u===f)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var c=s(e,t,r);if("normal"===c.type){if(n=r.done?"completed":"suspendedYield",c.arg===f)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n="completed",r.method="throw",r.arg=c.arg)}}}(e,r,i),o}function s(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}e.wrap=c;var f={};function p(){}function h(){}function l(){}var v={};v[o]=function(){return this};var d=Object.getPrototypeOf,y=d&&d(d(K([])));y&&y!==t&&r.call(y,o)&&(v=y);var m=l.prototype=p.prototype=Object.create(v);function g(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function b(e,t){var n;this._invoke=function(o,i){function a(){return new t((function(n,a){!function n(o,i,a,u){var c=s(e[o],e,i);if("throw"!==c.type){var f=c.arg,p=f.value;return p&&"object"==typeof p&&r.call(p,"__await")?t.resolve(p.__await).then((function(e){n("next",e,a,u)}),(function(e){n("throw",e,a,u)})):t.resolve(p).then((function(e){f.value=e,a(f)}),(function(e){return n("throw",e,a,u)}))}u(c.arg)}(o,i,n,a)}))}return n=n?n.then(a,a):a()}}function w(e,t){var r=e.iterator[t.method];if(void 0===r){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,w(e,t),"throw"===t.method))return f;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return f}var n=s(r,e.iterator,t.arg);if("throw"===n.type)return t.method="throw",t.arg=n.arg,t.delegate=null,f;var o=n.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,f):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,f)}function x(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function j(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function S(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(x,this),this.reset(!0)}function K(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,i=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return i.next=i}}return{next:E}}function E(){return{value:void 0,done:!0}}return h.prototype=m.constructor=l,l.constructor=h,h.displayName=u(l,a,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===h||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,u(e,a,"GeneratorFunction")),e.prototype=Object.create(m),e},e.awrap=function(e){return{__await:e}},g(b.prototype),b.prototype[i]=function(){return this},e.AsyncIterator=b,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise);var a=new b(c(t,r,n,o),i);return e.isGeneratorFunction(r)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},g(m),u(m,a,"Generator"),m[o]=function(){return this},m.toString=function(){return"[object Generator]"},e.keys=function(e){var t=[];for(var r in e)t.push(r);return t.reverse(),function r(){for(;t.length;){var n=t.pop();if(n in e)return r.value=n,r.done=!1,r}return r.done=!0,r}},e.values=K,S.prototype={constructor:S,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(j),!e)for(var t in this)"t"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(r,n){return a.type="throw",a.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=r.call(i,"catchLoc"),c=r.call(i,"finallyLoc");if(u&&c){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(u){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,f):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),f},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),j(r),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;j(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:K(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),f}},e}(e.exports);try{regeneratorRuntime=t}catch(e){Function("r","regeneratorRuntime = r")(t)}}(l={exports:{}}),l.exports);h=Symbol.iterator;var d,y=function(){function e(t){this._core=void 0,this._core=null==t?new Map:e.mapMap(t,(function(e){return e}))}e.mapMap=function(e,t){for(var r,n=new Map,o=p(e);!(r=o()).done;){var i=r.value,a=i[0],u=i[1];if(0!==u.size){for(var c,s=new Map,f=p(u);!(c=f()).done;){var h=c.value,l=h[0];s.set(l,t(h[1],{first:a,second:l}))}n.set(a,s)}}return n},e.create=function(t,r){var n=new e;return n._core=e.mapMap(t instanceof e?t._core:t,r),n},e.ofRecord=function(t){var r=new e;for(var n in t){var o=t[n];if(void 0!==o)for(var i in o){var a=o[i];void 0!==a&&r.set({first:n,second:i},a)}}return r};var t=e.prototype;return t.map=function(t){return e.create(this,t)},t.clone=function(){return e.create(this,(function(e){return e}))},t.get=function(e){var t=e.second,r=this._core.get(e.first);if(void 0!==r)return r.get(t)},t.getByFirst=function(e){return this._core.get(e)},t.set=function(e,t){var r=e.first,n=e.second,o=this._core.get(r);return void 0===o&&(o=new Map,this._core.set(r,o)),o.set(n,t),this},t.delete=function(e){var t=e.first,r=e.second,n=this._core.get(t);if(void 0===n)return!1;var o=n.delete(r);return 0===n.size&&this._core.delete(t),o},t.has=function(e){return void 0!==this.get(e)},t[h]=v.mark((function e(){var t,r,n,o,i,a,u,c,s;return v.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=p(this._core);case 1:if((r=t()).done){e.next=12;break}o=(n=r.value)[0],i=p(n[1]);case 4:if((a=i()).done){e.next=10;break}return c=(u=a.value)[0],s=u[1],e.next=8,[{first:o,second:c},s];case 8:e.next=4;break;case 10:e.next=1;break;case 12:case"end":return e.stop()}}),e,this)})),t.toArray=function(){return Array.from(this)},t.toMap=function(){return e.mapMap(this._core,(function(e){return e}))},t.toStringRecord=function(e,t){var r={};return this._core.forEach((function(n,o){var i={};n.forEach((function(e,r){i[t(r)]=e})),r[e(o)]=i})),r},t.forEach=function(e){for(var t,r=p(this);!(t=r()).done;){var n=t.value;e(n[1],n[0])}},t.reduce=function(e,t){var r=t;return this.forEach((function(t,n){return r=e(r,t,n)})),r},t.toJSON=function(e){return JSON.stringify([].concat(this._core).map((function(t){return[t[0],[].concat(t[1]).map((function(t){var r=t[1];return[t[0],void 0===e?r:e(r)]}))]})))},c(e,[{key:"size",get:function(){return this.toArray().length}},{key:"isEmpty",get:function(){return 0===this.size}}]),e}(),m=function(e,t){var r=new y,n=t.clone();return e.forEach((function(e,t){var o=n.get(t);n.delete(t),r.set(t,void 0!==o?{type:"both",left:e,right:o}:{type:"left",left:e})})),n.forEach((function(e,t){r.set(t,{type:"right",right:e})})),r},g=function(e,t,r){return m(e,m(t,r)).map((function(e){switch(e.type){case"left":return[e.left,void 0,void 0];case"right":case"both":var t=function(){if("both"===e.type)return e.left}();switch(e.right.type){case"left":return[t,e.right.left,void 0];case"right":return[t,void 0,e.right.right];case"both":return[t,e.right.left,e.right.right]}}}))};d=Symbol.iterator;var b,w,x,j=function(){function e(e){this.params=void 0,this._dualKeyMap=void 0,this.params=e,this._dualKeyMap=e.sourceMap instanceof y?e.sourceMap.clone():new y(e.sourceMap)}var t=e.prototype;return t.wrap=function(t){var r=new e(s({},this.params,{sourceMap:void 0}));return r._dualKeyMap=t,r},t.createKey=function(e){return this.params.createKey(e)},t.createDualKey=function(e){return this.params.createDualKey(e)},t.map=function(t){var r=new e(s({},this.params,{sourceMap:void 0}));return r._dualKeyMap=this._dualKeyMap.map(t),r},t.clone=function(){var t=new e(s({},this.params,{sourceMap:void 0}));return t._dualKeyMap=this._dualKeyMap.clone(),t},t.get=function(e){var t=this.params.createDualKey(e);return this._dualKeyMap.get(t)},t.getByFirst=function(e){return this._dualKeyMap.getByFirst(e)},t.set=function(e,t){var r=this.params.createDualKey(e);return this._dualKeyMap.set(r,t),this},t.delete=function(e){var t=this.params.createDualKey(e);return this._dualKeyMap.delete(t)},t.has=function(e){var t=this.params.createDualKey(e);return this._dualKeyMap.has(t)},t[d]=v.mark((function e(){var t,r,n,o,i;return v.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=p(this._dualKeyMap);case 1:if((r=t()).done){e.next=7;break}return o=(n=r.value)[0],i=n[1],e.next=5,[this.params.createKey(o),i];case 5:e.next=1;break;case 7:case"end":return e.stop()}}),e,this)})),t.toArray=function(){return Array.from(this)},t.forEach=function(e){for(var t,r=p(this);!(t=r()).done;){var n=t.value;e(n[1],n[0])}},t.reduce=function(e,t){var r=t;return this.forEach((function(t,n){return r=e(r,t,n)})),r},t.toJSON=function(){return this._dualKeyMap.toJSON()},c(e,[{key:"dualKeyMap",get:function(){return this._dualKeyMap}},{key:"size",get:function(){return this.toArray().length}},{key:"isEmpty",get:function(){return 0===this.size}}]),e}(),S=["1","2","3","4","5"],K=new Set(S),E=["1","2","3","4","5","6","7","8","9","10"],M=new Set(E),_=["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20"],k=new Set(_),O=["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","91","92","93","94","95","96","97","98","99","100"],A=new Set(O);x=exports.PublicChannelKey||(exports.PublicChannelKey={}),(w=x.Without$System||(x.Without$System={})).publicChannelKeys=[].concat(E,["$free"]),w.isPublicChannelKey=function(e){return void 0!==w.publicChannelKeys.find((function(t){return t===e}))},(b=x.With$System||(x.With$System={})).publicChannelKeys=[].concat(E,["$free","$system"]),b.isPublicChannelKey=function(e){return void 0!==b.publicChannelKeys.find((function(t){return t===e}))};var N=function(){function e(t){var r;this.major=void 0,this.minor=void 0,this.patch=void 0,this.prerelease=void 0,e.requireToBeNonNegativeInteger(t.major,"major"),e.requireToBeNonNegativeInteger(t.minor,"minor"),e.requireToBeNonNegativeInteger(t.patch,"patch"),null!=t.prerelease&&e.requireToBePositiveInteger(t.prerelease.version,"prerelease version"),this.major=t.major,this.minor=t.minor,this.patch=t.patch,this.prerelease=null!=(r=t.prerelease)?r:null}return e.requireToBePositiveInteger=function(e,t){if(!Number.isInteger(e))throw new Error("Semver error: "+t+' must be integer. Actual value is "'+e+'"');if(e<=0)throw new Error("Semver error: "+t+' must be positive. Actual value is "'+e+'"')},e.requireToBeNonNegativeInteger=function(e,t){if(!Number.isInteger(e))throw new Error("Semver error: "+t+' must be integer. Actual value is "'+e+'"');if(e<0)throw new Error("Semver error: "+t+' must not be negative. Actual value is "'+e+'"')},e.prototype.toString=function(){return null==this.prerelease?this.major+"."+this.minor+"."+this.patch:this.major+"."+this.minor+"."+this.patch+"-"+this.prerelease.type+"."+this.prerelease.version},e.compareNumbers=function(e,t,r){switch(t){case"=":return e===r;case"<":return e<r;case"<=":return e<=r;case">":return e>r;case">=":return e>=r}},e.prereleaseTypeToNumber=function(e){if(null==e)return 0;switch(e){case"rc":return-1;case"beta":return-2;case"alpha":return-3}},e.compareCore=function(t,r,n){var o,i,a,u,c,s;if(t.major!==n.major)return e.compareNumbers(t.major,r,n.major);if(t.minor!==n.minor)return e.compareNumbers(t.minor,r,n.minor);if(t.patch!==n.patch)return e.compareNumbers(t.patch,r,n.patch);var f=e.prereleaseTypeToNumber(null==(o=t.prerelease)?void 0:o.type),p=e.prereleaseTypeToNumber(null==(i=n.prerelease)?void 0:i.type);return f!==p?e.compareNumbers(f,r,p):e.compareNumbers(null!=(a=null==(u=t.prerelease)?void 0:u.version)?a:-1,r,null!=(c=null==(s=n.prerelease)?void 0:s.version)?c:-1)},e.compare=function(t,r,n){switch(r){case"=":case"<":case">":return e.compareCore(t,r,n);case"<=":return!e.compareCore(t,">",n);case">=":return!e.compareCore(t,"<",n)}},e.check=function(e){var t,r,n=e.api,o=e.web;return n.major===o.major?n.minor<o.minor?"apiServerRequiresUpdate":"alpha"===(null==(t=n.prerelease)?void 0:t.type)||"alpha"===(null==(r=o.prerelease)?void 0:r.type)?"alpha":"ok":n.major>o.major?"webServerRequiresUpdate":n.major<o.major?"apiServerRequiresUpdate":"ok"},e}(),I={createDualKey:function(e){return{first:e.createdBy,second:e.id}},createKey:function(e){return{createdBy:e.first,id:e.second}}},L=function(e,t){var r={};for(var n in e){var o=e[n];if(void 0!==o){var i=t(o);void 0!==i&&(r[n]=i)}}return r},T=function(e,t){var r={};for(var n in e){var o=e[n];if(void 0!==o){var i=t(o);r[n]=i}}return r},P=function(e){var t=new y;for(var r in e){var n=e[r];if(void 0!==n)for(var o in n){var i=n[o];void 0!==i&&t.set({first:r,second:o},i)}}return t},R=P,B=function(){var e=a(v.mark((function e(t,r){var n,o;return v.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.t0=v.keys(t);case 1:if((e.t1=e.t0()).done){e.next=10;break}if(void 0!==(o=t[n=e.t1.value])){e.next=6;break}return e.abrupt("continue",1);case 6:return e.next=8,r(o,n);case 8:e.next=1;break;case 10:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}();exports.$free="$free",exports.$system="$system",exports.CustomDualKeyMap=j,exports.DualKeyMap=y,exports.JsonObject=o,exports.SemVer=N,exports.alpha="alpha",exports.anonymous="anonymous",exports.apiServerRequiresUpdate="apiServerRequiresUpdate",exports.authToken="authToken",exports.beta="beta",exports.both="both",exports.chooseDualKeyRecord=function(e,t){return L(e,(function(e){return void 0===e?void 0:L(e,(function(e){return t(e)}))}))},exports.chooseRecord=L,exports.compositeKeyEquals=function(e,t){return e.createdBy===t.createdBy&&e.id===t.id},exports.compositeKeyToString=function(e){return e.id+"@"+e.createdBy},exports.createFirebaseConfig=function(e){var t=o.init(e);return{apiKey:t.get("apiKey").valueAsString(),authDomain:t.get("authDomain").valueAsString(),databaseURL:t.get("databaseURL").valueAsString(),projectId:t.get("projectId").valueAsString(),storageBucket:t.get("storageBucket").valueAsString(),messagingSenderId:t.get("messagingSenderId").valueAsString(),appId:t.get("appId").valueAsString(),measurementId:t.get("measurementId").valueAsString()}},exports.createStateMap=function(e){return new j(s({},I,{sourceMap:e}))},exports.dualKeyRecordFind=function(e,t){var r=e[t.first];if(void 0!==r)return r[t.second]},exports.dualKeyRecordForEach=function(e,t){for(var r in e){var n=e[r];if(void 0!==n)for(var o in n){var i=n[o];void 0!==i&&t(i,{first:r,second:o})}}},exports.dualKeyRecordToDualKeyMap=P,exports.dualKeyToJsonString=function(e){return"{ first: "+e.first+", second: "+e.second+" }"},exports.dualKeyToString=function(e){return e.first+"@"+e.second},exports.groupJoin3DualKeyMap=g,exports.groupJoin4DualKeyMap=function(e,t,r,n){return m(g(e,t,r),n).map((function(e){switch(e.type){case"left":return[].concat(e.left,[void 0]);case"right":return[void 0,void 0,void 0,e.right];case"both":return[].concat(e.left,[e.right])}}))},exports.groupJoinCustomDualKeyMap=function(e,t){var r=m(e.dualKeyMap,t.dualKeyMap);return new j(s({},e,{sourceMap:r}))},exports.groupJoinDualKeyMap=m,exports.groupJoinMap=function(e,t){var r=new Map,n=new Map(t);return e.forEach((function(e,t){var o=n.get(t);n.delete(t),r.set(t,void 0!==o?{type:"both",left:e,right:o}:{type:"left",left:e})})),n.forEach((function(e,t){r.set(t,{type:"right",right:e})})),r},exports.groupJoinSet=function(e,t){var r=new Map,n=new Set(t);return e.forEach((function(e){var t=n.has(e);n.delete(e),r.set(e,t?"both":"left")})),n.forEach((function(e){r.set(e,"right")})),r},exports.isRecordEmpty=function(e){for(var t in e)if(void 0!==e[t])return!1;return!0},exports.isStrIndex10=function(e){return M.has(e)},exports.isStrIndex100=function(e){return A.has(e)},exports.isStrIndex20=function(e){return k.has(e)},exports.isStrIndex5=function(e){return K.has(e)},exports.left="left",exports.mapDualKeyRecord=function(e,t){return L(e,(function(e){return void 0===e?void 0:T(e,(function(e){return t(e)}))}))},exports.mapRecord=T,exports.mapToRecord=function(e){var t={};return e.forEach((function(e,r){t[r]=e})),t},exports.maybe=function(e){return r.union([e,r.null,r.undefined])},exports.ok="ok",exports.rc="rc",exports.recordForEach=function(e,t){for(var r in e){var n=e[r];void 0!==n&&t(n,r)}},exports.recordForEachAsync=B,exports.recordToArray=function(e){var t=[];for(var r in e){var n=e[r];void 0!==n&&t.push({key:r,value:n})}return t},exports.recordToDualKeyMap=R,exports.recordToMap=function(e){var t=new Map;for(var r in e){var n=e[r];void 0!==n&&t.set(r,n)}return t},exports.right="right",exports.stateMapToJsonString=function(e){return"{ id: "+e.id+", createdBy: "+e.createdBy+" }"},exports.strIndex100Array=O,exports.strIndex10Array=E,exports.strIndex20Array=_,exports.strIndex5Array=S,exports.stringToCompositeKey=function(e){var t=e.split("@");return 2!==t.length?null:{id:t[0],createdBy:t[1]}},exports.webServerRequiresUpdate="webServerRequiresUpdate"; | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=(e=require("lodash"))&&"object"==typeof e&&"default"in e?e.default:e,r=require("io-ts"),n=function(e){var r=e[0];if(void 0===r)return"root value";var n=r;return t(e).drop(1).forEach((function(e){n=n+"/"+e})),n},o=function(){function e(e,t){if(this.jsonObject=void 0,this.currentPath=void 0,this.jsonObject=e,this.currentPath=t,null==e)throw new Error("jsonObject == null")}e.init=function(t){return new e(t,[])};var t=e.prototype;return t.tryGet=function(t){if("object"==typeof this.jsonObject){var r=this.jsonObject[t];return null==r?r:new e(r,[].concat(this.currentPath,[t]))}},t.get=function(e){var t=this.tryGet(e);if(null==t)throw new Error(n([].concat(this.currentPath,[e]))+" is not object.");return t},t.valueAsString=function(){if("string"==typeof this.jsonObject)return this.jsonObject;throw new Error(n(this.currentPath)+" must be string.")},t.valueAsNullableString=function(){if(null===this.jsonObject||"string"==typeof this.jsonObject)return this.jsonObject;throw new Error(n(this.currentPath)+" must be string or null.")},t.valueAsBoolean=function(){if("boolean"==typeof this.jsonObject)return this.jsonObject;throw new Error(n(this.currentPath)+" must be true or false.")},e}();function i(e,t,r,n,o,i,a){try{var u=e[i](a),c=u.value}catch(e){return void r(e)}u.done?t(c):Promise.resolve(c).then(n,o)}function a(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var a=e.apply(t,r);function u(e){i(a,n,o,u,c,"next",e)}function c(e){i(a,n,o,u,c,"throw",e)}u(void 0)}))}}function u(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function c(e,t,r){return t&&u(e.prototype,t),r&&u(e,r),e}function s(){return(s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function p(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return f(e,void 0);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?f(e,void 0):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var h,l,v=(function(e){var t=function(e){var t=Object.prototype,r=t.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",i=n.asyncIterator||"@@asyncIterator",a=n.toStringTag||"@@toStringTag";function u(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,r){return e[t]=r}}function c(e,t,r,n){var o=Object.create((t&&t.prototype instanceof p?t:p).prototype),i=new S(n||[]);return o._invoke=function(e,t,r){var n="suspendedStart";return function(o,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw i;return{value:void 0,done:!0}}for(r.method=o,r.arg=i;;){var a=r.delegate;if(a){var u=b(a,r);if(u){if(u===f)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var c=s(e,t,r);if("normal"===c.type){if(n=r.done?"completed":"suspendedYield",c.arg===f)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n="completed",r.method="throw",r.arg=c.arg)}}}(e,r,i),o}function s(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}e.wrap=c;var f={};function p(){}function h(){}function l(){}var v={};v[o]=function(){return this};var d=Object.getPrototypeOf,y=d&&d(d(K([])));y&&y!==t&&r.call(y,o)&&(v=y);var m=l.prototype=p.prototype=Object.create(v);function g(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function w(e,t){var n;this._invoke=function(o,i){function a(){return new t((function(n,a){!function n(o,i,a,u){var c=s(e[o],e,i);if("throw"!==c.type){var f=c.arg,p=f.value;return p&&"object"==typeof p&&r.call(p,"__await")?t.resolve(p.__await).then((function(e){n("next",e,a,u)}),(function(e){n("throw",e,a,u)})):t.resolve(p).then((function(e){f.value=e,a(f)}),(function(e){return n("throw",e,a,u)}))}u(c.arg)}(o,i,n,a)}))}return n=n?n.then(a,a):a()}}function b(e,t){var r=e.iterator[t.method];if(void 0===r){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,b(e,t),"throw"===t.method))return f;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return f}var n=s(r,e.iterator,t.arg);if("throw"===n.type)return t.method="throw",t.arg=n.arg,t.delegate=null,f;var o=n.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,f):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,f)}function x(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function j(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function S(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(x,this),this.reset(!0)}function K(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,i=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return i.next=i}}return{next:M}}function M(){return{value:void 0,done:!0}}return h.prototype=m.constructor=l,l.constructor=h,h.displayName=u(l,a,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===h||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,u(e,a,"GeneratorFunction")),e.prototype=Object.create(m),e},e.awrap=function(e){return{__await:e}},g(w.prototype),w.prototype[i]=function(){return this},e.AsyncIterator=w,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise);var a=new w(c(t,r,n,o),i);return e.isGeneratorFunction(r)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},g(m),u(m,a,"Generator"),m[o]=function(){return this},m.toString=function(){return"[object Generator]"},e.keys=function(e){var t=[];for(var r in e)t.push(r);return t.reverse(),function r(){for(;t.length;){var n=t.pop();if(n in e)return r.value=n,r.done=!1,r}return r.done=!0,r}},e.values=K,S.prototype={constructor:S,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(j),!e)for(var t in this)"t"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(r,n){return a.type="throw",a.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=r.call(i,"catchLoc"),c=r.call(i,"finallyLoc");if(u&&c){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(u){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,f):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),f},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),j(r),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;j(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:K(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),f}},e}(e.exports);try{regeneratorRuntime=t}catch(e){Function("r","regeneratorRuntime = r")(t)}}(l={exports:{}}),l.exports),d=function(e){var t={};return e.forEach((function(e,r){if(void 0!==t[r])throw new Error(r+" already exists");t[r]=e})),t},y=function(e,t){var r=new Map;for(var n in e){var o=e[n];if(void 0!==o){var i=t(o);void 0!==i&&r.set(n,i)}}return d(r)},m=function(e,t){var r=new Map;for(var n in e){var o=e[n];if(void 0!==o){var i=t(o);r.set(n,i)}}return d(r)},g=function(e){var t=new j;for(var r in e){var n=e[r];if(void 0!==n)for(var o in n){var i=n[o];void 0!==i&&t.set({first:r,second:o},i)}}return t},w=g,b=function(){var e=a(v.mark((function e(t,r){var n,o;return v.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.t0=v.keys(t);case 1:if((e.t1=e.t0()).done){e.next=10;break}if(void 0!==(o=t[n=e.t1.value])){e.next=6;break}return e.abrupt("continue",1);case 6:return e.next=8,r(o,n);case 8:e.next=1;break;case 10:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}();h=Symbol.iterator;var x,j=function(){function e(t){this._core=void 0,this._core=null==t?new Map:e.mapMap(t,(function(e){return e}))}e.mapMap=function(e,t){for(var r,n=new Map,o=p(e);!(r=o()).done;){var i=r.value,a=i[0],u=i[1];if(0!==u.size){for(var c,s=new Map,f=p(u);!(c=f()).done;){var h=c.value,l=h[0];s.set(l,t(h[1],{first:a,second:l}))}n.set(a,s)}}return n},e.create=function(t,r){var n=new e;return n._core=e.mapMap(t instanceof e?t._core:t,r),n},e.ofRecord=function(t){var r=new e;for(var n in t){var o=t[n];if(void 0!==o)for(var i in o){var a=o[i];void 0!==a&&r.set({first:n,second:i},a)}}return r};var t=e.prototype;return t.map=function(t){return e.create(this,t)},t.clone=function(){return e.create(this,(function(e){return e}))},t.get=function(e){var t=e.second,r=this._core.get(e.first);if(void 0!==r)return r.get(t)},t.getByFirst=function(e){return this._core.get(e)},t.set=function(e,t){var r=e.first,n=e.second,o=this._core.get(r);return void 0===o&&(o=new Map,this._core.set(r,o)),o.set(n,t),this},t.delete=function(e){var t=e.first,r=e.second,n=this._core.get(t);if(void 0===n)return!1;var o=n.delete(r);return 0===n.size&&this._core.delete(t),o},t.has=function(e){return void 0!==this.get(e)},t[h]=v.mark((function e(){var t,r,n,o,i,a,u,c,s;return v.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=p(this._core);case 1:if((r=t()).done){e.next=12;break}o=(n=r.value)[0],i=p(n[1]);case 4:if((a=i()).done){e.next=10;break}return c=(u=a.value)[0],s=u[1],e.next=8,[{first:o,second:c},s];case 8:e.next=4;break;case 10:e.next=1;break;case 12:case"end":return e.stop()}}),e,this)})),t.toArray=function(){return Array.from(this)},t.toMap=function(){return e.mapMap(this._core,(function(e){return e}))},t.toStringRecord=function(e,t){var r=new Map;return this._core.forEach((function(n,o){var i=new Map;n.forEach((function(e,r){i.set(t(r),e)})),r.set(e(o),d(i))})),r},t.forEach=function(e){for(var t,r=p(this);!(t=r()).done;){var n=t.value;e(n[1],n[0])}},t.reduce=function(e,t){var r=t;return this.forEach((function(t,n){return r=e(r,t,n)})),r},t.toJSON=function(e){return JSON.stringify([].concat(this._core).map((function(t){return[t[0],[].concat(t[1]).map((function(t){var r=t[1];return[t[0],void 0===e?r:e(r)]}))]})))},c(e,[{key:"size",get:function(){return this.toArray().length}},{key:"isEmpty",get:function(){return 0===this.size}}]),e}(),S=function(e,t){var r=new j,n=t.clone();return e.forEach((function(e,t){var o=n.get(t);n.delete(t),r.set(t,void 0!==o?{type:"both",left:e,right:o}:{type:"left",left:e})})),n.forEach((function(e,t){r.set(t,{type:"right",right:e})})),r},K=function(e,t,r){return S(e,S(t,r)).map((function(e){switch(e.type){case"left":return[e.left,void 0,void 0];case"right":case"both":var t=function(){if("both"===e.type)return e.left}();switch(e.right.type){case"left":return[t,e.right.left,void 0];case"right":return[t,void 0,e.right.right];case"both":return[t,e.right.left,e.right.right]}}}))};x=Symbol.iterator;var M,E,_,k=function(){function e(e){this.params=void 0,this._dualKeyMap=void 0,this.params=e,this._dualKeyMap=e.sourceMap instanceof j?e.sourceMap.clone():new j(e.sourceMap)}var t=e.prototype;return t.wrap=function(t){var r=new e(s({},this.params,{sourceMap:void 0}));return r._dualKeyMap=t,r},t.createKey=function(e){return this.params.createKey(e)},t.createDualKey=function(e){return this.params.createDualKey(e)},t.map=function(t){var r=new e(s({},this.params,{sourceMap:void 0}));return r._dualKeyMap=this._dualKeyMap.map(t),r},t.clone=function(){var t=new e(s({},this.params,{sourceMap:void 0}));return t._dualKeyMap=this._dualKeyMap.clone(),t},t.get=function(e){var t=this.params.createDualKey(e);return this._dualKeyMap.get(t)},t.getByFirst=function(e){return this._dualKeyMap.getByFirst(e)},t.set=function(e,t){var r=this.params.createDualKey(e);return this._dualKeyMap.set(r,t),this},t.delete=function(e){var t=this.params.createDualKey(e);return this._dualKeyMap.delete(t)},t.has=function(e){var t=this.params.createDualKey(e);return this._dualKeyMap.has(t)},t[x]=v.mark((function e(){var t,r,n,o,i;return v.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=p(this._dualKeyMap);case 1:if((r=t()).done){e.next=7;break}return o=(n=r.value)[0],i=n[1],e.next=5,[this.params.createKey(o),i];case 5:e.next=1;break;case 7:case"end":return e.stop()}}),e,this)})),t.toArray=function(){return Array.from(this)},t.forEach=function(e){for(var t,r=p(this);!(t=r()).done;){var n=t.value;e(n[1],n[0])}},t.reduce=function(e,t){var r=t;return this.forEach((function(t,n){return r=e(r,t,n)})),r},t.toJSON=function(){return this._dualKeyMap.toJSON()},c(e,[{key:"dualKeyMap",get:function(){return this._dualKeyMap}},{key:"size",get:function(){return this.toArray().length}},{key:"isEmpty",get:function(){return 0===this.size}}]),e}(),O=["1","2","3","4","5"],A=new Set(O),N=["1","2","3","4","5","6","7","8","9","10"],I=new Set(N),L=["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20"],T=new Set(L),P=["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","91","92","93","94","95","96","97","98","99","100"],R=new Set(P);_=exports.PublicChannelKey||(exports.PublicChannelKey={}),(E=_.Without$System||(_.Without$System={})).publicChannelKeys=[].concat(N,["$free"]),E.isPublicChannelKey=function(e){return void 0!==E.publicChannelKeys.find((function(t){return t===e}))},(M=_.With$System||(_.With$System={})).publicChannelKeys=[].concat(N,["$free","$system"]),M.isPublicChannelKey=function(e){return void 0!==M.publicChannelKeys.find((function(t){return t===e}))};var B=function(){function e(t){var r;this.major=void 0,this.minor=void 0,this.patch=void 0,this.prerelease=void 0,e.requireToBeNonNegativeInteger(t.major,"major"),e.requireToBeNonNegativeInteger(t.minor,"minor"),e.requireToBeNonNegativeInteger(t.patch,"patch"),null!=t.prerelease&&e.requireToBePositiveInteger(t.prerelease.version,"prerelease version"),this.major=t.major,this.minor=t.minor,this.patch=t.patch,this.prerelease=null!=(r=t.prerelease)?r:null}return e.requireToBePositiveInteger=function(e,t){if(!Number.isInteger(e))throw new Error("Semver error: "+t+' must be integer. Actual value is "'+e+'"');if(e<=0)throw new Error("Semver error: "+t+' must be positive. Actual value is "'+e+'"')},e.requireToBeNonNegativeInteger=function(e,t){if(!Number.isInteger(e))throw new Error("Semver error: "+t+' must be integer. Actual value is "'+e+'"');if(e<0)throw new Error("Semver error: "+t+' must not be negative. Actual value is "'+e+'"')},e.prototype.toString=function(){return null==this.prerelease?this.major+"."+this.minor+"."+this.patch:this.major+"."+this.minor+"."+this.patch+"-"+this.prerelease.type+"."+this.prerelease.version},e.compareNumbers=function(e,t,r){switch(t){case"=":return e===r;case"<":return e<r;case"<=":return e<=r;case">":return e>r;case">=":return e>=r}},e.prereleaseTypeToNumber=function(e){if(null==e)return 0;switch(e){case"rc":return-1;case"beta":return-2;case"alpha":return-3}},e.compareCore=function(t,r,n){var o,i,a,u,c,s;if(t.major!==n.major)return e.compareNumbers(t.major,r,n.major);if(t.minor!==n.minor)return e.compareNumbers(t.minor,r,n.minor);if(t.patch!==n.patch)return e.compareNumbers(t.patch,r,n.patch);var f=e.prereleaseTypeToNumber(null==(o=t.prerelease)?void 0:o.type),p=e.prereleaseTypeToNumber(null==(i=n.prerelease)?void 0:i.type);return f!==p?e.compareNumbers(f,r,p):e.compareNumbers(null!=(a=null==(u=t.prerelease)?void 0:u.version)?a:-1,r,null!=(c=null==(s=n.prerelease)?void 0:s.version)?c:-1)},e.compare=function(t,r,n){switch(r){case"=":case"<":case">":return e.compareCore(t,r,n);case"<=":return!e.compareCore(t,">",n);case">=":return!e.compareCore(t,"<",n)}},e.check=function(e){var t,r,n=e.api,o=e.web;return n.major===o.major?n.minor<o.minor?"apiServerRequiresUpdate":"alpha"===(null==(t=n.prerelease)?void 0:t.type)||"alpha"===(null==(r=o.prerelease)?void 0:r.type)?"alpha":"ok":n.major>o.major?"webServerRequiresUpdate":n.major<o.major?"apiServerRequiresUpdate":"ok"},e}(),D={createDualKey:function(e){return{first:e.createdBy,second:e.id}},createKey:function(e){return{createdBy:e.first,id:e.second}}};exports.$free="$free",exports.$system="$system",exports.CustomDualKeyMap=k,exports.DualKeyMap=j,exports.JsonObject=o,exports.SemVer=B,exports.alpha="alpha",exports.anonymous="anonymous",exports.apiServerRequiresUpdate="apiServerRequiresUpdate",exports.authToken="authToken",exports.beta="beta",exports.both="both",exports.chooseDualKeyRecord=function(e,t){return y(e,(function(e){return void 0===e?void 0:y(e,(function(e){return t(e)}))}))},exports.chooseRecord=y,exports.compositeKeyEquals=function(e,t){return e.createdBy===t.createdBy&&e.id===t.id},exports.compositeKeyToString=function(e){return e.id+"@"+e.createdBy},exports.createFirebaseConfig=function(e){var t=o.init(e);return{apiKey:t.get("apiKey").valueAsString(),authDomain:t.get("authDomain").valueAsString(),databaseURL:t.get("databaseURL").valueAsString(),projectId:t.get("projectId").valueAsString(),storageBucket:t.get("storageBucket").valueAsString(),messagingSenderId:t.get("messagingSenderId").valueAsString(),appId:t.get("appId").valueAsString(),measurementId:t.get("measurementId").valueAsString()}},exports.createStateMap=function(e){return new k(s({},D,{sourceMap:e}))},exports.dualKeyRecordFind=function(e,t){var r=e[t.first];if(void 0!==r)return r[t.second]},exports.dualKeyRecordForEach=function(e,t){for(var r in e){var n=e[r];if(void 0!==n)for(var o in n){var i=n[o];void 0!==i&&t(i,{first:r,second:o})}}},exports.dualKeyRecordToDualKeyMap=g,exports.dualKeyToJsonString=function(e){return"{ first: "+e.first+", second: "+e.second+" }"},exports.dualKeyToString=function(e){return e.first+"@"+e.second},exports.groupJoin3DualKeyMap=K,exports.groupJoin4DualKeyMap=function(e,t,r,n){return S(K(e,t,r),n).map((function(e){switch(e.type){case"left":return[].concat(e.left,[void 0]);case"right":return[void 0,void 0,void 0,e.right];case"both":return[].concat(e.left,[e.right])}}))},exports.groupJoinCustomDualKeyMap=function(e,t){var r=S(e.dualKeyMap,t.dualKeyMap);return new k(s({},e,{sourceMap:r}))},exports.groupJoinDualKeyMap=S,exports.groupJoinMap=function(e,t){var r=new Map,n=new Map(t);return e.forEach((function(e,t){var o=n.get(t);n.delete(t),r.set(t,void 0!==o?{type:"both",left:e,right:o}:{type:"left",left:e})})),n.forEach((function(e,t){r.set(t,{type:"right",right:e})})),r},exports.groupJoinSet=function(e,t){var r=new Map,n=new Set(t);return e.forEach((function(e){var t=n.has(e);n.delete(e),r.set(e,t?"both":"left")})),n.forEach((function(e){r.set(e,"right")})),r},exports.isRecordEmpty=function(e){for(var t in e)if(void 0!==e[t])return!1;return!0},exports.isStrIndex10=function(e){return I.has(e)},exports.isStrIndex100=function(e){return R.has(e)},exports.isStrIndex20=function(e){return T.has(e)},exports.isStrIndex5=function(e){return A.has(e)},exports.left="left",exports.mapDualKeyRecord=function(e,t){return y(e,(function(e){return void 0===e?void 0:m(e,(function(e){return t(e)}))}))},exports.mapRecord=m,exports.mapToRecord=d,exports.maybe=function(e){return r.union([e,r.null,r.undefined])},exports.ok="ok",exports.rc="rc",exports.recordForEach=function(e,t){for(var r in e){var n=e[r];void 0!==n&&t(n,r)}},exports.recordForEachAsync=b,exports.recordToArray=function(e){var t=[];for(var r in e){var n=e[r];void 0!==n&&t.push({key:r,value:n})}return t},exports.recordToDualKeyMap=w,exports.recordToMap=function(e){var t=new Map;for(var r in e){var n=e[r];void 0!==n&&t.set(r,n)}return t},exports.right="right",exports.stateMapToJsonString=function(e){return"{ id: "+e.id+", createdBy: "+e.createdBy+" }"},exports.strIndex100Array=P,exports.strIndex10Array=N,exports.strIndex20Array=L,exports.strIndex5Array=O,exports.stringToCompositeKey=function(e){var t=e.split("@");return 2!==t.length?null:{id:t[0],createdBy:t[1]}},exports.webServerRequiresUpdate="webServerRequiresUpdate"; | ||
//# sourceMappingURL=util.cjs.production.min.js.map |
@@ -976,2 +976,214 @@ import _ from 'lodash-es'; | ||
var mapToRecord = function mapToRecord(source) { | ||
var result = {}; | ||
source.forEach(function (value, key) { | ||
if (result[key] !== undefined) { | ||
// プロトタイプ汚染などを防いでいる。ただ、これで十分なのだろうか? | ||
throw new Error(key + " already exists"); | ||
} | ||
result[key] = value; | ||
}); | ||
return result; | ||
}; | ||
var chooseRecord = function chooseRecord(source, chooser) { | ||
var result = new Map(); | ||
for (var key in source) { | ||
var element = source[key]; | ||
if (element !== undefined) { | ||
var newElement = chooser(element); | ||
if (newElement !== undefined) { | ||
result.set(key, newElement); | ||
} | ||
} | ||
} | ||
return mapToRecord(result); | ||
}; | ||
var chooseDualKeyRecord = function chooseDualKeyRecord(source, chooser) { | ||
return chooseRecord(source, function (inner) { | ||
return inner === undefined ? undefined : chooseRecord(inner, function (value) { | ||
return chooser(value); | ||
}); | ||
}); | ||
}; | ||
var mapRecord = function mapRecord(source, mapping) { | ||
var result = new Map(); | ||
for (var key in source) { | ||
var element = source[key]; | ||
if (element !== undefined) { | ||
var newElement = mapping(element); | ||
result.set(key, newElement); | ||
} | ||
} | ||
return mapToRecord(result); | ||
}; | ||
var mapDualKeyRecord = function mapDualKeyRecord(source, mapping) { | ||
return chooseRecord(source, function (inner) { | ||
return inner === undefined ? undefined : mapRecord(inner, function (value) { | ||
return mapping(value); | ||
}); | ||
}); | ||
}; | ||
var recordToArray = function recordToArray(source) { | ||
var result = []; | ||
for (var key in source) { | ||
var value = source[key]; | ||
if (value !== undefined) { | ||
result.push({ | ||
key: key, | ||
value: value | ||
}); | ||
} | ||
} | ||
return result; | ||
}; | ||
var recordToMap = function recordToMap(source) { | ||
var result = new Map(); | ||
for (var key in source) { | ||
var value = source[key]; | ||
if (value !== undefined) { | ||
result.set(key, value); | ||
} | ||
} | ||
return result; | ||
}; | ||
var dualKeyRecordToDualKeyMap = function dualKeyRecordToDualKeyMap(source) { | ||
var result = new DualKeyMap(); | ||
for (var first in source) { | ||
var innerRecord = source[first]; | ||
if (innerRecord !== undefined) { | ||
for (var second in innerRecord) { | ||
var value = innerRecord[second]; | ||
if (value !== undefined) { | ||
result.set({ | ||
first: first, | ||
second: second | ||
}, value); | ||
} | ||
} | ||
} | ||
} | ||
return result; | ||
}; | ||
/** | ||
* @deprecated Use dualKeyRecordToDualKeyMap instead. | ||
*/ | ||
var recordToDualKeyMap = dualKeyRecordToDualKeyMap; | ||
var recordForEach = function recordForEach(source, action) { | ||
for (var key in source) { | ||
var value = source[key]; | ||
if (value === undefined) { | ||
continue; | ||
} | ||
action(value, key); | ||
} | ||
}; | ||
var recordForEachAsync = /*#__PURE__*/function () { | ||
var _ref = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee(source, action) { | ||
var key, value; | ||
return runtime_1.wrap(function _callee$(_context) { | ||
while (1) { | ||
switch (_context.prev = _context.next) { | ||
case 0: | ||
_context.t0 = runtime_1.keys(source); | ||
case 1: | ||
if ((_context.t1 = _context.t0()).done) { | ||
_context.next = 10; | ||
break; | ||
} | ||
key = _context.t1.value; | ||
value = source[key]; | ||
if (!(value === undefined)) { | ||
_context.next = 6; | ||
break; | ||
} | ||
return _context.abrupt("continue", 1); | ||
case 6: | ||
_context.next = 8; | ||
return action(value, key); | ||
case 8: | ||
_context.next = 1; | ||
break; | ||
case 10: | ||
case "end": | ||
return _context.stop(); | ||
} | ||
} | ||
}, _callee); | ||
})); | ||
return function recordForEachAsync(_x, _x2) { | ||
return _ref.apply(this, arguments); | ||
}; | ||
}(); | ||
var isRecordEmpty = function isRecordEmpty(source) { | ||
for (var key in source) { | ||
var value = source[key]; | ||
if (value !== undefined) { | ||
return false; | ||
} | ||
} | ||
return true; | ||
}; | ||
var dualKeyRecordForEach = function dualKeyRecordForEach(source, action) { | ||
for (var first in source) { | ||
var inner = source[first]; | ||
if (inner === undefined) { | ||
continue; | ||
} | ||
for (var second in inner) { | ||
var value = inner[second]; | ||
if (value === undefined) { | ||
continue; | ||
} | ||
action(value, { | ||
first: first, | ||
second: second | ||
}); | ||
} | ||
} | ||
}; | ||
var dualKeyRecordFind = function dualKeyRecordFind(source, key) { | ||
var inner = source[key.first]; | ||
if (inner === undefined) { | ||
return undefined; | ||
} | ||
return inner[key.second]; | ||
}; | ||
var _Symbol$iterator; | ||
@@ -1186,10 +1398,10 @@ var dualKeyToString = function dualKeyToString(source) { | ||
_proto.toStringRecord = function toStringRecord(createStringKey1, createStringKey2) { | ||
var result = {}; | ||
var result = new Map(); | ||
this._core.forEach(function (inner, first) { | ||
var innerRecord = {}; | ||
var innerRecord = new Map(); | ||
inner.forEach(function (value, second) { | ||
innerRecord[createStringKey2(second)] = value; | ||
innerRecord.set(createStringKey2(second), value); | ||
}); | ||
result[createStringKey1(first)] = innerRecord; | ||
result.set(createStringKey1(first), mapToRecord(innerRecord)); | ||
}); | ||
@@ -1820,210 +2032,3 @@ | ||
var chooseRecord = function chooseRecord(source, chooser) { | ||
var result = {}; | ||
for (var key in source) { | ||
var element = source[key]; | ||
if (element !== undefined) { | ||
var newElement = chooser(element); | ||
if (newElement !== undefined) { | ||
result[key] = newElement; | ||
} | ||
} | ||
} | ||
return result; | ||
}; | ||
var chooseDualKeyRecord = function chooseDualKeyRecord(source, chooser) { | ||
return chooseRecord(source, function (inner) { | ||
return inner === undefined ? undefined : chooseRecord(inner, function (value) { | ||
return chooser(value); | ||
}); | ||
}); | ||
}; | ||
var mapRecord = function mapRecord(source, mapping) { | ||
var result = {}; | ||
for (var key in source) { | ||
var element = source[key]; | ||
if (element !== undefined) { | ||
var newElement = mapping(element); | ||
result[key] = newElement; | ||
} | ||
} | ||
return result; | ||
}; | ||
var mapDualKeyRecord = function mapDualKeyRecord(source, mapping) { | ||
return chooseRecord(source, function (inner) { | ||
return inner === undefined ? undefined : mapRecord(inner, function (value) { | ||
return mapping(value); | ||
}); | ||
}); | ||
}; | ||
var recordToArray = function recordToArray(source) { | ||
var result = []; | ||
for (var key in source) { | ||
var value = source[key]; | ||
if (value !== undefined) { | ||
result.push({ | ||
key: key, | ||
value: value | ||
}); | ||
} | ||
} | ||
return result; | ||
}; | ||
var recordToMap = function recordToMap(source) { | ||
var result = new Map(); | ||
for (var key in source) { | ||
var value = source[key]; | ||
if (value !== undefined) { | ||
result.set(key, value); | ||
} | ||
} | ||
return result; | ||
}; | ||
var dualKeyRecordToDualKeyMap = function dualKeyRecordToDualKeyMap(source) { | ||
var result = new DualKeyMap(); | ||
for (var first in source) { | ||
var innerRecord = source[first]; | ||
if (innerRecord !== undefined) { | ||
for (var second in innerRecord) { | ||
var value = innerRecord[second]; | ||
if (value !== undefined) { | ||
result.set({ | ||
first: first, | ||
second: second | ||
}, value); | ||
} | ||
} | ||
} | ||
} | ||
return result; | ||
}; | ||
/** | ||
* @deprecated Use dualKeyRecordToDualKeyMap instead. | ||
*/ | ||
var recordToDualKeyMap = dualKeyRecordToDualKeyMap; | ||
var mapToRecord = function mapToRecord(source) { | ||
var result = {}; | ||
source.forEach(function (value, key) { | ||
result[key] = value; | ||
}); | ||
return result; | ||
}; | ||
var recordForEach = function recordForEach(source, action) { | ||
for (var key in source) { | ||
var value = source[key]; | ||
if (value === undefined) { | ||
continue; | ||
} | ||
action(value, key); | ||
} | ||
}; | ||
var recordForEachAsync = /*#__PURE__*/function () { | ||
var _ref = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee(source, action) { | ||
var key, value; | ||
return runtime_1.wrap(function _callee$(_context) { | ||
while (1) { | ||
switch (_context.prev = _context.next) { | ||
case 0: | ||
_context.t0 = runtime_1.keys(source); | ||
case 1: | ||
if ((_context.t1 = _context.t0()).done) { | ||
_context.next = 10; | ||
break; | ||
} | ||
key = _context.t1.value; | ||
value = source[key]; | ||
if (!(value === undefined)) { | ||
_context.next = 6; | ||
break; | ||
} | ||
return _context.abrupt("continue", 1); | ||
case 6: | ||
_context.next = 8; | ||
return action(value, key); | ||
case 8: | ||
_context.next = 1; | ||
break; | ||
case 10: | ||
case "end": | ||
return _context.stop(); | ||
} | ||
} | ||
}, _callee); | ||
})); | ||
return function recordForEachAsync(_x, _x2) { | ||
return _ref.apply(this, arguments); | ||
}; | ||
}(); | ||
var isRecordEmpty = function isRecordEmpty(source) { | ||
for (var key in source) { | ||
var value = source[key]; | ||
if (value !== undefined) { | ||
return false; | ||
} | ||
} | ||
return true; | ||
}; | ||
var dualKeyRecordForEach = function dualKeyRecordForEach(source, action) { | ||
for (var first in source) { | ||
var inner = source[first]; | ||
if (inner === undefined) { | ||
continue; | ||
} | ||
for (var second in inner) { | ||
var value = inner[second]; | ||
if (value === undefined) { | ||
continue; | ||
} | ||
action(value, { | ||
first: first, | ||
second: second | ||
}); | ||
} | ||
} | ||
}; | ||
var dualKeyRecordFind = function dualKeyRecordFind(source, key) { | ||
var inner = source[key.first]; | ||
if (inner === undefined) { | ||
return undefined; | ||
} | ||
return inner[key.second]; | ||
}; | ||
export { $free, $system, CustomDualKeyMap, DualKeyMap, JsonObject, PublicChannelKey, SemVer, alpha, anonymous, apiServerRequiresUpdate, authToken, beta, both, chooseDualKeyRecord, chooseRecord, equals as compositeKeyEquals, compositeKeyToString, createFirebaseConfig, createStateMap, dualKeyRecordFind, dualKeyRecordForEach, dualKeyRecordToDualKeyMap, toJsonString as dualKeyToJsonString, dualKeyToString, groupJoin3 as groupJoin3DualKeyMap, groupJoin4 as groupJoin4DualKeyMap, groupJoin$1 as groupJoinCustomDualKeyMap, groupJoin as groupJoinDualKeyMap, groupJoin$2 as groupJoinMap, groupJoin$3 as groupJoinSet, isRecordEmpty, isStrIndex10, isStrIndex100, isStrIndex20, isStrIndex5, left, mapDualKeyRecord, mapRecord, mapToRecord, maybe, ok, rc, recordForEach, recordForEachAsync, recordToArray, recordToDualKeyMap, recordToMap, right, toJsonString$1 as stateMapToJsonString, strIndex100Array, strIndex10Array, strIndex20Array, strIndex5Array, stringToCompositeKey, webServerRequiresUpdate }; | ||
//# sourceMappingURL=util.esm.js.map |
{ | ||
"version": "0.2.0", | ||
"version": "0.2.1", | ||
"license": "MIT", | ||
@@ -4,0 +4,0 @@ "main": "dist/index.js", |
import { both, GroupJoinResult, left, right } from './types'; | ||
import { mapToRecord } from './utils'; | ||
@@ -167,9 +168,9 @@ export type DualKey<T1, T2> = { | ||
) { | ||
const result: Record<string, Record<string, TValue>> = {}; | ||
const result = new Map<string, Record<string, TValue>>(); | ||
this._core.forEach((inner, first) => { | ||
const innerRecord: Record<string, TValue> = {}; | ||
const innerRecord = new Map<string, TValue>(); | ||
inner.forEach((value, second) => { | ||
innerRecord[createStringKey2(second)] = value; | ||
innerRecord.set(createStringKey2(second), value); | ||
}); | ||
result[createStringKey1(first)] = innerRecord; | ||
result.set(createStringKey1(first), mapToRecord(innerRecord)); | ||
}); | ||
@@ -176,0 +177,0 @@ return result; |
import { DualKey, DualKeyMap } from './dualKeyMap'; | ||
export const mapToRecord = <TValue>( | ||
source: Map<string, TValue> | ||
): Record<string, TValue> => { | ||
const result: Record<string, TValue> = {}; | ||
source.forEach((value, key) => { | ||
if (result[key] !== undefined) { | ||
// プロトタイプ汚染などを防いでいる。ただ、これで十分なのだろうか? | ||
throw new Error(`${key} already exists`); | ||
} | ||
result[key] = value; | ||
}); | ||
return result; | ||
}; | ||
export const chooseRecord = <TSource, TResult>( | ||
@@ -7,3 +21,3 @@ source: Record<string, TSource | undefined>, | ||
): Record<string, TResult> => { | ||
const result: Record<string, TResult> = {}; | ||
const result = new Map<string, TResult>(); | ||
for (const key in source) { | ||
@@ -14,7 +28,7 @@ const element = source[key]; | ||
if (newElement !== undefined) { | ||
result[key] = newElement; | ||
result.set(key, newElement); | ||
} | ||
} | ||
} | ||
return result; | ||
return mapToRecord(result); | ||
}; | ||
@@ -37,3 +51,3 @@ | ||
): Record<string, TResult> => { | ||
const result: Record<string, TResult> = {}; | ||
const result = new Map<string, TResult>(); | ||
for (const key in source) { | ||
@@ -43,6 +57,6 @@ const element = source[key]; | ||
const newElement = mapping(element); | ||
result[key] = newElement; | ||
result.set(key, newElement); | ||
} | ||
} | ||
return result; | ||
return mapToRecord(result); | ||
}; | ||
@@ -110,12 +124,2 @@ | ||
export const mapToRecord = <TValue>( | ||
source: Map<string, TValue> | ||
): Record<string, TValue> => { | ||
const result: Record<string, TValue> = {}; | ||
source.forEach((value, key) => { | ||
result[key] = value; | ||
}); | ||
return result; | ||
}; | ||
export const recordForEach = <T>( | ||
@@ -122,0 +126,0 @@ source: Record<string, T | undefined>, |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
547064
5211