Merge branch 'master' into react-datepicker-v2

This commit is contained in:
Jake Boone 2018-11-29 08:17:56 -07:00 committed by GitHub
commit e3055f4e34
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
100 changed files with 1386 additions and 3242 deletions

6
.github/CODEOWNERS vendored
View File

@ -644,7 +644,7 @@
/types/connect-mongo/ @Syati
/types/connect-mongodb-session/ @NattapongSiri
/types/connect-pg-simple/ @pasieronen
/types/connect-redis/ @xstoudi @morcerf
/types/connect-redis/ @xstoudi
/types/connect-slashes/ @samherrmann
/types/connect-timeout/ @cyrilschumacher
/types/consola/ @Jungwoo-An
@ -3691,8 +3691,8 @@
/types/rdflib/ @cenotelie
/types/re-base/ @jordandrako
/types/reach__router/ @kingdaro
/types/react/v15/ @bbenezech @pzavolinsky @digiguru @ericanderson @morcerf @tkrotoff @DovydasNavickas @onigoetz
/types/react/ @johnnyreilly @bbenezech @pzavolinsky @digiguru @ericanderson @morcerf @tkrotoff @DovydasNavickas @onigoetz @theruther4d @guilhermehubner @ferdaber @jrakotoharisoa @pascaloliv @hotell @franklixuefei
/types/react/v15/ @bbenezech @pzavolinsky @digiguru @ericanderson @tkrotoff @DovydasNavickas @onigoetz
/types/react/ @johnnyreilly @bbenezech @pzavolinsky @digiguru @ericanderson @tkrotoff @DovydasNavickas @onigoetz @theruther4d @guilhermehubner @ferdaber @jrakotoharisoa @pascaloliv @hotell @franklixuefei
/types/react-adal/ @dkorolev1
/types/react-albus/ @sseppola @conradreuter @kuirak
/types/react-alert/v2/ @ssyrell

View File

@ -336,3 +336,6 @@ This project is licensed under the MIT license.
Copyrights on the definition files are respective of each contributor listed at the beginning of each definition file.
[![Analytics](https://ga-beacon.appspot.com/UA-47495295-4/borisyankov/DefinitelyTyped)](https://github.com/igrigorik/ga-beacon)
[![Build Status](https://typescript.visualstudio.com/TypeScript/_apis/build/status/sandersn.types-publisher-watchdog)](https://typescript.visualstudio.com/TypeScript/_build/latest?definitionId=13) Are packages being published to npm in less than 10,000 seconds on average?
[![Build Status](https://typescript.visualstudio.com/TypeScript/_apis/build/status/sandersn.typescript-bot-watchdog)](https://typescript.visualstudio.com/TypeScript/_build/latest?definitionId=14) Has typescript-bot been active on DefinitelyTyped in the last two hours?

View File

@ -1656,6 +1656,12 @@
"sourceRepoURL": "https://github.com/ansman/validate.js",
"asOfVersion": "0.11.0"
},
{
"libraryName": "vega",
"typingsPackageName": "vega",
"sourceRepoURL": "https://github.com/vega/vega",
"asOfVersion": "3.2.0"
},
{
"libraryName": "vso-node-api",
"typingsPackageName": "vso-node-api",

View File

@ -22,8 +22,8 @@ declare namespace AnalyticsNode {
},
timestamp?: Date;
messageId?: string;
anonymousId: string | number;
userId: string | number;
anonymousId?: string | number;
userId?: string | number;
}
interface Data {
@ -47,7 +47,8 @@ declare namespace AnalyticsNode {
/* The identify method lets you tie a user to their actions and record
traits about them. */
identify(message: {
userId: string | number;
userId?: string | number;
anonymousId?: string | number;
traits?: Object;
timestamp?: Date;
context?: Object;
@ -56,7 +57,8 @@ declare namespace AnalyticsNode {
/* The track method lets you record the actions your users perform. */
track(message: {
userId: string | number;
userId?: string | number;
anonymousId?: string | number;
event: string;
properties?: Object;
timestamp?: Date;
@ -67,7 +69,8 @@ declare namespace AnalyticsNode {
/* The page method lets you record page views on your website, along with
optional extra information about the page being viewed. */
page(message: {
userId: string | number;
userId?: string | number;
anonymousId?: string | number;
category?: string;
name?: string;
properties?: Object;
@ -79,19 +82,20 @@ declare namespace AnalyticsNode {
/* alias is how you associate one identity with another. */
alias(message: {
previousId: string | number;
userId: string | number;
userId?: string | number;
anonymousId?: string | number;
integrations?: Integrations;
}, callback?: (err: Error, data: Data) => void): Analytics;
/* Group calls can be used to associate individual users with shared
accounts or companies. */
group(message: {
userId: string | number;
userId?: string | number;
anonymousId?: string | number;
groupId: string | number;
traits?: Object;
context?: Object;
timestamp?: Date;
anonymous_id?: string | number;
integrations?: Integrations;
}, callback?: (err: Error, data: Data) => void): Analytics;

View File

@ -29,3 +29,7 @@ babel.transformFromAst(parsedAst!, sourceCode, options, (err, result) => {
const transformFromAstSyncResult = babel.transformFromAstSync(parsedAst!, sourceCode, options);
const { code, map, ast } = transformFromAstSyncResult!;
babel.transformFromAstAsync(parsedAst!, sourceCode, options).then(transformFromAstAsyncResult => {
const { code, map, ast } = transformFromAstAsyncResult!;
});

View File

@ -349,7 +349,7 @@ export function transformFromAstSync(ast: Node, code?: string, opts?: TransformO
/**
* Given an AST, transform it.
*/
export function transformFromAstSync(ast: Node, code?: string, opts?: TransformOptions): Promise<BabelFileResult | null>;
export function transformFromAstAsync(ast: Node, code?: string, opts?: TransformOptions): Promise<BabelFileResult | null>;
// A babel plugin is a simple function which must return an object matching
// the following interface. Babel will throw if it finds unknown properties.

View File

@ -89,7 +89,8 @@ const v1: Visitor = {
const id = path.scope.generateUidIdentifierBasedOnNode(path.node.id!);
path.remove();
path.scope.parent.push({ id, init: path.node });
path.scope.parent.push({ id });
path.scope.parent.push({ id, init: t.stringLiteral('foo'), kind: "const" });
path.scope.rename("n", "x");
path.scope.rename("n");
@ -104,7 +105,7 @@ const BindingKindTest: Visitor = {
kind === 'const';
kind === 'let';
kind === 'var';
// The following should fail when uncommented
// kind === 'anythingElse';
// $ExpectError
kind === 'anythingElse';
},
};

View File

@ -90,7 +90,12 @@ export class Scope {
removeData(key: string): void;
push(opts: any): void;
push(opts: {
id: t.LVal,
init?: t.Expression,
unique?: boolean,
kind?: "var" | "let" | "const",
}): void;
getProgramParent(): Scope;

View File

@ -92,7 +92,7 @@ declare namespace Bull {
* Define a custom backoff strategy
*/
backoffStrategies?: {
[key: string]: (attemptsMade: number, err: typeof Error) => number;
[key: string]: (attemptsMade: number, err: Error) => number;
};
/**

View File

@ -41,7 +41,3 @@ declare module "codemirror" {
fullLines?: boolean;
}
}
declare module "codemirror/addon/comment/comment" {
export = CodeMirror;
}

View File

@ -45,7 +45,3 @@ declare module "codemirror" {
}
}
declare module "codemirror/addon/display/panel" {
export = CodeMirror;
}

View File

@ -76,7 +76,3 @@ declare module "codemirror" {
hintOptions?: ShowHintOptions;
}
}
declare module "codemirror/addon/hint/show-hint" {
export = CodeMirror;
}

View File

@ -1,7 +1,6 @@
// Type definitions for connect-redis
// Project: https://npmjs.com/package/connect-redis
// Definitions by: Xavier Stouder <https://github.com/xstoudi>
// Albert Kurniawan <https://github.com/morcerf>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.2

View File

@ -209,7 +209,7 @@ client.get({
id: '1',
routing: '1'
}, (error, response) => {
const routing = response._routing;
const routing = response._routing;
});
client.mget({
@ -338,22 +338,43 @@ client.indices.updateAliases({
// ...
});
client.reindex({
body: {
source: {
index: "twitter"
},
dest: {
index: "new_twitter"
client.indices.updateAliases({
body: {
actions: [
{
add: {
index: 'logstash-2018.11', alias: 'logstash-filtered', filter: {
query: {
exists: { field: 'id' }
}
},
routing: 'id'
}
}
]
}
}).then((response) => {
// ...
}, (error) => {
// ...
});
client.reindex({
body: {
source: {
index: "twitter"
},
dest: {
index: "new_twitter"
}
}
})
.then(response => {
.then(response => {
const { took, timed_out } = response;
// ...
});
});
// Errors
function testErrors() {
throw new elasticsearch.errors.AuthenticationException();
throw new elasticsearch.errors.AuthenticationException();
}

View File

@ -1400,6 +1400,8 @@ export interface IndicesUpdateAliasesParamsAction {
index?: string;
indices?: string[];
alias: string;
routing?: string;
filter?: object;
};
remove?: {
index?: string;

View File

@ -145,7 +145,8 @@ Audio.setAudioModeAsync({
playsInSilentModeIOS: true,
interruptionModeIOS: 2,
interruptionModeAndroid: 1,
allowsRecordingIOS: true
allowsRecordingIOS: true,
playThroughEarpieceAndroid: false
});
Audio.setIsEnabledAsync(true);

10
types/expo/index.d.ts vendored
View File

@ -12,6 +12,7 @@
// Nathan Phillip Brink <https://github.com/binki>
// Martin Olsson <https://github.com/mo>
// Levan Basharuli <https://github.com/levansuper>
// Pavel Ihm <https://github.com/ihmpavel>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.8
@ -405,6 +406,9 @@ export namespace Audio {
/** an enum selecting how your experiences audio should interact with the audio from other apps on Android: */
interruptionModeAndroid: InterruptionModeAndroid;
/** Boolean selecting if audio should go to earpiece (only on Android). */
playThroughEarpieceAndroid: boolean;
}
function setIsEnabledAsync(value: boolean): Promise<void>;
@ -566,7 +570,7 @@ export interface PlaybackStatusToSet {
volume?: number;
}
export type PlaybackSource = RequireSource | { uri: string } | Asset;
export type PlaybackSource = RequireSource | { uri: string, headers?: { [header: string]: string }, overrideFileExtensionAndroid?: string } | Asset;
export class PlaybackObject {
/**
@ -2355,7 +2359,7 @@ export namespace Calendar {
/** Name for the account that owns this calendar */
ownerAccount?: string; // Android
/** Time zone for the calendar */
/** Time zone for the calendar */
timeZone?: string; // Android
/** Alarm methods that this calendar supports */
@ -2398,7 +2402,7 @@ export namespace Calendar {
/** Visible name of the event */
title?: string;
/** Location field of the event */
/** Location field of the event */
location?: string;
/** Date when the event record was created */

View File

@ -3467,7 +3467,7 @@ export class IText extends Object {
* @param [endIndex] End index to get styles at
* @return styles Style object at a specified (or current) index
*/
getSelectionStyles(startIndex: number, endIndex: number): any;
getSelectionStyles(startIndex: number, endIndex: number, complete?: boolean): any;
/**
* Sets style of a current selection
* @param [styles] Styles object

View File

@ -2,3 +2,5 @@ import fileType = require("file-type");
fileType(new Buffer([0xFF, 0xD8, 0xFF]));
fileType(new Uint8Array([0xFF, 0xD8, 0xFF]));
const minimumBytes: number = fileType.minimumBytes;

View File

@ -15,4 +15,6 @@ declare namespace FileType {
ext: string;
mime: string;
}
const minimumBytes: number;
}

View File

@ -131,6 +131,9 @@ export interface Props {
onChildClick?(hoverKey: any, childProps: any): void;
onChildMouseEnter?(hoverKey: any, childProps: any): void;
onChildMouseLeave?(hoverKey: any, childProps: any): void;
onChildMouseDown?(childKey: any, childProps: any, mouse: any): void;
onChildMouseUp?(childKey: any, childProps: any, mouse: any): void;
onChildMouseMove?(childKey: any, childProps: any, mouse: any): void;
onDrag?(args: any): void;
onZoomAnimationStart?(args: any): void;
onZoomAnimationEnd?(args: any): void;

View File

@ -269,3 +269,4 @@ got('http://todomvc.com', { retry: 2 });
got('http://todomvc.com', { retry: { retries: 2, methods: ['GET'], statusCodes: [408, 504], maxRetryAfter: 1 } });
got('http://todomvc.com', { throwHttpErrors: false });
got('http://todomvc.com', { hooks: { beforeRequest: [ () => 'foo']} });
got('http://todomvc.com', { timeout: 1 }).catch((e) => e instanceof got.TimeoutError);

View File

@ -53,6 +53,10 @@ declare class CancelError extends StdError {
name: 'CancelError';
}
declare class TimeoutError extends StdError {
name: 'TimeoutError';
}
declare class StdError extends Error {
code?: string;
host?: string;
@ -75,6 +79,7 @@ declare const got: got.GotFn &
MaxRedirectsError: typeof MaxRedirectsError;
UnsupportedProtocolError: typeof UnsupportedProtocolError;
CancelError: typeof CancelError;
TimeoutError: typeof TimeoutError;
};
interface InternalRequestOptions extends https.RequestOptions {
@ -215,7 +220,7 @@ declare namespace got {
removeListener(event: 'uploadProgress', listener: (progress: Progress) => void): this;
}
type GotError = RequestError | ReadError | ParseError | HTTPError | MaxRedirectsError | UnsupportedProtocolError | CancelError;
type GotError = RequestError | ReadError | ParseError | HTTPError | MaxRedirectsError | UnsupportedProtocolError | CancelError | TimeoutError;
interface Progress {
percent: number;

View File

@ -18,11 +18,15 @@ const badge1: ReCaptchaV2.Badge = "bottomleft";
const badge2: ReCaptchaV2.Badge = "bottomright";
const badge3: ReCaptchaV2.Badge = "inline";
const invisibleParams: ReCaptchaV2.Parameters = {
const invisibleParams1: ReCaptchaV2.Parameters = {
sitekey: "siteKey",
badge: badge1,
};
const invisibleParams2: ReCaptchaV2.Parameters = {
badge: badge2,
};
const id1: number = grecaptcha.render("foo");
const id2: number = grecaptcha.render("foo", params);
const id3: number = grecaptcha.render(document.getElementById("foo"));

View File

@ -46,7 +46,7 @@ declare namespace ReCaptchaV2 {
/**
* Your sitekey.
*/
sitekey: string;
sitekey?: string;
/**
* Optional. The color theme of the widget.
* Accepted values: "light", "dark"

View File

@ -1,4 +1,4 @@
// Type definitions for i18next 11.9
// Type definitions for i18next 12.1
// Project: http://i18next.com
// Definitions by: Michael Ledin <https://github.com/mxl>
// Budi Irawan <https://github.com/deerawan>
@ -160,6 +160,12 @@ declare namespace i18next {
*/
resources?: Resource;
/**
* Allow initializing with bundled resources while using a backend to load non bundled ones.
* @default false
*/
partialBundledLanguages?: boolean;
/**
* language to use (overrides language detection)
* @default undefined

13
types/ini/index.d.ts vendored
View File

@ -1,6 +1,7 @@
// Type definitions for ini v1.3.3
// Project: https://github.com/isaacs/ini
// Definitions by: Marcin Porębski <https://github.com/marcinporebski>
// Chris Arnesen <https://github.com/carnesen>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
interface EncodeOptions {
@ -8,9 +9,13 @@ interface EncodeOptions {
whitespace: boolean
}
export function decode(inistring: string): any;
export function parse(initstring: string): any;
export function encode(object: any, options?: EncodeOptions): string;
export function stringify(object: any, options?: EncodeOptions): string;
export function decode(str: string): {
[key: string]: any;
};
export function parse(str: string): {
[key: string]: any;
};
export function encode(object: any, options?: EncodeOptions | string): string;
export function stringify(object: any, options?: EncodeOptions | string): string;
export function safe(val: string): string;
export function unsafe(val: string): string;

View File

@ -251,7 +251,7 @@ declare namespace jest {
* @param fn The function for your test
* @param timeout The timeout for an async function test
*/
(name: string, fn: ProvidesCallback, timeout?: number): void;
(name: string, fn?: ProvidesCallback, timeout?: number): void;
/**
* Only runs this test in the current file.
*/

View File

@ -365,22 +365,22 @@ export declare class LCD {
rows: number;
cols: number;
print(message: string): void;
useChar(char: string): void;
clear(): void;
cursor(row: number, col: number): void;
home(): void;
on(): void;
off(): void;
display(): void;
noDisplay(): void;
blink(): void;
noBlink(): void;
autoscroll(): void;
noAutoscroll(): void;
bgColor(color: any): void;
noBacklight(): void;
backlight(): void;
print(message: string): this;
useChar(char: string): this;
clear(): this;
cursor(row: number, col: number): this;
home(): this;
on(): this;
off(): this;
display(): this;
noDisplay(): this;
blink(): this;
noBlink(): this;
autoscroll(): this;
noAutoscroll(): this;
bgColor(color: any): this;
noBacklight(): this;
backlight(): this;
}
export interface LedOption {

View File

@ -1,6 +1,7 @@
// Type definitions for Mapbox 1.6
// Project: https://www.mapbox.com/mapbox.js/
// Definitions by: Maxime Fabre <https://github.com/anahkiasen>
// Florian Luccioni <https://github.com/Fluccioni>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.3
@ -153,6 +154,20 @@ declare global {
getGeoJSON(): any;
}
// StyleLayer
//////////////////////////////////////////////////////////////////////
/**
* L.mapbox.styleLayer provides a way to integrate styles created with Mapbox Studio into your map.
*/
function styleLayer(url: string, options?: StyleLayerOptions): StyleLayer;
interface StyleLayerOptions extends Leaflet.TileLayerOptions {
sanitizer?(template: string): string;
}
type StyleLayer = Leaflet.TileLayer;
//////////////////////////////////////////////////////////////////////
////////////////////////////// GEOCODING /////////////////////////////
//////////////////////////////////////////////////////////////////////

View File

@ -4,6 +4,8 @@ const mapboxTiles = L.tileLayer('https://{s}.tiles.mapbox.com/v3/examples.map-i8
const map = L.map('map').addLayer(mapboxTiles).setView(new L.LatLng([42.3610, -71.0587]), 15);
const lightTiles = L.mapbox.styleLayer('mapbox://styles/mapbox/light-v9').addTo(map);
const coordinates = document.getElementById('coordinates');
const marker = L.marker(new L.LatLng([0, 0]), {

View File

@ -371,19 +371,19 @@ Comments.find({ viewNumber: { $gt: 100 } });
Comments.find({ viewNumber: { $not: { $lt: 100, $gt: 1000 } } });
Comments.find({ tags: { $in: [ "tag-1", "tag-2", "tag-3" ] } });
Comments.find({ $or: [ { text: "hello" }, { text: "world" } ] });
Comments.find({ $or: [
{ text: "hello" },
{ text: "world", viewNumber: { $gt: 0 } }
Comments.find({ $or: [
{ text: "hello" },
{ text: "world", viewNumber: { $gt: 0 } }
], authorId: "test-author-id" });
Comments.find({ $and: [
{ $or: [{ authorId: "author-id-1" }, { authorId: "author-id-2" }] },
Comments.find({ $and: [
{ $or: [{ authorId: "author-id-1" }, { authorId: "author-id-2" }] },
{ $or: [{ tags: "tag-1" }, { tags: "tag-2" }] }
]});
Comments.find({ $query: {inlineLinks: { $exists: true, $type: "array" } } });
Comments.find({ inlineLinks: { $elemMatch: {
objectType: InlineObjectType.Image,
objectUrl: { $regex: "https://(www\.?)youtube\.com" }
Comments.find({ inlineLinks: { $elemMatch: {
objectType: InlineObjectType.Image,
objectUrl: { $regex: "https://(www\.?)youtube\.com" }
} } });
Comments.find({ "inlineLinks.objectType": InlineObjectType.Person });
Comments.find({ tags: "tag-1" });

View File

@ -383,19 +383,19 @@ Comments.find({ viewNumber: { $gt: 100 } });
Comments.find({ viewNumber: { $not: { $lt: 100, $gt: 1000 } } });
Comments.find({ tags: { $in: [ "tag-1", "tag-2", "tag-3" ] } });
Comments.find({ $or: [ { text: "hello" }, { text: "world" } ] });
Comments.find({ $or: [
{ text: "hello" },
{ text: "world", viewNumber: { $gt: 0 } }
Comments.find({ $or: [
{ text: "hello" },
{ text: "world", viewNumber: { $gt: 0 } }
], authorId: "test-author-id" });
Comments.find({ $and: [
{ $or: [{ authorId: "author-id-1" }, { authorId: "author-id-2" }] },
Comments.find({ $and: [
{ $or: [{ authorId: "author-id-1" }, { authorId: "author-id-2" }] },
{ $or: [{ tags: "tag-1" }, { tags: "tag-2" }] }
]});
Comments.find({ $query: { inlineLinks: { $exists: true, $type: "array" } } });
Comments.find({ inlineLinks: { $elemMatch: {
objectType: InlineObjectType.Image,
objectUrl: { $regex: "https://(www\.?)youtube\.com" }
Comments.find({ inlineLinks: { $elemMatch: {
objectType: InlineObjectType.Image,
objectUrl: { $regex: "https://(www\.?)youtube\.com" }
} } });
Comments.find({ "inlineLinks.objectType": InlineObjectType.Person });
Comments.find({ tags: "tag-1" });

View File

@ -79,7 +79,7 @@ export interface ClientSession extends EventEmitter {
/** The server id associated with this session */
id: any;
/**
* Aborts the currently active transaction in this session.
* Aborts the currently active transaction in this session.
* @param {MongoCallback<void>} [cb] Optional callback for completion of this operation
*/
abortTransaction(cb?: MongoCallback<void>): Promise<void>;
@ -89,7 +89,7 @@ export interface ClientSession extends EventEmitter {
*/
advanceOperationTime(operamtionTime: Timestamp): void;
/**
* Commits the currently active transaction in this session.
* Commits the currently active transaction in this session.
* @param {MongoCallback<void>} [cb] Optional callback for completion of this operation
*/
commitTransaction(cb?: MongoCallback<void>): Promise<void>;
@ -110,7 +110,7 @@ export interface ClientSession extends EventEmitter {
* Used to determine if this session equals another
*
* @param {ClientSession} session A class representing a client session on the server
* @returns {boolean} if the sessions are equal
* @returns {boolean} if the sessions are equal
*/
equals(session: ClientSession): boolean;
@ -118,13 +118,13 @@ export interface ClientSession extends EventEmitter {
incrementTransactionNumber(): void;
/**
* @returns {boolean} this session is currently in a transaction or not
* @returns {boolean} this session is currently in a transaction or not
*/
inTransaction(): boolean;
/**
* Starts a new transaction with the given options.
* @param {TransactionOptions} options
* @param {TransactionOptions} options
* @memberof ClientSession
*/
startTransaction(options?: TransactionOptions): void;
@ -219,10 +219,10 @@ export class MongoError extends Error {
* client/user (eg. "Email address must be unique" instead of "Both email
* address and username must be unique") - which caters for a better (app)
* user experience.
*
*
* Details: https://github.com/Automattic/mongoose/issues/2129 (issue for
* mongoose, but the same applies for the native mongodb driver)
*
*
* Note that in mongoose (the link above) the prop in question is called
* 'message' while in mongodb it is called 'errmsg'. This can be seen in
* multiple places in the source code, for example here:
@ -231,6 +231,7 @@ export class MongoError extends Error {
errmsg?: string;
}
/** http://mongodb.github.io/node-mongodb-native/3.1/api/MongoClient.html#.connect */
export interface MongoClientOptions extends
DbCreateOptions,
@ -240,57 +241,120 @@ export interface MongoClientOptions extends
SocketOptions,
SSLOptions,
HighAvailabilityOptions {
// The logging level (error/warn/info/debug)
/**
* The logging level (error/warn/info/debug)
*/
loggerLevel?: string;
// Custom logger object
logger?: Object;
// Default: false;
/**
* Custom logger object
*/
logger?: Object | log;
/**
* Validate MongoClient passed in options for correctness.
* Default: false
*/
validateOptions?: Object;
// The name of the application that created this MongoClient instance.
/**
* The name of the application that created this MongoClient instance.
*/
appname?: string;
/**
* Authentifikation credentials
*/
auth?: {
/**
* The username for auth
*/
user: string;
/**
* The password for auth
*/
password: string;
},
// Determines whether or not to use the new url parser
useNewUrlParser?: boolean
};
/**
* Determines whether or not to use the new url parser
*/
useNewUrlParser?: boolean;
/**
* Mechanism for authentication: DEFAULT, GSSAPI, PLAIN, MONGODB-X509, 'MONGODB-CR', SCRAM-SHA-1 or SCRAM-SHA-256
*/
authMechanism?: 'DEFAULT' | 'GSSAPI' | 'PLAIN' | 'MONGODB-X509' | 'MONGODB-CR' | 'SCRAM-SHA-1' | 'SCRAM-SHA-256' | string;
}
export interface SSLOptions {
// Passed directly through to tls.createSecureContext. See https://nodejs.org/dist/latest-v9.x/docs/api/tls.html#tls_tls_createsecurecontext_options for more info.
/**
* Passed directly through to tls.createSecureContext. See https://nodejs.org/dist/latest-v9.x/docs/api/tls.html#tls_tls_createsecurecontext_options for more info.
*/
ciphers?: string;
// Passed directly through to tls.createSecureContext. See https://nodejs.org/dist/latest-v9.x/docs/api/tls.html#tls_tls_createsecurecontext_options for more info.
/**
* Passed directly through to tls.createSecureContext. See https://nodejs.org/dist/latest-v9.x/docs/api/tls.html#tls_tls_createsecurecontext_options for more info.
*/
ecdhCurve?: string;
// Default:5; Number of connections for each server instance
/**
* Default:5; Number of connections for each server instance
*/
poolSize?: number;
// If present, the connection pool will be initialized with minSize connections, and will never dip below minSize connections
/**
* If present, the connection pool will be initialized with minSize connections, and will never dip below minSize connections
*/
minSize?: number;
// Use ssl connection (needs to have a mongod server with ssl support)
/**
* Use ssl connection (needs to have a mongod server with ssl support)
*/
ssl?: boolean;
// Default: true; Validate mongod server certificate against ca (mongod server >=2.4 with ssl support required)
/**
* Default: true; Validate mongod server certificate against ca (mongod server >=2.4 with ssl support required)
*/
sslValidate?: boolean;
// Default: true; Server identity checking during SSL
/**
* Default: true; Server identity checking during SSL
*/
checkServerIdentity?: boolean | Function;
// Array of valid certificates either as Buffers or Strings
/**
* Array of valid certificates either as Buffers or Strings
*/
sslCA?: Array<Buffer | string>;
// SSL Certificate revocation list binary buffer
/**
* SSL Certificate revocation list binary buffer
*/
sslCRL?: Array<Buffer | string>;
// SSL Certificate binary buffer
/**
* SSL Certificate binary buffer
*/
sslCert?: Buffer | string;
// SSL Key file binary buffer
/**
* SSL Key file binary buffer
*/
sslKey?: Buffer | string;
// SSL Certificate pass phrase
/**
* SSL Certificate pass phrase
*/
sslPass?: Buffer | string;
// String containing the server name requested via TLS SNI.
/**
* String containing the server name requested via TLS SNI.
*/
servername?: string;
}
export interface HighAvailabilityOptions {
// Default: true; Turn on high availability monitoring.
/**
* Default: true; Turn on high availability monitoring.
*/
ha?: boolean;
// Default: 10000; The High availability period for replicaset inquiry
/**
* Default: 10000; The High availability period for replicaset inquiry
*/
haInterval?: number;
// Default: false;
/**
* Default: false;
*/
domainsEnabled?: boolean;
}
@ -299,7 +363,12 @@ export class ReadPreference {
constructor(mode: string, tags: Object);
mode: string;
tags: any;
options: { maxStalenessSeconds?: number }; // Max Secondary Read Stalleness in Seconds
options: {
/**
* Max Secondary Read Stalleness in Seconds
*/
maxStalenessSeconds?: number
};
static PRIMARY: string;
static PRIMARY_PREFERRED: string;
static SECONDARY: string;
@ -311,86 +380,156 @@ export class ReadPreference {
/** http://mongodb.github.io/node-mongodb-native/3.1/api/Db.html */
export interface DbCreateOptions extends CommonOptions {
// If the database authentication is dependent on another databaseName.
/**
* If the database authentication is dependent on another databaseName.
*/
authSource?: string;
// Default: false; Force server to create _id fields instead of client.
/**
* Default: false; Force server to create _id fields instead of client.
*/
forceServerObjectId?: boolean;
// Default: false; Use c++ bson parser.
/**
* Default: false; Use c++ bson parser.
*/
native_parser?: boolean;
// Serialize functions on any object.
/**
* Serialize functions on any object.
*/
serializeFunctions?: boolean;
// Specify if the BSON serializer should ignore undefined fields.
/**
* Specify if the BSON serializer should ignore undefined fields.
*/
ignoreUndefined?: boolean;
// Return document results as raw BSON buffers.
/**
* Return document results as raw BSON buffers.
*/
raw?: boolean;
// Default: true; Promotes Long values to number if they fit inside the 53 bits resolution.
/**
* Default: true; Promotes Long values to number if they fit inside the 53 bits resolution.
*/
promoteLongs?: boolean;
// Default: false; Promotes Binary BSON values to native Node Buffers
/**
* Default: false; Promotes Binary BSON values to native Node Buffers
*/
promoteBuffers?: boolean;
// the prefered read preference. use 'ReadPreference' class.
/**
* the prefered read preference. use 'ReadPreference' class.
*/
readPreference?: ReadPreference | string;
// Default: true; Promotes BSON values to native types where possible, set to false to only receive wrapper types.
/**
* Default: true; Promotes BSON values to native types where possible, set to false to only receive wrapper types.
*/
promoteValues?: Object;
// Custom primary key factory to generate _id values (see Custom primary keys).
/**
* Custom primary key factory to generate _id values (see Custom primary keys).
*/
pkFactory?: Object;
// ES6 compatible promise constructor
/**
* ES6 compatible promise constructor
*/
promiseLibrary?: Object;
/** https://docs.mongodb.com/manual/reference/read-concern/#read-concern */
/**
* https://docs.mongodb.com/manual/reference/read-concern/#read-concern
**/
readConcern?: ReadConcern;
// Sets a cap on how many operations the driver will buffer up before giving up on getting a
// working connection, default is -1 which is unlimited.
/**
* Sets a cap on how many operations the driver will buffer up before giving up on getting a
* working connection, default is -1 which is unlimited.
*/
bufferMaxEntries?: number;
}
/** http://mongodb.github.io/node-mongodb-native/3.1/api/Server.html */
export interface SocketOptions {
// Reconnect on error. default:false
/**
* Reconnect on error. default:false
*/
autoReconnect?: boolean;
// TCP Socket NoDelay option. default:true
/**
* TCP Socket NoDelay option. default:true
*/
noDelay?: boolean;
// TCP KeepAlive enabled on the socket. default:true
/**
* TCP KeepAlive enabled on the socket. default:true
*/
keepAlive?: boolean;
// TCP KeepAlive initial delay before sending first keep-alive packet when idle. default:300000
/**
* TCP KeepAlive initial delay before sending first keep-alive packet when idle. default:300000
*/
keepAliveInitialDelay?: number;
// TCP Connection timeout setting. default 0
/**
* TCP Connection timeout setting. default 0
*/
connectTimeoutMS?: number;
// Version of IP stack. Can be 4, 6 or null. default: null.
// If null, will attempt to connect with IPv6, and will fall back to IPv4 on failure
// refer to http://mongodb.github.io/node-mongodb-native/3.1/api/MongoClient.html
/**
* Version of IP stack. Can be 4, 6 or null. default: null.
*
* If null, will attempt to connect with IPv6, and will fall back to IPv4 on failure
* refer to http://mongodb.github.io/node-mongodb-native/3.1/api/MongoClient.html
*/
family?: 4 | 6 | null;
// TCP Socket timeout setting. default 0
/**
* TCP Socket timeout setting. default 0
*/
socketTimeoutMS?: number;
}
/** http://mongodb.github.io/node-mongodb-native/3.1/api/Server.html */
export interface ServerOptions extends SSLOptions {
// Default: 30;
/**
* Default: 30;
*/
reconnectTries?: number;
// Default: 1000;
/**
* Default: 1000;
*/
reconnectInterval?: number;
// Default: true;
/**
* Default: true;
*/
monitoring?: boolean
/**
* Socket Options
*/
socketOptions?: SocketOptions;
// Default: 10000; The High availability period for replicaset inquiry
/**
* Default: 10000; The High availability period for replicaset inquiry
*/
haInterval?: number;
// Default: false;
/**
* Default: false;
*/
domainsEnabled?: boolean;
}
/** http://mongodb.github.io/node-mongodb-native/3.1/api/Mongos.html */
export interface MongosOptions extends SSLOptions, HighAvailabilityOptions {
// Default: 15; Cutoff latency point in MS for MongoS proxy selection
/**
* Default: 15; Cutoff latency point in MS for MongoS proxy selection
*/
acceptableLatencyMS?: number;
/**
* Socket Options
*/
socketOptions?: SocketOptions;
}
/** http://mongodb.github.io/node-mongodb-native/3.1/api/ReplSet.html */
export interface ReplSetOptions extends SSLOptions, HighAvailabilityOptions {
// The max staleness to secondary reads (values under 10 seconds cannot be guaranteed);
/**
* The max staleness to secondary reads (values under 10 seconds cannot be guaranteed);
*/
maxStalenessSeconds?: number;
// The name of the replicaset to connect to.
/**
* The name of the replicaset to connect to.
*/
replicaSet?: string;
// Default: 15 ; Range of servers to pick when using NEAREST (lowest ping ms + the latency fence, ex: range of 1 to (1 + 15) ms)
/**
* Default: 15 ; Range of servers to pick when using NEAREST (lowest ping ms + the latency fence, ex: range of 1 to (1 + 15) ms)
*/
secondaryAcceptableLatencyMS?: number;
connectWithNoPrimary?: boolean;
socketOptions?: SocketOptions;
@ -482,28 +621,40 @@ export interface CommonOptions extends WriteConcern {
session?: ClientSession;
}
// Deprecated http://mongodb.github.io/node-mongodb-native/3.1/api/Server.html
/**
* @deprecated
* @see http://mongodb.github.io/node-mongodb-native/3.1/api/Server.html
*/
export class Server extends EventEmitter {
constructor(host: string, port: number, options?: ServerOptions);
connections(): Array<any>;
}
// Deprecated http://mongodb.github.io/node-mongodb-native/3.1/api/ReplSet.html
/**
* @deprecated
* @see http://mongodb.github.io/node-mongodb-native/3.1/api/ReplSet.html
*/
export class ReplSet extends EventEmitter {
constructor(servers: Array<Server>, options?: ReplSetOptions);
connections(): Array<any>;
}
// Deprecated http://mongodb.github.io/node-mongodb-native/3.1/api/ReplSet.html
/**
* @deprecated
* @see http://mongodb.github.io/node-mongodb-native/3.1/api/Mongos.html
*/
export class Mongos extends EventEmitter {
constructor(servers: Array<Server>, options?: MongosOptions);
connections(): Array<any>;
}
/** http://mongodb.github.io/node-mongodb-native/3.1/api/Db.html#addUser */
/**
* @deprecated
* @see http://mongodb.github.io/node-mongodb-native/3.1/api/Db.html#addUser
*/
export interface DbAddUserOptions extends CommonOptions {
customData?: Object;
roles?: Object[];
@ -543,27 +694,48 @@ export interface DbCollectionOptions extends CommonOptions {
/** http://mongodb.github.io/node-mongodb-native/3.1/api/Db.html#createIndex */
export interface IndexOptions extends CommonOptions {
// Creates an unique index.
/**
* Creates an unique index.
*/
unique?: boolean;
// Creates a sparse index.
/**
* Creates a sparse index.
*/
sparse?: boolean;
// Creates the index in the background, yielding whenever possible.
/**
* Creates the index in the background, yielding whenever possible.
*/
background?: boolean;
// A unique index cannot be created on a key that has pre-existing duplicate values.
// If you would like to create the index anyway, keeping the first document the database indexes and
// deleting all subsequent documents that have duplicate value
/**
* A unique index cannot be created on a key that has pre-existing duplicate values.
*
* If you would like to create the index anyway, keeping the first document the database indexes and
* deleting all subsequent documents that have duplicate value
*/
dropDups?: boolean;
// For geo spatial indexes set the lower bound for the co-ordinates.
/**
* For geo spatial indexes set the lower bound for the co-ordinates.
*/
min?: number;
// For geo spatial indexes set the high bound for the co-ordinates.
/**
* For geo spatial indexes set the high bound for the co-ordinates.
*/
max?: number;
// Specify the format version of the indexes.
/**
* Specify the format version of the indexes.
*/
v?: number;
// Allows you to expire data on indexes applied to a data (MongoDB 2.2 or higher)
/**
* Allows you to expire data on indexes applied to a data (MongoDB 2.2 or higher)
*/
expireAfterSeconds?: number;
// Override the auto generated index name (useful if the resulting name is larger than 128 bytes)
/**
* Override the auto generated index name (useful if the resulting name is larger than 128 bytes)
*/
name?: string;
// Creates a partial index based on the given filter object (MongoDB 3.2 or higher)
/**
* Creates a partial index based on the given filter object (MongoDB 3.2 or higher)
*/
partialFilterExpression?: any;
collation?: Object;
default_language?: string
@ -619,17 +791,27 @@ export interface FSyncOptions extends CommonOptions {
fsync?: boolean
}
// Documentation : http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html
/** http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html */
export interface Collection<TSchema = Default> {
// Get the collection name.
/**
* Get the collection name.
*/
collectionName: string;
// Get the full collection namespace.
/**
* Get the full collection namespace.
*/
namespace: string;
// The current write concern values.
/**
* The current write concern values.
*/
writeConcern: any;
// The current read concern values.
/**
* The current read concern values.
*/
readConcern: ReadConcern;
// Get current index hint for collection.
/**
* Get current index hint for collection.
*/
hint: any;
/** http://mongodb.github.io/node-mongodb-native/3.0/api/Collection.html#aggregate */
aggregate<T = TSchema>(callback: MongoCallback<AggregationCursor<T>>): AggregationCursor<T>;
@ -880,40 +1062,70 @@ export type FilterQuery<T> = {
[P in keyof T]?: T[P] | Condition<T, P>;
} | { [key: string]: any };
// Documentation: http://docs.mongodb.org/manual/reference/command/collStats/
/** http://docs.mongodb.org/manual/reference/command/collStats/ */
export interface CollStats {
// Namespace.
/**
* Namespace.
*/
ns: string;
// Number of documents.
/**
* Number of documents.
*/
count: number;
// Collection size in bytes.
/**
* Collection size in bytes.
*/
size: number;
// Average object size in bytes.
/**
* Average object size in bytes.
*/
avgObjSize: number;
// (Pre)allocated space for the collection in bytes.
/**
* (Pre)allocated space for the collection in bytes.
*/
storageSize: number;
// Number of extents (contiguously allocated chunks of datafile space).
/**
* Number of extents (contiguously allocated chunks of datafile space).
*/
numExtents: number;
// Number of indexes.
/**
* Number of indexes.
*/
nindexes: number;
// Size of the most recently created extent in bytes.
/**
* Size of the most recently created extent in bytes.
*/
lastExtentSize: number;
// Padding can speed up updates if documents grow.
/**
* Padding can speed up updates if documents grow.
*/
paddingFactor: number;
// A number that indicates the user-set flags on the collection. userFlags only appears when using the mmapv1 storage engine.
/**
* A number that indicates the user-set flags on the collection. userFlags only appears when using the mmapv1 storage engine.
*/
userFlags?: number;
// Total index size in bytes.
/**
* Total index size in bytes.
*/
totalIndexSize: number;
// Size of specific indexes in bytes.
/**
* Size of specific indexes in bytes.
*/
indexSizes: {
_id_: number;
[index: string]: number;
};
// `true` if the collection is capped.
/**
* `true` if the collection is capped.
*/
capped: boolean;
// The maximum number of documents that may be present in a capped collection.
/**
* The maximum number of documents that may be present in a capped collection.
*/
max: number;
// The maximum size of a capped collection.
/**
* The maximum size of a capped collection.
*/
maxSize: number;
wiredTiger?: WiredTigerData;
indexDetails?: any;
@ -1059,18 +1271,28 @@ export interface WiredTigerData {
/** http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#aggregate */
export interface CollectionAggregationOptions {
readPreference?: ReadPreference | string;
// Return the query as cursor, on 2.6 > it returns as a real cursor
// on pre 2.6 it returns as an emulated cursor.
/**
* Return the query as cursor, on 2.6 > it returns as a real cursor
* on pre 2.6 it returns as an emulated cursor.
*/
cursor?: { batchSize?: number };
// Explain returns the aggregation execution plan (requires mongodb 2.6 >).
/**
* Explain returns the aggregation execution plan (requires mongodb 2.6 >).
*/
explain?: boolean;
// lets the server know if it can use disk to store
// temporary results for the aggregation (requires mongodb 2.6 >).
/**
* Lets the server know if it can use disk to store
* temporary results for the aggregation (requires mongodb 2.6 >).
*/
allowDiskUse?: boolean;
// specifies a cumulative time limit in milliseconds for processing operations
// on the cursor. MongoDB interrupts the operation at the earliest following interrupt point.
/**
* specifies a cumulative time limit in milliseconds for processing operations
* on the cursor. MongoDB interrupts the operation at the earliest following interrupt point.
*/
maxTimeMS?: number;
// Allow driver to bypass schema validation in MongoDB 3.2 or higher.
/**
* Allow driver to bypass schema validation in MongoDB 3.2 or higher.
*/
bypassDocumentValidation?: boolean;
raw?: boolean;
promoteLongs?: boolean;
@ -1084,23 +1306,37 @@ export interface CollectionAggregationOptions {
/** http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#insertMany */
export interface CollectionInsertManyOptions extends CommonOptions {
// Serialize functions on any object.
/**
* Serialize functions on any object.
*/
serializeFunctions?: boolean;
//Force server to assign _id values instead of driver.
/**
* Force server to assign _id values instead of driver.
*/
forceServerObjectId?: boolean;
// Allow driver to bypass schema validation in MongoDB 3.2 or higher.
/**
* Allow driver to bypass schema validation in MongoDB 3.2 or higher.
*/
bypassDocumentValidation?: boolean;
// If true, when an insert fails, don't execute the remaining writes. If false, continue with remaining inserts when one fails.
/**
* If true, when an insert fails, don't execute the remaining writes. If false, continue with remaining inserts when one fails.
*/
ordered?: boolean;
}
/** http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#bulkWrite */
export interface CollectionBulkWriteOptions extends CommonOptions {
// Serialize functions on any object.
/**
* Serialize functions on any object.
*/
serializeFunctions?: boolean;
// Execute write operation in ordered or unordered fashion.
/**
* Execute write operation in ordered or unordered fashion.
*/
ordered?: boolean;
// Allow driver to bypass schema validation in MongoDB 3.2 or higher.
/**
* Allow driver to bypass schema validation in MongoDB 3.2 or higher.
*/
bypassDocumentValidation?: boolean;
//Force server to assign _id values instead of driver.
forceServerObjectId?: boolean;
@ -1120,13 +1356,21 @@ export interface BulkWriteOpResultObject {
/** http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#count */
export interface MongoCountPreferences {
// The limit of documents to count.
/**
* The limit of documents to count.
*/
limit?: number;
// The number of documents to skip for the count.
/**
* The number of documents to skip for the count.
*/
skip?: boolean;
// An index name hint for the query.
/**
* An index name hint for the query.
*/
hint?: string;
// The preferred read preference
/**
* The preferred read preference
*/
readPreference?: ReadPreference | string;
maxTimeMS?: number;
session?: ClientSession;
@ -1292,7 +1536,10 @@ export interface FindOneOptions {
limit?: number;
sort?: Array<any> | Object;
projection?: Object;
fields?: Object; // Deprecated Use options.projection instead
/**
* @deprecated Use options.projection instead
*/
fields?: Object;
skip?: number;
hint?: Object;
explain?: boolean;
@ -1328,7 +1575,9 @@ export interface InsertWriteOpResult {
/** http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#insertOne */
export interface CollectionInsertOneOptions extends CommonOptions {
// Serialize functions on any object.
/**
* Serialize functions on any object.
*/
serializeFunctions?: boolean;
//Force server to assign _id values instead of driver.
forceServerObjectId?: boolean;
@ -1683,17 +1932,29 @@ export class GridFSBucketWriteStream extends Writable {
/** https://mongodb.github.io/node-mongodb-native/3.1/api/GridFSBucketWriteStream.html */
export interface GridFSBucketWriteStreamOptions {
/** Custom file id for the GridFS file. */
/**
* Custom file id for the GridFS file.
**/
id?: GridFSBucketWriteStreamId,
/** The chunk size to use, in bytes */
/**
* The chunk size to use, in bytes
*/
chunkSizeBytes?: number,
/** The write concern */
/**
* The write concern
*/
w?: number,
/** The write concern timeout */
/**
* The write concern timeout
*/
wtimeout?: number,
/** The journal write concern */
/**
* The journal write concern
*/
j?: number
/** Default false; If true, disables adding an md5 field to file data */
/**
* Default false; If true, disables adding an md5 field to file data
*/
disableMD5?: boolean
}
@ -1732,8 +1993,14 @@ export interface ChangeStreamOptions {
type GridFSBucketWriteStreamId = string | number | Object | ObjectID;
export interface LoggerOptions {
loggerLevel?: string // Custom logger function
logger?: log // Override default global log level.
/**
* Custom logger function
*/
loggerLevel?: string
/**
* Override default global log level.
*/
logger?: log
}
export type log = (message?: string, state?: LoggerState) => void
@ -1749,30 +2016,54 @@ export interface LoggerState {
/** http://mongodb.github.io/node-mongodb-native/3.1/api/Logger.html */
export class Logger {
constructor(className: string, options?: LoggerOptions)
// Log a message at the debug level
/**
* Log a message at the debug level
*/
debug(message: string, state: LoggerState): void
// Log a message at the warn level
/**
* Log a message at the warn level
*/
warn(message: string, state: LoggerState): void
// Log a message at the info level
/**
* Log a message at the info level
*/
info(message: string, state: LoggerState): void
// Log a message at the error level
/**
* Log a message at the error level
*/
error(message: string, state: LoggerState): void
// Is the logger set at info level
/**
* Is the logger set at info level
*/
isInfo(): boolean
// Is the logger set at error level
/**
* Is the logger set at error level
*/
isError(): boolean
// Is the logger set at error level
/**
* Is the logger set at error level
*/
isWarn(): boolean
// Is the logger set at debug level
/**
* Is the logger set at debug level
*/
isDebug(): boolean
// Resets the logger to default settings, error and no filtered classes
/**
* Resets the logger to default settings, error and no filtered classes
*/
static reset(): void
// Get the current logger function
/**
* Get the current logger function
*/
static currentLogger(): log
//Set the current logger function
static setCurrentLogger(log: log): void
// Set what classes to log.
/**
* Set what classes to log.
*/
static filter(type: string, values: string[]): void
// Set the current log level
/**
* Set the current log level
*/
static setLevel(level: string): void
}

View File

@ -7,6 +7,7 @@ const connectionString = 'mongodb://127.0.0.1:27017/test';
var format = require('util').format;
let options: mongodb.MongoClientOptions = {
authSource: ' ',
loggerLevel: 'debug',
w: 1,
wtimeout: 300,
j: true,
@ -21,7 +22,6 @@ let options: mongodb.MongoClientOptions = {
reconnectTries: 123456,
reconnectInterval: 123456,
ssl: true,
sslValidate: false,
checkServerIdentity: function () { },
@ -31,12 +31,14 @@ let options: mongodb.MongoClientOptions = {
sslKey: new Buffer(999),
sslPass: new Buffer(999),
promoteBuffers: false,
useNewUrlParser: false
useNewUrlParser: false,
authMechanism: 'SCRAM-SHA-1',
forceServerObjectId: false
}
MongoClient.connect(connectionString, options, function (err: mongodb.MongoError, client: mongodb.MongoClient) {
if (err) throw err;
const db = client.db('test');
var collection = db.collection('test_insert');
collection.insertOne({ a: 2 }, function (err: mongodb.MongoError, docs: any) {
@ -263,11 +265,11 @@ async function transfer(client: mongodb.MongoClient, from: any, to: any, amount:
// `session.abortTransaction()` will undo the above `findOneAndUpdate()`
throw new Error('Insufficient funds: ' + (A.balance + amount));
}
const B = await db.collection('Account').
findOneAndUpdate({ name: to }, { $inc: { balance: amount } }, opts).
then(res => res.value);
await session.commitTransaction();
session.endSession();
return { from: A, to: B };
@ -287,3 +289,4 @@ mongodb.connect(connectionString).then((client) => {
);
});

View File

@ -811,11 +811,11 @@ declare module "mongoose" {
* @param fn callback
*/
post<T extends Document>(method: string, fn: (
error: mongodb.MongoError, doc: T, next: (err?: NativeError) => void
doc: T, next: (err?: NativeError) => void
) => void): this;
post<T extends Document>(method: string, fn: (
doc: T, next: (err?: NativeError) => void
error: mongodb.MongoError, doc: T, next: (err?: NativeError) => void
) => void): this;
/**

View File

@ -491,12 +491,12 @@ preHookTestSchemaArr.push(
);
schema
.post('save', function (error, doc, next) {
.post('save', function (error: mongoose.Error, doc: mongoose.Document, next: (err?: mongoose.NativeError) => void) {
error.stack;
doc.model;
next.apply;
})
.post('save', function (doc: mongoose.Document, next: Function) {
.post('save', function (doc: mongoose.Document, next: (err?: mongoose.NativeError) => void) {
doc.model;
next(new Error());
})

View File

@ -316,6 +316,7 @@ export declare class PreparedStatement extends events.EventEmitter {
public parameters: IRequestParameters;
public stream: any;
public constructor(connection?: ConnectionPool);
public constructor(transaction: Transaction);
public input(name: string, type: (() => ISqlType) | ISqlType): PreparedStatement;
public output(name: string, type: (() => ISqlType) | ISqlType): PreparedStatement;
public prepare(statement?: string): Promise<void>;

View File

@ -189,6 +189,16 @@ function test_request_constructor() {
var request4 = new sql.Request();
}
function test_prepared_statement_constructor() {
// Request can be constructed with a connection, preparedStatment, transaction or no arguments
var connection: sql.ConnectionPool = new sql.ConnectionPool(config);
var preparedStatment = new sql.PreparedStatement(connection);
var transaction = new sql.Transaction(connection);
var preparedSatement1 = new sql.PreparedStatement(connection);
var preparedSatement2 = new sql.PreparedStatement(transaction);
}
function test_classes_extend_eventemitter() {
var connection: sql.ConnectionPool = new sql.ConnectionPool(config);
var transaction = new sql.Transaction();

View File

@ -1,4 +1,4 @@
// Type definitions for newman 3.10
// Type definitions for newman 3.11
// Project: https://github.com/postmanlabs/newman
// Definitions by: Leonid Logvinov <https://github.com/LogvinovLeon>
// Graham McGregor <https://github.com/Graham42>
@ -168,9 +168,12 @@ export interface NewmanRunExecutionAssertion {
error: NewmanRunExecutionAssertionError;
}
export interface NewmanRunExecutionAssertionError {
name: string;
index: number;
test: string;
message: string;
}
export interface NewmanRunFailure {
stack: string;
}export interface NewmanRunFailure {
error: NewmanRunExecutionAssertionError;
/** The event where the failure occurred */
at: string;

View File

@ -12,7 +12,7 @@ declare namespace ngeohash {
type GeographicBoundingBox = [number, number, number, number];
type NSEW = [number, number];
function encode(latitude: number, longitude: number, precision?: number): string;
function encode(latitude: number | string, longitude: number | string, precision?: number): string;
function decode(hashstring: string): GeographicPoint;
function decode_bbox(hashstring: string): GeographicBoundingBox;
function bboxes(minlat: number, minlon: number, maxlat: number, maxlon: number, precision?: number): Array<string>;

View File

@ -1,6 +1,7 @@
import geohash = require('ngeohash');
console.log(geohash.encode(37.8324, 112.5584));
console.log(geohash.encode('37.8324', '112.5584'));
// prints ww8p1r4t8
var latlon = geohash.decode('ww8p1r4t8');

View File

@ -30,6 +30,8 @@ export declare function removeListener(event: "scanStop", listener: () => void):
export declare function removeListener(event: "discover", listener: (peripheral: Peripheral) => void): events.EventEmitter;
export declare function removeListener(event: string, listener: Function): events.EventEmitter;
export declare function removeAllListeners(event?: string): events.EventEmitter;
export declare var state:string;
export declare class Peripheral extends events.EventEmitter {

View File

@ -35,6 +35,12 @@ noble.removeListener("discover", (peripheral: noble.Peripheral): void => {
peripheral.disconnect((): void => {});
});
noble.removeAllListeners("stateChange");
noble.removeAllListeners("scanStart");
noble.removeAllListeners("scanStop");
noble.removeAllListeners("discover");
noble.removeAllListeners();
var peripheral: noble.Peripheral = new noble.Peripheral();
peripheral.uuid = "12ad4e81";
peripheral.advertisement = {

View File

@ -7,6 +7,7 @@
// Beeno Tung <https://github.com/beenotung>
// Joe Flateau <https://github.com/joeflateau>
// Nikita Koryabkin <https://github.com/Apologiz>
// timhwang21 <https://github.com/timhwang21>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.6
@ -20,6 +21,15 @@ declare module "node-forge" {
type Utf8 = string;
type OID = string;
namespace jsbn {
class BigInteger {
data: number[];
t: number;
s: number;
toString(): string;
}
}
namespace pem {
interface EncodeOptions {
@ -40,28 +50,18 @@ declare module "node-forge" {
}
namespace pki {
type PEM = string;
type Key = any;
type PublicKey = rsa.PublicKey | ed25519.Key;
type PrivateKey = rsa.PrivateKey | ed25519.Key;
interface KeyPair {
publicKey: PublicKey;
privateKey: PrivateKey;
}
interface PublicKey {
encrypt(data: string, scheme?: string, schemeOptions?: number): Bytes
verify(digest: string, signature: string, scheme?: string): boolean
}
interface PrivateKey {
decrypt(data: string, scheme?: string, schemeOptions?: number): string
sign(md: string, scheme?: string): Bytes
}
function pemToDer(pem: PEM): util.ByteStringBuffer;
function privateKeyToPem(key: PrivateKey, maxline?: number): PEM;
function privateKeyInfoToPem(key: PrivateKey, maxline?: number): PEM;
function privateKeyInfoToPem(key: Bytes, maxline?: number): PEM;
function publicKeyToPem(key: PublicKey, maxline?: number): PEM;
function publicKeyFromPem(pem: PEM): PublicKey;
function privateKeyFromPem(pem: PEM): PrivateKey;
@ -73,7 +73,38 @@ declare module "node-forge" {
}
var oids: oids;
namespace ed25519 {
type Key = ArrayBuffer;
}
namespace rsa {
type EncryptionScheme = 'RSAES-PKCS1-V1_5' | 'RSA-OAEP' | 'RAW' | 'NONE' | null;
type SignatureScheme = 'RSASSA-PKCS1-V1_5' | pss.PSS | 'NONE' | null;
interface PublicKey {
n: jsbn.BigInteger;
e: jsbn.BigInteger;
encrypt(data: Bytes, scheme?: EncryptionScheme, schemeOptions?: any): Bytes;
verify(digest: Bytes, signature: Bytes, scheme?: SignatureScheme): boolean;
}
interface PrivateKey {
n: jsbn.BigInteger;
e: jsbn.BigInteger;
d: jsbn.BigInteger;
p: jsbn.BigInteger;
q: jsbn.BigInteger;
dP: jsbn.BigInteger;
dQ: jsbn.BigInteger;
qInv: jsbn.BigInteger;
decrypt(data: Bytes, scheme?: EncryptionScheme, schemeOptions?: any): Bytes;
sign(md: md.MessageDigest, scheme?: SignatureScheme): Bytes;
}
interface KeyPair {
publicKey: PublicKey;
privateKey: PrivateKey;
}
interface GenerateKeyPairOptions {
bits?: number;
@ -84,9 +115,9 @@ declare module "node-forge" {
prng?: any;
algorithm?: string;
}
function setPublicKey(n: any, e: any): any;
function generateKeyPair(bits?: number, e?: number, callback?: (err: Error, keypair: KeyPair) => void): KeyPair;
function generateKeyPair(options?: GenerateKeyPairOptions, callback?: (err: Error, keypair: KeyPair) => void): KeyPair;
}
@ -160,8 +191,8 @@ declare module "node-forge" {
hash: any;
};
extensions: any[];
privateKey: Key;
publicKey: Key;
privateKey: PrivateKey;
publicKey: PublicKey;
md: any;
/**
* Sets the subject of this certificate.
@ -200,7 +231,7 @@ declare module "node-forge" {
* @param key the private key to sign with.
* @param md the message digest object to use (defaults to forge.md.sha1).
*/
sign(key: pki.Key, md: md.MessageDigest): void;
sign(key: pki.PrivateKey, md?: md.MessageDigest): void;
/**
* Attempts verify the signature on the passed certificate using this
* certificate's public key.
@ -215,19 +246,30 @@ declare module "node-forge" {
function certificateFromAsn1(obj: asn1.Asn1, computeHash?: boolean): Certificate;
function decryptRsaPrivateKey(pem: PEM, passphrase?: string): Key;
function decryptRsaPrivateKey(pem: PEM, passphrase?: string): PrivateKey;
function createCertificate(): Certificate;
function certificationRequestToPem(cert: Certificate, maxline?: number): PEM;
function certificationRequestFromPem(pem: PEM, computeHash?: boolean, strict?: boolean): Certificate;
function createCertificationRequest(): Certificate;
function publicKeyToAsn1(publicKey: Key): any;
function publicKeyToRSAPublicKey(publicKey: Key): any;
function publicKeyToAsn1(publicKey: PublicKey): any;
function publicKeyToRSAPublicKey(publicKey: PublicKey): any;
}
namespace random {
function getBytes(count: number, callback?: (bytes: Bytes) => any): Bytes;
function getBytesSync(count: number): Bytes;
type CB = (_: any, seed: string) => void;
interface Random {
seedFileSync: (needed: number) => string;
seedFile: (needed: number, cb: CB) => void;
}
function createInstance(): Random;
}
namespace ssh {
@ -249,22 +291,22 @@ declare module "node-forge" {
/**
* @description Encodes a private RSA key as an OpenSSH file
*/
function privateKeyToOpenSSH(privateKey: pki.Key, passphrase?: string): string;
function privateKeyToOpenSSH(privateKey: pki.PrivateKey, passphrase?: string): string;
/**
* @description Encodes (and optionally encrypts) a private RSA key as a Putty PPK file
*/
function privateKeyToPutty(privateKey: pki.Key, passphrase?: string, comment?: string): string;
function privateKeyToPutty(privateKey: pki.PrivateKey, passphrase?: string, comment?: string): string;
/**
* @description Encodes a public RSA key as an OpenSSH file
*/
function publicKeyToOpenSSH(publicKey: pki.Key, comment?: string): string | pki.PEM;
function publicKeyToOpenSSH(publicKey: pki.PublicKey, comment?: string): string | pki.PEM;
/**
* @description Gets the SSH fingerprint for the given public key
*/
function getPublicKeyFingerprint(publicKey: pki.Key, options?: FingerprintOptions): util.ByteStringBuffer | Hex | string;
function getPublicKeyFingerprint(publicKey: pki.PublicKey, options?: FingerprintOptions): util.ByteStringBuffer | Hex | string;
}
namespace asn1 {
@ -377,7 +419,7 @@ declare module "node-forge" {
function decodeUtf8(encoded: Utf8): string;
function createBuffer(): ByteBuffer;
function createBuffer(input: string, encode: string): ByteBuffer;
function createBuffer(input: Bytes | ArrayBuffer | ArrayBufferView | ByteStringBuffer, encode: string): ByteBuffer;
namespace binary {
namespace raw {
@ -418,7 +460,7 @@ declare module "node-forge" {
interface Bag {
type: string;
attributes: any;
key?: pki.Key;
key?: pki.PrivateKey;
cert?: pki.Certificate;
asn1: asn1.Asn1
}
@ -441,12 +483,12 @@ declare module "node-forge" {
function pkcs12FromAsn1(obj: any, strict?: boolean, password?: string): Pkcs12Pfx;
function pkcs12FromAsn1(obj: any, password?: string): Pkcs12Pfx;
}
namespace pkcs7 {
interface PkcsSignedData {
content?: string | util.ByteBuffer;
contentInfo?: { value: any[] };
addCertificate(certificate: pki.Certificate): void;
addSigner(options: {
key: string;
@ -459,14 +501,16 @@ declare module "node-forge" {
}): void;
toAsn1(): asn1.Asn1;
}
function createSignedData(): PkcsSignedData;
}
namespace md {
type Encoding = "raw" | "utf8"
interface MessageDigest {
update(msg: string, encoding?: string): MessageDigest;
update(msg: string, encoding?: Encoding): MessageDigest;
digest(): util.ByteStringBuffer;
}
@ -477,7 +521,7 @@ declare module "node-forge" {
namespace sha256 {
function create(): MessageDigest;
}
namespace sha512 {
function create(): MessageDigest;
}
@ -513,18 +557,16 @@ declare module "node-forge" {
tag: util.ByteStringBuffer;
}
}
namespace pss {
function create(any: any): any;
type PSS = any;
function create(any: any): PSS;
}
namespace mgf {
namespace mgf1 {
function create(any: any): any;
}
}
namespace random {
function getBytesSync(length: number): Bytes;
}
}

View File

@ -8,9 +8,7 @@ let x: string = forge.ssh.privateKeyToOpenSSH(key);
let pemKey: forge.pki.PEM = publicKeyPem;
let publicKeyRsa = forge.pki.publicKeyFromPem(pemKey);
let privateKeyRsa = forge.pki.privateKeyFromPem(privateKeyPem);
let privateKeyRsa2 = forge.pki.privateKeyInfoToPem(privateKeyRsa);
let byteBufferString = forge.pki.pemToDer(privateKeyPem);
let certPem = forge.pki.certificateFromPem(pemKey);
let cert = forge.pki.createCertificate();
{
@ -118,6 +116,7 @@ if (forge.util.fillString('1', 5) !== '11111') throw Error('forge.util.fillStrin
}
{
let key = forge.random.getBytesSync(24)
let payload = { asd: 'asd' };
let cipher = forge.cipher.createCipher('3DES-ECB', forge.util.createBuffer(key, 'raw'));
cipher.start();
@ -133,7 +132,7 @@ if (forge.util.fillString('1', 5) !== '11111') throw Error('forge.util.fillStrin
let decrypted = decipher.output as forge.util.ByteStringBuffer;
let content = JSON.parse(forge.util.encodeUtf8(decrypted.getBytes()));
if (content.asd == payload.asd) throw Error('forge.cipher.createCipher failed');
if (content.asd !== payload.asd) throw Error('forge.cipher.createCipher failed');
}
{
@ -189,3 +188,18 @@ if (forge.util.fillString('1', 5) !== '11111') throw Error('forge.util.fillStrin
// self-sign certificate
cert.sign(keypair.privateKey, forge.md.sha256.create());
}
{
let md: forge.md.MessageDigest;
let hex: string;
let signature: forge.Bytes
md = forge.md.sha256.create();
md = md.update('Test');
hex = md.digest().toHex();
signature = keypair.privateKey.sign(md)
if (!keypair.publicKey.verify(md.digest().bytes(), signature)) {
throw Error("rsa signature verification fail");
}
}

View File

@ -2501,7 +2501,9 @@ declare module "readline" {
}
declare module "vm" {
interface Context { }
interface Context {
[key: string]: any;
}
interface BaseOptions {
/**
* Specifies the filename used in stack traces produced by this script.

View File

@ -3677,6 +3677,12 @@ import * as p from "process";
function test() {
throw new repl.Recoverable(new Error("test"));
}
_server.context['key0'] = 1;
_server.context['key1'] = "";
_server.context['key2'] = true;
_server.context['key3'] = [];
_server.context['key4'] = {};
}
}

View File

@ -2390,7 +2390,9 @@ declare module "readline" {
}
declare module "vm" {
export interface Context { }
export interface Context {
[key: string]: any;
}
export interface ScriptOptions {
filename?: string;
lineOffset?: number;

View File

@ -2,7 +2,8 @@
// Project: https://github.com/oauthjs/node-oauth2-server
// Definitions by: Robbie Van Gorkom <https://github.com/vangorra>,
// Charles Irick <https://github.com/cirick>,
// Daniel Fischer <https://github.com/d-fischer>
// Daniel Fischer <https://github.com/d-fischer>,
// Vitor Santos <https://github.com/rvitorsantos>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.2
@ -112,6 +113,56 @@ declare namespace OAuth2Server {
redirect(url: string): void;
}
abstract class AbstractGrantType {
/**
* Instantiates AbstractGrantType using the supplied options.
*
*/
constructor(options: TokenOptions)
/**
* Generate access token. Calls Model#generateAccessToken() if implemented.
*
*/
generateAccessToken(client: Client, user: User, scope: string | string[]): Promise<string>;
/**
* Generate refresh token. Calls Model#generateRefreshToken() if implemented.
*
*/
generateRefreshToken(client: Client, user: User, scope: string | string[]): Promise<string>;
/**
* Get access token expiration date.
*
*/
getAccessTokenExpiresAt(): Date;
/**
* Get refresh token expiration date.
*
*/
getRefreshTokenExpiresAt(): Date;
/**
* Get scope from the request body.
*
*/
getScope(request: Request): string;
/**
* Validate requested scope. Calls Model#validateScope() if implemented.
*
*/
validateScope(user: User, client: Client, scope: string | string[]): Promise<string | string[] | Falsey>;
/**
* Retrieve info from the request and client and return token
*
*/
abstract handle(request: Request, client: Client): Promise<Token | Falsey>;
}
interface ServerOptions extends AuthenticateOptions, AuthorizeOptions, TokenOptions {
/**
* Model object
@ -183,6 +234,11 @@ declare namespace OAuth2Server {
* Always revoke the used refresh token and issue a new one for the refresh_token grant.
*/
alwaysIssueNewRefreshToken?: boolean;
/**
* Additional supported grant types.
*/
extendedGrantTypes?: { [key: string]: typeof AbstractGrantType };
}
/**

View File

@ -21758,18 +21758,19 @@ declare namespace Excel {
interface BasicDataValidation {
/**
*
* Gets or sets the Formula1, i.e. minimum value or value depending of the operator.
When setting the value, it can be passed in as a number, a range object, or a string formula (where the string is either a stringified number, a cell reference like "=A1", or a formula like "=MIN(A1, B1)").
When retrieving the value, it will always be returned as a string formula, for example: "=10", "=A1", "=SUM(A1:B5)", etc.
* Specifies the right-hand operand when the operator property is set to a binary operator such as GreaterThan (the left-hand operand is the value the user tries to enter in the cell). With the ternary operators Between and NotBetween, specifies the lower bound operand.
* For example, setting formula1 to 10 and operator to GreaterThan means that valid data for the range must be greater than 10.
* When setting the value, it can be passed in as a number, a range object, or a string formula (where the string is either a stringified number, a cell reference like "=A1", or a formula like "=MIN(A1, B1)").
* When retrieving the value, it will always be returned as a string formula, for example: "=10", "=A1", "=SUM(A1:B5)", etc.
*
* [Api set: ExcelApi 1.8]
*/
formula1: string | number | Range;
/**
*
* Gets or sets the Formula2, i.e. maximum value or value depending of the operator.
When setting the value, it can be passed in as a number, a range object, or a string formula (where the string is either a stringified number, a cell reference like "=A1", or a formula like "=MIN(A1, B1)").
When retrieving the value, it will always be returned as a string formula, for example: "=10", "=A1", "=SUM(A1:B5)", etc.
* With the ternary operators Between and NotBetween, specifies the upper bound operand. Is not used with the binary operators, such as GreaterThan.
* When setting the value, it can be passed in as a number, a range object, or a string formula (where the string is either a stringified number, a cell reference like "=A1", or a formula like "=MIN(A1, B1)").
* When retrieving the value, it will always be returned as a string formula, for example: "=10", "=A1", "=SUM(A1:B5)", etc.
*
* [Api set: ExcelApi 1.8]
*/
@ -21791,18 +21792,18 @@ declare namespace Excel {
interface DateTimeDataValidation {
/**
*
* Gets or sets the Formula1, i.e. minimum value or value depending of the operator.
When setting the value, it can be passed in as a Date, a Range object, or a string formula (where the string is either a stringified date/time in ISO8601 format, a cell reference like "=A1", or a formula like "=MIN(A1, B1)").
When retrieving the value, it will always be returned as a string formula, for example: "=10", "=A1", "=SUM(A1:B5)", etc.
* Specifies the right-hand operand when the operator property is set to a binary operator such as GreaterThan (the left-hand operand is the value the user tries to enter in the cell). With the ternary operators Between and NotBetween, specifies the lower bound operand.
* When setting the value, it can be passed in as a Date, a Range object, or a string formula (where the string is either a stringified date/time in ISO8601 format, a cell reference like "=A1", or a formula like "=MIN(A1, B1)").
* When retrieving the value, it will always be returned as a string formula, for example: "=10", "=A1", "=SUM(A1:B5)", etc.
*
* [Api set: ExcelApi 1.8]
*/
formula1: string | Date | Range;
/**
*
* Gets or sets the Formula2, i.e. maximum value or value depending of the operator.
When setting the value, it can be passed in as a Date, a Range object, or a string (where the string is either a stringified date/time in ISO8601 format, a cell reference like "=A1", or a formula like "=MIN(A1, B1)").
When retrieving the value, it will always be returned as a string formula, for example: "=10", "=A1", "=SUM(A1:B5)", etc.
* With the ternary operators Between and NotBetween, specifies the upper bound operand. Is not used with the binary operators, such as GreaterThan.
* When setting the value, it can be passed in as a Date, a Range object, or a string (where the string is either a stringified date/time in ISO8601 format, a cell reference like "=A1", or a formula like "=MIN(A1, B1)").
* When retrieving the value, it will always be returned as a string formula, for example: "=10", "=A1", "=SUM(A1:B5)", etc.
*
* [Api set: ExcelApi 1.8]
*/
@ -50829,7 +50830,7 @@ declare namespace Word {
getRange(rangeLocation?: "Whole" | "Start" | "End" | "Before" | "After" | "Content"): Word.Range;
/**
*
* Inserts a break at the specified location in the main document. The insertLocation value can be 'Before' or 'After'.
* Inserts a break at the specified location in the main document.
*
* [Api set: WordApi 1.2]
*
@ -50839,7 +50840,7 @@ declare namespace Word {
insertBreak(breakType: Word.BreakType, insertLocation: Word.InsertLocation): void;
/**
*
* Inserts a break at the specified location in the main document. The insertLocation value can be 'Before' or 'After'.
* Inserts a break at the specified location in the main document.
*
* [Api set: WordApi 1.2]
*
@ -50856,7 +50857,7 @@ declare namespace Word {
insertContentControl(): Word.ContentControl;
/**
*
* Inserts a document at the specified location. The insertLocation value can be 'Before' or 'After'.
* Inserts a document at the specified location.
*
* [Api set: WordApi 1.2]
*
@ -50866,7 +50867,7 @@ declare namespace Word {
insertFileFromBase64(base64File: string, insertLocation: Word.InsertLocation): Word.Range;
/**
*
* Inserts a document at the specified location. The insertLocation value can be 'Before' or 'After'.
* Inserts a document at the specified location.
*
* [Api set: WordApi 1.2]
*
@ -50876,7 +50877,7 @@ declare namespace Word {
insertFileFromBase64(base64File: string, insertLocation: "Before" | "After" | "Start" | "End" | "Replace"): Word.Range;
/**
*
* Inserts HTML at the specified location. The insertLocation value can be 'Before' or 'After'.
* Inserts HTML at the specified location.
*
* [Api set: WordApi 1.2]
*
@ -50886,7 +50887,7 @@ declare namespace Word {
insertHtml(html: string, insertLocation: Word.InsertLocation): Word.Range;
/**
*
* Inserts HTML at the specified location. The insertLocation value can be 'Before' or 'After'.
* Inserts HTML at the specified location.
*
* [Api set: WordApi 1.2]
*
@ -50916,7 +50917,7 @@ declare namespace Word {
insertInlinePictureFromBase64(base64EncodedImage: string, insertLocation: "Before" | "After" | "Start" | "End" | "Replace"): Word.InlinePicture;
/**
*
* Inserts OOXML at the specified location. The insertLocation value can be 'Before' or 'After'.
* Inserts OOXML at the specified location.
*
* [Api set: WordApi 1.2]
*
@ -50926,7 +50927,7 @@ declare namespace Word {
insertOoxml(ooxml: string, insertLocation: Word.InsertLocation): Word.Range;
/**
*
* Inserts OOXML at the specified location. The insertLocation value can be 'Before' or 'After'.
* Inserts OOXML at the specified location.
*
* [Api set: WordApi 1.2]
*
@ -50936,7 +50937,7 @@ declare namespace Word {
insertOoxml(ooxml: string, insertLocation: "Before" | "After" | "Start" | "End" | "Replace"): Word.Range;
/**
*
* Inserts a paragraph at the specified location. The insertLocation value can be 'Before' or 'After'.
* Inserts a paragraph at the specified location.
*
* [Api set: WordApi 1.2]
*
@ -50946,7 +50947,7 @@ declare namespace Word {
insertParagraph(paragraphText: string, insertLocation: Word.InsertLocation): Word.Paragraph;
/**
*
* Inserts a paragraph at the specified location. The insertLocation value can be 'Before' or 'After'.
* Inserts a paragraph at the specified location.
*
* [Api set: WordApi 1.2]
*
@ -50956,7 +50957,7 @@ declare namespace Word {
insertParagraph(paragraphText: string, insertLocation: "Before" | "After" | "Start" | "End" | "Replace"): Word.Paragraph;
/**
*
* Inserts text at the specified location. The insertLocation value can be 'Before' or 'After'.
* Inserts text at the specified location.
*
* [Api set: WordApi 1.2]
*
@ -50966,7 +50967,7 @@ declare namespace Word {
insertText(text: string, insertLocation: Word.InsertLocation): Word.Range;
/**
*
* Inserts text at the specified location. The insertLocation value can be 'Before' or 'After'.
* Inserts text at the specified location.
*
* [Api set: WordApi 1.2]
*
@ -51777,7 +51778,7 @@ declare namespace Word {
getTextRanges(endingMarks: string[], trimSpacing?: boolean): Word.RangeCollection;
/**
*
* Inserts a break at the specified location in the main document. The insertLocation value can be 'Before' or 'After'.
* Inserts a break at the specified location in the main document.
*
* [Api set: WordApi 1.1]
*
@ -51787,7 +51788,7 @@ declare namespace Word {
insertBreak(breakType: Word.BreakType, insertLocation: Word.InsertLocation): void;
/**
*
* Inserts a break at the specified location in the main document. The insertLocation value can be 'Before' or 'After'.
* Inserts a break at the specified location in the main document.
*
* [Api set: WordApi 1.1]
*
@ -51884,7 +51885,7 @@ declare namespace Word {
insertOoxml(ooxml: string, insertLocation: "Before" | "After" | "Start" | "End" | "Replace"): Word.Range;
/**
*
* Inserts a paragraph at the specified location. The insertLocation value can be 'Before' or 'After'.
* Inserts a paragraph at the specified location.
*
* [Api set: WordApi 1.1]
*
@ -51894,7 +51895,7 @@ declare namespace Word {
insertParagraph(paragraphText: string, insertLocation: Word.InsertLocation): Word.Paragraph;
/**
*
* Inserts a paragraph at the specified location. The insertLocation value can be 'Before' or 'After'.
* Inserts a paragraph at the specified location.
*
* [Api set: WordApi 1.1]
*
@ -51904,7 +51905,7 @@ declare namespace Word {
insertParagraph(paragraphText: string, insertLocation: "Before" | "After" | "Start" | "End" | "Replace"): Word.Paragraph;
/**
*
* Inserts a table with the specified number of rows and columns. The insertLocation value can be 'Before' or 'After'.
* Inserts a table with the specified number of rows and columns.
*
* [Api set: WordApi 1.3]
*
@ -51916,7 +51917,7 @@ declare namespace Word {
insertTable(rowCount: number, columnCount: number, insertLocation: Word.InsertLocation, values?: string[][]): Word.Table;
/**
*
* Inserts a table with the specified number of rows and columns. The insertLocation value can be 'Before' or 'After'.
* Inserts a table with the specified number of rows and columns.
*
* [Api set: WordApi 1.3]
*
@ -52355,7 +52356,7 @@ declare namespace Word {
getTextRanges(endingMarks: string[], trimSpacing?: boolean): Word.RangeCollection;
/**
*
* Inserts a break at the specified location in the main document. The insertLocation value can be 'Before' or 'After'.
* Inserts a break at the specified location in the main document.
*
* [Api set: WordApi 1.1]
*
@ -52365,7 +52366,7 @@ declare namespace Word {
insertBreak(breakType: Word.BreakType, insertLocation: Word.InsertLocation): void;
/**
*
* Inserts a break at the specified location in the main document. The insertLocation value can be 'Before' or 'After'.
* Inserts a break at the specified location in the main document.
*
* [Api set: WordApi 1.1]
*
@ -52462,7 +52463,7 @@ declare namespace Word {
insertOoxml(ooxml: string, insertLocation: "Before" | "After" | "Start" | "End" | "Replace"): Word.Range;
/**
*
* Inserts a paragraph at the specified location. The insertLocation value can be 'Before' or 'After'.
* Inserts a paragraph at the specified location.
*
* [Api set: WordApi 1.1]
*
@ -52472,7 +52473,7 @@ declare namespace Word {
insertParagraph(paragraphText: string, insertLocation: Word.InsertLocation): Word.Paragraph;
/**
*
* Inserts a paragraph at the specified location. The insertLocation value can be 'Before' or 'After'.
* Inserts a paragraph at the specified location.
*
* [Api set: WordApi 1.1]
*
@ -52482,7 +52483,7 @@ declare namespace Word {
insertParagraph(paragraphText: string, insertLocation: "Before" | "After" | "Start" | "End" | "Replace"): Word.Paragraph;
/**
*
* Inserts a table with the specified number of rows and columns. The insertLocation value can be 'Before' or 'After'.
* Inserts a table with the specified number of rows and columns.
*
* [Api set: WordApi 1.3]
*
@ -52494,7 +52495,7 @@ declare namespace Word {
insertTable(rowCount: number, columnCount: number, insertLocation: Word.InsertLocation, values?: string[][]): Word.Table;
/**
*
* Inserts a table with the specified number of rows and columns. The insertLocation value can be 'Before' or 'After'.
* Inserts a table with the specified number of rows and columns.
*
* [Api set: WordApi 1.3]
*
@ -53357,7 +53358,7 @@ declare namespace Word {
insertContentControl(): Word.ContentControl;
/**
*
* Inserts a paragraph at the specified location. The insertLocation value can be 'Before' or 'After'.
* Inserts a paragraph at the specified location.
*
* [Api set: WordApi 1.3]
*
@ -53367,7 +53368,7 @@ declare namespace Word {
insertParagraph(paragraphText: string, insertLocation: Word.InsertLocation): Word.Paragraph;
/**
*
* Inserts a paragraph at the specified location. The insertLocation value can be 'Before' or 'After'.
* Inserts a paragraph at the specified location.
*
* [Api set: WordApi 1.3]
*
@ -53377,7 +53378,7 @@ declare namespace Word {
insertParagraph(paragraphText: string, insertLocation: "Before" | "After" | "Start" | "End" | "Replace"): Word.Paragraph;
/**
*
* Inserts a table with the specified number of rows and columns. The insertLocation value can be 'Before' or 'After'.
* Inserts a table with the specified number of rows and columns.
*
* [Api set: WordApi 1.3]
*
@ -53389,7 +53390,7 @@ declare namespace Word {
insertTable(rowCount: number, columnCount: number, insertLocation: Word.InsertLocation, values?: string[][]): Word.Table;
/**
*
* Inserts a table with the specified number of rows and columns. The insertLocation value can be 'Before' or 'After'.
* Inserts a table with the specified number of rows and columns.
*
* [Api set: WordApi 1.3]
*

View File

@ -303,7 +303,7 @@ import VectorTile from 'ol/vectortile';
import View from 'ol/view';
// Map
const map: ol.Map = new Map(<any> {});
const map: ol.Map = new Map({} as any);
declare const mapView: View;
declare const layerBase: LayerBase;
declare const control: ControlControl;
@ -320,6 +320,6 @@ declare const size: ol.Size;
declare const position: ol.Pixel;
view = map.getView();
view.getProjection();
view.animate(<any> {});
view.calculateExtent(<any> 'size');
view.animate({} as any);
view.calculateExtent('size' as any);
view.centerOn(coordinate, size, position);

View File

@ -12494,6 +12494,7 @@ export namespace olx {
renderer?: (ol.RendererType | Array<(ol.RendererType | string)> | string);
target?: (Element | string);
view?: ol.View;
moveTolerance?: number;
}
/**

View File

@ -175,7 +175,7 @@ loadingStrategy = ol.loadingstrategy.tile(tilegrid);
// ol.geom.Circle
//
booleanValue = circle.intersectsExtent(extent);
circle = <ol.geom.Circle> circle.transform(projectionLike, projectionLike);
circle = circle.transform(projectionLike, projectionLike) as ol.geom.Circle;
//
//

View File

@ -1491,7 +1491,7 @@ declare module paper {
/**
* The color of the stroke.
*/
strokeColor: Color | string;
strokeColor: Color | string | null;
/**
* The width of the stroke.
@ -1539,7 +1539,7 @@ declare module paper {
/**
* The fill color of the item.
*/
fillColor: Color | string;
fillColor: Color | string | null;
/**
* The fill-rule with which the shape gets filled. Please note that only modern browsers support fill-rules other than 'nonzero'.
@ -1551,7 +1551,7 @@ declare module paper {
/**
* The shadow color.
*/
shadowColor: Color | string;
shadowColor: Color | string | null;
/**
* The shadows blur radius.

31
types/pino/index.d.ts vendored
View File

@ -5,6 +5,7 @@
// Christian Rackerseder <https://github.com/screendriver>
// GP <https://github.com/paambaati>
// Alex Ferrando <https://github.com/alferpal>
// Oleksandr Sidko <https://github.com/mortiy>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.3
@ -243,13 +244,12 @@ declare namespace P {
interface PrettyOptions {
/**
* If set to true, it will only covert the unix timestamp to ISO 8601 date format, and reserialize the JSON (equivalent to pino -t).
* Translate the epoch time value into a human readable date and time string.
* This flag also can set the format string to apply when translating the date to human readable format.
* The default format is yyyy-mm-dd HH:MM:ss.l o in UTC.
* For a list of available pattern letters see the {@link https://www.npmjs.com/package/dateformat|dateformat documentation}.
*/
timeTransOnly?: boolean;
/**
* A custom function to format the line, is passed the JSON object as an argument and should return a string value.
*/
formatter?(log: LogDescriptor): string;
translateTime?: boolean | string;
/**
* If set to true, it will print the name of the log level as the first field in the log line. Default: `false`.
*/
@ -261,7 +261,24 @@ declare namespace P {
/**
* If set to true, will add color information to the formatted output message. Default: `false`.
*/
forceColor?: boolean;
colorize?: boolean;
/**
* Appends carriage return and line feed, instead of just a line feed, to the formatted log line.
*/
crlf?: boolean;
/**
* Define the log keys that are associated with error like objects. Default: ["err", "error"]
*/
errorLikeObjectKeys?: string[];
/**
* When formatting an error object, display this list of properties.
* The list should be a comma separated list of properties. Default: ''
*/
errorProps?: string;
/**
* Specify a search pattern according to {@link http://jmespath.org|jmespath}
*/
search?: string;
}
type Level = 'fatal' | 'error' | 'warn' | 'info' | 'debug' | 'trace';

View File

@ -123,3 +123,16 @@ anotherRedacted.info({
msg: 'another logged with redacted properties',
anotherPath: 'Not shown'
});
const pretty = pino({
prettyPrint: {
colorize: true,
crlf: false,
errorLikeObjectKeys: ['err', 'error'],
errorProps: '',
levelFirst: false,
messageKey: 'msg',
translateTime: 'UTC:h:MM:ss TT Z',
search: 'foo == `bar`'
}
});

View File

@ -256,7 +256,7 @@ export function clearConfigCache(): void;
export interface SupportLanguage {
name: string;
since?: string;
parsers: string[];
parsers: BuiltInParserName[] | string[];
group?: string;
tmScope: string;
aceMode: string;

View File

@ -1715,7 +1715,7 @@ export interface Page extends EventEmitter, FrameBase {
}
export interface TargetAwaiter {
waitForTarget(predicate: (target: Target) => boolean, options: Timeoutable): Promise<void>;
waitForTarget(predicate: (target: Target) => boolean, options?: Timeoutable): Promise<Target>;
}
/** A Browser is created when Puppeteer connects to a Chromium instance, either through puppeteer.launch or puppeteer.connect. */

View File

@ -7,6 +7,7 @@
// Roy Xue <https://github.com/royxue>
// Koala Human <https://github.com/KoalaHuman>
// Sean Kelley <https://github.com/seansfkelley>
// Justin Grant <https://github.com/justingrant>
// Jake Boone <https://github.com/jakeboone02>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.8

View File

@ -1,4 +1,10 @@
/// <reference types="node" />
// forward declarations
declare global {
namespace NodeJS {
// tslint:disable-next-line:no-empty-interface
interface ReadableStream {}
}
}
import { ReactElement } from 'react';

View File

@ -9,6 +9,7 @@
// Krister Kari <https://github.com/kristerkari>
// Martin Raedlinger <https://github.com/formatlos>
// Kanitkorn Sujautra <https://github.com/lukyth>
// obedm503 <https://github.com/obedm503>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.8
@ -46,6 +47,7 @@ declare namespace ReactIntl {
messages: React.Requireable<any>;
defaultLocale: React.Requireable<any>;
defaultFormats: React.Requireable<any>;
onError: React.Requireable<any>;
}
interface IntlFormat {
@ -78,6 +80,7 @@ declare namespace ReactIntl {
defaultLocale: string;
defaultFormats: any;
now(): number;
onError(error: string): void;
}
interface InjectedIntlProps {
@ -197,6 +200,7 @@ declare namespace ReactIntl {
defaultFormats?: any;
textComponent?: any;
initialNow?: any;
onError?: (error: string) => void;
}
}

View File

@ -401,7 +401,15 @@ class TestApp extends React.Component {
hello: "Hello, {name}!"
};
return (
<IntlProvider locale="en" formats={{}} messages={messages} defaultLocale="en" defaultFormats={messages} timeZone="UTC">
<IntlProvider
locale="en"
formats={{}}
messages={messages}
defaultLocale="en"
defaultFormats={messages}
timeZone="UTC"
onError={(error: string) => console.error(error)}
>
<SomeComponentWithIntl className="just-for-test" />
<SomeFunctionalComponentWithIntl className="another-one" />
</IntlProvider>

View File

@ -125,7 +125,7 @@ export default class ScrollableTabView extends React.Component<ScrollableTabView
// Each top-level child component should have a tabLabel prop
// that can be used by the tab bar component to render out the labels.
export type TabProps<T = {}> = T & {
tabLabel: React.ReactType;
tabLabel: React.ReactChild;
};
export interface DefaultTabBarProps {

View File

@ -9030,34 +9030,15 @@ export const Platform: PlatformStatic;
export const PlatformIOS: PlatformIOSStatic;
export const PixelRatio: PixelRatioStatic;
export interface ComponentInterface<P> {
name?: string;
displayName?: string;
propTypes: PropTypes.ValidationMap<P>;
}
/**
* Used to create React components that directly wrap native component
* implementations. Config information is extracted from data exported from the
* UIManager module. You should also wrap the native component in a
* hand-written component with full propTypes definitions and other
* documentation - pass the hand-written component in as `componentInterface` to
* verify all the native props are documented via `propTypes`.
* Creates values that can be used like React components which represent native
* view managers. You should create JavaScript modules that wrap these values so
* that the results are memoized. Example:
*
* If some native props shouldn't be exposed in the wrapper interface, you can
* pass null for `componentInterface` and call `verifyPropTypes` directly
* with `nativePropsToIgnore`;
* const View = requireNativeComponent('RCTView');
*
* Common types are lined up with the appropriate prop differs with
* `TypeToDifferMap`. Non-scalar types not in the map default to `deepDiffer`.
*/
export function requireNativeComponent<P, NP = {}>(
viewName: string,
componentInterface?: ComponentInterface<P>,
extraConfig?: { nativeOnly?: NP }
): React.ComponentClass<
Partial<PropTypes.InferProps<PropTypes.ValidationMap<P>>> & { [K in keyof NP]?: any}
>;
export function requireNativeComponent(viewName: string): React.ReactType;
export function findNodeHandle(
componentOrHandle: null | number | React.Component<any, any> | React.ComponentClass<any>

View File

@ -822,12 +822,7 @@ class BridgedComponentTest extends React.Component {
}
}
const NativeBridgedComponent = requireNativeComponent("NativeBridgedComponent", BridgedComponentTest, {
nativeOnly: {
nativeProp: true,
}
});
const NativeBridgedComponent = requireNativeComponent("NativeBridgedComponent");
const SwitchColorTest = () => (
<Switch trackColor={{ true: 'pink', false: 'red'}} />

View File

@ -18,20 +18,26 @@ export interface ReactTagsProps {
handleAddition: ((tag: {id: string, text: string}) => void);
handleDelete: ((i: number) => void);
handleDrag?: ((tag: { id: string; text: string; }, currPos: number, newPos: number) => void);
handleInputChange?: ((value: string) => void);
handleFilterSuggestions?: ((textInputValue: string, possibleSuggestionsArray: Array<{ id: string, text: string }>) => Array<{ id: string, text: string }>);
handleInputBlur?: ((textInputValue: string) => void);
handleTagClick?: ((i: number) => void);
autofocus?: boolean;
allowDeleteFromEmptyInput?: boolean;
handleInputChange?: ((value: string) => void);
handleInputFocus?: ((value: string) => void);
handleInputBlur?: ((textInputValue: string) => void);
minQueryLength?: number;
removeComponent?: React.Component<any, any>;
autocomplete?: boolean | 1;
readOnly?: boolean;
maxLength?: number;
name?: string;
id?: string;
maxLength?: number;
inline?: boolean;
allowUnique?: boolean;
allowDragDrop?: boolean;
}
export class WithContext extends React.Component<ReactTagsProps> { }

View File

@ -43,14 +43,14 @@ function testInstance(inst: ReactTestInstance) {
inst.props = {
prop1: "p",
};
inst.type = "t";
testInstance(inst.find(n => n.type === "t"));
inst.type = "a";
testInstance(inst.find(n => n.type === "a"));
testInstance(inst.findByProps({ prop1: "p" }));
testInstance(inst.findByType("t"));
testInstance(inst.findByType("a"));
testInstance(inst.findByType(TestComponent));
inst.findAll(n => n.type === "t", { deep: true }).map(testInstance);
inst.findAllByProps({ prop1: "p" }, { deep: true }).map(testInstance);
inst.findAllByType("t", { deep: true }).map(testInstance);
inst.findAllByType("a", { deep: true }).map(testInstance);
inst.findAllByType(TestComponent, { deep: true }).map(testInstance);
}

View File

@ -8,7 +8,6 @@
// Patricio Zavolinsky <https://github.com/pzavolinsky>
// Digiguru <https://github.com/digiguru>
// Eric Anderson <https://github.com/ericanderson>
// Albert Kurniawan <https://github.com/morcerf>
// Tanguy Krotoff <https://github.com/tkrotoff>
// Dovydas Navickas <https://github.com/DovydasNavickas>
// Stéphane Goetz <https://github.com/onigoetz>
@ -50,7 +49,11 @@ declare namespace React {
// React Elements
// ----------------------------------------------------------------------
type ReactType<P = any> = string | ComponentType<P>;
type ReactType<P = any> =
{
[K in keyof JSX.IntrinsicElements]: P extends JSX.IntrinsicElements[K] ? K : never
}[keyof JSX.IntrinsicElements] |
ComponentType<P>;
type ComponentType<P = {}> = ComponentClass<P> | FunctionComponent<P>;
type Key = string | number;
@ -713,17 +716,17 @@ declare namespace React {
* NOTE: prefer ComponentPropsWithRef, if the ref is forwarded,
* or ComponentPropsWithoutRef when refs are not supported.
*/
type ComponentProps<T extends keyof JSX.IntrinsicElements | ComponentType<any>> =
type ComponentProps<T extends ReactType> =
T extends ComponentType<infer P>
? P
: T extends keyof JSX.IntrinsicElements
? JSX.IntrinsicElements[T]
: {};
type ComponentPropsWithRef<T extends keyof JSX.IntrinsicElements | ComponentType<any>> =
type ComponentPropsWithRef<T extends ReactType> =
T extends ComponentClass<infer P>
? PropsWithoutRef<P> & RefAttributes<InstanceType<T>>
: PropsWithRef<ComponentProps<T>>;
type ComponentPropsWithoutRef<T extends keyof JSX.IntrinsicElements | ComponentType<any>> =
type ComponentPropsWithoutRef<T extends ReactType> =
PropsWithoutRef<ComponentProps<T>>;
// will show `Memo(${Component.displayName || Component.name})` in devtools by default,

View File

@ -14,6 +14,14 @@ import update = require("react-addons-update");
import createReactClass = require("create-react-class");
import * as DOM from "react-dom-factories";
// NOTE: forward declarations for tests
declare function setInterval(...args: any[]): any;
declare function clearInterval(...args: any[]): any;
declare var console: Console;
interface Console {
log(...args: any[]): void;
}
interface Props extends React.Attributes {
hello: string;
world?: string | null;
@ -501,7 +509,7 @@ class Timer extends React.Component<{}, TimerState> {
state = {
secondsElapsed: 0
};
private _interval: NodeJS.Timer;
private _interval: number;
tick() {
this.setState((prevState, props) => ({
secondsElapsed: prevState.secondsElapsed + 1

View File

@ -325,3 +325,23 @@ type ImgPropsWithRefRef = ImgPropsWithRef['ref'];
type ImgPropsWithoutRef = React.ComponentPropsWithoutRef<'img'>;
// $ExpectType false
type ImgPropsHasRef = 'ref' extends keyof ImgPropsWithoutRef ? true : false;
const HasClassName: React.ReactType<{ className?: string }> = 'a';
const HasFoo: React.ReactType<{ foo: boolean }> = 'a'; // $ExpectError
const HasFoo2: React.ReactType<{ foo: boolean }> = (props: { foo: boolean }) => null;
const HasFoo3: React.ReactType<{ foo: boolean }> = (props: { foo: string }) => null; // $ExpectError
const HasHref: React.ReactType<{ href?: string }> = 'a';
const HasHref2: React.ReactType<{ href?: string }> = 'div'; // $ExpectError
const CustomElement: React.ReactType = 'my-undeclared-element'; // $ExpectError
// custom elements now need to be declared as intrinsic elements
declare global {
namespace JSX {
interface IntrinsicElements {
'my-declared-element': {};
}
}
}
const CustomElement2: React.ReactType = 'my-declared-element';

View File

@ -8,7 +8,6 @@
// Patricio Zavolinsky <https://github.com/pzavolinsky>
// Digiguru <https://github.com/digiguru>
// Eric Anderson <https://github.com/ericanderson>
// Albert Kurniawan <https://github.com/morcerf>
// Tanguy Krotoff <https://github.com/tkrotoff>
// Dovydas Navickas <https://github.com/DovydasNavickas>
// Stéphane Goetz <https://github.com/onigoetz>

View File

@ -11,6 +11,14 @@ import * as TestUtils from "react-addons-test-utils";
import TransitionGroup = require("react-addons-transition-group");
import update = require("react-addons-update");
// NOTE: forward declarations for tests
declare function setInterval(...args: any[]): any;
declare function clearInterval(...args: any[]): any;
declare var console: Console;
interface Console {
log(...args: any[]): void;
}
interface Props extends React.Attributes {
hello: string;
world?: string;
@ -505,7 +513,7 @@ class Timer extends React.Component<{}, TimerState> {
state = {
secondsElapsed: 0
};
private _interval: NodeJS.Timer;
private _interval: number;
tick() {
this.setState((prevState, props) => ({
secondsElapsed: prevState.secondsElapsed + 1

View File

@ -796,6 +796,7 @@ export interface TooltipPayload {
fill?: string;
dataKey?: DataKey;
formatter?: TooltipFormatter;
payload?: any;
}
export interface TooltipProps extends Animatable {

View File

@ -6,6 +6,7 @@
// corydeppen <https://github.com/corydeppen>
// jscinoz <https://github.com/jscinoz>
// surgeboris <https://github.com/surgeboris>
// geirsagberg <https://github.com/geirsagberg>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.4
@ -24,6 +25,8 @@ export type StateGetter<TState = any> = () => TState;
export type RouteString = string;
export type ConfirmLeave = (state: object, action: object) => Nullable<string>;
export type RouteThunk<TState = any> = (
dispatch: Dispatch<any>,
getState: StateGetter<TState>,
@ -36,6 +39,9 @@ export type RouteObject<TKeys = {}, TState = any> = TKeys & {
thunk?: RouteThunk<TState>;
fromPath?(path: string, key?: string): string;
toPath?(param: string, key?: string): string;
coerceNumbers?: boolean;
confirmLeave?: ConfirmLeave;
meta?: Meta;
};
export type Route<TKeys = {}, TState = any> = RouteString | RouteObject<TKeys, TState>;
@ -194,25 +200,107 @@ export interface NavigatorsConfig<TKeys = {}, TState = any> {
};
}
export interface Bag {
action: ReceivedAction | Action;
extra: any;
}
export interface Options<TKeys = {}, TState = any> {
title?: string | SelectTitleState<TState>;
/**
* A prefix that will be prepended to the URL. For example, using a basename of '/playground',
* a route with the path '/home' would correspond to the URL path '/playground/home'.
*/
basename?: string;
/**
* Whether or not a trailing delimiter is allowed when matching path.
*/
strict?: boolean;
/**
* The name of the state key or a selector function to specify where in your Redux state tree
* Redux First Router should expect your page location reducer to be attached to.
*/
location?: string | SelectLocationState<TKeys, TState>;
notFoundPath?: string;
scrollTop?: boolean;
onBeforeChange?(dispatch: Dispatch<any>, getState: StateGetter<TState>): void;
onAfterChange?(dispatch: Dispatch<any>, getState: StateGetter<TState>): void;
onBackNext?(dispatch: Dispatch<any>, getState: StateGetter<TState>): void;
restoreScroll?(history: History): ScrollBehavior;
/**
* The name of the state key or a selector function to specify where in your Redux state tree
* Redux First Router should expect your page title reducer to be attached to.
* This can be omitted if you attach the reducer at state.title.
*/
title?: string | SelectTitleState<TState>;
/**
* Can be set to false to bypass the initial dispatch, so you can do it manually, perhaps after running sagas.
*/
initialDispatch?: boolean;
querySerializer?: QuerySerializer;
navigators?: NavigatorsConfig<TKeys, TState>;
/**
* An array of entries to initialise history object. Useful for server side rendering and tests.
*/
initialEntries?: HistoryEntries;
/**
* An object with parse and stringify methods, such as the `query-string` or `qs` libraries (or anything handmade).
* This will be used to handle querystrings. Without this option, query strings are ignored silently.
*/
querySerializer?: QuerySerializer;
/**
* The path where users may be redirected in 2 situations: when you dispatch an action with no matching path,
* or if you manually call dispatch(redirect({ type: NOT_FOUND })), where NOT_FOUND is an export from this package.
* The type in actions and state will be NOT_FOUND, which you can use to show a 404 page.
*/
notFoundPath?: string;
/**
* Whether or not window.scrollTo(0, 0) should be run on route changes so the user starts each page at the top.
*/
scrollTop?: boolean;
/**
* A function to update window/elements scroll position.
*/
restoreScroll?(history: History): ScrollBehavior;
/**
* A simple function that will be called before the routes change.
* It's passed your standard `dispatch` and `getState` arguments like a thunk,
* as well as the `bag` object as a third parameter, which contains the dispatched `action` and the configured `extra` value.
*/
onBeforeChange?(dispatch: Dispatch<any>, getState: StateGetter<TState>, bag: Bag): void;
/**
* A simple function that will be called after the routes change.
* It's passed your standard `dispatch` and `getState` arguments like a thunk,
* as well as the `bag` object as a third parameter, which contains the dispatched `action` and the configured `extra` value.
*/
onAfterChange?(dispatch: Dispatch<any>, getState: StateGetter<TState>, bag: Bag): void;
/**
* A simple function that will be called whenever the user uses the browser back/next buttons.
* It's passed your standard `dispatch` and `getState` arguments like a thunk,
* as well as the `bag` object as a third parameter, which contains the dispatched `action`
* and the configured `extra` value. Actions with kinds `back`, `next`, and `pop` trigger this.
*/
onBackNext?(dispatch: Dispatch<any>, getState: StateGetter<TState>, bag: Bag): void;
/**
* A function receiving `message` and `callback` when navigation is blocked with `confirmLeave`.
* The message is the return value from `confirmLeave`.
* The callback can be called with `true` to unblock the navigation, or with `false` to cancel the navigation.
*/
displayConfirmLeave?: DisplayConfirmLeave;
/**
* A function returning a history object compatible with the popular `history` package.
*/
createHistory?(): History;
/**
* A map of of your Redux state keys to _React Navigation_ navigators.
*/
navigators?: NavigatorsConfig<TKeys, TState>;
/**
* An optional value that will be passed as part of the third `bag` argument to all options callbacks and routes thunk.
* It works much like the `withExtraArgument` feature of `redux-thunk` or the `context` argument of GraphQL resolvers.
* You can use it to pass any required context to your thunks without having to tightly couple them to it.
* For example, you could pass an instance of an API client initialised with authentication cookies,
* or a function `addReducer` to inject new code split reducers into the store.
*/
extra?: any;
}
export type Params = object;
export type Payload = object;
export type DisplayConfirmLeave = (message: string, callback: (unblock: boolean) => void) => void;
export type ScrollUpdater = (performedByUser: boolean) => void;
export const NOT_FOUND: '@@redux-first-router/NOT_FOUND';

View File

@ -7,21 +7,24 @@ import {
redirect,
Action as ReduxFirstRouterAction,
QuerySerializer,
pathToAction
pathToAction,
StateGetter,
Bag,
Navigators,
NavigationAction,
Nullable,
Route
} from 'redux-first-router';
import {
AnyAction,
createStore,
applyMiddleware,
Middleware,
MiddlewareAPI,
Store,
Dispatch,
compose,
Action,
StoreEnhancer,
StoreEnhancerStoreCreator,
combineReducers
combineReducers,
AnyAction,
Store
} from 'redux';
import { History } from 'history';
@ -52,28 +55,40 @@ const routesMap: RoutesMap<Keys, State> = {
}
};
const {
reducer,
middleware,
enhancer,
initialDispatch,
thunk,
} = connectRoutes(routesMap, {
initialDispatch: false,
onBeforeChange: (dispatch, getState) => {
dispatch; // $ExpectType Dispatch<any>
getState; // $ExpectType StateGetter<State>
const { reducer, middleware, enhancer, initialDispatch, thunk } = connectRoutes(routesMap, {
basename: '/base',
strict: false,
location: state => {
const locationState = state.location; // $ExpectType LocationState<Keys, State>
return locationState;
},
title: state => {
const title = state.location.pathname; // $ExpectType string
return title;
},
initialDispatch: false,
initialEntries: [],
querySerializer: {
stringify: queryString => {
queryString; // $ExpectType object
return '';
},
location: state => {
const locationState = state.location; // $ExpectType LocationState<Keys, State>
return locationState;
},
title: state => {
const title = state.location.pathname; // $ExpectType string
return title;
},
createHistory: () => history,
});
parse: params => {
params; // $ExpectType string
return {};
}
},
notFoundPath: 'not-found',
scrollTop: true,
restoreScroll: (history: History) => {
return {};
},
onBeforeChange: (dispatch: Dispatch, getState: StateGetter<State>, bag: Bag) => { },
onAfterChange: (dispatch: Dispatch, getState: StateGetter<State>, bag: Bag) => { },
onBackNext: (dispatch: Dispatch, getState: StateGetter<State>, bag: Bag) => { },
displayConfirmLeave: (message: string, callback: (unblock: boolean) => void) => { },
createHistory: (options?: any) => history
});
const dumbMiddleware: Middleware = store => next => action => next(action);
@ -89,10 +104,9 @@ const combined = combineReducers<State>({ location: reducer });
const store = createStore(combined, storeEnhancer);
// Test that `thunk()` has correct state types now that `store` is defined
thunk(store)
.then((t) => {
t = t!; // $ExpectType RouteThunk<State>
});
thunk(store).then(t => {
t = t!; // $ExpectType RouteThunk<State>
});
const receivedAction: ReceivedAction = {
type: 'HOME',
@ -102,8 +116,8 @@ actionToPath(receivedAction, routesMap); // $ExpectType string
pathToAction('/', routesMap); // $ExpectType ReceivedAction
const querySerializer: QuerySerializer = {
stringify: (params) => '',
parse: (queryString) => ({})
stringify: params => '',
parse: queryString => ({})
};
actionToPath(receivedAction, routesMap, querySerializer); // $ExpectType string
pathToAction('/', routesMap, querySerializer); // $ExpectType ReceivedAction

View File

@ -2295,8 +2295,8 @@ declare namespace sequelize {
* interfaces.
*
* beforeValidate, afterValidate, beforeBulkCreate, beforeBulkDestroy, beforeBulkUpdate, beforeCreate,
* beforeDestroy, beforeUpdate, afterCreate, afterDestroy, afterUpdate, afterBulkCreate, afterBulkDestroy and
* afterBulkUpdate.
* beforeDestroy, beforeSave, beforeUpdate, afterCreate, afterDestroy, afterSave, afterUpdate, afterBulkCreate,
* afterBulkDestroy and afterBulkUpdate.
*/
interface HooksDefineOptions<TInstance> {
@ -2310,6 +2310,8 @@ declare namespace sequelize {
afterDelete?: (instance: TInstance, options: Object, fn?: Function) => any;
beforeUpdate?: (instance: TInstance, options: Object, fn?: Function) => any;
afterUpdate?: (instance: TInstance, options: Object, fn?: Function) => any;
beforeSave?: (instance: TInstance, options: Object, fn?: Function) => any;
afterSave?: (instance: TInstance, options: Object, fn?: Function) => any;
beforeBulkCreate?: (instances: TInstance[], options: Object, fn?: Function) => any;
afterBulkCreate?: (instances: TInstance[], options: Object, fn?: Function) => any;
beforeBulkDestroy?: (options: Object, fn?: Function) => any;
@ -5272,9 +5274,10 @@ declare namespace sequelize {
/**
* An object of hook function that are called before and after certain lifecycle events.
* The possible hooks are: beforeValidate, afterValidate, beforeBulkCreate, beforeBulkDestroy,
* beforeBulkUpdate, beforeCreate, beforeDestroy, beforeUpdate, afterCreate, afterDestroy, afterUpdate,
* afterBulkCreate, afterBulkDestory and afterBulkUpdate. See Hooks for more information about hook
* functions and their signatures. Each property can either be a function, or an array of functions.
* beforeBulkUpdate, beforeCreate, beforeDestroy, beforeSave, beforeUpdate, afterCreate, afterDestroy,
* afterSave, afterUpdate, afterBulkCreate, afterBulkDestory and afterBulkUpdate.
* See Hooks for more information about hook functions and their signatures. Each property can either
* be a function, or an array of functions.
*/
hooks?: HooksDefineOptions<TInstance>;

View File

@ -3,13 +3,14 @@
// Definitions by: Michael Müller <https://github.com/mad-mike>,
// Troy Lamerton <https://github.com/troy-lamerton>
// Martín Rodriguez <https://github.com/netux>
// Linus Unnebäck <https://github.com/LinusU>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.9
/** Creates a new simple-oauth2 client with the passed configuration */
export function create(options: ModuleOptions): OAuthClient;
export function create<ClientIdName extends string = 'client_id'>(options: ModuleOptions<ClientIdName>): OAuthClient<ClientIdName>;
export interface ModuleOptions {
export interface ModuleOptions<ClientIdName extends string = 'client_id'> {
client: {
/** Service registered client id. Required. */
id: string,
@ -18,7 +19,7 @@ export interface ModuleOptions {
/** Parameter name used to send the client secret. Default to client_secret. */
secretParamName?: string,
/** Parameter name used to send the client id. Default to client_id. */
idParamName?: string
idParamName?: ClientIdName
};
auth: {
/** String used to set the host to request the tokens to. Required. */
@ -91,7 +92,7 @@ export interface ClientCredentialTokenConfig {
scope?: string | string[];
}
export interface OAuthClient {
export interface OAuthClient<ClientIdName extends string = 'client_id'> {
authorizationCode: {
/**
* Redirect the user to the autorization page
@ -99,8 +100,8 @@ export interface OAuthClient {
*/
authorizeURL(
params?: {
/** A key-value pair where key is ModuleOptions#client.idParamName and the value represents the Client-ID */
[ idParamName: string ]: string | undefined
/** A string that represents the Client-ID */
[key in ClientIdName]?: string
} & {
/** A string that represents the registered application URI where the user is redirected after authentication */
redirect_uri?: string,

View File

@ -17,6 +17,12 @@ const credentials: oauth2lib.ModuleOptions = {
const oauth2 = oauth2lib.create(credentials);
// Test custom `idParamName`
{
const oauth2 = oauth2lib.create({ client: { id: 'x', secret: 'x', idParamName: 'foobar' }, auth: { tokenHost: 'x' } });
oauth2.authorizationCode.authorizeURL({ foobar: 'x' });
}
// #Authorization Code flow
(async () => {
// Authorization oauth2 URI
@ -26,6 +32,12 @@ const oauth2 = oauth2lib.create(credentials);
state: '<state>'
});
oauth2.authorizationCode.authorizeURL({
redirect_uri: 'http://localhost:3000/callback',
scope: ['<scope1>', '<scope2>'],
state: '<state>'
});
// Redirect example using Express (see http://expressjs.com/api.html#res.redirect)
// res.redirect(authorizationUri);

View File

@ -1,11 +1,18 @@
// Type definitions for stoppable 1.0
// Type definitions for stoppable 1.1
// Project: https://github.com/hunterloftis/stoppable
// Definitions by: Eric Byers <https://github.com/EricByers>
// John Plusjé <https://github.com/jplusje>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
/// <reference types="node" />
import { Server } from 'http';
declare function stoppable(server: Server, grace?: number): Server;
declare namespace stoppable {
interface StoppableServer extends Server {
stop(callback?: (e: Error, gracefully: boolean) => void): void;
}
}
declare function stoppable(server: Server, grace?: number): stoppable.StoppableServer;
export = stoppable;

View File

@ -1,8 +1,12 @@
import * as http from 'http';
import stoppable = require('stoppable');
const server: http.Server = stoppable(http.createServer());
server.close();
const server: stoppable.StoppableServer = stoppable(http.createServer());
server.stop();
const server2: http.Server = stoppable(http.createServer(), 10000);
server2.close();
const server2: stoppable.StoppableServer = stoppable(http.createServer(), 10000);
server2.stop();
const server3: stoppable.StoppableServer = stoppable(http.createServer());
server.stop((err, gracefully) => {});
server.close();

View File

@ -163,7 +163,7 @@ export interface StripeElement {
* The type of element that can be created by the ElementCreator
* @see ElementCreator
*/
export type ElementType = 'card' | 'cardNumber' | 'cardExpiry' | 'cardCvc' | 'postalCode';
export type ElementType = 'card' | 'cardNumber' | 'cardExpiry' | 'cardCvc' | 'postalCode' | 'paymentRequestButton';
// --- ELEMENT EVENTS --- //
export interface OnChange {
@ -295,6 +295,7 @@ export interface PaymentButtonOptions {
complete?: PaymentRequestButtonStyle;
empty?: PaymentRequestButtonStyle;
invalid?: PaymentRequestButtonStyle;
paymentRequestButton?: PaymentRequestButtonStyle;
};
}

View File

@ -1,6 +1,7 @@
// Type definitions for stripe.js 3.0
// Project: https://stripe.com/
// Definitions by: Robin van Tienhoven <https://github.com/RobinvanTienhoven>
// Matt Ferderer <https://github.com/mattferderer>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.1

View File

@ -56,11 +56,16 @@ export interface TokenData {
*/
name: string;
/**
* The amount paid, not a decimal. In USD this is in cents.
*/
amount?: number;
/**
* Fields for billing address information.
*/
address_line1: string;
address_line2: string;
address_line2?: string;
address_city: string;
address_state: string;
address_zip: string;
@ -69,7 +74,7 @@ export interface TokenData {
* A two character country code identifying the country
* @example 'US'
*/
address_country: string;
address_country?: string;
/**
* Used to add a card to an account

View File

@ -287,6 +287,10 @@ export type ThemedStyledInterface<T extends object> = ThemedBaseStyledInterface<
export type StyledInterface = ThemedStyledInterface<DefaultTheme>;
export interface BaseThemedCssFunction<T extends object> {
(
first: TemplateStringsArray | NonNullable<SimpleInterpolation>,
...interpolations: SimpleInterpolation[]
): FlattenSimpleInterpolation;
(
first:
| TemplateStringsArray

View File

@ -99,6 +99,21 @@ const fadeIn = keyframes`
}
`;
const showAnimation = css`
opacity: 1;
transform: scale(1) translateY(0);
`;
const hideAnimation = css`
opacity: 0;
transform: scale(0.95, 0.8) translateY(20px);
`;
const entryAnimation = keyframes`
from { ${hideAnimation} }
to { ${showAnimation} }
`;
const animationRule = css`
${fadeIn} 1s infinite alternate;
`;

View File

@ -6,7 +6,7 @@
export interface UploadOptions {
endpoint: string;
fingerprint?: string;
fingerprint?: (file: File, options?: UploadOptions) => string;
resume?: boolean;
metadata?: { [key: string]: string };
onProgress?: ((bytesSent: number, bytesTotal: number) => void) | null;

View File

@ -10,7 +10,7 @@ const file = new File(["foo"], "foo.txt", {
const upload = new Tus.Upload(file, {
endpoint: "",
fingerprint: "fingerprint",
fingerprint: (file: File) => file.name,
resume: true,
metadata: {
filename: "foo.txt"

562
types/vega/index.d.ts vendored
View File

@ -1,562 +0,0 @@
// Type definitions for Vega
// Project: http://trifacta.github.io/vega/
// Definitions by: Tom Crockett <https://github.com/pelotom>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
declare namespace vg {
export type ChartViewConstructor = {
(args: {renderer: 'svg'} & ViewArgs): SvgView;
(args: {renderer: 'canvas'} & ViewArgs): CanvasView;
(args: ViewArgs): View;
};
export interface Parse {
spec(url: string, callback: (chart: ChartViewConstructor) => void): void;
spec(spec: Spec, callback: (chart: ChartViewConstructor) => void): void;
data(dataSet: Data[], callback: () => void): void;
// TODO all the other stuff
}
export interface ViewArgs {
// TODO docs
el?: any;
data?: any;
hover?: boolean;
renderer?: string;
}
export interface View {
// TODO docs
width(): number;
width(w: number): this;
height(): number;
height(h: number): this;
padding(): Padding;
padding(p: Padding): this;
viewport(): number[];
viewport(v: number[]): this;
renderer(r: string): this;
data(): Runtime.DataSets;
data(d: any/*TODO*/): this;
initialize(selector: string): this;
initialize(node: Element): this;
render(r?: any[]): this;
update(options?: UpdateOptions): this;
model(): Vega.Model;
defs(): Defs;
defs(defs: Defs): this;
}
export interface SvgView extends View {
svg(): string;
}
export interface CanvasView extends View {
canvas(): any; // Returns a node-canvas instance
}
export interface Padding {
// TODO docs
top: number;
right: number;
bottom: number;
left: number;
}
export interface UpdateOptions {
// TODO docs
props?: string;
items?: any;
duration?: number;
ease?: string;
}
export interface Bounds {
x1: number;
y1: number;
x2: number;
y2: number;
clear(): Bounds;
set(x1: number, y1: number, x2: number, y2: number): Bounds;
add(x: number, y: number): Bounds;
expand(d: number): Bounds;
round(): Bounds;
translate(dx: number, dy: number): Bounds;
rotate(angle: number, x: number, y: number): Bounds;
union(b: Bounds): Bounds;
encloses(b: Bounds): boolean;
intersects(b: Bounds): boolean;
contains(x: number, y: number): boolean;
width(): number;
height(): number;
}
export interface Model {
defs(): Defs;
defs(defs: Defs): Model;
data(): Runtime.DataSets;
data(data: Runtime.DataSets): Model;
ingest(name: string, tx: any/*TODO*/, input: any/*TODO*/): void;
dependencies(name: string, tx: any/*TODO*/): void;
width(w: number): Model;
height(h: number): Model;
scene(): Node;
scene(node: Node): Model;
build(): Model;
encode(trans?: any/*TODO*/, request?: string, item?: any): Model;
reset(): Model;
}
export namespace Runtime {
export interface DataSets {
[name: string]: Datum[];
}
export interface Datum {
[key: string]: any
}
export interface Marks {
type: string;
width: number;
height: number;
scales: Scale[];
axes: Axis[];
legends: Legend[];
marks: Mark[];
}
export interface PropertySets {
enter?: Properties;
exit?: Properties;
update?: Properties;
hover?: Properties;
}
export interface Properties {
(item: Node, group: Node, trans: any/*TODO*/): void;
}
}
export interface Node {
def: Vega.Mark;
marktype: string;
interactive: boolean;
items: Node[];
bounds: Bounds;
// mark item members
hasPropertySet(name: string): boolean;
cousin(offset: number, index: number): Node;
sibling(offset: number): Node;
remove(): Node;
touch(): void;
// group members
scales?: {[name: string]: any};
axisItems?: Node[];
}
export interface Defs {
width: number;
height: number;
viewport?: number[];
padding: any;
marks: Runtime.Marks;
data: Data[];
}
export interface Spec {
/**
* A unique name for the visualization specification.
*/
name?: string;
/**
* The total width, in pixels, of the data rectangle. Default is 500 if
* undefined.
*/
width?: number;
/**
* The total height, in pixels, of the data rectangle. Default is 500 if
* undefined.
*/
height?: number;
/**
* The width and height of the on-screen viewport, in pixels. If necessary,
* clipping and scrolling will be applied.
*/
viewport?: number[];
/**
* [Number | Object | String]
* The internal padding, in pixels, from the edge of the visualization
* canvas to the data rectangle. If an object is provided, it must include
* {top, left, right, bottom} properties. Two string values are also
* acceptable: "auto" (the default) and "strict". Auto-padding computes the
* padding dynamically based on the contents of the visualization. All
* marks, including axes and legends, are used to compute the necessary
* padding. "Strict" auto-padding attempts to adjust the padding such that
* the overall width and height of the visualization is unchanged. This mode
* can cause the visualization's width and height parameters to be adjusted
* such that the total size, including padding, remains constant. Note that
* in some cases strict padding is not possible; for example, if the axis
* labels are much larger than the data rectangle.
*/
padding?: number | string | {
top: number; left: number; right: number; bottom: number
}; // string is "auto" or "strict"
/**
* Definitions of data to visualize.
*/
data: Data[];
/**
* Scale transform definitions.
*/
scales?: Scale[];
/**
* Axis definitions.
*/
axes?: Axis[];
/**
* Legend definitions.
*/
legends?: Legend[];
/**
* Graphical mark definitions.
*/
marks: (Mark | GroupMark)[];
}
export interface Data {
/**
* A unique name for the data set.
*/
name: string;
/**
* An object that specifies the format for the data file, if loaded from a
* URL.
*/
format?: Data.Format;
/**
* The actual data set to use. The values property allows data to be inlined
* directly within the specification itself.
*/
values?: any;
/**
* The name of another data set to use as the source for this data set. The
* source property is particularly useful in combination with a transform
* pipeline to derive new data.
*/
source?: string;
/**
* A URL from which to load the data set. Use the format property to ensure
* the loaded data is correctly parsed. If the format property is not specified,
* the data is assumed to be in a row-oriented JSON format.
*/
url?: string;
/**
* An array of transforms to perform on the data. Transform operators will be
* run on the default data, as provided by late-binding or as specified by the
* source, values, or url properties.
*/
transform?: Data.Transform[];
}
export namespace Data {
export interface FormatBase {
/**
* The currently supported format types are json (JavaScript Object
* Notation), csv (comma-separated values), tsv (tab-separated values),
* topojson, and treejson.
*/
type: string;
// TODO: fields for specific formats
}
/**
* The JSON property containing the desired data.
* This parameter can be used when the loaded JSON file may have surrounding structure or meta-data.
* For example "property": "values.features" is equivalent to retrieving json.values.features from the
* loaded JSON object.
*/
export interface JsonFormat extends FormatBase {
type: string; // "json"
property?: string;
}
export interface CsvOrTsvFormat extends FormatBase {
type: string; // "csv" | "tsv"
parse?: {
[propertyName: string]: string; // "number" | "boolean" | "date"
}
}
export interface TopoJsonFormat extends FormatBase {
type: string; // "topojson"
feature?: string;
mesh?: string;
}
export interface TreeJson extends FormatBase {
type: string; // "treejson"
children?: string;
parse?: {
[propertyName: string]: string; // "number" | "boolean" | "date"
}
}
export type Format = JsonFormat | CsvOrTsvFormat | TopoJsonFormat | TreeJson;
export interface Transform {
// TODO
}
}
export interface Scale {
// TODO docs
// -- Common scale properties
name?: string;
type?: string;
domain?: any;
domainMin?: any;
domainMax?: any;
range?: any;
rangeMin?: any;
rangeMax?: any;
reverse?: boolean;
round?: boolean;
// -- Ordinal scale properties
points?: boolean;
padding?: number;
sort?: boolean;
// -- Time/Quantitative scale properties
clamp?: boolean;
/** boolean for quantitative scales, string for time scales */
nice?: boolean | string;
// -- Quantitative scale properties
exponent?: number;
zero?: boolean;
}
export interface Axis {
// TODO docs
type: string;
scale: string;
orient?: string;
title?: string;
titleOffset?: number;
format?: string;
ticks?: number;
values?: any[];
subdivide?: number;
tickPadding?: number;
tickSize?: number;
tickSizeMajor?: number;
tickSizeMinor?: number;
tickSizeEnd?: number;
offset?: any;
layer?: string;
grid?: boolean;
properties?: Axis.Properties
}
export namespace Axis {
export interface Properties {
ticks?: PropertySet;
minorTicks?: PropertySet;
grid?: PropertySet;
labels?: PropertySet;
title?: PropertySet;
axis?: PropertySet;
}
}
export interface Legend {
// TODO
}
export interface Mark {
// TODO docs
// Stuff from Spec.Mark
type: string; // "rect" | "symbol" | "path" | "arc" | "area" | "line" | "rule" | "image" | "text" | "group"
name?: string;
description?: string;
from?: Mark.From;
key?: string;
delay?: ValueRefs;
/**
* "linear-in" | "linear-out" | "linear-in-out" | "linear-out-in" | "quad-in" | "quad-out" | "quad-in-out" |
* "quad-out-in" | "cubic-in" | "cubic-out" | "cubic-in-out" | "cubic-out-in" | "sin-in" | "sin-out" | "sin-in-out" |
* "sin-out-in" | "exp-in" | "exp-out" | "exp-in-out" | "exp-out-in" | "circle-in" | "circle-out" | "circle-in-out" |
* "circle-out-in" | "bounce-in" | "bounce-out" | "bounce-in-out" | "bounce-out-in"
*/
ease?: string;
interactive?: boolean;
// Runtime PropertySets
properties?: PropertySets;
}
export module Mark {
export interface From {
// TODO docs
data?: string;
mark?: string;
transform?: Data.Transform[];
}
}
export interface GroupMark extends Mark {
type: string; // "group"
/**
* Scale transform definitions.
*/
scales?: Scale[];
/**
* Axis definitions.
*/
axes?: Axis[];
/**
* Legend definitions.
*/
legends?: Legend[];
/**
* Groups differ from other mark types in their ability to contain children marks.
* Marks defined within a group mark can inherit data from their parent group.
* For inheritance to work each data element for a group must contain data elements of its own.
* This arrangement of nested data is typically achieved by facetting the data, such that each group-level data element includes its own array of sub-elements
*/
marks?: (Mark | GroupMark)[];
}
export interface PropertySets {
// TODO docs
enter?: PropertySet;
exit?: PropertySet;
update?: PropertySet;
hover?: PropertySet;
}
export interface PropertySet {
// TODO docs
// -- Shared visual properties
x?: ValueRefs;
x2?: ValueRefs;
width?: ValueRefs;
y?: ValueRefs;
y2?: ValueRefs;
height?: ValueRefs;
opacity?: ValueRefs;
fill?: ValueRefs;
fillOpacity?: ValueRefs;
stroke?: ValueRefs;
strokeWidth?: ValueRefs;
strokeOpacity?: ValueRefs;
strokeDash?: ValueRefs;
strokeDashOffset?: ValueRefs;
// -- symbol
size?: ValueRefs;
shape?: ValueRefs;
// -- path
path?: ValueRefs;
// -- arc
innerRadius?: ValueRefs;
outerRadius?: ValueRefs;
startAngle?: ValueRefs;
endAngle?: ValueRefs;
// -- area / line
interpolate?: ValueRefs;
tension?: ValueRefs;
// -- image / text
align?: ValueRefs;
baseline?: ValueRefs;
// -- image
url?: ValueRefs;
// -- text
text?: ValueRefs;
dx?: ValueRefs;
dy?: ValueRefs;
angle?: ValueRefs;
font?: ValueRefs;
fontSize?: ValueRefs;
fontWeight?: ValueRefs;
fontStyle?: ValueRefs;
}
export interface ValueRef {
// TODO docs
value?: any;
field?: any;
group?: any;
scale?: any;
mult?: number;
offset?: number;
band?: boolean;
test?: string;
}
export type ValueRefs = ValueRef | ValueRef[];
export var parse: Parse;
export namespace scene {
export function item(mark: Node): Node;
}
export class Bounds implements Bounds {
x1: number;
y1: number;
x2: number;
y2: number;
clear(): Bounds;
set(x1: number, y1: number, x2: number, y2: number): Bounds;
add(x: number, y: number): Bounds;
expand(d: number): Bounds;
round(): Bounds;
translate(dx: number, dy: number): Bounds;
rotate(angle: number, x: number, y: number): Bounds;
union(b: Bounds): Bounds;
encloses(b: Bounds): boolean;
intersects(b: Bounds): boolean;
contains(x: number, y: number): boolean;
width(): number;
height(): number;
}
// TODO: classes for View, Model, etc.
}
export = vg;
export as namespace vg;
export as namespace Vega;

View File

@ -1,24 +0,0 @@
{
"compilerOptions": {
"module": "commonjs",
"lib": [
"es6",
"dom"
],
"noImplicitAny": true,
"noImplicitThis": true,
"strictNullChecks": false,
"strictFunctionTypes": true,
"baseUrl": "../",
"typeRoots": [
"../"
],
"types": [],
"noEmit": true,
"forceConsistentCasingInFileNames": true
},
"files": [
"index.d.ts",
"vega-tests.ts"
]
}

View File

@ -1,79 +0,0 @@
{
"extends": "dtslint/dt.json",
"rules": {
"adjacent-overload-signatures": false,
"array-type": false,
"arrow-return-shorthand": false,
"ban-types": false,
"callable-types": false,
"comment-format": false,
"dt-header": false,
"eofline": false,
"export-just-namespace": false,
"import-spacing": false,
"interface-name": false,
"interface-over-type-literal": false,
"jsdoc-format": false,
"max-line-length": false,
"member-access": false,
"new-parens": false,
"no-any-union": false,
"no-boolean-literal-compare": false,
"no-conditional-assignment": false,
"no-consecutive-blank-lines": false,
"no-construct": false,
"no-declare-current-package": false,
"no-duplicate-imports": false,
"no-duplicate-variable": false,
"no-empty-interface": false,
"no-for-in-array": false,
"no-inferrable-types": false,
"no-internal-module": false,
"no-irregular-whitespace": false,
"no-mergeable-namespace": false,
"no-misused-new": false,
"no-namespace": false,
"no-object-literal-type-assertion": false,
"no-padding": false,
"no-redundant-jsdoc": false,
"no-redundant-jsdoc-2": false,
"no-redundant-undefined": false,
"no-reference-import": false,
"no-relative-import-in-test": false,
"no-self-import": false,
"no-single-declare-module": false,
"no-string-throw": false,
"no-unnecessary-callback-wrapper": false,
"no-unnecessary-class": false,
"no-unnecessary-generics": false,
"no-unnecessary-qualifier": false,
"no-unnecessary-type-assertion": false,
"no-useless-files": false,
"no-var-keyword": false,
"no-var-requires": false,
"no-void-expression": false,
"no-trailing-whitespace": false,
"object-literal-key-quotes": false,
"object-literal-shorthand": false,
"one-line": false,
"one-variable-per-declaration": false,
"only-arrow-functions": false,
"prefer-conditional-expression": false,
"prefer-const": false,
"prefer-declare-function": false,
"prefer-for-of": false,
"prefer-method-signature": false,
"prefer-template": false,
"radix": false,
"semicolon": false,
"space-before-function-paren": false,
"space-within-parens": false,
"strict-export-declare-modifiers": false,
"trim-file": false,
"triple-equals": false,
"typedef-whitespace": false,
"unified-signatures": false,
"void-return": false,
"whitespace": false
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,12 +1,13 @@
// Type definitions for vfile-location 2.0
// Project: https://github.com/vfile/vfile-location
// Definitions by: Ika <https://github.com/ikatyang>
// Junyoung Choi <https://github.com/rokt33r>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.4
// TypeScript Version: 3.0
import * as VFile from "vfile";
declare function vfileLocation(vfile: string | VFile.VFile<{}>): vfileLocation.Location;
declare function vfileLocation(vfile: string | VFile.VFile): vfileLocation.Location;
declare namespace vfileLocation {
interface Location {

View File

@ -1,35 +1,34 @@
// Type definitions for VFile 2.2
// Type definitions for VFile 3.0
// Project: https://github.com/vfile/vfile
// Definitions by: bizen241 <https://github.com/bizen241>
// Junyoung Choi <https://github.com/rokt33r>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.4
// TypeScript Version: 3.0
/// <reference types='node' />
import * as Unist from 'unist';
declare namespace vfile {
type Contents = string | Buffer;
type VFileContents = string | Buffer;
interface NodeWithPosition extends Unist.Node {
position: Unist.Position;
[key: string]: any;
}
interface VFileParamsBase<D> {
data?: D;
contents?: Contents;
interface VFileOptions {
contents?: VFileContents;
path?: string;
basename?: string;
stem?: string;
extname?: string;
dirname?: string;
cwd?: string;
data?: any;
[key: string]: any;
}
type VFileParams<C extends {data?: {}}> = VFileParamsBase<C['data']> & C;
/**
* File-related message describing something at certain position.
*/
@ -102,12 +101,11 @@ declare namespace vfile {
*/
type ToString = (encoding?: BufferEncoding) => string;
interface VFileBase<C extends {data?: {}}> {
interface VFile {
/**
* @param options If `options` is `string` or `Buffer`, treats it as `{contents: options}`. If `options` is a `VFile`, returns it. All other options are set on the newly created `vfile`.
*/
(input?: Contents): VFile<C>;
<C>(input?: VFile<C> | VFileParams<C>): VFile<C>;
<F extends VFile>(input?: VFileContents | F | VFileOptions): F;
message: Message;
fail: Fail;
info: Info;
@ -119,7 +117,7 @@ declare namespace vfile {
* Place to store custom information.
* It's OK to store custom data directly on the `vfile`, moving it to `data` gives a little more privacy.
*/
data: C['data'];
data: unknown;
/**
* List of messages associated with the file.
*/
@ -127,7 +125,7 @@ declare namespace vfile {
/**
* Raw value.
*/
contents: Contents;
contents: VFileContents;
/**
* Path of `vfile`.
* Cannot be nullified.
@ -161,8 +159,6 @@ declare namespace vfile {
cwd: string;
toString: ToString;
}
type VFile<C> = VFileBase<C> & C;
}
/**
@ -170,6 +166,6 @@ declare namespace vfile {
* Path related properties are set in the following order (least specific to most specific): `history`, `path`, `basename`, `stem`, `extname`, `dirname`.
* Its not possible to set either `dirname` or `extname` without setting either `history`, `path`, `basename`, or `stem` as well.
*/
declare const vfile: vfile.VFile<{}>;
declare const vfile: vfile.VFile;
export = vfile;

60
types/vfile/readme.md Normal file
View File

@ -0,0 +1,60 @@
## VFile typescript Docs
Below are some examples of how to use these Definitions.<br>
Scenarios where the Typescript code is identical to plain Javascript code are omitted.
### Using `data` property
Because `data` property type is set `unknown`, you have to make your own type guard.
```ts
interface CustomData {
message: string;
}
// This is the type guard
function isCustomData(data: any): data is CustomData {
return data != null && typeof data.message === 'string';
}
function doSomethingWithCustomData(data: CustomData) {
}
const customData: CustomData = {
message: 'tango'
};
const fileWithData = vfile({
data: customData
});
if (isCustomData(fileWithData.data)) {
doSomethingWithCustomData(fileWithData.data);
}
// The below code will throw a compiler error
doSomethingWithCustomData(fileWithData.data); // $ExpectError
```
### Extending VFile
```ts
import vfile = require('vfile')
// 1. Define extended vfile interface
interface CustomVFile extends vfile.VFile {
custom: string;
data: {
custom: number;
};
}
// 2. Provide the extended interface to generic type parameter
// So it can be used for return value
const file: CustomVFile = vfile<CustomVFile>({
path: '~/example.txt',
contents: 'Alpha *braavo* charlie.',
custom: 'Custom tango',
data: {
custom: 12345
}
});
// vfile recognize extended VFile values. So it will return same type.
const copiedFile: CustomVFile = vfile(file);
```

View File

@ -1,48 +1,39 @@
import vfile = require("vfile");
import vfile = require('vfile');
import * as Unist from 'unist';
// Instantiation
vfile();
const file: vfile.VFile = vfile();
vfile('string');
vfile(Buffer.from('string'));
vfile(vfile());
vfile({ stem: 'readme', extname: '.md' });
vfile({ custom: 'data' });
try {
vfile({ extname: '.md' });
} catch (e) {
console.log('Error: set extname without path');
}
const file = vfile<{custom: string, data: {custom: number}}>({
path: '~/example.txt',
contents: 'Alpha *braavo* charlie.',
custom: 'Custom tango',
data: {
custom: 12345
},
});
file.path; // => '~/example.txt'
file.dirname; // => '~'
vfile({ path: 1234 }); // $ExpectError
file.path = '~/test.txt';
file.dirname = '~';
file.extname = '.md';
file.basename = 'test.text';
file.history = ['~/test.txt']; // => ['~/example.txt', '~/example.md', '~/index.text']
file.messages = [{
file: '~/test.txt',
ruleId: '',
reason: '',
line: 1,
column: 1,
location: {
start: {
line: 1,
column: 1,
},
end: {
line: 1,
column: 1,
}
},
source: ''
}];
file.basename; // => 'example.md'
file.basename = 'index.text';
file.history; // => ['~/example.txt', '~/example.md', '~/index.text']
file.message('`braavo` is misspelt; did you mean `bravo`?', {line: 1, column: 8});
console.log(file.messages);
// Typings of the custom data can be resolved from the parameters above
const custom: string = file.custom; // 'Custom tango'
const dataCustom: number = file.data.custom; // 12345
// message method accept any Stringifiable Position(e.g. point, position, node with position)
const startPoint: Unist.Point = {
line: 1,
column: 1,
@ -54,18 +45,56 @@ const position: Unist.Position = {
column: 2,
},
};
// Accept Point
file.message('test', startPoint);
// Accept Position
file.message('test', position);
// Accept Node with extra value
file.message('test', {
type: 'ramdom node',
position,
extraValue: 'extra tango',
});
// But, it must reject any malformed position
file.message('test', { start: 'invalid point' }); // $ExpectError
// Typings of original properties must be kept
const fileWithWrongParams = vfile({ path: 1234 }); // $ExpectError
// Using `data` prop
interface CustomData {
message: string;
}
function isCustomData(data: any): data is CustomData {
return data != null && typeof data.message === 'string';
}
function doSomethingWithCustomData(data: CustomData) {
}
const customData: CustomData = {
message: 'tango'
};
const fileWithData = vfile({
data: customData
});
if (isCustomData(fileWithData.data)) {
doSomethingWithCustomData(fileWithData.data);
}
doSomethingWithCustomData(fileWithData.data); // $ExpectError
// Extending vfile
interface CustomVFile extends vfile.VFile {
custom: string;
data: {
custom: number;
};
}
const customVFile = vfile<CustomVFile>({
path: '~/example.txt',
contents: 'Alpha *braavo* charlie.',
custom: 'Custom tango',
data: {
custom: 12345
}
});
customVFile.custom = 'test';
customVFile.data.custom = 1234;
const copiedFile: CustomVFile = vfile(customVFile);

View File

@ -1,4 +1,4 @@
// Type definitions for webpack-chain 4.8
// Type definitions for webpack-chain 5.0
// Project: https://github.com/mozilla-neutrino/webpack-chain
// Definitions by: Eirikur Nilsson <https://github.com/eirikurn>, Paul Sachs <https://github.com/psachs21>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
@ -209,7 +209,7 @@ declare namespace Config {
flagIncludedChunks(value: boolean): this;
mergeDuplicateChunks(value: boolean): this;
minimize(value: boolean): this;
minimizer(value: webpack.Plugin[]): this;
minimizer(name: string): Plugin<this>;
namedChunks(value: boolean): this;
namedModules(value: boolean): this;
nodeEnv(value: boolean | string): this;

View File

@ -173,7 +173,9 @@ config
.flagIncludedChunks(true)
.mergeDuplicateChunks(true)
.minimize(true)
.minimizer([])
.minimizer('foo')
.use(webpack.DefinePlugin)
.end()
.namedChunks(true)
.namedModules(true)
.nodeEnv(true)

View File

@ -1394,7 +1394,6 @@ declare namespace webpack {
constructor();
}
/** @deprecated use webpack.NoEmitOnErrorsPlugin */
class NormalModuleReplacementPlugin extends Plugin {
constructor(resourceRegExp: any, newResource: any);
}

View File

@ -936,7 +936,7 @@ declare namespace wx {
/** 本地缓存中的指定的 key */
key: string;
/** 接口调用的回调函数,res = {data: key对应的内容} */
success(res: DataResponse): void;
success(res: { data: Record<string, any> | string | undefined }): void;
}
/**
* key
@ -3058,12 +3058,33 @@ declare namespace wx {
* wx.login获取新的用户登录态
*/
function checkSession(options: CheckSessionOption): void;
// scope 列表
type Scope =
| "scope.userInfo"
| "scope.userLocation"
| "scope.address"
| "scope.invoiceTitle"
| "scope.invoice"
| "scope.werun"
| "scope.record"
| "scope.writePhotosAlbum"
| "scope.camera";
// 开放接口-----设置
interface AuthorizeOption {
scope: Scope;
success?(res: ErrMsgResponse): void;
fail?(): void;
complete?(): void;
}
/**
*
* 使
*
*/
function authorize(options: AuthSetting): void;
function authorize(options: AuthorizeOption): void;
// 开放接口-----用户信息
interface UserInfo {
nickName: string;
@ -3283,22 +3304,9 @@ declare namespace wx {
*
*/
function openCard(options: OpenCardOptions): void;
// 开放接口-----设置
interface AuthSetting {
scope:
| "scope.userInfo"
| "scope.userLocation"
| "scope.address"
| "scope.invoiceTitle"
| "scope.werun"
| "scope.record"
| "scope.writePhotosAlbum";
success?(res: ErrMsgResponse): void;
fail?(): void;
complete?(): void;
}
interface OpenSettingOptions extends BaseOptions {
success?(res: { authSetting: AuthSetting }): void;
success?(res: { authSetting: { [key in Scope]: string} }): void;
}
/**
*