Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(NODE-3245): mark symbols as internal remove from type definitions #2810

Merged
merged 9 commits into from
May 21, 2021
12,405 changes: 11,839 additions & 566 deletions package-lock.json

Large diffs are not rendered by default.

17 changes: 8 additions & 9 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,20 +26,19 @@
"bson-ext": "^2.0.0"
},
"dependencies": {
"bson": "^4.2.3",
"denque": "^1.4.1"
"bson": "^4.4.0",
"denque": "^1.5.0"
},
"devDependencies": {
"@istanbuljs/nyc-config-typescript": "^1.0.1",
"@microsoft/api-extractor": "^7.14.0",
"@microsoft/api-extractor": "^7.15.2",
"@microsoft/tsdoc-config": "^0.15.2",
"@types/aws4": "^1.5.1",
"@types/bl": "^2.1.0",
"@types/chai": "^4.2.14",
"@types/chai-subset": "^1.3.3",
"@types/kerberos": "^1.1.0",
"@types/mocha": "^8.2.0",
"@types/node": "^14.14.41",
"@types/node": "^15.3.1",
"@types/saslprep": "^1.0.0",
"@types/semver": "^7.3.4",
"@typescript-eslint/eslint-plugin": "^4.19.0",
Expand All @@ -49,11 +48,11 @@
"chalk": "^4.1.0",
"co": "4.6.0",
"coveralls": "^3.0.11",
"eslint": "^7.20.0",
"eslint": "^7.26.0",
"eslint-config-prettier": "^6.11.0",
"eslint-plugin-jsdoc": "^30.7.8",
"eslint-plugin-prettier": "^3.1.3",
"eslint-plugin-tsdoc": "^0.2.11",
"eslint-plugin-tsdoc": "^0.2.14",
"js-yaml": "^3.14.0",
"jsdoc": "^3.6.4",
"lodash.camelcase": "^4.3.0",
Expand All @@ -72,8 +71,8 @@
"standard-version": "^9.1.1",
"through2": "^3.0.1",
"ts-node": "^9.1.1",
"tsd": "^0.14.0",
"typedoc": "^0.20.35",
"tsd": "^0.15.1",
"typedoc": "^0.20.36",
"typescript": "^4.2.4",
"typescript-cached-transpile": "^0.0.6",
"worker-farm": "^1.5.0",
Expand Down
3 changes: 3 additions & 0 deletions src/change_stream.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,11 @@ import type { ClientSession } from './sessions';
import { executeOperation, ExecutionResult } from './operations/execute_operation';
import { InferIdType, Nullable, TypedEventEmitter } from './mongo_types';

/** @internal */
const kResumeQueue = Symbol('resumeQueue');
/** @internal */
const kCursorStream = Symbol('cursorStream');
/** @internal */
const kClosed = Symbol('closed');

const CHANGE_STREAM_OPTIONS = ['resumeAfter', 'startAfter', 'startAtOperationTime', 'fullDocument'];
Expand Down
26 changes: 18 additions & 8 deletions src/cmap/connection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,14 +44,23 @@ import type { W, WriteConcern, WriteConcernOptions } from '../write_concern';
import type { ServerApi, SupportedNodeConnectionOptions } from '../mongo_client';
import { CancellationToken, TypedEventEmitter } from '../mongo_types';

/** @internal */
const kStream = Symbol('stream');
/** @internal */
const kQueue = Symbol('queue');
/** @internal */
const kMessageStream = Symbol('messageStream');
/** @internal */
const kGeneration = Symbol('generation');
/** @internal */
const kLastUseTime = Symbol('lastUseTime');
/** @internal */
const kClusterTime = Symbol('clusterTime');
/** @internal */
const kDescription = Symbol('description');
/** @internal */
const kIsMaster = Symbol('ismaster');
/** @internal */
const kAutoEncrypter = Symbol('autoEncrypter');

/** @internal */
Expand Down Expand Up @@ -113,7 +122,8 @@ export interface ConnectionOptions
autoEncrypter?: AutoEncrypter;
serverApi?: ServerApi;
monitorCommands: boolean;
connectionType: typeof Connection;
/** @internal */
connectionType?: typeof Connection;
credentials?: MongoCredentials;
connectTimeoutMS?: number;
tls: boolean;
Expand All @@ -134,15 +144,15 @@ export interface DestroyOptions {

/** @public */
export type ConnectionEvents = {
[Connection.COMMAND_STARTED](event: CommandStartedEvent): void;
[Connection.COMMAND_SUCCEEDED](event: CommandSucceededEvent): void;
[Connection.COMMAND_FAILED](event: CommandFailedEvent): void;
[Connection.CLUSTER_TIME_RECEIVED](clusterTime: Document): void;
[Connection.CLOSE](): void;
[Connection.MESSAGE](message: any): void;
commandStarted(event: CommandStartedEvent): void;
commandSucceeded(event: CommandSucceededEvent): void;
commandFailed(event: CommandFailedEvent): void;
clusterTimeReceived(clusterTime: Document): void;
close(): void;
message(message: any): void;
};

/** @public */
/** @internal */
export class Connection extends TypedEventEmitter<ConnectionEvents> {
id: number | '<monitor>';
address: string;
Expand Down
34 changes: 22 additions & 12 deletions src/cmap/connection_pool.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,23 @@ import {
} from './connection_pool_events';
import { CancellationToken, TypedEventEmitter } from '../mongo_types';

/** @internal */
const kLogger = Symbol('logger');
/** @internal */
const kConnections = Symbol('connections');
/** @internal */
const kPermits = Symbol('permits');
/** @internal */
const kMinPoolSizeTimer = Symbol('minPoolSizeTimer');
/** @internal */
const kGeneration = Symbol('generation');
/** @internal */
const kConnectionCounter = Symbol('connectionCounter');
/** @internal */
const kCancellationToken = Symbol('cancellationToken');
/** @internal */
const kWaitQueue = Symbol('waitQueue');
/** @internal */
const kCancelled = Symbol('cancelled');

/** @public */
Expand Down Expand Up @@ -55,21 +64,21 @@ export interface CloseOptions {

/** @public */
export type ConnectionPoolEvents = {
[ConnectionPool.CONNECTION_POOL_CREATED](event: ConnectionPoolCreatedEvent): void;
[ConnectionPool.CONNECTION_POOL_CLOSED](event: ConnectionPoolClosedEvent): void;
[ConnectionPool.CONNECTION_POOL_CLEARED](event: ConnectionPoolClearedEvent): void;
[ConnectionPool.CONNECTION_CREATED](event: ConnectionCreatedEvent): void;
[ConnectionPool.CONNECTION_READY](event: ConnectionReadyEvent): void;
[ConnectionPool.CONNECTION_CLOSED](event: ConnectionClosedEvent): void;
[ConnectionPool.CONNECTION_CHECK_OUT_STARTED](event: ConnectionCheckOutStartedEvent): void;
[ConnectionPool.CONNECTION_CHECK_OUT_FAILED](event: ConnectionCheckOutFailedEvent): void;
[ConnectionPool.CONNECTION_CHECKED_OUT](event: ConnectionCheckedOutEvent): void;
[ConnectionPool.CONNECTION_CHECKED_IN](event: ConnectionCheckedInEvent): void;
connectionPoolCreated(event: ConnectionPoolCreatedEvent): void;
connectionPoolClosed(event: ConnectionPoolClosedEvent): void;
connectionPoolCleared(event: ConnectionPoolClearedEvent): void;
connectionCreated(event: ConnectionCreatedEvent): void;
connectionReady(event: ConnectionReadyEvent): void;
connectionClosed(event: ConnectionClosedEvent): void;
connectionCheckOutStarted(event: ConnectionCheckOutStartedEvent): void;
connectionCheckOutFailed(event: ConnectionCheckOutFailedEvent): void;
connectionCheckedOut(event: ConnectionCheckedOutEvent): void;
connectionCheckedIn(event: ConnectionCheckedInEvent): void;
} & Omit<ConnectionEvents, 'close' | 'message'>;

/**
* A pool of connections which dynamically resizes, and emit events related to pool activity
* @public
* @internal
*/
export class ConnectionPool extends TypedEventEmitter<ConnectionPoolEvents> {
closed: boolean;
Expand Down Expand Up @@ -148,6 +157,7 @@ export class ConnectionPool extends TypedEventEmitter<ConnectionPoolEvents> {
*/
static readonly CONNECTION_CHECKED_IN = 'connectionCheckedIn' as const;

/** @internal */
constructor(options: ConnectionPoolOptions) {
super();

Expand Down Expand Up @@ -548,7 +558,7 @@ export const CMAP_EVENTS = [

/**
* A callback provided to `withConnection`
* @public
* @internal
*
* @param error - An error instance representing the error during the execution.
* @param connection - The managed connection which was checked out of the pool.
Expand Down
11 changes: 11 additions & 0 deletions src/cmap/connection_pool_events.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ export class ConnectionPoolMonitoringEvent {
/** The address (host/port pair) of the pool */
address: string;

/** @internal */
constructor(pool: ConnectionPool) {
this.time = new Date();
this.address = pool.address;
Expand All @@ -28,6 +29,7 @@ export class ConnectionPoolCreatedEvent extends ConnectionPoolMonitoringEvent {
/** The options used to create this connection pool */
options?: ConnectionPoolOptions;

/** @internal */
constructor(pool: ConnectionPool) {
super(pool);
this.options = pool.options;
Expand All @@ -40,6 +42,7 @@ export class ConnectionPoolCreatedEvent extends ConnectionPoolMonitoringEvent {
* @category Event
*/
export class ConnectionPoolClosedEvent extends ConnectionPoolMonitoringEvent {
/** @internal */
constructor(pool: ConnectionPool) {
super(pool);
}
Expand All @@ -54,6 +57,7 @@ export class ConnectionCreatedEvent extends ConnectionPoolMonitoringEvent {
/** A monotonically increasing, per-pool id for the newly created connection */
connectionId: number | '<monitor>';

/** @internal */
constructor(pool: ConnectionPool, connection: Connection) {
super(pool);
this.connectionId = connection.id;
Expand All @@ -69,6 +73,7 @@ export class ConnectionReadyEvent extends ConnectionPoolMonitoringEvent {
/** The id of the connection */
connectionId: number | '<monitor>';

/** @internal */
constructor(pool: ConnectionPool, connection: Connection) {
super(pool);
this.connectionId = connection.id;
Expand All @@ -86,6 +91,7 @@ export class ConnectionClosedEvent extends ConnectionPoolMonitoringEvent {
/** The reason the connection was closed */
reason: string;

/** @internal */
constructor(pool: ConnectionPool, connection: Connection, reason: string) {
super(pool);
this.connectionId = connection.id;
Expand All @@ -99,6 +105,7 @@ export class ConnectionClosedEvent extends ConnectionPoolMonitoringEvent {
* @category Event
*/
export class ConnectionCheckOutStartedEvent extends ConnectionPoolMonitoringEvent {
/** @internal */
constructor(pool: ConnectionPool) {
super(pool);
}
Expand All @@ -113,6 +120,7 @@ export class ConnectionCheckOutFailedEvent extends ConnectionPoolMonitoringEvent
/** The reason the attempt to check out failed */
reason: AnyError | string;

/** @internal */
constructor(pool: ConnectionPool, reason: AnyError | string) {
super(pool);
this.reason = reason;
Expand All @@ -128,6 +136,7 @@ export class ConnectionCheckedOutEvent extends ConnectionPoolMonitoringEvent {
/** The id of the connection */
connectionId: number | '<monitor>';

/** @internal */
constructor(pool: ConnectionPool, connection: Connection) {
super(pool);
this.connectionId = connection.id;
Expand All @@ -143,6 +152,7 @@ export class ConnectionCheckedInEvent extends ConnectionPoolMonitoringEvent {
/** The id of the connection */
connectionId: number | '<monitor>';

/** @internal */
constructor(pool: ConnectionPool, connection: Connection) {
super(pool);
this.connectionId = connection.id;
Expand All @@ -155,6 +165,7 @@ export class ConnectionCheckedInEvent extends ConnectionPoolMonitoringEvent {
* @category Event
*/
export class ConnectionPoolClearedEvent extends ConnectionPoolMonitoringEvent {
/** @internal */
constructor(pool: ConnectionPool) {
super(pool);
}
Expand Down
1 change: 1 addition & 0 deletions src/cmap/message_stream.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ const MESSAGE_HEADER_SIZE = 16;
const COMPRESSION_DETAILS_SIZE = 9; // originalOpcode + uncompressedSize, compressorID

const kDefaultMaxBsonMessageSize = 1024 * 1024 * 16 * 4;
/** @internal */
const kBuffer = Symbol('buffer');

/** @internal */
Expand Down
14 changes: 14 additions & 0 deletions src/cursor/abstract_cursor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,27 @@ import type { ExecutionResult } from '../operations/execute_operation';
import { ReadConcern, ReadConcernLike } from '../read_concern';
import { TODO_NODE_3286, TypedEventEmitter } from '../mongo_types';

/** @internal */
const kId = Symbol('id');
/** @internal */
const kDocuments = Symbol('documents');
/** @internal */
const kServer = Symbol('server');
/** @internal */
const kNamespace = Symbol('namespace');
/** @internal */
const kTopology = Symbol('topology');
/** @internal */
const kSession = Symbol('session');
/** @internal */
const kOptions = Symbol('options');
/** @internal */
const kTransform = Symbol('transform');
/** @internal */
const kInitialized = Symbol('initialized');
/** @internal */
const kClosed = Symbol('closed');
/** @internal */
const kKilled = Symbol('killed');

/** @public */
Expand Down Expand Up @@ -108,6 +119,7 @@ export abstract class AbstractCursor<
/** @event */
static readonly CLOSE = 'close' as const;

/** @internal */
constructor(
topology: Topology,
namespace: MongoDBNamespace,
Expand Down Expand Up @@ -155,10 +167,12 @@ export abstract class AbstractCursor<
return this[kId];
}

/** @internal */
get topology(): Topology {
return this[kTopology];
}

/** @internal */
get server(): Server | undefined {
return this[kServer];
}
Expand Down
3 changes: 3 additions & 0 deletions src/cursor/aggregation_cursor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,11 @@ import type { ExplainVerbosityLike } from '../explain';
/** @public */
export interface AggregationCursorOptions extends AbstractCursorOptions, AggregateOptions {}

/** @internal */
const kParent = Symbol('parent');
/** @internal */
const kPipeline = Symbol('pipeline');
/** @internal */
const kOptions = Symbol('options');

/**
Expand Down
4 changes: 4 additions & 0 deletions src/cursor/find_cursor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,11 @@ import { formatSort, Sort, SortDirection } from '../sort';
import type { Callback, MongoDBNamespace } from '../utils';
import { AbstractCursor, assertUninitialized } from './abstract_cursor';

/** @internal */
const kFilter = Symbol('filter');
/** @internal */
const kNumReturned = Symbol('numReturned');
/** @internal */
const kBuiltOptions = Symbol('builtOptions');

/** @public Flags allowed for cursor */
Expand All @@ -36,6 +39,7 @@ export class FindCursor<TSchema = Document> extends AbstractCursor<TSchema> {
/** @internal */
[kBuiltOptions]: FindOptions;

/** @internal */
constructor(
topology: Topology,
namespace: MongoDBNamespace,
Expand Down
1 change: 1 addition & 0 deletions src/encrypter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import { MONGO_CLIENT_EVENTS } from './operations/connect';

let AutoEncrypterClass: AutoEncrypter;

/** @internal */
const kInternalClient = Symbol('internalClient');

/** @internal */
Expand Down
Loading