Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@hocuspocus/extension-database

Package Overview
Dependencies
Maintainers
4
Versions
87
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@hocuspocus/extension-database - npm Package Compare versions

Comparing version 2.1.0-alpha.0 to 2.1.0

dist/packages/server/src/DirectConnection.d.ts

0

dist/hocuspocus-database.esm.js

@@ -0,0 +0,0 @@ import * as Y from 'yjs';

4

dist/packages/common/src/auth.d.ts

@@ -5,3 +5,3 @@ import * as encoding from 'lib0/encoding';

export declare const writePermissionDenied: (encoder: encoding.Encoder, reason: string) => void;
export declare const writeAuthenticated: (encoder: encoding.Encoder) => void;
export declare const readAuthMessage: (decoder: decoding.Decoder, permissionDeniedHandler: (reason: string) => void, authenticatedHandler: () => void) => void;
export declare const writeAuthenticated: (encoder: encoding.Encoder, scope: 'readonly' | 'read-write') => void;
export declare const readAuthMessage: (decoder: decoding.Decoder, permissionDeniedHandler: (reason: string) => void, authenticatedHandler: (scope: string) => void) => void;
export declare const awarenessStatesToArray: (states: Map<number, Record<string, any>>) => {
clientId: number;
}[];

@@ -0,0 +0,0 @@ export interface CloseEvent {

@@ -1,4 +0,4 @@

export * from './auth';
export * from './CloseEvents';
export * from './awarenessStatesToArray';
export * from './types';
export * from './auth.js';
export * from './CloseEvents.js';
export * from './awarenessStatesToArray.js';
export * from './types.js';

@@ -0,0 +0,0 @@ import { Extension, onChangePayload, onLoadDocumentPayload, storePayload, fetchPayload } from '@hocuspocus/server';

@@ -1,1 +0,1 @@

export * from './Database';
export * from './Database.js';

@@ -1,1 +0,1 @@

export * from './Logger';
export * from './Logger.js';

@@ -0,0 +0,0 @@ import { Extension, onChangePayload, onConfigurePayload, onConnectPayload, onLoadDocumentPayload, onDestroyPayload, onDisconnectPayload, onRequestPayload, onUpgradePayload } from '@hocuspocus/server';

@@ -1,1 +0,1 @@

export * from './Redis';
export * from './Redis.js';

@@ -1,4 +0,5 @@

import RedisClient, { ClusterNode, ClusterOptions, RedisOptions, Cluster as RedisClusterClient } from 'ioredis';
import { Extension, afterLoadDocumentPayload, onDisconnectPayload, onAwarenessUpdatePayload, onChangePayload, Debugger, onConfigurePayload, beforeBroadcastStatelessPayload, Hocuspocus } from '@hocuspocus/server';
export type RedisInstance = RedisClient | RedisClusterClient;
import RedisClient, { ClusterNode, ClusterOptions, RedisOptions } from 'ioredis';
import Redlock from 'redlock';
import { Extension, afterLoadDocumentPayload, afterStoreDocumentPayload, onDisconnectPayload, onStoreDocumentPayload, onAwarenessUpdatePayload, onChangePayload, Debugger, onConfigurePayload, beforeBroadcastStatelessPayload, Hocuspocus } from '@hocuspocus/server';
export type RedisInstance = RedisClient.Cluster | RedisClient.Redis;
export interface Configuration {

@@ -41,2 +42,6 @@ /**

/**
* The maximum time for the Redis lock in ms (in case it can’t be released).
*/
lockTimeout: number;
/**
* A delay before onDisconnect is executed. This allows last minute updates'

@@ -58,2 +63,4 @@ * sync messages to be received by the subscription before it's closed.

instance: Hocuspocus;
redlock: Redlock;
locks: Map<string, Redlock.Lock>;
logger: Debugger;

@@ -65,2 +72,3 @@ constructor(configuration: Partial<Configuration>);

private subKey;
private lockKey;
/**

@@ -79,2 +87,11 @@ * Once a document is laoded, subscribe to the channel in Redis.

/**
* Before the document is stored, make sure to set a lock in Redis.
* That’s meant to avoid conflicts with other instances trying to store the document.
*/
onStoreDocument({ documentName }: onStoreDocumentPayload): Promise<unknown>;
/**
* Release the Redis lock, so other instances can store documents.
*/
afterStoreDocument({ documentName }: afterStoreDocumentPayload): Promise<void>;
/**
* Handle awareness update messages received directly by this Hocuspocus instance.

@@ -99,2 +116,6 @@ */

beforeBroadcastStateless(data: beforeBroadcastStatelessPayload): Promise<number>;
/**
* Kill the Redlock connection immediately.
*/
onDestroy(): Promise<void>;
}

@@ -1,1 +0,1 @@

export * from './SQLite';
export * from './SQLite.js';

@@ -0,0 +0,0 @@ import { Database, DatabaseConfiguration } from '@hocuspocus/extension-database';

@@ -0,0 +0,0 @@ /// <reference types="node" />

@@ -0,0 +0,0 @@ /// <reference types="node" />

@@ -0,0 +0,0 @@ export default class EventEmitter {

@@ -5,6 +5,5 @@ import * as Y from 'yjs';

import type { CloseEvent, Event, MessageEvent } from 'ws';
import EventEmitter from './EventEmitter';
import { ConstructableOutgoingMessage, onAuthenticationFailedParameters, onCloseParameters, onDisconnectParameters, onMessageParameters, onOpenParameters, onOutgoingMessageParameters, onStatelessParameters, onStatusParameters, onSyncedParameters, WebSocketStatus } from './types';
import { CompleteHocuspocusProviderWebsocketConfiguration, HocuspocusProviderWebsocket } from './HocuspocusProviderWebsocket';
import { onAwarenessChangeParameters, onAwarenessUpdateParameters } from '.';
import EventEmitter from './EventEmitter.js';
import { ConstructableOutgoingMessage, onAuthenticationFailedParameters, onCloseParameters, onDisconnectParameters, onMessageParameters, onOpenParameters, onOutgoingMessageParameters, onStatelessParameters, onStatusParameters, onSyncedParameters, WebSocketStatus, onAwarenessChangeParameters, onAwarenessUpdateParameters } from './types.js';
import { CompleteHocuspocusProviderWebsocketConfiguration, HocuspocusProviderWebsocket } from './HocuspocusProviderWebsocket.js';
export type HocuspocusProviderConfiguration = Required<Pick<CompleteHocuspocusProviderConfiguration, 'name'>> & Partial<CompleteHocuspocusProviderConfiguration> & (Required<Pick<CompleteHocuspocusProviderWebsocketConfiguration, 'url'>> | Required<Pick<CompleteHocuspocusProviderConfiguration, 'websocketProvider'>>);

@@ -72,2 +71,3 @@ export interface CompleteHocuspocusProviderConfiguration {

isAuthenticated: boolean;
authorizedScope: string | undefined;
mux: mutex.mutex;

@@ -104,3 +104,3 @@ intervals: any;

permissionDeniedHandler(reason: string): void;
authenticatedHandler(): void;
authenticatedHandler(scope: string): void;
get broadcastChannel(): string;

@@ -107,0 +107,0 @@ boundBroadcastChannelSubscriber: (data: ArrayBuffer) => void;

import * as mutex from 'lib0/mutex';
import type { MessageEvent } from 'ws';
import { Event } from 'ws';
import EventEmitter from './EventEmitter';
import { onCloseParameters, onDisconnectParameters, onMessageParameters, onOpenParameters, onOutgoingMessageParameters, onStatusParameters, WebSocketStatus } from './types';
import { HocuspocusProvider, onAwarenessChangeParameters, onAwarenessUpdateParameters } from '.';
import EventEmitter from './EventEmitter.js';
import { onCloseParameters, onDisconnectParameters, onMessageParameters, onOpenParameters, onOutgoingMessageParameters, onStatusParameters, WebSocketStatus, onAwarenessChangeParameters, onAwarenessUpdateParameters } from './types.js';
import { HocuspocusProvider } from './HocuspocusProvider.js';
export type HocuspocusProviderWebsocketConfiguration = Required<Pick<CompleteHocuspocusProviderWebsocketConfiguration, 'url'>> & Partial<CompleteHocuspocusProviderWebsocketConfiguration>;

@@ -8,0 +8,0 @@ export interface CompleteHocuspocusProviderWebsocketConfiguration {

import { Decoder } from 'lib0/decoding';
import { Encoder } from 'lib0/encoding';
import { MessageType } from './types';
import { MessageType } from './types.js';
export declare class IncomingMessage {

@@ -5,0 +5,0 @@ data: any;

@@ -1,5 +0,5 @@

export * from './HocuspocusProvider';
export * from './TiptapCollabProvider';
export * from './TiptapCollabProviderWebsocket';
export * from './HocuspocusProviderWebsocket';
export * from './types';
export * from './HocuspocusProvider.js';
export * from './TiptapCollabProvider.js';
export * from './TiptapCollabProviderWebsocket.js';
export * from './HocuspocusProviderWebsocket.js';
export * from './types.js';

@@ -1,3 +0,3 @@

import { HocuspocusProvider } from './HocuspocusProvider';
import { IncomingMessage } from './IncomingMessage';
import { HocuspocusProvider } from './HocuspocusProvider.js';
import { IncomingMessage } from './IncomingMessage.js';
export declare class MessageReceiver {

@@ -4,0 +4,0 @@ message: IncomingMessage;

import { Encoder } from 'lib0/encoding';
import { ConstructableOutgoingMessage } from './types';
import { ConstructableOutgoingMessage } from './types.js';
export declare class MessageSender {

@@ -4,0 +4,0 @@ encoder: Encoder;

import { Encoder } from 'lib0/encoding';
import { MessageType, OutgoingMessageArguments, OutgoingMessageInterface } from './types';
import { MessageType, OutgoingMessageArguments, OutgoingMessageInterface } from './types.js';
export declare class OutgoingMessage implements OutgoingMessageInterface {

@@ -4,0 +4,0 @@ encoder: Encoder;

@@ -1,3 +0,3 @@

import { MessageType, OutgoingMessageArguments } from '../types';
import { OutgoingMessage } from '../OutgoingMessage';
import { MessageType, OutgoingMessageArguments } from '../types.js';
import { OutgoingMessage } from '../OutgoingMessage.js';
export declare class AuthenticationMessage extends OutgoingMessage {

@@ -4,0 +4,0 @@ type: MessageType;

import * as encoding from 'lib0/encoding';
import { MessageType, OutgoingMessageArguments } from '../types';
import { OutgoingMessage } from '../OutgoingMessage';
import { MessageType, OutgoingMessageArguments } from '../types.js';
import { OutgoingMessage } from '../OutgoingMessage.js';
export declare class AwarenessMessage extends OutgoingMessage {

@@ -5,0 +5,0 @@ type: MessageType;

import * as encoding from 'lib0/encoding';
import { MessageType, OutgoingMessageArguments } from '../types';
import { OutgoingMessage } from '../OutgoingMessage';
import { MessageType, OutgoingMessageArguments } from '../types.js';
import { OutgoingMessage } from '../OutgoingMessage.js';
export declare class CloseMessage extends OutgoingMessage {

@@ -5,0 +5,0 @@ type: MessageType;

import * as encoding from 'lib0/encoding';
import { MessageType, OutgoingMessageArguments } from '../types';
import { OutgoingMessage } from '../OutgoingMessage';
import { MessageType, OutgoingMessageArguments } from '../types.js';
import { OutgoingMessage } from '../OutgoingMessage.js';
export declare class QueryAwarenessMessage extends OutgoingMessage {

@@ -5,0 +5,0 @@ type: MessageType;

@@ -1,3 +0,3 @@

import { MessageType, OutgoingMessageArguments } from '../types';
import { OutgoingMessage } from '../OutgoingMessage';
import { MessageType, OutgoingMessageArguments } from '../types.js';
import { OutgoingMessage } from '../OutgoingMessage.js';
export declare class StatelessMessage extends OutgoingMessage {

@@ -4,0 +4,0 @@ type: MessageType;

import * as encoding from 'lib0/encoding';
import { MessageType, OutgoingMessageArguments } from '../types';
import { OutgoingMessage } from '../OutgoingMessage';
import { MessageType, OutgoingMessageArguments } from '../types.js';
import { OutgoingMessage } from '../OutgoingMessage.js';
export declare class SyncStepOneMessage extends OutgoingMessage {

@@ -5,0 +5,0 @@ type: MessageType;

import * as encoding from 'lib0/encoding';
import { MessageType, OutgoingMessageArguments } from '../types';
import { OutgoingMessage } from '../OutgoingMessage';
import { MessageType, OutgoingMessageArguments } from '../types.js';
import { OutgoingMessage } from '../OutgoingMessage.js';
export declare class SyncStepTwoMessage extends OutgoingMessage {

@@ -5,0 +5,0 @@ type: MessageType;

@@ -1,3 +0,3 @@

import { MessageType, OutgoingMessageArguments } from '../types';
import { OutgoingMessage } from '../OutgoingMessage';
import { MessageType, OutgoingMessageArguments } from '../types.js';
import { OutgoingMessage } from '../OutgoingMessage.js';
export declare class UpdateMessage extends OutgoingMessage {

@@ -4,0 +4,0 @@ type: MessageType;

@@ -1,2 +0,2 @@

import { HocuspocusProvider, HocuspocusProviderConfiguration } from './HocuspocusProvider';
import { HocuspocusProvider, HocuspocusProviderConfiguration } from './HocuspocusProvider.js';
export type TiptapCollabProviderConfiguration = Required<Pick<HocuspocusProviderConfiguration, 'name'>> & Partial<HocuspocusProviderConfiguration> & AdditionalTiptapCollabProviderConfiguration;

@@ -3,0 +3,0 @@ export interface AdditionalTiptapCollabProviderConfiguration {

@@ -1,2 +0,2 @@

import { CompleteHocuspocusProviderWebsocketConfiguration, HocuspocusProviderWebsocket } from './HocuspocusProviderWebsocket';
import { CompleteHocuspocusProviderWebsocketConfiguration, HocuspocusProviderWebsocket } from './HocuspocusProviderWebsocket.js';
export type TiptapCollabProviderWebsocketConfiguration = Partial<CompleteHocuspocusProviderWebsocketConfiguration> & AdditionalTiptapCollabProviderWebsocketConfiguration;

@@ -3,0 +3,0 @@ export interface AdditionalTiptapCollabProviderWebsocketConfiguration {

@@ -5,10 +5,10 @@ import { Awareness } from 'y-protocols/awareness';

import type { Event, CloseEvent, MessageEvent } from 'ws';
import { AuthenticationMessage } from './OutgoingMessages/AuthenticationMessage';
import { AwarenessMessage } from './OutgoingMessages/AwarenessMessage';
import { QueryAwarenessMessage } from './OutgoingMessages/QueryAwarenessMessage';
import { SyncStepOneMessage } from './OutgoingMessages/SyncStepOneMessage';
import { SyncStepTwoMessage } from './OutgoingMessages/SyncStepTwoMessage';
import { UpdateMessage } from './OutgoingMessages/UpdateMessage';
import { IncomingMessage } from './IncomingMessage';
import { OutgoingMessage } from './OutgoingMessage';
import { AuthenticationMessage } from './OutgoingMessages/AuthenticationMessage.js';
import { AwarenessMessage } from './OutgoingMessages/AwarenessMessage.js';
import { QueryAwarenessMessage } from './OutgoingMessages/QueryAwarenessMessage.js';
import { SyncStepOneMessage } from './OutgoingMessages/SyncStepOneMessage.js';
import { SyncStepTwoMessage } from './OutgoingMessages/SyncStepTwoMessage.js';
import { UpdateMessage } from './OutgoingMessages/UpdateMessage.js';
import { IncomingMessage } from './IncomingMessage.js';
import { OutgoingMessage } from './OutgoingMessage.js';
export declare enum MessageType {

@@ -15,0 +15,0 @@ Sync = 0,

@@ -7,5 +7,5 @@ /// <reference types="node" />

import { CloseEvent } from '@hocuspocus/common';
import Document from './Document';
import { Debugger } from './Debugger';
import { onStatelessPayload } from './types';
import Document from './Document.js';
import { Debugger } from './Debugger.js';
import { onStatelessPayload } from './types.js';
export declare class Connection {

@@ -12,0 +12,0 @@ webSocket: WebSocket;

@@ -0,0 +0,0 @@ export declare class Debugger {

@@ -5,4 +5,4 @@ import WebSocket from 'ws';

import { mutex } from 'lib0/mutex.js';
import Connection from './Connection';
import { Debugger } from './Debugger';
import Connection from './Connection.js';
import { Debugger } from './Debugger.js';
export declare class Document extends Doc {

@@ -18,2 +18,3 @@ awareness: Awareness;

}>;
directConnectionsCount: number;
name: string;

@@ -56,2 +57,4 @@ mux: mutex;

removeConnection(connection: Connection): Document;
addDirectConnection(): Document;
removeDirectConnection(): Document;
/**

@@ -58,0 +61,0 @@ * Get the number of active connections for this document

@@ -5,5 +5,6 @@ /// <reference types="node" />

import WebSocket, { AddressInfo, WebSocketServer } from 'ws';
import { Configuration, HookName, HookPayload, onListenPayload } from './types';
import Document from './Document';
import { Debugger } from './Debugger';
import { Configuration, HookName, HookPayload, onListenPayload, onStoreDocumentPayload } from './types.js';
import Document from './Document.js';
import { Debugger } from './Debugger.js';
import { DirectConnection } from './DirectConnection.js';
export declare const defaultConfiguration: {

@@ -93,2 +94,3 @@ name: null;

private createConnection;
storeDocumentHooks(document: Document, hookPayload: onStoreDocumentPayload): void;
/**

@@ -109,3 +111,4 @@ * Run the given hook on all configured extensions.

getMessageLogs(): any[];
openDirectConnection(documentName: string, context?: any): Promise<DirectConnection>;
}
export declare const Server: Hocuspocus;
import { Decoder } from 'lib0/decoding';
import { Encoder } from 'lib0/encoding';
import { MessageType } from './types';
import { MessageType } from './types.js';
export declare class IncomingMessage {

@@ -5,0 +5,0 @@ /**

@@ -1,8 +0,8 @@

export * from './Connection';
export * from './Debugger';
export * from './Document';
export * from './Hocuspocus';
export * from './IncomingMessage';
export * from './MessageReceiver';
export * from './OutgoingMessage';
export * from './types';
export * from './Connection.js';
export * from './Debugger.js';
export * from './Document.js';
export * from './Hocuspocus.js';
export * from './IncomingMessage.js';
export * from './MessageReceiver.js';
export * from './OutgoingMessage.js';
export * from './types.js';

@@ -1,5 +0,5 @@

import Connection from './Connection';
import { IncomingMessage } from './IncomingMessage';
import { Debugger } from './Debugger';
import Document from './Document';
import Connection from './Connection.js';
import { IncomingMessage } from './IncomingMessage.js';
import { Debugger } from './Debugger.js';
import Document from './Document.js';
export declare class MessageReceiver {

@@ -10,4 +10,4 @@ message: IncomingMessage;

apply(document: Document, connection?: Connection, reply?: (message: Uint8Array) => void): void;
readSyncMessage(message: IncomingMessage, document: Document, connection?: Connection, reply?: (message: Uint8Array) => void, requestFirstSync?: boolean): 0 | 2 | 1;
readSyncMessage(message: IncomingMessage, document: Document, connection?: Connection, reply?: (message: Uint8Array) => void, requestFirstSync?: boolean): 0 | 1 | 2;
applyQueryAwarenessMessage(document: Document, reply?: (message: Uint8Array) => void): void;
}
import { Encoder } from 'lib0/encoding';
import { Awareness } from 'y-protocols/awareness';
import Document from './Document';
import Document from './Document.js';
export declare class OutgoingMessage {

@@ -13,3 +13,3 @@ encoder: Encoder;

writeQueryAwareness(): OutgoingMessage;
writeAuthenticated(): OutgoingMessage;
writeAuthenticated(readonly: boolean): OutgoingMessage;
writePermissionDenied(reason: string): OutgoingMessage;

@@ -16,0 +16,0 @@ writeFirstSyncStepFor(document: Document): OutgoingMessage;

@@ -7,5 +7,5 @@ /// <reference types="node" />

import { Awareness } from 'y-protocols/awareness';
import Document from './Document';
import { Hocuspocus } from './Hocuspocus';
import Connection from './Connection';
import Document from './Document.js';
import { Hocuspocus } from './Hocuspocus.js';
import Connection from './Connection.js';
export declare enum MessageType {

@@ -131,2 +131,3 @@ Unknown = -1,

export interface connectedPayload {
context: any;
documentName: string;

@@ -139,2 +140,3 @@ instance: Hocuspocus;

connection: ConnectionConfiguration;
connectionInstance: Connection;
}

@@ -141,0 +143,0 @@ export interface onLoadDocumentPayload {

@@ -1,3 +0,3 @@

export * from './Prosemirror';
export * from './Tiptap';
export * from './types';
export * from './Prosemirror.js';
export * from './Tiptap.js';
export * from './types.js';
import { Doc } from 'yjs';
import { Schema } from '@tiptap/pm/model';
import { Transformer } from './types';
import { Transformer } from './types.js';
declare class Prosemirror implements Transformer {

@@ -5,0 +5,0 @@ defaultSchema: Schema;

import { Doc } from 'yjs';
import { Extensions } from '@tiptap/core';
import { Transformer } from './types';
import { Transformer } from './types.js';
export declare class Tiptap implements Transformer {

@@ -5,0 +5,0 @@ defaultExtensions: Extensions;

@@ -0,0 +0,0 @@ import { Doc } from 'yjs';

declare const _default: import("vite").UserConfigExport;
export default _default;
export declare const createDirectory: (dir: string) => void;
export declare const flushRedis: () => Promise<string>;

@@ -1,9 +0,9 @@

export * from './createDirectory';
export * from './flushRedis';
export * from './newHocuspocus';
export * from './newHocuspocusProvider';
export * from './newHocuspocusProviderWebsocket';
export * from './randomInteger';
export * from './redisConnectionSettings';
export * from './removeDirectory';
export * from './sleep';
export * from './createDirectory.js';
export * from './flushRedis.js';
export * from './newHocuspocus.js';
export * from './newHocuspocusProvider.js';
export * from './newHocuspocusProviderWebsocket.js';
export * from './randomInteger.js';
export * from './redisConnectionSettings.js';
export * from './removeDirectory.js';
export * from './sleep.js';
import { Hocuspocus, Configuration } from '@hocuspocus/server';
export declare const newHocuspocus: (options?: Partial<Configuration>) => Promise<Hocuspocus>;
import { HocuspocusProvider, HocuspocusProviderConfiguration, HocuspocusProviderWebsocketConfiguration } from '@hocuspocus/provider';
import { Hocuspocus } from '@hocuspocus/server';
export declare const newHocuspocusProvider: (server: Hocuspocus, options?: Partial<HocuspocusProviderConfiguration>, websocketOptions?: Partial<HocuspocusProviderWebsocketConfiguration>) => HocuspocusProvider;
import { HocuspocusProviderWebsocket, HocuspocusProviderWebsocketConfiguration } from '@hocuspocus/provider';
import { Hocuspocus } from '@hocuspocus/server';
export declare const newHocuspocusProviderWebsocket: (server: Hocuspocus, options?: Partial<Omit<HocuspocusProviderWebsocketConfiguration, 'url'>>) => HocuspocusProviderWebsocket;
export declare const randomInteger: (min: number, max: number) => number;

@@ -0,0 +0,0 @@ export declare const redisConnectionSettings: {

export declare const removeDirectory: (dir: string) => void;
import { ExecutionContext } from 'ava';
export declare const retryableAssertion: (t: ExecutionContext, recoverableTry: (tt: ExecutionContext) => void) => Promise<void>;
export declare const sleep: (time: number) => Promise<unknown>;
{
"name": "@hocuspocus/extension-database",
"description": "a generic Hocuspocus persistence driver for the database",
"version": "2.1.0-alpha.0",
"version": "2.1.0",
"homepage": "https://hocuspocus.dev",

@@ -21,3 +21,4 @@ "keywords": [

"import": "./dist/hocuspocus-database.esm.js",
"require": "./dist/hocuspocus-database.cjs"
"require": "./dist/hocuspocus-database.cjs",
"types": "./dist/packages/extension-database/src/index.d.ts"
}

@@ -30,3 +31,3 @@ },

"dependencies": {
"@hocuspocus/server": "^2.1.0-alpha.0"
"@hocuspocus/server": "^2.1.0"
},

@@ -33,0 +34,0 @@ "peerDependencies": {

@@ -1,1 +0,1 @@

export * from './Database'
export * from './Database.js'

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc