Rocky_Mountain_Vending/.pnpm-store/v10/files/0f/b6cccd222344ac9321b6005b92a843bb5f06bb890ada488148e867843d4976c2af7bd24c2a05ab248da6a2eda802555699bf9133dafa8fc821ffce4392f86f
DMleadgen 46d973904b
Initial commit: Rocky Mountain Vending website
Next.js website for Rocky Mountain Vending company featuring:
- Product catalog with Stripe integration
- Service areas and parts pages
- Admin dashboard with Clerk authentication
- SEO optimized pages with JSON-LD structured data

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 16:22:15 -07:00

158 lines
6.6 KiB
Text

import type { QuickJSFFI, QuickJSAsyncFFI } from "./variants";
import type { QuickJSContext } from "./context";
import type { SuccessOrFail, VmFunctionImplementation } from "./vm-interface";
import type { Disposable, Lifetime } from "./lifetime";
import type { QuickJSAsyncContext } from "./context-asyncify";
import type { InterruptHandler, QuickJSRuntime } from "./runtime";
import { JSContextPointer, JSValueConstPointer, JSValuePointer } from "./types-ffi";
export type EitherFFI = QuickJSFFI | QuickJSAsyncFFI;
/**
* A QuickJSHandle to a constant that will never change, and does not need to
* be disposed.
*/
export type StaticJSValue = Lifetime<JSValueConstPointer, JSValueConstPointer, QuickJSRuntime>;
/**
* A QuickJSHandle to a borrowed value that does not need to be disposed.
*
* In QuickJS, a JSValueConst is a "borrowed" reference that isn't owned by the
* current scope. That means that the current scope should not `JS_FreeValue`
* it, or retain a reference to it after the scope exits, because it may be
* freed by its owner.
*
* quickjs-emscripten takes care of disposing JSValueConst references.
*/
export type JSValueConst = Lifetime<JSValueConstPointer, JSValuePointer, QuickJSRuntime>;
/**
* A owned QuickJSHandle that should be disposed or returned.
*
* The QuickJS interpreter passes Javascript values between functions as
* `JSValue` structs that references some internal data. Because passing
* structs cross the Empscripten FFI interfaces is bothersome, we use pointers
* to these structs instead.
*
* A JSValue reference is "owned" in its scope. before exiting the scope, it
* should be freed, by calling `JS_FreeValue(ctx, js_value)`) or returned from
* the scope. We extend that contract - a JSValuePointer (`JSValue*`) must also
* be `free`d.
*
* You can do so from Javascript by calling the .dispose() method.
*/
export type JSValue = Lifetime<JSValuePointer, JSValuePointer, QuickJSRuntime>;
/**
* Wraps a C pointer to a QuickJS JSValue, which represents a Javascript value inside
* a QuickJS virtual machine.
*
* Values must not be shared between QuickJSContext instances.
* You must dispose of any handles you create by calling the `.dispose()` method.
*/
export type QuickJSHandle = StaticJSValue | JSValue | JSValueConst;
export type JSModuleExport = {
type: "function";
name: string;
implementation: (vm: QuickJSContext) => VmFunctionImplementation<QuickJSHandle>;
} | {
type: "value";
name: string;
value: (vm: QuickJSContext) => QuickJSHandle;
};
export interface JSModuleDefinition {
name: string;
exports: JSModuleExport[];
}
export type JSModuleLoadSuccess = string;
export type JSModuleLoadFailure = Error | QuickJSHandle;
export type JSModuleLoadResult = JSModuleLoadSuccess | SuccessOrFail<JSModuleLoadSuccess, JSModuleLoadFailure>;
export interface JSModuleLoaderAsync {
/** Load module (async) */
(moduleName: string, context: QuickJSAsyncContext): JSModuleLoadResult | Promise<JSModuleLoadResult>;
}
export interface JSModuleLoader {
/** Load module (sync) */
(moduleName: string, context: QuickJSContext): JSModuleLoadResult;
}
export type JSModuleNormalizeSuccess = string;
export type JSModuleNormalizeFailure = Error | QuickJSHandle;
export type JSModuleNormalizeResult = JSModuleNormalizeSuccess | SuccessOrFail<JSModuleNormalizeSuccess, JSModuleNormalizeFailure>;
export interface JSModuleNormalizerAsync {
(baseModuleName: string, requestedName: string, vm: QuickJSAsyncContext): JSModuleNormalizeResult | Promise<JSModuleNormalizeResult>;
}
export interface JSModuleNormalizer extends JSModuleNormalizerAsync {
(baseModuleName: string, requestedName: string, vm: QuickJSContext): JSModuleNormalizeResult;
}
type TODO<hint extends string = "?", typeHint = unknown> = never;
declare const UnstableSymbol: unique symbol;
export type PartiallyImplemented<T> = never & T & {
[UnstableSymbol]: "This feature may unimplemented, broken, throw errors, etc.";
};
export interface RuntimeOptionsBase {
interruptHandler?: InterruptHandler;
maxStackSizeBytes?: number;
memoryLimitBytes?: number;
promiseRejectionHandler?: TODO<"JSHostPromiseRejectionTracker">;
runtimeInfo?: TODO<"JS_SetRuntimeInfo", string>;
gcThreshold?: TODO<"JS_SetGCThreshold", number>;
sharedArrayBufferFunctions?: TODO<"JS_SetJSSharedArrayBufferFunctions", {
sab_alloc: TODO;
sab_free: TODO;
sab_dup: TODO;
sab_opaque: TODO;
}>;
/**
* Extra lifetimes the runtime should dispose of after it is destroyed.
* @private
*/
ownedLifetimes?: Disposable[];
}
export interface RuntimeOptions extends RuntimeOptionsBase {
moduleLoader?: JSModuleLoader;
}
export interface AsyncRuntimeOptions extends RuntimeOptionsBase {
moduleLoader?: JSModuleLoaderAsync | JSModuleLoader;
}
/**
* Work in progress.
*/
export type Intrinsic = "BaseObjects" | "Date" | "Eval" | "StringNormalize" | "RegExp" | "RegExpCompiler" | "JSON" | "Proxy" | "MapSet" | "TypedArrays" | "Promise" | "BigInt" | "BigFloat" | "BigDecimal" | "OperatorOverloading" | "BignumExt";
/**
* Work in progress.
*/
export declare const DefaultIntrinsics: unique symbol;
export interface ContextOptions {
/**
* What built-in objects and language features to enable?
* If unset, the default intrinsics will be used.
* To omit all intrinsics, pass an empty array.
*/
intrinsics?: PartiallyImplemented<Intrinsic[]> | typeof DefaultIntrinsics;
/**
* Wrap the provided context instead of constructing a new one.
* @private
*/
contextPointer?: JSContextPointer;
/**
* Extra lifetimes the context should dispose of after it is destroyed.
* @private
*/
ownedLifetimes?: Disposable[];
}
export interface ContextEvalOptions {
/** Global code (default) */
type?: "global" | "module";
/** Force "strict" mode */
strict?: boolean;
/** Force "strip" mode */
strip?: boolean;
/**
* compile but do not run. The result is an object with a
* JS_TAG_FUNCTION_BYTECODE or JS_TAG_MODULE tag. It can be executed
* with JS_EvalFunction().
*/
compileOnly?: boolean;
/** don't include the stack frames before this eval in the Error() backtraces */
backtraceBarrier?: boolean;
}
/** Convert [[ContextEvalOptions]] to a bitfield flags */
export declare function evalOptionsToFlags(evalOptions: ContextEvalOptions | number | undefined): number;
export type PromiseExecutor<ResolveT, RejectT> = (resolve: (value: ResolveT | PromiseLike<ResolveT>) => void, reject: (reason: RejectT) => void) => void;
export declare function concat<T>(...values: Array<T[] | T | undefined>): T[];
export {};