New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@uql/sqlite

Package Overview
Dependencies
Maintainers
1
Versions
114
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@uql/sqlite - npm Package Compare versions

Comparing version 0.4.8 to 0.4.9

4

package.json

@@ -5,3 +5,3 @@ {

"license": "MIT",
"version": "0.4.8",
"version": "0.4.9",
"main": "index.js",

@@ -25,3 +25,3 @@ "types": "index.d.ts",

"@types/sqlite3": "^3.1.7",
"@uql/core": "^0.4.8",
"@uql/core": "^0.4.9",
"copyfiles": "^2.4.1",

@@ -28,0 +28,0 @@ "rimraf": "^3.0.2",

@@ -248,15 +248,12 @@ [![build status](https://travis-ci.org/impensables/uql.svg?branch=master)](https://travis-ci.org/impensables/uql?branch=master)

@Transactional()
async confirmAction(body: Confirmation, @InjectQuerier() querier?: Querier): Promise<void> {
async confirmAction(body: Confirmation, @InjectQuerier() querier?: Querier) {
if (body.type === 'register') {
const newUser: User = {
await querier.insertOne(User, {
name: body.name,
email: body.email,
password: body.password,
};
await querier.insertOne(User, newUser);
});
} else {
const userId = body.user as string;
await querier.updateOneById(User, userId, { password: body.password });
await querier.updateOneById(User, body.userId, { password: body.password });
}
await querier.updateOneById(Confirmation, body.id, { status: CONFIRM_STATUS_VERIFIED });

@@ -281,3 +278,3 @@ }

3. start the transaction with `await querier.beginTransaction()`
4. perform the different operations using the `querier`
4. perform the different operations using the `querier` or `repositories`
5. commit the transaction with `await querier.commitTransaction()`

@@ -288,5 +285,5 @@ 6. in the `catch` block, add `await querier.rollbackTransaction()`

```ts
import { getQuerier } from '@uql/core/querier';
import { getQuerier } from '@uql/core';
async function confirmAction(confirmation: Confirmation): Promise<void> {
async function confirmAction(body: Confirmation) {
const querier = await getQuerier();

@@ -297,16 +294,15 @@

if (confirmation.entity === 'register') {
const newUser: User = {
name: confirmation.name,
email: confirmation.email,
password: confirmation.password,
};
await querier.insertOne(User, newUser);
if (body.action === 'signup') {
// signup
await querier.insertOne(User, {
name: body.name,
email: body.email,
password: body.password,
});
} else {
// confirm change password
const userId = confirmation.user as string;
await querier.updateOneById(User, userId, { password: confirmation.password });
// change password
await querier.updateOneById(User, body.userId, { password: body.password });
}
await this.querier.updateOneById(Confirmation, body.id, { status: CONFIRM_STATUS_VERIFIED });
await querier.updateOneById(Confirmation, body.id, { status: CONFIRM_STATUS_VERIFIED });

@@ -349,9 +345,9 @@ await querier.commitTransaction();

app
// ...other routes may go before and/or after (as usual)
// ...
.use(
'/api',
// this will generate CRUD REST APIs for the entities.
// all entities will be automatically exposed unless
// 'include' or 'exclude' options are provided
entitiesMiddleware({
// all entities will be automatically exposed unless
// 'include' or 'exclude' options are provided
exclude: [Confirmation],

@@ -381,8 +377,8 @@ })

```ts
import { getQuerier } from '@uql/client';
import { getRepository } from '@uql/client';
const querier = await getQuerier();
// 'Item' is an entity class
const querier = await getRepository(Item);
// 'Item' is an entity class
const lastItems = await querier.find(Item, {
const lastItems = await itemRepository.findMany({
sort: { createdAt: -1 },

@@ -389,0 +385,0 @@ limit: 100,

@@ -8,6 +8,6 @@ import { BaseSqlQuerier } from '@uql/core/sql';

query<E>(query: string): Promise<E>;
insert<E>(entity: Type<E>, bodies: E[]): Promise<any[]>;
update<E>(entity: Type<E>, filter: QueryFilter<E>, body: E): Promise<number>;
find<E>(entity: Type<E>, qm: Query<E>, opts?: QueryOptions): Promise<E[]>;
remove<E>(entity: Type<E>, filter: QueryFilter<E>): Promise<number>;
insertMany<E>(entity: Type<E>, bodies: E[]): Promise<any[]>;
updateMany<E>(entity: Type<E>, filter: QueryFilter<E>, body: E): Promise<number>;
findMany<E>(entity: Type<E>, qm: Query<E>, opts?: QueryOptions): Promise<E[]>;
removeMany<E>(entity: Type<E>, filter: QueryFilter<E>): Promise<number>;
}

@@ -16,3 +16,3 @@ "use strict";

}
async insert(entity, bodies) {
async insertMany(entity, bodies) {
const query = this.dialect.insert(entity, bodies);

@@ -23,3 +23,3 @@ const res = await this.conn.run(query);

}
async update(entity, filter, body) {
async updateMany(entity, filter, body) {
const query = this.dialect.update(entity, filter, body);

@@ -29,3 +29,3 @@ const res = await this.conn.run(query);

}
async find(entity, qm, opts) {
async findMany(entity, qm, opts) {
const query = this.dialect.find(entity, qm, opts);

@@ -37,3 +37,3 @@ const res = await this.query(query);

}
async remove(entity, filter) {
async removeMany(entity, filter) {
const query = this.dialect.remove(entity, filter);

@@ -45,2 +45,2 @@ const res = await this.conn.run(query);

exports.SqliteQuerier = SqliteQuerier;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FsaXRlUXVlcmllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zcWxpdGVRdWVyaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVDQUF3RDtBQUN4RCwwREFBcUQ7QUFHckQsbURBQWdEO0FBRWhELE1BQWEsYUFBYyxTQUFRLG9CQUFjO0lBQy9DLFlBQXFCLElBQXNCO1FBQ3pDLEtBQUssQ0FBQyxJQUFJLDZCQUFhLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQURkLFNBQUksR0FBSixJQUFJLENBQWtCO0lBRTNDLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSyxDQUFJLEtBQWE7UUFDMUIsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxPQUFPLEdBQW1CLENBQUM7SUFDN0IsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUksTUFBZSxFQUFFLE1BQVc7UUFDMUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2xELE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsTUFBTSxJQUFJLEdBQUcsbUJBQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QixPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxPQUFPLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FDdkYsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFJLE1BQWUsRUFBRSxNQUFzQixFQUFFLElBQU87UUFDOUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN4RCxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQztJQUNyQixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBSSxNQUFlLEVBQUUsRUFBWSxFQUFFLElBQW1CO1FBQzlELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFNLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sTUFBTSxHQUFHLGFBQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QixNQUFNLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRSxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBSSxNQUFlLEVBQUUsTUFBc0I7UUFDckQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2xELE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDO0lBQ3JCLENBQUM7Q0FDRjtBQXRDRCxzQ0FzQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtYXBSb3dzLCBCYXNlU3FsUXVlcmllciB9IGZyb20gJ0B1cWwvY29yZS9zcWwnO1xuaW1wb3J0IHsgZ2V0TWV0YSB9IGZyb20gJ0B1cWwvY29yZS9lbnRpdHkvZGVjb3JhdG9yJztcbmltcG9ydCB7IFF1ZXJ5LCBRdWVyeUZpbHRlciwgUXVlcnlPcHRpb25zLCBUeXBlIH0gZnJvbSAnQHVxbC9jb3JlL3R5cGUnO1xuaW1wb3J0IHsgU3FsaXQzQ29ubmVjdGlvbiB9IGZyb20gJy4vc3FsaXRlM0Nvbm5lY3Rpb24nO1xuaW1wb3J0IHsgU3FsaXRlRGlhbGVjdCB9IGZyb20gJy4vc3FsaXRlRGlhbGVjdCc7XG5cbmV4cG9ydCBjbGFzcyBTcWxpdGVRdWVyaWVyIGV4dGVuZHMgQmFzZVNxbFF1ZXJpZXIge1xuICBjb25zdHJ1Y3RvcihyZWFkb25seSBjb25uOiBTcWxpdDNDb25uZWN0aW9uKSB7XG4gICAgc3VwZXIobmV3IFNxbGl0ZURpYWxlY3QoKSwgY29ubik7XG4gIH1cblxuICBhc3luYyBxdWVyeTxFPihxdWVyeTogc3RyaW5nKTogUHJvbWlzZTxFPiB7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5jb25uLnF1ZXJ5KHF1ZXJ5KTtcbiAgICByZXR1cm4gcmVzIGFzIHVua25vd24gYXMgRTtcbiAgfVxuXG4gIGFzeW5jIGluc2VydDxFPihlbnRpdHk6IFR5cGU8RT4sIGJvZGllczogRVtdKSB7XG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLmRpYWxlY3QuaW5zZXJ0KGVudGl0eSwgYm9kaWVzKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmNvbm4ucnVuKHF1ZXJ5KTtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIHJldHVybiBib2RpZXMubWFwKChib2R5LCBpbmRleCkgPT5cbiAgICAgIGJvZHlbbWV0YS5pZC5wcm9wZXJ0eV0gPyBib2R5W21ldGEuaWQucHJvcGVydHldIDogcmVzLmxhc3RJRCAtIHJlcy5jaGFuZ2VzICsgaW5kZXggKyAxXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZTxFPihlbnRpdHk6IFR5cGU8RT4sIGZpbHRlcjogUXVlcnlGaWx0ZXI8RT4sIGJvZHk6IEUpIHtcbiAgICBjb25zdCBxdWVyeSA9IHRoaXMuZGlhbGVjdC51cGRhdGUoZW50aXR5LCBmaWx0ZXIsIGJvZHkpO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuY29ubi5ydW4ocXVlcnkpO1xuICAgIHJldHVybiByZXMuY2hhbmdlcztcbiAgfVxuXG4gIGFzeW5jIGZpbmQ8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnk8RT4sIG9wdHM/OiBRdWVyeU9wdGlvbnMpIHtcbiAgICBjb25zdCBxdWVyeSA9IHRoaXMuZGlhbGVjdC5maW5kKGVudGl0eSwgcW0sIG9wdHMpO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMucXVlcnk8RVtdPihxdWVyeSk7XG4gICAgY29uc3QgZm91bmRzID0gbWFwUm93cyhyZXMpO1xuICAgIGF3YWl0IHRoaXMucG9wdWxhdGVUb01hbnlSZWxhdGlvbnMoZW50aXR5LCBmb3VuZHMsIHFtLnBvcHVsYXRlKTtcbiAgICByZXR1cm4gZm91bmRzO1xuICB9XG5cbiAgYXN5bmMgcmVtb3ZlPEU+KGVudGl0eTogVHlwZTxFPiwgZmlsdGVyOiBRdWVyeUZpbHRlcjxFPikge1xuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5kaWFsZWN0LnJlbW92ZShlbnRpdHksIGZpbHRlcik7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5jb25uLnJ1bihxdWVyeSk7XG4gICAgcmV0dXJuIHJlcy5jaGFuZ2VzO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FsaXRlUXVlcmllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zcWxpdGVRdWVyaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVDQUF3RDtBQUN4RCwwREFBcUQ7QUFHckQsbURBQWdEO0FBRWhELE1BQWEsYUFBYyxTQUFRLG9CQUFjO0lBQy9DLFlBQXFCLElBQXNCO1FBQ3pDLEtBQUssQ0FBQyxJQUFJLDZCQUFhLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQURkLFNBQUksR0FBSixJQUFJLENBQWtCO0lBRTNDLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSyxDQUFJLEtBQWE7UUFDMUIsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxPQUFPLEdBQW1CLENBQUM7SUFDN0IsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQUksTUFBZSxFQUFFLE1BQVc7UUFDOUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2xELE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsTUFBTSxJQUFJLEdBQUcsbUJBQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QixPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxPQUFPLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FDdkYsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUFJLE1BQWUsRUFBRSxNQUFzQixFQUFFLElBQU87UUFDbEUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN4RCxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQztJQUNyQixDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQVEsQ0FBSSxNQUFlLEVBQUUsRUFBWSxFQUFFLElBQW1CO1FBQ2xFLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFNLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sTUFBTSxHQUFHLGFBQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QixNQUFNLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRSxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVUsQ0FBSSxNQUFlLEVBQUUsTUFBc0I7UUFDekQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2xELE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDO0lBQ3JCLENBQUM7Q0FDRjtBQXRDRCxzQ0FzQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtYXBSb3dzLCBCYXNlU3FsUXVlcmllciB9IGZyb20gJ0B1cWwvY29yZS9zcWwnO1xuaW1wb3J0IHsgZ2V0TWV0YSB9IGZyb20gJ0B1cWwvY29yZS9lbnRpdHkvZGVjb3JhdG9yJztcbmltcG9ydCB7IFF1ZXJ5LCBRdWVyeUZpbHRlciwgUXVlcnlPcHRpb25zLCBUeXBlIH0gZnJvbSAnQHVxbC9jb3JlL3R5cGUnO1xuaW1wb3J0IHsgU3FsaXQzQ29ubmVjdGlvbiB9IGZyb20gJy4vc3FsaXRlM0Nvbm5lY3Rpb24nO1xuaW1wb3J0IHsgU3FsaXRlRGlhbGVjdCB9IGZyb20gJy4vc3FsaXRlRGlhbGVjdCc7XG5cbmV4cG9ydCBjbGFzcyBTcWxpdGVRdWVyaWVyIGV4dGVuZHMgQmFzZVNxbFF1ZXJpZXIge1xuICBjb25zdHJ1Y3RvcihyZWFkb25seSBjb25uOiBTcWxpdDNDb25uZWN0aW9uKSB7XG4gICAgc3VwZXIobmV3IFNxbGl0ZURpYWxlY3QoKSwgY29ubik7XG4gIH1cblxuICBhc3luYyBxdWVyeTxFPihxdWVyeTogc3RyaW5nKTogUHJvbWlzZTxFPiB7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5jb25uLnF1ZXJ5KHF1ZXJ5KTtcbiAgICByZXR1cm4gcmVzIGFzIHVua25vd24gYXMgRTtcbiAgfVxuXG4gIGFzeW5jIGluc2VydE1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBib2RpZXM6IEVbXSkge1xuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5kaWFsZWN0Lmluc2VydChlbnRpdHksIGJvZGllcyk7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5jb25uLnJ1bihxdWVyeSk7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICByZXR1cm4gYm9kaWVzLm1hcCgoYm9keSwgaW5kZXgpID0+XG4gICAgICBib2R5W21ldGEuaWQucHJvcGVydHldID8gYm9keVttZXRhLmlkLnByb3BlcnR5XSA6IHJlcy5sYXN0SUQgLSByZXMuY2hhbmdlcyArIGluZGV4ICsgMVxuICAgICk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgZmlsdGVyOiBRdWVyeUZpbHRlcjxFPiwgYm9keTogRSkge1xuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5kaWFsZWN0LnVwZGF0ZShlbnRpdHksIGZpbHRlciwgYm9keSk7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5jb25uLnJ1bihxdWVyeSk7XG4gICAgcmV0dXJuIHJlcy5jaGFuZ2VzO1xuICB9XG5cbiAgYXN5bmMgZmluZE1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnk8RT4sIG9wdHM/OiBRdWVyeU9wdGlvbnMpIHtcbiAgICBjb25zdCBxdWVyeSA9IHRoaXMuZGlhbGVjdC5maW5kKGVudGl0eSwgcW0sIG9wdHMpO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMucXVlcnk8RVtdPihxdWVyeSk7XG4gICAgY29uc3QgZm91bmRzID0gbWFwUm93cyhyZXMpO1xuICAgIGF3YWl0IHRoaXMucG9wdWxhdGVUb01hbnlSZWxhdGlvbnMoZW50aXR5LCBmb3VuZHMsIHFtLnBvcHVsYXRlKTtcbiAgICByZXR1cm4gZm91bmRzO1xuICB9XG5cbiAgYXN5bmMgcmVtb3ZlTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIGZpbHRlcjogUXVlcnlGaWx0ZXI8RT4pIHtcbiAgICBjb25zdCBxdWVyeSA9IHRoaXMuZGlhbGVjdC5yZW1vdmUoZW50aXR5LCBmaWx0ZXIpO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuY29ubi5ydW4ocXVlcnkpO1xuICAgIHJldHVybiByZXMuY2hhbmdlcztcbiAgfVxufVxuIl19
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc