<commit_before>export default offensive;
export as namespace offensive;

declare var offensive: Offensive;

declare interface Offensive {
  <T>(value: T, varName: string): Offensive.Context<T>;
  defensive: <T>(value: T, varName: string) => Offensive.Context<T>;
}

declare namespace Offensive {

interface Context<T> extends Assertions<T>, UnaryOperators<T>, Noop<Context<T>> {}
interface OperatorContext<T> extends BinaryOperators<T>, MetaInfo<T> {}
interface BinaryOperators<T> extends AndOperator<Context<T>>, OrOperator<Context<T>> {}
interface UnaryOperators<T> extends EitherOperator<Context<T>>, NotOperator<Context<T>> {}

type Condition<T> = ConditionFunction<T> | ConditionObject<T>;

/**
 * Contains assertion methods, each of whichs return OperatorContext.
 * Parameterized assertions are implemented as methods,
 * assertions without parameters as property getters.
 */
interface Assertions<T> {
  Null: OperatorContext<T>;
  'null': OperatorContext<T>;
  Nil: OperatorContext<T>;
  nil: OperatorContext<T>;
  ofType: (requiredType: string) => OperatorContext<T>;
  'type': (requiredType: string) => OperatorContext<T>;
  Empty: OperatorContext<T>;
  aString: OperatorContext<T>;
  'String': OperatorContext<T>;
  'string': OperatorContext<T>;
  aNumber: OperatorContext<T>;
  'Number': OperatorContext<T>;
  'number': OperatorContext<T>;
  aBoolean: OperatorContext<T>;
  'Boolean': OperatorContext<T>;
  'boolean': OperatorContext<T>;
  aFunction: OperatorContext<T>;
  'Function': OperatorContext<T>;
  'function': OperatorContext<T>;
  anObject: OperatorContext<T>;
  'Object': OperatorContext<T>;
  'object': OperatorContext<T>;
  Undefined: OperatorContext<T>;
  'undefined': OperatorContext<T>;
  anArray: OperatorContext<T>;
  'Array': OperatorContext<T>;
  array: OperatorContext<T>;
  anInstanceOf: <U>(requiredClass: Newable<U>) => OperatorContext<T>;
  instanceOf: <U>(requiredClass: Newable<U>) => OperatorContext<T>;
  aDate: OperatorContext<T>;
  Date: OperatorContext<T>;
  date: OperatorContext<T>;
  True: OperatorContext<T>;
  'true': OperatorContext<T>;
  False: OperatorContext<T>;
  'false': OperatorContext<T>;
  truthy: OperatorContext<T>;
  Truthy: OperatorContext<T>;
  truethy: OperatorContext<T>;
  Truethy: OperatorContext<T>;
  falsy: OperatorContext<T>;
  Falsy: OperatorContext<T>;
  falsey: OperatorContext<T>;
  Falsey: OperatorContext<T>;
  matches: (regexp : string | RegExp) => OperatorContext<T>;
  matchesRegexp: (regexp : string | RegExp) => OperatorContext<T>;
  matchesRegExp: (regexp : string | RegExp) => OperatorContext<T>;
  match: (regexp : string | RegExp) => OperatorContext<T>;
  equalTo: (another: any) => OperatorContext<T>;
  EqualTo: (another: any) => OperatorContext<T>;
  equal: (another: any) => OperatorContext<T>;
  Equal: (another: any) => OperatorContext<T>;
  equals: (another: any) => OperatorContext<T>;
  Equals: (another: any) => OperatorContext<T>;
  exactly: (instance: any) => OperatorContext<T>;
  Exactly: (instance: any) => OperatorContext<T>;
  greaterThan: (leftBounds: number) => OperatorContext<T>;
  greater: (leftBounds: number) => OperatorContext<T>;
  gt: (leftBounds: number) => OperatorContext<T>;
  lessThan: (rightBounds: number) => OperatorContext<T>;
  less: (rightBounds: number) => OperatorContext<T>;
  lt: (rightBounds: number) => OperatorContext<T>;
  inRange: (leftBounds: number, rightBounds: number) => OperatorContext<T>;
  between: (leftBounds: number, rightBounds: number) => OperatorContext<T>;
  property: (propertyName: string, propertyValue: any) => OperatorContext<T>;
  field: (propertyName: string, propertyValue: any) => OperatorContext<T>;
  method: (methodName: string) => OperatorContext<T>;
  propertyOfType: (propertyName: string, requiredType: string) => OperatorContext<T>;
  propertyLessThan: (propertyName: string, rightBounds: number) => OperatorContext<T>;<commit_msg>+ added .anEmail to .d.ts<commit_after>export default offensive;
export as namespace offensive;

declare var offensive: Offensive;

declare interface Offensive {
  <T>(value: T, varName: string): Offensive.Context<T>;
  defensive: <T>(value: T, varName: string) => Offensive.Context<T>;
}

declare namespace Offensive {

interface Context<T> extends Assertions<T>, UnaryOperators<T>, Noop<Context<T>> {}
interface OperatorContext<T> extends BinaryOperators<T>, MetaInfo<T> {}
interface BinaryOperators<T> extends AndOperator<Context<T>>, OrOperator<Context<T>> {}
interface UnaryOperators<T> extends EitherOperator<Context<T>>, NotOperator<Context<T>> {}

type Condition<T> = ConditionFunction<T> | ConditionObject<T>;

/**
 * Contains assertion methods, each of whichs return OperatorContext.
 * Parameterized assertions are implemented as methods,
 * assertions without parameters as property getters.
 */
interface Assertions<T> {
  Null: OperatorContext<T>;
  'null': OperatorContext<T>;
  Nil: OperatorContext<T>;
  nil: OperatorContext<T>;
  ofType: (requiredType: string) => OperatorContext<T>;
  'type': (requiredType: string) => OperatorContext<T>;
  Empty: OperatorContext<T>;
  aString: OperatorContext<T>;
  'String': OperatorContext<T>;
  'string': OperatorContext<T>;
  aNumber: OperatorContext<T>;
  'Number': OperatorContext<T>;
  'number': OperatorContext<T>;
  aBoolean: OperatorContext<T>;
  'Boolean': OperatorContext<T>;
  'boolean': OperatorContext<T>;
  aFunction: OperatorContext<T>;
  'Function': OperatorContext<T>;
  'function': OperatorContext<T>;
  anObject: OperatorContext<T>;
  'Object': OperatorContext<T>;
  'object': OperatorContext<T>;
  Undefined: OperatorContext<T>;
  'undefined': OperatorContext<T>;
  anArray: OperatorContext<T>;
  'Array': OperatorContext<T>;
  array: OperatorContext<T>;
  anInstanceOf: <U>(requiredClass: Newable<U>) => OperatorContext<T>;
  instanceOf: <U>(requiredClass: Newable<U>) => OperatorContext<T>;
  aDate: OperatorContext<T>;
  Date: OperatorContext<T>;
  date: OperatorContext<T>;
  True: OperatorContext<T>;
  'true': OperatorContext<T>;
  False: OperatorContext<T>;
  'false': OperatorContext<T>;
  truthy: OperatorContext<T>;
  Truthy: OperatorContext<T>;
  truethy: OperatorContext<T>;
  Truethy: OperatorContext<T>;
  falsy: OperatorContext<T>;
  Falsy: OperatorContext<T>;
  falsey: OperatorContext<T>;
  Falsey: OperatorContext<T>;
  matches: (regexp : string | RegExp) => OperatorContext<T>;
  matchesRegexp: (regexp : string | RegExp) => OperatorContext<T>;
  matchesRegExp: (regexp : string | RegExp) => OperatorContext<T>;
  match: (regexp : string | RegExp) => OperatorContext<T>;
  anEmail: () => OperatorContext<T>;
  Email: () => OperatorContext<T>;
  email: () => OperatorContext<T>;
  equalTo: (another: any) => OperatorContext<T>;
  EqualTo: (another: any) => OperatorContext<T>;
  equal: (another: any) => OperatorContext<T>;
  Equal: (another: any) => OperatorContext<T>;
  equals: (another: any) => OperatorContext<T>;
  Equals: (another: any) => OperatorContext<T>;
  exactly: (instance: any) => OperatorContext<T>;
  Exactly: (instance: any) => OperatorContext<T>;
  greaterThan: (leftBounds: number) => OperatorContext<T>;
  greater: (leftBounds: number) => OperatorContext<T>;
  gt: (leftBounds: number) => OperatorContext<T>;
  lessThan: (rightBounds: number) => OperatorContext<T>;
  less: (rightBounds: number) => OperatorContext<T>;
  lt: (rightBounds: number) => OperatorContext<T>;
  inRange: (leftBounds: number, rightBounds: number) => OperatorContext<T>;
  between: (leftBounds: number, rightBounds: number) => OperatorContext<T>;
  property: (propertyName: string, propertyValue: any) => OperatorContext<T>;
  field: (propertyName: string, propertyValue: any) => OperatorContext<T>;
  method: (methodName: string) => OperatorContext<T>;
  propertyOfType: (propertyName: string, requiredType: string) => OperatorContext<T>;
  propertyLessThan: (propertyName: string, rightBounds: number) => OperatorContext<T>;
{'fraction_non_alphanumeric': 0.15161086544535693, 'fraction_numerical': 0.0, 'mean_word_length': 6.76078431372549, 'pattern_counts': {'":': 0, '<': 204, '<?xml version=': 0, '>': 267, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1135874', 'n_tokens_mistral': 2583, 'n_tokens_neox': 2407, 'n_words': 583}