🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

ken-all

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ken-all - npm Package Compare versions

Comparing version
0.3.0
to
0.4.0
+11
-0
CHANGELOG.md

@@ -5,2 +5,13 @@ # Changelog

## [0.4.0](https://github.com/numb86/ken-all/compare/v0.3.0...v0.4.0) (2021-05-07)
### ⚠ BREAKING CHANGES
* esm 形式のみに対応し、umd 形式と cjs 形式は対応から外す (#70)
### Features
* esm 形式のみに対応し、umd 形式と cjs 形式は対応から外す ([#70](https://github.com/numb86/ken-all/issues/70)) ([88578d1](https://github.com/numb86/ken-all/commit/88578d1c3413c2a537b2dff6d805680f995bce71))
## [0.3.0](https://github.com/numb86/ken-all/compare/v0.2.3...v0.3.0) (2021-05-07)

@@ -7,0 +18,0 @@

+1
-1

@@ -1,3 +0,3 @@

import { NormalizedAddress } from './address';
import { NormalizedAddress } from './address.js';
declare const KenAll: (postCode: string) => Promise<NormalizedAddress[]>;
export default KenAll;

@@ -37,4 +37,5 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {

};
import { generateAddressListFromText, extractTargetAddress, normalizeAddressList, } from './address';
import fetchCsv from './fetchCsv';
// To publish as an ESM package, need to use the .js extension
import { generateAddressListFromText, extractTargetAddress, normalizeAddressList, } from './address.js';
import fetchCsv from './fetchCsv.js';
var KenAll = function (postCode) { return __awaiter(void 0, void 0, void 0, function () {

@@ -41,0 +42,0 @@ var res, rawData, addressList, targetList;

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,EACpB,oBAAoB,GAErB,MAAM,WAAW,CAAC;AACnB,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,IAAM,MAAM,GAAG,UAAO,QAAgB;;;;;gBACpC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;oBAChC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;iBACnD;gBACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;oBAChC,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;iBAC7E;gBAEW,qBAAM,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAA;;gBAA1C,GAAG,GAAG,SAAoC;gBAChD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;oBACtB,sBAAO,EAAE,EAAC;iBACX;gBACD,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE;oBACrB,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;iBACnC;gBAEuB,qBAAM,GAAG,CAAC,IAAI,EAAE,EAAA;;gBAAlC,OAAO,GAAW,SAAgB;gBAElC,WAAW,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC;gBACnD,UAAU,GAAG,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;gBACxE,sBAAO,oBAAoB,CAAC,UAAU,CAAC,EAAC;;;KACzC,CAAC;AAEF,eAAe,MAAM,CAAC"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAA8D;AAC9D,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,EACpB,oBAAoB,GAErB,MAAM,cAAc,CAAC;AACtB,OAAO,QAAQ,MAAM,eAAe,CAAC;AAErC,IAAM,MAAM,GAAG,UAAO,QAAgB;;;;;gBACpC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;oBAChC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;iBACnD;gBACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;oBAChC,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;iBAC7E;gBAEW,qBAAM,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAA;;gBAA1C,GAAG,GAAG,SAAoC;gBAChD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;oBACtB,sBAAO,EAAE,EAAC;iBACX;gBACD,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE;oBACrB,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;iBACnC;gBAEuB,qBAAM,GAAG,CAAC,IAAI,EAAE,EAAA;;gBAAlC,OAAO,GAAW,SAAgB;gBAElC,WAAW,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC;gBACnD,UAAU,GAAG,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;gBACxE,sBAAO,oBAAoB,CAAC,UAAU,CAAC,EAAC;;;KACzC,CAAC;AAEF,eAAe,MAAM,CAAC"}
{
"name": "ken-all",
"version": "0.3.0",
"version": "0.4.0",
"description": "Ken All は、郵便番号で住所を検索できる npm パッケージです。",

@@ -11,3 +11,3 @@ "keywords": [

"engines": {
"node": ">=12.13.0",
"node": ">=12.22.1",
"yarn": ">=1.19.0"

@@ -28,15 +28,10 @@ },

"license": "MIT",
"main": "./dist/index.js",
"module": "./esm/index.js",
"types": "./dist/index.d.ts",
"exports": "./esm/index.js",
"type": "module",
"types": "./esm/index.d.ts",
"files": [
"dist",
"esm",
"umd"
"esm"
],
"scripts": {
"build": "yarn && run-p build:*",
"build:cjs": "mkdir -p ./dist && rm -rf dist/* && tsc -p ./tsconfig.cjs.json",
"build:esm": "mkdir -p ./esm && rm -rf esm/* && tsc -p ./tsconfig.esm.json",
"build:umd": "mkdir -p ./umd && rm -rf umd/* && webpack --mode=production",
"build": "yarn && mkdir -p ./esm && rm -rf esm/* && tsc -p ./tsconfig.esm.json",
"lint": "run-p lint:*",

@@ -73,6 +68,3 @@ "lint:src": "eslint './src/**/*.ts'",

"standard-version": "^9.0.0",
"ts-loader": "^6.2.0",
"ts-node": "^8.4.1",
"webpack": "^4.43.0",
"webpack-cli": "^3.3.9"
"ts-node": "^8.4.1"
},

@@ -82,6 +74,3 @@ "dependencies": {

"typescript": "^4.2.3"
},
"resolutions": {
"terser-webpack-plugin": "^1.4.5"
}
}

@@ -203,4 +203,4 @@ <div align="center">

`0.2.0`以降のバージョンは`https://unpkg.com/ken-all@{バージョン番号}/umd/index.js`で読み込めます。
読み込み後、`KenAll.default`という形で利用できます。
`0.4.0`以降のバージョンは`https://unpkg.com/ken-all@{バージョン番号}/esm/index.js`で読み込めます。
読み込み後、`KenAll`という形で利用できます。

@@ -218,4 +218,4 @@ ```html

<script src="https://unpkg.com/ken-all@0.2.0/umd/index.js"></script>
<script>
<script src="https://unpkg.com/ken-all@0.4.0/esm/index.js" type="module"></script>
<script type="module">
const searchBoxElem = document.querySelector('#post-code');

@@ -228,3 +228,3 @@

const resultTextElem = document.querySelector('#result');
KenAll.default(postCode).then(res => {
KenAll(postCode).then(res => {
if (res.length === 0) {

@@ -231,0 +231,0 @@ resultTextElem.textContent = '該当する住所はありません';

declare type Address = [string, string, string, string];
export declare type NormalizedAddress = [string, string, string];
export declare const generateAddressListFromText: (rawData: string) => Address[];
export declare const extractTargetAddress: (postCodeBack: string, addressList: Address[]) => Address[];
export declare const normalizeAddressList: (addressList: Address[]) => NormalizedAddress[];
export {};
"use strict";
var __spreadArray = (this && this.__spreadArray) || function (to, from) {
for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
to[j] = from[i];
return to;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.normalizeAddressList = exports.extractTargetAddress = exports.generateAddressListFromText = void 0;
var generateAddressListFromText = function (rawData) {
var lines = rawData
.split('\n')
.filter(function (line) { return line.length > 0; });
return lines.map(function (line) {
var address = line.split(',');
if (address.length !== 4)
throw new Error('CSV was broken.');
return address.map(function (item) {
return item.replace(/"/g, '');
});
});
};
exports.generateAddressListFromText = generateAddressListFromText;
var extractTargetAddress = function (postCodeBack, addressList) {
return addressList.filter(function (address) { return address[0] === postCodeBack; });
};
exports.extractTargetAddress = extractTargetAddress;
var removeFirstItemFromAddress = function (address) {
var copiedArray = __spreadArray([], address);
copiedArray.shift();
if (copiedArray.length !== 3) {
throw new Error('Failed removeFirstItemFromAddress.');
}
return copiedArray;
};
var normalizeAddressList = function (addressList) {
return addressList.map(function (address) { return removeFirstItemFromAddress(address); });
};
exports.normalizeAddressList = normalizeAddressList;
//# sourceMappingURL=address.js.map
{"version":3,"file":"address.js","sourceRoot":"","sources":["../src/address.ts"],"names":[],"mappings":";;;;;;;;AAGO,IAAM,2BAA2B,GAAG,UAAC,OAAe;IACzD,IAAM,KAAK,GAAa,OAAO;SAC5B,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,UAAC,IAAY,IAAc,OAAA,IAAI,CAAC,MAAM,GAAG,CAAC,EAAf,CAAe,CAAC,CAAC;IACtD,OAAO,KAAK,CAAC,GAAG,CACd,UAAC,IAAY;QACX,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC7D,OAAO,OAAO,CAAC,GAAG,CAAC,UAAC,IAAY;YAC9B,OAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QAAtB,CAAsB,CACZ,CAAC;IACf,CAAC,CACF,CAAC;AACJ,CAAC,CAAC;AAbW,QAAA,2BAA2B,+BAatC;AAEK,IAAM,oBAAoB,GAAG,UAClC,YAAoB,EACpB,WAAsB;IAEtB,OAAA,WAAW,CAAC,MAAM,CAChB,UAAC,OAAgB,IAAc,OAAA,OAAO,CAAC,CAAC,CAAC,KAAK,YAAY,EAA3B,CAA2B,CAC3D;AAFD,CAEC,CAAC;AANS,QAAA,oBAAoB,wBAM7B;AAEJ,IAAM,0BAA0B,GAAG,UAAC,OAAgB;IAClD,IAAM,WAAW,qBAAO,OAAO,CAAC,CAAC;IACjC,WAAW,CAAC,KAAK,EAAE,CAAC;IACpB,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;KACvD;IACD,OAAO,WAAgC,CAAC;AAC1C,CAAC,CAAC;AAEK,IAAM,oBAAoB,GAAG,UAClC,WAAsB;IAEtB,OAAA,WAAW,CAAC,GAAG,CACb,UAAC,OAAgB,IAAwB,OAAA,0BAA0B,CAAC,OAAO,CAAC,EAAnC,CAAmC,CAC7E;AAFD,CAEC,CAAC;AALS,QAAA,oBAAoB,wBAK7B"}
declare const fetchCsv: (postCodeFront: string) => Promise<Response>;
export default fetchCsv;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var fetchCsv = function (postCodeFront) {
return fetch("https://ken-all.numb86.net/csv/" + postCodeFront + ".csv", { mode: 'cors' });
};
exports.default = fetchCsv;
//# sourceMappingURL=fetchCsv.js.map
{"version":3,"file":"fetchCsv.js","sourceRoot":"","sources":["../src/fetchCsv.ts"],"names":[],"mappings":";;AAAA,IAAM,QAAQ,GAAG,UAAC,aAAqB;IACrC,OAAA,KAAK,CAAC,oCAAkC,aAAa,SAAM,EAAE,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;AAA5E,CAA4E,CAAC;AAE/E,kBAAe,QAAQ,CAAC"}
import { NormalizedAddress } from './address';
declare const KenAll: (postCode: string) => Promise<NormalizedAddress[]>;
export default KenAll;
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var address_1 = require("./address");
var fetchCsv_1 = __importDefault(require("./fetchCsv"));
var KenAll = function (postCode) { return __awaiter(void 0, void 0, void 0, function () {
var res, rawData, addressList, targetList;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
if (typeof postCode !== 'string') {
throw new Error('The argument must be a string.');
}
if (!/^[0-9]{7}$/.test(postCode)) {
throw new Error('The post code is always seven digits half-width numbers.');
}
return [4 /*yield*/, fetchCsv_1.default(postCode.slice(0, 3))];
case 1:
res = _a.sent();
if (res.status === 404) {
return [2 /*return*/, []];
}
if (res.status >= 400) {
throw new Error('Network error.');
}
return [4 /*yield*/, res.text()];
case 2:
rawData = _a.sent();
addressList = address_1.generateAddressListFromText(rawData);
targetList = address_1.extractTargetAddress(postCode.slice(3), addressList);
return [2 /*return*/, address_1.normalizeAddressList(targetList)];
}
});
}); };
exports.default = KenAll;
//# sourceMappingURL=index.js.map
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAKmB;AACnB,wDAAkC;AAElC,IAAM,MAAM,GAAG,UAAO,QAAgB;;;;;gBACpC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;oBAChC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;iBACnD;gBACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;oBAChC,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;iBAC7E;gBAEW,qBAAM,kBAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAA;;gBAA1C,GAAG,GAAG,SAAoC;gBAChD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;oBACtB,sBAAO,EAAE,EAAC;iBACX;gBACD,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE;oBACrB,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;iBACnC;gBAEuB,qBAAM,GAAG,CAAC,IAAI,EAAE,EAAA;;gBAAlC,OAAO,GAAW,SAAgB;gBAElC,WAAW,GAAG,qCAA2B,CAAC,OAAO,CAAC,CAAC;gBACnD,UAAU,GAAG,8BAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;gBACxE,sBAAO,8BAAoB,CAAC,UAAU,CAAC,EAAC;;;KACzC,CAAC;AAEF,kBAAe,MAAM,CAAC"}
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.KenAll=t():e.KenAll=t()}(window,(function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){"use strict";n.r(t);var r=function(e,t){for(var n=0,r=t.length,o=e.length;n<r;n++,o++)e[o]=t[n];return e},o=function(e){return e.map((function(e){return function(e){var t=r([],e);if(t.shift(),3!==t.length)throw new Error("Failed removeFirstItemFromAddress.");return t}(e)}))},u=function(e){return fetch("https://ken-all.numb86.net/csv/"+e+".csv",{mode:"cors"})},i=function(e,t,n,r){return new(n||(n=Promise))((function(o,u){function i(e){try{c(r.next(e))}catch(e){u(e)}}function f(e){try{c(r.throw(e))}catch(e){u(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,f)}c((r=r.apply(e,t||[])).next())}))},f=function(e,t){var n,r,o,u,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return u={next:f(0),throw:f(1),return:f(2)},"function"==typeof Symbol&&(u[Symbol.iterator]=function(){return this}),u;function f(u){return function(f){return function(u){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(o=2&u[0]?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,r=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){i=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){i.label=u[1];break}if(6===u[0]&&i.label<o[1]){i.label=o[1],o=u;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(u);break}o[2]&&i.ops.pop(),i.trys.pop();continue}u=t.call(e,i)}catch(e){u=[6,e],r=0}finally{n=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([u,f])}}};t.default=function(e){return i(void 0,void 0,void 0,(function(){var t,n,r,i;return f(this,(function(f){switch(f.label){case 0:if("string"!=typeof e)throw new Error("The argument must be a string.");if(!/^[0-9]{7}$/.test(e))throw new Error("The post code is always seven digits half-width numbers.");return[4,u(e.slice(0,3))];case 1:if(404===(t=f.sent()).status)return[2,[]];if(t.status>=400)throw new Error("Network error.");return[4,t.text()];case 2:return n=f.sent(),r=function(e){return e.split("\n").filter((function(e){return e.length>0})).map((function(e){var t=e.split(",");if(4!==t.length)throw new Error("CSV was broken.");return t.map((function(e){return e.replace(/"/g,"")}))}))}(n),i=function(e,t){return t.filter((function(t){return t[0]===e}))}(e.slice(3),r),[2,o(i)]}}))}))}}])}));