# core/predicates/jwt.predicate.ts

> 14 lines of code and 1 definition.

Tree: Secrets
Language: typescript
Layer: infrastructure
Canonical: https://banes-lab.com/anatomy/secrets#file-secrets-core-predicates-jwt-predicate-ts
Source text: https://banes-lab.com/source/secrets/core/predicates/jwt.predicate.ts.txt

Listed in [core/predicates](https://banes-lab.com/api/source/secrets/core/predicates.md), after [core/predicates/environment.predicate.ts](https://banes-lab.com/source/secrets/core/predicates/environment.predicate.ts.md) and before [core/predicates/key.predicate.ts](https://banes-lab.com/source/secrets/core/predicates/key.predicate.ts.md).

## Definitions

- `segments` (lexical_declaration, line 7)

## Contained in

- [core/predicates](https://banes-lab.com/anatomy/secrets/folder-secrets-core-predicates.md)

## Source

```typescript
import { JWT_MIN_SEGMENT, JWT_OPENING, JWT_SEGMENTS, JWT_SEPARATOR } from "#configuration/constants/detector.constants";
import { defineDetector } from "#core/registries/detector.registry";
import { isBase64Url } from "#core/predicates/character.predicate";

defineDetector({
    detects: (value) => {
        const segments = value.split(JWT_SEPARATOR);
        return (
            value.startsWith(JWT_OPENING) &&
            segments.length === JWT_SEGMENTS &&
            segments.every((segment) => segment.length >= JWT_MIN_SEGMENT && isBase64Url(segment))
        );
    },
    kind: "jwt",
});
```
