Skip to content

@rybosome/tspice-backend-contract

Classes

SpiceBackendContractError

Defined in: packages/backend-contract/src/shared/errors.ts:2

Error thrown when a backend violates a contract invariant or postcondition.

Extends

  • Error

Constructors

Constructor

new SpiceBackendContractError(message): SpiceBackendContractError

Defined in: packages/backend-contract/src/shared/errors.ts:5

Parameters
message

string

Returns

SpiceBackendContractError

Overrides

Error.constructor

Properties

cause?

optional cause: unknown

Defined in: node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.error.d.ts:26

Inherited from

Error.cause

message

message: string

Defined in: node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts:1077

Inherited from

Error.message

name

name: string = "SpiceBackendContractError"

Defined in: packages/backend-contract/src/shared/errors.ts:3

Overrides

Error.name

stack?

optional stack: string

Defined in: node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts:1078

Inherited from

Error.stack

stackTraceLimit

static stackTraceLimit: number

Defined in: node_modules/.pnpm/@types+node@22.19.6/node_modules/@types/node/globals.d.ts:68

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes will affect any stack trace captured after the value has been changed.

If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

Inherited from

Error.stackTraceLimit

Methods

captureStackTrace()

static captureStackTrace(targetObject, constructorOpt?): void

Defined in: node_modules/.pnpm/@types+node@22.19.6/node_modules/@types/node/globals.d.ts:52

Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

js
const myObject = {};
Error.captureStackTrace(myObject);
myObject.stack;  // Similar to `new Error().stack`

The first line of the trace will be prefixed with ${myObject.name}: ${myObject.message}.

The optional constructorOpt argument accepts a function. If given, all frames above constructorOpt, including constructorOpt, will be omitted from the generated stack trace.

The constructorOpt argument is useful for hiding implementation details of error generation from the user. For instance:

js
function a() {
  b();
}

function b() {
  c();
}

function c() {
  // Create an error without stack trace to avoid calculating the stack trace twice.
  const { stackTraceLimit } = Error;
  Error.stackTraceLimit = 0;
  const error = new Error();
  Error.stackTraceLimit = stackTraceLimit;

  // Capture the stack trace above function b
  Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
  throw error;
}

a();
Parameters
targetObject

object

constructorOpt?

Function

Returns

void

Inherited from

Error.captureStackTrace

prepareStackTrace()

static prepareStackTrace(err, stackTraces): any

Defined in: node_modules/.pnpm/@types+node@22.19.6/node_modules/@types/node/globals.d.ts:56

Parameters
err

Error

stackTraces

CallSite[]

Returns

any

See

https://v8.dev/docs/stack-trace-api#customizing-stack-traces

Inherited from

Error.prepareStackTrace

Interfaces

CellsWindowsApi

Defined in: packages/backend-contract/src/domains/cells-windows.ts:83

Backend contract for low-level raw SPICE cell/window operations.

Extended by

Methods

card()

card(cell): number

Defined in: packages/backend-contract/src/domains/cells-windows.ts:94

Get the cardinality of a cell. (card_c)

Parameters
cell

SpiceIntCell | SpiceDoubleCell | SpiceCharCell | SpiceWindow

Returns

number

insrtc()

insrtc(item, cell): void

Defined in: packages/backend-contract/src/domains/cells-windows.ts:113

Insert a string into a character set cell. (insrtc_c)

Parameters
item

string

cell

SpiceCharCell

Returns

void

insrtd()

insrtd(item, cell): void

Defined in: packages/backend-contract/src/domains/cells-windows.ts:110

Insert a double into a double set cell. (insrtd_c)

Parameters
item

number

cell

SpiceDoubleCell

Returns

void

insrti()

insrti(item, cell): void

Defined in: packages/backend-contract/src/domains/cells-windows.ts:107

Insert an integer into an integer set cell. (insrti_c)

Parameters
item

number

cell

SpiceIntCell

Returns

void

scard()

scard(card, cell): void

Defined in: packages/backend-contract/src/domains/cells-windows.ts:91

Set the cardinality of a cell. (scard_c)

Parameters
card

number

cell

SpiceIntCell | SpiceDoubleCell | SpiceCharCell | SpiceWindow

Returns

void

size()

size(cell): number

Defined in: packages/backend-contract/src/domains/cells-windows.ts:97

Get the maximum cardinality of a cell. (size_c)

Parameters
cell

SpiceIntCell | SpiceDoubleCell | SpiceCharCell | SpiceWindow

Returns

number

ssize()

ssize(size, cell): void

Defined in: packages/backend-contract/src/domains/cells-windows.ts:88

Set the maximum cardinality of a cell. (ssize_c)

Parameters
size

number

cell

SpiceIntCell | SpiceDoubleCell | SpiceCharCell | SpiceWindow

Returns

void

valid()

valid(size, n, cell): void

Defined in: packages/backend-contract/src/domains/cells-windows.ts:100

Validate and normalize a set cell. (valid_c)

Parameters
size

number

n

number

cell

SpiceIntCell | SpiceDoubleCell | SpiceCharCell | SpiceWindow

Returns

void

wncard()

wncard(window): number

Defined in: packages/backend-contract/src/domains/cells-windows.ts:121

Return the number of intervals in a DP window. (wncard_c)

Parameters
window

SpiceWindow

Returns

number

wnfetd()

wnfetd(window, index): readonly [number, number]

Defined in: packages/backend-contract/src/domains/cells-windows.ts:124

Fetch the indexth interval from a DP window. (wnfetd_c)

Parameters
window

SpiceWindow

index

number

Returns

readonly [number, number]

wninsd()

wninsd(left, right, window): void

Defined in: packages/backend-contract/src/domains/cells-windows.ts:118

Insert an interval into a DP window, merging overlaps. (wninsd_c)

Parameters
left

number

number

window

SpiceWindow

Returns

void

wnvald()

wnvald(size, n, window): void

Defined in: packages/backend-contract/src/domains/cells-windows.ts:127

Validate and normalize a DP window. (wnvald_c)

Parameters
size

number

n

number

window

SpiceWindow

Returns

void


CellsWindowsKitApi

Defined in: packages/backend-contract/src/domains/cells-windows.ts:31

Backend-only cell/window helpers exposed to higher-level kit code.

These are intentionally split from CellsWindowsApi so raw/kit surfaces can evolve independently while backends still provide native hooks for allocation and inspection.

Extended by

Methods

cellGetc()

cellGetc(cell, index): string

Defined in: packages/backend-contract/src/domains/cells-windows.ts:79

Fetch the indexth element of a character cell.

Backends may right-trim whitespace to match common CSPICE string handling.

Parameters
cell

SpiceCharCell

index

number

Returns

string

cellGetd()

cellGetd(cell, index): number

Defined in: packages/backend-contract/src/domains/cells-windows.ts:72

Fetch the indexth element of a double cell.

Parameters
cell

SpiceDoubleCell

index

number

Returns

number

cellGeti()

cellGeti(cell, index): number

Defined in: packages/backend-contract/src/domains/cells-windows.ts:69

Fetch the indexth element of an integer cell.

Parameters
cell

SpiceIntCell

index

number

Returns

number

freeCell()

freeCell(cell): void

Defined in: packages/backend-contract/src/domains/cells-windows.ts:53

Free a previously-created cell handle.

Parameters
cell

SpiceIntCell | SpiceDoubleCell | SpiceCharCell

Returns

void

freeWindow()

freeWindow(window): void

Defined in: packages/backend-contract/src/domains/cells-windows.ts:56

Free a previously-created window handle.

Parameters
window

SpiceWindow

Returns

void

newCharCell()

newCharCell(size, length): SpiceCharCell

Defined in: packages/backend-contract/src/domains/cells-windows.ts:47

Create an empty character set cell.

length is the maximum string length (including trailing NUL). CSPICE generally expects length >= 2 and recommends length >= 5.

Parameters
size

number

length

number

Returns

SpiceCharCell

newDoubleCell()

newDoubleCell(size): SpiceDoubleCell

Defined in: packages/backend-contract/src/domains/cells-windows.ts:39

Create an empty double-precision set cell with the given capacity.

Parameters
size

number

Returns

SpiceDoubleCell

newIntCell()

newIntCell(size): SpiceIntCell

Defined in: packages/backend-contract/src/domains/cells-windows.ts:36

Create an empty integer set cell with the given capacity.

Parameters
size

number

Returns

SpiceIntCell

newWindow()

newWindow(maxIntervals): SpiceWindow

Defined in: packages/backend-contract/src/domains/cells-windows.ts:50

Create an empty DP window with capacity for maxIntervals intervals.

Parameters
maxIntervals

number

Returns

SpiceWindow


CoordsVectorsApi

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:10

Backend contract for basic coordinate transforms and vector/matrix math.

Extended by

Methods

axisar()

axisar(axis, angle): Mat3RowMajor

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:67

Convert an axis and angle to a rotation matrix.

Parameters
axis

SpiceVector3

angle

number

Returns

Mat3RowMajor

georec()

georec(lon, lat, alt, re, f): SpiceVector3

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:70

SPICE georec_c: geodetic lon/lat/alt -> rectangular coordinates.

Parameters
lon

number

lat

number

alt

number

re

number

f

number

Returns

SpiceVector3

latrec()

latrec(radius, lon, lat): SpiceVector3

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:14

SPICE latrec_c: latitudinal -> rectangular coordinates.

Parameters
radius

number

lon

number

lat

number

Returns

SpiceVector3

mtxv()

mtxv(m, v): SpiceVector3

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:77

SPICE mtxv_c: multiply transpose(matrix) by vector.

Parameters
m

Mat3RowMajor

v

SpiceVector3

Returns

SpiceVector3

mxm()

mxm(a, b): Mat3RowMajor

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:48

SPICE mxm_c: matrix-matrix multiplication.

Parameters
a

Mat3RowMajor

b

Mat3RowMajor

Returns

Mat3RowMajor

mxv()

mxv(m, v): SpiceVector3

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:75

SPICE mxv_c: multiply matrix by vector.

Parameters
m

Mat3RowMajor

v

SpiceVector3

Returns

SpiceVector3

recgeo()

recgeo(rect, re, f): object

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:72

SPICE recgeo_c: rectangular -> geodetic lon/lat/alt coordinates.

Parameters
rect

SpiceVector3

re

number

f

number

Returns

object

alt

alt: number

lat

lat: number

lon

lon: number

reclat()

reclat(rect): object

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:12

SPICE reclat_c: rectangular -> latitudinal coordinates.

Parameters
rect

SpiceVector3

Returns

object

lat

lat: number

lon

lon: number

radius

radius: number

recsph()

recsph(rect): object

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:17

SPICE recsph_c: rectangular -> spherical coordinates.

Parameters
rect

SpiceVector3

Returns

object

colat

colat: number

lon

lon: number

radius

radius: number

rotate()

rotate(angle, axis): Mat3RowMajor

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:55

Generate a rotation matrix representing a rotation about a coordinate axis.

Axis is 1=x, 2=y, 3=z.

Parameters
angle

number

axis

number

Returns

Mat3RowMajor

rotmat()

rotmat(m, angle, axis): Mat3RowMajor

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:62

Rotate a matrix about a coordinate axis.

Axis is 1=x, 2=y, 3=z.

Parameters
m

Mat3RowMajor

angle

number

axis

number

Returns

Mat3RowMajor

sphrec()

sphrec(radius, colat, lon): SpiceVector3

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:19

SPICE sphrec_c: spherical -> rectangular coordinates.

Parameters
radius

number

colat

number

lon

number

Returns

SpiceVector3

vadd()

vadd(a, b): SpiceVector3

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:39

SPICE vadd_c: vector addition.

Parameters
a

SpiceVector3

b

SpiceVector3

Returns

SpiceVector3

vcrss()

vcrss(a, b): SpiceVector3

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:36

SPICE vcrss_c: cross product of two vectors.

Parameters
a

SpiceVector3

b

SpiceVector3

Returns

SpiceVector3

vdot()

vdot(a, b): number

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:34

SPICE vdot_c: dot product of two vectors.

Parameters
a

SpiceVector3

b

SpiceVector3

Returns

number

vhat()

vhat(v): SpiceVector3

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:32

Compute the unit vector of v.

Zero-vector behavior: if v is [0, 0, 0], this returns [0, 0, 0] and does not throw.

This matches the NAIF CSPICE vhat_c definition.

Parameters
v

SpiceVector3

Returns

SpiceVector3

vminus()

vminus(v): SpiceVector3

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:43

SPICE vminus_c: negate a vector.

Parameters
v

SpiceVector3

Returns

SpiceVector3

vnorm()

vnorm(v): number

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:22

SPICE vnorm_c: vector magnitude (Euclidean norm).

Parameters
v

SpiceVector3

Returns

number

vscl()

vscl(s, v): SpiceVector3

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:45

SPICE vscl_c: multiply vector by scalar.

Parameters
s

number

v

SpiceVector3

Returns

SpiceVector3

vsub()

vsub(a, b): SpiceVector3

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:41

SPICE vsub_c: vector subtraction.

Parameters
a

SpiceVector3

b

SpiceVector3

Returns

SpiceVector3


DskApi

Defined in: packages/backend-contract/src/domains/dsk.ts:48

Backend contract for DSK (Digital Shape Kernel) segment queries.

Extended by

Methods

dskb02()

dskb02(handle, dladsc): DskType2Bookkeeping

Defined in: packages/backend-contract/src/domains/dsk.ts:59

Return the type 2 DSK segment bookkeeping parameters.

Parameters
handle

SpiceHandle

dladsc

DlaDescriptor

Returns

DskType2Bookkeeping

dskgd()

dskgd(handle, dladsc): DskDescriptor

Defined in: packages/backend-contract/src/domains/dsk.ts:56

Return the descriptor of a DSK segment.

Parameters
handle

SpiceHandle

dladsc

DlaDescriptor

Returns

DskDescriptor

dskobj()

dskobj(dsk, bodids): void

Defined in: packages/backend-contract/src/domains/dsk.ts:50

Return the set of body IDs for which the specified DSK has segments.

Parameters
dsk

string

bodids

SpiceIntCell

Returns

void

dsksrf()

dsksrf(dsk, bodyid, srfids): void

Defined in: packages/backend-contract/src/domains/dsk.ts:53

Return the set of surface IDs for which the specified DSK has segments.

Parameters
dsk

string

bodyid

number

srfids

SpiceIntCell

Returns

void


EkApi

Defined in: packages/backend-contract/src/domains/ek.ts:48

Backend contract for EK (Events Kernel) file/query operations.

Extended by

Methods

ekaclc()

ekaclc(handle, segno, column, cvals, entszs, nlflgs, rcptrs): void

Defined in: packages/backend-contract/src/domains/ek.ts:219

Add a character column's data to a fast-write segment (see ekaclc_c).

Packing:

  • entszs, nlflgs, and rcptrs are per-row arrays and must have the same length nrows (the nrows passed to ekifld, i.e. rcptrs.length).
  • cvals is a packed array containing exactly sum(entszs) values.

NULL rows (nlflgs[i] === true):

  • Variable-size columns: set entszs[i] = 0 and do not include any values for that row.
  • Fixed-size columns (SIZE = N): include/pad N placeholder values for that row and set entszs[i] = N so cvals.length === sum(entszs) remains true.
Parameters
handle

SpiceHandle

segno

number

column

string

cvals

readonly string[]

entszs

readonly number[]

nlflgs

readonly boolean[]

rcptrs

readonly number[]

Returns

void

ekacld()

ekacld(handle, segno, column, dvals, entszs, nlflgs, rcptrs): void

Defined in: packages/backend-contract/src/domains/ek.ts:196

Add a double-precision column's data to a fast-write segment (see ekacld_c).

Packing:

  • entszs, nlflgs, and rcptrs are per-row arrays and must have the same length nrows (the nrows passed to ekifld, i.e. rcptrs.length).
  • dvals is a packed array containing exactly sum(entszs) values.

NULL rows (nlflgs[i] === true):

  • Variable-size columns: set entszs[i] = 0 and do not include any values for that row.
  • Fixed-size columns (SIZE = N): include/pad N placeholder values for that row and set entszs[i] = N so dvals.length === sum(entszs) remains true.
Parameters
handle

SpiceHandle

segno

number

column

string

dvals

readonly number[]

entszs

readonly number[]

nlflgs

readonly boolean[]

rcptrs

readonly number[]

Returns

void

ekacli()

ekacli(handle, segno, column, ivals, entszs, nlflgs, rcptrs): void

Defined in: packages/backend-contract/src/domains/ek.ts:173

Add an integer column's data to a fast-write segment (see ekacli_c).

Packing:

  • entszs, nlflgs, and rcptrs are per-row arrays and must have the same length nrows (the nrows passed to ekifld, i.e. rcptrs.length).
  • ivals is a packed array containing exactly sum(entszs) values.

NULL rows (nlflgs[i] === true):

  • Variable-size columns: set entszs[i] = 0 and do not include any values for that row.
  • Fixed-size columns (SIZE = N): include/pad N placeholder values for that row and set entszs[i] = N so ivals.length === sum(entszs) remains true.
Parameters
handle

SpiceHandle

segno

number

column

string

ivals

readonly number[]

entszs

readonly number[]

nlflgs

readonly boolean[]

rcptrs

readonly number[]

Returns

void

ekcls()

ekcls(handle): void

Defined in: packages/backend-contract/src/domains/ek.ts:70

Close an EK file opened via ekopr / ekopw / ekopn (see ekcls_c).

Notes:

  • EK handles are explicit resources and are not automatically closed by unload() / kclear().
  • If path was backed by byte-staged temp bytes, close EK handles before calling unload() / kclear() to allow best-effort temp file deletion (especially on Windows).
Parameters
handle

SpiceHandle

Returns

void

ekffld()

ekffld(handle, segno, rcptrs): void

Defined in: packages/backend-contract/src/domains/ek.ts:230

Complete a fast-write segment (see ekffld_c).

Parameters
handle

SpiceHandle

segno

number

rcptrs

readonly number[]

Returns

void

ekfind()

ekfind(query): EkFindResult

Defined in: packages/backend-contract/src/domains/ek.ts:108

Execute an EK query (see ekfind_c).

Notes:

  • EK query results live in CSPICE global state.
  • Beginning fast-write via ekifld can invalidate the active selection/result set. Avoid interleaving ekfind/ekg* reads with fast-write; rerun ekfind after fast-write if you need to read again.
Parameters
query

string

Returns

EkFindResult

ekgc()

ekgc(selidx, row, elment): EkGetResult<string>

Defined in: packages/backend-contract/src/domains/ek.ts:118

Fetch a character-valued element from the active query result set (see ekgc_c).

Indices are 0-based per NAIF:

  • selidx: 0-based index of the selected item in the query's SELECT clause.
  • row: 0-based row index in the result set (0..nmrows-1 from the last successful ekfind).
  • elment: 0-based element index within the cell entry (0 for scalar entries).
Parameters
selidx

number

row

number

elment

number

Returns

EkGetResult<string>

ekgd()

ekgd(selidx, row, elment): EkGetResult<number>

Defined in: packages/backend-contract/src/domains/ek.ts:128

Fetch a double-valued element from the active query result set (see ekgd_c).

Indices are 0-based per NAIF:

  • selidx: 0-based index of the selected item in the query's SELECT clause.
  • row: 0-based row index in the result set (0..nmrows-1 from the last successful ekfind).
  • elment: 0-based element index within the cell entry (0 for scalar entries).
Parameters
selidx

number

row

number

elment

number

Returns

EkGetResult<number>

ekgi()

ekgi(selidx, row, elment): EkGetResult<number>

Defined in: packages/backend-contract/src/domains/ek.ts:138

Fetch an integer-valued element from the active query result set (see ekgi_c).

Indices are 0-based per NAIF:

  • selidx: 0-based index of the selected item in the query's SELECT clause.
  • row: 0-based row index in the result set (0..nmrows-1 from the last successful ekfind).
  • elment: 0-based element index within the cell entry (0 for scalar entries).
Parameters
selidx

number

row

number

elment

number

Returns

EkGetResult<number>

ekifld()

ekifld(handle, tabnam, nrows, cnames, decls): object

Defined in: packages/backend-contract/src/domains/ek.ts:152

Begin fast-write for a new EK segment (see ekifld_c).

Returns segno (new segment number) and the rcptrs workspace array. rcptrs must be passed to the subsequent column-add calls and to ekffld.

Notes:

  • Calling ekifld may invalidate the active EK query selection (from ekfind). If you need to read query results after starting fast-write, rerun ekfind.
Parameters
handle

SpiceHandle

tabnam

string

nrows

number

cnames

readonly string[]

decls

readonly string[]

Returns

object

rcptrs

rcptrs: number[]

segno

segno: number

eknseg()

eknseg(handle): number

Defined in: packages/backend-contract/src/domains/ek.ts:95

Number of segments in an EK file opened via handle (see eknseg_c).

Postconditions:

  • Returns an integer count n with 0 <= n <= 2_147_483_647.
  • Backends should validate this postcondition and throw if violated.
Parameters
handle

SpiceHandle

Returns

number

ekntab()

ekntab(): number

Defined in: packages/backend-contract/src/domains/ek.ts:79

Number of EK tables currently loaded (see ekntab_c).

Postconditions:

  • Returns an integer count n with 0 <= n <= 2_147_483_647.
  • Backends should validate this postcondition and throw if violated.
Returns

number

ekopn()

ekopn(path, ifname, ncomch): SpiceHandle

Defined in: packages/backend-contract/src/domains/ek.ts:60

Create and open a new EK file for write (see ekopn_c).

ncomch is the number of comment characters to allocate for the EK.

Parameters
path

string

ifname

string

ncomch

number

Returns

SpiceHandle

ekopr()

ekopr(path): SpiceHandle

Defined in: packages/backend-contract/src/domains/ek.ts:50

Open an existing EK file for read (see ekopr_c).

Parameters
path

string

Returns

SpiceHandle

ekopw()

ekopw(path): SpiceHandle

Defined in: packages/backend-contract/src/domains/ek.ts:53

Open an existing EK file for write (see ekopw_c).

Parameters
path

string

Returns

SpiceHandle

ektnam()

ektnam(n): string

Defined in: packages/backend-contract/src/domains/ek.ts:86

Retrieve the EK table name by 0-based index (see ektnam_c).

n must be in the range 0..ekntab()-1.

Parameters
n

number

Returns

string


EphemerisApi

Defined in: packages/backend-contract/src/domains/ephemeris.ts:40

Backend contract for SPK/ephemeris computations (positions, states, segment inspection).

Extended by

Methods

spkcls()

spkcls(handle): void

Defined in: packages/backend-contract/src/domains/ephemeris.ts:203

Close an SPK file previously opened by spkopn/spkopa (see spkcls_c).

Parameters
handle

SpiceHandle

Returns

void

spkcov()

spkcov(spk, idcode, cover): void

Defined in: packages/backend-contract/src/domains/ephemeris.ts:125

Compute the coverage window for an object in an SPK via spkcov.

Path semantics (backend-dependent):

  • Node backend: spk is a host filesystem path.
  • WASM backend: spk is an Emscripten FS (virtual) path/id (typically the path you used in furnsh({ path, bytes })).

Output window requirements: cover must be a valid, initialized window handle created by the backend (e.g. newWindow(maxIntervals)) and must have sufficient capacity for the merged output.

Error safety note: Like CSPICE spkcov_c, if this routine throws while updating cover (including due to insufficient capacity), the contents of cover may be left in a corrupted/undefined state. If an error is thrown, do not keep using cover; free it and create a fresh window.

Window semantics: cover is updated in place. Like CSPICE spkcov_c, coverage is merged with any intervals already present in cover. Clear the window first (e.g. scard(0, cover)) if you want to avoid accumulation.

Parameters
spk

string

idcode

number

cover

SpiceWindow

Returns

void

spkez()

spkez(target, et, ref, abcorr, observer): SpkezrResult

Defined in: packages/backend-contract/src/domains/ephemeris.ts:67

Compute state (6-vector) and light time via spkez (numeric IDs).

Parameters
target

number

et

number

ref

string

abcorr

string

observer

number

Returns

SpkezrResult

spkezp()

spkezp(target, et, ref, abcorr, observer): SpkposResult

Defined in: packages/backend-contract/src/domains/ephemeris.ts:76

Compute position (3-vector) and light time via spkezp (numeric IDs).

Parameters
target

number

et

number

ref

string

abcorr

string

observer

number

Returns

SpkposResult

spkezr()

spkezr(target, et, ref, abcorr, observer): SpkezrResult

Defined in: packages/backend-contract/src/domains/ephemeris.ts:47

Compute state relative to observer using loaded kernels (see spkezr_c).

Note: abcorr is a known set of SPICE aberration correction strings, but we allow arbitrary strings for forward-compatibility.

Parameters
target

string

et

number

ref

string

abcorr

string

observer

string

Returns

SpkezrResult

spkgeo()

spkgeo(target, et, ref, observer): SpkezrResult

Defined in: packages/backend-contract/src/domains/ephemeris.ts:85

Compute geometric state (6-vector) and light time via spkgeo (numeric IDs).

Parameters
target

number

et

number

ref

string

observer

number

Returns

SpkezrResult

spkgps()

spkgps(target, et, ref, observer): SpkposResult

Defined in: packages/backend-contract/src/domains/ephemeris.ts:93

Compute geometric position (3-vector) and light time via spkgps (numeric IDs).

Parameters
target

number

et

number

ref

string

observer

number

Returns

SpkposResult

spkobj()

spkobj(spk, ids): void

Defined in: packages/backend-contract/src/domains/ephemeris.ts:150

Find the set of objects present in an SPK via spkobj.

Path semantics (backend-dependent):

  • Node backend: spk is a host filesystem path.
  • WASM backend: spk is an Emscripten FS (virtual) path/id (typically the path you used in furnsh({ path, bytes })).

Output cell requirements: ids must be a valid, initialized set cell handle created by the backend (e.g. newIntCell(size)) and must have sufficient capacity for the unioned output.

Error safety note: Like CSPICE spkobj_c, if this routine throws while updating ids (including due to insufficient capacity), the contents of ids may be left in a corrupted/undefined state. If an error is thrown, do not keep using ids; free it and create a fresh cell.

Cell semantics: ids is updated in place. Like CSPICE spkobj_c, the output is the union of the IDs already present in ids and the IDs found in spk. Clear the cell first (e.g. scard(0, ids)) if you want to avoid accumulation.

Parameters
spk

string

ids

SpiceIntCell

Returns

void

spkopa()

spkopa(file): SpiceHandle

Defined in: packages/backend-contract/src/domains/ephemeris.ts:200

Open an existing SPK for append (see spkopa_c). Same file semantics as spkopn.

Parameters
file

string | VirtualOutput

Returns

SpiceHandle

spkopn()

spkopn(file, ifname, ncomch): SpiceHandle

Defined in: packages/backend-contract/src/domains/ephemeris.ts:197

Open a new SPK file for write (see spkopn_c).

file interpretation is backend-dependent:

  • Node: OS filesystem path

  • WASM: virtual id under the backend's virtual filesystem (currently normalized into /kernels/...).

    In other words, for the WASM backend, file: string is not a raw Emscripten absolute path. It is treated like other "kernel-ish" paths and is normalized into /kernels.

    Examples (WASM backend):

    • spkopn("out.bsp", ...) writes to /kernels/out.bsp
    • spkopn("/kernels/out.bsp", ...) refers to the same file
    • spkopn("/tmp/out.bsp", ...) throws (OS paths/URLs are rejected)

When file is a VirtualOutput, backends should allow reading bytes back via readVirtualOutput() after closing the file handle.

Callers should retain the VirtualOutput they passed to spkopn/spkopa. It is the identifier used to read bytes back later.

Parameters
file

string | VirtualOutput

ifname

string

ncomch

number

Returns

SpiceHandle

spkpds()

spkpds(body, center, frame, type, first, last): SpkPackedDescriptor

Defined in: packages/backend-contract/src/domains/ephemeris.ts:160

Pack an SPK segment descriptor via spkpds.

Parameters
body

number

center

number

frame

string

type

number

first

number

last

number

Returns

SpkPackedDescriptor

spkpos()

spkpos(target, et, ref, abcorr, observer): SpkposResult

Defined in: packages/backend-contract/src/domains/ephemeris.ts:58

Compute position relative to observer using loaded kernels (see spkpos_c).

Parameters
target

string

et

number

ref

string

abcorr

string

observer

string

Returns

SpkposResult

spksfs()

spksfs(body, et): Found<{ descr: SpkPackedDescriptor; handle: number; ident: string; }>

Defined in: packages/backend-contract/src/domains/ephemeris.ts:157

Search loaded SPK files for the highest-priority segment applicable to body and et.

Note: handle is the native SPICE DAF handle for the file containing the segment.

Parameters
body

number

et

number

Returns

Found<{ descr: SpkPackedDescriptor; handle: number; ident: string; }>

spkssb()

spkssb(target, et, ref): SpiceStateVector

Defined in: packages/backend-contract/src/domains/ephemeris.ts:101

Compute state (6-vector) of target relative to the solar system barycenter via spkssb.

Parameters
target

number

et

number

ref

string

Returns

SpiceStateVector

spkuds()

spkuds(descr): SpkUnpackedDescriptor

Defined in: packages/backend-contract/src/domains/ephemeris.ts:170

Unpack a packed SPK segment descriptor via spkuds.

Parameters
descr

SpkPackedDescriptor

Returns

SpkUnpackedDescriptor

spkw08()

spkw08(handle, body, center, frame, first, last, segid, degree, states, epoch1, step): void

Defined in: packages/backend-contract/src/domains/ephemeris.ts:211

Write a type 8 SPK segment (see spkw08_c).

states is a flat array with layout [x,y,z, dx,dy,dz] for each record. The number of records n is derived as states.length / 6.

Parameters
handle

SpiceHandle

body

number

center

number

frame

string

first

number

last

number

segid

string

degree

number

states

Float64Array<ArrayBufferLike> | readonly number[]

epoch1

number

step

number

Returns

void


ErrorApi

Defined in: packages/backend-contract/src/domains/error.ts:41

Backend contract for SPICE error/status utilities (failed/reset/getmsg/etc).

Extended by

Methods

chkin()

chkin(name): void

Defined in: packages/backend-contract/src/domains/error.ts:58

Add name to the CSPICE traceback stack.

Parameters
name

string

Returns

void

chkout()

chkout(name): void

Defined in: packages/backend-contract/src/domains/error.ts:61

Remove name from the CSPICE traceback stack.

Parameters
name

string

Returns

void

failed()

failed(): boolean

Defined in: packages/backend-contract/src/domains/error.ts:43

Return true if the CSPICE error status is currently set.

Returns

boolean

getmsg()

getmsg(which): string

Defined in: packages/backend-contract/src/domains/error.ts:49

Get a CSPICE error message component.

Parameters
which

"SHORT" | "LONG" | "EXPLAIN"

Returns

string

reset()

reset(): void

Defined in: packages/backend-contract/src/domains/error.ts:46

Reset/clear the CSPICE error status and messages.

Returns

void

setmsg()

setmsg(message): void

Defined in: packages/backend-contract/src/domains/error.ts:52

Set the long error message text used by sigerr().

Parameters
message

string

Returns

void

sigerr()

sigerr(short): void

Defined in: packages/backend-contract/src/domains/error.ts:55

Signal a CSPICE error with the provided short error code (e.g. "SPICE(BADTIME)").

Parameters
short

string

Returns

void


FileIoApi

Defined in: packages/backend-contract/src/domains/file-io.ts:57

Backend contract for SPICE file I/O primitives (DAF/DAS/DLA).

Extended by

Methods

dafbfs()

dafbfs(handle): void

Defined in: packages/backend-contract/src/domains/file-io.ts:73

Begin a forward search for arrays in the given DAF file (see dafbfs_c).

Parameters
handle

SpiceHandle

Returns

void

dafcls()

dafcls(handle): void

Defined in: packages/backend-contract/src/domains/file-io.ts:70

Close a DAF file previously opened by dafopr().

Parameters
handle

SpiceHandle

Returns

void

daffna()

daffna(handle): boolean

Defined in: packages/backend-contract/src/domains/file-io.ts:81

Find the next DAF array (see daffna_c).

Backend implementations should select the current DAF via dafcs_c(handle) before calling daffna_c to support interleaving multiple DAF searches.

Parameters
handle

SpiceHandle

Returns

boolean

dafopr()

dafopr(path): SpiceHandle

Defined in: packages/backend-contract/src/domains/file-io.ts:67

Open a DAF file for read (see dafopr_c).

Parameters
path

string

Returns

SpiceHandle

dascls()

dascls(handle): void

Defined in: packages/backend-contract/src/domains/file-io.ts:96

Close a DAS-backed file handle.

In CSPICE, dascls_c closes both DAS and DLA handles, and dlacls_c is an alias. We mirror that behavior: dascls and dlacls are interchangeable and accept handles returned from either dasopr() (read) or dlaopn() (write).

Parameters
handle

SpiceHandle

Returns

void

dasopr()

dasopr(path): SpiceHandle

Defined in: packages/backend-contract/src/domains/file-io.ts:86

Open a DAS file for read (see dasopr_c).

Parameters
path

string

Returns

SpiceHandle

dlabfs()

dlabfs(handle): FoundDlaDescriptor

Defined in: packages/backend-contract/src/domains/file-io.ts:109

Begin a forward search for DLA segments (see dlabfs_c).

DLA is DAS-backed: handle must be a DAS handle to a DLA file, opened via dasopr() (read) or dlaopn() (write).

Parameters
handle

SpiceHandle

Returns

FoundDlaDescriptor

dlacls()

dlacls(handle): void

Defined in: packages/backend-contract/src/domains/file-io.ts:125

Close a DAS-backed DLA handle.

Provided for parity with CSPICE dlacls_c, but implemented as an alias of dascls (same handle compatibility).

Parameters
handle

SpiceHandle

Returns

void

dlafns()

dlafns(handle, descr): FoundDlaDescriptor

Defined in: packages/backend-contract/src/domains/file-io.ts:117

Find the next DLA segment after descr (see dlafns_c).

DLA is DAS-backed: handle must be a DAS handle to a DLA file, opened via dasopr() (read) or dlaopn() (write).

Parameters
handle

SpiceHandle

descr

DlaDescriptor

Returns

FoundDlaDescriptor

dlaopn()

dlaopn(path, ftype, ifname, ncomch): SpiceHandle

Defined in: packages/backend-contract/src/domains/file-io.ts:101

Create and open a DLA file for write (see dlaopn_c).

Parameters
path

string

ftype

string

ifname

string

ncomch

number

Returns

SpiceHandle

dskmi2()

dskmi2(nv, vrtces, np, plates, finscl, corscl, worksz, voxpsz, voxlsz, makvtl, spxisz): object

Defined in: packages/backend-contract/src/domains/file-io.ts:133

Build the spatial index for a type 2 DSK segment (see dskmi2_c).

Parameters
nv

number

vrtces

readonly number[]

np

number

plates

readonly number[]

finscl

number

corscl

number

worksz

number

voxpsz

number

voxlsz

number

makvtl

boolean

spxisz

number

Returns

object

spaixd

spaixd: number[]

spaixi

spaixi: number[]

dskopn()

dskopn(path, ifname, ncomch): SpiceHandle

Defined in: packages/backend-contract/src/domains/file-io.ts:130

Create and open a DSK file for write (see dskopn_c).

Parameters
path

string

ifname

string

ncomch

number

Returns

SpiceHandle

dskw02()

dskw02(handle, center, surfid, dclass, frame, corsys, corpar, mncor1, mxcor1, mncor2, mxcor2, mncor3, mxcor3, first, last, nv, vrtces, np, plates, spaixd, spaixi): void

Defined in: packages/backend-contract/src/domains/file-io.ts:148

Write a type 2 segment to a DSK file opened by dskopn (see dskw02_c).

Parameters
handle

SpiceHandle

center

number

surfid

number

dclass

number

frame

string

corsys

number

corpar

readonly number[]

mncor1

number

mxcor1

number

mncor2

number

mxcor2

number

mncor3

number

mxcor3

number

first

number

last

number

nv

number

vrtces

readonly number[]

np

number

plates

readonly number[]

spaixd

readonly number[]

spaixi

readonly number[]

Returns

void

exists()

exists(path): boolean

Defined in: packages/backend-contract/src/domains/file-io.ts:59

Returns whether a file exists at path.

Parameters
path

string

Returns

boolean

getfat()

getfat(path): object

Defined in: packages/backend-contract/src/domains/file-io.ts:62

Determine SPICE file architecture + type (see getfat_c).

Parameters
path

string

Returns

object

arch

arch: string

type

type: string


FileIoKitApi

Defined in: packages/backend-contract/src/domains/file-io.ts:43

Backend-only file I/O helpers exposed to higher-level kit code.

Extended by

Methods

readVirtualOutput()

readVirtualOutput(output): Uint8Array

Defined in: packages/backend-contract/src/domains/file-io.ts:53

Read back bytes for a previously-created virtual output file.

Notes:

  • Virtual outputs are only guaranteed to be readable after their associated writer handle has been closed (e.g. spkcls(handle) for SPK outputs).
  • Backends may reject reads for outputs they did not create via a writer API. This is intentionally not a general filesystem read.
Parameters
output

VirtualOutput

Returns

Uint8Array


FramesApi

Defined in: packages/backend-contract/src/domains/frames.ts:18

Backend contract for frame/name lookups, CK access, and frame transformations.

Extended by

Methods

ccifrm()

ccifrm(frameClass, classId): Found<{ center: number; frcode: number; frname: string; }>

Defined in: packages/backend-contract/src/domains/frames.ts:33

SPICE ccifrm_c: map frame class + class ID to a frame code/name/center triple.

Parameters
frameClass

number

classId

number

Returns

Found<{ center: number; frcode: number; frname: string; }>

cidfrm()

cidfrm(center): Found<{ frcode: number; frname: string; }>

Defined in: packages/backend-contract/src/domains/frames.ts:25

SPICE cidfrm_c: look up frame information for a center body ID.

Parameters
center

number

Returns

Found<{ frcode: number; frname: string; }>

ckcov()

ckcov(ck, idcode, needav, level, tol, timsys, cover): void

Defined in: packages/backend-contract/src/domains/frames.ts:67

Return coverage for an instrument/object in a CK file (ckcov_c).

Parameters
ck

string

idcode

number

needav

boolean

level

CkCoverageLevel

tol

number

timsys

CkCoverageTimeSystem

cover

SpiceWindow

Returns

void

ckgp()

ckgp(inst, sclkdp, tol, ref): Found<{ clkout: number; cmat: Mat3RowMajor; }>

Defined in: packages/backend-contract/src/domains/frames.ts:36

Get pointing (attitude) for a CK instrument at a given encoded spacecraft clock time.

Parameters
inst

number

sclkdp

number

tol

number

ref

string

Returns

Found<{ clkout: number; cmat: Mat3RowMajor; }>

ckgpav()

ckgpav(inst, sclkdp, tol, ref): Found<{ av: SpiceVector3; clkout: number; cmat: Mat3RowMajor; }>

Defined in: packages/backend-contract/src/domains/frames.ts:44

Get pointing + angular velocity for a CK instrument at a given encoded spacecraft clock time.

Parameters
inst

number

sclkdp

number

tol

number

ref

string

Returns

Found<{ av: SpiceVector3; clkout: number; cmat: Mat3RowMajor; }>

cklpf()

cklpf(ck): number

Defined in: packages/backend-contract/src/domains/frames.ts:58

Load a CK file for access by pointing routines (cklpf_c).

Returns a CK file handle suitable for FramesApi.ckupf.

Parameters
ck

string

Returns

number

ckobj()

ckobj(ck, ids): void

Defined in: packages/backend-contract/src/domains/frames.ts:64

Return the set of instrument/object IDs for which the specified CK has segments (ckobj_c).

Parameters
ck

string

ids

SpiceIntCell

Returns

void

ckupf()

ckupf(handle): void

Defined in: packages/backend-contract/src/domains/frames.ts:61

Unload a CK file previously loaded by FramesApi.cklpf (ckupf_c).

Parameters
handle

number

Returns

void

cnmfrm()

cnmfrm(centerName): Found<{ frcode: number; frname: string; }>

Defined in: packages/backend-contract/src/domains/frames.ts:27

SPICE cnmfrm_c: look up frame information for a center body name.

Parameters
centerName

string

Returns

Found<{ frcode: number; frname: string; }>

frinfo()

frinfo(frameId): Found<{ center: number; classId: number; frameClass: number; }>

Defined in: packages/backend-contract/src/domains/frames.ts:30

SPICE frinfo_c: get center + frame class info for a frame ID.

Parameters
frameId

number

Returns

Found<{ center: number; classId: number; frameClass: number; }>

frmnam()

frmnam(code): Found<{ name: string; }>

Defined in: packages/backend-contract/src/domains/frames.ts:22

SPICE frmnam_c: look up a frame name by frame code.

Parameters
code

number

Returns

Found<{ name: string; }>

namfrm()

namfrm(name): Found<{ code: number; }>

Defined in: packages/backend-contract/src/domains/frames.ts:20

SPICE namfrm_c: look up a frame code by frame name.

Parameters
name

string

Returns

Found<{ code: number; }>

pxform()

pxform(from, to, et): Mat3RowMajor

Defined in: packages/backend-contract/src/domains/frames.ts:78

Compute a 3x3 frame transformation matrix (row-major).

Parameters
from

string

to

string

et

number

Returns

Mat3RowMajor

sxform()

sxform(from, to, et): SpiceMatrix6x6

Defined in: packages/backend-contract/src/domains/frames.ts:81

Compute a 6x6 state transformation matrix (row-major).

Parameters
from

string

to

string

et

number

Returns

SpiceMatrix6x6


GeometryApi

Defined in: packages/backend-contract/src/domains/geometry.ts:20

Backend contract for common SPICE geometry computations (subpoints, intercepts, illumination, etc).

Extended by

Methods

illumf()

illumf(method, target, ilusrc, et, fixref, abcorr, observer, spoint): IllumfResult

Defined in: packages/backend-contract/src/domains/geometry.ts:82

Compute illumination angles + visibility/lighting flags at a surface point.

Parameters
method

string

target

string

ilusrc

string

et

number

fixref

string

abcorr

string

observer

string

spoint

SpiceVector3

Returns

IllumfResult

illumg()

illumg(method, target, ilusrc, et, fixref, abcorr, observer, spoint): IluminResult

Defined in: packages/backend-contract/src/domains/geometry.ts:68

Compute illumination angles at a surface point, with a caller-specified illumination source body.

Parameters
method

string

target

string

ilusrc

string

et

number

fixref

string

abcorr

string

observer

string

spoint

SpiceVector3

Returns

IluminResult

ilumin()

ilumin(method, target, et, fixref, abcorr, observer, spoint): IluminResult

Defined in: packages/backend-contract/src/domains/geometry.ts:54

Compute illumination angles at a surface point.

Parameters
method

string

target

string

et

number

fixref

string

abcorr

string

observer

string

spoint

SpiceVector3

Returns

IluminResult

nvc2pl()

nvc2pl(normal, konst): SpicePlane

Defined in: packages/backend-contract/src/domains/geometry.ts:107

Convert a normal vector + constant to a plane.

Parameters
normal

SpiceVector3

konst

number

Returns

SpicePlane

occult()

occult(targ1, shape1, frame1, targ2, shape2, frame2, abcorr, observer, et): number

Defined in: packages/backend-contract/src/domains/geometry.ts:94

Determine the occultation condition code for one target vs another.

Parameters
targ1

string

shape1

string

frame1

string

targ2

string

shape2

string

frame2

string

abcorr

string

observer

string

et

number

Returns

number

pl2nvc()

pl2nvc(plane): Pl2nvcResult

Defined in: packages/backend-contract/src/domains/geometry.ts:110

Convert a plane to a unit normal vector + constant.

Parameters
plane

SpicePlane

Returns

Pl2nvcResult

sincpt()

sincpt(method, target, et, fixref, abcorr, observer, dref, dvec): Found<SubPointResult>

Defined in: packages/backend-contract/src/domains/geometry.ts:42

Compute the surface intercept point of a ray.

Parameters
method

string

target

string

et

number

fixref

string

abcorr

string

observer

string

dref

string

dvec

SpiceVector3

Returns

Found<SubPointResult>

subpnt()

subpnt(method, target, et, fixref, abcorr, observer): SubPointResult

Defined in: packages/backend-contract/src/domains/geometry.ts:22

Compute the sub-observer point on a target body's surface.

Parameters
method

string

target

string

et

number

fixref

string

abcorr

string

observer

string

Returns

SubPointResult

subslr()

subslr(method, target, et, fixref, abcorr, observer): SubPointResult

Defined in: packages/backend-contract/src/domains/geometry.ts:32

Compute the sub-solar point on a target body's surface.

Parameters
method

string

target

string

et

number

fixref

string

abcorr

string

observer

string

Returns

SubPointResult


GeometryGfApi

Defined in: packages/backend-contract/src/domains/geometry-gf.ts:21

Backend contract for Geometry Finder (GF) event-finding routines.

Extended by

Methods

gfdist()

gfdist(target, abcorr, obsrvr, relate, refval, adjust, step, nintvls, cnfine, result): void

Defined in: packages/backend-contract/src/domains/geometry-gf.ts:68

Observer-target distance search (gfdist_c).

refval and adjust are in km.

Parameters
target

string

abcorr

string

obsrvr

string

relate

string

refval

number

adjust

number

step

number

nintvls

number

cnfine

SpiceWindow

result

SpiceWindow

Returns

void

gfrefn()

gfrefn(t1, t2, s1, s2): number

Defined in: packages/backend-contract/src/domains/geometry-gf.ts:32

Default refinement estimator used by the GF subsystem (gfrefn_c).

Parameters
t1

number

t2

number

s1

boolean

s2

boolean

Returns

number

gfrepf()

gfrepf(): void

Defined in: packages/backend-contract/src/domains/geometry-gf.ts:38

Finalize the default console progress reporter (gfrepf_c).

Returns

void

gfrepi()

gfrepi(window, begmss, endmss): void

Defined in: packages/backend-contract/src/domains/geometry-gf.ts:35

Initialize the default console progress reporter (gfrepi_c).

Parameters
window

SpiceWindow

begmss

string

endmss

string

Returns

void

gfsep()

gfsep(targ1, shape1, frame1, targ2, shape2, frame2, abcorr, obsrvr, relate, refval, adjust, step, nintvls, cnfine, result): void

Defined in: packages/backend-contract/src/domains/geometry-gf.ts:45

Angular separation search (gfsep_c).

refval and adjust are in radians.

Parameters
targ1

string

shape1

string

frame1

string

targ2

string

shape2

string

frame2

string

abcorr

string

obsrvr

string

relate

string

refval

number

adjust

number

step

number

nintvls

number

cnfine

SpiceWindow

result

SpiceWindow

Returns

void

gfsstp()

gfsstp(step): void

Defined in: packages/backend-contract/src/domains/geometry-gf.ts:23

Set the constant step size used by GeometryGfApi.gfstep (gfsstp_c).

Parameters
step

number

Returns

void

gfstep()

gfstep(time): number

Defined in: packages/backend-contract/src/domains/geometry-gf.ts:26

Return the constant step size set by GeometryGfApi.gfsstp (gfstep_c).

Parameters
time

number

Returns

number

gfstol()

gfstol(value): void

Defined in: packages/backend-contract/src/domains/geometry-gf.ts:29

Override the GF convergence tolerance (gfstol_c).

Parameters
value

number

Returns

void


IdsNamesApi

Defined in: packages/backend-contract/src/domains/ids-names.ts:10

Backend contract for NAIF ID/name and body-constant lookups.

Extended by

Methods

bodc2n()

bodc2n(code): Found<{ name: string; }>

Defined in: packages/backend-contract/src/domains/ids-names.ts:14

SPICE bodc2n_c: look up a body name by NAIF ID code.

Parameters
code

number

Returns

Found<{ name: string; }>

bodc2s()

bodc2s(code): string

Defined in: packages/backend-contract/src/domains/ids-names.ts:17

Map a NAIF body ID code to a name (or decimal string if unknown).

Parameters
code

number

Returns

string

boddef()

boddef(name, code): void

Defined in: packages/backend-contract/src/domains/ids-names.ts:23

Define a body name/code mapping (side effect).

Parameters
name

string

code

number

Returns

void

bodfnd()

bodfnd(body, item): boolean

Defined in: packages/backend-contract/src/domains/ids-names.ts:32

Return true if a body constant exists in the kernel pool.

Normalization:

  • item is normalized as normalizeBodItem(item) (trim ASCII whitespace + ASCII-only uppercase) before lookup.
Parameters
body

number

item

string

Returns

boolean

bodn2c()

bodn2c(name): Found<{ code: number; }>

Defined in: packages/backend-contract/src/domains/ids-names.ts:12

SPICE bodn2c_c: look up a NAIF body ID code by name.

Parameters
name

string

Returns

Found<{ code: number; }>

bods2c()

bods2c(name): Found<{ code: number; }>

Defined in: packages/backend-contract/src/domains/ids-names.ts:20

Map a body name or numeric string to a NAIF body ID code.

Parameters
name

string

Returns

Found<{ code: number; }>

bodvar()

bodvar(body, item): number[]

Defined in: packages/backend-contract/src/domains/ids-names.ts:45

Return values of a body constant from the kernel pool.

Normalization:

  • item is normalized as normalizeBodItem(item) (trim ASCII whitespace + ASCII-only uppercase) before lookup.

Missing-item semantics:

  • If item is not found for body (or is non-numeric), returns [].
  • Call bodfnd(body, item) if you need a strict presence check.
Parameters
body

number

item

string

Returns

number[]


KernelPoolApi

Defined in: packages/backend-contract/src/domains/kernel-pool.ts:22

Backend contract for reading/writing kernel pool variables.

Extended by

Methods

cvpool()

cvpool(agent): boolean

Defined in: packages/backend-contract/src/domains/kernel-pool.ts:128

Check whether watched variables for agent have been updated since the last call.

Validation semantics:

  • agent must not be empty or whitespace-only.
Parameters
agent

string

Returns

boolean

dtpool()

dtpool(name): Found<{ n: number; type: KernelPoolVarType; }>

Defined in: packages/backend-contract/src/domains/kernel-pool.ts:75

Get kernel pool variable type (C or N) and size.

Validation semantics:

  • name must not be empty or whitespace-only.
Parameters
name

string

Returns

Found<{ n: number; type: KernelPoolVarType; }>

expool()

expool(name): boolean

Defined in: packages/backend-contract/src/domains/kernel-pool.ts:139

Check existence of a numeric kernel pool variable.

NOTE: This does not detect character-valued variables; use dtpool if you need a general existence/type check.

Validation semantics:

  • name must not be empty or whitespace-only.
Parameters
name

string

Returns

boolean

gcpool()

gcpool(name, start, room): Found<{ values: string[]; }>

Defined in: packages/backend-contract/src/domains/kernel-pool.ts:53

Get character kernel pool values.

Validation semantics:

  • name must not be empty or whitespace-only.
  • start must be a finite integer >= 0 (0-based).
  • room must be a finite integer > 0.
Parameters
name

string

start

number

room

number

Returns

Found<{ values: string[]; }>

gdpool()

gdpool(name, start, room): Found<{ values: number[]; }>

Defined in: packages/backend-contract/src/domains/kernel-pool.ts:33

Get numeric (double) kernel pool values.

Validation semantics:

  • name must not be empty or whitespace-only.
  • start must be a finite integer >= 0 (0-based).
  • room must be a finite integer > 0.
Parameters
name

string

start

number

room

number

Returns

Found<{ values: number[]; }>

gipool()

gipool(name, start, room): Found<{ values: number[]; }>

Defined in: packages/backend-contract/src/domains/kernel-pool.ts:43

Get numeric (integer) kernel pool values.

Validation semantics:

  • name must not be empty or whitespace-only.
  • start must be a finite integer >= 0 (0-based).
  • room must be a finite integer > 0.
Parameters
name

string

start

number

room

number

Returns

Found<{ values: number[]; }>

gnpool()

gnpool(template, start, room): Found<{ values: string[]; }>

Defined in: packages/backend-contract/src/domains/kernel-pool.ts:67

Get the names of kernel pool variables matching a template.

Wildcards:

  • * matches any substring
  • % matches any single character

Validation semantics:

  • template must not be empty or whitespace-only.
  • start must be a finite integer >= 0 (0-based).
  • room must be a finite integer > 0.
Parameters
template

string

start

number

room

number

Returns

Found<{ values: string[]; }>

pcpool()

pcpool(name, values): void

Defined in: packages/backend-contract/src/domains/kernel-pool.ts:107

Put character values into the kernel pool.

Validation semantics:

  • name must not be empty or whitespace-only.
  • values may be empty (sets an empty value list).
Parameters
name

string

values

readonly string[]

Returns

void

pdpool()

pdpool(name, values): void

Defined in: packages/backend-contract/src/domains/kernel-pool.ts:87

Put numeric (double) values into the kernel pool.

Validation semantics:

  • name must not be empty or whitespace-only.
  • values may be empty (sets an empty value list).
  • Each value must be finite (no NaN / ±Infinity).
Parameters
name

string

values

readonly number[]

Returns

void

pipool()

pipool(name, values): void

Defined in: packages/backend-contract/src/domains/kernel-pool.ts:98

Put numeric (integer) values into the kernel pool.

Validation semantics:

  • name must not be empty or whitespace-only.
  • values may be empty (sets an empty value list).
  • Each value must be a safe integer in the signed 32-bit range [-2147483648, 2147483647].
Parameters
name

string

values

readonly number[]

Returns

void

swpool()

swpool(agent, names): void

Defined in: packages/backend-contract/src/domains/kernel-pool.ts:120

Set up a kernel pool "watch" for agent.

After calling swpool, the next cvpool(agent) call will return true.

Validation semantics:

  • agent must not be empty or whitespace-only.
  • names may be empty (watch nothing).
Parameters
agent

string

names

readonly string[]

Returns

void


KernelsApi

Defined in: packages/backend-contract/src/domains/kernels.ts:26

Backend contract for kernel management and kernel metadata queries.

Extended by

Methods

furnsh()

furnsh(kernel): void

Defined in: packages/backend-contract/src/domains/kernels.ts:34

Load a SPICE kernel.

  • If a string is provided, it is treated as a filesystem path.
  • If bytes are provided, the backend may write them to a virtual filesystem at path before calling into SPICE.
Parameters
kernel

KernelSource

Returns

void

kclear()

kclear(): void

Defined in: packages/backend-contract/src/domains/kernels.ts:42

Clear all loaded kernels.

Returns

void

kdata()

kdata(which, kind?): Found<KernelData>

Defined in: packages/backend-contract/src/domains/kernels.ts:66

Retrieve kernel metadata at position which for a given kind.

Parameters
which

number

kind?

KernelKindInput

Returns

Found<KernelData>

kinfo()

kinfo(path): Found<KernelInfo>

Defined in: packages/backend-contract/src/domains/kernels.ts:45

Retrieve information about a currently loaded kernel by filename.

Parameters
path

string

Returns

Found<KernelInfo>

kplfrm()

kplfrm(frmcls, idset): void

Defined in: packages/backend-contract/src/domains/kernels.ts:60

Return kernel-pool frame IDs for the given frame class.

Parameters
frmcls

number

idset

SpiceIntCell

Returns

void

ktotal()

ktotal(kind?): number

Defined in: packages/backend-contract/src/domains/kernels.ts:63

Count loaded kernels of a given kind.

Parameters
kind?

KernelKindInput

Returns

number

kxtrct()

kxtrct(keywd, terms, wordsq): Found<{ substr: string; wordsq: string; }>

Defined in: packages/backend-contract/src/domains/kernels.ts:53

Extract a substring from a word sequence.

This is a string-parsing utility (used by some NAIF kernels and tooling). It does not extract kernel bytes.

Parameters
keywd

string

terms

readonly string[]

wordsq

string

Returns

Found<{ substr: string; wordsq: string; }>

unload()

unload(path): void

Defined in: packages/backend-contract/src/domains/kernels.ts:39

Unload a SPICE kernel previously loaded via furnsh().

Parameters
path

string

Returns

void


SpiceBackend

Defined in: packages/backend-contract/src/index.ts:138

Unified backend contract

Properties

kind

readonly kind: SpiceBackendKind

Defined in: packages/backend-contract/src/index.ts:146

Which backend implementation is in use.

kit

kit: SpiceKitBackend

Defined in: packages/backend-contract/src/index.ts:143

Higher-level, tspice-defined functions.

raw

raw: SpiceRawBackend

Defined in: packages/backend-contract/src/index.ts:140

Low-level, CSPICE-analogous functions.


SpiceKitBackend

Defined in: packages/backend-contract/src/index.ts:132

Composition of all kit domain APIs.

Extends

Methods

cellGetc()

cellGetc(cell, index): string

Defined in: packages/backend-contract/src/domains/cells-windows.ts:79

Fetch the indexth element of a character cell.

Backends may right-trim whitespace to match common CSPICE string handling.

Parameters
cell

SpiceCharCell

index

number

Returns

string

Inherited from

CellsWindowsKitApi.cellGetc

cellGetd()

cellGetd(cell, index): number

Defined in: packages/backend-contract/src/domains/cells-windows.ts:72

Fetch the indexth element of a double cell.

Parameters
cell

SpiceDoubleCell

index

number

Returns

number

Inherited from

CellsWindowsKitApi.cellGetd

cellGeti()

cellGeti(cell, index): number

Defined in: packages/backend-contract/src/domains/cells-windows.ts:69

Fetch the indexth element of an integer cell.

Parameters
cell

SpiceIntCell

index

number

Returns

number

Inherited from

CellsWindowsKitApi.cellGeti

freeCell()

freeCell(cell): void

Defined in: packages/backend-contract/src/domains/cells-windows.ts:53

Free a previously-created cell handle.

Parameters
cell

SpiceIntCell | SpiceDoubleCell | SpiceCharCell

Returns

void

Inherited from

CellsWindowsKitApi.freeCell

freeWindow()

freeWindow(window): void

Defined in: packages/backend-contract/src/domains/cells-windows.ts:56

Free a previously-created window handle.

Parameters
window

SpiceWindow

Returns

void

Inherited from

CellsWindowsKitApi.freeWindow

newCharCell()

newCharCell(size, length): SpiceCharCell

Defined in: packages/backend-contract/src/domains/cells-windows.ts:47

Create an empty character set cell.

length is the maximum string length (including trailing NUL). CSPICE generally expects length >= 2 and recommends length >= 5.

Parameters
size

number

length

number

Returns

SpiceCharCell

Inherited from

CellsWindowsKitApi.newCharCell

newDoubleCell()

newDoubleCell(size): SpiceDoubleCell

Defined in: packages/backend-contract/src/domains/cells-windows.ts:39

Create an empty double-precision set cell with the given capacity.

Parameters
size

number

Returns

SpiceDoubleCell

Inherited from

CellsWindowsKitApi.newDoubleCell

newIntCell()

newIntCell(size): SpiceIntCell

Defined in: packages/backend-contract/src/domains/cells-windows.ts:36

Create an empty integer set cell with the given capacity.

Parameters
size

number

Returns

SpiceIntCell

Inherited from

CellsWindowsKitApi.newIntCell

newWindow()

newWindow(maxIntervals): SpiceWindow

Defined in: packages/backend-contract/src/domains/cells-windows.ts:50

Create an empty DP window with capacity for maxIntervals intervals.

Parameters
maxIntervals

number

Returns

SpiceWindow

Inherited from

CellsWindowsKitApi.newWindow

readVirtualOutput()

readVirtualOutput(output): Uint8Array

Defined in: packages/backend-contract/src/domains/file-io.ts:53

Read back bytes for a previously-created virtual output file.

Notes:

  • Virtual outputs are only guaranteed to be readable after their associated writer handle has been closed (e.g. spkcls(handle) for SPK outputs).
  • Backends may reject reads for outputs they did not create via a writer API. This is intentionally not a general filesystem read.
Parameters
output

VirtualOutput

Returns

Uint8Array

Inherited from

FileIoKitApi.readVirtualOutput

spiceVersion()

spiceVersion(): string

Defined in: packages/backend-contract/src/domains/time.ts:9

Return the underlying SPICE toolkit version string.

Returns

string

Inherited from

TimeKitApi.spiceVersion


SpiceRawBackend

Defined in: packages/backend-contract/src/index.ts:115

Composition of all raw domain APIs.

Extends

Methods

axisar()

axisar(axis, angle): Mat3RowMajor

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:67

Convert an axis and angle to a rotation matrix.

Parameters
axis

SpiceVector3

angle

number

Returns

Mat3RowMajor

Inherited from

CoordsVectorsApi.axisar

bodc2n()

bodc2n(code): Found<{ name: string; }>

Defined in: packages/backend-contract/src/domains/ids-names.ts:14

SPICE bodc2n_c: look up a body name by NAIF ID code.

Parameters
code

number

Returns

Found<{ name: string; }>

Inherited from

IdsNamesApi.bodc2n

bodc2s()

bodc2s(code): string

Defined in: packages/backend-contract/src/domains/ids-names.ts:17

Map a NAIF body ID code to a name (or decimal string if unknown).

Parameters
code

number

Returns

string

Inherited from

IdsNamesApi.bodc2s

boddef()

boddef(name, code): void

Defined in: packages/backend-contract/src/domains/ids-names.ts:23

Define a body name/code mapping (side effect).

Parameters
name

string

code

number

Returns

void

Inherited from

IdsNamesApi.boddef

bodfnd()

bodfnd(body, item): boolean

Defined in: packages/backend-contract/src/domains/ids-names.ts:32

Return true if a body constant exists in the kernel pool.

Normalization:

  • item is normalized as normalizeBodItem(item) (trim ASCII whitespace + ASCII-only uppercase) before lookup.
Parameters
body

number

item

string

Returns

boolean

Inherited from

IdsNamesApi.bodfnd

bodn2c()

bodn2c(name): Found<{ code: number; }>

Defined in: packages/backend-contract/src/domains/ids-names.ts:12

SPICE bodn2c_c: look up a NAIF body ID code by name.

Parameters
name

string

Returns

Found<{ code: number; }>

Inherited from

IdsNamesApi.bodn2c

bods2c()

bods2c(name): Found<{ code: number; }>

Defined in: packages/backend-contract/src/domains/ids-names.ts:20

Map a body name or numeric string to a NAIF body ID code.

Parameters
name

string

Returns

Found<{ code: number; }>

Inherited from

IdsNamesApi.bods2c

bodvar()

bodvar(body, item): number[]

Defined in: packages/backend-contract/src/domains/ids-names.ts:45

Return values of a body constant from the kernel pool.

Normalization:

  • item is normalized as normalizeBodItem(item) (trim ASCII whitespace + ASCII-only uppercase) before lookup.

Missing-item semantics:

  • If item is not found for body (or is non-numeric), returns [].
  • Call bodfnd(body, item) if you need a strict presence check.
Parameters
body

number

item

string

Returns

number[]

Inherited from

IdsNamesApi.bodvar

card()

card(cell): number

Defined in: packages/backend-contract/src/domains/cells-windows.ts:94

Get the cardinality of a cell. (card_c)

Parameters
cell

SpiceIntCell | SpiceDoubleCell | SpiceCharCell | SpiceWindow

Returns

number

Inherited from

CellsWindowsApi.card

ccifrm()

ccifrm(frameClass, classId): Found<{ center: number; frcode: number; frname: string; }>

Defined in: packages/backend-contract/src/domains/frames.ts:33

SPICE ccifrm_c: map frame class + class ID to a frame code/name/center triple.

Parameters
frameClass

number

classId

number

Returns

Found<{ center: number; frcode: number; frname: string; }>

Inherited from

FramesApi.ccifrm

chkin()

chkin(name): void

Defined in: packages/backend-contract/src/domains/error.ts:58

Add name to the CSPICE traceback stack.

Parameters
name

string

Returns

void

Inherited from

ErrorApi.chkin

chkout()

chkout(name): void

Defined in: packages/backend-contract/src/domains/error.ts:61

Remove name from the CSPICE traceback stack.

Parameters
name

string

Returns

void

Inherited from

ErrorApi.chkout

cidfrm()

cidfrm(center): Found<{ frcode: number; frname: string; }>

Defined in: packages/backend-contract/src/domains/frames.ts:25

SPICE cidfrm_c: look up frame information for a center body ID.

Parameters
center

number

Returns

Found<{ frcode: number; frname: string; }>

Inherited from

FramesApi.cidfrm

ckcov()

ckcov(ck, idcode, needav, level, tol, timsys, cover): void

Defined in: packages/backend-contract/src/domains/frames.ts:67

Return coverage for an instrument/object in a CK file (ckcov_c).

Parameters
ck

string

idcode

number

needav

boolean

level

CkCoverageLevel

tol

number

timsys

CkCoverageTimeSystem

cover

SpiceWindow

Returns

void

Inherited from

FramesApi.ckcov

ckgp()

ckgp(inst, sclkdp, tol, ref): Found<{ clkout: number; cmat: Mat3RowMajor; }>

Defined in: packages/backend-contract/src/domains/frames.ts:36

Get pointing (attitude) for a CK instrument at a given encoded spacecraft clock time.

Parameters
inst

number

sclkdp

number

tol

number

ref

string

Returns

Found<{ clkout: number; cmat: Mat3RowMajor; }>

Inherited from

FramesApi.ckgp

ckgpav()

ckgpav(inst, sclkdp, tol, ref): Found<{ av: SpiceVector3; clkout: number; cmat: Mat3RowMajor; }>

Defined in: packages/backend-contract/src/domains/frames.ts:44

Get pointing + angular velocity for a CK instrument at a given encoded spacecraft clock time.

Parameters
inst

number

sclkdp

number

tol

number

ref

string

Returns

Found<{ av: SpiceVector3; clkout: number; cmat: Mat3RowMajor; }>

Inherited from

FramesApi.ckgpav

cklpf()

cklpf(ck): number

Defined in: packages/backend-contract/src/domains/frames.ts:58

Load a CK file for access by pointing routines (cklpf_c).

Returns a CK file handle suitable for FramesApi.ckupf.

Parameters
ck

string

Returns

number

Inherited from

FramesApi.cklpf

ckobj()

ckobj(ck, ids): void

Defined in: packages/backend-contract/src/domains/frames.ts:64

Return the set of instrument/object IDs for which the specified CK has segments (ckobj_c).

Parameters
ck

string

ids

SpiceIntCell

Returns

void

Inherited from

FramesApi.ckobj

ckupf()

ckupf(handle): void

Defined in: packages/backend-contract/src/domains/frames.ts:61

Unload a CK file previously loaded by FramesApi.cklpf (ckupf_c).

Parameters
handle

number

Returns

void

Inherited from

FramesApi.ckupf

cnmfrm()

cnmfrm(centerName): Found<{ frcode: number; frname: string; }>

Defined in: packages/backend-contract/src/domains/frames.ts:27

SPICE cnmfrm_c: look up frame information for a center body name.

Parameters
centerName

string

Returns

Found<{ frcode: number; frname: string; }>

Inherited from

FramesApi.cnmfrm

cvpool()

cvpool(agent): boolean

Defined in: packages/backend-contract/src/domains/kernel-pool.ts:128

Check whether watched variables for agent have been updated since the last call.

Validation semantics:

  • agent must not be empty or whitespace-only.
Parameters
agent

string

Returns

boolean

Inherited from

KernelPoolApi.cvpool

dafbfs()

dafbfs(handle): void

Defined in: packages/backend-contract/src/domains/file-io.ts:73

Begin a forward search for arrays in the given DAF file (see dafbfs_c).

Parameters
handle

SpiceHandle

Returns

void

Inherited from

FileIoApi.dafbfs

dafcls()

dafcls(handle): void

Defined in: packages/backend-contract/src/domains/file-io.ts:70

Close a DAF file previously opened by dafopr().

Parameters
handle

SpiceHandle

Returns

void

Inherited from

FileIoApi.dafcls

daffna()

daffna(handle): boolean

Defined in: packages/backend-contract/src/domains/file-io.ts:81

Find the next DAF array (see daffna_c).

Backend implementations should select the current DAF via dafcs_c(handle) before calling daffna_c to support interleaving multiple DAF searches.

Parameters
handle

SpiceHandle

Returns

boolean

Inherited from

FileIoApi.daffna

dafopr()

dafopr(path): SpiceHandle

Defined in: packages/backend-contract/src/domains/file-io.ts:67

Open a DAF file for read (see dafopr_c).

Parameters
path

string

Returns

SpiceHandle

Inherited from

FileIoApi.dafopr

dascls()

dascls(handle): void

Defined in: packages/backend-contract/src/domains/file-io.ts:96

Close a DAS-backed file handle.

In CSPICE, dascls_c closes both DAS and DLA handles, and dlacls_c is an alias. We mirror that behavior: dascls and dlacls are interchangeable and accept handles returned from either dasopr() (read) or dlaopn() (write).

Parameters
handle

SpiceHandle

Returns

void

Inherited from

FileIoApi.dascls

dasopr()

dasopr(path): SpiceHandle

Defined in: packages/backend-contract/src/domains/file-io.ts:86

Open a DAS file for read (see dasopr_c).

Parameters
path

string

Returns

SpiceHandle

Inherited from

FileIoApi.dasopr

deltet()

deltet(epoch, eptype): number

Defined in: packages/backend-contract/src/domains/time.ts:44

Return the difference ET - UTC at a given epoch.

Kernel prerequisites:

  • Requires an LSK (leapseconds) kernel to be loaded.

Wrapper around CSPICE deltet_c.

Parameters
epoch

number

eptype

"ET" | "UTC"

Returns

number

Inherited from

TimeApi.deltet

dlabfs()

dlabfs(handle): FoundDlaDescriptor

Defined in: packages/backend-contract/src/domains/file-io.ts:109

Begin a forward search for DLA segments (see dlabfs_c).

DLA is DAS-backed: handle must be a DAS handle to a DLA file, opened via dasopr() (read) or dlaopn() (write).

Parameters
handle

SpiceHandle

Returns

FoundDlaDescriptor

Inherited from

FileIoApi.dlabfs

dlacls()

dlacls(handle): void

Defined in: packages/backend-contract/src/domains/file-io.ts:125

Close a DAS-backed DLA handle.

Provided for parity with CSPICE dlacls_c, but implemented as an alias of dascls (same handle compatibility).

Parameters
handle

SpiceHandle

Returns

void

Inherited from

FileIoApi.dlacls

dlafns()

dlafns(handle, descr): FoundDlaDescriptor

Defined in: packages/backend-contract/src/domains/file-io.ts:117

Find the next DLA segment after descr (see dlafns_c).

DLA is DAS-backed: handle must be a DAS handle to a DLA file, opened via dasopr() (read) or dlaopn() (write).

Parameters
handle

SpiceHandle

descr

DlaDescriptor

Returns

FoundDlaDescriptor

Inherited from

FileIoApi.dlafns

dlaopn()

dlaopn(path, ftype, ifname, ncomch): SpiceHandle

Defined in: packages/backend-contract/src/domains/file-io.ts:101

Create and open a DLA file for write (see dlaopn_c).

Parameters
path

string

ftype

string

ifname

string

ncomch

number

Returns

SpiceHandle

Inherited from

FileIoApi.dlaopn

dskb02()

dskb02(handle, dladsc): DskType2Bookkeeping

Defined in: packages/backend-contract/src/domains/dsk.ts:59

Return the type 2 DSK segment bookkeeping parameters.

Parameters
handle

SpiceHandle

dladsc

DlaDescriptor

Returns

DskType2Bookkeeping

Inherited from

DskApi.dskb02

dskgd()

dskgd(handle, dladsc): DskDescriptor

Defined in: packages/backend-contract/src/domains/dsk.ts:56

Return the descriptor of a DSK segment.

Parameters
handle

SpiceHandle

dladsc

DlaDescriptor

Returns

DskDescriptor

Inherited from

DskApi.dskgd

dskmi2()

dskmi2(nv, vrtces, np, plates, finscl, corscl, worksz, voxpsz, voxlsz, makvtl, spxisz): object

Defined in: packages/backend-contract/src/domains/file-io.ts:133

Build the spatial index for a type 2 DSK segment (see dskmi2_c).

Parameters
nv

number

vrtces

readonly number[]

np

number

plates

readonly number[]

finscl

number

corscl

number

worksz

number

voxpsz

number

voxlsz

number

makvtl

boolean

spxisz

number

Returns

object

spaixd

spaixd: number[]

spaixi

spaixi: number[]

Inherited from

FileIoApi.dskmi2

dskobj()

dskobj(dsk, bodids): void

Defined in: packages/backend-contract/src/domains/dsk.ts:50

Return the set of body IDs for which the specified DSK has segments.

Parameters
dsk

string

bodids

SpiceIntCell

Returns

void

Inherited from

DskApi.dskobj

dskopn()

dskopn(path, ifname, ncomch): SpiceHandle

Defined in: packages/backend-contract/src/domains/file-io.ts:130

Create and open a DSK file for write (see dskopn_c).

Parameters
path

string

ifname

string

ncomch

number

Returns

SpiceHandle

Inherited from

FileIoApi.dskopn

dsksrf()

dsksrf(dsk, bodyid, srfids): void

Defined in: packages/backend-contract/src/domains/dsk.ts:53

Return the set of surface IDs for which the specified DSK has segments.

Parameters
dsk

string

bodyid

number

srfids

SpiceIntCell

Returns

void

Inherited from

DskApi.dsksrf

dskw02()

dskw02(handle, center, surfid, dclass, frame, corsys, corpar, mncor1, mxcor1, mncor2, mxcor2, mncor3, mxcor3, first, last, nv, vrtces, np, plates, spaixd, spaixi): void

Defined in: packages/backend-contract/src/domains/file-io.ts:148

Write a type 2 segment to a DSK file opened by dskopn (see dskw02_c).

Parameters
handle

SpiceHandle

center

number

surfid

number

dclass

number

frame

string

corsys

number

corpar

readonly number[]

mncor1

number

mxcor1

number

mncor2

number

mxcor2

number

mncor3

number

mxcor3

number

first

number

last

number

nv

number

vrtces

readonly number[]

np

number

plates

readonly number[]

spaixd

readonly number[]

spaixi

readonly number[]

Returns

void

Inherited from

FileIoApi.dskw02

dtpool()

dtpool(name): Found<{ n: number; type: KernelPoolVarType; }>

Defined in: packages/backend-contract/src/domains/kernel-pool.ts:75

Get kernel pool variable type (C or N) and size.

Validation semantics:

  • name must not be empty or whitespace-only.
Parameters
name

string

Returns

Found<{ n: number; type: KernelPoolVarType; }>

Inherited from

KernelPoolApi.dtpool

ekaclc()

ekaclc(handle, segno, column, cvals, entszs, nlflgs, rcptrs): void

Defined in: packages/backend-contract/src/domains/ek.ts:219

Add a character column's data to a fast-write segment (see ekaclc_c).

Packing:

  • entszs, nlflgs, and rcptrs are per-row arrays and must have the same length nrows (the nrows passed to ekifld, i.e. rcptrs.length).
  • cvals is a packed array containing exactly sum(entszs) values.

NULL rows (nlflgs[i] === true):

  • Variable-size columns: set entszs[i] = 0 and do not include any values for that row.
  • Fixed-size columns (SIZE = N): include/pad N placeholder values for that row and set entszs[i] = N so cvals.length === sum(entszs) remains true.
Parameters
handle

SpiceHandle

segno

number

column

string

cvals

readonly string[]

entszs

readonly number[]

nlflgs

readonly boolean[]

rcptrs

readonly number[]

Returns

void

Inherited from

EkApi.ekaclc

ekacld()

ekacld(handle, segno, column, dvals, entszs, nlflgs, rcptrs): void

Defined in: packages/backend-contract/src/domains/ek.ts:196

Add a double-precision column's data to a fast-write segment (see ekacld_c).

Packing:

  • entszs, nlflgs, and rcptrs are per-row arrays and must have the same length nrows (the nrows passed to ekifld, i.e. rcptrs.length).
  • dvals is a packed array containing exactly sum(entszs) values.

NULL rows (nlflgs[i] === true):

  • Variable-size columns: set entszs[i] = 0 and do not include any values for that row.
  • Fixed-size columns (SIZE = N): include/pad N placeholder values for that row and set entszs[i] = N so dvals.length === sum(entszs) remains true.
Parameters
handle

SpiceHandle

segno

number

column

string

dvals

readonly number[]

entszs

readonly number[]

nlflgs

readonly boolean[]

rcptrs

readonly number[]

Returns

void

Inherited from

EkApi.ekacld

ekacli()

ekacli(handle, segno, column, ivals, entszs, nlflgs, rcptrs): void

Defined in: packages/backend-contract/src/domains/ek.ts:173

Add an integer column's data to a fast-write segment (see ekacli_c).

Packing:

  • entszs, nlflgs, and rcptrs are per-row arrays and must have the same length nrows (the nrows passed to ekifld, i.e. rcptrs.length).
  • ivals is a packed array containing exactly sum(entszs) values.

NULL rows (nlflgs[i] === true):

  • Variable-size columns: set entszs[i] = 0 and do not include any values for that row.
  • Fixed-size columns (SIZE = N): include/pad N placeholder values for that row and set entszs[i] = N so ivals.length === sum(entszs) remains true.
Parameters
handle

SpiceHandle

segno

number

column

string

ivals

readonly number[]

entszs

readonly number[]

nlflgs

readonly boolean[]

rcptrs

readonly number[]

Returns

void

Inherited from

EkApi.ekacli

ekcls()

ekcls(handle): void

Defined in: packages/backend-contract/src/domains/ek.ts:70

Close an EK file opened via ekopr / ekopw / ekopn (see ekcls_c).

Notes:

  • EK handles are explicit resources and are not automatically closed by unload() / kclear().
  • If path was backed by byte-staged temp bytes, close EK handles before calling unload() / kclear() to allow best-effort temp file deletion (especially on Windows).
Parameters
handle

SpiceHandle

Returns

void

Inherited from

EkApi.ekcls

ekffld()

ekffld(handle, segno, rcptrs): void

Defined in: packages/backend-contract/src/domains/ek.ts:230

Complete a fast-write segment (see ekffld_c).

Parameters
handle

SpiceHandle

segno

number

rcptrs

readonly number[]

Returns

void

Inherited from

EkApi.ekffld

ekfind()

ekfind(query): EkFindResult

Defined in: packages/backend-contract/src/domains/ek.ts:108

Execute an EK query (see ekfind_c).

Notes:

  • EK query results live in CSPICE global state.
  • Beginning fast-write via ekifld can invalidate the active selection/result set. Avoid interleaving ekfind/ekg* reads with fast-write; rerun ekfind after fast-write if you need to read again.
Parameters
query

string

Returns

EkFindResult

Inherited from

EkApi.ekfind

ekgc()

ekgc(selidx, row, elment): EkGetResult<string>

Defined in: packages/backend-contract/src/domains/ek.ts:118

Fetch a character-valued element from the active query result set (see ekgc_c).

Indices are 0-based per NAIF:

  • selidx: 0-based index of the selected item in the query's SELECT clause.
  • row: 0-based row index in the result set (0..nmrows-1 from the last successful ekfind).
  • elment: 0-based element index within the cell entry (0 for scalar entries).
Parameters
selidx

number

row

number

elment

number

Returns

EkGetResult<string>

Inherited from

EkApi.ekgc

ekgd()

ekgd(selidx, row, elment): EkGetResult<number>

Defined in: packages/backend-contract/src/domains/ek.ts:128

Fetch a double-valued element from the active query result set (see ekgd_c).

Indices are 0-based per NAIF:

  • selidx: 0-based index of the selected item in the query's SELECT clause.
  • row: 0-based row index in the result set (0..nmrows-1 from the last successful ekfind).
  • elment: 0-based element index within the cell entry (0 for scalar entries).
Parameters
selidx

number

row

number

elment

number

Returns

EkGetResult<number>

Inherited from

EkApi.ekgd

ekgi()

ekgi(selidx, row, elment): EkGetResult<number>

Defined in: packages/backend-contract/src/domains/ek.ts:138

Fetch an integer-valued element from the active query result set (see ekgi_c).

Indices are 0-based per NAIF:

  • selidx: 0-based index of the selected item in the query's SELECT clause.
  • row: 0-based row index in the result set (0..nmrows-1 from the last successful ekfind).
  • elment: 0-based element index within the cell entry (0 for scalar entries).
Parameters
selidx

number

row

number

elment

number

Returns

EkGetResult<number>

Inherited from

EkApi.ekgi

ekifld()

ekifld(handle, tabnam, nrows, cnames, decls): object

Defined in: packages/backend-contract/src/domains/ek.ts:152

Begin fast-write for a new EK segment (see ekifld_c).

Returns segno (new segment number) and the rcptrs workspace array. rcptrs must be passed to the subsequent column-add calls and to ekffld.

Notes:

  • Calling ekifld may invalidate the active EK query selection (from ekfind). If you need to read query results after starting fast-write, rerun ekfind.
Parameters
handle

SpiceHandle

tabnam

string

nrows

number

cnames

readonly string[]

decls

readonly string[]

Returns

object

rcptrs

rcptrs: number[]

segno

segno: number

Inherited from

EkApi.ekifld

eknseg()

eknseg(handle): number

Defined in: packages/backend-contract/src/domains/ek.ts:95

Number of segments in an EK file opened via handle (see eknseg_c).

Postconditions:

  • Returns an integer count n with 0 <= n <= 2_147_483_647.
  • Backends should validate this postcondition and throw if violated.
Parameters
handle

SpiceHandle

Returns

number

Inherited from

EkApi.eknseg

ekntab()

ekntab(): number

Defined in: packages/backend-contract/src/domains/ek.ts:79

Number of EK tables currently loaded (see ekntab_c).

Postconditions:

  • Returns an integer count n with 0 <= n <= 2_147_483_647.
  • Backends should validate this postcondition and throw if violated.
Returns

number

Inherited from

EkApi.ekntab

ekopn()

ekopn(path, ifname, ncomch): SpiceHandle

Defined in: packages/backend-contract/src/domains/ek.ts:60

Create and open a new EK file for write (see ekopn_c).

ncomch is the number of comment characters to allocate for the EK.

Parameters
path

string

ifname

string

ncomch

number

Returns

SpiceHandle

Inherited from

EkApi.ekopn

ekopr()

ekopr(path): SpiceHandle

Defined in: packages/backend-contract/src/domains/ek.ts:50

Open an existing EK file for read (see ekopr_c).

Parameters
path

string

Returns

SpiceHandle

Inherited from

EkApi.ekopr

ekopw()

ekopw(path): SpiceHandle

Defined in: packages/backend-contract/src/domains/ek.ts:53

Open an existing EK file for write (see ekopw_c).

Parameters
path

string

Returns

SpiceHandle

Inherited from

EkApi.ekopw

ektnam()

ektnam(n): string

Defined in: packages/backend-contract/src/domains/ek.ts:86

Retrieve the EK table name by 0-based index (see ektnam_c).

n must be in the range 0..ekntab()-1.

Parameters
n

number

Returns

string

Inherited from

EkApi.ektnam

et2utc()

et2utc(et, format, prec): string

Defined in: packages/backend-contract/src/domains/time.ts:27

Convert ET seconds past J2000 to a formatted UTC string.

Parameters
et

number

format

string

prec

number

Returns

string

Inherited from

TimeApi.et2utc

exists()

exists(path): boolean

Defined in: packages/backend-contract/src/domains/file-io.ts:59

Returns whether a file exists at path.

Parameters
path

string

Returns

boolean

Inherited from

FileIoApi.exists

expool()

expool(name): boolean

Defined in: packages/backend-contract/src/domains/kernel-pool.ts:139

Check existence of a numeric kernel pool variable.

NOTE: This does not detect character-valued variables; use dtpool if you need a general existence/type check.

Validation semantics:

  • name must not be empty or whitespace-only.
Parameters
name

string

Returns

boolean

Inherited from

KernelPoolApi.expool

failed()

failed(): boolean

Defined in: packages/backend-contract/src/domains/error.ts:43

Return true if the CSPICE error status is currently set.

Returns

boolean

Inherited from

ErrorApi.failed

frinfo()

frinfo(frameId): Found<{ center: number; classId: number; frameClass: number; }>

Defined in: packages/backend-contract/src/domains/frames.ts:30

SPICE frinfo_c: get center + frame class info for a frame ID.

Parameters
frameId

number

Returns

Found<{ center: number; classId: number; frameClass: number; }>

Inherited from

FramesApi.frinfo

frmnam()

frmnam(code): Found<{ name: string; }>

Defined in: packages/backend-contract/src/domains/frames.ts:22

SPICE frmnam_c: look up a frame name by frame code.

Parameters
code

number

Returns

Found<{ name: string; }>

Inherited from

FramesApi.frmnam

furnsh()

furnsh(kernel): void

Defined in: packages/backend-contract/src/domains/kernels.ts:34

Load a SPICE kernel.

  • If a string is provided, it is treated as a filesystem path.
  • If bytes are provided, the backend may write them to a virtual filesystem at path before calling into SPICE.
Parameters
kernel

KernelSource

Returns

void

Inherited from

KernelsApi.furnsh

gcpool()

gcpool(name, start, room): Found<{ values: string[]; }>

Defined in: packages/backend-contract/src/domains/kernel-pool.ts:53

Get character kernel pool values.

Validation semantics:

  • name must not be empty or whitespace-only.
  • start must be a finite integer >= 0 (0-based).
  • room must be a finite integer > 0.
Parameters
name

string

start

number

room

number

Returns

Found<{ values: string[]; }>

Inherited from

KernelPoolApi.gcpool

gdpool()

gdpool(name, start, room): Found<{ values: number[]; }>

Defined in: packages/backend-contract/src/domains/kernel-pool.ts:33

Get numeric (double) kernel pool values.

Validation semantics:

  • name must not be empty or whitespace-only.
  • start must be a finite integer >= 0 (0-based).
  • room must be a finite integer > 0.
Parameters
name

string

start

number

room

number

Returns

Found<{ values: number[]; }>

Inherited from

KernelPoolApi.gdpool

georec()

georec(lon, lat, alt, re, f): SpiceVector3

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:70

SPICE georec_c: geodetic lon/lat/alt -> rectangular coordinates.

Parameters
lon

number

lat

number

alt

number

re

number

f

number

Returns

SpiceVector3

Inherited from

CoordsVectorsApi.georec

getfat()

getfat(path): object

Defined in: packages/backend-contract/src/domains/file-io.ts:62

Determine SPICE file architecture + type (see getfat_c).

Parameters
path

string

Returns

object

arch

arch: string

type

type: string

Inherited from

FileIoApi.getfat

getmsg()

getmsg(which): string

Defined in: packages/backend-contract/src/domains/error.ts:49

Get a CSPICE error message component.

Parameters
which

"SHORT" | "LONG" | "EXPLAIN"

Returns

string

Inherited from

ErrorApi.getmsg

gfdist()

gfdist(target, abcorr, obsrvr, relate, refval, adjust, step, nintvls, cnfine, result): void

Defined in: packages/backend-contract/src/domains/geometry-gf.ts:68

Observer-target distance search (gfdist_c).

refval and adjust are in km.

Parameters
target

string

abcorr

string

obsrvr

string

relate

string

refval

number

adjust

number

step

number

nintvls

number

cnfine

SpiceWindow

result

SpiceWindow

Returns

void

Inherited from

GeometryGfApi.gfdist

gfrefn()

gfrefn(t1, t2, s1, s2): number

Defined in: packages/backend-contract/src/domains/geometry-gf.ts:32

Default refinement estimator used by the GF subsystem (gfrefn_c).

Parameters
t1

number

t2

number

s1

boolean

s2

boolean

Returns

number

Inherited from

GeometryGfApi.gfrefn

gfrepf()

gfrepf(): void

Defined in: packages/backend-contract/src/domains/geometry-gf.ts:38

Finalize the default console progress reporter (gfrepf_c).

Returns

void

Inherited from

GeometryGfApi.gfrepf

gfrepi()

gfrepi(window, begmss, endmss): void

Defined in: packages/backend-contract/src/domains/geometry-gf.ts:35

Initialize the default console progress reporter (gfrepi_c).

Parameters
window

SpiceWindow

begmss

string

endmss

string

Returns

void

Inherited from

GeometryGfApi.gfrepi

gfsep()

gfsep(targ1, shape1, frame1, targ2, shape2, frame2, abcorr, obsrvr, relate, refval, adjust, step, nintvls, cnfine, result): void

Defined in: packages/backend-contract/src/domains/geometry-gf.ts:45

Angular separation search (gfsep_c).

refval and adjust are in radians.

Parameters
targ1

string

shape1

string

frame1

string

targ2

string

shape2

string

frame2

string

abcorr

string

obsrvr

string

relate

string

refval

number

adjust

number

step

number

nintvls

number

cnfine

SpiceWindow

result

SpiceWindow

Returns

void

Inherited from

GeometryGfApi.gfsep

gfsstp()

gfsstp(step): void

Defined in: packages/backend-contract/src/domains/geometry-gf.ts:23

Set the constant step size used by GeometryGfApi.gfstep (gfsstp_c).

Parameters
step

number

Returns

void

Inherited from

GeometryGfApi.gfsstp

gfstep()

gfstep(time): number

Defined in: packages/backend-contract/src/domains/geometry-gf.ts:26

Return the constant step size set by GeometryGfApi.gfsstp (gfstep_c).

Parameters
time

number

Returns

number

Inherited from

GeometryGfApi.gfstep

gfstol()

gfstol(value): void

Defined in: packages/backend-contract/src/domains/geometry-gf.ts:29

Override the GF convergence tolerance (gfstol_c).

Parameters
value

number

Returns

void

Inherited from

GeometryGfApi.gfstol

gipool()

gipool(name, start, room): Found<{ values: number[]; }>

Defined in: packages/backend-contract/src/domains/kernel-pool.ts:43

Get numeric (integer) kernel pool values.

Validation semantics:

  • name must not be empty or whitespace-only.
  • start must be a finite integer >= 0 (0-based).
  • room must be a finite integer > 0.
Parameters
name

string

start

number

room

number

Returns

Found<{ values: number[]; }>

Inherited from

KernelPoolApi.gipool

gnpool()

gnpool(template, start, room): Found<{ values: string[]; }>

Defined in: packages/backend-contract/src/domains/kernel-pool.ts:67

Get the names of kernel pool variables matching a template.

Wildcards:

  • * matches any substring
  • % matches any single character

Validation semantics:

  • template must not be empty or whitespace-only.
  • start must be a finite integer >= 0 (0-based).
  • room must be a finite integer > 0.
Parameters
template

string

start

number

room

number

Returns

Found<{ values: string[]; }>

Inherited from

KernelPoolApi.gnpool

illumf()

illumf(method, target, ilusrc, et, fixref, abcorr, observer, spoint): IllumfResult

Defined in: packages/backend-contract/src/domains/geometry.ts:82

Compute illumination angles + visibility/lighting flags at a surface point.

Parameters
method

string

target

string

ilusrc

string

et

number

fixref

string

abcorr

string

observer

string

spoint

SpiceVector3

Returns

IllumfResult

Inherited from

GeometryApi.illumf

illumg()

illumg(method, target, ilusrc, et, fixref, abcorr, observer, spoint): IluminResult

Defined in: packages/backend-contract/src/domains/geometry.ts:68

Compute illumination angles at a surface point, with a caller-specified illumination source body.

Parameters
method

string

target

string

ilusrc

string

et

number

fixref

string

abcorr

string

observer

string

spoint

SpiceVector3

Returns

IluminResult

Inherited from

GeometryApi.illumg

ilumin()

ilumin(method, target, et, fixref, abcorr, observer, spoint): IluminResult

Defined in: packages/backend-contract/src/domains/geometry.ts:54

Compute illumination angles at a surface point.

Parameters
method

string

target

string

et

number

fixref

string

abcorr

string

observer

string

spoint

SpiceVector3

Returns

IluminResult

Inherited from

GeometryApi.ilumin

insrtc()

insrtc(item, cell): void

Defined in: packages/backend-contract/src/domains/cells-windows.ts:113

Insert a string into a character set cell. (insrtc_c)

Parameters
item

string

cell

SpiceCharCell

Returns

void

Inherited from

CellsWindowsApi.insrtc

insrtd()

insrtd(item, cell): void

Defined in: packages/backend-contract/src/domains/cells-windows.ts:110

Insert a double into a double set cell. (insrtd_c)

Parameters
item

number

cell

SpiceDoubleCell

Returns

void

Inherited from

CellsWindowsApi.insrtd

insrti()

insrti(item, cell): void

Defined in: packages/backend-contract/src/domains/cells-windows.ts:107

Insert an integer into an integer set cell. (insrti_c)

Parameters
item

number

cell

SpiceIntCell

Returns

void

Inherited from

CellsWindowsApi.insrti

kclear()

kclear(): void

Defined in: packages/backend-contract/src/domains/kernels.ts:42

Clear all loaded kernels.

Returns

void

Inherited from

KernelsApi.kclear

kdata()

kdata(which, kind?): Found<KernelData>

Defined in: packages/backend-contract/src/domains/kernels.ts:66

Retrieve kernel metadata at position which for a given kind.

Parameters
which

number

kind?

KernelKindInput

Returns

Found<KernelData>

Inherited from

KernelsApi.kdata

kinfo()

kinfo(path): Found<KernelInfo>

Defined in: packages/backend-contract/src/domains/kernels.ts:45

Retrieve information about a currently loaded kernel by filename.

Parameters
path

string

Returns

Found<KernelInfo>

Inherited from

KernelsApi.kinfo

kplfrm()

kplfrm(frmcls, idset): void

Defined in: packages/backend-contract/src/domains/kernels.ts:60

Return kernel-pool frame IDs for the given frame class.

Parameters
frmcls

number

idset

SpiceIntCell

Returns

void

Inherited from

KernelsApi.kplfrm

ktotal()

ktotal(kind?): number

Defined in: packages/backend-contract/src/domains/kernels.ts:63

Count loaded kernels of a given kind.

Parameters
kind?

KernelKindInput

Returns

number

Inherited from

KernelsApi.ktotal

kxtrct()

kxtrct(keywd, terms, wordsq): Found<{ substr: string; wordsq: string; }>

Defined in: packages/backend-contract/src/domains/kernels.ts:53

Extract a substring from a word sequence.

This is a string-parsing utility (used by some NAIF kernels and tooling). It does not extract kernel bytes.

Parameters
keywd

string

terms

readonly string[]

wordsq

string

Returns

Found<{ substr: string; wordsq: string; }>

Inherited from

KernelsApi.kxtrct

latrec()

latrec(radius, lon, lat): SpiceVector3

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:14

SPICE latrec_c: latitudinal -> rectangular coordinates.

Parameters
radius

number

lon

number

lat

number

Returns

SpiceVector3

Inherited from

CoordsVectorsApi.latrec

mtxv()

mtxv(m, v): SpiceVector3

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:77

SPICE mtxv_c: multiply transpose(matrix) by vector.

Parameters
m

Mat3RowMajor

v

SpiceVector3

Returns

SpiceVector3

Inherited from

CoordsVectorsApi.mtxv

mxm()

mxm(a, b): Mat3RowMajor

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:48

SPICE mxm_c: matrix-matrix multiplication.

Parameters
a

Mat3RowMajor

b

Mat3RowMajor

Returns

Mat3RowMajor

Inherited from

CoordsVectorsApi.mxm

mxv()

mxv(m, v): SpiceVector3

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:75

SPICE mxv_c: multiply matrix by vector.

Parameters
m

Mat3RowMajor

v

SpiceVector3

Returns

SpiceVector3

Inherited from

CoordsVectorsApi.mxv

namfrm()

namfrm(name): Found<{ code: number; }>

Defined in: packages/backend-contract/src/domains/frames.ts:20

SPICE namfrm_c: look up a frame code by frame name.

Parameters
name

string

Returns

Found<{ code: number; }>

Inherited from

FramesApi.namfrm

nvc2pl()

nvc2pl(normal, konst): SpicePlane

Defined in: packages/backend-contract/src/domains/geometry.ts:107

Convert a normal vector + constant to a plane.

Parameters
normal

SpiceVector3

konst

number

Returns

SpicePlane

Inherited from

GeometryApi.nvc2pl

occult()

occult(targ1, shape1, frame1, targ2, shape2, frame2, abcorr, observer, et): number

Defined in: packages/backend-contract/src/domains/geometry.ts:94

Determine the occultation condition code for one target vs another.

Parameters
targ1

string

shape1

string

frame1

string

targ2

string

shape2

string

frame2

string

abcorr

string

observer

string

et

number

Returns

number

Inherited from

GeometryApi.occult

pcpool()

pcpool(name, values): void

Defined in: packages/backend-contract/src/domains/kernel-pool.ts:107

Put character values into the kernel pool.

Validation semantics:

  • name must not be empty or whitespace-only.
  • values may be empty (sets an empty value list).
Parameters
name

string

values

readonly string[]

Returns

void

Inherited from

KernelPoolApi.pcpool

pdpool()

pdpool(name, values): void

Defined in: packages/backend-contract/src/domains/kernel-pool.ts:87

Put numeric (double) values into the kernel pool.

Validation semantics:

  • name must not be empty or whitespace-only.
  • values may be empty (sets an empty value list).
  • Each value must be finite (no NaN / ±Infinity).
Parameters
name

string

values

readonly number[]

Returns

void

Inherited from

KernelPoolApi.pdpool

pipool()

pipool(name, values): void

Defined in: packages/backend-contract/src/domains/kernel-pool.ts:98

Put numeric (integer) values into the kernel pool.

Validation semantics:

  • name must not be empty or whitespace-only.
  • values may be empty (sets an empty value list).
  • Each value must be a safe integer in the signed 32-bit range [-2147483648, 2147483647].
Parameters
name

string

values

readonly number[]

Returns

void

Inherited from

KernelPoolApi.pipool

pl2nvc()

pl2nvc(plane): Pl2nvcResult

Defined in: packages/backend-contract/src/domains/geometry.ts:110

Convert a plane to a unit normal vector + constant.

Parameters
plane

SpicePlane

Returns

Pl2nvcResult

Inherited from

GeometryApi.pl2nvc

pxform()

pxform(from, to, et): Mat3RowMajor

Defined in: packages/backend-contract/src/domains/frames.ts:78

Compute a 3x3 frame transformation matrix (row-major).

Parameters
from

string

to

string

et

number

Returns

Mat3RowMajor

Inherited from

FramesApi.pxform

recgeo()

recgeo(rect, re, f): object

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:72

SPICE recgeo_c: rectangular -> geodetic lon/lat/alt coordinates.

Parameters
rect

SpiceVector3

re

number

f

number

Returns

object

alt

alt: number

lat

lat: number

lon

lon: number

Inherited from

CoordsVectorsApi.recgeo

reclat()

reclat(rect): object

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:12

SPICE reclat_c: rectangular -> latitudinal coordinates.

Parameters
rect

SpiceVector3

Returns

object

lat

lat: number

lon

lon: number

radius

radius: number

Inherited from

CoordsVectorsApi.reclat

recsph()

recsph(rect): object

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:17

SPICE recsph_c: rectangular -> spherical coordinates.

Parameters
rect

SpiceVector3

Returns

object

colat

colat: number

lon

lon: number

radius

radius: number

Inherited from

CoordsVectorsApi.recsph

reset()

reset(): void

Defined in: packages/backend-contract/src/domains/error.ts:46

Reset/clear the CSPICE error status and messages.

Returns

void

Inherited from

ErrorApi.reset

rotate()

rotate(angle, axis): Mat3RowMajor

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:55

Generate a rotation matrix representing a rotation about a coordinate axis.

Axis is 1=x, 2=y, 3=z.

Parameters
angle

number

axis

number

Returns

Mat3RowMajor

Inherited from

CoordsVectorsApi.rotate

rotmat()

rotmat(m, angle, axis): Mat3RowMajor

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:62

Rotate a matrix about a coordinate axis.

Axis is 1=x, 2=y, 3=z.

Parameters
m

Mat3RowMajor

angle

number

axis

number

Returns

Mat3RowMajor

Inherited from

CoordsVectorsApi.rotmat

scard()

scard(card, cell): void

Defined in: packages/backend-contract/src/domains/cells-windows.ts:91

Set the cardinality of a cell. (scard_c)

Parameters
card

number

cell

SpiceIntCell | SpiceDoubleCell | SpiceCharCell | SpiceWindow

Returns

void

Inherited from

CellsWindowsApi.scard

scdecd()

scdecd(sc, sclkdp): string

Defined in: packages/backend-contract/src/domains/time.ts:126

Decode SCLK "ticks" into an SCLK string.

Kernel prerequisites:

  • Requires an SCLK kernel to be loaded.

Wrapper around CSPICE scdecd_c.

Parameters
sc

number

sclkdp

number

Returns

string

Inherited from

TimeApi.scdecd

sce2c()

sce2c(sc, et): number

Defined in: packages/backend-contract/src/domains/time.ts:148

Convert ET seconds past J2000 to SCLK "ticks".

Kernel prerequisites:

  • Requires an SCLK kernel to be loaded.
  • Often requires an LSK (leapseconds) kernel as well (see NAIF docs).

Wrapper around CSPICE sce2c_c.

Parameters
sc

number

et

number

Returns

number

Inherited from

TimeApi.sce2c

sce2s()

sce2s(sc, et): string

Defined in: packages/backend-contract/src/domains/time.ts:106

Convert ET seconds past J2000 to an encoded SCLK string.

Parameters
sc

number

et

number

Returns

string

Inherited from

TimeApi.sce2s

scencd()

scencd(sc, sclkch): number

Defined in: packages/backend-contract/src/domains/time.ts:116

Encode an SCLK string into "ticks".

Kernel prerequisites:

  • Requires an SCLK kernel to be loaded.

Wrapper around CSPICE scencd_c.

Parameters
sc

number

sclkch

string

Returns

number

Inherited from

TimeApi.scencd

scs2e()

scs2e(sc, sclkch): number

Defined in: packages/backend-contract/src/domains/time.ts:103

Convert an encoded SCLK string to ET seconds past J2000.

Parameters
sc

number

sclkch

string

Returns

number

Inherited from

TimeApi.scs2e

sct2e()

sct2e(sc, sclkdp): number

Defined in: packages/backend-contract/src/domains/time.ts:137

Convert SCLK "ticks" to ET seconds past J2000.

Kernel prerequisites:

  • Requires an SCLK kernel to be loaded.
  • Often requires an LSK (leapseconds) kernel as well (see NAIF docs).

Wrapper around CSPICE sct2e_c.

Parameters
sc

number

sclkdp

number

Returns

number

Inherited from

TimeApi.sct2e

setmsg()

setmsg(message): void

Defined in: packages/backend-contract/src/domains/error.ts:52

Set the long error message text used by sigerr().

Parameters
message

string

Returns

void

Inherited from

ErrorApi.setmsg

sigerr()

sigerr(short): void

Defined in: packages/backend-contract/src/domains/error.ts:55

Signal a CSPICE error with the provided short error code (e.g. "SPICE(BADTIME)").

Parameters
short

string

Returns

void

Inherited from

ErrorApi.sigerr

sincpt()

sincpt(method, target, et, fixref, abcorr, observer, dref, dvec): Found<SubPointResult>

Defined in: packages/backend-contract/src/domains/geometry.ts:42

Compute the surface intercept point of a ray.

Parameters
method

string

target

string

et

number

fixref

string

abcorr

string

observer

string

dref

string

dvec

SpiceVector3

Returns

Found<SubPointResult>

Inherited from

GeometryApi.sincpt

size()

size(cell): number

Defined in: packages/backend-contract/src/domains/cells-windows.ts:97

Get the maximum cardinality of a cell. (size_c)

Parameters
cell

SpiceIntCell | SpiceDoubleCell | SpiceCharCell | SpiceWindow

Returns

number

Inherited from

CellsWindowsApi.size

sphrec()

sphrec(radius, colat, lon): SpiceVector3

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:19

SPICE sphrec_c: spherical -> rectangular coordinates.

Parameters
radius

number

colat

number

lon

number

Returns

SpiceVector3

Inherited from

CoordsVectorsApi.sphrec

spkcls()

spkcls(handle): void

Defined in: packages/backend-contract/src/domains/ephemeris.ts:203

Close an SPK file previously opened by spkopn/spkopa (see spkcls_c).

Parameters
handle

SpiceHandle

Returns

void

Inherited from

EphemerisApi.spkcls

spkcov()

spkcov(spk, idcode, cover): void

Defined in: packages/backend-contract/src/domains/ephemeris.ts:125

Compute the coverage window for an object in an SPK via spkcov.

Path semantics (backend-dependent):

  • Node backend: spk is a host filesystem path.
  • WASM backend: spk is an Emscripten FS (virtual) path/id (typically the path you used in furnsh({ path, bytes })).

Output window requirements: cover must be a valid, initialized window handle created by the backend (e.g. newWindow(maxIntervals)) and must have sufficient capacity for the merged output.

Error safety note: Like CSPICE spkcov_c, if this routine throws while updating cover (including due to insufficient capacity), the contents of cover may be left in a corrupted/undefined state. If an error is thrown, do not keep using cover; free it and create a fresh window.

Window semantics: cover is updated in place. Like CSPICE spkcov_c, coverage is merged with any intervals already present in cover. Clear the window first (e.g. scard(0, cover)) if you want to avoid accumulation.

Parameters
spk

string

idcode

number

cover

SpiceWindow

Returns

void

Inherited from

EphemerisApi.spkcov

spkez()

spkez(target, et, ref, abcorr, observer): SpkezrResult

Defined in: packages/backend-contract/src/domains/ephemeris.ts:67

Compute state (6-vector) and light time via spkez (numeric IDs).

Parameters
target

number

et

number

ref

string

abcorr

string

observer

number

Returns

SpkezrResult

Inherited from

EphemerisApi.spkez

spkezp()

spkezp(target, et, ref, abcorr, observer): SpkposResult

Defined in: packages/backend-contract/src/domains/ephemeris.ts:76

Compute position (3-vector) and light time via spkezp (numeric IDs).

Parameters
target

number

et

number

ref

string

abcorr

string

observer

number

Returns

SpkposResult

Inherited from

EphemerisApi.spkezp

spkezr()

spkezr(target, et, ref, abcorr, observer): SpkezrResult

Defined in: packages/backend-contract/src/domains/ephemeris.ts:47

Compute state relative to observer using loaded kernels (see spkezr_c).

Note: abcorr is a known set of SPICE aberration correction strings, but we allow arbitrary strings for forward-compatibility.

Parameters
target

string

et

number

ref

string

abcorr

string

observer

string

Returns

SpkezrResult

Inherited from

EphemerisApi.spkezr

spkgeo()

spkgeo(target, et, ref, observer): SpkezrResult

Defined in: packages/backend-contract/src/domains/ephemeris.ts:85

Compute geometric state (6-vector) and light time via spkgeo (numeric IDs).

Parameters
target

number

et

number

ref

string

observer

number

Returns

SpkezrResult

Inherited from

EphemerisApi.spkgeo

spkgps()

spkgps(target, et, ref, observer): SpkposResult

Defined in: packages/backend-contract/src/domains/ephemeris.ts:93

Compute geometric position (3-vector) and light time via spkgps (numeric IDs).

Parameters
target

number

et

number

ref

string

observer

number

Returns

SpkposResult

Inherited from

EphemerisApi.spkgps

spkobj()

spkobj(spk, ids): void

Defined in: packages/backend-contract/src/domains/ephemeris.ts:150

Find the set of objects present in an SPK via spkobj.

Path semantics (backend-dependent):

  • Node backend: spk is a host filesystem path.
  • WASM backend: spk is an Emscripten FS (virtual) path/id (typically the path you used in furnsh({ path, bytes })).

Output cell requirements: ids must be a valid, initialized set cell handle created by the backend (e.g. newIntCell(size)) and must have sufficient capacity for the unioned output.

Error safety note: Like CSPICE spkobj_c, if this routine throws while updating ids (including due to insufficient capacity), the contents of ids may be left in a corrupted/undefined state. If an error is thrown, do not keep using ids; free it and create a fresh cell.

Cell semantics: ids is updated in place. Like CSPICE spkobj_c, the output is the union of the IDs already present in ids and the IDs found in spk. Clear the cell first (e.g. scard(0, ids)) if you want to avoid accumulation.

Parameters
spk

string

ids

SpiceIntCell

Returns

void

Inherited from

EphemerisApi.spkobj

spkopa()

spkopa(file): SpiceHandle

Defined in: packages/backend-contract/src/domains/ephemeris.ts:200

Open an existing SPK for append (see spkopa_c). Same file semantics as spkopn.

Parameters
file

string | VirtualOutput

Returns

SpiceHandle

Inherited from

EphemerisApi.spkopa

spkopn()

spkopn(file, ifname, ncomch): SpiceHandle

Defined in: packages/backend-contract/src/domains/ephemeris.ts:197

Open a new SPK file for write (see spkopn_c).

file interpretation is backend-dependent:

  • Node: OS filesystem path

  • WASM: virtual id under the backend's virtual filesystem (currently normalized into /kernels/...).

    In other words, for the WASM backend, file: string is not a raw Emscripten absolute path. It is treated like other "kernel-ish" paths and is normalized into /kernels.

    Examples (WASM backend):

    • spkopn("out.bsp", ...) writes to /kernels/out.bsp
    • spkopn("/kernels/out.bsp", ...) refers to the same file
    • spkopn("/tmp/out.bsp", ...) throws (OS paths/URLs are rejected)

When file is a VirtualOutput, backends should allow reading bytes back via readVirtualOutput() after closing the file handle.

Callers should retain the VirtualOutput they passed to spkopn/spkopa. It is the identifier used to read bytes back later.

Parameters
file

string | VirtualOutput

ifname

string

ncomch

number

Returns

SpiceHandle

Inherited from

EphemerisApi.spkopn

spkpds()

spkpds(body, center, frame, type, first, last): SpkPackedDescriptor

Defined in: packages/backend-contract/src/domains/ephemeris.ts:160

Pack an SPK segment descriptor via spkpds.

Parameters
body

number

center

number

frame

string

type

number

first

number

last

number

Returns

SpkPackedDescriptor

Inherited from

EphemerisApi.spkpds

spkpos()

spkpos(target, et, ref, abcorr, observer): SpkposResult

Defined in: packages/backend-contract/src/domains/ephemeris.ts:58

Compute position relative to observer using loaded kernels (see spkpos_c).

Parameters
target

string

et

number

ref

string

abcorr

string

observer

string

Returns

SpkposResult

Inherited from

EphemerisApi.spkpos

spksfs()

spksfs(body, et): Found<{ descr: SpkPackedDescriptor; handle: number; ident: string; }>

Defined in: packages/backend-contract/src/domains/ephemeris.ts:157

Search loaded SPK files for the highest-priority segment applicable to body and et.

Note: handle is the native SPICE DAF handle for the file containing the segment.

Parameters
body

number

et

number

Returns

Found<{ descr: SpkPackedDescriptor; handle: number; ident: string; }>

Inherited from

EphemerisApi.spksfs

spkssb()

spkssb(target, et, ref): SpiceStateVector

Defined in: packages/backend-contract/src/domains/ephemeris.ts:101

Compute state (6-vector) of target relative to the solar system barycenter via spkssb.

Parameters
target

number

et

number

ref

string

Returns

SpiceStateVector

Inherited from

EphemerisApi.spkssb

spkuds()

spkuds(descr): SpkUnpackedDescriptor

Defined in: packages/backend-contract/src/domains/ephemeris.ts:170

Unpack a packed SPK segment descriptor via spkuds.

Parameters
descr

SpkPackedDescriptor

Returns

SpkUnpackedDescriptor

Inherited from

EphemerisApi.spkuds

spkw08()

spkw08(handle, body, center, frame, first, last, segid, degree, states, epoch1, step): void

Defined in: packages/backend-contract/src/domains/ephemeris.ts:211

Write a type 8 SPK segment (see spkw08_c).

states is a flat array with layout [x,y,z, dx,dy,dz] for each record. The number of records n is derived as states.length / 6.

Parameters
handle

SpiceHandle

body

number

center

number

frame

string

first

number

last

number

segid

string

degree

number

states

Float64Array<ArrayBufferLike> | readonly number[]

epoch1

number

step

number

Returns

void

Inherited from

EphemerisApi.spkw08

ssize()

ssize(size, cell): void

Defined in: packages/backend-contract/src/domains/cells-windows.ts:88

Set the maximum cardinality of a cell. (ssize_c)

Parameters
size

number

cell

SpiceIntCell | SpiceDoubleCell | SpiceCharCell | SpiceWindow

Returns

void

Inherited from

CellsWindowsApi.ssize

str2et()

str2et(time): number

Defined in: packages/backend-contract/src/domains/time.ts:24

Convert a time string to ET seconds past J2000.

Parameters
time

string

Returns

number

Inherited from

TimeApi.str2et

subpnt()

subpnt(method, target, et, fixref, abcorr, observer): SubPointResult

Defined in: packages/backend-contract/src/domains/geometry.ts:22

Compute the sub-observer point on a target body's surface.

Parameters
method

string

target

string

et

number

fixref

string

abcorr

string

observer

string

Returns

SubPointResult

Inherited from

GeometryApi.subpnt

subslr()

subslr(method, target, et, fixref, abcorr, observer): SubPointResult

Defined in: packages/backend-contract/src/domains/geometry.ts:32

Compute the sub-solar point on a target body's surface.

Parameters
method

string

target

string

et

number

fixref

string

abcorr

string

observer

string

Returns

SubPointResult

Inherited from

GeometryApi.subslr

swpool()

swpool(agent, names): void

Defined in: packages/backend-contract/src/domains/kernel-pool.ts:120

Set up a kernel pool "watch" for agent.

After calling swpool, the next cvpool(agent) call will return true.

Validation semantics:

  • agent must not be empty or whitespace-only.
  • names may be empty (watch nothing).
Parameters
agent

string

names

readonly string[]

Returns

void

Inherited from

KernelPoolApi.swpool

sxform()

sxform(from, to, et): SpiceMatrix6x6

Defined in: packages/backend-contract/src/domains/frames.ts:81

Compute a 6x6 state transformation matrix (row-major).

Parameters
from

string

to

string

et

number

Returns

SpiceMatrix6x6

Inherited from

FramesApi.sxform

timdef()
Call Signature

timdef(action, item): string

Defined in: packages/backend-contract/src/domains/time.ts:96

Get or set time conversion defaults.

Kernel prerequisites:

  • None.

Wrapper around CSPICE timdef_c.

Parameters
action

"GET"

item

string

Returns

string

Inherited from

TimeApi.timdef

Call Signature

timdef(action, item, value): void

Defined in: packages/backend-contract/src/domains/time.ts:98

Set a time conversion default (see timdef_c).

Parameters
action

"SET"

item

string

value

string

Returns

void

Inherited from

TimeApi.timdef

timout()

timout(et, picture): string

Defined in: packages/backend-contract/src/domains/time.ts:34

Format an ephemeris time using a NAIF time picture.

Wrapper around CSPICE timout_c.

Parameters
et

number

picture

string

Returns

string

Inherited from

TimeApi.timout

tkvrsn()

tkvrsn(item): string

Defined in: packages/backend-contract/src/domains/time.ts:19

Thin wrapper over the SPICE primitive tkvrsn().

Currently, only the TOOLKIT item is exposed.

Parameters
item

"TOOLKIT"

Returns

string

Inherited from

TimeApi.tkvrsn

tparse()

tparse(timstr): number

Defined in: packages/backend-contract/src/domains/time.ts:73

Parse a UTC time string to UTC seconds past J2000.

This uses SPICE's "formal calendar" (fixed 86400-second days) and does not account for leap seconds.

Limitations:

  • UTC-only: timstr must not include time system labels (e.g. TDB) or time zone designators/offsets (e.g. PDT, UTC+05:00).

Kernel prerequisites:

  • None.

Wrapper around CSPICE tparse_c.

Parameters
timstr

string

Returns

number

Inherited from

TimeApi.tparse

tpictr()

tpictr(sample, pictur): string

Defined in: packages/backend-contract/src/domains/time.ts:86

Transform a NAIF time picture to match a sample time string.

Statefulness: this is affected by TIMDEF defaults (SYSTEM/CALENDAR/ZONE), since sample is interpreted under the current TIMDEF state.

Kernel prerequisites:

  • None.

Wrapper around CSPICE tpictr_c.

Parameters
sample

string

pictur

string

Returns

string

Inherited from

TimeApi.tpictr

unitim()

unitim(epoch, insys, outsys): number

Defined in: packages/backend-contract/src/domains/time.ts:54

Convert a time epoch from one system to another.

Kernel prerequisites:

  • Requires an LSK (leapseconds) kernel to be loaded.

Wrapper around CSPICE unitim_c.

Parameters
epoch

number

insys

string

outsys

string

Returns

number

Inherited from

TimeApi.unitim

unload()

unload(path): void

Defined in: packages/backend-contract/src/domains/kernels.ts:39

Unload a SPICE kernel previously loaded via furnsh().

Parameters
path

string

Returns

void

Inherited from

KernelsApi.unload

vadd()

vadd(a, b): SpiceVector3

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:39

SPICE vadd_c: vector addition.

Parameters
a

SpiceVector3

b

SpiceVector3

Returns

SpiceVector3

Inherited from

CoordsVectorsApi.vadd

valid()

valid(size, n, cell): void

Defined in: packages/backend-contract/src/domains/cells-windows.ts:100

Validate and normalize a set cell. (valid_c)

Parameters
size

number

n

number

cell

SpiceIntCell | SpiceDoubleCell | SpiceCharCell | SpiceWindow

Returns

void

Inherited from

CellsWindowsApi.valid

vcrss()

vcrss(a, b): SpiceVector3

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:36

SPICE vcrss_c: cross product of two vectors.

Parameters
a

SpiceVector3

b

SpiceVector3

Returns

SpiceVector3

Inherited from

CoordsVectorsApi.vcrss

vdot()

vdot(a, b): number

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:34

SPICE vdot_c: dot product of two vectors.

Parameters
a

SpiceVector3

b

SpiceVector3

Returns

number

Inherited from

CoordsVectorsApi.vdot

vhat()

vhat(v): SpiceVector3

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:32

Compute the unit vector of v.

Zero-vector behavior: if v is [0, 0, 0], this returns [0, 0, 0] and does not throw.

This matches the NAIF CSPICE vhat_c definition.

Parameters
v

SpiceVector3

Returns

SpiceVector3

Inherited from

CoordsVectorsApi.vhat

vminus()

vminus(v): SpiceVector3

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:43

SPICE vminus_c: negate a vector.

Parameters
v

SpiceVector3

Returns

SpiceVector3

Inherited from

CoordsVectorsApi.vminus

vnorm()

vnorm(v): number

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:22

SPICE vnorm_c: vector magnitude (Euclidean norm).

Parameters
v

SpiceVector3

Returns

number

Inherited from

CoordsVectorsApi.vnorm

vscl()

vscl(s, v): SpiceVector3

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:45

SPICE vscl_c: multiply vector by scalar.

Parameters
s

number

v

SpiceVector3

Returns

SpiceVector3

Inherited from

CoordsVectorsApi.vscl

vsub()

vsub(a, b): SpiceVector3

Defined in: packages/backend-contract/src/domains/coords-vectors.ts:41

SPICE vsub_c: vector subtraction.

Parameters
a

SpiceVector3

b

SpiceVector3

Returns

SpiceVector3

Inherited from

CoordsVectorsApi.vsub

wncard()

wncard(window): number

Defined in: packages/backend-contract/src/domains/cells-windows.ts:121

Return the number of intervals in a DP window. (wncard_c)

Parameters
window

SpiceWindow

Returns

number

Inherited from

CellsWindowsApi.wncard

wnfetd()

wnfetd(window, index): readonly [number, number]

Defined in: packages/backend-contract/src/domains/cells-windows.ts:124

Fetch the indexth interval from a DP window. (wnfetd_c)

Parameters
window

SpiceWindow

index

number

Returns

readonly [number, number]

Inherited from

CellsWindowsApi.wnfetd

wninsd()

wninsd(left, right, window): void

Defined in: packages/backend-contract/src/domains/cells-windows.ts:118

Insert an interval into a DP window, merging overlaps. (wninsd_c)

Parameters
left

number

right

number

window

SpiceWindow

Returns

void

Inherited from

CellsWindowsApi.wninsd

wnvald()

wnvald(size, n, window): void

Defined in: packages/backend-contract/src/domains/cells-windows.ts:127

Validate and normalize a DP window. (wnvald_c)

Parameters
size

number

n

number

window

SpiceWindow

Returns

void

Inherited from

CellsWindowsApi.wnvald


StringArrayResult

Defined in: packages/backend-contract/src/shared/types.ts:141

Result wrapper for APIs that return an array of strings.

truncated is backend-dependent and should only be set to true when the backend can detect truncation (for example: when reading fixed-width output buffers).

Properties

truncated

truncated: boolean

Defined in: packages/backend-contract/src/shared/types.ts:143

values

values: string[]

Defined in: packages/backend-contract/src/shared/types.ts:142


TimeApi

Defined in: packages/backend-contract/src/domains/time.ts:13

Time-domain backend API surface over SPICE primitives.

Extended by

Methods

deltet()

deltet(epoch, eptype): number

Defined in: packages/backend-contract/src/domains/time.ts:44

Return the difference ET - UTC at a given epoch.

Kernel prerequisites:

  • Requires an LSK (leapseconds) kernel to be loaded.

Wrapper around CSPICE deltet_c.

Parameters
epoch

number

eptype

"ET" | "UTC"

Returns

number

et2utc()

et2utc(et, format, prec): string

Defined in: packages/backend-contract/src/domains/time.ts:27

Convert ET seconds past J2000 to a formatted UTC string.

Parameters
et

number

format

string

prec

number

Returns

string

scdecd()

scdecd(sc, sclkdp): string

Defined in: packages/backend-contract/src/domains/time.ts:126

Decode SCLK "ticks" into an SCLK string.

Kernel prerequisites:

  • Requires an SCLK kernel to be loaded.

Wrapper around CSPICE scdecd_c.

Parameters
sc

number

sclkdp

number

Returns

string

sce2c()

sce2c(sc, et): number

Defined in: packages/backend-contract/src/domains/time.ts:148

Convert ET seconds past J2000 to SCLK "ticks".

Kernel prerequisites:

  • Requires an SCLK kernel to be loaded.
  • Often requires an LSK (leapseconds) kernel as well (see NAIF docs).

Wrapper around CSPICE sce2c_c.

Parameters
sc

number

et

number

Returns

number

sce2s()

sce2s(sc, et): string

Defined in: packages/backend-contract/src/domains/time.ts:106

Convert ET seconds past J2000 to an encoded SCLK string.

Parameters
sc

number

et

number

Returns

string

scencd()

scencd(sc, sclkch): number

Defined in: packages/backend-contract/src/domains/time.ts:116

Encode an SCLK string into "ticks".

Kernel prerequisites:

  • Requires an SCLK kernel to be loaded.

Wrapper around CSPICE scencd_c.

Parameters
sc

number

sclkch

string

Returns

number

scs2e()

scs2e(sc, sclkch): number

Defined in: packages/backend-contract/src/domains/time.ts:103

Convert an encoded SCLK string to ET seconds past J2000.

Parameters
sc

number

sclkch

string

Returns

number

sct2e()

sct2e(sc, sclkdp): number

Defined in: packages/backend-contract/src/domains/time.ts:137

Convert SCLK "ticks" to ET seconds past J2000.

Kernel prerequisites:

  • Requires an SCLK kernel to be loaded.
  • Often requires an LSK (leapseconds) kernel as well (see NAIF docs).

Wrapper around CSPICE sct2e_c.

Parameters
sc

number

sclkdp

number

Returns

number

str2et()

str2et(time): number

Defined in: packages/backend-contract/src/domains/time.ts:24

Convert a time string to ET seconds past J2000.

Parameters
time

string

Returns

number

timdef()
Call Signature

timdef(action, item): string

Defined in: packages/backend-contract/src/domains/time.ts:96

Get or set time conversion defaults.

Kernel prerequisites:

  • None.

Wrapper around CSPICE timdef_c.

Parameters
action

"GET"

item

string

Returns

string

Call Signature

timdef(action, item, value): void

Defined in: packages/backend-contract/src/domains/time.ts:98

Set a time conversion default (see timdef_c).

Parameters
action

"SET"

item

string

value

string

Returns

void

timout()

timout(et, picture): string

Defined in: packages/backend-contract/src/domains/time.ts:34

Format an ephemeris time using a NAIF time picture.

Wrapper around CSPICE timout_c.

Parameters
et

number

picture

string

Returns

string

tkvrsn()

tkvrsn(item): string

Defined in: packages/backend-contract/src/domains/time.ts:19

Thin wrapper over the SPICE primitive tkvrsn().

Currently, only the TOOLKIT item is exposed.

Parameters
item

"TOOLKIT"

Returns

string

tparse()

tparse(timstr): number

Defined in: packages/backend-contract/src/domains/time.ts:73

Parse a UTC time string to UTC seconds past J2000.

This uses SPICE's "formal calendar" (fixed 86400-second days) and does not account for leap seconds.

Limitations:

  • UTC-only: timstr must not include time system labels (e.g. TDB) or time zone designators/offsets (e.g. PDT, UTC+05:00).

Kernel prerequisites:

  • None.

Wrapper around CSPICE tparse_c.

Parameters
timstr

string

Returns

number

tpictr()

tpictr(sample, pictur): string

Defined in: packages/backend-contract/src/domains/time.ts:86

Transform a NAIF time picture to match a sample time string.

Statefulness: this is affected by TIMDEF defaults (SYSTEM/CALENDAR/ZONE), since sample is interpreted under the current TIMDEF state.

Kernel prerequisites:

  • None.

Wrapper around CSPICE tpictr_c.

Parameters
sample

string

pictur

string

Returns

string

unitim()

unitim(epoch, insys, outsys): number

Defined in: packages/backend-contract/src/domains/time.ts:54

Convert a time epoch from one system to another.

Kernel prerequisites:

  • Requires an LSK (leapseconds) kernel to be loaded.

Wrapper around CSPICE unitim_c.

Parameters
epoch

number

insys

string

outsys

string

Returns

number


TimeKitApi

Defined in: packages/backend-contract/src/domains/time.ts:7

Contract conventions:

  • Inputs are assumed validated at the backend boundary; the contract itself is primarily type-level.
  • Methods throw on invalid arguments or SPICE errors.
  • Lookups that may legitimately miss return Found<T> ({ found: false }) instead of throwing.

Extended by

Methods

spiceVersion()

spiceVersion(): string

Defined in: packages/backend-contract/src/domains/time.ts:9

Return the underlying SPICE toolkit version string.

Returns

string

Type Aliases

AbCorr

AbCorr = "NONE" | "LT" | "LT+S" | "CN" | "CN+S" | "XLT" | "XLT+S" | "XCN" | "XCN+S"

Defined in: packages/backend-contract/src/shared/types.ts:83

SPICE aberration correction string accepted by spkezr/spkpos.


BrandMat3Options

BrandMat3Options = object

Defined in: packages/backend-contract/src/shared/mat3.ts:5

Properties

freeze?

readonly optional freeze: FreezeMode

Defined in: packages/backend-contract/src/shared/mat3.ts:18

If set, freeze branded matrices to prevent mutation at runtime.

Defaults to "dev".

label?

readonly optional label: string

Defined in: packages/backend-contract/src/shared/mat3.ts:11

Used for error messages (e.g. "pxform()").

Defaults to "Mat3".


BrandMat6Options

BrandMat6Options = object

Defined in: packages/backend-contract/src/shared/mat6.ts:5

Properties

freeze?

readonly optional freeze: FreezeMode

Defined in: packages/backend-contract/src/shared/mat6.ts:18

If set, freeze branded matrices to prevent mutation at runtime.

Defaults to "dev".

label?

readonly optional label: string

Defined in: packages/backend-contract/src/shared/mat6.ts:11

Used for error messages (e.g. "sxform()").

Defaults to "Mat6RowMajor".


BrandVecOptions

BrandVecOptions = object

Defined in: packages/backend-contract/src/shared/vec.ts:5

Properties

freeze?

readonly optional freeze: FreezeMode

Defined in: packages/backend-contract/src/shared/vec.ts:18

If set, freeze branded values to prevent mutation at runtime.

Defaults to "dev".

label?

readonly optional label: string

Defined in: packages/backend-contract/src/shared/vec.ts:11

Used for error messages (e.g. "spkezr()").

Defaults to "Vec".


CkCoverageLevel

CkCoverageLevel = "SEGMENT" | "INTERVAL"

Defined in: packages/backend-contract/src/domains/frames.ts:12

Coverage detail level returned by FramesApi.ckcov.


CkCoverageTimeSystem

CkCoverageTimeSystem = "SCLK" | "TDB"

Defined in: packages/backend-contract/src/domains/frames.ts:15

Time system used for coverage windows returned by FramesApi.ckcov.


DlaDescriptor

DlaDescriptor = object

Defined in: packages/backend-contract/src/domains/file-io.ts:24

Plain-object representation of CSPICE SpiceDLADescr.

These are the 8 integer components of a DLA descriptor.

Portability

Each field is an int32 (32-bit signed integer). Backend implementations must reject (throw) non-integers and values outside the int32 range to prevent silent truncation across native/WASM boundaries.

This matches tspice's project-wide assumption that SpiceInt is 32-bit (sizeof(SpiceInt) == 4) in all supported builds.

Properties

bwdptr

bwdptr: number

Defined in: packages/backend-contract/src/domains/file-io.ts:25

cbase

cbase: number

Defined in: packages/backend-contract/src/domains/file-io.ts:31

csize

csize: number

Defined in: packages/backend-contract/src/domains/file-io.ts:32

dbase

dbase: number

Defined in: packages/backend-contract/src/domains/file-io.ts:29

dsize

dsize: number

Defined in: packages/backend-contract/src/domains/file-io.ts:30

fwdptr

fwdptr: number

Defined in: packages/backend-contract/src/domains/file-io.ts:26

ibase

ibase: number

Defined in: packages/backend-contract/src/domains/file-io.ts:27

isize

isize: number

Defined in: packages/backend-contract/src/domains/file-io.ts:28


DskDescriptor

DskDescriptor = object

Defined in: packages/backend-contract/src/domains/dsk.ts:7

Segment descriptor returned by dskgd (CSPICE: SpiceDSKDescr).

Properties

center

center: number

Defined in: packages/backend-contract/src/domains/dsk.ts:10

co1max

co1max: number

Defined in: packages/backend-contract/src/domains/dsk.ts:19

co1min

co1min: number

Defined in: packages/backend-contract/src/domains/dsk.ts:18

co2max

co2max: number

Defined in: packages/backend-contract/src/domains/dsk.ts:21

co2min

co2min: number

Defined in: packages/backend-contract/src/domains/dsk.ts:20

co3max

co3max: number

Defined in: packages/backend-contract/src/domains/dsk.ts:23

co3min

co3min: number

Defined in: packages/backend-contract/src/domains/dsk.ts:22

corpar

corpar: number[]

Defined in: packages/backend-contract/src/domains/dsk.ts:16

Coordinate system parameters (CSPICE: corpar[SPICE_DSK_NSYPAR]).

corsys

corsys: number

Defined in: packages/backend-contract/src/domains/dsk.ts:14

dclass

dclass: number

Defined in: packages/backend-contract/src/domains/dsk.ts:11

dtype

dtype: number

Defined in: packages/backend-contract/src/domains/dsk.ts:12

frmcde

frmcde: number

Defined in: packages/backend-contract/src/domains/dsk.ts:13

start

start: number

Defined in: packages/backend-contract/src/domains/dsk.ts:24

stop

stop: number

Defined in: packages/backend-contract/src/domains/dsk.ts:25

surfce

surfce: number

Defined in: packages/backend-contract/src/domains/dsk.ts:9


DskType2Bookkeeping

DskType2Bookkeeping = object

Defined in: packages/backend-contract/src/domains/dsk.ts:29

Summary bookkeeping parameters for a type 2 DSK segment (CSPICE: dskb02_c).

Properties

cgscal

cgscal: number

Defined in: packages/backend-contract/src/domains/dsk.ts:41

np

np: number

Defined in: packages/backend-contract/src/domains/dsk.ts:31

nv

nv: number

Defined in: packages/backend-contract/src/domains/dsk.ts:30

nvxtot

nvxtot: number

Defined in: packages/backend-contract/src/domains/dsk.ts:32

vgrext

vgrext: SpiceVector3

Defined in: packages/backend-contract/src/domains/dsk.ts:39

voxnpl

voxnpl: number

Defined in: packages/backend-contract/src/domains/dsk.ts:44

voxnpt

voxnpt: number

Defined in: packages/backend-contract/src/domains/dsk.ts:43

voxori

voxori: SpiceVector3

Defined in: packages/backend-contract/src/domains/dsk.ts:38

voxsiz

voxsiz: number

Defined in: packages/backend-contract/src/domains/dsk.ts:37

vtxbds

vtxbds: [[number, number], [number, number], [number, number]]

Defined in: packages/backend-contract/src/domains/dsk.ts:35

Vertex bounds: [[xmin,xmax],[ymin,ymax],[zmin,zmax]] (CSPICE: vtxbds[3][2]).

vtxnpl

vtxnpl: number

Defined in: packages/backend-contract/src/domains/dsk.ts:42


EkFindResult

EkFindResult = { nmrows: number; ok: true; } | { errmsg: string; ok: false; }

Defined in: packages/backend-contract/src/domains/ek.ts:21

Result of running an EK query via ekfind.

Notes:

  • ekfind has a non-standard error reporting mechanism: query parse/semantic failures are returned via an error/errmsg output pair rather than SPICE's global error state.
  • Backend implementations should surface that query-specific failure via this return type (no throw).
  • SPICE-signaled failures (e.g. no loaded EKs) should still throw.

Type Declaration

{ nmrows: number; ok: true; }

nmrows

nmrows: number

Number of matching rows.

ok

ok: true

{ errmsg: string; ok: false; }

errmsg

errmsg: string

Query language parse/semantic error message returned by ekfind_c.

ok

ok: false


EkGetResult

EkGetResult<T> = { found: false; } | { found: true; isNull: true; } | { found: true; isNull: false; value: T; }

Defined in: packages/backend-contract/src/domains/ek.ts:42

Result of fetching an element from an EK query result set.

This is a tri-state:

  • { found: false }: the requested element doesn't exist (commonly elment is out of range for the entry).
  • { found: true, isNull: true }: the entry exists but is SQL NULL.
  • { found: true, isNull: false, value: T }: a concrete value.

Type Parameters

T

T


FixedString

FixedString<Max> = string & object

Defined in: packages/backend-contract/src/shared/types.ts:133

Type Declaration

[___fixedStringMaxBrand]

readonly [___fixedStringMaxBrand]: Max

Type Parameters

Max

Max extends number


Found

Found<T> = { found: false; } | object & T

Defined in: packages/backend-contract/src/shared/types.ts:52

Optional-return convention for lookups where "not found" is a normal outcome.

Conventions:

  • Return { found: false } when the underlying value simply doesn't exist (e.g. name-to-code lookups for names that aren't present in loaded kernels).
  • Throw for invalid arguments, SPICE errors, and other exceptional failures.
  • When found: true, extra fields are present on the returned object.

Type Parameters

T

T


FoundDlaDescriptor

FoundDlaDescriptor = { found: false; } | { descr: DlaDescriptor; found: true; }

Defined in: packages/backend-contract/src/domains/file-io.ts:35


FoundDouble

FoundDouble = FoundValue<number>

Defined in: packages/backend-contract/src/shared/types.ts:63


FoundInt

FoundInt = FoundValue<number>

Defined in: packages/backend-contract/src/shared/types.ts:62


FoundPayload

FoundPayload<T> = T extends Found<infer P> ? P : never

Defined in: packages/backend-contract/src/shared/types.ts:66

Extract the payload type of a Found<...> result.

Type Parameters

T

T


FoundString

FoundString = FoundValue<string>

Defined in: packages/backend-contract/src/shared/types.ts:61


FoundValue

FoundValue<T> = Found<{ value: T; }>

Defined in: packages/backend-contract/src/shared/types.ts:59

Convenience alias for the most common Found payload shape.

Type Parameters

T

T


GetmsgWhich

GetmsgWhich = typeof GETMSG_WHICH_VALUES[number]

Defined in: packages/backend-contract/src/domains/error.ts:16


GfRelate

GfRelate = ">" | "<" | "=" | "ABSMAX" | "ABSMIN" | "LOCMAX" | "LOCMIN"

Defined in: packages/backend-contract/src/domains/geometry-gf.ts:18

Relation operators accepted by many high-level GF searches.


IllumfResult

IllumfResult = IluminResult & object

Defined in: packages/backend-contract/src/shared/types.ts:282

Result payload for illumf().

Type Declaration

lit

lit: boolean

True if spoint is lit by ilusrc.

visibl

visibl: boolean

True if spoint is visible to obsrvr.


IllumgResult

IllumgResult = IluminResult

Defined in: packages/backend-contract/src/shared/types.ts:279

Result payload for illumg().


IluminResult

IluminResult = object

Defined in: packages/backend-contract/src/shared/types.ts:265

Properties

emissn

emissn: number

Defined in: packages/backend-contract/src/shared/types.ts:275

Emission angle at spoint, radians.

incdnc

incdnc: number

Defined in: packages/backend-contract/src/shared/types.ts:273

Solar incidence angle at spoint, radians.

phase

phase: number

Defined in: packages/backend-contract/src/shared/types.ts:271

Phase angle at spoint, radians.

srfvec

srfvec: SpiceVector3

Defined in: packages/backend-contract/src/shared/types.ts:269

Vector from observer to spoint, expressed in fixref at trgepc.

trgepc

trgepc: number

Defined in: packages/backend-contract/src/shared/types.ts:267

Target epoch associated with spoint, in seconds past J2000 TDB.


KernelData

KernelData = object

Defined in: packages/backend-contract/src/shared/types.ts:68

Properties

file

file: string

Defined in: packages/backend-contract/src/shared/types.ts:69

filtyp

filtyp: string

Defined in: packages/backend-contract/src/shared/types.ts:70

handle

handle: number

Defined in: packages/backend-contract/src/shared/types.ts:72

source

source: string

Defined in: packages/backend-contract/src/shared/types.ts:71


KernelInfo

KernelInfo = object

Defined in: packages/backend-contract/src/shared/types.ts:76

Result payload for kinfo().

Properties

filtyp

filtyp: string

Defined in: packages/backend-contract/src/shared/types.ts:77

handle

handle: number

Defined in: packages/backend-contract/src/shared/types.ts:79

source

source: string

Defined in: packages/backend-contract/src/shared/types.ts:78


KernelKind

KernelKind = "ALL" | "SPK" | "CK" | "PCK" | "DSK" | "TEXT" | "LSK" | "FK" | "IK" | "SCLK" | "EK" | "META"

Defined in: packages/backend-contract/src/shared/types.ts:29

Kernel types used by summary/introspection APIs.


KernelKindInput

KernelKindInput = KernelKind | readonly KernelKind[] | string

Defined in: packages/backend-contract/src/domains/kernels.ts:23

Kernel kind selector used by ktotal() / kdata().

Supports:

  • a single KernelKind
  • an array of KernelKind (treated as an OR query)
  • a CSPICE-style multi-kind string (whitespace-separated, e.g. "SPK CK")

Tokens are validated case-insensitively and normalized to canonical uppercase. Unknown/empty tokens throw RangeError. An empty array ([]) is invalid and throws RangeError.


KernelPoolVarType

KernelPoolVarType = "C" | "N"

Defined in: packages/backend-contract/src/domains/kernel-pool.ts:19


KernelSource

KernelSource = string | { bytes: Uint8Array; path: string; }

Defined in: packages/backend-contract/src/shared/types.ts:1


Mat3ColMajor

Mat3ColMajor = readonly [number, number, number, number, number, number, number, number, number] & object

Defined in: packages/backend-contract/src/shared/types.ts:176

Type Declaration

[___mat3ColMajorBrand]

readonly [___mat3ColMajorBrand]: true


Mat3RowMajor

Mat3RowMajor = readonly [number, number, number, number, number, number, number, number, number] & object

Defined in: packages/backend-contract/src/shared/types.ts:157

Type Declaration

[___mat3RowMajorBrand]

readonly [___mat3RowMajorBrand]: true


Mat6RowMajor

Mat6RowMajor = Readonly<SpiceMatrix6x6> & object

Defined in: packages/backend-contract/src/shared/types.ts:235

Type Declaration

[___mat6RowMajorBrand]

readonly [___mat6RowMajorBrand]: true


Pl2nvcResult

Pl2nvcResult = object

Defined in: packages/backend-contract/src/shared/types.ts:290

Result payload for pl2nvc().

Properties

konst

konst: number

Defined in: packages/backend-contract/src/shared/types.ts:292

normal

normal: SpiceVector3

Defined in: packages/backend-contract/src/shared/types.ts:291


SpiceBackendKind

SpiceBackendKind = "node" | "wasm" | "fake"

Defined in: packages/backend-contract/src/index.ts:112


SpiceCharCell

SpiceCharCell = number & object

Defined in: packages/backend-contract/src/domains/cells-windows.ts:20

Opaque handle to a CSPICE SpiceCell of type SPICE_CHR.

Type Declaration

[___spiceCharCellBrand]

readonly [___spiceCharCellBrand]: true


SpiceDoubleCell

SpiceDoubleCell = number & object

Defined in: packages/backend-contract/src/domains/cells-windows.ts:18

Opaque handle to a CSPICE SpiceCell of type SPICE_DP.

Type Declaration

[___spiceDoubleCellBrand]

readonly [___spiceDoubleCellBrand]: true


SpiceHandle

SpiceHandle = number & object

Defined in: packages/backend-contract/src/shared/types.ts:110

Opaque numeric handle returned by low-level SPICE file APIs (DAF/DAS/DLA).

Type Declaration

[___spiceHandleBrand]

readonly [___spiceHandleBrand]: true


SpiceHandleEntry

SpiceHandleEntry = object

Defined in: packages/backend-contract/src/shared/spice-handles.ts:7

Properties

kind

kind: SpiceHandleKind

Defined in: packages/backend-contract/src/shared/spice-handles.ts:8

nativeHandle

nativeHandle: number

Defined in: packages/backend-contract/src/shared/spice-handles.ts:9


SpiceHandleKind

SpiceHandleKind = "DAF" | "DAS" | "DLA" | "SPK" | "EK"

Defined in: packages/backend-contract/src/shared/spice-handles.ts:5


SpiceHandleRegistry

SpiceHandleRegistry = object

Defined in: packages/backend-contract/src/shared/spice-handles.ts:12

Properties

__entries()?

optional __entries: () => ReadonlyArray<readonly [SpiceHandle, SpiceHandleEntry]>

Defined in: packages/backend-contract/src/shared/spice-handles.ts:25

Returns

ReadonlyArray<readonly [SpiceHandle, SpiceHandleEntry]>

close()

close: (handle, expected, closeNative, context) => void

Defined in: packages/backend-contract/src/shared/spice-handles.ts:15

Parameters
handle

SpiceHandle

expected

readonly SpiceHandleKind[]

closeNative

(entry) => void

context

string

Returns

void

lookup()

lookup: (handle, expected, context) => SpiceHandleEntry

Defined in: packages/backend-contract/src/shared/spice-handles.ts:14

Parameters
handle

SpiceHandle

expected

readonly SpiceHandleKind[]

context

string

Returns

SpiceHandleEntry

register()

register: (kind, nativeHandle) => SpiceHandle

Defined in: packages/backend-contract/src/shared/spice-handles.ts:13

Parameters
kind

SpiceHandleKind

nativeHandle

number

Returns

SpiceHandle

size()

size: () => number

Defined in: packages/backend-contract/src/shared/spice-handles.ts:21

Returns

number


SpiceIntCell

SpiceIntCell = number & object

Defined in: packages/backend-contract/src/domains/cells-windows.ts:16

Opaque handle to a CSPICE SpiceCell of type SPICE_INT.

Type Declaration

[___spiceIntCellBrand]

readonly [___spiceIntCellBrand]: true


SpiceMatrix6x6

SpiceMatrix6x6 = [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number]

Defined in: packages/backend-contract/src/shared/types.ts:189


SpicePlane

SpicePlane = [number, number, number, number]

Defined in: packages/backend-contract/src/shared/types.ts:101

A plane encoded as [normalX, normalY, normalZ, constant].

This matches CSPICE's SpicePlane ABI layout (normal[3] + constant).


SpiceStateVector

SpiceStateVector = [number, number, number, number, number, number]

Defined in: packages/backend-contract/src/shared/types.ts:237


SpiceVector3

SpiceVector3 = [number, number, number]

Defined in: packages/backend-contract/src/shared/types.ts:94


SpiceWindow

SpiceWindow = number & object

Defined in: packages/backend-contract/src/domains/cells-windows.ts:22

Opaque handle to a CSPICE DP window (a SPICE_DP cell interpreted as intervals).

Type Declaration

[___spiceWindowBrand]

readonly [___spiceWindowBrand]: true


SpkezrResult

SpkezrResult = object

Defined in: packages/backend-contract/src/shared/types.ts:246

Properties

lt

lt: number

Defined in: packages/backend-contract/src/shared/types.ts:248

state

state: SpiceStateVector

Defined in: packages/backend-contract/src/shared/types.ts:247


SpkPackedDescriptor

SpkPackedDescriptor = readonly [number, number, number, number, number]

Defined in: packages/backend-contract/src/domains/ephemeris.ts:23

Packed SPK segment descriptor (DAF summary) as a 5-double array.

This is the packed form returned by spksfs and accepted by spkuds.


SpkposResult

SpkposResult = object

Defined in: packages/backend-contract/src/shared/types.ts:251

Properties

lt

lt: number

Defined in: packages/backend-contract/src/shared/types.ts:253

pos

pos: SpiceVector3

Defined in: packages/backend-contract/src/shared/types.ts:252


SpkUnpackedDescriptor

SpkUnpackedDescriptor = object

Defined in: packages/backend-contract/src/domains/ephemeris.ts:26

Unpacked SPK segment descriptor (see spkuds_c).

Properties

baddr

baddr: number

Defined in: packages/backend-contract/src/domains/ephemeris.ts:35

body

body: number

Defined in: packages/backend-contract/src/domains/ephemeris.ts:27

center

center: number

Defined in: packages/backend-contract/src/domains/ephemeris.ts:28

eaddr

eaddr: number

Defined in: packages/backend-contract/src/domains/ephemeris.ts:36

first

first: number

Defined in: packages/backend-contract/src/domains/ephemeris.ts:32

frame

frame: number

Defined in: packages/backend-contract/src/domains/ephemeris.ts:29

last

last: number

Defined in: packages/backend-contract/src/domains/ephemeris.ts:33

type

type: number

Defined in: packages/backend-contract/src/domains/ephemeris.ts:30


SubPointResult

SubPointResult = object

Defined in: packages/backend-contract/src/shared/types.ts:256

Properties

spoint

spoint: SpiceVector3

Defined in: packages/backend-contract/src/shared/types.ts:258

Sub-point on target body surface, expressed in fixref at trgepc.

srfvec

srfvec: SpiceVector3

Defined in: packages/backend-contract/src/shared/types.ts:262

Vector from observer to spoint, expressed in fixref at trgepc.

trgepc

trgepc: number

Defined in: packages/backend-contract/src/shared/types.ts:260

Target epoch associated with spoint, in seconds past J2000 TDB.


Vec3

Vec3 = readonly [number, number, number] & object

Defined in: packages/backend-contract/src/shared/types.ts:116

Type Declaration

[___vec3Brand]

readonly [___vec3Brand]: true


Vec6

Vec6 = readonly [number, number, number, number, number, number] & object

Defined in: packages/backend-contract/src/shared/types.ts:120

Type Declaration

[___vec6Brand]

readonly [___vec6Brand]: true


VirtualOutput

VirtualOutput = object

Defined in: packages/backend-contract/src/shared/types.ts:23

Virtual output reference used by writer APIs.

Lifecycle:

  • A VirtualOutput is only guaranteed to be readable via readVirtualOutput()after the writer handle has been closed (e.g. spkcls(handle) for SPKs).
  • Backends may reject reads for outputs they did not create via a writer API. readVirtualOutput() is not intended to be a generic filesystem read.

Backend notes:

  • WASM: path is treated as a virtual identifier under the backend's virtual filesystem (currently rooted at /kernels).
  • Node: implementations may stage virtual outputs to a temp file and allow reading bytes back via readVirtualOutput().

Properties

kind

kind: "virtual-output"

Defined in: packages/backend-contract/src/shared/types.ts:24

path

path: string

Defined in: packages/backend-contract/src/shared/types.ts:25

Variables

GETMSG_WHICH_VALUES

const GETMSG_WHICH_VALUES: readonly ["SHORT", "LONG", "EXPLAIN"]

Defined in: packages/backend-contract/src/domains/error.ts:14

Subset of CSPICE error/status utilities exposed by tspice backends.


SPICE_INT32_MAX

const SPICE_INT32_MAX: 2147483647 = 0x7fffffff

Defined in: packages/backend-contract/src/shared/spice-int.ts:2


SPICE_INT32_MIN

const SPICE_INT32_MIN: -2147483648 = -0x80000000

Defined in: packages/backend-contract/src/shared/spice-int.ts:1

Functions

assertGetmsgWhich()

assertGetmsgWhich(which): asserts which is "SHORT" | "LONG" | "EXPLAIN"

Defined in: packages/backend-contract/src/domains/error.ts:34

Runtime validation for getmsg(which).

Even though which is a narrow union type, callers may still pass arbitrary values at runtime (e.g. JS consumers, as any, etc.). Backends must reject invalid selectors rather than forwarding them to CSPICE.

Parameters

which

unknown

Returns

asserts which is "SHORT" | "LONG" | "EXPLAIN"


assertMat3ArrayLike9()

assertMat3ArrayLike9(value, options?): asserts value is ArrayLike<number>

Defined in: packages/backend-contract/src/shared/mat3.ts:95

Runtime validation that an input is a length-9 array-like of finite numbers.

This is intentionally layout-agnostic; it is used by both row-major and column-major branded types.

Parameters

value

unknown

options?
label?

string

Returns

asserts value is ArrayLike<number>


assertMat6ArrayLike36()

assertMat6ArrayLike36(value, options?): asserts value is ArrayLike<number>

Defined in: packages/backend-contract/src/shared/mat6.ts:87

Runtime validation that an input is a length-36 array-like of finite numbers.

Parameters

value

unknown

options?
label?

string

Returns

asserts value is ArrayLike<number>


assertSpiceInt32()

assertSpiceInt32(value, label, opts?): asserts value is number

Defined in: packages/backend-contract/src/shared/spice-int.ts:31

Runtime validation for values that will cross the JS → native boundary as a CSPICE SpiceInt.

What this checks:

  • value is a safe integer (no fractional values, no NaN, no Infinity).
  • value is within the signed 32-bit range.
  • Optional extra bounds (opts.min / opts.max).

What this does not check:

  • That the value is valid for a specific CSPICE call (e.g. an index being in range for a particular cell/window).
  • That the host platform's SpiceInt is 32-bit. (Many CSPICE builds use a wider integer type.) We intentionally validate to 32-bit because:
    • the Node addon reads numbers via Int32Value(), and
    • the WASM backend consumes values as i32.

If callers pass values outside the 32-bit range, JS → native conversion would otherwise wrap/truncate.

Parameters

value

number

label

string

opts?

AssertSpiceInt32Options = {}

Returns

asserts value is number


assertSpiceInt32NonNegative()

assertSpiceInt32NonNegative(value, label): asserts value is number

Defined in: packages/backend-contract/src/shared/spice-int.ts:51

Assert that a value is a non-negative signed 32-bit integer.

Parameters

value

number

label

string

Returns

asserts value is number


assertVec3ArrayLike3()

assertVec3ArrayLike3(value, options?): asserts value is ArrayLike<number>

Defined in: packages/backend-contract/src/shared/vec.ts:134

Assert that a value is an array-like Vec3 (length 3) of finite numbers.

Parameters

value

unknown

options?
label?

string

Returns

asserts value is ArrayLike<number>


assertVec6ArrayLike6()

assertVec6ArrayLike6(value, options?): asserts value is ArrayLike<number>

Defined in: packages/backend-contract/src/shared/vec.ts:139

Assert that a value is an array-like Vec6 (length 6) of finite numbers.

Parameters

value

unknown

options?
label?

string

Returns

asserts value is ArrayLike<number>


brandMat3ColMajor()

brandMat3ColMajor(value, options?): Mat3ColMajor

Defined in: packages/backend-contract/src/shared/mat3.ts:172

Validate + brand a value as a column-major Mat3.

Parameters

value

unknown

options?

BrandMat3Options

Returns

Mat3ColMajor


brandMat3RowMajor()

brandMat3RowMajor(value, options?): Mat3RowMajor

Defined in: packages/backend-contract/src/shared/mat3.ts:157

Validate + brand a value as a row-major Mat3.

Used at backend boundaries (node/wasm/fake) to avoid ad-hoc as Mat3RowMajor casts.

Parameters

value

unknown

options?

BrandMat3Options

Returns

Mat3RowMajor


brandMat6RowMajor()

brandMat6RowMajor(value, options?): Mat6RowMajor

Defined in: packages/backend-contract/src/shared/mat6.ts:147

Validate + brand a value as a row-major 6x6 matrix.

Parameters

value

unknown

options?

BrandMat6Options

Returns

Mat6RowMajor


brandVec3()

brandVec3(value, options?): Vec3

Defined in: packages/backend-contract/src/shared/vec.ts:144

Validate and brand a value as a Vec3.

Parameters

value

unknown

options?

BrandVecOptions

Returns

Vec3


brandVec6()

brandVec6(value, options?): Vec6

Defined in: packages/backend-contract/src/shared/vec.ts:156

Validate and brand a value as a Vec6.

Parameters

value

unknown

options?

BrandVecOptions

Returns

Vec6


createSpiceHandleRegistry()

createSpiceHandleRegistry(): SpiceHandleRegistry

Defined in: packages/backend-contract/src/shared/spice-handles.ts:51

Create an in-memory registry for opaque SpiceHandle values.

Used by backends to map stable JS handles to backend-native integer handles.

Returns

SpiceHandleRegistry


isBrandedMat3ColMajor()

isBrandedMat3ColMajor(value): value is Mat3ColMajor

Defined in: packages/backend-contract/src/shared/mat3.ts:195

Brand-only check: verifies that a value was produced by brandMat3ColMajor().

Parameters

value

unknown

Returns

value is Mat3ColMajor


isBrandedMat3RowMajor()

isBrandedMat3RowMajor(value): value is Mat3RowMajor

Defined in: packages/backend-contract/src/shared/mat3.ts:187

Brand-only check: verifies that a value was produced by brandMat3RowMajor().

Parameters

value

unknown

Returns

value is Mat3RowMajor


isBrandedMat6RowMajor()

isBrandedMat6RowMajor(value): value is Mat6RowMajor

Defined in: packages/backend-contract/src/shared/mat6.ts:161

Brand-only check: verifies that a value was produced by brandMat6RowMajor().

Parameters

value

unknown

Returns

value is Mat6RowMajor


isBrandedVec3()

isBrandedVec3(value): value is Vec3

Defined in: packages/backend-contract/src/shared/vec.ts:200

Brand-only check: verifies that a value was produced by brandVec3().

Note: this intentionally rejects structurally-valid TypedArrays.

Parameters

value

unknown

Returns

value is Vec3


isBrandedVec6()

isBrandedVec6(value): value is Vec6

Defined in: packages/backend-contract/src/shared/vec.ts:210

Brand-only check: verifies that a value was produced by brandVec6().

Note: this intentionally rejects structurally-valid TypedArrays.

Parameters

value

unknown

Returns

value is Vec6


isGetmsgWhich()

isGetmsgWhich(which): which is "SHORT" | "LONG" | "EXPLAIN"

Defined in: packages/backend-contract/src/domains/error.ts:19

Type guard for GetmsgWhich.

Parameters

which

unknown

Returns

which is "SHORT" | "LONG" | "EXPLAIN"


isMat3ArrayLike9()

isMat3ArrayLike9(value): value is ArrayLike<number>

Defined in: packages/backend-contract/src/shared/mat3.ts:119

Structural check: accepts number[] and numeric TypedArrays (excludes DataView).

This does not assert/require that the value is branded as a row/col-major Mat3.

Parameters

value

unknown

Returns

value is ArrayLike<number>


isMat6ArrayLike36()

isMat6ArrayLike36(value): value is ArrayLike<number>

Defined in: packages/backend-contract/src/shared/mat6.ts:114

Structural check: accepts number[] and numeric TypedArrays (excludes DataView).

This does not assert/require that the value is branded as a row-major Mat6.

Parameters

value

unknown

Returns

value is ArrayLike<number>


isVec3ArrayLike3()

isVec3ArrayLike3(value): value is ArrayLike<number>

Defined in: packages/backend-contract/src/shared/vec.ts:172

Structural check: accepts number[] and numeric TypedArrays (excludes DataView).

This does not assert/require that the value is branded as a Vec3.

Parameters

value

unknown

Returns

value is ArrayLike<number>


isVec6ArrayLike6()

isVec6ArrayLike6(value): value is ArrayLike<number>

Defined in: packages/backend-contract/src/shared/vec.ts:186

Structural check: accepts number[] and numeric TypedArrays (excludes DataView).

This does not assert/require that the value is branded as a Vec6.

Parameters

value

unknown

Returns

value is ArrayLike<number>


kxtrctJs()

kxtrctJs(keywd, terms, wordsq): Found<{ substr: string; wordsq: string; }>

Defined in: packages/backend-contract/src/domains/kernels-utils.ts:270

JS implementation of CSPICE kxtrct.

Notes on return values:

  • substr is right-trimmed (trimEnd()).
  • wordsq has the extracted words removed, but otherwise preserves whitespace from the original input (so it may start with blanks).

Parameters

keywd

string

terms

readonly string[]

wordsq

string

Returns

Found<{ substr: string; wordsq: string; }>


matchesKernelKind()

matchesKernelKind(requestedRaw, kernel): boolean

Defined in: packages/backend-contract/src/domains/kernels-utils.ts:215

Return whether a kernel matches the requested kind filter.

Requested kind tokens are treated as trim + case-insensitive. Empty tokens are ignored.

NOTE: Unlike normalizeKindInput, this helper is intentionally lenient: unknown requested tokens are treated as non-matching (and do not throw). Unknown/unsupported kernel.filtyp values never match (unless requested includes ALL).

TEXT-kernel subtypes (LSK/FK/IK/SCLK): SPICE reports these as filtyp: "TEXT". When callers request a subtype, we infer it from the kernel.file identifier's filename extension (best-effort). If the identifier is virtual or extension-less, subtype matching may fall back to "TEXT".

Parameters

requestedRaw

ReadonlySet<string>

kernel

Pick<KernelData, "file" | "filtyp">

Returns

boolean


nativeKindQueryOrNull()

nativeKindQueryOrNull(kinds): string | null

Defined in: packages/backend-contract/src/domains/kernels-utils.ts:166

Returns a representable native kind-query string (e.g. "SPK CK") or null.

This is used by backends to decide whether they can forward a kind filter to their underlying CSPICE implementation, or whether they must fall back to querying ALL and filtering in JS.

NOTE: kinds is expected to be normalized (via normalizeKindInput). If non-normalized input slips through (e.g. empty arrays or ALL mixed with other tokens), this function is defensive and returns null.

Parameters

kinds

readonly KernelKind[]

Returns

string | null


normalizeBodItem()

normalizeBodItem(item): string

Defined in: packages/backend-contract/src/domains/ids-names-normalize.ts:15

Normalize a body-constant item name for bodfnd / bodvar lookups.

Parameters

item

string

Returns

string


normalizeKindInput()

normalizeKindInput(kind): readonly KernelKind[]

Defined in: packages/backend-contract/src/domains/kernels-utils.ts:102

Normalize a ktotal/kdata kind input into a canonical, non-empty kernel kind list.

Parameters

kind

KernelKindInput | undefined

Returns

readonly KernelKind[]