@sesamecare-oss/us-postal-codes 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,5 @@
1
+ {
2
+ "extends": [
3
+ "@commitlint/config-conventional"
4
+ ]
5
+ }
package/.eslintignore ADDED
@@ -0,0 +1,10 @@
1
+ build/
2
+ coverage
3
+ jest.config.js
4
+ .eslintrc.js
5
+ coconfig.?s
6
+ src/generated
7
+ node_modules
8
+ migrations/
9
+ .yarn/
10
+ **/*.k6.js
package/.eslintrc.js ADDED
@@ -0,0 +1,14 @@
1
+ /**
2
+ * This file is generated by coconfig. Do not edit it directly.
3
+ * Instead, edit the coconfig.js or coconfig.ts file in your project root.
4
+ *
5
+ * See https://github.com/gas-buddy/coconfig for more information.
6
+ * @version coconfig@1.0.0
7
+ */
8
+ const configModule = require('@openapi-typescript-infra/coconfig');
9
+
10
+ const configItem = configModule.default || configModule.config || configModule;
11
+ const { configuration } = configItem && configItem['.eslintrc.js'];
12
+ const resolved = typeof configuration === 'function' ? configuration() : configuration;
13
+
14
+ module.exports = resolved;
@@ -0,0 +1,62 @@
1
+ name: Node build, test and publish
2
+
3
+ on:
4
+ pull_request:
5
+ types: [assigned, opened, synchronize, reopened]
6
+ push:
7
+ branches:
8
+ - main
9
+
10
+ permissions:
11
+ contents: read
12
+
13
+ jobs:
14
+ prepare:
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - name: Cleanup stale actions
18
+ uses: styfle/cancel-workflow-action@0.11.0
19
+ with:
20
+ access_token: ${{ github.token }}
21
+
22
+ build:
23
+ runs-on: ubuntu-latest
24
+ steps:
25
+ - uses: actions/checkout@v3
26
+ - name: Use Node.js 18
27
+ uses: actions/setup-node@v3
28
+ with:
29
+ node-version: 20
30
+ cache: yarn
31
+ - name: npm install, lint, build, and test
32
+ run: |
33
+ yarn install --immutable
34
+ yarn lint
35
+ yarn build
36
+ yarn test
37
+ env:
38
+ CI: true
39
+
40
+ publish-npm:
41
+ needs: build
42
+ if: github.ref == 'refs/heads/main'
43
+ permissions:
44
+ contents: write
45
+ issues: write
46
+ id-token: write
47
+ pull-requests: write
48
+ runs-on: ubuntu-latest
49
+ steps:
50
+ - uses: actions/checkout@v1
51
+ - uses: actions/setup-node@v3
52
+ with:
53
+ node-version: 20
54
+ cache: yarn
55
+ - run: yarn install --immutable
56
+ - run: yarn build
57
+ - name: Release
58
+ env:
59
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
60
+ NPM_TOKEN: ${{ secrets.SESAMECARE_OSS_NPM_TOKEN }}
61
+ run: |
62
+ yarn dlx semantic-release
package/.prettierrc.js ADDED
@@ -0,0 +1,14 @@
1
+ /**
2
+ * This file is generated by coconfig. Do not edit it directly.
3
+ * Instead, edit the coconfig.js or coconfig.ts file in your project root.
4
+ *
5
+ * See https://github.com/gas-buddy/coconfig for more information.
6
+ * @version coconfig@1.0.0
7
+ */
8
+ const configModule = require('@openapi-typescript-infra/coconfig');
9
+
10
+ const configItem = configModule.default || configModule.config || configModule;
11
+ const { configuration } = configItem && configItem['.prettierrc.js'];
12
+ const resolved = typeof configuration === 'function' ? configuration() : configuration;
13
+
14
+ module.exports = resolved;
package/Makefile ADDED
@@ -0,0 +1,15 @@
1
+ # Download a list of US postal code data and build a sqlite3 db from it.
2
+ # This should be run periodically, but on the order of like a year, as things change VERY slowly.
3
+ uspostalcodes: assets/uspostalcodes.db
4
+
5
+ assets/uspostalcodes.db:
6
+ mkdir -p assets
7
+ rm -f assets/uspostalcodes.db
8
+ curl -o temp_input.zip https://download.geonames.org/export/zip/US.zip
9
+ unzip -p temp_input.zip US.txt | awk -F'\t' '{print $$2 "\t" $$3 "\t" $$5 "\t" $$10 "\t" $$11}' > temp_output.txt
10
+ rm temp_input.zip
11
+ sqlite3 assets/uspostalcodes.db "CREATE TABLE IF NOT EXISTS locations (id INTEGER PRIMARY KEY AUTOINCREMENT, postal_code TEXT, city TEXT, state TEXT, lat REAL, lng REAL);"
12
+ awk -F'\t' '{ gsub(/'\''/, "'\'''\''", $$1); gsub(/'\''/, "'\'''\''", $$2); gsub(/'\''/, "'\'''\''", $$3); print "INSERT INTO locations (postal_code, city, state, lat, lng) VALUES ('\''"$$1"'\'', '\''"$$2"'\'', '\''"$$3"'\'', "$$4", "$$5");"}' temp_output.txt | sqlite3 assets/uspostalcodes.db
13
+ sqlite3 assets/uspostalcodes.db "DELETE FROM locations WHERE state = '';"
14
+ sqlite3 assets/uspostalcodes.db "CREATE INDEX idx_postal_code ON locations (postal_code);"
15
+ rm temp_output.txt
package/README.md ADDED
@@ -0,0 +1,13 @@
1
+ # us-postal-codes
2
+
3
+ Lookup city, state and geolocation by US postal codes. Includes infra for fetching the latest values.
4
+
5
+ ```typescript
6
+ import { USPostalCodes } from '@sesamecare-oss/us-postal-codes';
7
+
8
+ const zips = new USPostalCodes();
9
+ await zips.open();
10
+ const results = await zips.lookup('02446');
11
+ ```
12
+
13
+ Uses [geonames zip code data](https://www.geonames.org/about.html) under [Creative Commons license](https://creativecommons.org/licenses/by/4.0/).
Binary file
@@ -0,0 +1,11 @@
1
+ import type { Database } from 'sqlite';
2
+ export declare class USPostalCodes {
3
+ db: Database | undefined;
4
+ open(): Promise<void>;
5
+ lookup(zipCode: string): Promise<{
6
+ city: string;
7
+ state: string;
8
+ lat: number;
9
+ lng: number;
10
+ }[]>;
11
+ }
package/build/index.js ADDED
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.USPostalCodes = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const sqlite3_1 = require("sqlite3");
9
+ const sqlite_1 = require("sqlite");
10
+ class USPostalCodes {
11
+ db;
12
+ async open() {
13
+ this.db = await (0, sqlite_1.open)({
14
+ filename: path_1.default.join(__dirname, '../assets/uspostalcodes.db'),
15
+ driver: sqlite3_1.Database,
16
+ });
17
+ }
18
+ async lookup(zipCode) {
19
+ if (!this.db) {
20
+ throw new Error('Postal code database unavailable');
21
+ }
22
+ return this.db.all('SELECT city, state, lat, lng FROM locations WHERE postal_code = ?', zipCode);
23
+ }
24
+ }
25
+ exports.USPostalCodes = USPostalCodes;
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAExB,qCAAqD;AAErD,mCAA8B;AAE9B,MAAa,aAAa;IACxB,EAAE,CAAuB;IAEzB,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,EAAE,GAAG,MAAM,IAAA,aAAI,EAAC;YACnB,QAAQ,EAAE,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,4BAA4B,CAAC;YAC5D,MAAM,EAAE,kBAAc;SACvB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAe;QAQ1B,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;SACrD;QACD,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,mEAAmE,EAAE,OAAO,CAAC,CAAC;IACnG,CAAC;CACF;AAvBD,sCAuBC"}
@@ -0,0 +1 @@
1
+ {"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/undici-types/header.d.ts","../node_modules/undici-types/readable.d.ts","../node_modules/undici-types/file.d.ts","../node_modules/undici-types/fetch.d.ts","../node_modules/undici-types/formdata.d.ts","../node_modules/undici-types/connector.d.ts","../node_modules/undici-types/client.d.ts","../node_modules/undici-types/errors.d.ts","../node_modules/undici-types/dispatcher.d.ts","../node_modules/undici-types/global-dispatcher.d.ts","../node_modules/undici-types/global-origin.d.ts","../node_modules/undici-types/pool-stats.d.ts","../node_modules/undici-types/pool.d.ts","../node_modules/undici-types/handlers.d.ts","../node_modules/undici-types/balanced-pool.d.ts","../node_modules/undici-types/agent.d.ts","../node_modules/undici-types/mock-interceptor.d.ts","../node_modules/undici-types/mock-agent.d.ts","../node_modules/undici-types/mock-client.d.ts","../node_modules/undici-types/mock-pool.d.ts","../node_modules/undici-types/mock-errors.d.ts","../node_modules/undici-types/proxy-agent.d.ts","../node_modules/undici-types/api.d.ts","../node_modules/undici-types/cookies.d.ts","../node_modules/undici-types/patch.d.ts","../node_modules/undici-types/filereader.d.ts","../node_modules/undici-types/diagnostics-channel.d.ts","../node_modules/undici-types/websocket.d.ts","../node_modules/undici-types/content-type.d.ts","../node_modules/undici-types/cache.d.ts","../node_modules/undici-types/interceptors.d.ts","../node_modules/undici-types/index.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/dom-events.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/readline/promises.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/test.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/index.d.ts","../node_modules/sqlite3/lib/sqlite3.d.ts","../node_modules/sqlite/build/interfaces.d.ts","../node_modules/sqlite/build/Statement.d.ts","../node_modules/sqlite/build/Database.d.ts","../node_modules/sqlite/build/index.d.ts","../src/index.ts","../node_modules/@types/chai/index.d.ts","../node_modules/@types/chai-subset/index.d.ts","../node_modules/@types/json-schema/index.d.ts","../node_modules/@types/json5/index.d.ts","../node_modules/@types/normalize-package-data/index.d.ts","../node_modules/@types/semver/classes/semver.d.ts","../node_modules/@types/semver/functions/parse.d.ts","../node_modules/@types/semver/functions/valid.d.ts","../node_modules/@types/semver/functions/clean.d.ts","../node_modules/@types/semver/functions/inc.d.ts","../node_modules/@types/semver/functions/diff.d.ts","../node_modules/@types/semver/functions/major.d.ts","../node_modules/@types/semver/functions/minor.d.ts","../node_modules/@types/semver/functions/patch.d.ts","../node_modules/@types/semver/functions/prerelease.d.ts","../node_modules/@types/semver/functions/compare.d.ts","../node_modules/@types/semver/functions/rcompare.d.ts","../node_modules/@types/semver/functions/compare-loose.d.ts","../node_modules/@types/semver/functions/compare-build.d.ts","../node_modules/@types/semver/functions/sort.d.ts","../node_modules/@types/semver/functions/rsort.d.ts","../node_modules/@types/semver/functions/gt.d.ts","../node_modules/@types/semver/functions/lt.d.ts","../node_modules/@types/semver/functions/eq.d.ts","../node_modules/@types/semver/functions/neq.d.ts","../node_modules/@types/semver/functions/gte.d.ts","../node_modules/@types/semver/functions/lte.d.ts","../node_modules/@types/semver/functions/cmp.d.ts","../node_modules/@types/semver/functions/coerce.d.ts","../node_modules/@types/semver/classes/comparator.d.ts","../node_modules/@types/semver/classes/range.d.ts","../node_modules/@types/semver/functions/satisfies.d.ts","../node_modules/@types/semver/ranges/max-satisfying.d.ts","../node_modules/@types/semver/ranges/min-satisfying.d.ts","../node_modules/@types/semver/ranges/to-comparators.d.ts","../node_modules/@types/semver/ranges/min-version.d.ts","../node_modules/@types/semver/ranges/valid.d.ts","../node_modules/@types/semver/ranges/outside.d.ts","../node_modules/@types/semver/ranges/gtr.d.ts","../node_modules/@types/semver/ranges/ltr.d.ts","../node_modules/@types/semver/ranges/intersects.d.ts","../node_modules/@types/semver/ranges/simplify.d.ts","../node_modules/@types/semver/ranges/subset.d.ts","../node_modules/@types/semver/internals/identifiers.d.ts","../node_modules/@types/semver/index.d.ts"],"fileInfos":[{"version":"2ac9cdcfb8f8875c18d14ec5796a8b029c426f73ad6dc3ffb580c228b58d1c44","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"dc48272d7c333ccf58034c0026162576b7d50ea0e69c3b9292f803fc20720fd5","impliedFormat":1},{"version":"9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","impliedFormat":1},{"version":"0075fa5ceda385bcdf3488e37786b5a33be730e8bc4aa3cf1e78c63891752ce8","affectsGlobalScope":true,"impliedFormat":1},{"version":"f296963760430fb65b4e5d91f0ed770a91c6e77455bacf8fa23a1501654ede0e","affectsGlobalScope":true,"impliedFormat":1},{"version":"09226e53d1cfda217317074a97724da3e71e2c545e18774484b61562afc53cd2","affectsGlobalScope":true,"impliedFormat":1},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b41361862022eb72fcc8a7f34680ac842aca802cf4bc1f915e8c620c9ce4331","affectsGlobalScope":true,"impliedFormat":1},{"version":"f7bd636ae3a4623c503359ada74510c4005df5b36de7f23e1db8a5c543fd176b","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"0c20f4d2358eb679e4ae8a4432bdd96c857a2960fd6800b21ec4008ec59d60ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true,"impliedFormat":1},{"version":"82d0d8e269b9eeac02c3bd1c9e884e85d483fcb2cd168bccd6bc54df663da031","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"b8deab98702588840be73d67f02412a2d45a417a3c097b2e96f7f3a42ac483d1","affectsGlobalScope":true,"impliedFormat":1},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"376d554d042fb409cb55b5cbaf0b2b4b7e669619493c5d18d5fa8bd67273f82a","affectsGlobalScope":true,"impliedFormat":1},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true,"impliedFormat":1},{"version":"c4138a3dd7cd6cf1f363ca0f905554e8d81b45844feea17786cdf1626cb8ea06","affectsGlobalScope":true,"impliedFormat":1},{"version":"6ff3e2452b055d8f0ec026511c6582b55d935675af67cdb67dd1dc671e8065df","affectsGlobalScope":true,"impliedFormat":1},{"version":"03de17b810f426a2f47396b0b99b53a82c1b60e9cba7a7edda47f9bb077882f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"8184c6ddf48f0c98429326b428478ecc6143c27f79b79e85740f17e6feb090f1","affectsGlobalScope":true,"impliedFormat":1},{"version":"261c4d2cf86ac5a89ad3fb3fafed74cbb6f2f7c1d139b0540933df567d64a6ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"6af1425e9973f4924fca986636ac19a0cf9909a7e0d9d3009c349e6244e957b6","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"15a630d6817718a2ddd7088c4f83e4673fde19fa992d2eae2cf51132a302a5d3","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7e9f95a7387e3f66be0ed6db43600c49cec33a3900437ce2fd350d9b7cb16f2","affectsGlobalScope":true,"impliedFormat":1},{"version":"01e0ee7e1f661acedb08b51f8a9b7d7f959e9cdb6441360f06522cc3aea1bf2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac17a97f816d53d9dd79b0d235e1c0ed54a8cc6a0677e9a3d61efb480b2a3e4e","affectsGlobalScope":true,"impliedFormat":1},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true,"impliedFormat":1},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true,"impliedFormat":1},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true,"impliedFormat":1},{"version":"9cc66b0513ad41cb5f5372cca86ef83a0d37d1c1017580b7dace3ea5661836df","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"709efdae0cb5df5f49376cde61daacc95cdd44ae4671da13a540da5088bf3f30","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc496ef4377553e461efcf7cc5a5a57cf59f9962aea06b5e722d54a36bf66ea1","affectsGlobalScope":true,"impliedFormat":1},{"version":"038a2f66a34ee7a9c2fbc3584c8ab43dff2995f8c68e3f566f4c300d2175e31e","affectsGlobalScope":true,"impliedFormat":1},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c92f2c27b06c1a41b88f6db8299205aee52c2a2943f7ed29bd585977f254e8","affectsGlobalScope":true,"impliedFormat":1},{"version":"930b0e15811f84e203d3c23508674d5ded88266df4b10abee7b31b2ac77632d2","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"b9ea5778ff8b50d7c04c9890170db34c26a5358cccba36844fe319f50a43a61a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true,"impliedFormat":1},{"version":"307c8b7ebbd7f23a92b73a4c6c0a697beca05b06b036c23a34553e5fe65e4fdc","affectsGlobalScope":true,"impliedFormat":1},{"version":"f35a831e4f0fe3b3697f4a0fe0e3caa7624c92b78afbecaf142c0f93abfaf379","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"09df3b4f1c937f02e7fee2836d4c4d7a63e66db70fd4d4e97126f4542cc21d9d","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","impliedFormat":1},{"version":"3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","impliedFormat":1},{"version":"e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","impliedFormat":1},{"version":"471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","impliedFormat":1},{"version":"c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","impliedFormat":1},{"version":"40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","impliedFormat":1},{"version":"339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","impliedFormat":1},{"version":"9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","impliedFormat":1},{"version":"8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","impliedFormat":1},{"version":"4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1","impliedFormat":1},{"version":"4d719cfab49ae4045d15cb6bed0f38ad3d7d6eb7f277d2603502a0f862ca3182","affectsGlobalScope":true,"impliedFormat":1},{"version":"cce1f5f86974c1e916ec4a8cab6eec9aa8e31e8148845bf07fbaa8e1d97b1a2c","impliedFormat":1},{"version":"5a856afb15f9dc9983faa391dde989826995a33983c1cccb173e9606688e9709","affectsGlobalScope":true,"impliedFormat":1},{"version":"546ab07e19116d935ad982e76a223275b53bff7771dab94f433b7ab04652936e","impliedFormat":1},{"version":"7b43160a49cf2c6082da0465876c4a0b164e160b81187caeb0a6ca7a281e85ba","impliedFormat":1},{"version":"aefb5a4a209f756b580eb53ea771cca8aad411603926f307a5e5b8ec6b16dcf6","affectsGlobalScope":true,"impliedFormat":1},{"version":"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","impliedFormat":1},{"version":"f5a8b7ec4b798c88679194a8ebc25dcb6f5368e6e5811fcda9fe12b0d445b8db","impliedFormat":1},{"version":"b86e1a45b29437f3a99bad4147cb9fe2357617e8008c0484568e5bb5138d6e13","impliedFormat":1},{"version":"b5b719a47968cd61a6f83f437236bb6fe22a39223b6620da81ef89f5d7a78fb7","impliedFormat":1},{"version":"42c431e7965b641106b5e25ab3283aa4865ca7bb9909610a2abfa6226e4348be","impliedFormat":1},{"version":"0b7e732af0a9599be28c091d6bd1cb22c856ec0d415d4749c087c3881ca07a56","impliedFormat":1},{"version":"b7fe70be794e13d1b7940e318b8770cd1fb3eced7707805318a2e3aaac2c3e9e","impliedFormat":1},{"version":"2c71199d1fc83bf17636ad5bf63a945633406b7b94887612bba4ef027c662b3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d6138a264ddc6f94f16e99d4e117a2d6eb31b217891cf091b6437a2f114d561","affectsGlobalScope":true,"impliedFormat":1},{"version":"3b4c85eea12187de9929a76792b98406e8778ce575caca8c574f06da82622c54","impliedFormat":1},{"version":"f788131a39c81e0c9b9e463645dd7132b5bc1beb609b0e31e5c1ceaea378b4df","impliedFormat":1},{"version":"0c236069ce7bded4f6774946e928e4b3601894d294054af47a553f7abcafe2c1","impliedFormat":1},{"version":"21894466693f64957b9bd4c80fa3ec7fdfd4efa9d1861e070aca23f10220c9b2","impliedFormat":1},{"version":"396a8939b5e177542bdf9b5262b4eee85d29851b2d57681fa9d7eae30e225830","impliedFormat":1},{"version":"21773f5ac69ddf5a05636ba1f50b5239f4f2d27e4420db147fc2f76a5ae598ac","impliedFormat":1},{"version":"6ec93c745c5e3e25e278fa35451bf18ef857f733de7e57c15e7920ac463baa2a","affectsGlobalScope":true,"impliedFormat":1},{"version":"a5fe4cc622c3bf8e09ababde5f4096ceac53163eefcd95e9cd53f062ff9bb67a","impliedFormat":1},{"version":"30c2ec6abf6aaa60eb4f32fb1235531506b7961c6d1bdc7430711aec8fd85295","impliedFormat":1},{"version":"0f05c06ff6196958d76b865ae17245b52d8fe01773626ac3c43214a2458ea7b7","impliedFormat":1},{"version":"308b84e1943ef30015469770e931eb21b795348893b2a6562ca54ea8f0b3c41c","affectsGlobalScope":true,"impliedFormat":1},{"version":"d48009cbe8a30a504031cc82e1286f78fed33b7a42abf7602c23b5547b382563","affectsGlobalScope":true,"impliedFormat":1},{"version":"7aaeb5e62f90e1b2be0fc4844df78cdb1be15c22b427bc6c39d57308785b8f10","impliedFormat":1},{"version":"3ba30205a029ebc0c91d7b1ab4da73f6277d730ca1fc6692d5a9144c6772c76b","impliedFormat":1},{"version":"d8dba11dc34d50cb4202de5effa9a1b296d7a2f4a029eec871f894bddfb6430d","impliedFormat":1},{"version":"8b71dd18e7e63b6f991b511a201fad7c3bf8d1e0dd98acb5e3d844f335a73634","impliedFormat":1},{"version":"01d8e1419c84affad359cc240b2b551fb9812b450b4d3d456b64cda8102d4f60","impliedFormat":1},{"version":"458b216959c231df388a5de9dcbcafd4b4ca563bc3784d706d0455467d7d4942","impliedFormat":1},{"version":"269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","impliedFormat":1},{"version":"93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","impliedFormat":1},{"version":"f8c87b19eae111f8720b0345ab301af8d81add39621b63614dfc2d15fd6f140a","impliedFormat":1},{"version":"831c22d257717bf2cbb03afe9c4bcffc5ccb8a2074344d4238bf16d3a857bb12","impliedFormat":1},{"version":"24ba151e213906027e2b1f5223d33575a3612b0234a0e2b56119520bbe0e594b","affectsGlobalScope":true,"impliedFormat":1},{"version":"cbf046714f3a3ba2544957e1973ac94aa819fa8aa668846fa8de47eb1c41b0b2","affectsGlobalScope":true,"impliedFormat":1},{"version":"aa34c3aa493d1c699601027c441b9664547c3024f9dbab1639df7701d63d18fa","impliedFormat":1},{"version":"eae74e3d50820f37c72c0679fed959cd1e63c98f6a146a55b8c4361582fa6a52","impliedFormat":1},{"version":"7c651f8dce91a927ab62925e73f190763574c46098f2b11fb8ddc1b147a6709a","impliedFormat":1},{"version":"7440ab60f4cb031812940cc38166b8bb6fbf2540cfe599f87c41c08011f0c1df","impliedFormat":1},{"version":"aed89e3c18f4c659ee8153a76560dffda23e2d801e1e60d7a67abd84bc555f8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"0ed13c80faeb2b7160bffb4926ff299c468e67a37a645b3ae0917ba0db633c1b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e393915d3dc385e69c0e2390739c87b2d296a610662eb0b1cb85224e55992250","impliedFormat":1},{"version":"2f940651c2f30e6b29f8743fae3f40b7b1c03615184f837132b56ea75edad08b","impliedFormat":1},{"version":"5749c327c3f789f658072f8340786966c8b05ea124a56c1d8d60e04649495a4d","impliedFormat":1},{"version":"c9d62b2a51b2ff166314d8be84f6881a7fcbccd37612442cf1c70d27d5352f50","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7dbf5716d76846c7522e910896c5747b6df1abd538fee8f5291bdc843461795","impliedFormat":1},{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true,"impliedFormat":1},{"version":"b510d0a18e3db42ac9765d26711083ec1e8b4e21caaca6dc4d25ae6e8623f447","impliedFormat":1},{"version":"a39db87a3a3aa954ac3f6553b9fbfc642eb22bef7586cc1f0559e676aa073fa8","impliedFormat":1},{"version":"6000f350e1ff2ffcb895ac216cbf1e33c309424feb09227685558b3c3a16e960","impliedFormat":1},{"version":"42b4502b58a2f590858ad6f7a9e7eaca58c8d6e8881dead672f3589cfd360002","impliedFormat":1},{"version":"60a00e948199a2aceec07044df812d80c067459c2b6a1dea1424088d78b5318d","impliedFormat":1},{"version":"60eaf380e7bfed4e2801eca9062b16e5462003986f8c6c19cc671169fce33af6","impliedFormat":1},{"version":"88a7ffd961d12eb978f62702ccea6aae206803c4222f059a2d2a8237a28682a6","signature":"05fa083f65a0e3a117e4c1a63155835825c73eb90b7f642d53111dff35fb68ec","impliedFormat":1},{"version":"1501609e517a632d22e61a7bf3e8c73cd801260baba54203435387c1fef9d9d6","affectsGlobalScope":true,"impliedFormat":1},{"version":"54db406753da16e177f094aa66da79840f447de6d87ddd1543a80c9418c52545","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","impliedFormat":1},{"version":"22293bd6fa12747929f8dfca3ec1684a3fe08638aa18023dd286ab337e88a592","impliedFormat":1},{"version":"cc0700b1b97e18a3d5d9184470502d8762ec85158819d662730c3a8c5d702584","impliedFormat":1},{"version":"9871b7ee672bc16c78833bdab3052615834b08375cb144e4d2cba74473f4a589","impliedFormat":1},{"version":"c863198dae89420f3c552b5a03da6ed6d0acfa3807a64772b895db624b0de707","impliedFormat":1},{"version":"8b03a5e327d7db67112ebbc93b4f744133eda2c1743dbb0a990c61a8007823ef","impliedFormat":1},{"version":"86c73f2ee1752bac8eeeece234fd05dfcf0637a4fbd8032e4f5f43102faa8eec","impliedFormat":1},{"version":"42fad1f540271e35ca37cecda12c4ce2eef27f0f5cf0f8dd761d723c744d3159","impliedFormat":1},{"version":"ff3743a5de32bee10906aff63d1de726f6a7fd6ee2da4b8229054dfa69de2c34","impliedFormat":1},{"version":"83acd370f7f84f203e71ebba33ba61b7f1291ca027d7f9a662c6307d74e4ac22","impliedFormat":1},{"version":"1445cec898f90bdd18b2949b9590b3c012f5b7e1804e6e329fb0fe053946d5ec","impliedFormat":1},{"version":"0e5318ec2275d8da858b541920d9306650ae6ac8012f0e872fe66eb50321a669","impliedFormat":1},{"version":"cf530297c3fb3a92ec9591dd4fa229d58b5981e45fe6702a0bd2bea53a5e59be","impliedFormat":1},{"version":"c1f6f7d08d42148ddfe164d36d7aba91f467dbcb3caa715966ff95f55048b3a4","impliedFormat":1},{"version":"f4e9bf9103191ef3b3612d3ec0044ca4044ca5be27711fe648ada06fad4bcc85","impliedFormat":1},{"version":"0c1ee27b8f6a00097c2d6d91a21ee4d096ab52c1e28350f6362542b55380059a","impliedFormat":1},{"version":"7677d5b0db9e020d3017720f853ba18f415219fb3a9597343b1b1012cfd699f7","impliedFormat":1},{"version":"bc1c6bc119c1784b1a2be6d9c47addec0d83ef0d52c8fbe1f14a51b4dfffc675","impliedFormat":1},{"version":"52cf2ce99c2a23de70225e252e9822a22b4e0adb82643ab0b710858810e00bf1","impliedFormat":1},{"version":"770625067bb27a20b9826255a8d47b6b5b0a2d3dfcbd21f89904c731f671ba77","impliedFormat":1},{"version":"d1ed6765f4d7906a05968fb5cd6d1db8afa14dbe512a4884e8ea5c0f5e142c80","impliedFormat":1},{"version":"799c0f1b07c092626cf1efd71d459997635911bb5f7fc1196efe449bba87e965","impliedFormat":1},{"version":"2a184e4462b9914a30b1b5c41cf80c6d3428f17b20d3afb711fff3f0644001fd","impliedFormat":1},{"version":"9eabde32a3aa5d80de34af2c2206cdc3ee094c6504a8d0c2d6d20c7c179503cc","impliedFormat":1},{"version":"397c8051b6cfcb48aa22656f0faca2553c5f56187262135162ee79d2b2f6c966","impliedFormat":1},{"version":"a8ead142e0c87dcd5dc130eba1f8eeed506b08952d905c47621dc2f583b1bff9","impliedFormat":1},{"version":"a02f10ea5f73130efca046429254a4e3c06b5475baecc8f7b99a0014731be8b3","impliedFormat":1},{"version":"f77ff4cd234d3fd18ddd5aeadb6f94374511931976d41f4b9f594cb71f7ce6f3","impliedFormat":1},{"version":"4c9a0564bb317349de6a24eb4efea8bb79898fa72ad63a1809165f5bd42970dd","impliedFormat":1},{"version":"4f18b4e6081e5e980ef53ddf57b9c959d36cffe1eb153865f512a01aeffb5e1e","impliedFormat":1},{"version":"7f17d4846a88eca5fe71c4474ef687ee89c4acf9b5372ab9b2ee68644b7e0fe0","impliedFormat":1},{"version":"b444a410d34fb5e98aa5ee2b381362044f4884652e8bc8a11c8fe14bbd85518e","impliedFormat":1},{"version":"c35808c1f5e16d2c571aa65067e3cb95afeff843b259ecfa2fc107a9519b5392","impliedFormat":1},{"version":"14d5dc055143e941c8743c6a21fa459f961cbc3deedf1bfe47b11587ca4b3ef5","impliedFormat":1},{"version":"a3ad4e1fc542751005267d50a6298e6765928c0c3a8dce1572f2ba6ca518661c","impliedFormat":1},{"version":"f237e7c97a3a89f4591afd49ecb3bd8d14f51a1c4adc8fcae3430febedff5eb6","impliedFormat":1},{"version":"3ffdfbec93b7aed71082af62b8c3e0cc71261cc68d796665faa1e91604fbae8f","impliedFormat":1},{"version":"662201f943ed45b1ad600d03a90dffe20841e725203ced8b708c91fcd7f9379a","impliedFormat":1},{"version":"c9ef74c64ed051ea5b958621e7fb853fe3b56e8787c1587aefc6ea988b3c7e79","impliedFormat":1},{"version":"2462ccfac5f3375794b861abaa81da380f1bbd9401de59ffa43119a0b644253d","impliedFormat":1},{"version":"34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","impliedFormat":1},{"version":"85f8ebd7f245e8bf29da270e8b53dcdd17528826ffd27176c5fc7e426213ef5a","impliedFormat":1}],"root":[150],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"esModuleInterop":true,"experimentalDecorators":true,"module":199,"outDir":"./","sourceMap":true,"strict":true,"target":9},"fileIdsList":[[137,151],[137],[59,137],[94,137],[95,100,128,137],[96,107,108,115,125,136,137],[96,97,107,115,137],[98,137],[99,100,108,116,137],[100,125,133,137],[101,103,107,115,137],[102,137],[103,104,137],[107,137],[105,107,137],[94,107,137],[107,108,109,125,136,137],[107,108,109,122,125,128,137],[92,137,141],[103,107,110,115,125,136,137],[107,108,110,111,115,125,133,136,137],[110,112,125,133,136,137],[59,60,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143],[107,113,137],[114,136,137,141],[103,107,115,125,137],[116,137],[117,137],[94,118,137],[119,135,137,141],[120,137],[121,137],[107,122,123,137],[122,124,137,139],[95,107,125,126,127,128,137],[95,125,127,137],[125,126,137],[128,137],[129,137],[94,125,137],[107,131,132,137],[131,132,137],[100,115,125,133,137],[134,137],[115,135,137],[95,110,121,136,137],[100,137],[125,137,138],[114,137,139],[137,140],[95,100,107,109,118,125,136,137,139,141],[125,137,142],[137,156,195],[137,156,180,195],[137,195],[137,156],[137,156,181,195],[137,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194],[137,181,195],[137,145,146,147],[137,145,146],[137,145,146,147,148],[137,145,147],[107,137,144],[69,73,136,137],[69,125,136,137],[64,137],[66,69,133,136,137],[115,133,137],[137,144],[64,137,144],[66,69,115,136,137],[61,62,65,68,95,107,125,136,137],[61,67,137],[65,69,95,128,136,137,144],[95,137,144],[85,95,137,144],[63,64,137,144],[69,137],[63,64,65,66,67,68,69,70,71,73,74,75,76,77,78,79,80,81,82,83,84,86,87,88,89,90,91,137],[69,76,77,137],[67,69,77,78,137],[68,137],[61,64,69,137],[69,73,77,78,137],[73,137],[67,69,72,136,137],[61,66,67,69,73,76,137],[95,125,137],[64,69,85,95,137,141,144],[117,137,145,149],[149]],"referencedMap":[[152,1],[151,2],[153,2],[154,2],[59,3],[60,3],[94,4],[95,5],[96,6],[97,7],[98,8],[99,9],[100,10],[101,11],[102,12],[103,13],[104,13],[106,14],[105,15],[107,16],[108,17],[109,18],[93,19],[143,2],[110,20],[111,21],[112,22],[144,23],[113,24],[114,25],[115,26],[116,27],[117,28],[118,29],[119,30],[120,31],[121,32],[122,33],[123,33],[124,34],[125,35],[127,36],[126,37],[128,38],[129,39],[130,40],[131,41],[132,42],[133,43],[134,44],[135,45],[136,46],[137,47],[138,48],[139,49],[140,50],[141,51],[142,52],[155,2],[180,53],[181,54],[156,55],[159,55],[178,53],[179,53],[169,53],[168,56],[166,53],[161,53],[174,53],[172,53],[176,53],[160,53],[173,53],[177,53],[162,53],[163,53],[175,53],[157,53],[164,53],[165,53],[167,53],[171,53],[182,57],[170,53],[158,53],[195,58],[194,2],[189,57],[191,59],[190,57],[183,57],[184,57],[186,57],[188,57],[192,59],[193,59],[185,59],[187,59],[148,60],[147,61],[149,62],[146,63],[145,64],[57,2],[58,2],[10,2],[12,2],[11,2],[2,2],[13,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[3,2],[4,2],[21,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[36,2],[33,2],[34,2],[35,2],[37,2],[7,2],[38,2],[43,2],[44,2],[39,2],[40,2],[41,2],[42,2],[8,2],[48,2],[45,2],[46,2],[47,2],[49,2],[9,2],[50,2],[51,2],[52,2],[55,2],[53,2],[54,2],[1,2],[56,2],[76,65],[83,66],[75,65],[90,67],[67,68],[66,69],[89,70],[84,71],[87,72],[69,73],[68,74],[64,75],[63,76],[86,77],[65,78],[70,79],[71,2],[74,79],[61,2],[92,80],[91,79],[78,81],[79,82],[81,83],[77,84],[80,85],[85,70],[72,86],[73,87],[82,88],[62,89],[88,90],[150,91]],"exportedModulesMap":[[152,1],[151,2],[153,2],[154,2],[59,3],[60,3],[94,4],[95,5],[96,6],[97,7],[98,8],[99,9],[100,10],[101,11],[102,12],[103,13],[104,13],[106,14],[105,15],[107,16],[108,17],[109,18],[93,19],[143,2],[110,20],[111,21],[112,22],[144,23],[113,24],[114,25],[115,26],[116,27],[117,28],[118,29],[119,30],[120,31],[121,32],[122,33],[123,33],[124,34],[125,35],[127,36],[126,37],[128,38],[129,39],[130,40],[131,41],[132,42],[133,43],[134,44],[135,45],[136,46],[137,47],[138,48],[139,49],[140,50],[141,51],[142,52],[155,2],[180,53],[181,54],[156,55],[159,55],[178,53],[179,53],[169,53],[168,56],[166,53],[161,53],[174,53],[172,53],[176,53],[160,53],[173,53],[177,53],[162,53],[163,53],[175,53],[157,53],[164,53],[165,53],[167,53],[171,53],[182,57],[170,53],[158,53],[195,58],[194,2],[189,57],[191,59],[190,57],[183,57],[184,57],[186,57],[188,57],[192,59],[193,59],[185,59],[187,59],[148,60],[147,61],[149,62],[146,63],[145,64],[57,2],[58,2],[10,2],[12,2],[11,2],[2,2],[13,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[3,2],[4,2],[21,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[36,2],[33,2],[34,2],[35,2],[37,2],[7,2],[38,2],[43,2],[44,2],[39,2],[40,2],[41,2],[42,2],[8,2],[48,2],[45,2],[46,2],[47,2],[49,2],[9,2],[50,2],[51,2],[52,2],[55,2],[53,2],[54,2],[1,2],[56,2],[76,65],[83,66],[75,65],[90,67],[67,68],[66,69],[89,70],[84,71],[87,72],[69,73],[68,74],[64,75],[63,76],[86,77],[65,78],[70,79],[71,2],[74,79],[61,2],[92,80],[91,79],[78,81],[79,82],[81,83],[77,84],[80,85],[85,70],[72,86],[73,87],[82,88],[62,89],[88,90],[150,92]],"semanticDiagnosticsPerFile":[152,151,153,154,59,60,94,95,96,97,98,99,100,101,102,103,104,106,105,107,108,109,93,143,110,111,112,144,113,114,115,116,117,118,119,120,121,122,123,124,125,127,126,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,155,180,181,156,159,178,179,169,168,166,161,174,172,176,160,173,177,162,163,175,157,164,165,167,171,182,170,158,195,194,189,191,190,183,184,186,188,192,193,185,187,148,147,149,146,145,57,58,10,12,11,2,13,14,15,16,17,18,19,20,3,4,21,25,22,23,24,26,27,28,5,29,30,31,32,6,36,33,34,35,37,7,38,43,44,39,40,41,42,8,48,45,46,47,49,9,50,51,52,55,53,54,1,56,76,83,75,90,67,66,89,84,87,69,68,64,63,86,65,70,71,74,61,92,91,78,79,81,77,80,85,72,73,82,62,88,150]},"version":"5.2.2"}
package/package.json ADDED
@@ -0,0 +1,67 @@
1
+ {
2
+ "name": "@sesamecare-oss/us-postal-codes",
3
+ "version": "1.0.0",
4
+ "description": "Lookup city, state and geolocation by US postal codes. Includes infra for fetching the latest values.",
5
+ "main": "build/index.js",
6
+ "types": "build/index.d.ts",
7
+ "author": "Developers <developers@sesamecare.com>",
8
+ "license": "UNLICENSED",
9
+ "packageManager": "yarn@3.6.0",
10
+ "scripts": {
11
+ "build": "tsc -p tsconfig.build.json",
12
+ "clean": "yarn dlx rimraf ./dist",
13
+ "lint": "eslint .",
14
+ "_postinstall": "coconfig",
15
+ "test": "vitest"
16
+ },
17
+ "keywords": [
18
+ "typescript",
19
+ "sesame"
20
+ ],
21
+ "repository": {
22
+ "type": "git",
23
+ "url": "git+https://github.com/sesamecare/us-postal-codes.git"
24
+ },
25
+ "publishConfig": {
26
+ "access": "public"
27
+ },
28
+ "release": {
29
+ "branches": [
30
+ "main"
31
+ ],
32
+ "plugins": [
33
+ "@semantic-release/commit-analyzer",
34
+ "@semantic-release/release-notes-generator",
35
+ [
36
+ "@semantic-release/exec",
37
+ {
38
+ "publishCmd": "yarn dlx pinst --disable"
39
+ }
40
+ ],
41
+ "@semantic-release/npm",
42
+ "@semantic-release/github"
43
+ ]
44
+ },
45
+ "config": {
46
+ "coconfig": "@openapi-typescript-infra/coconfig"
47
+ },
48
+ "devDependencies": {
49
+ "@openapi-typescript-infra/coconfig": "^4.2.2",
50
+ "@semantic-release/exec": "^6.0.3",
51
+ "@semantic-release/github": "^9.2.3",
52
+ "@types/node": "^20.9.0",
53
+ "@typescript-eslint/eslint-plugin": "^6.11.0",
54
+ "@typescript-eslint/parser": "^6.11.0",
55
+ "coconfig": "^1.0.0",
56
+ "eslint": "^8.53.0",
57
+ "eslint-config-prettier": "^9.0.0",
58
+ "eslint-import-resolver-typescript": "^3.6.1",
59
+ "eslint-plugin-import": "^2.29.0",
60
+ "typescript": "^5.2.2",
61
+ "vitest": "^0.34.6"
62
+ },
63
+ "dependencies": {
64
+ "sqlite": "^5.1.1",
65
+ "sqlite3": "^5.1.6"
66
+ }
67
+ }
package/src/index.ts ADDED
@@ -0,0 +1,30 @@
1
+ import path from 'path';
2
+
3
+ import { Database as DatabaseDriver } from 'sqlite3';
4
+ import type { Database } from 'sqlite';
5
+ import { open } from 'sqlite';
6
+
7
+ export class USPostalCodes {
8
+ db: Database | undefined;
9
+
10
+ async open() {
11
+ this.db = await open({
12
+ filename: path.join(__dirname, '../assets/uspostalcodes.db'),
13
+ driver: DatabaseDriver,
14
+ });
15
+ }
16
+
17
+ async lookup(zipCode: string): Promise<
18
+ {
19
+ city: string;
20
+ state: string;
21
+ lat: number;
22
+ lng: number;
23
+ }[]
24
+ > {
25
+ if (!this.db) {
26
+ throw new Error('Postal code database unavailable');
27
+ }
28
+ return this.db.all('SELECT city, state, lat, lng FROM locations WHERE postal_code = ?', zipCode);
29
+ }
30
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "exclude": [
4
+ "src/**/*.spec.ts",
5
+ "src/**/*.test.ts",
6
+ "__tests__/**/*.ts",
7
+ "__mocks__/**/*.ts",
8
+ "coconfig.ts",
9
+ "vitest.config.ts"
10
+ ]
11
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,42 @@
1
+ {
2
+ "include": [
3
+ "@types/**/*",
4
+ "src/**/*",
5
+ "__tests__/**/*",
6
+ "__mocks__/**/*",
7
+ "coconfig.ts",
8
+ "vitest.config.ts"
9
+ ],
10
+ "exclude": [
11
+ "node_modules",
12
+ "build"
13
+ ],
14
+ "ts-node": {
15
+ "transpileOnly": true,
16
+ "files": true
17
+ },
18
+ "compilerOptions": {
19
+ "lib": [
20
+ "ES2022",
21
+ "DOM"
22
+ ],
23
+ "module": "NodeNext",
24
+ "moduleResolution": "NodeNext",
25
+ "target": "ES2022",
26
+ "declaration": true,
27
+ "sourceMap": true,
28
+ "outDir": "./build",
29
+ "incremental": true,
30
+ "isolatedModules": true,
31
+ "strict": true,
32
+ "baseUrl": "./src",
33
+ "allowSyntheticDefaultImports": true,
34
+ "esModuleInterop": true,
35
+ "experimentalDecorators": true,
36
+ "paths": {
37
+ "@/*": [
38
+ "./*"
39
+ ]
40
+ }
41
+ }
42
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * This file is generated by coconfig. Do not edit it directly.
3
+ * Instead, edit the coconfig.js or coconfig.ts file in your project root.
4
+ *
5
+ * See https://github.com/gas-buddy/coconfig for more information.
6
+ * @version coconfig@1.0.0
7
+ */
8
+ import cjs from '@openapi-typescript-infra/coconfig';
9
+ import * as esmToCjs from '@openapi-typescript-infra/coconfig';
10
+
11
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
12
+ const configModule: any = cjs || esmToCjs;
13
+
14
+ const configItem = configModule.default || configModule.config || configModule;
15
+ const { configuration } = configItem && configItem['vitest.config.ts'];
16
+ const resolved = typeof configuration === 'function' ? configuration() : configuration;
17
+
18
+ // eslint-disable-next-line import/no-default-export
19
+ export default resolved;