diff --git a/.eslintrc b/.eslintrc index f8a9c318..44a8d5ac 100644 --- a/.eslintrc +++ b/.eslintrc @@ -28,6 +28,17 @@ "no-constant-condition": 0, "no-useless-escape": 0, "no-console": "error", + "no-restricted-globals": [ + "error", + { + "name": "global", + "message": "Use `globalThis` instead" + }, + { + "name": "window", + "message": "Use `globalThis` instead" + } + ], "require-yield": 0, "eqeqeq": ["error", "smart"], "spaced-comment": [ @@ -81,7 +92,8 @@ ], "pathGroupsExcludedImportTypes": [ "type" - ] + ], + "newlines-between": "never" } ], "@typescript-eslint/no-namespace": 0, @@ -103,7 +115,7 @@ "@typescript-eslint/consistent-type-imports": ["error"], "@typescript-eslint/consistent-type-exports": ["error"], "no-throw-literal": "off", - "@typescript-eslint/no-throw-literal": ["error"], + "@typescript-eslint/no-throw-literal": "off", "@typescript-eslint/no-floating-promises": ["error", { "ignoreVoid": true, "ignoreIIFE": true diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f6bd4c38..d450e979 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -169,7 +169,7 @@ build:windows: - .\scripts\choco-install.ps1 - refreshenv - npm install --ignore-scripts - - $env:Path = "$(npm bin);" + $env:Path + - $env:Path = "$(npm root)\.bin;" + $env:Path - npm test -- --ci --coverage - npm run bench artifacts: @@ -192,14 +192,14 @@ build:macos: stage: build needs: [] tags: - - shared-macos-amd64 - image: macos-11-xcode-12 + - saas-macos-medium-m1 + image: macos-12-xcode-14 script: - eval "$(brew shellenv)" - ./scripts/brew-install.sh - hash -r - npm install --ignore-scripts - - export PATH="$(npm bin):$PATH" + - export PATH="$(npm root)/.bin:$PATH" - npm test -- --ci --coverage - npm run bench artifacts: diff --git a/benches/results/crypto_100KiB.chart.html b/benches/results/crypto_100KiB.chart.html index 6d819901..f6a06c6a 100644 --- a/benches/results/crypto_100KiB.chart.html +++ b/benches/results/crypto_100KiB.chart.html @@ -28,7 +28,7 @@
- +
Options
All
  • Public
  • Public/Protected
  • All
Menu

Class EncryptedFS

Hierarchy

  • CreateDestroyStartStop
    • EncryptedFS

Index

Constructors

Properties

[initLock]: RWLockWriter
_cwd: CurrentDirectory
blockSize: number
chrootParent?: EncryptedFS
chroots: Set<EncryptedFS>
db: DB
fdMgr: FileDescriptorManager
gid: number = permissions.DEFAULT_ROOT_GID
iNodeMgr: INodeManager
logger: Logger
rootIno: INodeIndex
uid: number = permissions.DEFAULT_ROOT_UID
umask: number

Accessors

  • get [destroyed](): boolean
  • Returns boolean

  • get [running](): boolean
  • Returns boolean

  • get [status](): Status
  • Returns Status

  • get cwd(): string
  • get promises(): this

Methods

  • _open(path: Path, flags: string | number, mode?: number, tran?: DBTransaction): Promise<[FileDescriptor, FdIndex]>
  • -

    This call must handle concurrent races to create the file inode

    -

    Parameters

    • path: Path
    • flags: string | number
    • mode: number = permissions.DEFAULT_FILE_PERM
    • Optional tran: DBTransaction

    Returns Promise<[FileDescriptor, FdIndex]>

  • access(path: Path, mode?: number): Promise<void>
  • access(path: Path, callback: Callback<[], any, Error>): Promise<void>
  • access(path: Path, mode: number, callback: Callback<[], any, Error>): Promise<void>
  • appendFile(file: Path | FdIndex, data: Data, options?: Options): Promise<void>
  • appendFile(file: Path | FdIndex, data: Data, callback: Callback<[], any, Error>): Promise<void>
  • appendFile(file: Path | FdIndex, data: Data, options: Options, callback: Callback<[], any, Error>): Promise<void>
  • chdir(path: string): Promise<void>
  • chdir(path: string, callback: Callback<[], any, Error>): Promise<void>
  • checkPermissions(access: number, stat: Stat): boolean
  • chmod(path: Path, mode: number, callback?: Callback<[], any, Error>): Promise<void>
  • chown(path: Path, uid: number, gid: number, callback?: Callback<[], any, Error>): Promise<void>
  • chownr(path: Path, uid: number, gid: number, callback?: Callback<[], any, Error>): Promise<void>
  • close(fdIndex: FdIndex, callback?: Callback<[], any, Error>): Promise<void>
  • copyFile(srcPath: Path, dstPath: Path, flags?: number): Promise<void>
  • copyFile(srcPath: Path, dstPath: Path, callback: Callback<[], any, Error>): Promise<void>
  • copyFile(srcPath: Path, dstPath: Path, flags: number, callback: Callback<[], any, Error>): Promise<void>
  • createReadStream(path: Path, options?: OptionsStream): ReadStream
  • createWriteStream(path: Path, options?: OptionsStream): WriteStream
  • destroy(): Promise<void>
  • exists(path: Path, callback?: Callback<[boolean], any, Error>): Promise<boolean | void>
  • fallocate(fdIndex: FdIndex, offset: number, len: number, callback?: Callback<[], any, Error>): Promise<void>
  • fchmod(fdIndex: FdIndex, mode: number, callback?: Callback<[], any, Error>): Promise<void>
  • fchown(fdIndex: FdIndex, uid: number, gid: number, callback?: Callback<[], any, Error>): Promise<void>
  • fdatasync(fdIndex: FdIndex, callback?: Callback<[], any, Error>): Promise<void>
  • fstat(fdIndex: FdIndex): Promise<Stat>
  • fstat(fdIndex: FdIndex, callback: Callback<[Stat], any, Error>): Promise<void>
  • fsync(fdIndex: FdIndex, callback?: Callback<[], any, Error>): Promise<void>
  • ftruncate(fdIndex: FdIndex, len?: number): Promise<void>
  • ftruncate(fdIndex: FdIndex, callback: Callback<[], any, Error>): Promise<void>
  • ftruncate(fdIndex: FdIndex, len: number, callback: Callback<[], any, Error>): Promise<void>
  • futimes(fdIndex: FdIndex, atime: string | number | Date, mtime: string | number | Date, callback?: Callback<[], any, Error>): Promise<void>
  • Parameters

    • fdIndex: FdIndex
    • atime: string | number | Date
    • mtime: string | number | Date
    • Optional callback: Callback<[], any, Error>

    Returns Promise<void>

  • getBuffer(data: Data, encoding?: undefined | BufferEncoding): Buffer
+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      path: Path
    • +
    • +
      mode: number
    • +
    • +
      Optional callback: Callback<[], any, Error>
    +

    Returns Promise<void>

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      path: Path
    • +
    • +
      uid: number
    • +
    • +
      gid: number
    • +
    • +
      Optional callback: Callback<[], any, Error>
    +

    Returns Promise<void>

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      path: Path
    • +
    • +
      uid: number
    • +
    • +
      gid: number
    • +
    • +
      Optional callback: Callback<[], any, Error>
    +

    Returns Promise<void>

+
+ +
+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      fdIndex: FdIndex
    • +
    • +
      Optional callback: Callback<[], any, Error>
    +

    Returns Promise<void>

+
+ +
+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      path: Path
    • +
    • +
      Optional options: OptionsStream
    +

    Returns ReadStream

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      path: Path
    • +
    • +
      Optional options: OptionsStream
    +

    Returns WriteStream

+
+ +
    + +
  • +

    Returns Promise<void>

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      path: Path
    • +
    • +
      Optional callback: Callback<[boolean], any, Error>
    +

    Returns Promise<boolean | void>

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      fdIndex: FdIndex
    • +
    • +
      offset: number
    • +
    • +
      len: number
    • +
    • +
      Optional callback: Callback<[], any, Error>
    +

    Returns Promise<void>

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      fdIndex: FdIndex
    • +
    • +
      mode: number
    • +
    • +
      Optional callback: Callback<[], any, Error>
    +

    Returns Promise<void>

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      fdIndex: FdIndex
    • +
    • +
      uid: number
    • +
    • +
      gid: number
    • +
    • +
      Optional callback: Callback<[], any, Error>
    +

    Returns Promise<void>

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      fdIndex: FdIndex
    • +
    • +
      Optional callback: Callback<[], any, Error>
    +

    Returns Promise<void>

+
+ +
+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      fdIndex: FdIndex
    • +
    • +
      Optional callback: Callback<[], any, Error>
    +

    Returns Promise<void>

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      fdIndex: FdIndex
    • +
    • +
      Optional len: number
    +

    Returns Promise<void>

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      fdIndex: FdIndex
    • +
    • +
      callback: Callback<[], any, Error>
    +

    Returns Promise<void>

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      fdIndex: FdIndex
    • +
    • +
      len: number
    • +
    • +
      callback: Callback<[], any, Error>
    +

    Returns Promise<void>

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      fdIndex: FdIndex
    • +
    • +
      atime: string | number | Date
    • +
    • +
      mtime: string | number | Date
    • +
    • +
      Optional callback: Callback<[], any, Error>
    +

    Returns Promise<void>

+
+ +
    + +
  • +

    Processes data types and collapses it to a Buffer. The data types can be Buffer or Uint8Array or string.

    -

Parameters

Returns Buffer

  • getOptions(defaultOptions: { encoding?: BufferEncoding; flag?: string; mode?: number; recursive?: boolean }, options?: Options | BufferEncoding): Options
  • -

    Takes a default set of options, and merges them shallowly into the user provided options. +

    +
    +

    Parameters

    +
      +
    • +
      data: Data
    • +
    • +
      encoding: undefined | BufferEncoding = undefined
    +

    Returns Buffer

+
+ +
    + +
  • +

    Takes a default set of options, and merges them shallowly into the user provided options. Object spread syntax will ignore an undefined or null options object.

    -

Parameters

Returns Options

+
+ +

Parameters

Returns string

+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +

Generated using TypeDoc

\ No newline at end of file + +
+

Parameters

+
+

Returns Promise<Navigated>

+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ +
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/classes/Stat.html b/docs/classes/Stat.html index d854dad8..1320b9de 100644 --- a/docs/classes/Stat.html +++ b/docs/classes/Stat.html @@ -1,17 +1,260 @@ -Stat | encryptedfs
Options
All
  • Public
  • Public/Protected
  • All
Menu

Class Stat

-

Stat metadata object +Stat | encryptedfs

+
+ +
+
+
+
+ +

Class Stat

+
+

Stat metadata object The blksize is the plain block size The blocks is the count of the plain blocks

-

Hierarchy

  • Stat

Index

Constructors

  • new Stat(params: StatParams): Stat

Properties

atime: Date
birthtime: Date
blksize: number
blocks: number
ctime: Date
dev: number
gid: number
ino: number
mode: number
mtime: Date
nlink: number
rdev: number
size: number
uid: number

Methods

  • isDirectory(): boolean
  • isFIFO(): boolean
  • isFile(): boolean
  • isSocket(): boolean
  • isSymbolicLink(): boolean

Generated using TypeDoc

\ No newline at end of file + +
+

Hierarchy

+
+
+
+
+ +
+
+

Constructors

+
+
+

Properties

+
+
+

Methods

+
+
+

Constructors

+
+ +
+
+

Properties

+
+ +
atime: Date
+
+ +
birthtime: Date
+
+ +
blksize: number
+
+ +
blocks: number
+
+ +
ctime: Date
+
+ +
dev: number
+
+ +
gid: number
+
+ +
ino: number
+
+ +
mode: number
+
+ +
mtime: Date
+
+ +
nlink: number
+
+ +
rdev: number
+
+ +
size: number
+
+ +
uid: number
+
+

Methods

+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ +
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/classes/errors.ErrorEncryptedFS.html b/docs/classes/errors.ErrorEncryptedFS.html index 3dce888c..c4add8c9 100644 --- a/docs/classes/errors.ErrorEncryptedFS.html +++ b/docs/classes/errors.ErrorEncryptedFS.html @@ -1,29 +1,307 @@ -ErrorEncryptedFS | encryptedfs
Options
All
  • Public
  • Public/Protected
  • All
Menu

Class ErrorEncryptedFS<T>

Type parameters

  • T

Hierarchy

Index

Constructors

  • new ErrorEncryptedFS<T>(message?: string, options?: { cause?: T; data?: POJO; timestamp?: Date }): ErrorEncryptedFS<T>
  • Type parameters

    • T

    Parameters

    • Optional message: string
    • Optional options: { cause?: T; data?: POJO; timestamp?: Date }
      • Optional cause?: T
      • Optional data?: POJO
      • Optional timestamp?: Date

    Returns ErrorEncryptedFS<T>

Properties

cause: T
-

Causation of the exception +ErrorEncryptedFS | encryptedfs

+
+ +
+
+
+
+ +

Class ErrorEncryptedFS<T>

+
+

Type Parameters

+
    +
  • +

    T

+
+

Hierarchy

+
+
+
+
+ +
+
+

Constructors

+
+
+

Properties

+
+
+

Accessors

+
+
+

Methods

+
+
+

Constructors

+
+ +
    + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T

    +
    +

    Parameters

    +
      +
    • +
      Optional message: string
    • +
    • +
      Optional options: {
          cause?: T;
          data?: POJO;
          timestamp?: Date;
      }
      +
        +
      • +
        Optional cause?: T
      • +
      • +
        Optional data?: POJO
      • +
      • +
        Optional timestamp?: Date
    +

    Returns ErrorEncryptedFS<T>

+
+

Properties

+
+ +
cause: T
+

Causation of the exception Can be used to know what caused this exception

-
data: POJO
-

Arbitrary data

-
message: string
name: string
stack?: string
timestamp: Date
-

Timestamp when exception was constructed in milliseconds -May contain microseconds in the fractional part +

+
+ +
data: POJO
+

Arbitrary data

+
+
+ +
message: string
+
+ +
name: string
+
+ +
stack?: string
+
+ +
timestamp: Date
+

Timestamp when exception was constructed in milliseconds Guaranteed to be weakly monotonic

-
description: string = 'EncryptedFS error'
prepareStackTrace?: (err: Error, stackTraces: CallSite[]) => any

Type declaration

stackTraceLimit: number

Accessors

  • get description(): string
  • Returns string

Methods

  • toJSON(): any
  • -

    Encoding to JSON pojo +

+
+ +
description: string = 'EncryptedFS error'
+
+ +
prepareStackTrace?: ((err: Error, stackTraces: CallSite[]) => any)
+
+

Type declaration

+
+
+ +
stackTraceLimit: number
+
+

Accessors

+
+ +
    +
  • get description(): string
  • +
  • +

    Returns string

+
+

Methods

+
+ +
    + +
  • +

    Encoding to JSON pojo When overriding this, you can use super.toJSON The replacer will:

    • delete undefined values in objects
    • replace undefined values for null in arrays
    -

Returns any

+
+ +
+
+ +

Type parameters

Parameters

Returns InstanceType<T>

Generated using TypeDoc

\ No newline at end of file + +
+

Type Parameters

+
+
+

Parameters

+
+

Returns InstanceType<T>

+ +
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/classes/errors.ErrorEncryptedFSDestroyed.html b/docs/classes/errors.ErrorEncryptedFSDestroyed.html index a029686f..09776326 100644 --- a/docs/classes/errors.ErrorEncryptedFSDestroyed.html +++ b/docs/classes/errors.ErrorEncryptedFSDestroyed.html @@ -1,29 +1,301 @@ -ErrorEncryptedFSDestroyed | encryptedfs
Options
All
  • Public
  • Public/Protected
  • All
Menu

Class ErrorEncryptedFSDestroyed<T>

Type parameters

  • T

Hierarchy

Index

Constructors

  • new ErrorEncryptedFSDestroyed<T>(message?: string, options?: { cause?: T; data?: POJO; timestamp?: Date }): ErrorEncryptedFSDestroyed<T>
  • Type parameters

    • T

    Parameters

    • Optional message: string
    • Optional options: { cause?: T; data?: POJO; timestamp?: Date }
      • Optional cause?: T
      • Optional data?: POJO
      • Optional timestamp?: Date

    Returns ErrorEncryptedFSDestroyed<T>

Properties

cause: T
-

Causation of the exception +ErrorEncryptedFSDestroyed | encryptedfs

+
+ +
+
+
+
+ +

Class ErrorEncryptedFSDestroyed<T>

+
+

Type Parameters

+
    +
  • +

    T

+
+

Hierarchy

+
+
+
+
+ +
+
+

Constructors

+
+
+

Properties

+
+
+

Accessors

+
+
+

Methods

+
+
+

Constructors

+
+ +
    + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T

    +
    +

    Parameters

    +
      +
    • +
      Optional message: string
    • +
    • +
      Optional options: {
          cause?: T;
          data?: POJO;
          timestamp?: Date;
      }
      +
        +
      • +
        Optional cause?: T
      • +
      • +
        Optional data?: POJO
      • +
      • +
        Optional timestamp?: Date
    +

    Returns ErrorEncryptedFSDestroyed<T>

+
+

Properties

+
+ +
cause: T
+

Causation of the exception Can be used to know what caused this exception

-
data: POJO
-

Arbitrary data

-
message: string
name: string
stack?: string
timestamp: Date
-

Timestamp when exception was constructed in milliseconds -May contain microseconds in the fractional part +

+
+ +
data: POJO
+

Arbitrary data

+
+
+ +
message: string
+
+ +
name: string
+
+ +
stack?: string
+
+ +
timestamp: Date
+

Timestamp when exception was constructed in milliseconds Guaranteed to be weakly monotonic

-
description: string = 'EncryptedFS is destroyed'
prepareStackTrace?: (err: Error, stackTraces: CallSite[]) => any

Type declaration

stackTraceLimit: number

Accessors

  • get description(): string
  • Returns string

Methods

  • toJSON(): any
  • -

    Encoding to JSON pojo +

+
+ +
description: string = 'EncryptedFS is destroyed'
+
+ +
prepareStackTrace?: ((err: Error, stackTraces: CallSite[]) => any)
+
+

Type declaration

+
+
+ +
stackTraceLimit: number
+
+

Accessors

+
+ +
    +
  • get description(): string
  • +
  • +

    Returns string

+
+

Methods

+
+ +
    + +
  • +

    Encoding to JSON pojo When overriding this, you can use super.toJSON The replacer will:

    • delete undefined values in objects
    • replace undefined values for null in arrays
    -

Returns any

+
+ +
+
+ +

Type parameters

Parameters

Returns InstanceType<T>

Generated using TypeDoc

\ No newline at end of file + +
+

Type Parameters

+
+
+

Parameters

+
+

Returns InstanceType<T>

+ +
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/classes/errors.ErrorEncryptedFSError.html b/docs/classes/errors.ErrorEncryptedFSError.html index 266c2dff..b1f83dc0 100644 --- a/docs/classes/errors.ErrorEncryptedFSError.html +++ b/docs/classes/errors.ErrorEncryptedFSError.html @@ -1,29 +1,409 @@ -ErrorEncryptedFSError | encryptedfs
Options
All
  • Public
  • Public/Protected
  • All
Menu

Class ErrorEncryptedFSError<T>

Type parameters

  • T

Hierarchy

Index

Constructors

  • new ErrorEncryptedFSError<T>(__namedParameters: { dest?: string; errno: { code: string; description: string; errno: number }; message?: string; path?: string; syscall?: string }, options?: { cause?: T; data?: POJO; timestamp?: Date }): ErrorEncryptedFSError<T>
  • Type parameters

    • T

    Parameters

    • __namedParameters: { dest?: string; errno: { code: string; description: string; errno: number }; message?: string; path?: string; syscall?: string }
      • Optional dest?: string
      • errno: { code: string; description: string; errno: number }
        • code: string
        • description: string
        • errno: number
      • Optional message?: string
      • Optional path?: string
      • Optional syscall?: string
    • options: { cause?: T; data?: POJO; timestamp?: Date } = {}
      • Optional cause?: T
      • Optional data?: POJO
      • Optional timestamp?: Date

    Returns ErrorEncryptedFSError<T>

Properties

_code: string
_description: string
_errno: number
_syscall?: string
cause: T
-

Causation of the exception +ErrorEncryptedFSError | encryptedfs

+
+ +
+
+
+
+ +

Class ErrorEncryptedFSError<T>

+
+

Type Parameters

+
    +
  • +

    T

+
+

Hierarchy

+
+
+
+
+ +
+
+

Constructors

+
+ +
    + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T

    +
    +

    Parameters

    +
      +
    • +
      __namedParameters: {
          dest?: string;
          errno: {
              code: string;
              description: string;
              errno: number;
          };
          message?: string;
          path?: string;
          syscall?: string;
      }
      +
        +
      • +
        Optional dest?: string
      • +
      • +
        errno: {
            code: string;
            description: string;
            errno: number;
        }
        +
          +
        • +
          code: string
        • +
        • +
          description: string
        • +
        • +
          errno: number
      • +
      • +
        Optional message?: string
      • +
      • +
        Optional path?: string
      • +
      • +
        Optional syscall?: string
    • +
    • +
      options: {
          cause?: T;
          data?: POJO;
          timestamp?: Date;
      } = {}
      +
        +
      • +
        Optional cause?: T
      • +
      • +
        Optional data?: POJO
      • +
      • +
        Optional timestamp?: Date
    +

    Returns ErrorEncryptedFSError<T>

+
+

Properties

+
+ +
_code: string
+
+ +
_description: string
+
+ +
_errno: number
+
+ +
_syscall?: string
+
+ +
cause: T
+

Causation of the exception Can be used to know what caused this exception

-
data: POJO
-

Arbitrary data

-
message: string
name: string
stack?: string
timestamp: Date
-

Timestamp when exception was constructed in milliseconds -May contain microseconds in the fractional part +

+
+ +
data: POJO
+

Arbitrary data

+
+
+ +
message: string
+
+ +
name: string
+
+ +
stack?: string
+
+ +
timestamp: Date
+

Timestamp when exception was constructed in milliseconds Guaranteed to be weakly monotonic

-
description: string = 'EncryptedFS filesystem error'
prepareStackTrace?: (err: Error, stackTraces: CallSite[]) => any

Type declaration

stackTraceLimit: number

Accessors

  • get code(): string
  • get description(): string
  • get errno(): number
  • get syscall(): undefined | string

Methods

  • setPaths(src: string, dst?: string): void
  • setSyscall(syscall: string): void
  • toJSON(): any
+
+ +
description: string = 'EncryptedFS filesystem error'
+
+ +
prepareStackTrace?: ((err: Error, stackTraces: CallSite[]) => any)
+
+

Type declaration

+
+
+ +
stackTraceLimit: number
+
+

Accessors

+
+ +
+
+ +
    +
  • get description(): string
  • +
  • +

    Returns string

+
+ +
+
+ +
    +
  • get syscall(): undefined | string
  • +
  • +

    Returns undefined | string

+
+

Methods

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      src: string
    • +
    • +
      Optional dst: string
    +

    Returns void

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      syscall: string
    +

    Returns void

+
+ +
    + +
  • +

    Encoding to JSON pojo When overriding this, you can use super.toJSON The replacer will:

    • delete undefined values in objects
    • replace undefined values for null in arrays
    -

Returns any

+
+ +
+
+ +

Type parameters

Parameters

Returns InstanceType<T>

Generated using TypeDoc

\ No newline at end of file + +
+

Type Parameters

+
+
+

Parameters

+
+

Returns InstanceType<T>

+ +
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/classes/errors.ErrorEncryptedFSKey.html b/docs/classes/errors.ErrorEncryptedFSKey.html index 8642090a..991bcb4f 100644 --- a/docs/classes/errors.ErrorEncryptedFSKey.html +++ b/docs/classes/errors.ErrorEncryptedFSKey.html @@ -1,29 +1,301 @@ -ErrorEncryptedFSKey | encryptedfs
Options
All
  • Public
  • Public/Protected
  • All
Menu

Class ErrorEncryptedFSKey<T>

Type parameters

  • T

Hierarchy

Index

Constructors

  • new ErrorEncryptedFSKey<T>(message?: string, options?: { cause?: T; data?: POJO; timestamp?: Date }): ErrorEncryptedFSKey<T>
  • Type parameters

    • T

    Parameters

    • Optional message: string
    • Optional options: { cause?: T; data?: POJO; timestamp?: Date }
      • Optional cause?: T
      • Optional data?: POJO
      • Optional timestamp?: Date

    Returns ErrorEncryptedFSKey<T>

Properties

cause: T
-

Causation of the exception +ErrorEncryptedFSKey | encryptedfs

+
+ +
+
+
+
+ +

Class ErrorEncryptedFSKey<T>

+
+

Type Parameters

+
    +
  • +

    T

+
+

Hierarchy

+
+
+
+
+ +
+
+

Constructors

+
+
+

Properties

+
+
+

Accessors

+
+
+

Methods

+
+
+

Constructors

+
+ +
    + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T

    +
    +

    Parameters

    +
      +
    • +
      Optional message: string
    • +
    • +
      Optional options: {
          cause?: T;
          data?: POJO;
          timestamp?: Date;
      }
      +
        +
      • +
        Optional cause?: T
      • +
      • +
        Optional data?: POJO
      • +
      • +
        Optional timestamp?: Date
    +

    Returns ErrorEncryptedFSKey<T>

+
+

Properties

+
+ +
cause: T
+

Causation of the exception Can be used to know what caused this exception

-
data: POJO
-

Arbitrary data

-
message: string
name: string
stack?: string
timestamp: Date
-

Timestamp when exception was constructed in milliseconds -May contain microseconds in the fractional part +

+
+ +
data: POJO
+

Arbitrary data

+
+
+ +
message: string
+
+ +
name: string
+
+ +
stack?: string
+
+ +
timestamp: Date
+

Timestamp when exception was constructed in milliseconds Guaranteed to be weakly monotonic

-
description: string = 'EncryptedFS failed canary check'
prepareStackTrace?: (err: Error, stackTraces: CallSite[]) => any

Type declaration

stackTraceLimit: number

Accessors

  • get description(): string
  • Returns string

Methods

  • toJSON(): any
  • -

    Encoding to JSON pojo +

+
+ +
description: string = 'EncryptedFS failed canary check'
+
+ +
prepareStackTrace?: ((err: Error, stackTraces: CallSite[]) => any)
+
+

Type declaration

+
+
+ +
stackTraceLimit: number
+
+

Accessors

+
+ +
    +
  • get description(): string
  • +
  • +

    Returns string

+
+

Methods

+
+ +
    + +
  • +

    Encoding to JSON pojo When overriding this, you can use super.toJSON The replacer will:

    • delete undefined values in objects
    • replace undefined values for null in arrays
    -

Returns any

+
+ +
+
+ +

Type parameters

Parameters

Returns InstanceType<T>

Generated using TypeDoc

\ No newline at end of file + +
+

Type Parameters

+
+
+

Parameters

+
+

Returns InstanceType<T>

+ +
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/classes/errors.ErrorEncryptedFSNotRunning.html b/docs/classes/errors.ErrorEncryptedFSNotRunning.html index 21bce8f0..ddd89103 100644 --- a/docs/classes/errors.ErrorEncryptedFSNotRunning.html +++ b/docs/classes/errors.ErrorEncryptedFSNotRunning.html @@ -1,29 +1,301 @@ -ErrorEncryptedFSNotRunning | encryptedfs
Options
All
  • Public
  • Public/Protected
  • All
Menu

Class ErrorEncryptedFSNotRunning<T>

Type parameters

  • T

Hierarchy

Index

Constructors

  • new ErrorEncryptedFSNotRunning<T>(message?: string, options?: { cause?: T; data?: POJO; timestamp?: Date }): ErrorEncryptedFSNotRunning<T>
  • Type parameters

    • T

    Parameters

    • Optional message: string
    • Optional options: { cause?: T; data?: POJO; timestamp?: Date }
      • Optional cause?: T
      • Optional data?: POJO
      • Optional timestamp?: Date

    Returns ErrorEncryptedFSNotRunning<T>

Properties

cause: T
-

Causation of the exception +ErrorEncryptedFSNotRunning | encryptedfs

+
+ +
+
+
+
+ +

Class ErrorEncryptedFSNotRunning<T>

+
+

Type Parameters

+
    +
  • +

    T

+
+

Hierarchy

+
+
+
+
+ +
+
+

Constructors

+
+
+

Properties

+
+
+

Accessors

+
+
+

Methods

+
+
+

Constructors

+
+ +
    + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T

    +
    +

    Parameters

    +
      +
    • +
      Optional message: string
    • +
    • +
      Optional options: {
          cause?: T;
          data?: POJO;
          timestamp?: Date;
      }
      +
        +
      • +
        Optional cause?: T
      • +
      • +
        Optional data?: POJO
      • +
      • +
        Optional timestamp?: Date
    +

    Returns ErrorEncryptedFSNotRunning<T>

+
+

Properties

+
+ +
cause: T
+

Causation of the exception Can be used to know what caused this exception

-
data: POJO
-

Arbitrary data

-
message: string
name: string
stack?: string
timestamp: Date
-

Timestamp when exception was constructed in milliseconds -May contain microseconds in the fractional part +

+
+ +
data: POJO
+

Arbitrary data

+
+
+ +
message: string
+
+ +
name: string
+
+ +
stack?: string
+
+ +
timestamp: Date
+

Timestamp when exception was constructed in milliseconds Guaranteed to be weakly monotonic

-
description: string = 'EncryptedFS is not running'
prepareStackTrace?: (err: Error, stackTraces: CallSite[]) => any

Type declaration

stackTraceLimit: number

Accessors

  • get description(): string
  • Returns string

Methods

  • toJSON(): any
  • -

    Encoding to JSON pojo +

+
+ +
description: string = 'EncryptedFS is not running'
+
+ +
prepareStackTrace?: ((err: Error, stackTraces: CallSite[]) => any)
+
+

Type declaration

+
+
+ +
stackTraceLimit: number
+
+

Accessors

+
+ +
    +
  • get description(): string
  • +
  • +

    Returns string

+
+

Methods

+
+ +
    + +
  • +

    Encoding to JSON pojo When overriding this, you can use super.toJSON The replacer will:

    • delete undefined values in objects
    • replace undefined values for null in arrays
    -

Returns any

+
+ +
+
+ +

Type parameters

Parameters

Returns InstanceType<T>

Generated using TypeDoc

\ No newline at end of file + +
+

Type Parameters

+
+
+

Parameters

+
+

Returns InstanceType<T>

+ +
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/classes/errors.ErrorEncryptedFSRunning.html b/docs/classes/errors.ErrorEncryptedFSRunning.html index 3045be07..00a5df9f 100644 --- a/docs/classes/errors.ErrorEncryptedFSRunning.html +++ b/docs/classes/errors.ErrorEncryptedFSRunning.html @@ -1,29 +1,301 @@ -ErrorEncryptedFSRunning | encryptedfs
Options
All
  • Public
  • Public/Protected
  • All
Menu

Class ErrorEncryptedFSRunning<T>

Type parameters

  • T

Hierarchy

Index

Constructors

  • new ErrorEncryptedFSRunning<T>(message?: string, options?: { cause?: T; data?: POJO; timestamp?: Date }): ErrorEncryptedFSRunning<T>
  • Type parameters

    • T

    Parameters

    • Optional message: string
    • Optional options: { cause?: T; data?: POJO; timestamp?: Date }
      • Optional cause?: T
      • Optional data?: POJO
      • Optional timestamp?: Date

    Returns ErrorEncryptedFSRunning<T>

Properties

cause: T
-

Causation of the exception +ErrorEncryptedFSRunning | encryptedfs

+
+ +
+
+
+
+ +

Class ErrorEncryptedFSRunning<T>

+
+

Type Parameters

+
    +
  • +

    T

+
+

Hierarchy

+
+
+
+
+ +
+
+

Constructors

+
+
+

Properties

+
+
+

Accessors

+
+
+

Methods

+
+
+

Constructors

+
+ +
    + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T

    +
    +

    Parameters

    +
      +
    • +
      Optional message: string
    • +
    • +
      Optional options: {
          cause?: T;
          data?: POJO;
          timestamp?: Date;
      }
      +
        +
      • +
        Optional cause?: T
      • +
      • +
        Optional data?: POJO
      • +
      • +
        Optional timestamp?: Date
    +

    Returns ErrorEncryptedFSRunning<T>

+
+

Properties

+
+ +
cause: T
+

Causation of the exception Can be used to know what caused this exception

-
data: POJO
-

Arbitrary data

-
message: string
name: string
stack?: string
timestamp: Date
-

Timestamp when exception was constructed in milliseconds -May contain microseconds in the fractional part +

+
+ +
data: POJO
+

Arbitrary data

+
+
+ +
message: string
+
+ +
name: string
+
+ +
stack?: string
+
+ +
timestamp: Date
+

Timestamp when exception was constructed in milliseconds Guaranteed to be weakly monotonic

-
description: string = 'EncryptedFS is running'
prepareStackTrace?: (err: Error, stackTraces: CallSite[]) => any

Type declaration

stackTraceLimit: number

Accessors

  • get description(): string
  • Returns string

Methods

  • toJSON(): any
  • -

    Encoding to JSON pojo +

+
+ +
description: string = 'EncryptedFS is running'
+
+ +
prepareStackTrace?: ((err: Error, stackTraces: CallSite[]) => any)
+
+

Type declaration

+
+
+ +
stackTraceLimit: number
+
+

Accessors

+
+ +
    +
  • get description(): string
  • +
  • +

    Returns string

+
+

Methods

+
+ +
    + +
  • +

    Encoding to JSON pojo When overriding this, you can use super.toJSON The replacer will:

    • delete undefined values in objects
    • replace undefined values for null in arrays
    -

Returns any

+
+ +
+
+ +

Type parameters

Parameters

Returns InstanceType<T>

Generated using TypeDoc

\ No newline at end of file + +
+

Type Parameters

+
+
+

Parameters

+
+

Returns InstanceType<T>

+ +
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/classes/inodes.INodeManager.html b/docs/classes/inodes.INodeManager.html index 11bd06ba..cfbe76a0 100644 --- a/docs/classes/inodes.INodeManager.html +++ b/docs/classes/inodes.INodeManager.html @@ -1,38 +1,1249 @@ -INodeManager | encryptedfs
Options
All
  • Public
  • Public/Protected
  • All
Menu

Hierarchy

  • CreateDestroyStartStop
    • INodeManager

Index

Constructors

  • new INodeManager(__namedParameters: { db: DB; logger: Logger }): INodeManager

Properties

[initLock]: RWLockWriter
dataDbPath: readonly (string | Buffer)[] = ...
db: DB
dirsDbPath: readonly (string | Buffer)[] = ...
gcDbPath: readonly (string | Buffer)[] = ...
iNodeAllocations: Map<string, Ref<INodeIndex>> = ...
iNodeCounter: Counter = ...
iNodesDbPath: readonly (string | Buffer)[] = ...
linkDbPath: readonly (string | Buffer)[] = ...
logger: Logger
mgrDbPath: readonly (string | Buffer)[] = ...
refs: Map<INodeIndex, number> = ...
statsDbPath: readonly (string | Buffer)[] = ...

Accessors

  • get [destroyed](): boolean
  • Returns boolean

  • get [running](): boolean
  • Returns boolean

  • get [status](): Status
  • Returns Status

Methods

  • _dirDestroy(ino: INodeIndex, tran: DBTransaction): Promise<void>
  • _fileDestroy(ino: INodeIndex, tran: DBTransaction): Promise<void>
  • _statGetProp<Key>(ino: INodeIndex, key: Key, tran: DBTransaction): Promise<StatProps[Key]>
  • _statSetProp<Key>(ino: INodeIndex, key: Key, value: StatProps[Key], tran: DBTransaction): Promise<void>
  • _symlinkDestroy(ino: INodeIndex, tran: DBTransaction): Promise<void>
  • _unlink(ino: INodeIndex, tran: DBTransaction): Promise<void>
  • destroy(): Promise<void>
  • dirCreate(ino: INodeIndex, params: Partial<Omit<INodeParams, "ino">>, parent?: INodeIndex, tran?: DBTransaction): Promise<void>
  • dirDestroy(ino: INodeIndex, tran?: DBTransaction): Promise<void>
  • dirGetRoot(tran?: DBTransaction): Promise<undefined | INodeIndex>
  • dirResetEntry(ino: INodeIndex, nameOld: string, nameNew: string, tran?: DBTransaction): Promise<void>
  • dirSetRoot(ino: INodeIndex, tran: DBTransaction): Promise<void>
  • dirUnsetEntry(ino: INodeIndex, name: string, tran?: DBTransaction): Promise<void>
  • dirUnsetRoot(tran: DBTransaction): Promise<void>
  • fileClearData(ino: INodeIndex, tran?: DBTransaction): Promise<void>
  • fileCreate(ino: INodeIndex, params: Partial<Omit<INodeParams, "ino">>, blkSize: number, data?: Buffer, tran?: DBTransaction): Promise<void>
  • fileDestroy(ino: INodeIndex, tran?: DBTransaction): Promise<void>
  • fileGetBlock(ino: INodeIndex, idx: number, tran: DBTransaction): Promise<undefined | Buffer>
+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      ino: INodeIndex
    • +
    • +
      params: Partial<Omit<INodeParams, "ino">>
    • +
    • +
      blkSize: number
    • +
    • +
      Optional data: Buffer
    • +
    • +
      Optional tran: DBTransaction
    +

    Returns Promise<void>

+
+ +
+
+ +
    + +
  • +

    Access time not updated here, handled at higher level as this is only accessed by fds and and other INodeMgr functions

    -

Parameters

Returns Promise<undefined | Buffer>

  • fileGetBlocks(ino: INodeIndex, blockSize: number, startIdx?: number, endIdx?: number, tran?: DBTransaction): AsyncGenerator<Buffer, any, unknown>
+
+ +
    + +
  • +

    Access time not updated here, handled at higher level as this is only accessed by fds and and other INodeMgr functions

    -

Parameters

Returns AsyncGenerator<Buffer, any, unknown>

+
+ +

Parameters

Returns Promise<[number, Buffer]>

+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +

Generated using TypeDoc

\ No newline at end of file + +

Returns Promise<void>

+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ +
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/classes/inodes.errors.ErrorINodeManagerDestroyed.html b/docs/classes/inodes.errors.ErrorINodeManagerDestroyed.html index 2a23970d..f4f78794 100644 --- a/docs/classes/inodes.errors.ErrorINodeManagerDestroyed.html +++ b/docs/classes/inodes.errors.ErrorINodeManagerDestroyed.html @@ -1,29 +1,302 @@ -ErrorINodeManagerDestroyed | encryptedfs
Options
All
  • Public
  • Public/Protected
  • All
Menu

Class ErrorINodeManagerDestroyed<T>

Type parameters

  • T

Hierarchy

Index

Constructors

  • new ErrorINodeManagerDestroyed<T>(message?: string, options?: { cause?: T; data?: POJO; timestamp?: Date }): ErrorINodeManagerDestroyed<T>
  • Type parameters

    • T

    Parameters

    • Optional message: string
    • Optional options: { cause?: T; data?: POJO; timestamp?: Date }
      • Optional cause?: T
      • Optional data?: POJO
      • Optional timestamp?: Date

    Returns ErrorINodeManagerDestroyed<T>

Properties

cause: T
-

Causation of the exception +ErrorINodeManagerDestroyed | encryptedfs

+
+ +
+
+
+
+ +

Class ErrorINodeManagerDestroyed<T>

+
+

Type Parameters

+
    +
  • +

    T

+
+

Hierarchy

+
+
+
+
+ +
+
+

Constructors

+
+
+

Properties

+
+
+

Accessors

+
+
+

Methods

+
+
+

Constructors

+
+ +
    + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T

    +
    +

    Parameters

    +
      +
    • +
      Optional message: string
    • +
    • +
      Optional options: {
          cause?: T;
          data?: POJO;
          timestamp?: Date;
      }
      +
        +
      • +
        Optional cause?: T
      • +
      • +
        Optional data?: POJO
      • +
      • +
        Optional timestamp?: Date
    +

    Returns ErrorINodeManagerDestroyed<T>

+
+

Properties

+
+ +
cause: T
+

Causation of the exception Can be used to know what caused this exception

-
data: POJO
-

Arbitrary data

-
message: string
name: string
stack?: string
timestamp: Date
-

Timestamp when exception was constructed in milliseconds -May contain microseconds in the fractional part +

+
+ +
data: POJO
+

Arbitrary data

+
+
+ +
message: string
+
+ +
name: string
+
+ +
stack?: string
+
+ +
timestamp: Date
+

Timestamp when exception was constructed in milliseconds Guaranteed to be weakly monotonic

-
description: string = 'INodeManager is destroyed'
prepareStackTrace?: (err: Error, stackTraces: CallSite[]) => any

Type declaration

stackTraceLimit: number

Accessors

  • get description(): string
  • Returns string

Methods

  • toJSON(): any
  • -

    Encoding to JSON pojo +

+
+ +
description: string = 'INodeManager is destroyed'
+
+ +
prepareStackTrace?: ((err: Error, stackTraces: CallSite[]) => any)
+
+

Type declaration

+
+
+ +
stackTraceLimit: number
+
+

Accessors

+
+ +
    +
  • get description(): string
  • +
  • +

    Returns string

+
+

Methods

+
+ +
    + +
  • +

    Encoding to JSON pojo When overriding this, you can use super.toJSON The replacer will:

    • delete undefined values in objects
    • replace undefined values for null in arrays
    -

Returns any

+
+ +
+
+ +

Type parameters

Parameters

Returns InstanceType<T>

Generated using TypeDoc

\ No newline at end of file + +
+

Type Parameters

+
+
+

Parameters

+
+

Returns InstanceType<T>

+ +
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/classes/inodes.errors.ErrorINodeManagerNotRunning.html b/docs/classes/inodes.errors.ErrorINodeManagerNotRunning.html index 772b9b9a..35c1d50a 100644 --- a/docs/classes/inodes.errors.ErrorINodeManagerNotRunning.html +++ b/docs/classes/inodes.errors.ErrorINodeManagerNotRunning.html @@ -1,29 +1,302 @@ -ErrorINodeManagerNotRunning | encryptedfs
Options
All
  • Public
  • Public/Protected
  • All
Menu

Class ErrorINodeManagerNotRunning<T>

Type parameters

  • T

Hierarchy

Index

Constructors

  • new ErrorINodeManagerNotRunning<T>(message?: string, options?: { cause?: T; data?: POJO; timestamp?: Date }): ErrorINodeManagerNotRunning<T>
  • Type parameters

    • T

    Parameters

    • Optional message: string
    • Optional options: { cause?: T; data?: POJO; timestamp?: Date }
      • Optional cause?: T
      • Optional data?: POJO
      • Optional timestamp?: Date

    Returns ErrorINodeManagerNotRunning<T>

Properties

cause: T
-

Causation of the exception +ErrorINodeManagerNotRunning | encryptedfs

+
+ +
+
+
+
+ +

Class ErrorINodeManagerNotRunning<T>

+
+

Type Parameters

+
    +
  • +

    T

+
+

Hierarchy

+
+
+
+
+ +
+
+

Constructors

+
+
+

Properties

+
+
+

Accessors

+
+
+

Methods

+
+
+

Constructors

+
+ +
    + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T

    +
    +

    Parameters

    +
      +
    • +
      Optional message: string
    • +
    • +
      Optional options: {
          cause?: T;
          data?: POJO;
          timestamp?: Date;
      }
      +
        +
      • +
        Optional cause?: T
      • +
      • +
        Optional data?: POJO
      • +
      • +
        Optional timestamp?: Date
    +

    Returns ErrorINodeManagerNotRunning<T>

+
+

Properties

+
+ +
cause: T
+

Causation of the exception Can be used to know what caused this exception

-
data: POJO
-

Arbitrary data

-
message: string
name: string
stack?: string
timestamp: Date
-

Timestamp when exception was constructed in milliseconds -May contain microseconds in the fractional part +

+
+ +
data: POJO
+

Arbitrary data

+
+
+ +
message: string
+
+ +
name: string
+
+ +
stack?: string
+
+ +
timestamp: Date
+

Timestamp when exception was constructed in milliseconds Guaranteed to be weakly monotonic

-
description: string = 'INodeManager is not running'
prepareStackTrace?: (err: Error, stackTraces: CallSite[]) => any

Type declaration

stackTraceLimit: number

Accessors

  • get description(): string
  • Returns string

Methods

  • toJSON(): any
  • -

    Encoding to JSON pojo +

+
+ +
description: string = 'INodeManager is not running'
+
+ +
prepareStackTrace?: ((err: Error, stackTraces: CallSite[]) => any)
+
+

Type declaration

+
+
+ +
stackTraceLimit: number
+
+

Accessors

+
+ +
    +
  • get description(): string
  • +
  • +

    Returns string

+
+

Methods

+
+ +
    + +
  • +

    Encoding to JSON pojo When overriding this, you can use super.toJSON The replacer will:

    • delete undefined values in objects
    • replace undefined values for null in arrays
    -

Returns any

+
+ +
+
+ +

Type parameters

Parameters

Returns InstanceType<T>

Generated using TypeDoc

\ No newline at end of file + +
+

Type Parameters

+
+
+

Parameters

+
+

Returns InstanceType<T>

+ +
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/classes/inodes.errors.ErrorINodeManagerRunning.html b/docs/classes/inodes.errors.ErrorINodeManagerRunning.html index a1bbccc0..ad73f0be 100644 --- a/docs/classes/inodes.errors.ErrorINodeManagerRunning.html +++ b/docs/classes/inodes.errors.ErrorINodeManagerRunning.html @@ -1,29 +1,302 @@ -ErrorINodeManagerRunning | encryptedfs
Options
All
  • Public
  • Public/Protected
  • All
Menu

Class ErrorINodeManagerRunning<T>

Type parameters

  • T

Hierarchy

Index

Constructors

  • new ErrorINodeManagerRunning<T>(message?: string, options?: { cause?: T; data?: POJO; timestamp?: Date }): ErrorINodeManagerRunning<T>
  • Type parameters

    • T

    Parameters

    • Optional message: string
    • Optional options: { cause?: T; data?: POJO; timestamp?: Date }
      • Optional cause?: T
      • Optional data?: POJO
      • Optional timestamp?: Date

    Returns ErrorINodeManagerRunning<T>

Properties

cause: T
-

Causation of the exception +ErrorINodeManagerRunning | encryptedfs

+
+ +
+
+
+
+ +

Class ErrorINodeManagerRunning<T>

+
+

Type Parameters

+
    +
  • +

    T

+
+

Hierarchy

+
+
+
+
+ +
+
+

Constructors

+
+
+

Properties

+
+
+

Accessors

+
+
+

Methods

+
+
+

Constructors

+
+ +
    + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T

    +
    +

    Parameters

    +
      +
    • +
      Optional message: string
    • +
    • +
      Optional options: {
          cause?: T;
          data?: POJO;
          timestamp?: Date;
      }
      +
        +
      • +
        Optional cause?: T
      • +
      • +
        Optional data?: POJO
      • +
      • +
        Optional timestamp?: Date
    +

    Returns ErrorINodeManagerRunning<T>

+
+

Properties

+
+ +
cause: T
+

Causation of the exception Can be used to know what caused this exception

-
data: POJO
-

Arbitrary data

-
message: string
name: string
stack?: string
timestamp: Date
-

Timestamp when exception was constructed in milliseconds -May contain microseconds in the fractional part +

+
+ +
data: POJO
+

Arbitrary data

+
+
+ +
message: string
+
+ +
name: string
+
+ +
stack?: string
+
+ +
timestamp: Date
+

Timestamp when exception was constructed in milliseconds Guaranteed to be weakly monotonic

-
description: string = 'INodeManager is running'
prepareStackTrace?: (err: Error, stackTraces: CallSite[]) => any

Type declaration

stackTraceLimit: number

Accessors

  • get description(): string
  • Returns string

Methods

  • toJSON(): any
  • -

    Encoding to JSON pojo +

+
+ +
description: string = 'INodeManager is running'
+
+ +
prepareStackTrace?: ((err: Error, stackTraces: CallSite[]) => any)
+
+

Type declaration

+
+
+ +
stackTraceLimit: number
+
+

Accessors

+
+ +
    +
  • get description(): string
  • +
  • +

    Returns string

+
+

Methods

+
+ +
    + +
  • +

    Encoding to JSON pojo When overriding this, you can use super.toJSON The replacer will:

    • delete undefined values in objects
    • replace undefined values for null in arrays
    -

Returns any

+
+ +
+
+ +

Type parameters

Parameters

Returns InstanceType<T>

Generated using TypeDoc

\ No newline at end of file + +
+

Type Parameters

+
+
+

Parameters

+
+

Returns InstanceType<T>

+ +
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/classes/inodes.errors.ErrorINodes.html b/docs/classes/inodes.errors.ErrorINodes.html index efdc869c..3aee164c 100644 --- a/docs/classes/inodes.errors.ErrorINodes.html +++ b/docs/classes/inodes.errors.ErrorINodes.html @@ -1,29 +1,310 @@ -ErrorINodes | encryptedfs
Options
All
  • Public
  • Public/Protected
  • All
Menu

Type parameters

  • T

Hierarchy

Index

Constructors

  • new ErrorINodes<T>(message?: string, options?: { cause?: T; data?: POJO; timestamp?: Date }): ErrorINodes<T>
  • Type parameters

    • T

    Parameters

    • Optional message: string
    • Optional options: { cause?: T; data?: POJO; timestamp?: Date }
      • Optional cause?: T
      • Optional data?: POJO
      • Optional timestamp?: Date

    Returns ErrorINodes<T>

Properties

cause: T
-

Causation of the exception +ErrorINodes | encryptedfs

+
+ +
+
+
+
+ +

Class ErrorINodes<T>

+
+

Type Parameters

+
    +
  • +

    T

+
+

Hierarchy

+
+
+
+
+ +
+
+

Constructors

+
+
+

Properties

+
+
+

Accessors

+
+
+

Methods

+
+
+

Constructors

+
+ +
    + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T

    +
    +

    Parameters

    +
      +
    • +
      Optional message: string
    • +
    • +
      Optional options: {
          cause?: T;
          data?: POJO;
          timestamp?: Date;
      }
      +
        +
      • +
        Optional cause?: T
      • +
      • +
        Optional data?: POJO
      • +
      • +
        Optional timestamp?: Date
    +

    Returns ErrorINodes<T>

+
+

Properties

+
+ +
cause: T
+

Causation of the exception Can be used to know what caused this exception

-
data: POJO
-

Arbitrary data

-
message: string
name: string
stack?: string
timestamp: Date
-

Timestamp when exception was constructed in milliseconds -May contain microseconds in the fractional part +

+
+ +
data: POJO
+

Arbitrary data

+
+
+ +
message: string
+
+ +
name: string
+
+ +
stack?: string
+
+ +
timestamp: Date
+

Timestamp when exception was constructed in milliseconds Guaranteed to be weakly monotonic

-
description: string = 'INodes error'
prepareStackTrace?: (err: Error, stackTraces: CallSite[]) => any

Type declaration

stackTraceLimit: number

Accessors

  • get description(): string
  • Returns string

Methods

  • toJSON(): any
  • -

    Encoding to JSON pojo +

+
+ +
description: string = 'INodes error'
+
+ +
prepareStackTrace?: ((err: Error, stackTraces: CallSite[]) => any)
+
+

Type declaration

+
+
+ +
stackTraceLimit: number
+
+

Accessors

+
+ +
    +
  • get description(): string
  • +
  • +

    Returns string

+
+

Methods

+
+ +
    + +
  • +

    Encoding to JSON pojo When overriding this, you can use super.toJSON The replacer will:

    • delete undefined values in objects
    • replace undefined values for null in arrays
    -

Returns any

+
+ +
+
+ +

Type parameters

Parameters

Returns InstanceType<T>

Generated using TypeDoc

\ No newline at end of file + +
+

Type Parameters

+
+
+

Parameters

+
+

Returns InstanceType<T>

+ +
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/classes/inodes.errors.ErrorINodesDuplicateRoot.html b/docs/classes/inodes.errors.ErrorINodesDuplicateRoot.html index c8528040..8d20f5c3 100644 --- a/docs/classes/inodes.errors.ErrorINodesDuplicateRoot.html +++ b/docs/classes/inodes.errors.ErrorINodesDuplicateRoot.html @@ -1,29 +1,302 @@ -ErrorINodesDuplicateRoot | encryptedfs
Options
All
  • Public
  • Public/Protected
  • All
Menu

Class ErrorINodesDuplicateRoot<T>

Type parameters

  • T

Hierarchy

Index

Constructors

  • new ErrorINodesDuplicateRoot<T>(message?: string, options?: { cause?: T; data?: POJO; timestamp?: Date }): ErrorINodesDuplicateRoot<T>
  • Type parameters

    • T

    Parameters

    • Optional message: string
    • Optional options: { cause?: T; data?: POJO; timestamp?: Date }
      • Optional cause?: T
      • Optional data?: POJO
      • Optional timestamp?: Date

    Returns ErrorINodesDuplicateRoot<T>

Properties

cause: T
-

Causation of the exception +ErrorINodesDuplicateRoot | encryptedfs

+
+ +
+
+
+
+ +

Class ErrorINodesDuplicateRoot<T>

+
+

Type Parameters

+
    +
  • +

    T

+
+

Hierarchy

+
+
+
+
+ +
+
+

Constructors

+
+
+

Properties

+
+
+

Accessors

+
+
+

Methods

+
+
+

Constructors

+
+ +
    + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T

    +
    +

    Parameters

    +
      +
    • +
      Optional message: string
    • +
    • +
      Optional options: {
          cause?: T;
          data?: POJO;
          timestamp?: Date;
      }
      +
        +
      • +
        Optional cause?: T
      • +
      • +
        Optional data?: POJO
      • +
      • +
        Optional timestamp?: Date
    +

    Returns ErrorINodesDuplicateRoot<T>

+
+

Properties

+
+ +
cause: T
+

Causation of the exception Can be used to know what caused this exception

-
data: POJO
-

Arbitrary data

-
message: string
name: string
stack?: string
timestamp: Date
-

Timestamp when exception was constructed in milliseconds -May contain microseconds in the fractional part +

+
+ +
data: POJO
+

Arbitrary data

+
+
+ +
message: string
+
+ +
name: string
+
+ +
stack?: string
+
+ +
timestamp: Date
+

Timestamp when exception was constructed in milliseconds Guaranteed to be weakly monotonic

-
description: string = 'Only a single root INode is allowed'
prepareStackTrace?: (err: Error, stackTraces: CallSite[]) => any

Type declaration

stackTraceLimit: number

Accessors

  • get description(): string
  • Returns string

Methods

  • toJSON(): any
  • -

    Encoding to JSON pojo +

+
+ +
description: string = 'Only a single root INode is allowed'
+
+ +
prepareStackTrace?: ((err: Error, stackTraces: CallSite[]) => any)
+
+

Type declaration

+
+
+ +
stackTraceLimit: number
+
+

Accessors

+
+ +
    +
  • get description(): string
  • +
  • +

    Returns string

+
+

Methods

+
+ +
    + +
  • +

    Encoding to JSON pojo When overriding this, you can use super.toJSON The replacer will:

    • delete undefined values in objects
    • replace undefined values for null in arrays
    -

Returns any

+
+ +
+
+ +

Type parameters

Parameters

Returns InstanceType<T>

Generated using TypeDoc

\ No newline at end of file + +
+

Type Parameters

+
+
+

Parameters

+
+

Returns InstanceType<T>

+ +
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/classes/inodes.errors.ErrorINodesIndexMissing.html b/docs/classes/inodes.errors.ErrorINodesIndexMissing.html index 0da80089..ad286ffb 100644 --- a/docs/classes/inodes.errors.ErrorINodesIndexMissing.html +++ b/docs/classes/inodes.errors.ErrorINodesIndexMissing.html @@ -1,29 +1,302 @@ -ErrorINodesIndexMissing | encryptedfs
Options
All
  • Public
  • Public/Protected
  • All
Menu

Class ErrorINodesIndexMissing<T>

Type parameters

  • T

Hierarchy

Index

Constructors

  • new ErrorINodesIndexMissing<T>(message?: string, options?: { cause?: T; data?: POJO; timestamp?: Date }): ErrorINodesIndexMissing<T>
  • Type parameters

    • T

    Parameters

    • Optional message: string
    • Optional options: { cause?: T; data?: POJO; timestamp?: Date }
      • Optional cause?: T
      • Optional data?: POJO
      • Optional timestamp?: Date

    Returns ErrorINodesIndexMissing<T>

Properties

cause: T
-

Causation of the exception +ErrorINodesIndexMissing | encryptedfs

+
+ +
+
+
+
+ +

Class ErrorINodesIndexMissing<T>

+
+

Type Parameters

+
    +
  • +

    T

+
+

Hierarchy

+
+
+
+
+ +
+
+

Constructors

+
+
+

Properties

+
+
+

Accessors

+
+
+

Methods

+
+
+

Constructors

+
+ +
    + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T

    +
    +

    Parameters

    +
      +
    • +
      Optional message: string
    • +
    • +
      Optional options: {
          cause?: T;
          data?: POJO;
          timestamp?: Date;
      }
      +
        +
      • +
        Optional cause?: T
      • +
      • +
        Optional data?: POJO
      • +
      • +
        Optional timestamp?: Date
    +

    Returns ErrorINodesIndexMissing<T>

+
+

Properties

+
+ +
cause: T
+

Causation of the exception Can be used to know what caused this exception

-
data: POJO
-

Arbitrary data

-
message: string
name: string
stack?: string
timestamp: Date
-

Timestamp when exception was constructed in milliseconds -May contain microseconds in the fractional part +

+
+ +
data: POJO
+

Arbitrary data

+
+
+ +
message: string
+
+ +
name: string
+
+ +
stack?: string
+
+ +
timestamp: Date
+

Timestamp when exception was constructed in milliseconds Guaranteed to be weakly monotonic

-
description: string = 'INode cannot be found'
prepareStackTrace?: (err: Error, stackTraces: CallSite[]) => any

Type declaration

stackTraceLimit: number

Accessors

  • get description(): string
  • Returns string

Methods

  • toJSON(): any
  • -

    Encoding to JSON pojo +

+
+ +
description: string = 'INode cannot be found'
+
+ +
prepareStackTrace?: ((err: Error, stackTraces: CallSite[]) => any)
+
+

Type declaration

+
+
+ +
stackTraceLimit: number
+
+

Accessors

+
+ +
    +
  • get description(): string
  • +
  • +

    Returns string

+
+

Methods

+
+ +
    + +
  • +

    Encoding to JSON pojo When overriding this, you can use super.toJSON The replacer will:

    • delete undefined values in objects
    • replace undefined values for null in arrays
    -

Returns any

+
+ +
+
+ +

Type parameters

Parameters

Returns InstanceType<T>

Generated using TypeDoc

\ No newline at end of file + +
+

Type Parameters

+
+
+

Parameters

+
+

Returns InstanceType<T>

+ +
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/classes/inodes.errors.ErrorINodesInvalidName.html b/docs/classes/inodes.errors.ErrorINodesInvalidName.html index 6e4f7023..fb725461 100644 --- a/docs/classes/inodes.errors.ErrorINodesInvalidName.html +++ b/docs/classes/inodes.errors.ErrorINodesInvalidName.html @@ -1,29 +1,302 @@ -ErrorINodesInvalidName | encryptedfs
Options
All
  • Public
  • Public/Protected
  • All
Menu

Class ErrorINodesInvalidName<T>

Type parameters

  • T

Hierarchy

Index

Constructors

  • new ErrorINodesInvalidName<T>(message?: string, options?: { cause?: T; data?: POJO; timestamp?: Date }): ErrorINodesInvalidName<T>
  • Type parameters

    • T

    Parameters

    • Optional message: string
    • Optional options: { cause?: T; data?: POJO; timestamp?: Date }
      • Optional cause?: T
      • Optional data?: POJO
      • Optional timestamp?: Date

    Returns ErrorINodesInvalidName<T>

Properties

cause: T
-

Causation of the exception +ErrorINodesInvalidName | encryptedfs

+
+ +
+
+
+
+ +

Class ErrorINodesInvalidName<T>

+
+

Type Parameters

+
    +
  • +

    T

+
+

Hierarchy

+
+
+
+
+ +
+
+

Constructors

+
+
+

Properties

+
+
+

Accessors

+
+
+

Methods

+
+
+

Constructors

+
+ +
    + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T

    +
    +

    Parameters

    +
      +
    • +
      Optional message: string
    • +
    • +
      Optional options: {
          cause?: T;
          data?: POJO;
          timestamp?: Date;
      }
      +
        +
      • +
        Optional cause?: T
      • +
      • +
        Optional data?: POJO
      • +
      • +
        Optional timestamp?: Date
    +

    Returns ErrorINodesInvalidName<T>

+
+

Properties

+
+ +
cause: T
+

Causation of the exception Can be used to know what caused this exception

-
data: POJO
-

Arbitrary data

-
message: string
name: string
stack?: string
timestamp: Date
-

Timestamp when exception was constructed in milliseconds -May contain microseconds in the fractional part +

+
+ +
data: POJO
+

Arbitrary data

+
+
+ +
message: string
+
+ +
name: string
+
+ +
stack?: string
+
+ +
timestamp: Date
+

Timestamp when exception was constructed in milliseconds Guaranteed to be weakly monotonic

-
description: string = 'Old entry cannot be found during directory entry renaming'
prepareStackTrace?: (err: Error, stackTraces: CallSite[]) => any

Type declaration

stackTraceLimit: number

Accessors

  • get description(): string
  • Returns string

Methods

  • toJSON(): any
  • -

    Encoding to JSON pojo +

+
+ +
description: string = 'Old entry cannot be found during directory entry renaming'
+
+ +
prepareStackTrace?: ((err: Error, stackTraces: CallSite[]) => any)
+
+

Type declaration

+
+
+ +
stackTraceLimit: number
+
+

Accessors

+
+ +
    +
  • get description(): string
  • +
  • +

    Returns string

+
+

Methods

+
+ +
    + +
  • +

    Encoding to JSON pojo When overriding this, you can use super.toJSON The replacer will:

    • delete undefined values in objects
    • replace undefined values for null in arrays
    -

Returns any

+
+ +
+
+ +

Type parameters

Parameters

Returns InstanceType<T>

Generated using TypeDoc

\ No newline at end of file + +
+

Type Parameters

+
+
+

Parameters

+
+

Returns InstanceType<T>

+ +
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/classes/inodes.errors.ErrorINodesParentMissing.html b/docs/classes/inodes.errors.ErrorINodesParentMissing.html index 3619ea9e..a46aef1a 100644 --- a/docs/classes/inodes.errors.ErrorINodesParentMissing.html +++ b/docs/classes/inodes.errors.ErrorINodesParentMissing.html @@ -1,29 +1,302 @@ -ErrorINodesParentMissing | encryptedfs
Options
All
  • Public
  • Public/Protected
  • All
Menu

Class ErrorINodesParentMissing<T>

Type parameters

  • T

Hierarchy

Index

Constructors

  • new ErrorINodesParentMissing<T>(message?: string, options?: { cause?: T; data?: POJO; timestamp?: Date }): ErrorINodesParentMissing<T>
  • Type parameters

    • T

    Parameters

    • Optional message: string
    • Optional options: { cause?: T; data?: POJO; timestamp?: Date }
      • Optional cause?: T
      • Optional data?: POJO
      • Optional timestamp?: Date

    Returns ErrorINodesParentMissing<T>

Properties

cause: T
-

Causation of the exception +ErrorINodesParentMissing | encryptedfs

+
+ +
+
+
+
+ +

Class ErrorINodesParentMissing<T>

+
+

Type Parameters

+
    +
  • +

    T

+
+

Hierarchy

+
+
+
+
+ +
+
+

Constructors

+
+
+

Properties

+
+
+

Accessors

+
+
+

Methods

+
+
+

Constructors

+
+ +
    + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T

    +
    +

    Parameters

    +
      +
    • +
      Optional message: string
    • +
    • +
      Optional options: {
          cause?: T;
          data?: POJO;
          timestamp?: Date;
      }
      +
        +
      • +
        Optional cause?: T
      • +
      • +
        Optional data?: POJO
      • +
      • +
        Optional timestamp?: Date
    +

    Returns ErrorINodesParentMissing<T>

+
+

Properties

+
+ +
cause: T
+

Causation of the exception Can be used to know what caused this exception

-
data: POJO
-

Arbitrary data

-
message: string
name: string
stack?: string
timestamp: Date
-

Timestamp when exception was constructed in milliseconds -May contain microseconds in the fractional part +

+
+ +
data: POJO
+

Arbitrary data

+
+
+ +
message: string
+
+ +
name: string
+
+ +
stack?: string
+
+ +
timestamp: Date
+

Timestamp when exception was constructed in milliseconds Guaranteed to be weakly monotonic

-
description: string = 'Parent INode cannot be found during directory creation'
prepareStackTrace?: (err: Error, stackTraces: CallSite[]) => any

Type declaration

stackTraceLimit: number

Accessors

  • get description(): string
  • Returns string

Methods

  • toJSON(): any
  • -

    Encoding to JSON pojo +

+
+ +
description: string = 'Parent INode cannot be found during directory creation'
+
+ +
prepareStackTrace?: ((err: Error, stackTraces: CallSite[]) => any)
+
+

Type declaration

+
+
+ +
stackTraceLimit: number
+
+

Accessors

+
+ +
    +
  • get description(): string
  • +
  • +

    Returns string

+
+

Methods

+
+ +
    + +
  • +

    Encoding to JSON pojo When overriding this, you can use super.toJSON The replacer will:

    • delete undefined values in objects
    • replace undefined values for null in arrays
    -

Returns any

+
+ +
+
+ +

Type parameters

Parameters

Returns InstanceType<T>

Generated using TypeDoc

\ No newline at end of file + +
+

Type Parameters

+
+
+

Parameters

+
+

Returns InstanceType<T>

+ +
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/functions/inodes.utils.bufferId.html b/docs/functions/inodes.utils.bufferId.html new file mode 100644 index 00000000..0f3ddd0d --- /dev/null +++ b/docs/functions/inodes.utils.bufferId.html @@ -0,0 +1,70 @@ +bufferId | encryptedfs
+
+ +
+
+
+
+ +

Function bufferId

+
+
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/functions/inodes.utils.iNodeId.html b/docs/functions/inodes.utils.iNodeId.html new file mode 100644 index 00000000..b5914b2b --- /dev/null +++ b/docs/functions/inodes.utils.iNodeId.html @@ -0,0 +1,70 @@ +iNodeId | encryptedfs
+
+ +
+
+
+
+ +

Function iNodeId

+
+
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/functions/inodes.utils.unbufferId.html b/docs/functions/inodes.utils.unbufferId.html new file mode 100644 index 00000000..d9028ee6 --- /dev/null +++ b/docs/functions/inodes.utils.unbufferId.html @@ -0,0 +1,70 @@ +unbufferId | encryptedfs
+
+ +
+
+
+
+ +

Function unbufferId

+
+
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/functions/inodes.utils.uniNodeId.html b/docs/functions/inodes.utils.uniNodeId.html new file mode 100644 index 00000000..742079d0 --- /dev/null +++ b/docs/functions/inodes.utils.uniNodeId.html @@ -0,0 +1,70 @@ +uniNodeId | encryptedfs
+
+ +
+
+
+
+ +

Function uniNodeId

+
+
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/functions/utils.applyUmask.html b/docs/functions/utils.applyUmask.html new file mode 100644 index 00000000..00a24f55 --- /dev/null +++ b/docs/functions/utils.applyUmask.html @@ -0,0 +1,99 @@ +applyUmask | encryptedfs
+
+ +
+
+
+
+ +

Function applyUmask

+
+
    + +
  • +

    Applies umask to default set of permissions.

    +
    +
    +

    Parameters

    +
      +
    • +
      perms: number
    • +
    • +
      umask: number
    +

    Returns number

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/functions/utils.blockIndexEnd.html b/docs/functions/utils.blockIndexEnd.html new file mode 100644 index 00000000..b68fbb19 --- /dev/null +++ b/docs/functions/utils.blockIndexEnd.html @@ -0,0 +1,99 @@ +blockIndexEnd | encryptedfs
+
+ +
+
+
+
+ +

Function blockIndexEnd

+
+
    + +
  • +

    Calculates last block index

    +
    +
    +

    Parameters

    +
      +
    • +
      blockIndexStart: number
    • +
    • +
      blockLength: number
    +

    Returns number

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/functions/utils.blockIndexStart.html b/docs/functions/utils.blockIndexStart.html new file mode 100644 index 00000000..44308599 --- /dev/null +++ b/docs/functions/utils.blockIndexStart.html @@ -0,0 +1,99 @@ +blockIndexStart | encryptedfs
+
+ +
+
+
+
+ +

Function blockIndexStart

+
+
    + +
  • +

    Maps the plaintext position to the block index

    +
    +
    +

    Parameters

    +
      +
    • +
      blockSize: number
    • +
    • +
      bytePosition: number
    +

    Returns number

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/functions/utils.blockLength.html b/docs/functions/utils.blockLength.html new file mode 100644 index 00000000..8cf8083f --- /dev/null +++ b/docs/functions/utils.blockLength.html @@ -0,0 +1,102 @@ +blockLength | encryptedfs
+
+ +
+
+
+
+ +

Function blockLength

+
+
    + +
  • +

    Calculates how many blocks need to be written using +the block offset and the plaintext byte length

    +
    +
    +

    Parameters

    +
      +
    • +
      blockSize: number
    • +
    • +
      blockOffset: number
    • +
    • +
      byteLength: number
    +

    Returns number

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/functions/utils.blockOffset.html b/docs/functions/utils.blockOffset.html new file mode 100644 index 00000000..e2ec99a5 --- /dev/null +++ b/docs/functions/utils.blockOffset.html @@ -0,0 +1,99 @@ +blockOffset | encryptedfs
+
+ +
+
+
+
+ +

Function blockOffset

+
+
    + +
  • +

    Maps the plaintest position to the offset from the target block

    +
    +
    +

    Parameters

    +
      +
    • +
      blockSize: number
    • +
    • +
      bytePosition: number
    +

    Returns number

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/functions/utils.blockPositionEnd.html b/docs/functions/utils.blockPositionEnd.html new file mode 100644 index 00000000..b31c0f66 --- /dev/null +++ b/docs/functions/utils.blockPositionEnd.html @@ -0,0 +1,99 @@ +blockPositionEnd | encryptedfs
+
+ +
+
+
+
+ +

Function blockPositionEnd

+
+
    + +
  • +

    Calculates the byte position end from block size and block index

    +
    +
    +

    Parameters

    +
      +
    • +
      blockSize: number
    • +
    • +
      blockIndex: number
    +

    Returns number

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/functions/utils.blockPositionStart.html b/docs/functions/utils.blockPositionStart.html new file mode 100644 index 00000000..00b0d884 --- /dev/null +++ b/docs/functions/utils.blockPositionStart.html @@ -0,0 +1,99 @@ +blockPositionStart | encryptedfs
+
+ +
+
+
+
+ +

Function blockPositionStart

+
+
    + +
  • +

    Calculates the byte position start from block size and block index

    +
    +
    +

    Parameters

    +
      +
    • +
      blockSize: number
    • +
    • +
      blockIndex: number
    +

    Returns number

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/functions/utils.blockRanges.html b/docs/functions/utils.blockRanges.html new file mode 100644 index 00000000..9d167f0e --- /dev/null +++ b/docs/functions/utils.blockRanges.html @@ -0,0 +1,99 @@ +blockRanges | encryptedfs
+
+ +
+
+
+
+ +

Function blockRanges

+
+
    + +
  • +
    +

    Parameters

    +
      +
    • +
      blockLoaded: Set<number>
    • +
    • +
      blockIndexStart: number
    • +
    • +
      blockIndexEnd: number
    +

    Returns [number, number][]

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/functions/utils.callbackAll.html b/docs/functions/utils.callbackAll.html new file mode 100644 index 00000000..3e24ba66 --- /dev/null +++ b/docs/functions/utils.callbackAll.html @@ -0,0 +1,99 @@ +callbackAll | encryptedfs
+
+ +
+
+
+
+ +

Function callbackAll

+
+
    + +
  • +

    Equivalent of Promise.all but for callbacks

    +
    +
    +

    Parameters

    +
      +
    • +
      calls: ((c: Callback<any[], any, Error>) => any)[]
    • +
    • +
      callback: Callback<[any[]], any, Error>
    +

    Returns void

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/functions/utils.checkPermissions.html b/docs/functions/utils.checkPermissions.html new file mode 100644 index 00000000..3dd3be2d --- /dev/null +++ b/docs/functions/utils.checkPermissions.html @@ -0,0 +1,104 @@ +checkPermissions | encryptedfs
+
+ +
+
+
+
+ +

Function checkPermissions

+
+
    + +
  • +

    Checks the desired permissions with user id and group id against the metadata of an iNode. +The desired permissions can be bitwise combinations of constants.R_OK, constants.W_OK and constants.X_OK.

    +
    +
    +

    Parameters

    +
      +
    • +
      access: number
    • +
    • +
      uid: number
    • +
    • +
      gid: number
    • +
    • +
      stat: Stat
    +

    Returns boolean

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/functions/utils.decrypt.html b/docs/functions/utils.decrypt.html new file mode 100644 index 00000000..e83063ad --- /dev/null +++ b/docs/functions/utils.decrypt.html @@ -0,0 +1,97 @@ +decrypt | encryptedfs
+
+ +
+
+
+
+ +

Function decrypt

+
+
    + +
  • +
    +

    Parameters

    +
      +
    • +
      key: ArrayBuffer
    • +
    • +
      cipherText: ArrayBuffer
    +

    Returns Promise<ArrayBuffer | undefined>

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/functions/utils.encrypt.html b/docs/functions/utils.encrypt.html new file mode 100644 index 00000000..fff764ff --- /dev/null +++ b/docs/functions/utils.encrypt.html @@ -0,0 +1,97 @@ +encrypt | encryptedfs
+
+ +
+
+
+
+ +

Function encrypt

+
+
    + +
  • +
    +

    Parameters

    +
      +
    • +
      key: ArrayBuffer
    • +
    • +
      plainText: ArrayBuffer
    +

    Returns Promise<ArrayBuffer>

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/functions/utils.fromArrayBuffer.html b/docs/functions/utils.fromArrayBuffer.html new file mode 100644 index 00000000..9d3acc26 --- /dev/null +++ b/docs/functions/utils.fromArrayBuffer.html @@ -0,0 +1,101 @@ +fromArrayBuffer | encryptedfs
+
+ +
+
+
+
+ +

Function fromArrayBuffer

+
+
    + +
  • +

    Wraps ArrayBuffer in Node Buffer with zero copy

    +
    +
    +

    Parameters

    +
      +
    • +
      b: ArrayBuffer
    • +
    • +
      Optional offset: number
    • +
    • +
      Optional length: number
    +

    Returns Buffer

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/functions/utils.generateKey.html b/docs/functions/utils.generateKey.html new file mode 100644 index 00000000..4123f82a --- /dev/null +++ b/docs/functions/utils.generateKey.html @@ -0,0 +1,95 @@ +generateKey | encryptedfs
+
+ +
+
+
+
+ +

Function generateKey

+
+
    + +
  • +
    +

    Parameters

    +
      +
    • +
      bits: 128 | 256 | 192 = 256
    +

    Returns Promise<Buffer>

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/functions/utils.generateKeyFromPass.html b/docs/functions/utils.generateKeyFromPass.html new file mode 100644 index 00000000..3dfc9369 --- /dev/null +++ b/docs/functions/utils.generateKeyFromPass.html @@ -0,0 +1,99 @@ +generateKeyFromPass | encryptedfs
+
+ +
+
+
+
+ +

Function generateKeyFromPass

+
+
    + +
  • +
    +

    Parameters

    +
      +
    • +
      password: string
    • +
    • +
      Optional salt: string
    • +
    • +
      bits: 128 | 256 | 192 = 256
    +

    Returns Promise<[Buffer, Buffer]>

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/functions/utils.generateKeyFromPassSync.html b/docs/functions/utils.generateKeyFromPassSync.html new file mode 100644 index 00000000..82ffd44c --- /dev/null +++ b/docs/functions/utils.generateKeyFromPassSync.html @@ -0,0 +1,99 @@ +generateKeyFromPassSync | encryptedfs
+
+ +
+
+
+
+ +

Function generateKeyFromPassSync

+
+
    + +
  • +
    +

    Parameters

    +
      +
    • +
      password: string
    • +
    • +
      Optional salt: string
    • +
    • +
      bits: 128 | 256 | 192 = 256
    +

    Returns [Buffer, Buffer]

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/functions/utils.generateKeySync.html b/docs/functions/utils.generateKeySync.html new file mode 100644 index 00000000..efe9a8ed --- /dev/null +++ b/docs/functions/utils.generateKeySync.html @@ -0,0 +1,95 @@ +generateKeySync | encryptedfs
+
+ +
+
+
+
+ +

Function generateKeySync

+
+
    + +
  • +
    +

    Parameters

    +
      +
    • +
      bits: 128 | 256 | 192 = 256
    +

    Returns Buffer

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/functions/utils.getRandomBytes.html b/docs/functions/utils.getRandomBytes.html new file mode 100644 index 00000000..b806b9c2 --- /dev/null +++ b/docs/functions/utils.getRandomBytes.html @@ -0,0 +1,95 @@ +getRandomBytes | encryptedfs
+
+ +
+
+
+
+ +

Function getRandomBytes

+
+
    + +
  • +
    +

    Parameters

    +
      +
    • +
      size: number
    +

    Returns Promise<Buffer>

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/functions/utils.getRandomBytesSync.html b/docs/functions/utils.getRandomBytesSync.html new file mode 100644 index 00000000..374c1e85 --- /dev/null +++ b/docs/functions/utils.getRandomBytesSync.html @@ -0,0 +1,95 @@ +getRandomBytesSync | encryptedfs
+
+ +
+
+
+
+ +

Function getRandomBytesSync

+
+
    + +
  • +
    +

    Parameters

    +
      +
    • +
      size: number
    +

    Returns Buffer

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/functions/utils.maybeCallback.html b/docs/functions/utils.maybeCallback.html new file mode 100644 index 00000000..ec1d11e3 --- /dev/null +++ b/docs/functions/utils.maybeCallback.html @@ -0,0 +1,108 @@ +maybeCallback | encryptedfs
+
+ +
+
+
+
+ +

Function maybeCallback

+
+
    + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T

    +
    +

    Parameters

    +
      +
    • +
      f: (() => Promise<T>)
      +
        +
      • +
          +
        • (): Promise<T>
        • +
        • +

          Returns Promise<T>

    • +
    • +
      Optional callback: Callback<[T], any, Error>
    +

    Returns Promise<T | void>

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/functions/utils.parseOpenFlags.html b/docs/functions/utils.parseOpenFlags.html new file mode 100644 index 00000000..a6c25007 --- /dev/null +++ b/docs/functions/utils.parseOpenFlags.html @@ -0,0 +1,95 @@ +parseOpenFlags | encryptedfs
+
+ +
+
+
+
+ +

Function parseOpenFlags

+
+
    + +
  • +
    +

    Parameters

    +
      +
    • +
      flags: string
    +

    Returns number

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/functions/utils.pathJoin.html b/docs/functions/utils.pathJoin.html new file mode 100644 index 00000000..16ade703 --- /dev/null +++ b/docs/functions/utils.pathJoin.html @@ -0,0 +1,101 @@ +pathJoin | encryptedfs
+
+ +
+
+
+
+ +

Function pathJoin

+
+
    + +
  • +

    Join all arguments together and normalize the resulting path.

    + +

    Throws

    if any of the path segments is not a string.

    +
    +
    +

    Parameters

    +
      +
    • +
      Rest ...paths: string[]
      +

      paths to join.

      +
    +

    Returns string

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/functions/utils.pathResolve.html b/docs/functions/utils.pathResolve.html new file mode 100644 index 00000000..0b3a4651 --- /dev/null +++ b/docs/functions/utils.pathResolve.html @@ -0,0 +1,106 @@ +pathResolve | encryptedfs
+
+ +
+
+
+
+ +

Function pathResolve

+
+
    + +
  • +

    The right-most parameter is considered {to}. Other parameters are considered an array of {from}.

    +

    Starting from leftmost {from} parameter, resolves {to} to an absolute path.

    +

    If {to} isn't already absolute, {from} arguments are prepended in right to left order, +until an absolute path is found. If after using all {from} paths still no absolute path is found, +the current working directory is used as well. The resulting path is normalized, +and trailing slashes are removed unless the path gets resolved to the root directory.

    + +

    Throws

    if any of the arguments is not a string.

    +
    +
    +

    Parameters

    +
      +
    • +
      Rest ...paths: string[]
      +

      A sequence of paths or path segments.

      +
    +

    Returns string

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/functions/utils.promise.html b/docs/functions/utils.promise.html new file mode 100644 index 00000000..2826b4da --- /dev/null +++ b/docs/functions/utils.promise.html @@ -0,0 +1,124 @@ +promise | encryptedfs
+
+ +
+
+
+
+ +

Function promise

+
+
    + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T

    +

    Returns {
        p: Promise<T>;
        rejectP: ((reason?: any) => void);
        resolveP: ((value: T | PromiseLike<T>) => void);
    }

    +
      +
    • +
      p: Promise<T>
    • +
    • +
      rejectP: ((reason?: any) => void)
      +
        +
      • +
          +
        • (reason?: any): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Optional reason: any
          +

          Returns void

    • +
    • +
      resolveP: ((value: T | PromiseLike<T>) => void)
      +
        +
      • +
          +
        • (value: T | PromiseLike<T>): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            value: T | PromiseLike<T>
          +

          Returns void

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/functions/utils.promisify.html b/docs/functions/utils.promisify.html new file mode 100644 index 00000000..19948fe2 --- /dev/null +++ b/docs/functions/utils.promisify.html @@ -0,0 +1,111 @@ +promisify | encryptedfs
+
+ +
+
+
+
+ +

Function promisify

+
+
    + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T

    +
    +

    Parameters

    +
      +
    • +
      f: any
    +

    Returns ((...args: any[]) => Promise<T>)

    +
      +
    • +
        +
      • (...args: any[]): Promise<T>
      • +
      • +
        +

        Parameters

        +
          +
        • +
          Rest ...args: any[]
        +

        Returns Promise<T>

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/functions/utils.range.html b/docs/functions/utils.range.html new file mode 100644 index 00000000..3189bfc2 --- /dev/null +++ b/docs/functions/utils.range.html @@ -0,0 +1,99 @@ +range | encryptedfs
+
+ +
+
+
+
+ +

Function range

+
+
    + +
  • +
    +

    Parameters

    +
      +
    • +
      start: number
    • +
    • +
      Optional stop: number
    • +
    • +
      step: number = 1
    +

    Returns Generator<number>

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/functions/utils.segmentBuffer.html b/docs/functions/utils.segmentBuffer.html new file mode 100644 index 00000000..97254013 --- /dev/null +++ b/docs/functions/utils.segmentBuffer.html @@ -0,0 +1,97 @@ +segmentBuffer | encryptedfs
+
+ +
+
+
+
+ +

Function segmentBuffer

+
+
    + +
  • +
    +

    Parameters

    +
      +
    • +
      blockSize: number
    • +
    • +
      buffer: Buffer
    +

    Returns Buffer[]

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/functions/utils.toArrayBuffer.html b/docs/functions/utils.toArrayBuffer.html new file mode 100644 index 00000000..222671a0 --- /dev/null +++ b/docs/functions/utils.toArrayBuffer.html @@ -0,0 +1,97 @@ +toArrayBuffer | encryptedfs
+
+ +
+
+
+
+ +

Function toArrayBuffer

+
+
    + +
  • +

    Slice-copies the Node Buffer to a new ArrayBuffer

    +
    +
    +

    Parameters

    +
      +
    • +
      b: Buffer
    +

    Returns ArrayBuffer

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 65b8d6e0..d4ab0223 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,4 +1,18 @@ -encryptedfs
Options
All
  • Public
  • Public/Protected
  • All
Menu

encryptedfs

+encryptedfs
+
+ +
+
+
+
+

encryptedfs

+

js-encryptedfs

@@ -18,13 +32,13 @@

js-encryptedfs

Installation

-
npm install --save encryptedfs
+
npm install --save encryptedfs
 

Usage

-
import type { EFSWorkerModule } from 'encryptedfs';

import { WorkerManager } from '@matrixai/workers';
import { EncryptedFS, utils } from 'encryptedfs';

const key = utils.generateKeySync(256);

const efs = await EncryptedFS.createEncryptedFS({
dbPath: '/tmp/efs',
dbKey: key,
});

// optionally set up the worker manager for multi-threaded encryption/decryption
const workerManager = await WorkerManager.createWorkerManager<EFSWorkerModule>({
workerFactory: () => spawn(new Worker('./src/workers/efsWorker'))
});

efs.setWorkerManager(workerManager);

// create a new directory
const newDir = `test`;
await efs.mkdir(newDir);

// write out to a file
await efs.writeFile(`${newDir}/testFile`, 'output');

// read in the file (contents = 'output')
const contents = await efs.readFile(`${newDir}/testFile`);

// closes the EFS
await efs.stop();

// destroys the EFS state
await efs.destroy(); +
import type { EFSWorkerModule } from 'encryptedfs';

import { WorkerManager } from '@matrixai/workers';
import { EncryptedFS, utils } from 'encryptedfs';

const key = utils.generateKeySync(256);

const efs = await EncryptedFS.createEncryptedFS({
dbPath: '/tmp/efs',
dbKey: key,
});

// optionally set up the worker manager for multi-threaded encryption/decryption
const workerManager = await WorkerManager.createWorkerManager<EFSWorkerModule>({
workerFactory: () => spawn(new Worker('./src/workers/efsWorker'))
});

efs.setWorkerManager(workerManager);

// create a new directory
const newDir = `test`;
await efs.mkdir(newDir);

// write out to a file
await efs.writeFile(`${newDir}/testFile`, 'output');

// read in the file (contents = 'output')
const contents = await efs.readFile(`${newDir}/testFile`);

// closes the EFS
await efs.stop();

// destroys the EFS state
await efs.destroy();
@@ -40,14 +54,14 @@

Encryption & Decryption Protocol

  • generateKeyFromPassSync - derived from user-provided "password" synchronous
  • For example:

    -
    const [key, salt] = await generateKeyFromPass('secure password');
    +
    const [key, salt] = await generateKeyFromPass('secure password');
     

    This uses PBKDF2 to derive a symmetric key. The default key length will be 256 bits. For deterministic key generation, make sure to specify the salt parameter.

    -
    const [key, salt] = await generateKeyFromPass('secure password', 'salt');
    +
    const [key, salt] = await generateKeyFromPass('secure password', 'salt');
     

    Construction of EncryptedFS relies on an optional blockSize parameter. This is by default set to 4 KiB. All files are broken up into 4 KiB plaintext blocks. When encrypted, they are persisted as ciphertext blocks.

    The ciphertext blocks contain an initialization vector plus an authorisation tag. Here is an example of the structure:

    -
    | iv (16 bytes) | authTag (16 bytes) | ciphertext data (x bytes) |
    +
    | iv (16 bytes) | authTag (16 bytes) | ciphertext data (x bytes) |
     

    The ciphertext data length is equal to the plaintext block length.

    @@ -65,20 +79,20 @@

    Differences with Node Filesystem

    Development

    Run nix-shell, and once you're inside, you can use:

    -
    # install (or reinstall packages from package.json)
    npm install
    # build the dist
    npm run build
    # run the repl (this allows you to import from ./src)
    npm run ts-node
    # run the tests
    npm run test
    # lint the source code
    npm run lint
    # automatically fix the source
    npm run lintfix +
    # install (or reinstall packages from package.json)
    npm install
    # build the dist
    npm run build
    # run the repl (this allows you to import from ./src)
    npm run ts-node
    # run the tests
    npm run test
    # lint the source code
    npm run lint
    # automatically fix the source
    npm run lintfix

    Benchmarks

    -
    npm run bench
    +
    npm run bench
     

    View benchmarks here: https://github.com/MatrixAI/js-encryptedfs/blob/master/benches/results with https://raw.githack.com/

    Docs Generation

    -
    npm run docs
    +
    npm run docs
     

    See the docs at: https://matrixai.github.io/js-encryptedfs/

    @@ -87,12 +101,65 @@

    Publishing

    Publishing is handled automatically by the staging pipeline.

    Prerelease:

    -
    # npm login
    npm version prepatch --preid alpha # premajor/preminor/prepatch
    git push --follow-tags +
    # npm login
    npm version prepatch --preid alpha # premajor/preminor/prepatch
    git push --follow-tags

    Release:

    -
    # npm login
    npm version patch # major/minor/patch
    git push --follow-tags +
    # npm login
    npm version patch # major/minor/patch
    git push --follow-tags

    Manually:

    -
    # npm login
    npm version patch # major/minor/patch
    npm run build
    npm publish --access public
    git push
    git push --tags +
    # npm login
    npm version patch # major/minor/patch
    npm run build
    npm publish --access public
    git push
    git push --tags
    -

    Legend

    • Constructor
    • Property
    • Method
    • Inherited constructor
    • Inherited method
    • Protected property
    • Protected method
    • Method
    • Static method

    Settings

    Theme

    Generated using TypeDoc

    \ No newline at end of file +
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/interfaces/ToString.html b/docs/interfaces/ToString.html index 4ac6f6ad..ee77b29e 100644 --- a/docs/interfaces/ToString.html +++ b/docs/interfaces/ToString.html @@ -1,3 +1,83 @@ -ToString | encryptedfs
    Options
    All
    • Public
    • Public/Protected
    • All
    Menu

    Interface ToString

    -

    Any type that can be turned into a string

    -

    Hierarchy

    • ToString

    Index

    Methods

    Methods

    • toString(): string

    Legend

    • Constructor
    • Property
    • Method
    • Inherited constructor
    • Inherited method
    • Protected property
    • Protected method
    • Method
    • Static method

    Settings

    Theme

    Generated using TypeDoc

    \ No newline at end of file +ToString | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Interface ToString

    +
    +

    Any type that can be turned into a string

    +
    +
    +

    Hierarchy

    +
      +
    • ToString
    +
    +
    +
    + +
    +
    +

    Methods

    +
    +
    +

    Methods

    +
    + +
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/modules.html b/docs/modules.html index 5ce598f3..7d392223 100644 --- a/docs/modules.html +++ b/docs/modules.html @@ -1,19 +1,115 @@ -encryptedfs
    Options
    All
    • Public
    • Public/Protected
    • All
    Menu

    encryptedfs

    Index

    References

    Re-exports EFSWorkerModule

    Type aliases

    Callback<P, R, E>: { (e: E, ...params: Partial<P>): R; (e?: null, ...params: P): R }

    Type parameters

    • P: any[] = []

    • R = any

    • E: Error = Error

    Type declaration

      • (e: E, ...params: Partial<P>): R
      • (e?: null, ...params: P): R
      • -

        Generic callback

        -

        Parameters

        • e: E
        • Rest ...params: Partial<P>

        Returns R

      • -

        Generic callback

        -

        Parameters

        • Optional e: null
        • Rest ...params: P

        Returns R

    Data: string | Buffer | Uint8Array
    EFSWorkerManagerInterface: WorkerManagerInterface<EFSWorkerModule>
    File: FdIndex | Path
    FunctionProperties<T>: Pick<T, FunctionPropertyNames<T>>
    -

    Functional properties of an object

    -

    Type parameters

    • T

    Navigated: { dir: INodeIndex; name: string; pathStack: string[]; remaining: string; target: INodeIndex | undefined }

    Type declaration

    NonEmptyArray<T>: [T, ...T[]]
    -

    Non-empty array

    -

    Type parameters

    • T

    NonFunctionProperties<T>: Pick<T, NonFunctionPropertyNames<T>>
    -

    Non-functional properties of an object

    -

    Type parameters

    • T

    Opaque<K, T>: T & { __TYPE__: K }
    -

    Opaque types are wrappers of existing types -that require smart constructors

    -

    Type parameters

    • K

    • T

    Options: { encoding?: BufferEncoding; flag?: string; mode?: number; recursive?: boolean }

    Type declaration

    • Optional encoding?: BufferEncoding
    • Optional flag?: string
    • Optional mode?: number
    • Optional recursive?: boolean
    POJO: {}
    -

    Plain data dictionary

    -

    Type declaration

    • [key: string]: any
    ParsedPath: { rest: string; segment: string }

    Type declaration

    • rest: string
    • segment: string
    Path: string | Buffer | URL
    Ref<T>: { count: number; value: T }
    -

    Wrap a type to be reference counted -Useful for when we need to garbage collect data

    -

    Type parameters

    • T

    Type declaration

    • count: number
    • value: T

    Legend

    • Constructor
    • Property
    • Method
    • Inherited constructor
    • Inherited method
    • Protected property
    • Protected method
    • Method
    • Static method

    Settings

    Theme

    Generated using TypeDoc

    \ No newline at end of file +encryptedfs
    +
    + +
    +
    +
    +
    +

    encryptedfs

    +
    +
    +
    + +
    +
    +

    References

    +
    +Re-exports EFSWorkerModule
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/modules/constants.html b/docs/modules/constants.html index 1b5b5813..e4887276 100644 --- a/docs/modules/constants.html +++ b/docs/modules/constants.html @@ -1 +1,150 @@ -constants | encryptedfs
    Options
    All
    • Public
    • Public/Protected
    • All
    Menu

    Namespace constants

    Index

    Variables

    COPYFILE_EXCL: 1 = 1
    F_OK: 0 = 0
    MAP_PRIVATE: 2 = 2
    MAP_SHARED: 1 = 1
    O_ACCMODE: 3 = 3
    O_APPEND: 1024 = 1024
    O_CREAT: 64 = 64
    O_DIRECT: 16384 = 16384
    O_DIRECTORY: 65536 = 65536
    O_EXCL: 128 = 128
    O_NOATIME: 262144 = 262144
    O_NOCTTY: 256 = 256
    O_NOFOLLOW: 131072 = 131072
    O_NONBLOCK: 2048 = 2048
    O_RDONLY: 0 = 0
    O_RDWR: 2 = 2
    O_SYNC: 1052672 = 1052672
    O_TRUNC: 512 = 512
    O_WRONLY: 1 = 1
    R_OK: 4 = 4
    SEEK_CUR: 1 = 1
    SEEK_END: 2 = 2
    SEEK_SET: 0 = 0
    S_IFBLK: 24576 = 24576
    S_IFCHR: 8192 = 8192
    S_IFDIR: 16384 = 16384
    S_IFIFO: 4096 = 4096
    S_IFLNK: 40960 = 40960
    S_IFMT: 61440 = 61440
    S_IFREG: 32768 = 32768
    S_IFSOCK: 49152 = 49152
    S_IRGRP: 32 = 32
    S_IROTH: 4 = 4
    S_IRUSR: 256 = 256
    S_IRWXG: 56 = 56
    S_IRWXO: 7 = 7
    S_IRWXU: 448 = 448
    S_IWGRP: 16 = 16
    S_IWOTH: 2 = 2
    S_IWUSR: 128 = 128
    S_IXGRP: 8 = 8
    S_IXOTH: 1 = 1
    S_IXUSR: 64 = 64
    W_OK: 2 = 2
    X_OK: 1 = 1

    Legend

    • Constructor
    • Property
    • Method
    • Inherited constructor
    • Inherited method
    • Protected property
    • Protected method
    • Method
    • Static method

    Settings

    Theme

    Generated using TypeDoc

    \ No newline at end of file +constants | encryptedfs
    +
    + +
    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/modules/errors.html b/docs/modules/errors.html index 23132c45..3570da5c 100644 --- a/docs/modules/errors.html +++ b/docs/modules/errors.html @@ -1 +1,72 @@ -errors | encryptedfs
    Options
    All
    • Public
    • Public/Protected
    • All
    Menu

    Namespace errors

    Legend

    • Constructor
    • Property
    • Method
    • Inherited constructor
    • Inherited method
    • Protected property
    • Protected method
    • Method
    • Static method

    Settings

    Theme

    Generated using TypeDoc

    \ No newline at end of file +errors | encryptedfs
    +
    + +
    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/modules/inodes.errors.html b/docs/modules/inodes.errors.html index 7a284c55..ea463d22 100644 --- a/docs/modules/inodes.errors.html +++ b/docs/modules/inodes.errors.html @@ -1 +1,77 @@ -errors | encryptedfs
    Options
    All
    • Public
    • Public/Protected
    • All
    Menu

    Namespace errors

    Legend

    • Constructor
    • Property
    • Method
    • Inherited constructor
    • Inherited method
    • Protected property
    • Protected method
    • Method
    • Static method

    Settings

    Theme

    Generated using TypeDoc

    \ No newline at end of file +errors | encryptedfs
    +
    + +
    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/modules/inodes.html b/docs/modules/inodes.html index e5517c83..b5d8b794 100644 --- a/docs/modules/inodes.html +++ b/docs/modules/inodes.html @@ -1 +1,84 @@ -inodes | encryptedfs
    Options
    All
    • Public
    • Public/Protected
    • All
    Menu

    Namespace inodes

    Index

    Type aliases

    BufferId: Opaque<"BufferId", Buffer>
    BufferIndex: number
    INodeData: { gc: boolean; ino: INodeIndex; type: INodeType }

    Type declaration

    INodeId: Opaque<"INodeId", Buffer>
    INodeIndex: Opaque<"INodeIndex", number>
    INodeParams: Partial<StatProps> & Pick<StatProps, "ino" | "mode">
    INodeType: "File" | "Directory" | "Symlink"

    Legend

    • Constructor
    • Property
    • Method
    • Inherited constructor
    • Inherited method
    • Protected property
    • Protected method
    • Method
    • Static method

    Settings

    Theme

    Generated using TypeDoc

    \ No newline at end of file +inodes | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Namespace inodes

    +
    +
    +

    Index

    +
    +

    Namespaces

    +
    +
    +

    Classes

    +
    +
    +

    Type Aliases

    +
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/modules/inodes.utils.html b/docs/modules/inodes.utils.html index 5d94eb46..2cd20c27 100644 --- a/docs/modules/inodes.utils.html +++ b/docs/modules/inodes.utils.html @@ -1 +1,69 @@ -utils | encryptedfs
    Options
    All
    • Public
    • Public/Protected
    • All
    Menu

    Namespace utils

    Index

    Functions

    Legend

    • Constructor
    • Property
    • Method
    • Inherited constructor
    • Inherited method
    • Protected property
    • Protected method
    • Method
    • Static method

    Settings

    Theme

    Generated using TypeDoc

    \ No newline at end of file +utils | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Namespace utils

    +
    +
    +

    Index

    +
    +

    Functions

    +
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/modules/permissions.html b/docs/modules/permissions.html index b8bac76c..4d421b24 100644 --- a/docs/modules/permissions.html +++ b/docs/modules/permissions.html @@ -1,13 +1,72 @@ -permissions | encryptedfs
    Options
    All
    • Public
    • Public/Protected
    • All
    Menu

    Namespace permissions

    Index

    Variables

    DEFAULT_DIRECTORY_PERM: number = ...
    -

    Default directory permissions of rwxrwxrwx.

    -
    DEFAULT_FILE_PERM: number = ...
    -

    Default file permissions of rw-rw-rw-.

    -
    DEFAULT_ROOT_GID: 0 = 0
    -

    Default root gid.

    -
    DEFAULT_ROOT_PERM: number = ...
    -

    Default root directory permissions of rwxr-xr-x.

    -
    DEFAULT_ROOT_UID: 0 = 0
    -

    Default root uid.

    -
    DEFAULT_SYMLINK_PERM: number = ...
    -

    Default symlink permissions of rwxrwxrwx.

    -

    Legend

    • Constructor
    • Property
    • Method
    • Inherited constructor
    • Inherited method
    • Protected property
    • Protected method
    • Method
    • Static method

    Settings

    Theme

    Generated using TypeDoc

    \ No newline at end of file +permissions | encryptedfs
    +
    + +
    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/modules/utils.html b/docs/modules/utils.html index 93b515fa..5deb379e 100644 --- a/docs/modules/utils.html +++ b/docs/modules/utils.html @@ -1,25 +1,123 @@ -utils | encryptedfs
    Options
    All
    • Public
    • Public/Protected
    • All
    Menu

    Namespace utils

    Index

    Variables

    authTagSize: 16 = 16
    ivSize: 16 = 16

    Functions

    • applyUmask(perms: number, umask: number): number
    • -

      Applies umask to default set of permissions.

      -

      Parameters

      • perms: number
      • umask: number

      Returns number

    • blockIndexEnd(blockIndexStart: number, blockLength: number): number
    • -

      Calculates last block index

      -

      Parameters

      • blockIndexStart: number
      • blockLength: number

      Returns number

    • blockIndexStart(blockSize: number, bytePosition: number): number
    • -

      Maps the plaintext position to the block index

      -

      Parameters

      • blockSize: number
      • bytePosition: number

      Returns number

    • blockLength(blockSize: number, blockOffset: number, byteLength: number): number
    • -

      Calculates how many blocks need to be written using -the block offset and the plaintext byte length

      -

      Parameters

      • blockSize: number
      • blockOffset: number
      • byteLength: number

      Returns number

    • blockOffset(blockSize: number, bytePosition: number): number
    • -

      Maps the plaintest position to the offset from the target block

      -

      Parameters

      • blockSize: number
      • bytePosition: number

      Returns number

    • blockPositionEnd(blockSize: number, blockIndex: number): number
    • -

      Calculates the byte position end from block size and block index

      -

      Parameters

      • blockSize: number
      • blockIndex: number

      Returns number

    • blockPositionStart(blockSize: number, blockIndex: number): number
    • -

      Calculates the byte position start from block size and block index

      -

      Parameters

      • blockSize: number
      • blockIndex: number

      Returns number

    • blockRanges(blockLoaded: Set<number>, blockIndexStart: number, blockIndexEnd: number): [number, number][]
    • Parameters

      • blockLoaded: Set<number>
      • blockIndexStart: number
      • blockIndexEnd: number

      Returns [number, number][]

    • callbackAll(calls: ((c: Callback<any[], any, Error>) => any)[], callback: Callback<[any[]], any, Error>): void
    • -

      Equivalent of Promise.all but for callbacks

      -

      Parameters

      • calls: ((c: Callback<any[], any, Error>) => any)[]
      • callback: Callback<[any[]], any, Error>

      Returns void

    • checkPermissions(access: number, uid: number, gid: number, stat: Stat): boolean
    • -

      Checks the desired permissions with user id and group id against the metadata of an iNode. -The desired permissions can be bitwise combinations of constants.R_OK, constants.W_OK and constants.X_OK.

      -

      Parameters

      • access: number
      • uid: number
      • gid: number
      • stat: Stat

      Returns boolean

    • decrypt(key: ArrayBuffer, cipherText: ArrayBuffer): Promise<ArrayBuffer | undefined>
    • Parameters

      • key: ArrayBuffer
      • cipherText: ArrayBuffer

      Returns Promise<ArrayBuffer | undefined>

    • encrypt(key: ArrayBuffer, plainText: ArrayBuffer): Promise<ArrayBuffer>
    • Parameters

      • key: ArrayBuffer
      • plainText: ArrayBuffer

      Returns Promise<ArrayBuffer>

    • fromArrayBuffer(b: ArrayBuffer, offset?: number, length?: number): Buffer
    • -

      Wraps ArrayBuffer in Node Buffer with zero copy

      -

      Parameters

      • b: ArrayBuffer
      • Optional offset: number
      • Optional length: number

      Returns Buffer

    • generateKey(bits?: 128 | 256 | 192): Promise<Buffer>
    • Parameters

      • bits: 128 | 256 | 192 = 256

      Returns Promise<Buffer>

    • generateKeyFromPass(password: string, salt?: string, bits?: 128 | 256 | 192): Promise<[Buffer, Buffer]>
    • Parameters

      • password: string
      • Optional salt: string
      • bits: 128 | 256 | 192 = 256

      Returns Promise<[Buffer, Buffer]>

    • generateKeyFromPassSync(password: string, salt?: string, bits?: 128 | 256 | 192): [Buffer, Buffer]
    • Parameters

      • password: string
      • Optional salt: string
      • bits: 128 | 256 | 192 = 256

      Returns [Buffer, Buffer]

    • generateKeySync(bits?: 128 | 256 | 192): Buffer
    • Parameters

      • bits: 128 | 256 | 192 = 256

      Returns Buffer

    • getRandomBytes(size: number): Promise<Buffer>
    • getRandomBytesSync(size: number): Buffer
    • maybeCallback<T>(f: () => Promise<T>, callback?: Callback<[T], any, Error>): Promise<T | void>
    • Type parameters

      • T

      Parameters

      • f: () => Promise<T>
          • (): Promise<T>
          • Returns Promise<T>

      • Optional callback: Callback<[T], any, Error>

      Returns Promise<T | void>

    • parseOpenFlags(flags: string): number
    • pathJoin(...paths: string[]): string
    • pathResolve(...pathSegments: string[]): string
    • Parameters

      • Rest ...pathSegments: string[]

      Returns string

    • promise<T>(): { p: Promise<T>; rejectP: any; resolveP: any }
    • Type parameters

      • T

      Returns { p: Promise<T>; rejectP: any; resolveP: any }

      • p: Promise<T>
      • rejectP:function
        • rejectP(reason?: any): void
      • resolveP:function
        • resolveP(value: T | PromiseLike<T>): void
    • promisify<T>(f: any): (...args: any[]) => Promise<T>
    • Type parameters

      • T

      Parameters

      • f: any

      Returns (...args: any[]) => Promise<T>

        • (...args: any[]): Promise<T>
        • Parameters

          • Rest ...args: any[]

          Returns Promise<T>

    • range(start: number, stop?: number, step?: number): Generator<number>
    • Parameters

      • start: number
      • Optional stop: number
      • step: number = 1

      Returns Generator<number>

    • segmentBuffer(blockSize: number, buffer: Buffer): Buffer[]
    • Parameters

      • blockSize: number
      • buffer: Buffer

      Returns Buffer[]

    • toArrayBuffer(b: Buffer): ArrayBuffer
    • -

      Slice-copies the Node Buffer to a new ArrayBuffer

      -

      Parameters

      • b: Buffer

      Returns ArrayBuffer

    Legend

    • Constructor
    • Property
    • Method
    • Inherited constructor
    • Inherited method
    • Protected property
    • Protected method
    • Method
    • Static method

    Settings

    Theme

    Generated using TypeDoc

    \ No newline at end of file +utils | encryptedfs
    +
    + +
    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/modules/workers.html b/docs/modules/workers.html index 66d3d38c..a4b578a1 100644 --- a/docs/modules/workers.html +++ b/docs/modules/workers.html @@ -1 +1,67 @@ -workers | encryptedfs
    Options
    All
    • Public
    • Public/Protected
    • All
    Menu

    Namespace workers

    Index

    Type aliases

    Variables

    Type aliases

    EFSWorkerModule: typeof efsWorkerModule

    Variables

    efsWorkerModule: { decrypt: any; encrypt: any } = ...

    Type declaration

    • decrypt:function
      • decrypt(key: ArrayBuffer, cipherText: ArrayBuffer): Promise<undefined | TransferDescriptor<ArrayBuffer>>
    • encrypt:function
      • encrypt(key: ArrayBuffer, plainText: ArrayBuffer): Promise<TransferDescriptor<ArrayBuffer>>

    Legend

    • Constructor
    • Property
    • Method
    • Inherited constructor
    • Inherited method
    • Protected property
    • Protected method
    • Method
    • Static method

    Settings

    Theme

    Generated using TypeDoc

    \ No newline at end of file +workers | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Namespace workers

    +
    +
    +

    Index

    +
    +

    Type Aliases

    +
    +
    +

    Variables

    +
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/Callback.html b/docs/types/Callback.html new file mode 100644 index 00000000..2d2a3627 --- /dev/null +++ b/docs/types/Callback.html @@ -0,0 +1,111 @@ +Callback | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Type alias Callback<P, R, E>

    +
    Callback<P, R, E>: {
        (e: E, ...params: Partial<P>): R;
        (e?: null, ...params: P): R;
    }
    +
    +

    Type Parameters

    +
      +
    • +

      P extends any[] = []

    • +
    • +

      R = any

    • +
    • +

      E extends Error = Error

    +
    +

    Type declaration

    +
      +
    • +
        +
      • (e: E, ...params: Partial<P>): R
      • +
      • +

        Generic callback

        +
        +
        +

        Parameters

        +
          +
        • +
          e: E
        • +
        • +
          Rest ...params: Partial<P>
        +

        Returns R

      • +
      • (e?: null, ...params: P): R
      • +
      • +

        Generic callback

        +
        +
        +

        Parameters

        +
          +
        • +
          Optional e: null
        • +
        • +
          Rest ...params: P
        +

        Returns R

    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/Data.html b/docs/types/Data.html new file mode 100644 index 00000000..9d09cb63 --- /dev/null +++ b/docs/types/Data.html @@ -0,0 +1,73 @@ +Data | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Type alias Data

    +
    Data: string | Buffer | Uint8Array
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/EFSWorkerManagerInterface.html b/docs/types/EFSWorkerManagerInterface.html new file mode 100644 index 00000000..ff10b70b --- /dev/null +++ b/docs/types/EFSWorkerManagerInterface.html @@ -0,0 +1,73 @@ +EFSWorkerManagerInterface | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Type alias EFSWorkerManagerInterface

    +
    EFSWorkerManagerInterface: WorkerManagerInterface<EFSWorkerModule>
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/File.html b/docs/types/File.html new file mode 100644 index 00000000..f1e334cb --- /dev/null +++ b/docs/types/File.html @@ -0,0 +1,73 @@ +File | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Type alias File

    +
    File: FdIndex | Path
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/FunctionProperties.html b/docs/types/FunctionProperties.html new file mode 100644 index 00000000..9973d984 --- /dev/null +++ b/docs/types/FunctionProperties.html @@ -0,0 +1,80 @@ +FunctionProperties | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Type alias FunctionProperties<T>

    +
    FunctionProperties<T>: Pick<T, FunctionPropertyNames<T>>
    +

    Functional properties of an object

    +
    +
    +

    Type Parameters

    +
      +
    • +

      T

    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/Navigated.html b/docs/types/Navigated.html new file mode 100644 index 00000000..3f57ec8a --- /dev/null +++ b/docs/types/Navigated.html @@ -0,0 +1,86 @@ +Navigated | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Type alias Navigated

    +
    Navigated: {
        dir: INodeIndex;
        name: string;
        pathStack: string[];
        remaining: string;
        target: INodeIndex | undefined;
    }
    +
    +

    Type declaration

    +
      +
    • +
      dir: INodeIndex
    • +
    • +
      name: string
    • +
    • +
      pathStack: string[]
    • +
    • +
      remaining: string
    • +
    • +
      target: INodeIndex | undefined
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/NonEmptyArray.html b/docs/types/NonEmptyArray.html new file mode 100644 index 00000000..b8c4c35f --- /dev/null +++ b/docs/types/NonEmptyArray.html @@ -0,0 +1,80 @@ +NonEmptyArray | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Type alias NonEmptyArray<T>

    +
    NonEmptyArray<T>: [T, ...T[]]
    +

    Non-empty array

    +
    +
    +

    Type Parameters

    +
      +
    • +

      T

    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/NonFunctionProperties.html b/docs/types/NonFunctionProperties.html new file mode 100644 index 00000000..860bb40d --- /dev/null +++ b/docs/types/NonFunctionProperties.html @@ -0,0 +1,80 @@ +NonFunctionProperties | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Type alias NonFunctionProperties<T>

    +
    NonFunctionProperties<T>: Pick<T, NonFunctionPropertyNames<T>>
    +

    Non-functional properties of an object

    +
    +
    +

    Type Parameters

    +
      +
    • +

      T

    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/Opaque.html b/docs/types/Opaque.html new file mode 100644 index 00000000..8da0b9de --- /dev/null +++ b/docs/types/Opaque.html @@ -0,0 +1,83 @@ +Opaque | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Type alias Opaque<K, T>

    +
    Opaque<K, T>: T & {
        __TYPE__: K;
    }
    +

    Opaque types are wrappers of existing types +that require smart constructors

    +
    +
    +

    Type Parameters

    +
      +
    • +

      K

    • +
    • +

      T

    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/Options.html b/docs/types/Options.html new file mode 100644 index 00000000..c313d728 --- /dev/null +++ b/docs/types/Options.html @@ -0,0 +1,84 @@ +Options | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Type alias Options

    +
    Options: {
        encoding?: BufferEncoding;
        flag?: string;
        mode?: number;
        recursive?: boolean;
    }
    +
    +

    Type declaration

    +
      +
    • +
      Optional encoding?: BufferEncoding
    • +
    • +
      Optional flag?: string
    • +
    • +
      Optional mode?: number
    • +
    • +
      Optional recursive?: boolean
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/POJO.html b/docs/types/POJO.html new file mode 100644 index 00000000..c73bd5b2 --- /dev/null +++ b/docs/types/POJO.html @@ -0,0 +1,80 @@ +POJO | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Type alias POJO

    +
    POJO: {
        [key: string]: any;
    }
    +

    Plain data dictionary

    +
    +
    +

    Type declaration

    +
      +
    • +
      [key: string]: any
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/ParsedPath.html b/docs/types/ParsedPath.html new file mode 100644 index 00000000..37fca19a --- /dev/null +++ b/docs/types/ParsedPath.html @@ -0,0 +1,80 @@ +ParsedPath | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Type alias ParsedPath

    +
    ParsedPath: {
        rest: string;
        segment: string;
    }
    +
    +

    Type declaration

    +
      +
    • +
      rest: string
    • +
    • +
      segment: string
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/Path.html b/docs/types/Path.html new file mode 100644 index 00000000..4a2f76ea --- /dev/null +++ b/docs/types/Path.html @@ -0,0 +1,73 @@ +Path | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Type alias Path

    +
    Path: string | Buffer | URL
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/Ref.html b/docs/types/Ref.html new file mode 100644 index 00000000..f011ce9e --- /dev/null +++ b/docs/types/Ref.html @@ -0,0 +1,88 @@ +Ref | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Type alias Ref<T>

    +
    Ref<T>: {
        count: number;
        value: T;
    }
    +

    Wrap a type to be reference counted +Useful for when we need to garbage collect data

    +
    +
    +

    Type Parameters

    +
      +
    • +

      T

    +
    +

    Type declaration

    +
      +
    • +
      count: number
    • +
    • +
      value: T
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/inodes.BufferId.html b/docs/types/inodes.BufferId.html new file mode 100644 index 00000000..e06fef5e --- /dev/null +++ b/docs/types/inodes.BufferId.html @@ -0,0 +1,64 @@ +BufferId | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Type alias BufferId

    +
    BufferId: Opaque<"BufferId", Buffer>
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/inodes.BufferIndex.html b/docs/types/inodes.BufferIndex.html new file mode 100644 index 00000000..f4199e3d --- /dev/null +++ b/docs/types/inodes.BufferIndex.html @@ -0,0 +1,64 @@ +BufferIndex | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Type alias BufferIndex

    +
    BufferIndex: number
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/inodes.INodeData.html b/docs/types/inodes.INodeData.html new file mode 100644 index 00000000..b9b17adf --- /dev/null +++ b/docs/types/inodes.INodeData.html @@ -0,0 +1,73 @@ +INodeData | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Type alias INodeData

    +
    INodeData: {
        gc: boolean;
        ino: INodeIndex;
        type: INodeType;
    }
    +
    +

    Type declaration

    +
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/inodes.INodeId.html b/docs/types/inodes.INodeId.html new file mode 100644 index 00000000..4bb6db39 --- /dev/null +++ b/docs/types/inodes.INodeId.html @@ -0,0 +1,64 @@ +INodeId | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Type alias INodeId

    +
    INodeId: Opaque<"INodeId", Buffer>
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/inodes.INodeIndex.html b/docs/types/inodes.INodeIndex.html new file mode 100644 index 00000000..32ae4fc0 --- /dev/null +++ b/docs/types/inodes.INodeIndex.html @@ -0,0 +1,64 @@ +INodeIndex | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Type alias INodeIndex

    +
    INodeIndex: Opaque<"INodeIndex", number>
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/inodes.INodeParams.html b/docs/types/inodes.INodeParams.html new file mode 100644 index 00000000..073b4a58 --- /dev/null +++ b/docs/types/inodes.INodeParams.html @@ -0,0 +1,64 @@ +INodeParams | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Type alias INodeParams

    +
    INodeParams: Partial<StatProps> & Pick<StatProps, "ino" | "mode">
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/inodes.INodeType.html b/docs/types/inodes.INodeType.html new file mode 100644 index 00000000..a8acf694 --- /dev/null +++ b/docs/types/inodes.INodeType.html @@ -0,0 +1,64 @@ +INodeType | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Type alias INodeType

    +
    INodeType: "File" | "Directory" | "Symlink"
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/workers.EFSWorkerModule.html b/docs/types/workers.EFSWorkerModule.html new file mode 100644 index 00000000..d7dda59e --- /dev/null +++ b/docs/types/workers.EFSWorkerModule.html @@ -0,0 +1,58 @@ +EFSWorkerModule | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Type alias EFSWorkerModule

    +
    EFSWorkerModule: typeof efsWorkerModule
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.COPYFILE_EXCL.html b/docs/variables/constants.COPYFILE_EXCL.html new file mode 100644 index 00000000..ebe14ef4 --- /dev/null +++ b/docs/variables/constants.COPYFILE_EXCL.html @@ -0,0 +1,101 @@ +COPYFILE_EXCL | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable COPYFILE_EXCLConst

    +
    COPYFILE_EXCL: 1 = 1
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.F_OK.html b/docs/variables/constants.F_OK.html new file mode 100644 index 00000000..5c9fe655 --- /dev/null +++ b/docs/variables/constants.F_OK.html @@ -0,0 +1,101 @@ +F_OK | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable F_OKConst

    +
    F_OK: 0 = 0
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.MAP_PRIVATE.html b/docs/variables/constants.MAP_PRIVATE.html new file mode 100644 index 00000000..355a80fb --- /dev/null +++ b/docs/variables/constants.MAP_PRIVATE.html @@ -0,0 +1,101 @@ +MAP_PRIVATE | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable MAP_PRIVATEConst

    +
    MAP_PRIVATE: 2 = 2
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.MAP_SHARED.html b/docs/variables/constants.MAP_SHARED.html new file mode 100644 index 00000000..f9d1310c --- /dev/null +++ b/docs/variables/constants.MAP_SHARED.html @@ -0,0 +1,101 @@ +MAP_SHARED | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable MAP_SHAREDConst

    +
    MAP_SHARED: 1 = 1
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.O_ACCMODE.html b/docs/variables/constants.O_ACCMODE.html new file mode 100644 index 00000000..2992824d --- /dev/null +++ b/docs/variables/constants.O_ACCMODE.html @@ -0,0 +1,101 @@ +O_ACCMODE | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable O_ACCMODEConst

    +
    O_ACCMODE: 3 = 3
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.O_APPEND.html b/docs/variables/constants.O_APPEND.html new file mode 100644 index 00000000..48ab27e9 --- /dev/null +++ b/docs/variables/constants.O_APPEND.html @@ -0,0 +1,101 @@ +O_APPEND | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable O_APPENDConst

    +
    O_APPEND: 1024 = 1024
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.O_CREAT.html b/docs/variables/constants.O_CREAT.html new file mode 100644 index 00000000..b4d8c932 --- /dev/null +++ b/docs/variables/constants.O_CREAT.html @@ -0,0 +1,101 @@ +O_CREAT | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable O_CREATConst

    +
    O_CREAT: 64 = 64
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.O_DIRECT.html b/docs/variables/constants.O_DIRECT.html new file mode 100644 index 00000000..98191137 --- /dev/null +++ b/docs/variables/constants.O_DIRECT.html @@ -0,0 +1,101 @@ +O_DIRECT | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable O_DIRECTConst

    +
    O_DIRECT: 16384 = 16384
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.O_DIRECTORY.html b/docs/variables/constants.O_DIRECTORY.html new file mode 100644 index 00000000..073c43b0 --- /dev/null +++ b/docs/variables/constants.O_DIRECTORY.html @@ -0,0 +1,101 @@ +O_DIRECTORY | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable O_DIRECTORYConst

    +
    O_DIRECTORY: 65536 = 65536
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.O_EXCL.html b/docs/variables/constants.O_EXCL.html new file mode 100644 index 00000000..f7e35672 --- /dev/null +++ b/docs/variables/constants.O_EXCL.html @@ -0,0 +1,101 @@ +O_EXCL | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable O_EXCLConst

    +
    O_EXCL: 128 = 128
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.O_NOATIME.html b/docs/variables/constants.O_NOATIME.html new file mode 100644 index 00000000..7ff5e3e2 --- /dev/null +++ b/docs/variables/constants.O_NOATIME.html @@ -0,0 +1,101 @@ +O_NOATIME | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable O_NOATIMEConst

    +
    O_NOATIME: 262144 = 262144
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.O_NOCTTY.html b/docs/variables/constants.O_NOCTTY.html new file mode 100644 index 00000000..b2201863 --- /dev/null +++ b/docs/variables/constants.O_NOCTTY.html @@ -0,0 +1,101 @@ +O_NOCTTY | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable O_NOCTTYConst

    +
    O_NOCTTY: 256 = 256
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.O_NOFOLLOW.html b/docs/variables/constants.O_NOFOLLOW.html new file mode 100644 index 00000000..2647f7d9 --- /dev/null +++ b/docs/variables/constants.O_NOFOLLOW.html @@ -0,0 +1,101 @@ +O_NOFOLLOW | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable O_NOFOLLOWConst

    +
    O_NOFOLLOW: 131072 = 131072
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.O_NONBLOCK.html b/docs/variables/constants.O_NONBLOCK.html new file mode 100644 index 00000000..198fc735 --- /dev/null +++ b/docs/variables/constants.O_NONBLOCK.html @@ -0,0 +1,101 @@ +O_NONBLOCK | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable O_NONBLOCKConst

    +
    O_NONBLOCK: 2048 = 2048
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.O_RDONLY.html b/docs/variables/constants.O_RDONLY.html new file mode 100644 index 00000000..0f4f63ba --- /dev/null +++ b/docs/variables/constants.O_RDONLY.html @@ -0,0 +1,101 @@ +O_RDONLY | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable O_RDONLYConst

    +
    O_RDONLY: 0 = 0
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.O_RDWR.html b/docs/variables/constants.O_RDWR.html new file mode 100644 index 00000000..7396c7a6 --- /dev/null +++ b/docs/variables/constants.O_RDWR.html @@ -0,0 +1,101 @@ +O_RDWR | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable O_RDWRConst

    +
    O_RDWR: 2 = 2
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.O_SYNC.html b/docs/variables/constants.O_SYNC.html new file mode 100644 index 00000000..374c0a40 --- /dev/null +++ b/docs/variables/constants.O_SYNC.html @@ -0,0 +1,101 @@ +O_SYNC | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable O_SYNCConst

    +
    O_SYNC: 1052672 = 1052672
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.O_TRUNC.html b/docs/variables/constants.O_TRUNC.html new file mode 100644 index 00000000..ab5001ef --- /dev/null +++ b/docs/variables/constants.O_TRUNC.html @@ -0,0 +1,101 @@ +O_TRUNC | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable O_TRUNCConst

    +
    O_TRUNC: 512 = 512
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.O_WRONLY.html b/docs/variables/constants.O_WRONLY.html new file mode 100644 index 00000000..eaa5a714 --- /dev/null +++ b/docs/variables/constants.O_WRONLY.html @@ -0,0 +1,101 @@ +O_WRONLY | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable O_WRONLYConst

    +
    O_WRONLY: 1 = 1
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.R_OK.html b/docs/variables/constants.R_OK.html new file mode 100644 index 00000000..592558ae --- /dev/null +++ b/docs/variables/constants.R_OK.html @@ -0,0 +1,101 @@ +R_OK | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable R_OKConst

    +
    R_OK: 4 = 4
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.SEEK_CUR.html b/docs/variables/constants.SEEK_CUR.html new file mode 100644 index 00000000..fa7b82f7 --- /dev/null +++ b/docs/variables/constants.SEEK_CUR.html @@ -0,0 +1,101 @@ +SEEK_CUR | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable SEEK_CURConst

    +
    SEEK_CUR: 1 = 1
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.SEEK_END.html b/docs/variables/constants.SEEK_END.html new file mode 100644 index 00000000..932eb523 --- /dev/null +++ b/docs/variables/constants.SEEK_END.html @@ -0,0 +1,101 @@ +SEEK_END | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable SEEK_ENDConst

    +
    SEEK_END: 2 = 2
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.SEEK_SET.html b/docs/variables/constants.SEEK_SET.html new file mode 100644 index 00000000..dac390a0 --- /dev/null +++ b/docs/variables/constants.SEEK_SET.html @@ -0,0 +1,101 @@ +SEEK_SET | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable SEEK_SETConst

    +
    SEEK_SET: 0 = 0
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.S_IFBLK.html b/docs/variables/constants.S_IFBLK.html new file mode 100644 index 00000000..364cb7f7 --- /dev/null +++ b/docs/variables/constants.S_IFBLK.html @@ -0,0 +1,101 @@ +S_IFBLK | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable S_IFBLKConst

    +
    S_IFBLK: 24576 = 24576
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.S_IFCHR.html b/docs/variables/constants.S_IFCHR.html new file mode 100644 index 00000000..724ad53b --- /dev/null +++ b/docs/variables/constants.S_IFCHR.html @@ -0,0 +1,101 @@ +S_IFCHR | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable S_IFCHRConst

    +
    S_IFCHR: 8192 = 8192
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.S_IFDIR.html b/docs/variables/constants.S_IFDIR.html new file mode 100644 index 00000000..29138b1e --- /dev/null +++ b/docs/variables/constants.S_IFDIR.html @@ -0,0 +1,101 @@ +S_IFDIR | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable S_IFDIRConst

    +
    S_IFDIR: 16384 = 16384
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.S_IFIFO.html b/docs/variables/constants.S_IFIFO.html new file mode 100644 index 00000000..de6c335c --- /dev/null +++ b/docs/variables/constants.S_IFIFO.html @@ -0,0 +1,101 @@ +S_IFIFO | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable S_IFIFOConst

    +
    S_IFIFO: 4096 = 4096
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.S_IFLNK.html b/docs/variables/constants.S_IFLNK.html new file mode 100644 index 00000000..4b19d587 --- /dev/null +++ b/docs/variables/constants.S_IFLNK.html @@ -0,0 +1,101 @@ +S_IFLNK | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable S_IFLNKConst

    +
    S_IFLNK: 40960 = 40960
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.S_IFMT.html b/docs/variables/constants.S_IFMT.html new file mode 100644 index 00000000..718acb45 --- /dev/null +++ b/docs/variables/constants.S_IFMT.html @@ -0,0 +1,101 @@ +S_IFMT | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable S_IFMTConst

    +
    S_IFMT: 61440 = 61440
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.S_IFREG.html b/docs/variables/constants.S_IFREG.html new file mode 100644 index 00000000..902b6569 --- /dev/null +++ b/docs/variables/constants.S_IFREG.html @@ -0,0 +1,101 @@ +S_IFREG | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable S_IFREGConst

    +
    S_IFREG: 32768 = 32768
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.S_IFSOCK.html b/docs/variables/constants.S_IFSOCK.html new file mode 100644 index 00000000..9cf25dd5 --- /dev/null +++ b/docs/variables/constants.S_IFSOCK.html @@ -0,0 +1,101 @@ +S_IFSOCK | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable S_IFSOCKConst

    +
    S_IFSOCK: 49152 = 49152
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.S_IRGRP.html b/docs/variables/constants.S_IRGRP.html new file mode 100644 index 00000000..4443c206 --- /dev/null +++ b/docs/variables/constants.S_IRGRP.html @@ -0,0 +1,101 @@ +S_IRGRP | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable S_IRGRPConst

    +
    S_IRGRP: 32 = 32
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.S_IROTH.html b/docs/variables/constants.S_IROTH.html new file mode 100644 index 00000000..9895fd28 --- /dev/null +++ b/docs/variables/constants.S_IROTH.html @@ -0,0 +1,101 @@ +S_IROTH | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable S_IROTHConst

    +
    S_IROTH: 4 = 4
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.S_IRUSR.html b/docs/variables/constants.S_IRUSR.html new file mode 100644 index 00000000..0239ba07 --- /dev/null +++ b/docs/variables/constants.S_IRUSR.html @@ -0,0 +1,101 @@ +S_IRUSR | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable S_IRUSRConst

    +
    S_IRUSR: 256 = 256
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.S_IRWXG.html b/docs/variables/constants.S_IRWXG.html new file mode 100644 index 00000000..dca6937a --- /dev/null +++ b/docs/variables/constants.S_IRWXG.html @@ -0,0 +1,101 @@ +S_IRWXG | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable S_IRWXGConst

    +
    S_IRWXG: 56 = 56
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.S_IRWXO.html b/docs/variables/constants.S_IRWXO.html new file mode 100644 index 00000000..691189e6 --- /dev/null +++ b/docs/variables/constants.S_IRWXO.html @@ -0,0 +1,101 @@ +S_IRWXO | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable S_IRWXOConst

    +
    S_IRWXO: 7 = 7
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.S_IRWXU.html b/docs/variables/constants.S_IRWXU.html new file mode 100644 index 00000000..e82e0d3a --- /dev/null +++ b/docs/variables/constants.S_IRWXU.html @@ -0,0 +1,101 @@ +S_IRWXU | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable S_IRWXUConst

    +
    S_IRWXU: 448 = 448
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.S_IWGRP.html b/docs/variables/constants.S_IWGRP.html new file mode 100644 index 00000000..a6b1a870 --- /dev/null +++ b/docs/variables/constants.S_IWGRP.html @@ -0,0 +1,101 @@ +S_IWGRP | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable S_IWGRPConst

    +
    S_IWGRP: 16 = 16
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.S_IWOTH.html b/docs/variables/constants.S_IWOTH.html new file mode 100644 index 00000000..32c3c4d6 --- /dev/null +++ b/docs/variables/constants.S_IWOTH.html @@ -0,0 +1,101 @@ +S_IWOTH | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable S_IWOTHConst

    +
    S_IWOTH: 2 = 2
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.S_IWUSR.html b/docs/variables/constants.S_IWUSR.html new file mode 100644 index 00000000..efb69cdb --- /dev/null +++ b/docs/variables/constants.S_IWUSR.html @@ -0,0 +1,101 @@ +S_IWUSR | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable S_IWUSRConst

    +
    S_IWUSR: 128 = 128
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.S_IXGRP.html b/docs/variables/constants.S_IXGRP.html new file mode 100644 index 00000000..2b1076b1 --- /dev/null +++ b/docs/variables/constants.S_IXGRP.html @@ -0,0 +1,101 @@ +S_IXGRP | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable S_IXGRPConst

    +
    S_IXGRP: 8 = 8
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.S_IXOTH.html b/docs/variables/constants.S_IXOTH.html new file mode 100644 index 00000000..a5004aeb --- /dev/null +++ b/docs/variables/constants.S_IXOTH.html @@ -0,0 +1,101 @@ +S_IXOTH | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable S_IXOTHConst

    +
    S_IXOTH: 1 = 1
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.S_IXUSR.html b/docs/variables/constants.S_IXUSR.html new file mode 100644 index 00000000..6b089b65 --- /dev/null +++ b/docs/variables/constants.S_IXUSR.html @@ -0,0 +1,101 @@ +S_IXUSR | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable S_IXUSRConst

    +
    S_IXUSR: 64 = 64
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.W_OK.html b/docs/variables/constants.W_OK.html new file mode 100644 index 00000000..81628f8e --- /dev/null +++ b/docs/variables/constants.W_OK.html @@ -0,0 +1,101 @@ +W_OK | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable W_OKConst

    +
    W_OK: 2 = 2
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/constants.X_OK.html b/docs/variables/constants.X_OK.html new file mode 100644 index 00000000..802a252b --- /dev/null +++ b/docs/variables/constants.X_OK.html @@ -0,0 +1,101 @@ +X_OK | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable X_OKConst

    +
    X_OK: 1 = 1
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/permissions.DEFAULT_DIRECTORY_PERM.html b/docs/variables/permissions.DEFAULT_DIRECTORY_PERM.html new file mode 100644 index 00000000..46e04950 --- /dev/null +++ b/docs/variables/permissions.DEFAULT_DIRECTORY_PERM.html @@ -0,0 +1,64 @@ +DEFAULT_DIRECTORY_PERM | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable DEFAULT_DIRECTORY_PERMConst

    +
    DEFAULT_DIRECTORY_PERM: number = ...
    +

    Default directory permissions of rwxrwxrwx.

    +
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/permissions.DEFAULT_FILE_PERM.html b/docs/variables/permissions.DEFAULT_FILE_PERM.html new file mode 100644 index 00000000..840ff830 --- /dev/null +++ b/docs/variables/permissions.DEFAULT_FILE_PERM.html @@ -0,0 +1,64 @@ +DEFAULT_FILE_PERM | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable DEFAULT_FILE_PERMConst

    +
    DEFAULT_FILE_PERM: number = ...
    +

    Default file permissions of rw-rw-rw-.

    +
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/permissions.DEFAULT_ROOT_GID.html b/docs/variables/permissions.DEFAULT_ROOT_GID.html new file mode 100644 index 00000000..0d57b006 --- /dev/null +++ b/docs/variables/permissions.DEFAULT_ROOT_GID.html @@ -0,0 +1,64 @@ +DEFAULT_ROOT_GID | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable DEFAULT_ROOT_GIDConst

    +
    DEFAULT_ROOT_GID: 0 = 0
    +

    Default root gid.

    +
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/permissions.DEFAULT_ROOT_PERM.html b/docs/variables/permissions.DEFAULT_ROOT_PERM.html new file mode 100644 index 00000000..f4177134 --- /dev/null +++ b/docs/variables/permissions.DEFAULT_ROOT_PERM.html @@ -0,0 +1,64 @@ +DEFAULT_ROOT_PERM | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable DEFAULT_ROOT_PERMConst

    +
    DEFAULT_ROOT_PERM: number = ...
    +

    Default root directory permissions of rwxr-xr-x.

    +
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/permissions.DEFAULT_ROOT_UID.html b/docs/variables/permissions.DEFAULT_ROOT_UID.html new file mode 100644 index 00000000..b2aa6d37 --- /dev/null +++ b/docs/variables/permissions.DEFAULT_ROOT_UID.html @@ -0,0 +1,64 @@ +DEFAULT_ROOT_UID | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable DEFAULT_ROOT_UIDConst

    +
    DEFAULT_ROOT_UID: 0 = 0
    +

    Default root uid.

    +
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/permissions.DEFAULT_SYMLINK_PERM.html b/docs/variables/permissions.DEFAULT_SYMLINK_PERM.html new file mode 100644 index 00000000..74f761bb --- /dev/null +++ b/docs/variables/permissions.DEFAULT_SYMLINK_PERM.html @@ -0,0 +1,64 @@ +DEFAULT_SYMLINK_PERM | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable DEFAULT_SYMLINK_PERMConst

    +
    DEFAULT_SYMLINK_PERM: number = ...
    +

    Default symlink permissions of rwxrwxrwx.

    +
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/utils.authTagSize.html b/docs/variables/utils.authTagSize.html new file mode 100644 index 00000000..c71f5fbb --- /dev/null +++ b/docs/variables/utils.authTagSize.html @@ -0,0 +1,86 @@ +authTagSize | encryptedfs
    +
    + +
    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/utils.ivSize.html b/docs/variables/utils.ivSize.html new file mode 100644 index 00000000..e77ad288 --- /dev/null +++ b/docs/variables/utils.ivSize.html @@ -0,0 +1,86 @@ +ivSize | encryptedfs
    +
    + +
    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/variables/workers.efsWorkerModule-1.html b/docs/variables/workers.efsWorkerModule-1.html new file mode 100644 index 00000000..28dc4368 --- /dev/null +++ b/docs/variables/workers.efsWorkerModule-1.html @@ -0,0 +1,91 @@ +efsWorkerModule | encryptedfs
    +
    + +
    +
    +
    +
    + +

    Variable efsWorkerModuleConst

    +
    efsWorkerModule: {
        decrypt(key: ArrayBuffer, cipherText: ArrayBuffer): Promise<undefined | TransferDescriptor<ArrayBuffer>>;
        encrypt(key: ArrayBuffer, plainText: ArrayBuffer): Promise<TransferDescriptor<ArrayBuffer>>;
    } = ...
    +
    +

    Type declaration

    +
      +
    • +
      decrypt:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          key: ArrayBuffer
        • +
        • +
          cipherText: ArrayBuffer
        +

        Returns Promise<undefined | TransferDescriptor<ArrayBuffer>>

    • +
    • +
      encrypt:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          key: ArrayBuffer
        • +
        • +
          plainText: ArrayBuffer
        +

        Returns Promise<TransferDescriptor<ArrayBuffer>>

    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/jest.config.js b/jest.config.js index 90406f0b..58d32f3c 100644 --- a/jest.config.js +++ b/jest.config.js @@ -33,8 +33,21 @@ module.exports = { roots: ['/tests'], testMatch: ['**/?(*.)+(spec|test|unit.test).+(ts|tsx|js|jsx)'], transform: { - '^.+\\.tsx?$': 'ts-jest', - '^.+\\.jsx?$': 'babel-jest', + "^.+\\.(t|j)sx?$": [ + "@swc/jest", + { + jsc: { + parser: { + syntax: "typescript", + tsx: true, + decorators: compilerOptions.experimentalDecorators, + dynamicImport: true, + }, + target: compilerOptions.target.toLowerCase(), + keepClassNames: true, + }, + } + ], }, reporters: [ 'default', diff --git a/package-lock.json b/package-lock.json index 1a2d1eef..a93aa383 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,13 +9,13 @@ "version": "3.5.6", "license": "Apache-2.0", "dependencies": { - "@matrixai/async-init": "^1.8.2", - "@matrixai/async-locks": "^3.1.2", - "@matrixai/db": "^5.0.3", - "@matrixai/errors": "^1.1.3", - "@matrixai/logger": "^3.0.0", - "@matrixai/resources": "^1.1.4", - "@matrixai/workers": "^1.3.6", + "@matrixai/async-init": "^1.8.4", + "@matrixai/async-locks": "^4.0.0", + "@matrixai/db": "^5.2.0", + "@matrixai/errors": "^1.1.7", + "@matrixai/logger": "^3.1.0", + "@matrixai/resources": "^1.1.5", + "@matrixai/workers": "^1.3.7", "errno": "^0.1.7", "lexicographic-integer": "^1.1.0", "node-forge": "^1.3.1", @@ -25,13 +25,14 @@ "util-callbackify": "^1.0.0" }, "devDependencies": { - "@swc/core": "^1.2.215", + "@swc/core": "^1.3.62", + "@swc/jest": "^0.2.26", "@types/jest": "^28.1.3", - "@types/node": "^16.11.7", + "@types/node": "^18.15.0", "@types/node-forge": "^1.0.2", "@types/readable-stream": "^2.3.11", - "@typescript-eslint/eslint-plugin": "^5.23.0", - "@typescript-eslint/parser": "^5.23.0", + "@typescript-eslint/eslint-plugin": "^5.45.1", + "@typescript-eslint/parser": "^5.45.1", "benny": "^3.7.1", "common-tags": "^1.8.2", "eslint": "^8.15.0", @@ -43,13 +44,13 @@ "jest-extended": "^3.0.1", "jest-junit": "^14.0.0", "prettier": "^2.6.2", - "rimraf": "^3.0.2", - "systeminformation": "^5.12.1", + "shx": "^0.3.4", + "systeminformation": "^5.18.5", "ts-jest": "^28.0.5", "ts-node": "^10.9.1", "tsconfig-paths": "^3.9.0", - "typedoc": "^0.22.15", - "typescript": "^4.5.2" + "typedoc": "^0.23.21", + "typescript": "^4.9.3" } }, "node_modules/@ampproject/remapping": { @@ -696,6 +697,30 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", + "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, "node_modules/@eslint/eslintrc": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.3.tgz", @@ -927,6 +952,43 @@ } } }, + "node_modules/@jest/create-cache-key-function": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-27.5.1.tgz", + "integrity": "sha512-dmH1yW+makpTSURTy8VzdUwFnfQh1G8R+DxO2Ho2FFmBbKFEVm+3jWdvFhE2VqB/LATCTokkP0dotjyQyw5/AQ==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/create-cache-key-function/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/create-cache-key-function/node_modules/@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, "node_modules/@jest/environment": { "version": "28.1.3", "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz", @@ -1188,71 +1250,86 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "node_modules/@matrixai/async-cancellable": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@matrixai/async-cancellable/-/async-cancellable-1.1.1.tgz", + "integrity": "sha512-f0yxu7dHwvffZ++7aCm2WIcCJn18uLcOTdCCwEA3R3KVHYE3TG/JNoTWD9/mqBkAV1AI5vBfJzg27WnF9rOUXQ==" + }, "node_modules/@matrixai/async-init": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@matrixai/async-init/-/async-init-1.8.2.tgz", - "integrity": "sha512-HAJ5hB1sLYHSbTZ6Ana126v10wFfXrKOYbLIyFuX4yspyjRM9akUVGQdP9H8SoxR35GtZoiJuqRjaRwxNk1KNQ==", + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/@matrixai/async-init/-/async-init-1.8.4.tgz", + "integrity": "sha512-33cGC7kHTs9KKwMHJA5d5XURWhx3QUq7lLxPEXLoVfWdTHixcWNvtfshAOso0hbRfx1P3ZSgsb+ZHaIASHhWfg==", "dependencies": { - "@matrixai/async-locks": "^3.1.2", - "@matrixai/errors": "^1.1.3" + "@matrixai/async-locks": "^4.0.0", + "@matrixai/errors": "^1.1.7" } }, "node_modules/@matrixai/async-locks": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@matrixai/async-locks/-/async-locks-3.1.2.tgz", - "integrity": "sha512-rIA89EGBNlWV59pLVwx7aqlKWVJRCOsVi6evt8HoN6dyvyyns8//Q8PyBcg5ay0GjLkqsXKQjYXMRif5OB3VSg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@matrixai/async-locks/-/async-locks-4.0.0.tgz", + "integrity": "sha512-u/3fOdtjOKcDYF8dDoPR1/+7nmOkhxo42eBpXTEgfI0hLPGI37PoW7tjLvwy+O51Quy1HGOwhsR/Dgr4x+euug==", "dependencies": { - "@matrixai/errors": "^1.1.3", - "@matrixai/resources": "^1.1.4", - "async-mutex": "^0.3.2" + "@matrixai/async-cancellable": "^1.1.1", + "@matrixai/errors": "^1.1.7", + "@matrixai/resources": "^1.1.5", + "@matrixai/timer": "^1.1.1" } }, "node_modules/@matrixai/db": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@matrixai/db/-/db-5.0.3.tgz", - "integrity": "sha512-/BNbg+vzFw8fv5e7KXZTXb5CvZvFUjwH5cI4l7kZ/kUHTWKgVSvdxz77h7njYDuhHStY6sSHnVAlWrgczFbQ8w==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@matrixai/db/-/db-5.2.0.tgz", + "integrity": "sha512-CZt4o1FHyeLvSKXbcTLZpTNSvIhq5a4TyO4FJDkTemTWSXM82Y6nTPc+LYESe37ULP8jq3cO3OD30lLcS+k0lA==", "hasInstallScript": true, "dependencies": { - "@matrixai/async-init": "^1.8.1", - "@matrixai/async-locks": "^3.1.1", - "@matrixai/errors": "^1.1.2", - "@matrixai/logger": "^3.0.0", - "@matrixai/resources": "^1.1.3", - "@matrixai/workers": "^1.3.5", + "@matrixai/async-init": "^1.8.4", + "@matrixai/async-locks": "^4.0.0", + "@matrixai/errors": "^1.1.7", + "@matrixai/logger": "^3.1.0", + "@matrixai/resources": "^1.1.5", + "@matrixai/workers": "^1.3.7", "node-gyp-build": "4.4.0", "threads": "^1.6.5" }, "engines": { "msvs": "2019", - "node": "^16.15.0" + "node": "^18.15.0" } }, "node_modules/@matrixai/errors": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@matrixai/errors/-/errors-1.1.3.tgz", - "integrity": "sha512-SqHSDd1E2IUXlqvVmEvyGChBrnQUTTHjy4hTc1SmcDBttgqS4QgBXH7aovk6Eviuhq6unSWkA9nyBDDXOT3DJA==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@matrixai/errors/-/errors-1.1.7.tgz", + "integrity": "sha512-WD6MrlfgtNSTfXt60lbMgwasS5T7bdRgH4eYSOxV+KWngqlkEij9EoDt5LwdvcMD1yuC33DxPTnH4Xu2XV3nMw==", "dependencies": { - "ts-custom-error": "^3.2.0" + "ts-custom-error": "3.2.2" } }, "node_modules/@matrixai/logger": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@matrixai/logger/-/logger-3.0.0.tgz", - "integrity": "sha512-J2KMMw4FCHHmIacRfbU3mBPMvGxxwRc4Y8eFEtzkOcL8WhqBfWKiZ96xNduJGxUo+nfTlj+Q2Ep9RwRw3FCxMw==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@matrixai/logger/-/logger-3.1.0.tgz", + "integrity": "sha512-C4JWpgbNik3V99bfGfDell5cH3JULD67eEq9CeXl4rYgsvanF8hhuY84ZYvndPhimt9qjA9/Z8uExKGoiv1zVw==" }, "node_modules/@matrixai/resources": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@matrixai/resources/-/resources-1.1.4.tgz", - "integrity": "sha512-YZSMtklbXah0+SxcKOVEm0ONQdWhlJecQ1COx6hg9Dl80WOybZjZ9A+N+OZfvWk9y25NuoIPzOsjhr8G1aTnIg==" + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@matrixai/resources/-/resources-1.1.5.tgz", + "integrity": "sha512-m/DEZEe3wHqWEPTyoBtzFF6U9vWYhEnQtGgwvqiAlTxTM0rk96UBpWjDZCTF/vYG11ZlmlQFtg5H+zGgbjaB3Q==" + }, + "node_modules/@matrixai/timer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@matrixai/timer/-/timer-1.1.1.tgz", + "integrity": "sha512-8UKDoGuwKC6BvrY/yANJVH29v71wgQKH/tJlxMPohGxmzVUQO5+JeI4lUYVHTs2vq1AyKAWloF5fOig+I1dyGA==", + "dependencies": { + "@matrixai/async-cancellable": "^1.1.1", + "@matrixai/errors": "^1.1.7" + } }, "node_modules/@matrixai/workers": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/@matrixai/workers/-/workers-1.3.6.tgz", - "integrity": "sha512-vllPhkBpEl5tNCXIN3PuiYn/fQCtQZUHsvCybkNXj/RZuBjUjktt2Yb+yCXxnw8/QRtNBDnts63qwTGCHFqU2Q==", + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@matrixai/workers/-/workers-1.3.7.tgz", + "integrity": "sha512-37Zm8OqrhLzcPY8uBWBhleN0THOxC49SwtkqTw8Ettb/Csm51MlGoa05NJa0NcBCsYfPucLK/qn1yFIGFrqWhw==", "dependencies": { - "@matrixai/async-init": "^1.8.2", - "@matrixai/errors": "^1.1.2", - "@matrixai/logger": "^3.0.0", + "@matrixai/async-init": "^1.8.4", + "@matrixai/errors": "^1.1.7", + "@matrixai/logger": "^3.1.0", "threads": "^1.6.5" } }, @@ -1316,14 +1393,11 @@ } }, "node_modules/@swc/core": { - "version": "1.2.218", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.218.tgz", - "integrity": "sha512-wzXTeBUi3YAHr305lCo1tlxRj5Zpk7hu6rmulngH06NgrH7fS6bj8IaR7K2QPZ4ZZ4U+TGS2tOKbXBmqeMRUtg==", + "version": "1.3.66", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.66.tgz", + "integrity": "sha512-Hpf91kH5ly7fHkWnApwryTQryT+TO4kMMPH3WyciUSQOWLE3UuQz1PtETHQQk7PZ/b1QF0qQurJrgfBr5bSKUA==", "dev": true, "hasInstallScript": true, - "bin": { - "swcx": "run_swcx.js" - }, "engines": { "node": ">=10" }, @@ -1332,57 +1406,30 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-android-arm-eabi": "1.2.218", - "@swc/core-android-arm64": "1.2.218", - "@swc/core-darwin-arm64": "1.2.218", - "@swc/core-darwin-x64": "1.2.218", - "@swc/core-freebsd-x64": "1.2.218", - "@swc/core-linux-arm-gnueabihf": "1.2.218", - "@swc/core-linux-arm64-gnu": "1.2.218", - "@swc/core-linux-arm64-musl": "1.2.218", - "@swc/core-linux-x64-gnu": "1.2.218", - "@swc/core-linux-x64-musl": "1.2.218", - "@swc/core-win32-arm64-msvc": "1.2.218", - "@swc/core-win32-ia32-msvc": "1.2.218", - "@swc/core-win32-x64-msvc": "1.2.218" - } - }, - "node_modules/@swc/core-android-arm-eabi": { - "version": "1.2.218", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.218.tgz", - "integrity": "sha512-Q/uLCh262t3xxNzhCz+ZW9t+g2nWd0gZZO4jMYFWJs7ilKVNsBfRtfnNGGACHzkVuWLNDIWtAS2PSNodl7VUHQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-android-arm64": { - "version": "1.2.218", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.218.tgz", - "integrity": "sha512-dy+8lUHUcyrkfPcl7azEQ4M44duRo1Uibz1E5/tltXCGoR6tu2ZN2VkqEKgA2a9XR3UD8/x4lv2r5evwJWy+uQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=10" + "@swc/core-darwin-arm64": "1.3.66", + "@swc/core-darwin-x64": "1.3.66", + "@swc/core-linux-arm-gnueabihf": "1.3.66", + "@swc/core-linux-arm64-gnu": "1.3.66", + "@swc/core-linux-arm64-musl": "1.3.66", + "@swc/core-linux-x64-gnu": "1.3.66", + "@swc/core-linux-x64-musl": "1.3.66", + "@swc/core-win32-arm64-msvc": "1.3.66", + "@swc/core-win32-ia32-msvc": "1.3.66", + "@swc/core-win32-x64-msvc": "1.3.66" + }, + "peerDependencies": { + "@swc/helpers": "^0.5.0" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.2.218", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.218.tgz", - "integrity": "sha512-aTpFjWio8G0oukN76VtXCBPtFzH0PXIQ+1dFjGGkzrBcU5suztCCbhPBGhKRoWp3NJBwfPDwwWzmG+ddXrVAKg==", + "version": "1.3.66", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.66.tgz", + "integrity": "sha512-UijJsvuLy73vxeVYEy7urIHksXS+3BdvJ9s9AY+bRMSQW483NO7RLp8g4FdTyJbRaN0BH15SQnY0dcjQBkVuHw==", "cpu": [ "arm64" ], @@ -1396,9 +1443,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.2.218", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.218.tgz", - "integrity": "sha512-H3w/gNzROE6gVPZCAg5qvvPihzlg88Yi7HWb/mowfpNqH9/iJ8XMdwqJyovnfUeUXsuJQBFv6uXv/ri7qhGMHA==", + "version": "1.3.66", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.66.tgz", + "integrity": "sha512-xGsHKvViQnwTNLF30Y/5OqWdnN6RsiyUI8awZXfz1sHcXCEaLe+v+WLQ+/E8sgw0YUkYVHzzfV/sAN2CezJK5Q==", "cpu": [ "x64" ], @@ -1411,26 +1458,10 @@ "node": ">=10" } }, - "node_modules/@swc/core-freebsd-x64": { - "version": "1.2.218", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.218.tgz", - "integrity": "sha512-kkch07yCSlpUrSMp0FZPWtMHJjh3lfHiwp7JYNf6CUl5xXlgT19NeomPYq31dbTzPV2VnE7TVVlAawIjuuOH4g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=10" - } - }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.2.218", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.218.tgz", - "integrity": "sha512-vwEgvtD9f/+0HFxYD5q4sd8SG6zd0cxm17cwRGZ6jWh/d4Ninjht3CpDGE1ffh9nJ+X3Mb/7rjU/kTgWFz5qfg==", + "version": "1.3.66", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.66.tgz", + "integrity": "sha512-gNbLcSIV2pq90BkMSpzvK4xPXOl8GEF3YR4NaqF0CYSzQsVXXTTqMuX/r26xNYudBKzH0345S1MpoRk2qricnA==", "cpu": [ "arm" ], @@ -1444,9 +1475,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.2.218", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.218.tgz", - "integrity": "sha512-g5PQI6COUHV7x7tyaZQn6jXWtOLXXNIEQK1HS5/e+6kqqsM2NsndE9bjLhoH1EQuXiN2eUjAR/ZDOFAg102aRw==", + "version": "1.3.66", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.66.tgz", + "integrity": "sha512-cJSQ0oplyWbJqy4rzVcnBYLAi6z1QT3QCcR7iAey0aAmCvfRBZJfXlyjggMjn4iosuadkauwCZR1xYNhBDRn7w==", "cpu": [ "arm64" ], @@ -1460,9 +1491,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.2.218", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.218.tgz", - "integrity": "sha512-IETYHB6H01NmVmlw+Ng8nkjdFBv1exGQRR74GAnHis1bVx1Uq14hREIF6XT3I1Aj26nRwlGkIYQuEKnFO5/j3Q==", + "version": "1.3.66", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.66.tgz", + "integrity": "sha512-GDQZpcB9aGxG9PTA2shdIkoMZlGK5omJ8NR49uoBTtLBVYiGeXAwV0U1Uaw8kXEZj9i7wZDkvjzjSaNH3evRsg==", "cpu": [ "arm64" ], @@ -1476,9 +1507,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.2.218", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.218.tgz", - "integrity": "sha512-PK39Zg4/YZbfchQRw77iVfB7Qat7QaK58sQt8enH39CUMXlJ+GSfC0Fqw2mtZ12sFGwmsGrK9yBy3ZVoOws5Ng==", + "version": "1.3.66", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.66.tgz", + "integrity": "sha512-lg8E4O/Pd9KfK0lajdinVMuGME8dSv7V9arhEpmlfGE2eXSDCWqDn5Htk5QVBstt9lt1lsRhWHJ/YYc2eQY30Q==", "cpu": [ "x64" ], @@ -1492,9 +1523,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.2.218", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.218.tgz", - "integrity": "sha512-SNjrzORJYiKTSmFbaBkKZAf5B/PszwoZoFZOcd86AG192zsvQBSvKjQzMjT5rDZxB+sOnhRE7wH/bvqxZishQQ==", + "version": "1.3.66", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.66.tgz", + "integrity": "sha512-lo8ZcAO/zL2pZWH+LZIyge8u2MklaeuT6+FpVVpBFktMVdYXbaVtzpvWbgRFBZHvL3SRDF+u8jxjtkXhvGUpTw==", "cpu": [ "x64" ], @@ -1508,9 +1539,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.2.218", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.218.tgz", - "integrity": "sha512-lVXFWkYl+w8+deq9mgGsfvSY5Gr1RRjFgqZ+0wMZgyaonfx7jNn3TILUwc7egumEwxK0anNriVZCyKfcO3ZIjA==", + "version": "1.3.66", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.66.tgz", + "integrity": "sha512-cQoVwBuJY5WkHbfpCOlndNwYr1ZThatRjQQvKy540NUIeAEk9Fa6ozlDBtU75UdaWKtUG6YQ/bWz+KTemheVxw==", "cpu": [ "arm64" ], @@ -1524,9 +1555,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.2.218", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.218.tgz", - "integrity": "sha512-jgP+NZsHUh9Cp8PcXznnkpJTW3hPDLUgsXI0NKfE+8+Xvc6hALHxl6K46IyPYU67FfFlegYcBSNkOgpc85gk0A==", + "version": "1.3.66", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.66.tgz", + "integrity": "sha512-y/FrAIINK4UBeUQQknGlWXEyjo+MBvjF7WkUf2KP7sNr9EHHy8+dXohAGd5Anz0eJrqOM1ZXR/GEjxRp7bGQ1Q==", "cpu": [ "ia32" ], @@ -1540,9 +1571,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.2.218", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.218.tgz", - "integrity": "sha512-XYLjX00KV4ft324Q3QDkw61xHkoN7EKkVvIpb0wXaf6wVshwU+BCDyPw2CSg4PQecNP8QGgMRQf9QM7xNtEM7A==", + "version": "1.3.66", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.66.tgz", + "integrity": "sha512-yI64ACzS14qFLrfyO12qW+f/UROTotzDeEbuyJAaPD2IZexoT1cICznI3sBmIfrSt33mVuW8eF5m3AG/NUImzw==", "cpu": [ "x64" ], @@ -1555,6 +1586,22 @@ "node": ">=10" } }, + "node_modules/@swc/jest": { + "version": "0.2.26", + "resolved": "https://registry.npmjs.org/@swc/jest/-/jest-0.2.26.tgz", + "integrity": "sha512-7lAi7q7ShTO3E5Gt1Xqf3pIhRbERxR1DUxvtVa9WKzIB+HGQ7wZP5sYx86zqnaEoKKGhmOoZ7gyW0IRu8Br5+A==", + "dev": true, + "dependencies": { + "@jest/create-cache-key-function": "^27.4.2", + "jsonc-parser": "^3.2.0" + }, + "engines": { + "npm": ">= 7.0.0" + }, + "peerDependencies": { + "@swc/core": "*" + } + }, "node_modules/@tsconfig/node10": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", @@ -1664,9 +1711,9 @@ } }, "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", + "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", "dev": true }, "node_modules/@types/json5": { @@ -1676,9 +1723,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "16.11.34", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.34.tgz", - "integrity": "sha512-UrWGDyLAlQ2Z8bNOGWTsqbP9ZcBeTYBVuTRNxXTztBy5KhWUFI3BaeDWoCP/CzV/EVGgO1NTYzv9ZytBI9GAEw==", + "version": "18.16.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.18.tgz", + "integrity": "sha512-/aNaQZD0+iSBAGnvvN2Cx92HqE5sZCPZtx2TsK+4nvV23fFe09jVDvpArXr2j9DnYlzuU9WuoykDDc6wqvpNcw==", "dev": true }, "node_modules/@types/node-forge": { @@ -1706,6 +1753,12 @@ "safe-buffer": "*" } }, + "node_modules/@types/semver": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", + "dev": true + }, "node_modules/@types/stack-utils": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", @@ -1728,19 +1781,20 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.23.0.tgz", - "integrity": "sha512-hEcSmG4XodSLiAp1uxv/OQSGsDY6QN3TcRU32gANp+19wGE1QQZLRS8/GV58VRUoXhnkuJ3ZxNQ3T6Z6zM59DA==", + "version": "5.60.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.60.0.tgz", + "integrity": "sha512-78B+anHLF1TI8Jn/cD0Q00TBYdMgjdOn980JfAVa9yw5sop8nyTfVOQAv6LWywkOGLclDBtv5z3oxN4w7jxyNg==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.23.0", - "@typescript-eslint/type-utils": "5.23.0", - "@typescript-eslint/utils": "5.23.0", - "debug": "^4.3.2", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.1.8", - "regexpp": "^3.2.0", - "semver": "^7.3.5", + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.60.0", + "@typescript-eslint/type-utils": "5.60.0", + "@typescript-eslint/utils": "5.60.0", + "debug": "^4.3.4", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", "tsutils": "^3.21.0" }, "engines": { @@ -1761,15 +1815,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.23.0.tgz", - "integrity": "sha512-V06cYUkqcGqpFjb8ttVgzNF53tgbB/KoQT/iB++DOIExKmzI9vBJKjZKt/6FuV9c+zrDsvJKbJ2DOCYwX91cbw==", + "version": "5.60.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.60.0.tgz", + "integrity": "sha512-jBONcBsDJ9UoTWrARkRRCgDz6wUggmH5RpQVlt7BimSwaTkTjwypGzKORXbR4/2Hqjk9hgwlon2rVQAjWNpkyQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.23.0", - "@typescript-eslint/types": "5.23.0", - "@typescript-eslint/typescript-estree": "5.23.0", - "debug": "^4.3.2" + "@typescript-eslint/scope-manager": "5.60.0", + "@typescript-eslint/types": "5.60.0", + "@typescript-eslint/typescript-estree": "5.60.0", + "debug": "^4.3.4" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1788,13 +1842,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.23.0.tgz", - "integrity": "sha512-EhjaFELQHCRb5wTwlGsNMvzK9b8Oco4aYNleeDlNuL6qXWDF47ch4EhVNPh8Rdhf9tmqbN4sWDk/8g+Z/J8JVw==", + "version": "5.60.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.60.0.tgz", + "integrity": "sha512-hakuzcxPwXi2ihf9WQu1BbRj1e/Pd8ZZwVTG9kfbxAMZstKz8/9OoexIwnmLzShtsdap5U/CoQGRCWlSuPbYxQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.23.0", - "@typescript-eslint/visitor-keys": "5.23.0" + "@typescript-eslint/types": "5.60.0", + "@typescript-eslint/visitor-keys": "5.60.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1805,13 +1859,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.23.0.tgz", - "integrity": "sha512-iuI05JsJl/SUnOTXA9f4oI+/4qS/Zcgk+s2ir+lRmXI+80D8GaGwoUqs4p+X+4AxDolPpEpVUdlEH4ADxFy4gw==", + "version": "5.60.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.60.0.tgz", + "integrity": "sha512-X7NsRQddORMYRFH7FWo6sA9Y/zbJ8s1x1RIAtnlj6YprbToTiQnM6vxcMu7iYhdunmoC0rUWlca13D5DVHkK2g==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "5.23.0", - "debug": "^4.3.2", + "@typescript-eslint/typescript-estree": "5.60.0", + "@typescript-eslint/utils": "5.60.0", + "debug": "^4.3.4", "tsutils": "^3.21.0" }, "engines": { @@ -1831,9 +1886,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.23.0.tgz", - "integrity": "sha512-NfBsV/h4dir/8mJwdZz7JFibaKC3E/QdeMEDJhiAE3/eMkoniZ7MjbEMCGXw6MZnZDMN3G9S0mH/6WUIj91dmw==", + "version": "5.60.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.60.0.tgz", + "integrity": "sha512-ascOuoCpNZBccFVNJRSC6rPq4EmJ2NkuoKnd6LDNyAQmdDnziAtxbCGWCbefG1CNzmDvd05zO36AmB7H8RzKPA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1844,17 +1899,17 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.23.0.tgz", - "integrity": "sha512-xE9e0lrHhI647SlGMl+m+3E3CKPF1wzvvOEWnuE3CCjjT7UiRnDGJxmAcVKJIlFgK6DY9RB98eLr1OPigPEOGg==", + "version": "5.60.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.60.0.tgz", + "integrity": "sha512-R43thAuwarC99SnvrBmh26tc7F6sPa2B3evkXp/8q954kYL6Ro56AwASYWtEEi+4j09GbiNAHqYwNNZuNlARGQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.23.0", - "@typescript-eslint/visitor-keys": "5.23.0", - "debug": "^4.3.2", - "globby": "^11.0.4", + "@typescript-eslint/types": "5.60.0", + "@typescript-eslint/visitor-keys": "5.60.0", + "debug": "^4.3.4", + "globby": "^11.1.0", "is-glob": "^4.0.3", - "semver": "^7.3.5", + "semver": "^7.3.7", "tsutils": "^3.21.0" }, "engines": { @@ -1871,17 +1926,19 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.23.0.tgz", - "integrity": "sha512-dbgaKN21drqpkbbedGMNPCtRPZo1IOUr5EI9Jrrh99r5UW5Q0dz46RKXeSBoPV+56R6dFKpbrdhgUNSJsDDRZA==", + "version": "5.60.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.60.0.tgz", + "integrity": "sha512-ba51uMqDtfLQ5+xHtwlO84vkdjrqNzOnqrnwbMHMRY8Tqeme8C2Q8Fc7LajfGR+e3/4LoYiWXUM6BpIIbHJ4hQ==", "dev": true, "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.23.0", - "@typescript-eslint/types": "5.23.0", - "@typescript-eslint/typescript-estree": "5.23.0", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.60.0", + "@typescript-eslint/types": "5.60.0", + "@typescript-eslint/typescript-estree": "5.60.0", "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" + "semver": "^7.3.7" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1895,13 +1952,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.23.0.tgz", - "integrity": "sha512-Vd4mFNchU62sJB8pX19ZSPog05B0Y0CE2UxAZPT5k4iqhRYjPnqyY3woMxCd0++t9OTqkgjST+1ydLBi7e2Fvg==", + "version": "5.60.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.60.0.tgz", + "integrity": "sha512-wm9Uz71SbCyhUKgcaPRauBdTegUyY/ZWl8gLwD/i/ybJqscrrdVSFImpvUz16BLPChIeKBK5Fa9s6KDQjsjyWw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.23.0", - "eslint-visitor-keys": "^3.0.0" + "@typescript-eslint/types": "5.60.0", + "eslint-visitor-keys": "^3.3.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1993,6 +2050,12 @@ "node": ">=8" } }, + "node_modules/ansi-sequence-parser": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.0.tgz", + "integrity": "sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==", + "dev": true + }, "node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -2088,14 +2151,6 @@ "node": ">=8" } }, - "node_modules/async-mutex": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.3.2.tgz", - "integrity": "sha512-HuTK7E7MT7jZEh1P9GtRW9+aTWiDWWi9InbZ5hjxrnRa39KS4BW04+xLBhYNS2aXhHUIKZSw3gj4Pn1pj+qGAA==", - "dependencies": { - "tslib": "^2.3.1" - } - }, "node_modules/babel-jest": { "version": "28.1.3", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz", @@ -3192,9 +3247,9 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -3232,9 +3287,9 @@ "dev": true }, "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -3514,6 +3569,12 @@ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "dev": true }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -3674,6 +3735,15 @@ "node": ">= 0.4" } }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -4695,9 +4765,9 @@ } }, "node_modules/jsonc-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", - "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", "dev": true }, "node_modules/jsonfile": { @@ -4876,9 +4946,9 @@ } }, "node_modules/marked": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.15.tgz", - "integrity": "sha512-esX5lPdTfG4p8LDkv+obbRCyOKzB+820ZZyMOXJZygZBHrH9b3xXR64X4kT3sPe9Nx8qQXbmcz6kFSMt4Nfk6Q==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", "dev": true, "bin": { "marked": "bin/marked.js" @@ -4965,6 +5035,12 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, "node_modules/node-forge": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", @@ -5496,6 +5572,18 @@ "node": ">= 6" } }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dev": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/regenerator-runtime": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", @@ -5722,15 +5810,49 @@ "node": ">=8" } }, + "node_modules/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dev": true, + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/shiki": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.10.1.tgz", - "integrity": "sha512-VsY7QJVzU51j5o1+DguUd+6vmCmZ5v/6gYu4vyYAhzjuNQU6P/vmSy4uQaOhvje031qQMiW0d2BwgMH52vqMng==", + "version": "0.14.3", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.3.tgz", + "integrity": "sha512-U3S/a+b0KS+UkTyMjoNojvTgrBHjgp7L6ovhFVZsXmBGnVdQ4K4U9oK0z63w538S91ATngv1vXigHCSWOwnr+g==", "dev": true, "dependencies": { - "jsonc-parser": "^3.0.0", - "vscode-oniguruma": "^1.6.1", - "vscode-textmate": "5.2.0" + "ansi-sequence-parser": "^1.1.0", + "jsonc-parser": "^3.2.0", + "vscode-oniguruma": "^1.7.0", + "vscode-textmate": "^8.0.0" + } + }, + "node_modules/shx": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz", + "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", + "dev": true, + "dependencies": { + "minimist": "^1.2.3", + "shelljs": "^0.8.5" + }, + "bin": { + "shx": "lib/cli.js" + }, + "engines": { + "node": ">=6" } }, "node_modules/side-channel": { @@ -5971,9 +6093,9 @@ } }, "node_modules/systeminformation": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.12.1.tgz", - "integrity": "sha512-qAV0xSeSJlg0ZHmQ1T2rLrL54SATalBx6v4T8Sd5s17pEm6saX3LKzlPhfPx+EfT91y9yhRYnKhnMoLTFkxbqw==", + "version": "5.18.5", + "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.18.5.tgz", + "integrity": "sha512-es2jgMdpjNv9B/sQc0afGlnS2ip7/Nzlo9hAgkaq22NZftQuqHTnf/CuBadzOwl/DZB2aCTLDtzw83nAnT2owg==", "dev": true, "os": [ "darwin", @@ -6086,11 +6208,11 @@ } }, "node_modules/ts-custom-error": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ts-custom-error/-/ts-custom-error-3.2.0.tgz", - "integrity": "sha512-cBvC2QjtvJ9JfWLvstVnI45Y46Y5dMxIaG1TDMGAD/R87hpvqFL+7LhvUDhnRCfOnx/xitollFWWvUKKKhbN0A==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/ts-custom-error/-/ts-custom-error-3.2.2.tgz", + "integrity": "sha512-u0YCNf2lf6T/vHm+POKZK1yFKWpSpJitcUN3HxqyEcFuNnHIDbyuIQC7QDy/PsBX3giFyk9rt6BFqBAh2lsDZQ==", "engines": { - "node": ">=8.0.0" + "node": ">=14.0.0" } }, "node_modules/ts-jest": { @@ -6212,11 +6334,6 @@ "node": ">=4" } }, - "node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - }, "node_modules/tsutils": { "version": "3.21.0", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", @@ -6272,25 +6389,24 @@ } }, "node_modules/typedoc": { - "version": "0.22.15", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.22.15.tgz", - "integrity": "sha512-CMd1lrqQbFvbx6S9G6fL4HKp3GoIuhujJReWqlIvSb2T26vGai+8Os3Mde7Pn832pXYemd9BMuuYWhFpL5st0Q==", + "version": "0.23.28", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.23.28.tgz", + "integrity": "sha512-9x1+hZWTHEQcGoP7qFmlo4unUoVJLB0H/8vfO/7wqTnZxg4kPuji9y3uRzEu0ZKez63OJAUmiGhUrtukC6Uj3w==", "dev": true, "dependencies": { - "glob": "^7.2.0", "lunr": "^2.3.9", - "marked": "^4.0.12", - "minimatch": "^5.0.1", - "shiki": "^0.10.1" + "marked": "^4.2.12", + "minimatch": "^7.1.3", + "shiki": "^0.14.1" }, "bin": { "typedoc": "bin/typedoc" }, "engines": { - "node": ">= 12.10.0" + "node": ">= 14.14" }, "peerDependencies": { - "typescript": "4.0.x || 4.1.x || 4.2.x || 4.3.x || 4.4.x || 4.5.x || 4.6.x" + "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x" } }, "node_modules/typedoc/node_modules/brace-expansion": { @@ -6303,21 +6419,24 @@ } }, "node_modules/typedoc/node_modules/minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/typescript": { - "version": "4.6.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", - "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -6434,15 +6553,15 @@ } }, "node_modules/vscode-oniguruma": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz", - "integrity": "sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", + "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", "dev": true }, "node_modules/vscode-textmate": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", - "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", + "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==", "dev": true }, "node_modules/walker": { @@ -7102,6 +7221,21 @@ } } }, + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.3.0" + } + }, + "@eslint-community/regexpp": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", + "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", + "dev": true + }, "@eslint/eslintrc": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.3.tgz", @@ -7282,6 +7416,39 @@ "strip-ansi": "^6.0.0" } }, + "@jest/create-cache-key-function": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-27.5.1.tgz", + "integrity": "sha512-dmH1yW+makpTSURTy8VzdUwFnfQh1G8R+DxO2Ho2FFmBbKFEVm+3jWdvFhE2VqB/LATCTokkP0dotjyQyw5/AQ==", + "dev": true, + "requires": { + "@jest/types": "^27.5.1" + }, + "dependencies": { + "@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + } + } + }, "@jest/environment": { "version": "28.1.3", "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz", @@ -7490,66 +7657,81 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "@matrixai/async-cancellable": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@matrixai/async-cancellable/-/async-cancellable-1.1.1.tgz", + "integrity": "sha512-f0yxu7dHwvffZ++7aCm2WIcCJn18uLcOTdCCwEA3R3KVHYE3TG/JNoTWD9/mqBkAV1AI5vBfJzg27WnF9rOUXQ==" + }, "@matrixai/async-init": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@matrixai/async-init/-/async-init-1.8.2.tgz", - "integrity": "sha512-HAJ5hB1sLYHSbTZ6Ana126v10wFfXrKOYbLIyFuX4yspyjRM9akUVGQdP9H8SoxR35GtZoiJuqRjaRwxNk1KNQ==", + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/@matrixai/async-init/-/async-init-1.8.4.tgz", + "integrity": "sha512-33cGC7kHTs9KKwMHJA5d5XURWhx3QUq7lLxPEXLoVfWdTHixcWNvtfshAOso0hbRfx1P3ZSgsb+ZHaIASHhWfg==", "requires": { - "@matrixai/async-locks": "^3.1.2", - "@matrixai/errors": "^1.1.3" + "@matrixai/async-locks": "^4.0.0", + "@matrixai/errors": "^1.1.7" } }, "@matrixai/async-locks": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@matrixai/async-locks/-/async-locks-3.1.2.tgz", - "integrity": "sha512-rIA89EGBNlWV59pLVwx7aqlKWVJRCOsVi6evt8HoN6dyvyyns8//Q8PyBcg5ay0GjLkqsXKQjYXMRif5OB3VSg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@matrixai/async-locks/-/async-locks-4.0.0.tgz", + "integrity": "sha512-u/3fOdtjOKcDYF8dDoPR1/+7nmOkhxo42eBpXTEgfI0hLPGI37PoW7tjLvwy+O51Quy1HGOwhsR/Dgr4x+euug==", "requires": { - "@matrixai/errors": "^1.1.3", - "@matrixai/resources": "^1.1.4", - "async-mutex": "^0.3.2" + "@matrixai/async-cancellable": "^1.1.1", + "@matrixai/errors": "^1.1.7", + "@matrixai/resources": "^1.1.5", + "@matrixai/timer": "^1.1.1" } }, "@matrixai/db": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@matrixai/db/-/db-5.0.3.tgz", - "integrity": "sha512-/BNbg+vzFw8fv5e7KXZTXb5CvZvFUjwH5cI4l7kZ/kUHTWKgVSvdxz77h7njYDuhHStY6sSHnVAlWrgczFbQ8w==", - "requires": { - "@matrixai/async-init": "^1.8.1", - "@matrixai/async-locks": "^3.1.1", - "@matrixai/errors": "^1.1.2", - "@matrixai/logger": "^3.0.0", - "@matrixai/resources": "^1.1.3", - "@matrixai/workers": "^1.3.5", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@matrixai/db/-/db-5.2.0.tgz", + "integrity": "sha512-CZt4o1FHyeLvSKXbcTLZpTNSvIhq5a4TyO4FJDkTemTWSXM82Y6nTPc+LYESe37ULP8jq3cO3OD30lLcS+k0lA==", + "requires": { + "@matrixai/async-init": "^1.8.4", + "@matrixai/async-locks": "^4.0.0", + "@matrixai/errors": "^1.1.7", + "@matrixai/logger": "^3.1.0", + "@matrixai/resources": "^1.1.5", + "@matrixai/workers": "^1.3.7", "node-gyp-build": "4.4.0", "threads": "^1.6.5" } }, "@matrixai/errors": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@matrixai/errors/-/errors-1.1.3.tgz", - "integrity": "sha512-SqHSDd1E2IUXlqvVmEvyGChBrnQUTTHjy4hTc1SmcDBttgqS4QgBXH7aovk6Eviuhq6unSWkA9nyBDDXOT3DJA==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@matrixai/errors/-/errors-1.1.7.tgz", + "integrity": "sha512-WD6MrlfgtNSTfXt60lbMgwasS5T7bdRgH4eYSOxV+KWngqlkEij9EoDt5LwdvcMD1yuC33DxPTnH4Xu2XV3nMw==", "requires": { - "ts-custom-error": "^3.2.0" + "ts-custom-error": "3.2.2" } }, "@matrixai/logger": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@matrixai/logger/-/logger-3.0.0.tgz", - "integrity": "sha512-J2KMMw4FCHHmIacRfbU3mBPMvGxxwRc4Y8eFEtzkOcL8WhqBfWKiZ96xNduJGxUo+nfTlj+Q2Ep9RwRw3FCxMw==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@matrixai/logger/-/logger-3.1.0.tgz", + "integrity": "sha512-C4JWpgbNik3V99bfGfDell5cH3JULD67eEq9CeXl4rYgsvanF8hhuY84ZYvndPhimt9qjA9/Z8uExKGoiv1zVw==" }, "@matrixai/resources": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@matrixai/resources/-/resources-1.1.4.tgz", - "integrity": "sha512-YZSMtklbXah0+SxcKOVEm0ONQdWhlJecQ1COx6hg9Dl80WOybZjZ9A+N+OZfvWk9y25NuoIPzOsjhr8G1aTnIg==" + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@matrixai/resources/-/resources-1.1.5.tgz", + "integrity": "sha512-m/DEZEe3wHqWEPTyoBtzFF6U9vWYhEnQtGgwvqiAlTxTM0rk96UBpWjDZCTF/vYG11ZlmlQFtg5H+zGgbjaB3Q==" + }, + "@matrixai/timer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@matrixai/timer/-/timer-1.1.1.tgz", + "integrity": "sha512-8UKDoGuwKC6BvrY/yANJVH29v71wgQKH/tJlxMPohGxmzVUQO5+JeI4lUYVHTs2vq1AyKAWloF5fOig+I1dyGA==", + "requires": { + "@matrixai/async-cancellable": "^1.1.1", + "@matrixai/errors": "^1.1.7" + } }, "@matrixai/workers": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/@matrixai/workers/-/workers-1.3.6.tgz", - "integrity": "sha512-vllPhkBpEl5tNCXIN3PuiYn/fQCtQZUHsvCybkNXj/RZuBjUjktt2Yb+yCXxnw8/QRtNBDnts63qwTGCHFqU2Q==", + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@matrixai/workers/-/workers-1.3.7.tgz", + "integrity": "sha512-37Zm8OqrhLzcPY8uBWBhleN0THOxC49SwtkqTw8Ettb/Csm51MlGoa05NJa0NcBCsYfPucLK/qn1yFIGFrqWhw==", "requires": { - "@matrixai/async-init": "^1.8.2", - "@matrixai/errors": "^1.1.2", - "@matrixai/logger": "^3.0.0", + "@matrixai/async-init": "^1.8.4", + "@matrixai/errors": "^1.1.7", + "@matrixai/logger": "^3.1.0", "threads": "^1.6.5" } }, @@ -7604,117 +7786,103 @@ } }, "@swc/core": { - "version": "1.2.218", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.218.tgz", - "integrity": "sha512-wzXTeBUi3YAHr305lCo1tlxRj5Zpk7hu6rmulngH06NgrH7fS6bj8IaR7K2QPZ4ZZ4U+TGS2tOKbXBmqeMRUtg==", - "dev": true, - "requires": { - "@swc/core-android-arm-eabi": "1.2.218", - "@swc/core-android-arm64": "1.2.218", - "@swc/core-darwin-arm64": "1.2.218", - "@swc/core-darwin-x64": "1.2.218", - "@swc/core-freebsd-x64": "1.2.218", - "@swc/core-linux-arm-gnueabihf": "1.2.218", - "@swc/core-linux-arm64-gnu": "1.2.218", - "@swc/core-linux-arm64-musl": "1.2.218", - "@swc/core-linux-x64-gnu": "1.2.218", - "@swc/core-linux-x64-musl": "1.2.218", - "@swc/core-win32-arm64-msvc": "1.2.218", - "@swc/core-win32-ia32-msvc": "1.2.218", - "@swc/core-win32-x64-msvc": "1.2.218" - } - }, - "@swc/core-android-arm-eabi": { - "version": "1.2.218", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.218.tgz", - "integrity": "sha512-Q/uLCh262t3xxNzhCz+ZW9t+g2nWd0gZZO4jMYFWJs7ilKVNsBfRtfnNGGACHzkVuWLNDIWtAS2PSNodl7VUHQ==", + "version": "1.3.66", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.66.tgz", + "integrity": "sha512-Hpf91kH5ly7fHkWnApwryTQryT+TO4kMMPH3WyciUSQOWLE3UuQz1PtETHQQk7PZ/b1QF0qQurJrgfBr5bSKUA==", "dev": true, - "optional": true - }, - "@swc/core-android-arm64": { - "version": "1.2.218", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.218.tgz", - "integrity": "sha512-dy+8lUHUcyrkfPcl7azEQ4M44duRo1Uibz1E5/tltXCGoR6tu2ZN2VkqEKgA2a9XR3UD8/x4lv2r5evwJWy+uQ==", - "dev": true, - "optional": true + "requires": { + "@swc/core-darwin-arm64": "1.3.66", + "@swc/core-darwin-x64": "1.3.66", + "@swc/core-linux-arm-gnueabihf": "1.3.66", + "@swc/core-linux-arm64-gnu": "1.3.66", + "@swc/core-linux-arm64-musl": "1.3.66", + "@swc/core-linux-x64-gnu": "1.3.66", + "@swc/core-linux-x64-musl": "1.3.66", + "@swc/core-win32-arm64-msvc": "1.3.66", + "@swc/core-win32-ia32-msvc": "1.3.66", + "@swc/core-win32-x64-msvc": "1.3.66" + } }, "@swc/core-darwin-arm64": { - "version": "1.2.218", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.218.tgz", - "integrity": "sha512-aTpFjWio8G0oukN76VtXCBPtFzH0PXIQ+1dFjGGkzrBcU5suztCCbhPBGhKRoWp3NJBwfPDwwWzmG+ddXrVAKg==", + "version": "1.3.66", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.66.tgz", + "integrity": "sha512-UijJsvuLy73vxeVYEy7urIHksXS+3BdvJ9s9AY+bRMSQW483NO7RLp8g4FdTyJbRaN0BH15SQnY0dcjQBkVuHw==", "dev": true, "optional": true }, "@swc/core-darwin-x64": { - "version": "1.2.218", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.218.tgz", - "integrity": "sha512-H3w/gNzROE6gVPZCAg5qvvPihzlg88Yi7HWb/mowfpNqH9/iJ8XMdwqJyovnfUeUXsuJQBFv6uXv/ri7qhGMHA==", - "dev": true, - "optional": true - }, - "@swc/core-freebsd-x64": { - "version": "1.2.218", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.218.tgz", - "integrity": "sha512-kkch07yCSlpUrSMp0FZPWtMHJjh3lfHiwp7JYNf6CUl5xXlgT19NeomPYq31dbTzPV2VnE7TVVlAawIjuuOH4g==", + "version": "1.3.66", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.66.tgz", + "integrity": "sha512-xGsHKvViQnwTNLF30Y/5OqWdnN6RsiyUI8awZXfz1sHcXCEaLe+v+WLQ+/E8sgw0YUkYVHzzfV/sAN2CezJK5Q==", "dev": true, "optional": true }, "@swc/core-linux-arm-gnueabihf": { - "version": "1.2.218", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.218.tgz", - "integrity": "sha512-vwEgvtD9f/+0HFxYD5q4sd8SG6zd0cxm17cwRGZ6jWh/d4Ninjht3CpDGE1ffh9nJ+X3Mb/7rjU/kTgWFz5qfg==", + "version": "1.3.66", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.66.tgz", + "integrity": "sha512-gNbLcSIV2pq90BkMSpzvK4xPXOl8GEF3YR4NaqF0CYSzQsVXXTTqMuX/r26xNYudBKzH0345S1MpoRk2qricnA==", "dev": true, "optional": true }, "@swc/core-linux-arm64-gnu": { - "version": "1.2.218", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.218.tgz", - "integrity": "sha512-g5PQI6COUHV7x7tyaZQn6jXWtOLXXNIEQK1HS5/e+6kqqsM2NsndE9bjLhoH1EQuXiN2eUjAR/ZDOFAg102aRw==", + "version": "1.3.66", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.66.tgz", + "integrity": "sha512-cJSQ0oplyWbJqy4rzVcnBYLAi6z1QT3QCcR7iAey0aAmCvfRBZJfXlyjggMjn4iosuadkauwCZR1xYNhBDRn7w==", "dev": true, "optional": true }, "@swc/core-linux-arm64-musl": { - "version": "1.2.218", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.218.tgz", - "integrity": "sha512-IETYHB6H01NmVmlw+Ng8nkjdFBv1exGQRR74GAnHis1bVx1Uq14hREIF6XT3I1Aj26nRwlGkIYQuEKnFO5/j3Q==", + "version": "1.3.66", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.66.tgz", + "integrity": "sha512-GDQZpcB9aGxG9PTA2shdIkoMZlGK5omJ8NR49uoBTtLBVYiGeXAwV0U1Uaw8kXEZj9i7wZDkvjzjSaNH3evRsg==", "dev": true, "optional": true }, "@swc/core-linux-x64-gnu": { - "version": "1.2.218", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.218.tgz", - "integrity": "sha512-PK39Zg4/YZbfchQRw77iVfB7Qat7QaK58sQt8enH39CUMXlJ+GSfC0Fqw2mtZ12sFGwmsGrK9yBy3ZVoOws5Ng==", + "version": "1.3.66", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.66.tgz", + "integrity": "sha512-lg8E4O/Pd9KfK0lajdinVMuGME8dSv7V9arhEpmlfGE2eXSDCWqDn5Htk5QVBstt9lt1lsRhWHJ/YYc2eQY30Q==", "dev": true, "optional": true }, "@swc/core-linux-x64-musl": { - "version": "1.2.218", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.218.tgz", - "integrity": "sha512-SNjrzORJYiKTSmFbaBkKZAf5B/PszwoZoFZOcd86AG192zsvQBSvKjQzMjT5rDZxB+sOnhRE7wH/bvqxZishQQ==", + "version": "1.3.66", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.66.tgz", + "integrity": "sha512-lo8ZcAO/zL2pZWH+LZIyge8u2MklaeuT6+FpVVpBFktMVdYXbaVtzpvWbgRFBZHvL3SRDF+u8jxjtkXhvGUpTw==", "dev": true, "optional": true }, "@swc/core-win32-arm64-msvc": { - "version": "1.2.218", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.218.tgz", - "integrity": "sha512-lVXFWkYl+w8+deq9mgGsfvSY5Gr1RRjFgqZ+0wMZgyaonfx7jNn3TILUwc7egumEwxK0anNriVZCyKfcO3ZIjA==", + "version": "1.3.66", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.66.tgz", + "integrity": "sha512-cQoVwBuJY5WkHbfpCOlndNwYr1ZThatRjQQvKy540NUIeAEk9Fa6ozlDBtU75UdaWKtUG6YQ/bWz+KTemheVxw==", "dev": true, "optional": true }, "@swc/core-win32-ia32-msvc": { - "version": "1.2.218", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.218.tgz", - "integrity": "sha512-jgP+NZsHUh9Cp8PcXznnkpJTW3hPDLUgsXI0NKfE+8+Xvc6hALHxl6K46IyPYU67FfFlegYcBSNkOgpc85gk0A==", + "version": "1.3.66", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.66.tgz", + "integrity": "sha512-y/FrAIINK4UBeUQQknGlWXEyjo+MBvjF7WkUf2KP7sNr9EHHy8+dXohAGd5Anz0eJrqOM1ZXR/GEjxRp7bGQ1Q==", "dev": true, "optional": true }, "@swc/core-win32-x64-msvc": { - "version": "1.2.218", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.218.tgz", - "integrity": "sha512-XYLjX00KV4ft324Q3QDkw61xHkoN7EKkVvIpb0wXaf6wVshwU+BCDyPw2CSg4PQecNP8QGgMRQf9QM7xNtEM7A==", + "version": "1.3.66", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.66.tgz", + "integrity": "sha512-yI64ACzS14qFLrfyO12qW+f/UROTotzDeEbuyJAaPD2IZexoT1cICznI3sBmIfrSt33mVuW8eF5m3AG/NUImzw==", "dev": true, "optional": true }, + "@swc/jest": { + "version": "0.2.26", + "resolved": "https://registry.npmjs.org/@swc/jest/-/jest-0.2.26.tgz", + "integrity": "sha512-7lAi7q7ShTO3E5Gt1Xqf3pIhRbERxR1DUxvtVa9WKzIB+HGQ7wZP5sYx86zqnaEoKKGhmOoZ7gyW0IRu8Br5+A==", + "dev": true, + "requires": { + "@jest/create-cache-key-function": "^27.4.2", + "jsonc-parser": "^3.2.0" + } + }, "@tsconfig/node10": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", @@ -7824,9 +7992,9 @@ } }, "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", + "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", "dev": true }, "@types/json5": { @@ -7836,9 +8004,9 @@ "dev": true }, "@types/node": { - "version": "16.11.34", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.34.tgz", - "integrity": "sha512-UrWGDyLAlQ2Z8bNOGWTsqbP9ZcBeTYBVuTRNxXTztBy5KhWUFI3BaeDWoCP/CzV/EVGgO1NTYzv9ZytBI9GAEw==", + "version": "18.16.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.18.tgz", + "integrity": "sha512-/aNaQZD0+iSBAGnvvN2Cx92HqE5sZCPZtx2TsK+4nvV23fFe09jVDvpArXr2j9DnYlzuU9WuoykDDc6wqvpNcw==", "dev": true }, "@types/node-forge": { @@ -7866,6 +8034,12 @@ "safe-buffer": "*" } }, + "@types/semver": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", + "dev": true + }, "@types/stack-utils": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", @@ -7888,98 +8062,102 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.23.0.tgz", - "integrity": "sha512-hEcSmG4XodSLiAp1uxv/OQSGsDY6QN3TcRU32gANp+19wGE1QQZLRS8/GV58VRUoXhnkuJ3ZxNQ3T6Z6zM59DA==", + "version": "5.60.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.60.0.tgz", + "integrity": "sha512-78B+anHLF1TI8Jn/cD0Q00TBYdMgjdOn980JfAVa9yw5sop8nyTfVOQAv6LWywkOGLclDBtv5z3oxN4w7jxyNg==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.23.0", - "@typescript-eslint/type-utils": "5.23.0", - "@typescript-eslint/utils": "5.23.0", - "debug": "^4.3.2", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.1.8", - "regexpp": "^3.2.0", - "semver": "^7.3.5", + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.60.0", + "@typescript-eslint/type-utils": "5.60.0", + "@typescript-eslint/utils": "5.60.0", + "debug": "^4.3.4", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", "tsutils": "^3.21.0" } }, "@typescript-eslint/parser": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.23.0.tgz", - "integrity": "sha512-V06cYUkqcGqpFjb8ttVgzNF53tgbB/KoQT/iB++DOIExKmzI9vBJKjZKt/6FuV9c+zrDsvJKbJ2DOCYwX91cbw==", + "version": "5.60.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.60.0.tgz", + "integrity": "sha512-jBONcBsDJ9UoTWrARkRRCgDz6wUggmH5RpQVlt7BimSwaTkTjwypGzKORXbR4/2Hqjk9hgwlon2rVQAjWNpkyQ==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.23.0", - "@typescript-eslint/types": "5.23.0", - "@typescript-eslint/typescript-estree": "5.23.0", - "debug": "^4.3.2" + "@typescript-eslint/scope-manager": "5.60.0", + "@typescript-eslint/types": "5.60.0", + "@typescript-eslint/typescript-estree": "5.60.0", + "debug": "^4.3.4" } }, "@typescript-eslint/scope-manager": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.23.0.tgz", - "integrity": "sha512-EhjaFELQHCRb5wTwlGsNMvzK9b8Oco4aYNleeDlNuL6qXWDF47ch4EhVNPh8Rdhf9tmqbN4sWDk/8g+Z/J8JVw==", + "version": "5.60.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.60.0.tgz", + "integrity": "sha512-hakuzcxPwXi2ihf9WQu1BbRj1e/Pd8ZZwVTG9kfbxAMZstKz8/9OoexIwnmLzShtsdap5U/CoQGRCWlSuPbYxQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.23.0", - "@typescript-eslint/visitor-keys": "5.23.0" + "@typescript-eslint/types": "5.60.0", + "@typescript-eslint/visitor-keys": "5.60.0" } }, "@typescript-eslint/type-utils": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.23.0.tgz", - "integrity": "sha512-iuI05JsJl/SUnOTXA9f4oI+/4qS/Zcgk+s2ir+lRmXI+80D8GaGwoUqs4p+X+4AxDolPpEpVUdlEH4ADxFy4gw==", + "version": "5.60.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.60.0.tgz", + "integrity": "sha512-X7NsRQddORMYRFH7FWo6sA9Y/zbJ8s1x1RIAtnlj6YprbToTiQnM6vxcMu7iYhdunmoC0rUWlca13D5DVHkK2g==", "dev": true, "requires": { - "@typescript-eslint/utils": "5.23.0", - "debug": "^4.3.2", + "@typescript-eslint/typescript-estree": "5.60.0", + "@typescript-eslint/utils": "5.60.0", + "debug": "^4.3.4", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.23.0.tgz", - "integrity": "sha512-NfBsV/h4dir/8mJwdZz7JFibaKC3E/QdeMEDJhiAE3/eMkoniZ7MjbEMCGXw6MZnZDMN3G9S0mH/6WUIj91dmw==", + "version": "5.60.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.60.0.tgz", + "integrity": "sha512-ascOuoCpNZBccFVNJRSC6rPq4EmJ2NkuoKnd6LDNyAQmdDnziAtxbCGWCbefG1CNzmDvd05zO36AmB7H8RzKPA==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.23.0.tgz", - "integrity": "sha512-xE9e0lrHhI647SlGMl+m+3E3CKPF1wzvvOEWnuE3CCjjT7UiRnDGJxmAcVKJIlFgK6DY9RB98eLr1OPigPEOGg==", + "version": "5.60.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.60.0.tgz", + "integrity": "sha512-R43thAuwarC99SnvrBmh26tc7F6sPa2B3evkXp/8q954kYL6Ro56AwASYWtEEi+4j09GbiNAHqYwNNZuNlARGQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.23.0", - "@typescript-eslint/visitor-keys": "5.23.0", - "debug": "^4.3.2", - "globby": "^11.0.4", + "@typescript-eslint/types": "5.60.0", + "@typescript-eslint/visitor-keys": "5.60.0", + "debug": "^4.3.4", + "globby": "^11.1.0", "is-glob": "^4.0.3", - "semver": "^7.3.5", + "semver": "^7.3.7", "tsutils": "^3.21.0" } }, "@typescript-eslint/utils": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.23.0.tgz", - "integrity": "sha512-dbgaKN21drqpkbbedGMNPCtRPZo1IOUr5EI9Jrrh99r5UW5Q0dz46RKXeSBoPV+56R6dFKpbrdhgUNSJsDDRZA==", + "version": "5.60.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.60.0.tgz", + "integrity": "sha512-ba51uMqDtfLQ5+xHtwlO84vkdjrqNzOnqrnwbMHMRY8Tqeme8C2Q8Fc7LajfGR+e3/4LoYiWXUM6BpIIbHJ4hQ==", "dev": true, "requires": { + "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.23.0", - "@typescript-eslint/types": "5.23.0", - "@typescript-eslint/typescript-estree": "5.23.0", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.60.0", + "@typescript-eslint/types": "5.60.0", + "@typescript-eslint/typescript-estree": "5.60.0", "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" + "semver": "^7.3.7" } }, "@typescript-eslint/visitor-keys": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.23.0.tgz", - "integrity": "sha512-Vd4mFNchU62sJB8pX19ZSPog05B0Y0CE2UxAZPT5k4iqhRYjPnqyY3woMxCd0++t9OTqkgjST+1ydLBi7e2Fvg==", + "version": "5.60.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.60.0.tgz", + "integrity": "sha512-wm9Uz71SbCyhUKgcaPRauBdTegUyY/ZWl8gLwD/i/ybJqscrrdVSFImpvUz16BLPChIeKBK5Fa9s6KDQjsjyWw==", "dev": true, "requires": { - "@typescript-eslint/types": "5.23.0", - "eslint-visitor-keys": "^3.0.0" + "@typescript-eslint/types": "5.60.0", + "eslint-visitor-keys": "^3.3.0" } }, "acorn": { @@ -8036,6 +8214,12 @@ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, + "ansi-sequence-parser": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.0.tgz", + "integrity": "sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==", + "dev": true + }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -8104,14 +8288,6 @@ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, - "async-mutex": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.3.2.tgz", - "integrity": "sha512-HuTK7E7MT7jZEh1P9GtRW9+aTWiDWWi9InbZ5hjxrnRa39KS4BW04+xLBhYNS2aXhHUIKZSw3gj4Pn1pj+qGAA==", - "requires": { - "tslib": "^2.3.1" - } - }, "babel-jest": { "version": "28.1.3", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz", @@ -8948,9 +9124,9 @@ "dev": true }, "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -8984,9 +9160,9 @@ "dev": true }, "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, "requires": { "reusify": "^1.0.4" @@ -9190,6 +9366,12 @@ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "dev": true }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -9299,6 +9481,12 @@ "side-channel": "^1.0.4" } }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -10045,9 +10233,9 @@ "dev": true }, "jsonc-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", - "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", "dev": true }, "jsonfile": { @@ -10193,9 +10381,9 @@ } }, "marked": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.15.tgz", - "integrity": "sha512-esX5lPdTfG4p8LDkv+obbRCyOKzB+820ZZyMOXJZygZBHrH9b3xXR64X4kT3sPe9Nx8qQXbmcz6kFSMt4Nfk6Q==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", "dev": true }, "merge-stream": { @@ -10258,6 +10446,12 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, + "natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, "node-forge": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", @@ -10631,6 +10825,15 @@ "util-deprecate": "^1.0.1" } }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dev": true, + "requires": { + "resolve": "^1.1.6" + } + }, "regenerator-runtime": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", @@ -10770,15 +10973,37 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, + "shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, "shiki": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.10.1.tgz", - "integrity": "sha512-VsY7QJVzU51j5o1+DguUd+6vmCmZ5v/6gYu4vyYAhzjuNQU6P/vmSy4uQaOhvje031qQMiW0d2BwgMH52vqMng==", + "version": "0.14.3", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.3.tgz", + "integrity": "sha512-U3S/a+b0KS+UkTyMjoNojvTgrBHjgp7L6ovhFVZsXmBGnVdQ4K4U9oK0z63w538S91ATngv1vXigHCSWOwnr+g==", + "dev": true, + "requires": { + "ansi-sequence-parser": "^1.1.0", + "jsonc-parser": "^3.2.0", + "vscode-oniguruma": "^1.7.0", + "vscode-textmate": "^8.0.0" + } + }, + "shx": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz", + "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", "dev": true, "requires": { - "jsonc-parser": "^3.0.0", - "vscode-oniguruma": "^1.6.1", - "vscode-textmate": "5.2.0" + "minimist": "^1.2.3", + "shelljs": "^0.8.5" } }, "side-channel": { @@ -10961,9 +11186,9 @@ "dev": true }, "systeminformation": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.12.1.tgz", - "integrity": "sha512-qAV0xSeSJlg0ZHmQ1T2rLrL54SATalBx6v4T8Sd5s17pEm6saX3LKzlPhfPx+EfT91y9yhRYnKhnMoLTFkxbqw==", + "version": "5.18.5", + "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.18.5.tgz", + "integrity": "sha512-es2jgMdpjNv9B/sQc0afGlnS2ip7/Nzlo9hAgkaq22NZftQuqHTnf/CuBadzOwl/DZB2aCTLDtzw83nAnT2owg==", "dev": true }, "terminal-link": { @@ -11036,9 +11261,9 @@ } }, "ts-custom-error": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ts-custom-error/-/ts-custom-error-3.2.0.tgz", - "integrity": "sha512-cBvC2QjtvJ9JfWLvstVnI45Y46Y5dMxIaG1TDMGAD/R87hpvqFL+7LhvUDhnRCfOnx/xitollFWWvUKKKhbN0A==" + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/ts-custom-error/-/ts-custom-error-3.2.2.tgz", + "integrity": "sha512-u0YCNf2lf6T/vHm+POKZK1yFKWpSpJitcUN3HxqyEcFuNnHIDbyuIQC7QDy/PsBX3giFyk9rt6BFqBAh2lsDZQ==" }, "ts-jest": { "version": "28.0.7", @@ -11106,11 +11331,6 @@ } } }, - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - }, "tsutils": { "version": "3.21.0", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", @@ -11150,16 +11370,15 @@ "dev": true }, "typedoc": { - "version": "0.22.15", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.22.15.tgz", - "integrity": "sha512-CMd1lrqQbFvbx6S9G6fL4HKp3GoIuhujJReWqlIvSb2T26vGai+8Os3Mde7Pn832pXYemd9BMuuYWhFpL5st0Q==", + "version": "0.23.28", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.23.28.tgz", + "integrity": "sha512-9x1+hZWTHEQcGoP7qFmlo4unUoVJLB0H/8vfO/7wqTnZxg4kPuji9y3uRzEu0ZKez63OJAUmiGhUrtukC6Uj3w==", "dev": true, "requires": { - "glob": "^7.2.0", "lunr": "^2.3.9", - "marked": "^4.0.12", - "minimatch": "^5.0.1", - "shiki": "^0.10.1" + "marked": "^4.2.12", + "minimatch": "^7.1.3", + "shiki": "^0.14.1" }, "dependencies": { "brace-expansion": { @@ -11172,9 +11391,9 @@ } }, "minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -11183,9 +11402,9 @@ } }, "typescript": { - "version": "4.6.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", - "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "dev": true }, "unbox-primitive": { @@ -11267,15 +11486,15 @@ } }, "vscode-oniguruma": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz", - "integrity": "sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", + "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", "dev": true }, "vscode-textmate": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", - "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", + "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==", "dev": true }, "walker": { diff --git a/package.json b/package.json index e4a9962e..de9b0408 100644 --- a/package.json +++ b/package.json @@ -33,24 +33,24 @@ "types": "dist/index.d.ts", "scripts": { "prepare": "tsc -p ./tsconfig.build.json", - "build": "rimraf ./dist && tsc -p ./tsconfig.build.json", + "build": "shx rm -rf ./dist && tsc -p ./tsconfig.build.json", "postversion": "npm install --package-lock-only --ignore-scripts --silent", "ts-node": "ts-node", "test": "jest", "lint": "eslint '{src,tests,scripts,benches}/**/*.{js,ts}'", "lintfix": "eslint '{src,tests,scripts,benches}/**/*.{js,ts}' --fix", "lint-shell": "find ./src ./tests ./scripts -type f -regextype posix-extended -regex '.*\\.(sh)' -exec shellcheck {} +", - "docs": "rimraf ./docs && typedoc --gitRevision master --tsconfig ./tsconfig.build.json --out ./docs src", - "bench": "rimraf ./benches/results && ts-node ./benches" + "docs": "shx rm -rf ./docs && typedoc --gitRevision master --tsconfig ./tsconfig.build.json --out ./docs src", + "bench": "shx rm -rf ./benches/results && ts-node ./benches" }, "dependencies": { - "@matrixai/async-init": "^1.8.2", - "@matrixai/async-locks": "^3.1.2", - "@matrixai/db": "^5.0.3", - "@matrixai/errors": "^1.1.3", - "@matrixai/logger": "^3.0.0", - "@matrixai/resources": "^1.1.4", - "@matrixai/workers": "^1.3.6", + "@matrixai/async-init": "^1.8.4", + "@matrixai/async-locks": "^4.0.0", + "@matrixai/db": "^5.2.0", + "@matrixai/errors": "^1.1.7", + "@matrixai/logger": "^3.1.0", + "@matrixai/resources": "^1.1.5", + "@matrixai/workers": "^1.3.7", "errno": "^0.1.7", "lexicographic-integer": "^1.1.0", "node-forge": "^1.3.1", @@ -60,30 +60,31 @@ "util-callbackify": "^1.0.0" }, "devDependencies": { - "@swc/core": "^1.2.215", + "@swc/core": "^1.3.62", + "@swc/jest": "^0.2.26", "@types/jest": "^28.1.3", - "@types/node": "^16.11.7", + "@types/node": "^18.15.0", "@types/node-forge": "^1.0.2", "@types/readable-stream": "^2.3.11", - "@typescript-eslint/eslint-plugin": "^5.23.0", - "@typescript-eslint/parser": "^5.23.0", + "@typescript-eslint/eslint-plugin": "^5.45.1", + "@typescript-eslint/parser": "^5.45.1", "benny": "^3.7.1", "common-tags": "^1.8.2", "eslint": "^8.15.0", "eslint-config-prettier": "^8.5.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-prettier": "^4.0.0", + "fast-check": "^3.0.1", "jest": "^28.1.1", "jest-extended": "^3.0.1", "jest-junit": "^14.0.0", "prettier": "^2.6.2", - "rimraf": "^3.0.2", - "systeminformation": "^5.12.1", + "shx": "^0.3.4", + "systeminformation": "^5.18.5", "ts-jest": "^28.0.5", "ts-node": "^10.9.1", "tsconfig-paths": "^3.9.0", - "typedoc": "^0.22.15", - "typescript": "^4.5.2", - "fast-check": "^3.0.1" + "typedoc": "^0.23.21", + "typescript": "^4.9.3" } } diff --git a/pkgs.nix b/pkgs.nix index a41cd7fc..22541d27 100644 --- a/pkgs.nix +++ b/pkgs.nix @@ -1,4 +1,8 @@ import ( - let rev = "ce6aa13369b667ac2542593170993504932eb836"; in + let rev = "f294325aed382b66c7a188482101b0f336d1d7db"; in builtins.fetchTarball "https://github.com/NixOS/nixpkgs/archive/${rev}.tar.gz" ) +# import ( +# let rev = "ce6aa13369b667ac2542593170993504932eb836"; in +# builtins.fetchTarball "https://github.com/NixOS/nixpkgs/archive/${rev}.tar.gz" +# ) diff --git a/scripts/brew-install.sh b/scripts/brew-install.sh index 2e222576..11215a63 100755 --- a/scripts/brew-install.sh +++ b/scripts/brew-install.sh @@ -10,5 +10,5 @@ export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 export HOMEBREW_NO_AUTO_UPDATE=1 export HOMEBREW_NO_ANALYTICS=1 -brew install node@16 -brew link --overwrite node@16 +brew install node@18 +brew link --overwrite node@18 diff --git a/scripts/choco-install.ps1 b/scripts/choco-install.ps1 index 765080a9..dc75d5e4 100755 --- a/scripts/choco-install.ps1 +++ b/scripts/choco-install.ps1 @@ -21,10 +21,10 @@ if ( $null -eq $env:ChocolateyInstall ) { New-Item -Path "${PSScriptRoot}\..\tmp\chocolatey" -ItemType "directory" -ErrorAction:SilentlyContinue choco source add --name="cache" --source="${PSScriptRoot}\..\tmp\chocolatey" --priority=1 -# Install nodejs v16.15.1 (will use cache if exists) +# Install nodejs v18.15.0 (will use cache if exists) $nodejs = "nodejs.install" -choco install "$nodejs" --version="16.15.1" --require-checksums -y +choco install "$nodejs" --version="18.15.0" --require-checksums -y # Internalise nodejs to cache if doesn't exist -if ( -not (Test-Path -Path "${PSScriptRoot}\..\tmp\chocolatey\$nodejs\$nodejs.16.15.1.nupkg" -PathType Leaf) ) { +if ( -not (Test-Path -Path "${PSScriptRoot}\..\tmp\chocolatey\$nodejs\$nodejs.18.15.0.nupkg" -PathType Leaf) ) { Save-ChocoPackage -PackageName $nodejs } diff --git a/shell.nix b/shell.nix index 6544862f..a6631384 100644 --- a/shell.nix +++ b/shell.nix @@ -25,7 +25,7 @@ mkShell { mkdir --parents "$(pwd)/tmp" # Built executables and NPM executables - export PATH="$(pwd)/dist/bin:$(npm bin):$PATH" + export PATH="$(pwd)/dist/bin:$(npm root)/.bin:$PATH" npm install --ignore-scripts diff --git a/src/EncryptedFS.ts b/src/EncryptedFS.ts index 9172486a..02717529 100644 --- a/src/EncryptedFS.ts +++ b/src/EncryptedFS.ts @@ -1,4 +1,4 @@ -import type { DBTransaction } from '@matrixai/db'; +import type { Crypto, DBTransaction } from '@matrixai/db'; import type { Navigated, ParsedPath, @@ -93,17 +93,24 @@ class EncryptedFS { logger?: Logger; fresh?: boolean; }): Promise { + let crypto: + | { + key: Buffer; + ops: Crypto; + } + | undefined; if (db == null) { + crypto = { + key: dbKey!, + ops: { + encrypt: utils.encrypt, + decrypt: utils.decrypt, + }, + }; try { db = await DB.createDB({ dbPath: dbPath!, - crypto: { - key: dbKey!, - ops: { - encrypt: utils.encrypt, - decrypt: utils.decrypt, - }, - }, + crypto, logger: logger.getChild(DB.name), fresh, }); @@ -158,6 +165,7 @@ class EncryptedFS { fdMgr = fdMgr ?? new FileDescriptorManager(iNodeMgr); const efs = new this({ db, + crypto, iNodeMgr, fdMgr, rootIno, @@ -175,6 +183,14 @@ class EncryptedFS { public readonly blockSize: number; protected db: DB; + /** + * If crypto is created and passed in. + * This means the DB object was created by ourselves. + * This means EFS will manage the lifecycle of the encapsulated DB. + * However if the DB was passed in from the outside. + * Then EFS will not manage the lifecycle of the DB. + */ + protected crypto?: { key: Buffer; ops: Crypto }; protected iNodeMgr: INodeManager; protected fdMgr: FileDescriptorManager; protected logger: Logger; @@ -186,6 +202,7 @@ class EncryptedFS { constructor({ db, + crypto, iNodeMgr, fdMgr, rootIno, @@ -196,6 +213,10 @@ class EncryptedFS { chrootParent, }: { db: DB; + crypto?: { + key: Buffer; + ops: Crypto; + }; iNodeMgr: INodeManager; fdMgr: FileDescriptorManager; rootIno: INodeIndex; @@ -207,6 +228,7 @@ class EncryptedFS { }) { this.logger = logger; this.db = db; + this.crypto = crypto; this.iNodeMgr = iNodeMgr; this.fdMgr = fdMgr; this.rootIno = rootIno; @@ -236,7 +258,9 @@ class EncryptedFS { } = {}): Promise { this.logger.info(`Starting ${this.constructor.name}`); if (this.chrootParent == null) { - await this.db.start({ fresh }); + if (this.crypto != null) { + await this.db.start({ crypto: this.crypto, fresh }); + } await this.iNodeMgr.start({ fresh }); } else { // If chrooted instance, add itself to the chroots set @@ -252,7 +276,9 @@ class EncryptedFS { await efsChrooted.stop(); } await this.iNodeMgr.stop(); - await this.db.stop(); + if (this.crypto != null) { + await this.db.stop(); + } } else { // If chrooted instance, delete itself from the chroots set this.chroots.delete(this); @@ -263,10 +289,13 @@ class EncryptedFS { public async destroy(): Promise { this.logger.info(`Destroying ${this.constructor.name}`); if (this.chrootParent == null) { - // No need to destroy with `this.iNodeMgr.destroy()` - // It would require restarting the DB - // It is sufficient to only destroy the database - await this.db.destroy(); + if (this.crypto != null) { + await this.db.destroy(); + } else { + // If it is not an encapsulated DB instance, + // then we only clear the inodes + await this.iNodeMgr.destroy(); + } } // No destruction procedures for chrooted instances this.logger.info(`Destroyed ${this.constructor.name}`); @@ -320,7 +349,9 @@ class EncryptedFS { }); // Chrooted EFS shares all of the dependencies // This means the dependencies are already in running state - const efsChrooted = new EncryptedFS({ + const efsChrooted = new (this.constructor as new ( + ...params: ConstructorParameters + ) => this)({ db: this.db, iNodeMgr: this.iNodeMgr, fdMgr: this.fdMgr, diff --git a/src/fd/FileDescriptorManager.ts b/src/fd/FileDescriptorManager.ts index 207fd8e0..f9497f58 100644 --- a/src/fd/FileDescriptorManager.ts +++ b/src/fd/FileDescriptorManager.ts @@ -1,6 +1,5 @@ import type { INodeIndex } from '../inodes/types'; import type { FdIndex } from './types'; - import type { INodeManager } from '../inodes'; import Counter from 'resource-counter'; import FileDescriptor from './FileDescriptor'; diff --git a/src/inodes/INodeManager.ts b/src/inodes/INodeManager.ts index f613007f..229efbad 100644 --- a/src/inodes/INodeManager.ts +++ b/src/inodes/INodeManager.ts @@ -207,7 +207,7 @@ class INodeManager { ): ResourceAcquire { return async () => { const [transactionRelease, tran] = await this.db.transaction()(); - await tran!.lock(...inos); + await tran!.lock(...inos.map((i) => i.toString())); return [transactionRelease, tran]; }; } @@ -221,7 +221,9 @@ class INodeManager { ): Promise { const f = params.pop() as (tran: DBTransaction) => Promise; return await this.db.withTransactionF(async (tran) => { - await tran.lock(...(params as Array)); + await tran.lock( + ...(params as Array).map((i) => i.toString()), + ); return f(tran); }); } @@ -237,7 +239,9 @@ class INodeManager { tran: DBTransaction, ) => AsyncGenerator; return this.db.withTransactionG(async function* (tran) { - await tran.lock(...(params as Array)); + await tran.lock( + ...(params as Array).map((i) => i.toString()), + ); return yield* g(tran); }); } @@ -266,7 +270,10 @@ class INodeManager { return withF( [this.inoAllocation(navigated), this.db.transaction()], async ([ino, tran]) => { - await tran.lock(ino, ...(params as Array)); + await tran.lock( + ino.toString(), + ...(params as Array).map((i) => i.toString()), + ); return f(ino, tran); }, ); @@ -302,7 +309,10 @@ class INodeManager { return withG( [this.inoAllocation(navigated), this.db.transaction()], async function* ([ino, tran]) { - await tran.lock(ino, ...(params as Array)); + await tran.lock( + ino.toString(), + ...(params as Array).map((i) => i.toString()), + ); return yield* g(ino, tran); }, ); diff --git a/src/streams/ReadStream.ts b/src/streams/ReadStream.ts index dac77443..6c348e7d 100644 --- a/src/streams/ReadStream.ts +++ b/src/streams/ReadStream.ts @@ -3,9 +3,7 @@ import type { OptionsStream } from './types'; import type { Callback } from '../types'; import type { FdIndex } from '../fd/types'; import type { EncryptedFS } from '../'; - import { Readable } from 'readable-stream'; - import * as permissions from '../permissions'; class ReadStream extends Readable { diff --git a/src/streams/WriteStream.ts b/src/streams/WriteStream.ts index 88fc9677..dbc523a3 100644 --- a/src/streams/WriteStream.ts +++ b/src/streams/WriteStream.ts @@ -3,9 +3,7 @@ import type { OptionsStream } from './types'; import type { FdIndex } from '../fd/types'; import type { EncryptedFS } from '../'; import type { Callback } from '../types'; - import { Writable } from 'readable-stream'; - import * as permissions from '../permissions'; class WriteStream extends Writable { diff --git a/src/workers/efsWorker.ts b/src/workers/efsWorker.ts index c61ef01c..2c6d298d 100644 --- a/src/workers/efsWorker.ts +++ b/src/workers/efsWorker.ts @@ -1,6 +1,5 @@ import type { EFSWorkerModule } from './efsWorkerModule'; import { expose } from 'threads/worker'; - import efsWorker from './efsWorkerModule'; expose(efsWorker); diff --git a/src/workers/efsWorkerModule.ts b/src/workers/efsWorkerModule.ts index 4f952962..032872d5 100644 --- a/src/workers/efsWorkerModule.ts +++ b/src/workers/efsWorkerModule.ts @@ -1,5 +1,4 @@ import type { TransferDescriptor } from 'threads'; - import { Transfer } from 'threads'; import * as utils from '../utils'; diff --git a/tests/EncryptedFS.concurrent.test.ts b/tests/EncryptedFS.concurrent.test.ts index ea77b2f5..c92a932d 100644 --- a/tests/EncryptedFS.concurrent.test.ts +++ b/tests/EncryptedFS.concurrent.test.ts @@ -4037,7 +4037,8 @@ describe(`${EncryptedFS.name} Concurrency`, () => { results.every((result) => { return ( result.status === 'fulfilled' && - (result.value === [] || result.value === undefined) + ((Array.isArray(result.value) && result.value.length === 0) || + result.value === undefined) ); }) ) { diff --git a/tests/setupAfterEnv.ts b/tests/setupAfterEnv.ts index 6d49ee9a..8ea8279e 100644 --- a/tests/setupAfterEnv.ts +++ b/tests/setupAfterEnv.ts @@ -1,4 +1,4 @@ // Default timeout per test // some tests may take longer in which case you should specify the timeout // explicitly for each test by using the third parameter of test function -jest.setTimeout(global.defaultTimeout); +jest.setTimeout(globalThis.defaultTimeout); diff --git a/tests/workers/efsWorker.test.ts b/tests/workers/efsWorker.test.ts index 985f29b8..dd2a61e0 100644 --- a/tests/workers/efsWorker.test.ts +++ b/tests/workers/efsWorker.test.ts @@ -1,5 +1,4 @@ import type { EFSWorkerManagerInterface, EFSWorkerModule } from '@/types'; - import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; import { WorkerManager } from '@matrixai/workers'; import { spawn, Worker, Transfer } from 'threads'; diff --git a/tsconfig.json b/tsconfig.json index 2fffd283..a1204365 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -14,7 +14,7 @@ "resolveJsonModule": true, "moduleResolution": "node", "module": "CommonJS", - "target": "ES2021", + "target": "ES2022", "baseUrl": "./src", "paths": { "@": ["index"],