"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.membershipForEach = exports.membershipDedupeArray = exports.membershipToArray = exports.membershipFromArray = exports.membershipClear = exports.membershipDelete = exports.membershipHas = exports.membershipAdd = exports.createMembershipSet = void 0; function createMembershipSet() { return new Map(); } exports.createMembershipSet = createMembershipSet; function membershipAdd(set, key) { set.set(key, true); return set; } exports.membershipAdd = membershipAdd; function membershipHas(set, key) { return set.has(key); } exports.membershipHas = membershipHas; function membershipDelete(set, key) { return set.delete(key); } exports.membershipDelete = membershipDelete; function membershipClear(set) { set.clear(); } exports.membershipClear = membershipClear; function membershipFromArray(items) { const set = createMembershipSet(); for (const item of items) { set.set(item, true); } return set; } exports.membershipFromArray = membershipFromArray; function membershipToArray(set) { return [...set.keys()]; } exports.membershipToArray = membershipToArray; /** 去重数组(替代 Array.from(new Set(...)) / [...new Set(...)]) */ function membershipDedupeArray(items) { return membershipToArray(membershipFromArray(items)); } exports.membershipDedupeArray = membershipDedupeArray; function membershipForEach(set, fn) { for (const key of set.keys()) { fn(key); } } exports.membershipForEach = membershipForEach; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVtYmVyc2hpcFNldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9NZW1iZXJzaGlwU2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU9BLFNBQWdCLG1CQUFtQjtJQUMvQixPQUFPLElBQUksR0FBRyxFQUFXLENBQUM7QUFDOUIsQ0FBQztBQUZELGtEQUVDO0FBRUQsU0FBZ0IsYUFBYSxDQUFJLEdBQXFCLEVBQUUsR0FBTTtJQUMxRCxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuQixPQUFPLEdBQUcsQ0FBQztBQUNmLENBQUM7QUFIRCxzQ0FHQztBQUVELFNBQWdCLGFBQWEsQ0FBSSxHQUE2QixFQUFFLEdBQU07SUFDbEUsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFGRCxzQ0FFQztBQUVELFNBQWdCLGdCQUFnQixDQUFJLEdBQXFCLEVBQUUsR0FBTTtJQUM3RCxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDM0IsQ0FBQztBQUZELDRDQUVDO0FBRUQsU0FBZ0IsZUFBZSxDQUFJLEdBQXFCO0lBQ3BELEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUNoQixDQUFDO0FBRkQsMENBRUM7QUFFRCxTQUFnQixtQkFBbUIsQ0FBSSxLQUFrQjtJQUNyRCxNQUFNLEdBQUcsR0FBRyxtQkFBbUIsRUFBSyxDQUFDO0lBQ3JDLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFO1FBQ3RCLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQ3ZCO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDZixDQUFDO0FBTkQsa0RBTUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FBSSxHQUE2QjtJQUM5RCxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUMzQixDQUFDO0FBRkQsOENBRUM7QUFFRCw0REFBNEQ7QUFDNUQsU0FBZ0IscUJBQXFCLENBQUksS0FBa0I7SUFDdkQsT0FBTyxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ3pELENBQUM7QUFGRCxzREFFQztBQUVELFNBQWdCLGlCQUFpQixDQUFJLEdBQTZCLEVBQUUsRUFBb0I7SUFDcEYsS0FBSyxNQUFNLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDMUIsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ1g7QUFDTCxDQUFDO0FBSkQsOENBSUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICog6aG555uu56aB55So5Y6f55SfIFNldO+8iOWwj+a4uOaIj+i/kOihjOaXtuWvuemDqOWIhiBTZXQg55So5rOV5LiN56iz5a6a77yJ44CCXHJcbiAqIOeUqCBNYXA8SywgdHJ1ZT4g6KGo56S65oiQ5ZGY6ZuG5ZCI77yMQVBJIOS4jiBTZXQg5a+56b2Q44CCXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBNZW1iZXJzaGlwU2V0PEs+ID0gTWFwPEssIHRydWU+O1xyXG5leHBvcnQgdHlwZSBSZWFkb25seU1lbWJlcnNoaXBTZXQ8Sz4gPSBSZWFkb25seU1hcDxLLCB0cnVlPjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNZW1iZXJzaGlwU2V0PEs+KCk6IE1lbWJlcnNoaXBTZXQ8Sz4ge1xyXG4gICAgcmV0dXJuIG5ldyBNYXA8SywgdHJ1ZT4oKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG1lbWJlcnNoaXBBZGQ8Sz4oc2V0OiBNZW1iZXJzaGlwU2V0PEs+LCBrZXk6IEspOiBNZW1iZXJzaGlwU2V0PEs+IHtcclxuICAgIHNldC5zZXQoa2V5LCB0cnVlKTtcclxuICAgIHJldHVybiBzZXQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBtZW1iZXJzaGlwSGFzPEs+KHNldDogUmVhZG9ubHlNZW1iZXJzaGlwU2V0PEs+LCBrZXk6IEspOiBib29sZWFuIHtcclxuICAgIHJldHVybiBzZXQuaGFzKGtleSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBtZW1iZXJzaGlwRGVsZXRlPEs+KHNldDogTWVtYmVyc2hpcFNldDxLPiwga2V5OiBLKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gc2V0LmRlbGV0ZShrZXkpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbWVtYmVyc2hpcENsZWFyPEs+KHNldDogTWVtYmVyc2hpcFNldDxLPik6IHZvaWQge1xyXG4gICAgc2V0LmNsZWFyKCk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBtZW1iZXJzaGlwRnJvbUFycmF5PEs+KGl0ZW1zOiBJdGVyYWJsZTxLPik6IE1lbWJlcnNoaXBTZXQ8Sz4ge1xyXG4gICAgY29uc3Qgc2V0ID0gY3JlYXRlTWVtYmVyc2hpcFNldDxLPigpO1xyXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XHJcbiAgICAgICAgc2V0LnNldChpdGVtLCB0cnVlKTtcclxuICAgIH1cclxuICAgIHJldHVybiBzZXQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBtZW1iZXJzaGlwVG9BcnJheTxLPihzZXQ6IFJlYWRvbmx5TWVtYmVyc2hpcFNldDxLPik6IEtbXSB7XHJcbiAgICByZXR1cm4gWy4uLnNldC5rZXlzKCldO1xyXG59XHJcblxyXG4vKiog5Y676YeN5pWw57uE77yI5pu/5LujIEFycmF5LmZyb20obmV3IFNldCguLi4pKSAvIFsuLi5uZXcgU2V0KC4uLild77yJICovXHJcbmV4cG9ydCBmdW5jdGlvbiBtZW1iZXJzaGlwRGVkdXBlQXJyYXk8Sz4oaXRlbXM6IEl0ZXJhYmxlPEs+KTogS1tdIHtcclxuICAgIHJldHVybiBtZW1iZXJzaGlwVG9BcnJheShtZW1iZXJzaGlwRnJvbUFycmF5KGl0ZW1zKSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBtZW1iZXJzaGlwRm9yRWFjaDxLPihzZXQ6IFJlYWRvbmx5TWVtYmVyc2hpcFNldDxLPiwgZm46IChrZXk6IEspID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIGZvciAoY29uc3Qga2V5IG9mIHNldC5rZXlzKCkpIHtcclxuICAgICAgICBmbihrZXkpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==