@sanbus/galley-deno 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ffi.js","sourceRoot":"","sources":["../src/ffi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Galley JavaScript bindings for Deno — public surface.
3
+ *
4
+ * Binds the runtime-neutral `@sanbus/galley-core` to the `Deno.dlopen` port.
5
+ * Mirrors the layout of `bindings/python/galley.pyi` and the C header
6
+ * `bindings/c/galley.h`. Requires `--allow-ffi --allow-read --allow-env`.
7
+ */
8
+ import { findLibrary } from "./ffi.ts";
9
+ import { Session } from "./session.ts";
10
+ export * from "@sanbus/galley-core";
11
+ export { Session };
12
+ export { findLibrary };
13
+ export { getDenoPort, libFileName } from "./ffi.ts";
14
+ import type { SessionOptions as SessionOptionsType, WalkStep as WalkStepType, Diagnostic as DiagnosticType } from "@sanbus/galley-core";
15
+ export type { SessionOptionsType as SessionOptions, WalkStepType as WalkStep, DiagnosticType as Diagnostic };
16
+ export declare function version(): string;
17
+ export declare function parserType(): number;
18
+ export declare function errorRecoveryMode(): number;
19
+ export declare function hasAst(): boolean;
20
+ export declare function hasProcedures(): boolean;
21
+ export declare function allowsNoAstTreeProcedures(): boolean;
22
+ export declare function sourceRetentionEnabled(): boolean;
23
+ export declare function hasPositionTracking(): boolean;
24
+ export declare function hasInputStreaming(): boolean;
25
+ export declare function usesVerbatim(): boolean;
26
+ export declare function stackOverflowRecoveryAvailable(): boolean;
27
+ export declare function symbolCount(): number;
28
+ export declare function variableCount(): number;
29
+ export declare function statusString(status: number): string | null;
30
+ export declare const has_ast: typeof hasAst;
31
+ export declare const has_procedures: typeof hasProcedures;
32
+ export declare const has_position_tracking: typeof hasPositionTracking;
package/dist/index.js ADDED
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Galley JavaScript bindings for Deno — public surface.
3
+ *
4
+ * Binds the runtime-neutral `@sanbus/galley-core` to the `Deno.dlopen` port.
5
+ * Mirrors the layout of `bindings/python/galley.pyi` and the C header
6
+ * `bindings/c/galley.h`. Requires `--allow-ffi --allow-read --allow-env`.
7
+ */
8
+ import { getDenoPort, findLibrary } from "./ffi.js";
9
+ import { Session } from "./session.js";
10
+ // Core surface (Session base is shadowed by the adapter subclass below).
11
+ export * from "@sanbus/galley-core";
12
+ export { Session };
13
+ export { findLibrary };
14
+ export { getDenoPort, libFileName } from "./ffi.js";
15
+ // Module-level queries (mirror galley.h)
16
+ export function version() {
17
+ return getDenoPort().version();
18
+ }
19
+ export function parserType() {
20
+ return getDenoPort().parserType();
21
+ }
22
+ export function errorRecoveryMode() {
23
+ return getDenoPort().errorRecoveryMode();
24
+ }
25
+ export function hasAst() {
26
+ return getDenoPort().hasAst();
27
+ }
28
+ export function hasProcedures() {
29
+ return getDenoPort().hasProcedures();
30
+ }
31
+ export function allowsNoAstTreeProcedures() {
32
+ return getDenoPort().allowsNoAstTreeProcedures();
33
+ }
34
+ export function sourceRetentionEnabled() {
35
+ return getDenoPort().sourceRetentionEnabled();
36
+ }
37
+ export function hasPositionTracking() {
38
+ return getDenoPort().hasPositionTracking();
39
+ }
40
+ export function hasInputStreaming() {
41
+ return getDenoPort().hasInputStreaming();
42
+ }
43
+ export function usesVerbatim() {
44
+ return getDenoPort().usesVerbatim();
45
+ }
46
+ export function stackOverflowRecoveryAvailable() {
47
+ return getDenoPort().stackOverflowRecoveryAvailable();
48
+ }
49
+ export function symbolCount() {
50
+ return getDenoPort().symbolCount();
51
+ }
52
+ export function variableCount() {
53
+ return getDenoPort().variableCount();
54
+ }
55
+ export function statusString(status) {
56
+ return getDenoPort().statusString(status);
57
+ }
58
+ // Preserve original Python naming aliases for docs parity
59
+ export const has_ast = hasAst;
60
+ export const has_procedures = hasProcedures;
61
+ export const has_position_tracking = hasPositionTracking;
62
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,yEAAyE;AACzE,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,CAAC;AACnB,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAIpD,yCAAyC;AACzC,MAAM,UAAU,OAAO;IACrB,OAAO,WAAW,EAAE,CAAC,OAAO,EAAE,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,WAAW,EAAE,CAAC,UAAU,EAAE,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,WAAW,EAAE,CAAC,iBAAiB,EAAE,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,MAAM;IACpB,OAAO,WAAW,EAAE,CAAC,MAAM,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,WAAW,EAAE,CAAC,aAAa,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,OAAO,WAAW,EAAE,CAAC,yBAAyB,EAAE,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,OAAO,WAAW,EAAE,CAAC,sBAAsB,EAAE,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,WAAW,EAAE,CAAC,mBAAmB,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,WAAW,EAAE,CAAC,iBAAiB,EAAE,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,WAAW,EAAE,CAAC,YAAY,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,8BAA8B;IAC5C,OAAO,WAAW,EAAE,CAAC,8BAA8B,EAAE,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,WAAW,EAAE,CAAC,WAAW,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,WAAW,EAAE,CAAC,aAAa,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,OAAO,WAAW,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED,0DAA0D;AAC1D,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC;AAC9B,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAC;AAC5C,MAAM,CAAC,MAAM,qBAAqB,GAAG,mBAAmB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Deno `Session`: the core session bound to the `Deno.dlopen` port.
3
+ *
4
+ * Installs the host-procedure dispatch for the session's library; the
5
+ * installer is a no-op for libraries built for C procedures.
6
+ */
7
+ import { Session as CoreSession } from "@sanbus/galley-core";
8
+ import type { SessionOptions } from "@sanbus/galley-core";
9
+ export type { SessionOptions };
10
+ export declare class Session extends CoreSession {
11
+ constructor(options?: SessionOptions);
12
+ }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Deno `Session`: the core session bound to the `Deno.dlopen` port.
3
+ *
4
+ * Installs the host-procedure dispatch for the session's library; the
5
+ * installer is a no-op for libraries built for C procedures.
6
+ */
7
+ import { Session as CoreSession } from "@sanbus/galley-core";
8
+ import { getDenoPort } from "./ffi.js";
9
+ import { ensureDispatchFor } from "./dispatch.js";
10
+ export class Session extends CoreSession {
11
+ constructor(options = {}) {
12
+ const port = getDenoPort(options.libraryPath);
13
+ try {
14
+ ensureDispatchFor(port);
15
+ }
16
+ catch {
17
+ // installer missing (C build) — ignore.
18
+ }
19
+ super(port, options);
20
+ }
21
+ }
22
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAIlD,MAAM,OAAO,OAAQ,SAAQ,WAAW;IACtC,YAAY,OAAO,GAAmB,EAAE;QACtC,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC9C,IAAI,CAAC;YACH,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,wCAAwC;QAC1C,CAAC;QACD,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvB,CAAC;CACF"}
package/package.json ADDED
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "@sanbus/galley-deno",
3
+ "version": "0.0.1",
4
+ "description": "Galley JavaScript bindings for Deno (@sanbus/galley-core over Deno.dlopen and bindings/c/galley.h)",
5
+ "type": "module",
6
+ "exports": {
7
+ ".": "./dist/index.js"
8
+ },
9
+ "files": [
10
+ "dist",
11
+ "src",
12
+ "build.ts",
13
+ "README.md"
14
+ ],
15
+ "scripts": {
16
+ "build": "tsc -p tsconfig.build.json --noCheck --types \"\"",
17
+ "prepare": "tsc -p tsconfig.build.json --noCheck --types \"\"",
18
+ "prepublishOnly": "npm run build"
19
+ },
20
+ "devDependencies": {
21
+ "typescript": "^7.0.2"
22
+ },
23
+ "dependencies": {
24
+ "@sanbus/galley-core": "0.0.1"
25
+ }
26
+ }
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Deno procedure-dispatch installer.
3
+ *
4
+ * Owns the `UnsafeCallback` that the shared JS shim
5
+ * (`galley_install_js_dispatch_id`, generated by `@sanbus/galley-core/build/shim.mjs`)
6
+ * forwards every parser hook through. The registry and the ID-to-name
7
+ * dispatcher live in the core; this module only bridges the native
8
+ * boundary. Unlike Node there is no auto-scan: Deno consumers register
9
+ * hooks explicitly (`installProcedures(await import("./procedures.ts"))`).
10
+ * Libraries that predate integer hook IDs still export the name-carrying
11
+ * `galley_install_js_dispatch`, used as a fallback.
12
+ */
13
+
14
+ import { dispatchProcedure } from "@sanbus/galley-core";
15
+ import type { FfiPort } from "@sanbus/galley-core";
16
+ import type { DenoPort } from "./ffi.ts";
17
+
18
+ const textDecoder = new TextDecoder();
19
+
20
+ // Held to prevent GC of the callbacks; installed per library path.
21
+ // ID and name paths keep separate slots: their signatures differ.
22
+ let dispatchIdCallback: unknown = null;
23
+ let dispatchIdPointer: Deno.PointerValue | null = null;
24
+ let dispatchCallback: unknown = null;
25
+ let dispatchPointer: Deno.PointerValue | null = null;
26
+ const installedFor = new Set<string>();
27
+
28
+ export function ensureDispatchFor(port: DenoPort & FfiPort): void {
29
+ if (!port.supportsDispatch) {
30
+ // Library was built for C procedures (no shim); installs will be no-ops.
31
+ return;
32
+ }
33
+ if (installedFor.has(port.libraryPath)) return;
34
+ if (
35
+ typeof port.native.galley_install_js_dispatch_id === "function" &&
36
+ port.procedureNames().length > 0
37
+ ) {
38
+ installIdDispatch(port);
39
+ } else {
40
+ installNameDispatch(port);
41
+ }
42
+ installedFor.add(port.libraryPath);
43
+ }
44
+
45
+ function installIdDispatch(port: DenoPort & FfiPort): void {
46
+ if (dispatchIdCallback === null) {
47
+ // Integer hook IDs: no string copy or decode on the hot path. The table
48
+ // is fixed per library build; unknown IDs are silent no-ops.
49
+ const table = port.procedureNames();
50
+ const cb = new Deno.UnsafeCallback(
51
+ { parameters: ["u32", "pointer"], result: "void" },
52
+ (id, argsPtr) => {
53
+ const name = table[id as number];
54
+ if (name === undefined) return;
55
+ dispatchProcedure(name, argsPtr, port);
56
+ },
57
+ );
58
+ // Prevent GC — the trampoline must stay reachable for the process lifetime.
59
+ (globalThis as unknown as Record<string, unknown>).__galley_js_dispatchIdCallback = cb;
60
+ dispatchIdCallback = cb;
61
+ dispatchIdPointer = cb.pointer;
62
+ }
63
+ (port.native.galley_install_js_dispatch_id as (callback: Deno.PointerValue) => void)(
64
+ dispatchIdPointer as Deno.PointerValue,
65
+ );
66
+ }
67
+
68
+ function installNameDispatch(port: DenoPort & FfiPort): void {
69
+ if (dispatchCallback === null) {
70
+ // Signature mirrors Zig: fn([*]const u8, usize, ?*anyopaque) callconv(.c) void.
71
+ const cb = new Deno.UnsafeCallback(
72
+ { parameters: ["pointer", "usize", "pointer"], result: "void" },
73
+ (namePtr, nameLen, argsPtr) => {
74
+ if (namePtr === null) return;
75
+ let name: string;
76
+ try {
77
+ const bytes = new Deno.UnsafePointerView(namePtr).getArrayBuffer(Number(nameLen)).slice(0);
78
+ name = textDecoder.decode(bytes);
79
+ } catch (e) {
80
+ console.error("galley procedure dispatch: failed to decode name", e);
81
+ return;
82
+ }
83
+ dispatchProcedure(name, argsPtr, port);
84
+ },
85
+ );
86
+ // Prevent GC — the trampoline must stay reachable for the process lifetime.
87
+ (globalThis as unknown as Record<string, unknown>).__galley_js_dispatchCallback = cb;
88
+ dispatchCallback = cb;
89
+ dispatchPointer = cb.pointer;
90
+ }
91
+ port.native.galley_install_js_dispatch(dispatchPointer as Deno.PointerValue);
92
+ }