diff --git a/.github/workflows/contract-tests.yml b/.github/workflows/contract-tests.yml new file mode 100644 index 0000000..998f7bb --- /dev/null +++ b/.github/workflows/contract-tests.yml @@ -0,0 +1,41 @@ +name: Contract Tests + +on: + pull_request: + branches: + - main + - release/* + +jobs: + contract-tests: + name: Contract Tests + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20.x' + cache: 'npm' + + - name: Install dependencies + run: npm ci + + # Builds the project, extracts every exported type/interface/class/method + # signature from the compiled .d.ts files, and compares against the + # committed snapshot in temp/skyflow-node.api.md. + # Fails if anything in the public API surface has changed — renamed class, + # renamed method, changed parameter type, removed export, etc. + - name: Verify API surface snapshot + run: npm run contract-snapshot-verify + + - name: Upload API surface report on failure + if: failure() + uses: actions/upload-artifact@v4 + with: + name: api-surface-report + path: api-report/skyflow-node.api.md + retention-days: 7 diff --git a/api-extractor.json b/api-extractor.json new file mode 100644 index 0000000..3e39ffd --- /dev/null +++ b/api-extractor.json @@ -0,0 +1,39 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "projectFolder": ".", + "mainEntryPointFilePath": "/lib/index.d.ts", + "bundledPackages": [], + "compiler": { + "tsconfigFilePath": "/tsconfig.json" + }, + "apiReport": { + "enabled": true, + "reportFolder": "/api-report/", + "reportTempFolder": "/api-report/", + "reportFileName": ".api.md" + }, + "docModel": { + "enabled": false + }, + "dtsRollup": { + "enabled": false + }, + "tsdocMetadata": { + "enabled": false + }, + "messages": { + "compilerMessageReporting": { + "default": { + "logLevel": "warning" + } + }, + "extractorMessageReporting": { + "default": { + "logLevel": "warning" + }, + "ae-missing-release-tag": { + "logLevel": "none" + } + } + } +} diff --git a/api-report/skyflow-node.api.md b/api-report/skyflow-node.api.md new file mode 100644 index 0000000..af4a81a --- /dev/null +++ b/api-report/skyflow-node.api.md @@ -0,0 +1,1121 @@ +## API Report File for "skyflow-node" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +import { Blob as Blob_2 } from 'buffer'; +import * as fs from 'fs'; + +// @public (undocumented) +export interface ApiKeyCredentials { + // (undocumented) + apiKey: string; +} + +// @public (undocumented) +export type BearerTokenOptions = { + ctx?: string | Record; + roleIDs?: string[]; + logLevel?: LogLevel; + tokenUri?: string; +}; + +// @public (undocumented) +export class Bleep { + // (undocumented) + getFrequency(): number | undefined; + // (undocumented) + getGain(): number | undefined; + // (undocumented) + getStartPadding(): number | undefined; + // (undocumented) + getStopPadding(): number | undefined; + // (undocumented) + setFrequency(frequency: number): void; + // (undocumented) + setGain(gain: number): void; + // (undocumented) + setStartPadding(start_padding: number): void; + // (undocumented) + setStopPadding(stop_padding: number): void; +} + +// @public (undocumented) +export interface ConnectionConfig { + // (undocumented) + connectionId: string; + // (undocumented) + connectionUrl: string; + // (undocumented) + credentials?: Credentials; +} + +// @public (undocumented) +export type Credentials = TokenCredentials | PathCredentials | StringCredentials | ApiKeyCredentials; + +// @public (undocumented) +export class DeidentifyFileOptions { + constructor(); + // (undocumented) + getAllowRegexList(): string[] | undefined; + // (undocumented) + getBleep(): Bleep | undefined; + // (undocumented) + getEntities(): string[] | undefined; + // (undocumented) + getMaskingMethod(): MaskingMethod | undefined; + // (undocumented) + getMaxResolution(): number | undefined; + // (undocumented) + getOutputDirectory(): string | undefined; + // (undocumented) + getOutputOcrText(): boolean | undefined; + // (undocumented) + getOutputProcessedAudio(): boolean | undefined; + // (undocumented) + getOutputProcessedImage(): boolean | undefined; + // (undocumented) + getOutputTranscription(): DetectOutputTranscription | undefined; + // (undocumented) + getPixelDensity(): number | undefined; + // (undocumented) + getRestrictRegexList(): string[] | undefined; + // (undocumented) + getTokenFormat(): TokenFormat | undefined; + // (undocumented) + getTransformations(): Transformations | undefined; + // (undocumented) + getWaitTime(): number | undefined; + // (undocumented) + setAllowRegexList(allowRegexList: string[]): void; + // (undocumented) + setBleep(bleep: Bleep | undefined): void; + // (undocumented) + setEntities(entities: DetectEntities[]): void; + // (undocumented) + setMaskingMethod(maskingMethod: MaskingMethod | undefined): void; + // (undocumented) + setMaxResolution(maxResolution: number | undefined): void; + // (undocumented) + setOutputDirectory(outputDirectory: string | undefined): void; + // (undocumented) + setOutputOcrText(outputOcrText: boolean | undefined): void; + // (undocumented) + setOutputProcessedAudio(outputProcessedAudio: boolean | undefined): void; + // (undocumented) + setOutputProcessedImage(value: boolean | undefined): void; + // (undocumented) + setOutputTranscription(outputTranscription: DetectOutputTranscription | undefined): void; + // (undocumented) + setPixelDensity(pixelDensity: number | undefined): void; + // (undocumented) + setRestrictRegexList(restrictRegexList: string[]): void; + // (undocumented) + setTokenFormat(tokenFormat: TokenFormat): void; + // (undocumented) + setTransformations(transformations: Transformations): void; + // (undocumented) + setWaitTime(waitTime: number | undefined): void; +} + +// @public (undocumented) +export class DeidentifyFileRequest { + constructor(file: FileInput); + // (undocumented) + getFile(): FileInput; + // (undocumented) + setFile(file: FileInput): void; +} + +// @public (undocumented) +export class DeidentifyFileResponse { + constructor(input: { + fileBase64?: string; + file?: File; + type?: string; + extension?: string; + wordCount?: number; + charCount?: number; + sizeInKb?: number; + durationInSeconds?: number; + pageCount?: number; + slideCount?: number; + entities?: Array<{ + file: string; + extension: string; + }>; + runId?: string; + status?: string; + }); + // (undocumented) + charCount?: number; + // (undocumented) + durationInSeconds?: number; + // (undocumented) + entities?: Array<{ + file: string; + extension: string; + }>; + // (undocumented) + extension?: string; + // (undocumented) + file?: File; + // (undocumented) + fileBase64?: string; + // (undocumented) + pageCount?: number; + // (undocumented) + runId?: string; + // (undocumented) + sizeInKb?: number; + // (undocumented) + slideCount?: number; + // (undocumented) + status?: string; + // (undocumented) + type?: string; + // (undocumented) + wordCount?: number; +} + +// @public (undocumented) +export class DeidentifyTextOptions { + // (undocumented) + getAllowRegexList(): string[] | undefined; + // (undocumented) + getEntities(): DetectEntities[] | undefined; + // (undocumented) + getRestrictRegexList(): string[] | undefined; + // (undocumented) + getTokenFormat(): TokenFormat | undefined; + // (undocumented) + getTransformations(): Transformations | undefined; + // (undocumented) + setAllowRegexList(allowRegexList: string[]): void; + // (undocumented) + setEntities(entities: DetectEntities[]): void; + // (undocumented) + setRestrictRegexList(restrictRegexList: string[]): void; + // (undocumented) + setTokenFormat(tokenFormat: TokenFormat): void; + // (undocumented) + setTransformations(transformations: Transformations): void; +} + +// @public (undocumented) +export class DeidentifyTextRequest { + constructor(text: string); + // (undocumented) + get text(): string; + set text(value: string); +} + +// @public (undocumented) +export class DeidentifyTextResponse { + constructor(input: { + processedText: string; + entities: Array<{ + token?: string; + value?: string; + textIndex?: IndexRange; + processedIndex?: IndexRange; + entity?: string; + scores?: Record; + }>; + wordCount: number; + charCount: number; + }); + // (undocumented) + charCount: number; + // (undocumented) + entities: Array<{ + token?: string; + value?: string; + textIndex?: IndexRange; + processedIndex?: IndexRange; + entity?: string; + scores?: Record; + }>; + // (undocumented) + processedText: string; + // (undocumented) + wordCount: number; +} + +// @public (undocumented) +export class DeleteRequest { + constructor(table: string, deleteIds: Array); + // (undocumented) + get ids(): Array; + set ids(value: Array); + // (undocumented) + get table(): string; + set table(value: string); +} + +// @public (undocumented) +export class DeleteResponse { + constructor(input: { + deletedIds: Array; + errors: Array | null; + }); + // (undocumented) + deletedIds?: Array; + // (undocumented) + errors: Array | null; +} + +// @public (undocumented) +export enum DetectEntities { + // (undocumented) + ACCOUNT_NUMBER = "account_number", + // (undocumented) + AGE = "age", + // (undocumented) + ALL = "all", + // (undocumented) + BANK_ACCOUNT = "bank_account", + // (undocumented) + BLOOD_TYPE = "blood_type", + // (undocumented) + CONDITION = "condition", + // (undocumented) + CORPORATE_ACTION = "corporate_action", + // (undocumented) + CREDIT_CARD = "credit_card", + // (undocumented) + CREDIT_CARD_EXPIRATION = "credit_card_expiration", + // (undocumented) + CVV = "cvv", + // (undocumented) + DATE = "date", + // (undocumented) + DATE_INTERVAL = "date_interval", + // (undocumented) + DAY = "day", + // (undocumented) + DOB = "dob", + // (undocumented) + DOSE = "dose", + // (undocumented) + DRIVER_LICENSE = "driver_license", + // (undocumented) + DRUG = "drug", + // (undocumented) + DURATION = "duration", + // (undocumented) + EFFECT = "effect", + // (undocumented) + EMAIL_ADDRESS = "email_address", + // (undocumented) + EVENT = "event", + // (undocumented) + FILENAME = "filename", + // (undocumented) + FINANCIAL_METRIC = "financial_metric", + // (undocumented) + GENDER = "gender", + // (undocumented) + HEALTHCARE_NUMBER = "healthcare_number", + // (undocumented) + INJURY = "injury", + // (undocumented) + IP_ADDRESS = "ip_address", + // (undocumented) + LANGUAGE = "language", + // (undocumented) + LOCATION = "location", + // (undocumented) + LOCATION_ADDRESS = "location_address", + // (undocumented) + LOCATION_ADDRESS_STREET = "location_address_street", + // (undocumented) + LOCATION_CITY = "location_city", + // (undocumented) + LOCATION_COORDINATE = "location_coordinate", + // (undocumented) + LOCATION_COUNTRY = "location_country", + // (undocumented) + LOCATION_STATE = "location_state", + // (undocumented) + LOCATION_ZIP = "location_zip", + // (undocumented) + MARITAL_STATUS = "marital_status", + // (undocumented) + MEDICAL_CODE = "medical_code", + // (undocumented) + MEDICAL_PROCESS = "medical_process", + // (undocumented) + MONEY = "money", + // (undocumented) + MONTH = "month", + // (undocumented) + NAME = "name", + // (undocumented) + NAME_FAMILY = "name_family", + // (undocumented) + NAME_GIVEN = "name_given", + // (undocumented) + NAME_MEDICAL_PROFESSIONAL = "name_medical_professional", + // (undocumented) + NUMERICAL_PII = "numerical_pii", + // (undocumented) + OCCUPATION = "occupation", + // (undocumented) + ORGANIZATION = "organization", + // (undocumented) + ORGANIZATION_ID = "organization_id", + // (undocumented) + ORGANIZATION_MEDICAL_FACILITY = "organization_medical_facility", + // (undocumented) + ORIGIN = "origin", + // (undocumented) + PASSPORT_NUMBER = "passport_number", + // (undocumented) + PASSWORD = "password", + // (undocumented) + PHONE_NUMBER = "phone_number", + // (undocumented) + PHYSICAL_ATTRIBUTE = "physical_attribute", + // (undocumented) + POLITICAL_AFFILIATION = "political_affiliation", + // (undocumented) + PRODUCT = "product", + // (undocumented) + PROJECT = "project", + // (undocumented) + RELIGION = "religion", + // (undocumented) + ROUTING_NUMBER = "routing_number", + // (undocumented) + SEXUALITY = "sexuality", + // (undocumented) + SSN = "ssn", + // (undocumented) + STATISTICS = "statistics", + // (undocumented) + TIME = "time", + // (undocumented) + TREND = "trend", + // (undocumented) + URL = "url", + // (undocumented) + USERNAME = "username", + // (undocumented) + VEHICLE_ID = "vehicle_id", + // (undocumented) + ZODIAC_SIGN = "zodiac_sign" +} + +// @public (undocumented) +export enum DetectOutputTranscription { + // (undocumented) + DIARIZED_TRANSCRIPTION = "diarized_transcription", + // (undocumented) + MEDICAL_DIARIZED_TRANSCRIPTION = "medical_diarized_transcription", + // (undocumented) + MEDICAL_TRANSCRIPTION = "medical_transcription", + // (undocumented) + PLAINTEXT_TRANSCRIPTION = "plaintext_transcription", + // (undocumented) + TRANSCRIPTION = "transcription" +} + +// @public (undocumented) +export interface DetokenizeData { + // (undocumented) + redactionType?: RedactionType; + // (undocumented) + token: string; +} + +// @public (undocumented) +export class DetokenizeOptions { + constructor(); + // (undocumented) + getContinueOnError(): boolean | undefined; + // (undocumented) + getDownloadURL(): boolean | undefined; + // (undocumented) + setContinueOnError(continueOnError: boolean): void; + // (undocumented) + setDownloadURL(downloadURL: boolean): void; +} + +// @public (undocumented) +export class DetokenizeRequest { + constructor(data: DetokenizeData[]); + // (undocumented) + get data(): DetokenizeData[]; + set data(value: DetokenizeData[]); +} + +// @public (undocumented) +export class DetokenizeResponse { + constructor(input: { + detokenizedFields: Array | null; + errors: Array | null; + }); + // Warning: (ae-forgotten-export) The symbol "SuccessDetokenizeResponse" needs to be exported by the entry point index.d.ts + // + // (undocumented) + detokenizedFields: Array | null; + // (undocumented) + errors: Array | null; +} + +// @public (undocumented) +export enum Env { + // (undocumented) + DEV = "DEV", + // (undocumented) + PROD = "PROD", + // (undocumented) + SANDBOX = "SANDBOX", + // (undocumented) + STAGE = "STAGE" +} + +// Warning: (ae-forgotten-export) The symbol "Filepath" needs to be exported by the entry point index.d.ts +// Warning: (ae-forgotten-export) The symbol "FileObject" needs to be exported by the entry point index.d.ts +// +// @public (undocumented) +export type FileInput = Filepath | FileObject; + +// @public (undocumented) +export class FileUploadOptions { + constructor(); + // (undocumented) + getBase64(): string | undefined; + // (undocumented) + getFileName(): string | undefined; + // (undocumented) + getFileObject(): File | undefined; + // (undocumented) + getFilePath(): string | undefined; + // (undocumented) + setBase64(base64: string): void; + // (undocumented) + setFileName(fileName: string): void; + // (undocumented) + setFileObject(fileObject: File): void; + // (undocumented) + setFilePath(filePath: string): void; +} + +// @public (undocumented) +export class FileUploadRequest { + constructor(table: string, skyflowId: string, columnName: string); + // (undocumented) + get columnName(): string; + set columnName(value: string); + // (undocumented) + get skyflowId(): string; + set skyflowId(value: string); + // (undocumented) + get table(): string; + set table(value: string); +} + +// @public (undocumented) +export class FileUploadResponse { + constructor(input: { + skyflowId: string; + errors: Array | null; + }); + // (undocumented) + errors: Array | null; + // (undocumented) + skyflowId: string; +} + +// Warning: (ae-forgotten-export) The symbol "TokenResponse" needs to be exported by the entry point index.d.ts +// +// @public (undocumented) +export function generateBearerToken(credentialsFilePath: string, options?: BearerTokenOptions): Promise; + +// @public (undocumented) +export function generateBearerTokenFromCreds(credentials: any, options?: BearerTokenOptions): Promise; + +// Warning: (ae-forgotten-export) The symbol "SignedDataTokensResponse" needs to be exported by the entry point index.d.ts +// +// @public (undocumented) +export function generateSignedDataTokens(credentialsFilePath: string, options: SignedDataTokensOptions): Promise; + +// @public (undocumented) +export function generateSignedDataTokensFromCreds(credentials: any, options: SignedDataTokensOptions): Promise; + +// @public (undocumented) +export type GenerateTokenOptions = { + logLevel?: LogLevel; +}; + +// @public (undocumented) +export class GetColumnRequest { + constructor(table: string, _columnName: string, _columnValues: Array); + // (undocumented) + get columnName(): string; + set columnName(value: string); + // (undocumented) + get columnValues(): Array; + set columnValues(value: Array); + // (undocumented) + get table(): string; + set table(value: string); +} + +// @public (undocumented) +export class GetDetectRunRequest { + constructor(runId: string); + // (undocumented) + get runId(): string; + set runId(value: string); +} + +// @public (undocumented) +export class GetOptions { + constructor(); + // (undocumented) + getColumnName(): string | undefined; + // (undocumented) + getColumnValues(): Array | undefined; + // (undocumented) + getDownloadURL(): boolean | undefined; + // (undocumented) + getFields(): Array | undefined; + // (undocumented) + getLimit(): string | undefined; + // (undocumented) + getOffset(): string | undefined; + // (undocumented) + getOrderBy(): OrderByEnum | undefined; + // (undocumented) + getRedactionType(): RedactionType | undefined; + // (undocumented) + getReturnTokens(): boolean | undefined; + // (undocumented) + setColumnName(columnName: string): void; + // (undocumented) + setColumnValues(columnValues: Array): void; + // (undocumented) + setDownloadURL(downloadURL: boolean): void; + // (undocumented) + setFields(fields: Array): void; + // (undocumented) + setLimit(limit: string): void; + // (undocumented) + setOffset(offset: string): void; + // (undocumented) + setOrderBy(orderBy: OrderByEnum): void; + // (undocumented) + setRedactionType(redactionType: RedactionType): void; + // (undocumented) + setReturnTokens(returnTokens: boolean): void; +} + +// @public (undocumented) +export class GetRequest { + constructor(table: string, _ids: Array); + // (undocumented) + get ids(): Array; + set ids(value: Array); + // (undocumented) + get table(): string; + set table(value: string); +} + +// @public (undocumented) +export class GetResponse { + constructor(input: { + data: Array; + errors: Array | null; + }); + // (undocumented) + data: Array; + // (undocumented) + errors: Array | null; +} + +// @public (undocumented) +export interface GetResponseData { + // (undocumented) + [key: string]: unknown; +} + +// @public (undocumented) +export interface IndexRange { + // (undocumented) + end?: number; + // (undocumented) + start?: number; +} + +// @public (undocumented) +export class InsertOptions { + constructor(); + // (undocumented) + getContinueOnError(): boolean | undefined; + // (undocumented) + getHomogeneous(): boolean | undefined; + // (undocumented) + getReturnTokens(): boolean | undefined; + // (undocumented) + getTokenMode(): TokenMode | undefined; + // (undocumented) + getTokens(): Array> | undefined; + // (undocumented) + getUpsertColumn(): string | undefined; + // (undocumented) + setContinueOnError(continueOnError: boolean): void; + // (undocumented) + setHomogeneous(homogeneous: boolean): void; + // (undocumented) + setReturnTokens(returnTokens: boolean): void; + // (undocumented) + setTokenMode(tokenMode: TokenMode): void; + // (undocumented) + setTokens(tokens: Array>): void; + // (undocumented) + setUpsertColumn(upsert: string): void; +} + +// @public (undocumented) +export class InsertRequest { + constructor(table: string, data: Record[]); + // (undocumented) + get data(): Record[]; + set data(data: Record[]); + // (undocumented) + get table(): string; + set table(value: string); +} + +// @public (undocumented) +export class InsertResponse { + constructor(input: { + insertedFields: Array | null; + errors: Array | null; + }); + // (undocumented) + errors: Array | null; + // (undocumented) + insertedFields: Array | null; +} + +// @public (undocumented) +export interface InsertResponseType { + // (undocumented) + [key: string]: unknown; + // (undocumented) + skyflow_id: string; +} + +// @public (undocumented) +export class InvokeConnectionRequest { + constructor(method: RequestMethod, body?: StringKeyValueMapType, headers?: StringKeyValueMapType, pathParams?: StringKeyValueMapType, queryParams?: StringKeyValueMapType); + // (undocumented) + body?: StringKeyValueMapType; + // (undocumented) + headers?: StringKeyValueMapType; + // (undocumented) + method: RequestMethod; + // (undocumented) + pathParams?: StringKeyValueMapType; + // (undocumented) + queryParams?: StringKeyValueMapType; +} + +// @public (undocumented) +export class InvokeConnectionResponse { + constructor(input: { + data?: object; + metadata?: Record; + errors: Array | null; + }); + // (undocumented) + data?: Object; + // (undocumented) + errors: Array | null; + // (undocumented) + metadata?: Record; +} + +// @public (undocumented) +export function isExpired(token: string): boolean; + +// @public (undocumented) +export enum LogLevel { + // (undocumented) + DEBUG = "DEBUG", + // (undocumented) + ERROR = "ERROR", + // (undocumented) + INFO = "INFO", + // (undocumented) + OFF = "OFF", + // (undocumented) + WARN = "WARN" +} + +// @public (undocumented) +export enum MaskingMethod { + // (undocumented) + Blackbox = "blackbox", + // (undocumented) + Blur = "blur" +} + +// @public (undocumented) +export enum OrderByEnum { + // (undocumented) + ASCENDING = "ASCENDING", + // (undocumented) + DESCENDING = "DESCENDING", + // (undocumented) + NONE = "NONE" +} + +// @public (undocumented) +export interface PathCredentials { + // (undocumented) + context?: string | Record; + // (undocumented) + path: string; + // (undocumented) + roles?: Array; + // (undocumented) + tokenUri?: string; +} + +// @public (undocumented) +export class QueryRequest { + constructor(query: string); + // (undocumented) + get query(): string; + set query(value: string); +} + +// @public (undocumented) +export class QueryResponse { + constructor(input: { + fields: Array; + errors: Array | null; + }); + // (undocumented) + errors: Array | null; + // (undocumented) + fields: Array; +} + +// @public (undocumented) +export interface QueryResponseType { + // (undocumented) + [key: string]: unknown; +} + +// @public (undocumented) +export enum RedactionType { + // (undocumented) + DEFAULT = "DEFAULT", + // (undocumented) + MASKED = "MASKED", + // (undocumented) + PLAIN_TEXT = "PLAIN_TEXT", + // (undocumented) + REDACTED = "REDACTED" +} + +// @public (undocumented) +export class ReidentifyTextOptions { + // (undocumented) + getMaskedEntities(): DetectEntities[] | undefined; + // (undocumented) + getPlainTextEntities(): DetectEntities[] | undefined; + // (undocumented) + getRedactedEntities(): DetectEntities[] | undefined; + // (undocumented) + setMaskedEntities(maskedEntities: DetectEntities[]): void; + // (undocumented) + setPlainTextEntities(plainTextEntities: DetectEntities[]): void; + // (undocumented) + setRedactedEntities(redactedEntities: DetectEntities[]): void; +} + +// @public (undocumented) +export class ReidentifyTextRequest { + constructor(text: string); + // (undocumented) + get text(): string; + set text(value: string); +} + +// @public (undocumented) +export class ReidentifyTextResponse { + constructor(input: { + processedText: string; + }); + // (undocumented) + processedText: string; +} + +// @public (undocumented) +export enum RequestMethod { + // (undocumented) + GET = "GET", + // (undocumented) + PATCH = "PATCH", + // (undocumented) + POST = "POST", + // (undocumented) + PUT = "PUT" +} + +// @public (undocumented) +export type SignedDataTokensOptions = { + dataTokens: string[]; + timeToLive?: number; + ctx?: string | Record; + logLevel?: LogLevel; + tokenUri?: string; +}; + +// @public (undocumented) +export class Skyflow { + constructor(config: SkyflowConfig); + // (undocumented) + addConnectionConfig(config: ConnectionConfig): void; + // (undocumented) + addVaultConfig(config: VaultConfig): void; + // Warning: (ae-forgotten-export) The symbol "ConnectionController" needs to be exported by the entry point index.d.ts + // + // (undocumented) + connection(connectionId?: string): ConnectionController; + // Warning: (ae-forgotten-export) The symbol "DetectController" needs to be exported by the entry point index.d.ts + // + // (undocumented) + detect(vaultId?: string): DetectController; + // (undocumented) + getConnectionConfig(connectionId: string): ConnectionConfig | VaultConfig; + // (undocumented) + getLogLevel(): LogLevel; + // (undocumented) + getSkyflowCredentials(): Credentials | undefined; + // (undocumented) + getVaultConfig(vaultId: string): ConnectionConfig | VaultConfig; + // (undocumented) + removeConnectionConfig(connectionId: string): void; + // (undocumented) + removeVaultConfig(vaultId: string): void; + // (undocumented) + setLogLevel(logLevel: LogLevel): void; + // (undocumented) + updateConnectionConfig(config: ConnectionConfig): void; + // (undocumented) + updateSkyflowCredentials(credentials: Credentials): void; + // (undocumented) + updateVaultConfig(config: VaultConfig): void; + // Warning: (ae-forgotten-export) The symbol "VaultController" needs to be exported by the entry point index.d.ts + // + // (undocumented) + vault(vaultId?: string): VaultController; +} + +// @public (undocumented) +export interface SkyflowConfig { + // (undocumented) + connectionConfigs?: ConnectionConfig[]; + // (undocumented) + logLevel?: LogLevel; + // (undocumented) + skyflowCredentials?: Credentials; + // (undocumented) + vaultConfigs?: VaultConfig[]; +} + +// @public (undocumented) +export class SkyflowError extends Error { + constructor(errorCode: ISkyflowError, args?: Array); + // Warning: (ae-forgotten-export) The symbol "ISkyflowError" needs to be exported by the entry point index.d.ts + // + // (undocumented) + error?: ISkyflowError; +} + +// @public (undocumented) +export interface SkyflowRecordError { + // (undocumented) + error: string; + // (undocumented) + httpCode?: string | number | null; + // (undocumented) + requestId: string | null; + // (undocumented) + requestIndex?: number | null; + // (undocumented) + token?: string | null; +} + +// @public (undocumented) +export interface StringCredentials { + // (undocumented) + context?: string | Record; + // (undocumented) + credentialsString: string; + // (undocumented) + roles?: Array; + // (undocumented) + tokenUri?: string; +} + +// @public (undocumented) +export interface StringKeyValueMapType { + // (undocumented) + [key: string]: object | string; +} + +// @public (undocumented) +export interface TokenCredentials { + // (undocumented) + token: string; +} + +// @public (undocumented) +export class TokenFormat { + // (undocumented) + getDefault(): string | undefined; + // (undocumented) + getEntityOnly(): string[] | undefined; + // (undocumented) + getEntityUniqueCounter(): string[] | undefined; + // (undocumented) + getVaultToken(): string[] | undefined; + // (undocumented) + setDefault(defaultToken: TokenType): void; + // (undocumented) + setEntityOnly(entityOnly: DetectEntities[]): void; + // (undocumented) + setEntityUniqueCounter(entityUniqueCounter: DetectEntities[]): void; + // (undocumented) + setVaultToken(vaultToken: DetectEntities[]): void; +} + +// @public (undocumented) +export class TokenizeRequest { + constructor(values: Array); + // (undocumented) + get values(): Array; + set values(value: Array); +} + +// @public (undocumented) +export interface TokenizeRequestType { + // (undocumented) + columnGroup: string; + // (undocumented) + value: string; +} + +// @public (undocumented) +export class TokenizeResponse { + constructor(input: { + tokens: Array; + errors: Array | null; + }); + // (undocumented) + errors: Array | null; + // (undocumented) + tokens: Array; +} + +// @public (undocumented) +export enum TokenMode { + // (undocumented) + DISABLE = "DISABLE", + // (undocumented) + ENABLE = "ENABLE", + // (undocumented) + ENABLE_STRICT = "ENABLE_STRICT" +} + +// @public (undocumented) +export enum TokenType { + // (undocumented) + ENTITY_ONLY = "entity_only", + // (undocumented) + ENTITY_UNIQUE_COUNTER = "entity_unq_counter", + // (undocumented) + VAULT_TOKEN = "vault_token" +} + +// @public (undocumented) +export class Transformations { + // (undocumented) + getShiftDays(): { + max: number; + min: number; + entities: DetectEntities[]; + } | undefined; + // (undocumented) + setShiftDays(shiftDays: { + max: number; + min: number; + entities: DetectEntities[]; + }): void; +} + +// @public (undocumented) +export class UpdateOptions { + constructor(); + // (undocumented) + getReturnTokens(): boolean | undefined; + // (undocumented) + getTokenMode(): TokenMode | undefined; + // (undocumented) + getTokens(): Record | undefined; + // (undocumented) + setReturnTokens(returnTokens: boolean): void; + // (undocumented) + setTokenMode(tokenMode: TokenMode): void; + // (undocumented) + setTokens(tokens: Record): void; +} + +// @public (undocumented) +export class UpdateRequest { + constructor(table: string, data: Record); + // (undocumented) + get data(): Record; + set data(value: Record); + // (undocumented) + get table(): string; + set table(value: string); +} + +// @public (undocumented) +export class UpdateResponse { + constructor(input: { + updatedField: InsertResponseType; + errors: Array | null; + }); + // (undocumented) + errors: Array | null; + // (undocumented) + updatedField: InsertResponseType; +} + +// @public (undocumented) +export interface VaultConfig { + // (undocumented) + clusterId: string; + // (undocumented) + credentials?: Credentials; + // (undocumented) + env?: Env; + // (undocumented) + vaultId: string; +} + +// (No @packageDocumentation comment for this package) + +``` diff --git a/package-lock.json b/package-lock.json index 104f270..d9dbc85 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "skyflow-node", - "version": "2.0.2", + "version": "2.0.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "skyflow-node", - "version": "2.0.2", + "version": "2.0.4", "license": "MIT", "dependencies": { "@babel/runtime": "^7.27.1", @@ -28,6 +28,7 @@ "@babel/plugin-transform-runtime": "^7.25.7", "@babel/preset-env": "^7.25.8", "@babel/preset-typescript": "^7.25.7", + "@microsoft/api-extractor": "^7.58.5", "@types/jest": "^29.5.14", "@types/jsonwebtoken": "^9.0.6", "@types/node": "^18.19.70", @@ -2864,6 +2865,260 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@microsoft/api-extractor": { + "version": "7.58.7", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.58.7.tgz", + "integrity": "sha512-yK6OycD46gIzLRpj6ueVUWPk1ACSpkN1LBo05gY1qPTylbWyUCanXfH7+VgkI5LJrJoRSQR5F04XuCffCXLOBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@microsoft/api-extractor-model": "7.33.8", + "@microsoft/tsdoc": "~0.16.0", + "@microsoft/tsdoc-config": "~0.18.1", + "@rushstack/node-core-library": "5.23.1", + "@rushstack/rig-package": "0.7.3", + "@rushstack/terminal": "0.24.0", + "@rushstack/ts-command-line": "5.3.9", + "diff": "~8.0.2", + "minimatch": "10.2.3", + "resolve": "~1.22.1", + "semver": "~7.7.4", + "source-map": "~0.6.1", + "typescript": "5.9.3" + }, + "bin": { + "api-extractor": "bin/api-extractor" + } + }, + "node_modules/@microsoft/api-extractor-model": { + "version": "7.33.8", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.33.8.tgz", + "integrity": "sha512-aIcoQggPyer3B6Ze3usz0YWC/oBwUHfRH5ETUsr+oT2BRA6SfTJl7IKPcPZkX4UR+PohowzW4uMxsvjrn8vm+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@microsoft/tsdoc": "~0.16.0", + "@microsoft/tsdoc-config": "~0.18.1", + "@rushstack/node-core-library": "5.23.1" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/brace-expansion": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/minimatch": { + "version": "10.2.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.3.tgz", + "integrity": "sha512-Rwi3pnapEqirPSbWbrZaa6N3nmqq4Xer/2XooiOKyV3q12ML06f7MOuc5DVH8ONZIFhwIYQ3yzPH4nt7iWHaTg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/@microsoft/tsdoc": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.16.0.tgz", + "integrity": "sha512-xgAyonlVVS+q7Vc7qLW0UrJU7rSFcETRWsqdXZtjzRU8dF+6CkozTK4V4y1LwOX7j8r/vHphjDeMeGI4tNGeGA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@microsoft/tsdoc-config": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.18.1.tgz", + "integrity": "sha512-9brPoVdfN9k9g0dcWkFeA7IH9bbcttzDJlXvkf8b2OBzd5MueR1V2wkKBL0abn0otvmkHJC6aapBOTJDDeMCZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@microsoft/tsdoc": "0.16.0", + "ajv": "~8.18.0", + "jju": "~1.4.0", + "resolve": "~1.22.2" + } + }, + "node_modules/@rushstack/node-core-library": { + "version": "5.23.1", + "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.23.1.tgz", + "integrity": "sha512-wlKmIKIYCKuCASbITvOxLZXepPbwXvrv7S6ig6XNWFchSyhL/E2txmVXspHY49Wu2dzf7nI27a2k/yV5BA3EiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "~8.18.0", + "ajv-draft-04": "~1.0.0", + "ajv-formats": "~3.0.1", + "fs-extra": "~11.3.0", + "import-lazy": "~4.0.0", + "jju": "~1.4.0", + "resolve": "~1.22.1", + "semver": "~7.7.4" + }, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@rushstack/node-core-library/node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/@rushstack/node-core-library/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@rushstack/problem-matcher": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@rushstack/problem-matcher/-/problem-matcher-0.2.1.tgz", + "integrity": "sha512-gulfhBs6n+I5b7DvjKRfhMGyUejtSgOHTclF/eONr8hcgF1APEDjhxIsfdUYYMzC3rvLwGluqLjbwCFZ8nxrog==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@rushstack/rig-package": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.7.3.tgz", + "integrity": "sha512-aAA518n6wxxjCfnTAOjQnm7ngNE0FVHxHAw2pxKlIhxrMn0XQjGcXKF0oKWpjBgJOmsaJpVob/v+zr3zxgPWuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jju": "~1.4.0", + "resolve": "~1.22.1" + } + }, + "node_modules/@rushstack/terminal": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.24.0.tgz", + "integrity": "sha512-8ZQS4MMaGsv27EXCBiH7WMPkRZrffeDoIevs6z9TM5dzqiY6+Hn4evfK/G+gvgBTjfvfkHIZPQQmalmI2sM4TQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rushstack/node-core-library": "5.23.1", + "@rushstack/problem-matcher": "0.2.1", + "supports-color": "~8.1.1" + }, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@rushstack/terminal/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/@rushstack/ts-command-line": { + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-5.3.9.tgz", + "integrity": "sha512-GIHqU+sRGQ3LGWAZu1O+9Yh++qwtyNIIGuNbcWHJjBTm2qRez0cwINUHZ+pQLR8UuzZDcMajrDaNbUYoaL/XtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rushstack/terminal": "0.24.0", + "@types/argparse": "1.0.38", + "argparse": "~1.0.9", + "string-argv": "~0.3.1" + } + }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -2901,6 +3156,13 @@ "node": ">= 10" } }, + "node_modules/@types/argparse": { + "version": "1.0.38", + "resolved": "https://registry.npmjs.org/@types/argparse/-/argparse-1.0.38.tgz", + "integrity": "sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", @@ -3383,9 +3645,9 @@ } }, "node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", "dev": true, "license": "MIT", "dependencies": { @@ -3399,6 +3661,21 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ajv-draft-04": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", + "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^8.5.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, "node_modules/ajv-formats": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", @@ -4493,6 +4770,16 @@ "node": ">=8" } }, + "node_modules/diff": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.4.tgz", + "integrity": "sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/diff-sequences": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", @@ -5029,6 +5316,31 @@ "node": ">= 18" } }, + "node_modules/fs-extra": { + "version": "11.3.4", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.4.tgz", + "integrity": "sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs-extra/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -5405,6 +5717,16 @@ "node": ">=4" } }, + "node_modules/import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/import-local": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", @@ -6282,6 +6604,13 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/jju": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", + "dev": true, + "license": "MIT" + }, "node_modules/js-base64": { "version": "3.7.7", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.7.tgz", @@ -6395,6 +6724,29 @@ "node": ">=6" } }, + "node_modules/jsonfile": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonfile/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/jsonwebtoken": { "version": "9.0.3", "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.3.tgz", @@ -7594,6 +7946,16 @@ ], "license": "MIT" }, + "node_modules/string-argv": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.19" + } + }, "node_modules/string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", diff --git a/package.json b/package.json index 8385cf8..4f383ef 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,8 @@ "module": "./lib/index.js", "scripts": { "test": "jest --coverage", + "contract-snapshot": "npm run build && npx api-extractor run --local", + "contract-snapshot-verify": "npm run build && npx api-extractor run", "build": "tsc", "eslint": "eslint '**/*.js' --max-warnings 0", "prettier": "prettier --list-different '**/*.{js,ts}'", @@ -47,6 +49,7 @@ "url-join": "4.0.1" }, "devDependencies": { + "@microsoft/api-extractor": "^7.58.5", "@babel/plugin-proposal-decorators": "^7.25.7", "@babel/plugin-transform-object-assign": "^7.25.7", "@babel/plugin-transform-runtime": "^7.25.7",