@cubejs-backend/shared
Advanced tools
| /** | ||
| * @copyright Cube Dev, Inc. | ||
| * @license Apache-2.0 | ||
| * @fileoverview Named pool wrapper around generic-pool with enhanced error messages. | ||
| */ | ||
| import { Factory, Options } from 'generic-pool'; | ||
| export { Factory, Options as PoolOptions } from 'generic-pool'; | ||
| export declare class PoolTimeoutError extends Error { | ||
| readonly poolName: string; | ||
| constructor(poolName: string); | ||
| } | ||
| /** | ||
| * Uses composition instead of inheritance because generic-pool doesn't export | ||
| * a Pool class, the Pool type is an interface, not an extendable class. | ||
| */ | ||
| export declare class Pool<T> { | ||
| private readonly pool; | ||
| private readonly name; | ||
| constructor(name: string, factory: Factory<T>, options?: Options); | ||
| acquire(priority?: number): Promise<T>; | ||
| release(resource: T): Promise<void>; | ||
| destroy(resource: T): Promise<void>; | ||
| drain(): Promise<void>; | ||
| clear(): Promise<void>; | ||
| use<U>(cb: (resource: T) => U | Promise<U>): Promise<U>; | ||
| get size(): number; | ||
| get available(): number; | ||
| get borrowed(): number; | ||
| get pending(): number; | ||
| get max(): number; | ||
| get min(): number; | ||
| on(event: 'factoryCreateError' | 'factoryDestroyError', listener: (err: Error) => void): this; | ||
| get _factory(): Factory<T>; | ||
| } | ||
| //# sourceMappingURL=pool.d.ts.map |
| {"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../src/pool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAoB,EAAuB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAElF,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,cAAc,CAAC;AAE/D,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,SAAgB,QAAQ,EAAE,MAAM,CAAC;gBAEd,QAAQ,EAAE,MAAM;CAKpC;AAED;;;GAGG;AACH,qBAAa,IAAI,CAAC,CAAC;IACjB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IAEtC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;gBAEX,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO;IAK1D,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAYtC,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAInC,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAInC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAYpE,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAED,IAAW,OAAO,IAAI,MAAM,CAE3B;IAED,IAAW,GAAG,IAAI,MAAM,CAEvB;IAED,IAAW,GAAG,IAAI,MAAM,CAEvB;IAGM,EAAE,CAAC,KAAK,EAAE,oBAAoB,GAAG,qBAAqB,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAMpG,IAAW,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,CAGhC;CACF"} |
| "use strict"; | ||
| /** | ||
| * @copyright Cube Dev, Inc. | ||
| * @license Apache-2.0 | ||
| * @fileoverview Named pool wrapper around generic-pool with enhanced error messages. | ||
| */ | ||
| var __importDefault = (this && this.__importDefault) || function (mod) { | ||
| return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
| }; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.Pool = exports.PoolTimeoutError = void 0; | ||
| const generic_pool_1 = __importDefault(require("generic-pool")); | ||
| class PoolTimeoutError extends Error { | ||
| poolName; | ||
| constructor(poolName) { | ||
| super(`ResourceRequest timed out (pool: ${poolName})`); | ||
| this.name = 'PoolTimeoutError'; | ||
| this.poolName = poolName; | ||
| } | ||
| } | ||
| exports.PoolTimeoutError = PoolTimeoutError; | ||
| /** | ||
| * Uses composition instead of inheritance because generic-pool doesn't export | ||
| * a Pool class, the Pool type is an interface, not an extendable class. | ||
| */ | ||
| class Pool { | ||
| pool; | ||
| name; | ||
| constructor(name, factory, options) { | ||
| this.name = name; | ||
| this.pool = generic_pool_1.default.createPool(factory, options); | ||
| } | ||
| async acquire(priority) { | ||
| try { | ||
| return await this.pool.acquire(priority); | ||
| } | ||
| catch (error) { | ||
| if (error instanceof Error && error.name === 'TimeoutError') { | ||
| throw new PoolTimeoutError(this.name); | ||
| } | ||
| throw error; | ||
| } | ||
| } | ||
| async release(resource) { | ||
| return this.pool.release(resource); | ||
| } | ||
| async destroy(resource) { | ||
| return this.pool.destroy(resource); | ||
| } | ||
| async drain() { | ||
| return this.pool.drain(); | ||
| } | ||
| async clear() { | ||
| return this.pool.clear(); | ||
| } | ||
| async use(cb) { | ||
| try { | ||
| return await this.pool.use(cb); | ||
| } | ||
| catch (error) { | ||
| if (error instanceof Error && error.name === 'TimeoutError') { | ||
| throw new PoolTimeoutError(this.name); | ||
| } | ||
| throw error; | ||
| } | ||
| } | ||
| // State accessors | ||
| get size() { | ||
| return this.pool.size; | ||
| } | ||
| get available() { | ||
| return this.pool.available; | ||
| } | ||
| get borrowed() { | ||
| return this.pool.borrowed; | ||
| } | ||
| get pending() { | ||
| return this.pool.pending; | ||
| } | ||
| get max() { | ||
| return this.pool.max; | ||
| } | ||
| get min() { | ||
| return this.pool.min; | ||
| } | ||
| // Event handling | ||
| on(event, listener) { | ||
| this.pool.on(event, listener); | ||
| return this; | ||
| } | ||
| // For backward compatibility (drivers use pool._factory for testConnection) | ||
| get _factory() { | ||
| // eslint-disable-next-line no-underscore-dangle | ||
| return this.pool._factory; | ||
| } | ||
| } | ||
| exports.Pool = Pool; | ||
| //# sourceMappingURL=pool.js.map |
| {"version":3,"file":"pool.js","sourceRoot":"","sources":["../../src/pool.ts"],"names":[],"mappings":"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"} |
@@ -23,2 +23,3 @@ export { getEnv, assertDataSource, keyByDataSource, isDockerImage, convertSizeToBytes, } from './env'; | ||
| export * from './logger'; | ||
| export * from './pool'; | ||
| //# sourceMappingURL=index.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,kBAAkB,GACnB,MAAM,OAAO,CAAC;AACf,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC"} | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,kBAAkB,GACnB,MAAM,OAAO,CAAC;AACf,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC"} |
@@ -45,2 +45,3 @@ "use strict"; | ||
| __exportStar(require("./logger"), exports); | ||
| __exportStar(require("./pool"), exports); | ||
| //# sourceMappingURL=index.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6BAMe;AALb,6FAAA,MAAM,OAAA;AACN,uGAAA,gBAAgB,OAAA;AAChB,sGAAA,eAAe,OAAA;AACf,oGAAA,aAAa,OAAA;AACb,yGAAA,kBAAkB,OAAA;AAEpB,0CAAwB;AACxB,4CAA0B;AAC1B,0CAAwB;AACxB,2CAAyB;AACzB,6CAA2B;AAC3B,4CAA0B;AAC1B,4CAA0B;AAC1B,+CAA6B;AAC7B,iDAA+B;AAC/B,iDAA+B;AAC/B,+CAA6B;AAC7B,wCAAsB;AACtB,0CAAwB;AACxB,yCAAuB;AACvB,4CAA0B;AAC1B,6CAA2B;AAC3B,mDAAiC;AACjC,+CAA6B;AAC7B,gDAA8B;AAC9B,kDAAgC;AAChC,2CAAyB"} | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6BAMe;AALb,6FAAA,MAAM,OAAA;AACN,uGAAA,gBAAgB,OAAA;AAChB,sGAAA,eAAe,OAAA;AACf,oGAAA,aAAa,OAAA;AACb,yGAAA,kBAAkB,OAAA;AAEpB,0CAAwB;AACxB,4CAA0B;AAC1B,0CAAwB;AACxB,2CAAyB;AACzB,6CAA2B;AAC3B,4CAA0B;AAC1B,4CAA0B;AAC1B,+CAA6B;AAC7B,iDAA+B;AAC/B,iDAA+B;AAC/B,+CAA6B;AAC7B,wCAAsB;AACtB,0CAAwB;AACxB,yCAAuB;AACvB,4CAA0B;AAC1B,6CAA2B;AAC3B,mDAAiC;AACjC,+CAA6B;AAC7B,gDAA8B;AAC9B,kDAAgC;AAChC,2CAAyB;AACzB,yCAAuB"} |
+4
-3
| { | ||
| "name": "@cubejs-backend/shared", | ||
| "version": "1.6.9", | ||
| "version": "1.6.10", | ||
| "description": "Shared code for Cube.js backend packages", | ||
@@ -30,3 +30,3 @@ "main": "dist/src/index.js", | ||
| "devDependencies": { | ||
| "@cubejs-backend/linter": "1.6.9", | ||
| "@cubejs-backend/linter": "1.6.10", | ||
| "@types/bytes": "^3.1.5", | ||
@@ -52,2 +52,3 @@ "@types/cli-progress": "^3.9.1", | ||
| "fs-extra": "^9.1.0", | ||
| "generic-pool": "^3.9.0", | ||
| "lru-cache": "^11.1.0", | ||
@@ -71,3 +72,3 @@ "moment-range": "^4.0.2", | ||
| }, | ||
| "gitHead": "85d9e79e219d7c9c5508b83574b126a6761d78ce" | ||
| "gitHead": "4b4bdf283aba33cd82cba9dcea0f8fe226f4559c" | ||
| } |
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Shell access
Supply chain riskThis module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.
Found 1 instance in 1 package
Debug access
Supply chain riskUses debug, reflection and dynamic code execution features.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 15 instances in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 2 instances in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Shell access
Supply chain riskThis module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.
Found 1 instance in 1 package
Debug access
Supply chain riskUses debug, reflection and dynamic code execution features.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 15 instances in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 2 instances in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
254388
3.02%103
4.04%3339
4.15%16
6.67%+ Added
+ Added