@wavehouse/chtypes 1.1.0 → 2.0.0-dev.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.
- package/README.md +6 -2
- package/dist/{abi1 → abi2}/buildinfo.d.ts.map +1 -1
- package/dist/{abi1 → abi2}/buildinfo.js.map +1 -1
- package/dist/{abi1 → abi2}/calls.gen.d.ts +10 -5
- package/dist/abi2/calls.gen.d.ts.map +1 -0
- package/dist/{abi1 → abi2}/calls.gen.js +8 -3
- package/dist/abi2/calls.gen.js.map +1 -0
- package/dist/{abi1 → abi2}/decls.gen.d.ts +14 -6
- package/dist/{abi1 → abi2}/decls.gen.d.ts.map +1 -1
- package/dist/{abi1 → abi2}/decls.gen.js +116 -10
- package/dist/{abi1 → abi2}/decls.gen.js.map +1 -1
- package/dist/{abi1 → abi2}/errmap.gen.d.ts +3 -3
- package/dist/{abi1 → abi2}/errmap.gen.d.ts.map +1 -1
- package/dist/{abi1 → abi2}/errmap.gen.js +8 -8
- package/dist/abi2/errmap.gen.js.map +1 -0
- package/dist/{abi1 → abi2}/errors.d.ts +9 -3
- package/dist/{abi1 → abi2}/errors.d.ts.map +1 -1
- package/dist/{abi1 → abi2}/errors.js +20 -4
- package/dist/abi2/errors.js.map +1 -0
- package/dist/{abi1 → abi2}/handles.d.ts +3 -3
- package/dist/{abi1 → abi2}/handles.d.ts.map +1 -1
- package/dist/{abi1 → abi2}/handles.js +5 -5
- package/dist/{abi1 → abi2}/handles.js.map +1 -1
- package/dist/{abi1 → abi2}/index.d.ts +5 -5
- package/dist/abi2/index.d.ts.map +1 -0
- package/dist/{abi1 → abi2}/index.js +5 -5
- package/dist/abi2/index.js.map +1 -0
- package/dist/{abi1 → abi2}/libc.d.ts.map +1 -1
- package/dist/{abi1 → abi2}/libc.gen.d.ts.map +1 -1
- package/dist/{abi1 → abi2}/libc.gen.js +4 -4
- package/dist/{abi1 → abi2}/libc.gen.js.map +1 -1
- package/dist/{abi1 → abi2}/libc.js.map +1 -1
- package/dist/{abi1 → abi2}/loader.d.ts +10 -8
- package/dist/abi2/loader.d.ts.map +1 -0
- package/dist/{abi1 → abi2}/loader.js +15 -13
- package/dist/abi2/loader.js.map +1 -0
- package/dist/{abi1 → abi2}/raw.d.ts +2 -2
- package/dist/{abi1 → abi2}/raw.d.ts.map +1 -1
- package/dist/{abi1 → abi2}/raw.js +14 -14
- package/dist/{abi1 → abi2}/raw.js.map +1 -1
- package/dist/{abi1 → abi2}/strictjson.d.ts.map +1 -1
- package/dist/{abi1 → abi2}/strictjson.js.map +1 -1
- package/dist/abi2/vocab.gen.d.ts +221 -0
- package/dist/abi2/vocab.gen.d.ts.map +1 -0
- package/dist/abi2/vocab.gen.js +371 -0
- package/dist/abi2/vocab.gen.js.map +1 -0
- package/dist/cli.d.ts +6 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +28 -5
- package/dist/cli.js.map +1 -1
- package/dist/documents.d.ts +11 -5
- package/dist/documents.d.ts.map +1 -1
- package/dist/documents.js +28 -35
- package/dist/documents.js.map +1 -1
- package/dist/env.d.ts +6 -0
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +12 -4
- package/dist/env.js.map +1 -1
- package/dist/index.d.ts +7 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/dist/library.d.ts +1 -1
- package/dist/library.d.ts.map +1 -1
- package/dist/library.js +4 -2
- package/dist/library.js.map +1 -1
- package/dist/ocifetch/channel.d.ts +114 -0
- package/dist/ocifetch/channel.d.ts.map +1 -0
- package/dist/ocifetch/channel.js +219 -0
- package/dist/ocifetch/channel.js.map +1 -0
- package/dist/ocifetch/dsse.d.ts.map +1 -1
- package/dist/ocifetch/dsse.js +7 -3
- package/dist/ocifetch/dsse.js.map +1 -1
- package/dist/ocifetch/ensure.d.ts +17 -3
- package/dist/ocifetch/ensure.d.ts.map +1 -1
- package/dist/ocifetch/ensure.js +57 -13
- package/dist/ocifetch/ensure.js.map +1 -1
- package/dist/ocifetch/index.d.ts +1 -0
- package/dist/ocifetch/index.d.ts.map +1 -1
- package/dist/ocifetch/index.js +1 -0
- package/dist/ocifetch/index.js.map +1 -1
- package/dist/ocifetch/layout.d.ts +20 -7
- package/dist/ocifetch/layout.d.ts.map +1 -1
- package/dist/ocifetch/layout.js +32 -16
- package/dist/ocifetch/layout.js.map +1 -1
- package/dist/ocifetch/types.d.ts +2 -1
- package/dist/ocifetch/types.d.ts.map +1 -1
- package/dist/ocifetch/types.js.map +1 -1
- package/dist/registry.d.ts +7 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +20 -6
- package/dist/registry.js.map +1 -1
- package/dist/schema.d.ts +2 -2
- package/dist/schema.js +1 -1
- package/dist/settings.js +1 -1
- package/dist/setup.d.ts +1 -1
- package/dist/setup.js +2 -2
- package/package.json +1 -1
- package/dist/abi1/calls.gen.d.ts.map +0 -1
- package/dist/abi1/calls.gen.js.map +0 -1
- package/dist/abi1/errmap.gen.js.map +0 -1
- package/dist/abi1/errors.js.map +0 -1
- package/dist/abi1/index.d.ts.map +0 -1
- package/dist/abi1/index.js.map +0 -1
- package/dist/abi1/loader.d.ts.map +0 -1
- package/dist/abi1/loader.js.map +0 -1
- package/dist/abi1/vocab.gen.d.ts +0 -169
- package/dist/abi1/vocab.gen.d.ts.map +0 -1
- package/dist/abi1/vocab.gen.js +0 -306
- package/dist/abi1/vocab.gen.js.map +0 -1
- /package/dist/{abi1 → abi2}/buildinfo.d.ts +0 -0
- /package/dist/{abi1 → abi2}/buildinfo.js +0 -0
- /package/dist/{abi1 → abi2}/libc.d.ts +0 -0
- /package/dist/{abi1 → abi2}/libc.gen.d.ts +0 -0
- /package/dist/{abi1 → abi2}/libc.js +0 -0
- /package/dist/{abi1 → abi2}/strictjson.d.ts +0 -0
- /package/dist/{abi1 → abi2}/strictjson.js +0 -0
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
/* GENERATED by scripts/abi-v1/gen.py from spec/abi-
|
|
1
|
+
/* GENERATED by scripts/abi-v1/gen.py --major 2 from spec/abi-v2/abi.json (CHS_ABI_FINGERPRINT sha256:d87e91be2bbe75b985c38224268c2f7dc5d8236dab0a4b4d61357c6dfdc1a232) — DO NOT EDIT */
|
|
2
2
|
/*
|
|
3
|
-
* spec/abi-
|
|
3
|
+
* spec/abi-v2/sdk.json's two error tables, as code: a CALL's chs_status -> one of
|
|
4
4
|
* SchemaError/UnsupportedError/UsageError/InternalError (errors.status), and a LOADER
|
|
5
5
|
* refusal's reason -> artifact_incompatible or artifact_corrupt (loader.refusals). Both
|
|
6
|
-
* read spec/abi-
|
|
6
|
+
* read spec/abi-v2/sdk.json; regenerate rather than hand-editing either table.
|
|
7
7
|
*/
|
|
8
8
|
import { InternalError, SchemaError, UnsupportedError, UsageError, } from './errors.js';
|
|
9
9
|
/**
|
|
10
|
-
* A call's raw chs_status value -> the mapped error instance (spec/abi-
|
|
10
|
+
* A call's raw chs_status value -> the mapped error instance (spec/abi-v2/sdk.json's
|
|
11
11
|
* errors.status table). A caller checks for the OK value before ever calling this. A
|
|
12
12
|
* status outside the closed set (impossible under a matching fingerprint; see
|
|
13
|
-
* spec/abi-
|
|
13
|
+
* spec/abi-v2/docs.md's chs_status section) maps to InternalError, naming the raw
|
|
14
14
|
* value, exactly like every other binding's generated table.
|
|
15
15
|
*/
|
|
16
16
|
export function errorForStatus(status, fields) {
|
|
@@ -26,12 +26,12 @@ export function errorForStatus(status, fields) {
|
|
|
26
26
|
default:
|
|
27
27
|
return new InternalError({
|
|
28
28
|
...fields,
|
|
29
|
-
messageBytes: Buffer.from(`chtypes:
|
|
29
|
+
messageBytes: Buffer.from(`chtypes: call status unknown(${status}) is outside the closed set: ${fields.messageBytes.toString('utf8')}`, 'utf8'),
|
|
30
30
|
});
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
/**
|
|
34
|
-
* A loader refusal reason (spec/abi-
|
|
34
|
+
* A loader refusal reason (spec/abi-v2/sdk.json's loader.refusals vocabulary, a
|
|
35
35
|
* `missing_symbol:<name>` or `build_info_mismatch:<field>` reason included, via its
|
|
36
36
|
* prefix before the first ':') -> which artifact error class the C ABI contract §Loading
|
|
37
37
|
* error map says it is.
|
|
@@ -60,7 +60,7 @@ export function loaderErrorClassFor(reason) {
|
|
|
60
60
|
case 'build_info_mismatch':
|
|
61
61
|
return 'artifact_corrupt';
|
|
62
62
|
default:
|
|
63
|
-
throw new Error(`chtypes
|
|
63
|
+
throw new Error(`chtypes abi2: no sdk.json loader refusal class for reason ${reason}`);
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
//# sourceMappingURL=errmap.gen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errmap.gen.js","sourceRoot":"","sources":["../../src/abi2/errmap.gen.ts"],"names":[],"mappings":"AAAA,wLAAwL;AACxL;;;;;GAKG;AAEH,OAAO,EAGL,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,UAAU,GACX,MAAM,aAAa,CAAC;AAErB;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc,EAAE,MAAuB;IACpE,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,CAAC,EAAE,eAAe;YACrB,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;QACjC,KAAK,CAAC,EAAE,eAAe;YACrB,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACtC,KAAK,CAAC,EAAE,uBAAuB;YAC7B,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QAChC,KAAK,CAAC,EAAE,eAAe;YACrB,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;QACnC;YACE,OAAO,IAAI,aAAa,CAAC;gBACvB,GAAG,MAAM;gBACT,YAAY,EAAE,MAAM,CAAC,IAAI,CACvB,gCAAgC,MAAM,gCAAgC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAC5G,MAAM,CACP;aACF,CAAC,CAAC;IACP,CAAC;AACH,CAAC;AAID;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,aAAa;YAChB,OAAO,uBAAuB,CAAC;QACjC,KAAK,UAAU;YACb,OAAO,uBAAuB,CAAC;QACjC,KAAK,qBAAqB;YACxB,OAAO,uBAAuB,CAAC;QACjC,KAAK,QAAQ;YACX,OAAO,uBAAuB,CAAC;QACjC,KAAK,QAAQ;YACX,OAAO,uBAAuB,CAAC;QACjC,KAAK,aAAa;YAChB,OAAO,uBAAuB,CAAC;QACjC,KAAK,sBAAsB;YACzB,OAAO,kBAAkB,CAAC;QAC5B,KAAK,aAAa;YAChB,OAAO,uBAAuB,CAAC;QACjC,KAAK,gBAAgB;YACnB,OAAO,uBAAuB,CAAC;QACjC,KAAK,qBAAqB;YACxB,OAAO,kBAAkB,CAAC;QAC5B;YACE,MAAM,IAAI,KAAK,CAAC,6DAA6D,MAAM,EAAE,CAAC,CAAC;IAC3F,CAAC;AACH,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The
|
|
2
|
+
* The error model (`docs/reference/bindings-v1.md` §4), over the fetch
|
|
3
3
|
* layer's own error family.
|
|
4
4
|
*
|
|
5
|
-
* Two shapes (spec/abi-
|
|
5
|
+
* Two shapes (spec/abi-v2/sdk.json's two tables):
|
|
6
6
|
*
|
|
7
7
|
* - a CALL error: the five fields of the library's error object, read
|
|
8
8
|
* verbatim. `errorForStatus` in `./errmap.gen.ts` picks the class from the
|
|
@@ -83,7 +83,13 @@ export interface LoaderErrorFields {
|
|
|
83
83
|
readonly want?: string | undefined;
|
|
84
84
|
readonly got?: string | undefined;
|
|
85
85
|
}
|
|
86
|
-
/**
|
|
86
|
+
/**
|
|
87
|
+
* Rule r6's exact refusal of a library whose fingerprint is not this dev SDK's
|
|
88
|
+
* (`spec/abi-v2/docs.md`): `sdk` is this binding's own `ABI_FINGERPRINT`,
|
|
89
|
+
* `library` the library's, both full `sha256:` spellings.
|
|
90
|
+
*/
|
|
91
|
+
export declare function devFingerprintMessage(sdk: string, library: string): string;
|
|
92
|
+
/** A loader step 1-4 or 6 refusal: the artifact is not one this binding can speak to (wrong ABI generation, a different fingerprint, a missing symbol, an unresolvable link). A fingerprint refusal by a 2.0.0-dev SDK carries rule r6's exact message. */
|
|
87
93
|
export declare class ArtifactIncompatibleError extends FetchV1Error implements LoaderErrorFields {
|
|
88
94
|
readonly reason: string;
|
|
89
95
|
readonly path: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/abi2/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The
|
|
2
|
+
* The error model (`docs/reference/bindings-v1.md` §4), over the fetch
|
|
3
3
|
* layer's own error family.
|
|
4
4
|
*
|
|
5
|
-
* Two shapes (spec/abi-
|
|
5
|
+
* Two shapes (spec/abi-v2/sdk.json's two tables):
|
|
6
6
|
*
|
|
7
7
|
* - a CALL error: the five fields of the library's error object, read
|
|
8
8
|
* verbatim. `errorForStatus` in `./errmap.gen.ts` picks the class from the
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
* (the string every `Error` has) is the one lossy display form.
|
|
23
23
|
*/
|
|
24
24
|
import { ArtifactCorruptError, FetchV1Error } from '../ocifetch/index.js';
|
|
25
|
+
import { ABI_STABILITY } from './decls.gen.js';
|
|
25
26
|
import { Status } from './vocab.gen.js';
|
|
26
27
|
/** The base of every call error. The fetch and loader errors live under `ArtifactError` instead; `isChtypesError` is true for all of them. */
|
|
27
28
|
export class ChtypesError extends Error {
|
|
@@ -98,14 +99,29 @@ function renderLoaderMessage(label, f) {
|
|
|
98
99
|
const detail = f.want !== undefined || f.got !== undefined ? ` (want ${f.want ?? '?'}, got ${f.got ?? '?'})` : '';
|
|
99
100
|
return `chtypes: ${f.path}: ${label}: ${f.reason}${detail}`;
|
|
100
101
|
}
|
|
101
|
-
/**
|
|
102
|
+
/**
|
|
103
|
+
* Rule r6's exact refusal of a library whose fingerprint is not this dev SDK's
|
|
104
|
+
* (`spec/abi-v2/docs.md`): `sdk` is this binding's own `ABI_FINGERPRINT`,
|
|
105
|
+
* `library` the library's, both full `sha256:` spellings.
|
|
106
|
+
*/
|
|
107
|
+
export function devFingerprintMessage(sdk, library) {
|
|
108
|
+
return `this SDK speaks dev fingerprint ${sdk}; the library has ${library} — update your dev SDK`;
|
|
109
|
+
}
|
|
110
|
+
/** An incompatible-artifact refusal's message: rule r6's exact text for a fingerprint refusal while the description is unstable (a 2.0.0-dev SDK), the loader's own otherwise. */
|
|
111
|
+
function incompatibleMessage(f) {
|
|
112
|
+
if (f.reason === 'fingerprint' && ABI_STABILITY === 'unstable' && f.want !== undefined && f.got !== undefined) {
|
|
113
|
+
return devFingerprintMessage(f.want, f.got);
|
|
114
|
+
}
|
|
115
|
+
return renderLoaderMessage('incompatible artifact', f);
|
|
116
|
+
}
|
|
117
|
+
/** A loader step 1-4 or 6 refusal: the artifact is not one this binding can speak to (wrong ABI generation, a different fingerprint, a missing symbol, an unresolvable link). A fingerprint refusal by a 2.0.0-dev SDK carries rule r6's exact message. */
|
|
102
118
|
export class ArtifactIncompatibleError extends FetchV1Error {
|
|
103
119
|
reason;
|
|
104
120
|
path;
|
|
105
121
|
want;
|
|
106
122
|
got;
|
|
107
123
|
constructor(f) {
|
|
108
|
-
super('CHTYPES_ARTIFACT_INCOMPATIBLE',
|
|
124
|
+
super('CHTYPES_ARTIFACT_INCOMPATIBLE', incompatibleMessage(f));
|
|
109
125
|
this.reason = f.reason;
|
|
110
126
|
this.path = f.path;
|
|
111
127
|
this.want = f.want;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/abi2/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
import type { JsExternal } from 'ffi-rs';
|
|
13
13
|
import { type RawApi } from './raw.js';
|
|
14
14
|
/** A live handle over one opened image. `close()` is safe to call more than once and safe to never call explicitly (the registry calls it if this object is abandoned). */
|
|
15
|
-
export declare abstract class
|
|
15
|
+
export declare abstract class Abi2Handle {
|
|
16
16
|
#private;
|
|
17
17
|
readonly kind: string;
|
|
18
18
|
protected constructor(raw: RawApi, ptr: JsExternal, kind: string);
|
|
@@ -22,10 +22,10 @@ export declare abstract class Abi1Handle {
|
|
|
22
22
|
close(): void;
|
|
23
23
|
}
|
|
24
24
|
/** Every described handle kind's wrapper class, keyed by its chs_* name (`HANDLE_INFO`'s own keys — never a literal spelled here). */
|
|
25
|
-
export declare const HANDLE_CLASSES: Readonly<Record<string, new (raw: RawApi, ptr: JsExternal) =>
|
|
25
|
+
export declare const HANDLE_CLASSES: Readonly<Record<string, new (raw: RawApi, ptr: JsExternal) => Abi2Handle>>;
|
|
26
26
|
/** Wrap a freshly minted handle (`RawCallResult`'s `HandleRef`) in its class. */
|
|
27
27
|
export declare function wrapHandle(raw: RawApi, ref: {
|
|
28
28
|
readonly kind: string;
|
|
29
29
|
readonly ptr: JsExternal;
|
|
30
|
-
}):
|
|
30
|
+
}): Abi2Handle;
|
|
31
31
|
//# sourceMappingURL=handles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handles.d.ts","sourceRoot":"","sources":["../../src/
|
|
1
|
+
{"version":3,"file":"handles.d.ts","sourceRoot":"","sources":["../../src/abi2/handles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAGzC,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;AAEnD,2KAA2K;AAC3K,8BAAsB,UAAU;;IAG9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,SAAS,aAAa,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAI/D;IAED,+KAA+K;IAC/K,IAAI,GAAG,IAAI,UAAU,CAKpB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,KAAK,IAAI,IAAI,CAMZ;CACF;AAwBD,sIAAsI;AACtI,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,KAAK,UAAU,CAAC,CAErG,CAAC;AAEF,iFAAiF;AACjF,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAA;CAAE,GAAG,UAAU,CAI5G"}
|
|
@@ -13,7 +13,7 @@ import { HANDLE_INFO } from './decls.gen.js';
|
|
|
13
13
|
import { usageError } from './errors.js';
|
|
14
14
|
import { freeHandle } from './raw.js';
|
|
15
15
|
/** A live handle over one opened image. `close()` is safe to call more than once and safe to never call explicitly (the registry calls it if this object is abandoned). */
|
|
16
|
-
export class
|
|
16
|
+
export class Abi2Handle {
|
|
17
17
|
#raw;
|
|
18
18
|
#ptr;
|
|
19
19
|
kind;
|
|
@@ -37,7 +37,7 @@ export class Abi1Handle {
|
|
|
37
37
|
return;
|
|
38
38
|
const freeSymbol = HANDLE_INFO[this.kind]?.free;
|
|
39
39
|
if (freeSymbol === undefined)
|
|
40
|
-
throw new Error(`chtypes
|
|
40
|
+
throw new Error(`chtypes abi2: ${this.kind} has no HANDLE_INFO entry`);
|
|
41
41
|
freeHandle(this.#raw, freeSymbol, this.#ptr);
|
|
42
42
|
this.#ptr = null;
|
|
43
43
|
}
|
|
@@ -48,10 +48,10 @@ function makeHandleClass(kind) {
|
|
|
48
48
|
});
|
|
49
49
|
const info = HANDLE_INFO[kind];
|
|
50
50
|
if (info === undefined)
|
|
51
|
-
throw new Error(`chtypes
|
|
51
|
+
throw new Error(`chtypes abi2: no HANDLE_INFO for ${kind}`);
|
|
52
52
|
const freeSymbol = info.free;
|
|
53
53
|
const className = info.className;
|
|
54
|
-
class Handle extends
|
|
54
|
+
class Handle extends Abi2Handle {
|
|
55
55
|
constructor(raw, ptr) {
|
|
56
56
|
super(raw, ptr, kind);
|
|
57
57
|
registry.register(this, { raw, ptr, freeSymbol }, this);
|
|
@@ -70,7 +70,7 @@ export const HANDLE_CLASSES = Object.fromEntries(Object.keys(HANDLE_INFO).map((k
|
|
|
70
70
|
export function wrapHandle(raw, ref) {
|
|
71
71
|
const Class = HANDLE_CLASSES[ref.kind];
|
|
72
72
|
if (Class === undefined)
|
|
73
|
-
throw new Error(`chtypes
|
|
73
|
+
throw new Error(`chtypes abi2: no handle class for kind ${ref.kind}`);
|
|
74
74
|
return new Class(raw, ref.ptr);
|
|
75
75
|
}
|
|
76
76
|
//# sourceMappingURL=handles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handles.js","sourceRoot":"","sources":["../../src/
|
|
1
|
+
{"version":3,"file":"handles.js","sourceRoot":"","sources":["../../src/abi2/handles.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The ABI
|
|
2
|
+
* The ABI v2 loader and generated layer's surface inside this package: what
|
|
3
3
|
* the public API (`../index.ts`, `../registry.ts`, `../library.ts`) is built
|
|
4
4
|
* over. Nothing here is re-exported wholesale: the public barrel names exactly
|
|
5
5
|
* what a caller may use.
|
|
6
6
|
*/
|
|
7
7
|
export { type BuildInfo, type Capabilities, decodeBuildInfo } from './buildinfo.js';
|
|
8
8
|
export { type BlockHandle, Calls, type FilterHandle, type SchemaHandle } from './calls.gen.js';
|
|
9
|
-
export { ABI_FINGERPRINT, ABI_VERSION, BUF_HANDLE, type FunctionSpec, type ParamSpec, type ReturnSpec } from './decls.gen.js';
|
|
9
|
+
export { ABI_FINGERPRINT, ABI_STABILITY, ABI_VERSION, BUF_HANDLE, type FunctionSpec, type ParamSpec, type ReturnSpec } from './decls.gen.js';
|
|
10
10
|
export { errorForStatus, type LoaderErrorClass, loaderErrorClassFor } from './errmap.gen.js';
|
|
11
|
-
export { ArtifactCorruptError, ArtifactError, ArtifactIncompatibleError, CallError, type CallErrorFields, ChtypesError, InternalError, internalError, isChtypesError, LoaderCorruptError, type LoaderErrorFields, SchemaError, UnsupportedError, UsageError, usageError, } from './errors.js';
|
|
12
|
-
export {
|
|
13
|
-
export { checkUnverifiedAllowed, type ImageSetup, LoadedImage, type LoadInput,
|
|
11
|
+
export { ArtifactCorruptError, ArtifactError, ArtifactIncompatibleError, CallError, type CallErrorFields, ChtypesError, devFingerprintMessage, InternalError, internalError, isChtypesError, LoaderCorruptError, type LoaderErrorFields, SchemaError, UnsupportedError, UsageError, usageError, } from './errors.js';
|
|
12
|
+
export { Abi2Handle, HANDLE_CLASSES, wrapHandle } from './handles.js';
|
|
13
|
+
export { checkUnverifiedAllowed, type ImageSetup, LoadedImage, type LoadInput, openAbi2, openUnverified, type Predicate } from './loader.js';
|
|
14
14
|
export { asBuffer, checkStatus, defineRawFunctions, type HandleRef, NULL_EXTERNAL, type RawApi, type RawCallResult, rawCall, readOwnedBuf, } from './raw.js';
|
|
15
15
|
export { DuplicateKeyError, firstDuplicateKey, isAsciiOnly, parseStrictJson } from './strictjson.js';
|
|
16
16
|
export * from './vocab.gen.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/abi2/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACpF,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC/F,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC7I,OAAO,EAAE,cAAc,EAAE,KAAK,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC7F,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,yBAAyB,EACzB,SAAS,EACT,KAAK,eAAe,EACpB,YAAY,EACZ,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,KAAK,iBAAiB,EACtB,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,UAAU,GACX,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,KAAK,UAAU,EAAE,WAAW,EAAE,KAAK,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7I,OAAO,EACL,QAAQ,EACR,WAAW,EACX,kBAAkB,EAClB,KAAK,SAAS,EACd,aAAa,EACb,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,OAAO,EACP,YAAY,GACb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACrG,cAAc,gBAAgB,CAAC"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The ABI
|
|
2
|
+
* The ABI v2 loader and generated layer's surface inside this package: what
|
|
3
3
|
* the public API (`../index.ts`, `../registry.ts`, `../library.ts`) is built
|
|
4
4
|
* over. Nothing here is re-exported wholesale: the public barrel names exactly
|
|
5
5
|
* what a caller may use.
|
|
6
6
|
*/
|
|
7
7
|
export { decodeBuildInfo } from './buildinfo.js';
|
|
8
8
|
export { Calls } from './calls.gen.js';
|
|
9
|
-
export { ABI_FINGERPRINT, ABI_VERSION, BUF_HANDLE } from './decls.gen.js';
|
|
9
|
+
export { ABI_FINGERPRINT, ABI_STABILITY, ABI_VERSION, BUF_HANDLE } from './decls.gen.js';
|
|
10
10
|
export { errorForStatus, loaderErrorClassFor } from './errmap.gen.js';
|
|
11
|
-
export { ArtifactCorruptError, ArtifactError, ArtifactIncompatibleError, CallError, ChtypesError, InternalError, internalError, isChtypesError, LoaderCorruptError, SchemaError, UnsupportedError, UsageError, usageError, } from './errors.js';
|
|
12
|
-
export {
|
|
13
|
-
export { checkUnverifiedAllowed, LoadedImage,
|
|
11
|
+
export { ArtifactCorruptError, ArtifactError, ArtifactIncompatibleError, CallError, ChtypesError, devFingerprintMessage, InternalError, internalError, isChtypesError, LoaderCorruptError, SchemaError, UnsupportedError, UsageError, usageError, } from './errors.js';
|
|
12
|
+
export { Abi2Handle, HANDLE_CLASSES, wrapHandle } from './handles.js';
|
|
13
|
+
export { checkUnverifiedAllowed, LoadedImage, openAbi2, openUnverified } from './loader.js';
|
|
14
14
|
export { asBuffer, checkStatus, defineRawFunctions, NULL_EXTERNAL, rawCall, readOwnedBuf, } from './raw.js';
|
|
15
15
|
export { DuplicateKeyError, firstDuplicateKey, isAsciiOnly, parseStrictJson } from './strictjson.js';
|
|
16
16
|
export * from './vocab.gen.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/abi2/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAqC,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACpF,OAAO,EAAoB,KAAK,EAAwC,MAAM,gBAAgB,CAAC;AAC/F,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAsD,MAAM,gBAAgB,CAAC;AAC7I,OAAO,EAAE,cAAc,EAAyB,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC7F,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,yBAAyB,EACzB,SAAS,EAET,YAAY,EACZ,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,cAAc,EACd,kBAAkB,EAElB,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,UAAU,GACX,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAmB,WAAW,EAAkB,QAAQ,EAAE,cAAc,EAAkB,MAAM,aAAa,CAAC;AAC7I,OAAO,EACL,QAAQ,EACR,WAAW,EACX,kBAAkB,EAElB,aAAa,EAGb,OAAO,EACP,YAAY,GACb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACrG,cAAc,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libc.d.ts","sourceRoot":"","sources":["../../src/
|
|
1
|
+
{"version":3,"file":"libc.d.ts","sourceRoot":"","sources":["../../src/abi2/libc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAwB,KAAK,UAAU,EAAQ,MAAM,QAAQ,CAAC;AAwBrE,eAAO,MAAM,cAAc,QAAwB,CAAC;AAEpD,iVAAiV;AACjV,iBAAS,WAAW,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAI5C;AAED,iPAAiP;AACjP,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAEzD;AAED,6TAA6T;AAC7T,wBAAgB,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAE5E;AAED,8JAA8J;AAC9J,wBAAgB,WAAW,IAAI,MAAM,CAGpC;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,IAAI,CAGlD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAWlE;AAED,mgBAAmgB;AACngB,wBAAgB,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAK9D;AAID,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libc.gen.d.ts","sourceRoot":"","sources":["../../src/
|
|
1
|
+
{"version":3,"file":"libc.gen.d.ts","sourceRoot":"","sources":["../../src/abi2/libc.gen.ts"],"names":[],"mappings":"AAeA,OAAO,EAAmC,KAAK,UAAU,EAAQ,MAAM,QAAQ,CAAC;AA0ChF,2EAA2E;AAC3E,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAGrE;AAED,6GAA6G;AAC7G,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAGjF;AAED,wHAAwH;AACxH,wBAAgB,OAAO,IAAI,UAAU,GAAG,IAAI,CAG3C;AAED,iHAAiH;AACjH,wBAAgB,iBAAiB,IAAI,UAAU,GAAG,IAAI,CAOrD;AAED,2GAA2G;AAC3G,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAErD"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
/* GENERATED by scripts/abi-v1/gen.py from spec/abi-
|
|
1
|
+
/* GENERATED by scripts/abi-v1/gen.py --major 2 from spec/abi-v2/abi.json (CHS_ABI_FINGERPRINT sha256:d87e91be2bbe75b985c38224268c2f7dc5d8236dab0a4b4d61357c6dfdc1a232) — DO NOT EDIT */
|
|
2
2
|
/*
|
|
3
|
-
* The libc primitives ts/src/
|
|
3
|
+
* The libc primitives ts/src/abi2/libc.ts needs for plan §3.3's TS-trap fix: dlopen,
|
|
4
4
|
* dlsym, dlerror, gnu_get_libc_version and strlen, declared through ffi-rs's define()
|
|
5
5
|
* against the PROCESS'S OWN libc, by their real C names. This file carries the generated
|
|
6
6
|
* banner, so scripts/abi-v1/check-no-hand-decls.py exempts it outright — the check's own
|
|
@@ -14,13 +14,13 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import { DataType, define, isNullPointer, open } from 'ffi-rs';
|
|
16
16
|
const { External, I32, U64, String: Str } = DataType;
|
|
17
|
-
const LIBC_KEY = '
|
|
17
|
+
const LIBC_KEY = 'chtypes_abi2_libc';
|
|
18
18
|
function libcPath() {
|
|
19
19
|
if (process.platform === 'darwin')
|
|
20
20
|
return '/usr/lib/libSystem.B.dylib';
|
|
21
21
|
if (process.platform === 'linux')
|
|
22
22
|
return 'libc.so.6';
|
|
23
|
-
throw new Error(`chtypes
|
|
23
|
+
throw new Error(`chtypes abi2: unsupported platform ${process.platform}; only linux and darwin are ABI v2 platforms`);
|
|
24
24
|
}
|
|
25
25
|
let opened = false;
|
|
26
26
|
function ensureOpen() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libc.gen.js","sourceRoot":"","sources":["../../src/
|
|
1
|
+
{"version":3,"file":"libc.gen.js","sourceRoot":"","sources":["../../src/abi2/libc.gen.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libc.js","sourceRoot":"","sources":["../../src/
|
|
1
|
+
{"version":3,"file":"libc.js","sourceRoot":"","sources":["../../src/abi2/libc.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The ABI
|
|
2
|
+
* The ABI v2 loader (plan §3, steps 1-7; the 2.0.0-dev binding, public issue #511). Hand-written (the plan's "about 200
|
|
3
3
|
* lines per binding" FIRM piece); everything it reaches for — `rawDlopen`/
|
|
4
4
|
* `rawDlsym`/`glibcVersionString` (`./libc.ts`), `defineRawFunctions`/
|
|
5
5
|
* `rawCall` (`./raw.ts`), `DESCRIBED_SYMBOLS`/`SYMBOL`/`ABI_FINGERPRINT`/
|
|
6
6
|
* `CROSS_CHECK` (`./decls.gen.ts`) — is generated or generic, so this file
|
|
7
7
|
* never spells a `chs_` name itself.
|
|
8
8
|
*
|
|
9
|
-
* STEPS, IN ORDER (plan §3.2; `spec/abi-
|
|
9
|
+
* STEPS, IN ORDER (plan §3.2; `spec/abi-v2/sdk.json`'s `loader.refusals`
|
|
10
10
|
* names each reason):
|
|
11
11
|
*
|
|
12
12
|
* 1. glibc (Linux only; darwin skips it). BEFORE dlopen.
|
|
13
13
|
* 2. `dlopen(path, RTLD_NOW | RTLD_LOCAL)`, through `./libc.ts` (plan
|
|
14
14
|
* §3.3(b): the real fix for ffi-rs's own `RTLD_LAZY` open).
|
|
15
15
|
* 3. `chs_abi_version`: present (`dlsym`, plan §3.3(c)) and, once present,
|
|
16
|
-
* `===
|
|
16
|
+
* `=== ABI_VERSION` (2; a real call — only now safe through ffi-rs's own by-name
|
|
17
17
|
* `open`/`define`, plan §3.3(d), since step 2 already proved the image
|
|
18
18
|
* binds completely under `RTLD_NOW`).
|
|
19
19
|
* 4. `chs_build_info`: present, parses (ASCII, no duplicate keys at any
|
|
20
20
|
* nesting depth, `schema === 1`), and its `abi_fingerprint` matches
|
|
21
|
-
* this binding's own compiled-in `ABI_FINGERPRINT` byte for byte.
|
|
22
|
-
*
|
|
21
|
+
* this binding's own compiled-in `ABI_FINGERPRINT` byte for byte. While
|
|
22
|
+
* the description is unstable (`ABI_STABILITY`) the refusal carries rule
|
|
23
|
+
* r6's exact dev message (`./errors.ts`, `devFingerprintMessage`).
|
|
24
|
+
* 5. the nine `CROSS_CHECK` fields (`spec/abi-v2/sdk.json`) against
|
|
23
25
|
* `LoadInput.predicate`.
|
|
24
26
|
* 6. every OTHER described symbol, present (`dlsym` only — no call).
|
|
25
27
|
* 7. `chs_initialize(zone)`, then `chs_set_defaults(defaults)` when there are
|
|
@@ -66,7 +68,7 @@ export interface LoadInput extends ImageSetup {
|
|
|
66
68
|
readonly predicate: Predicate;
|
|
67
69
|
readonly platform: string;
|
|
68
70
|
}
|
|
69
|
-
/** One opened, verified ABI
|
|
71
|
+
/** One opened, verified ABI v2 image: the resolved raw table, its typed call wrappers, and the decoded build info. */
|
|
70
72
|
export declare class LoadedImage {
|
|
71
73
|
readonly path: string;
|
|
72
74
|
readonly raw: RawApi;
|
|
@@ -76,7 +78,7 @@ export declare class LoadedImage {
|
|
|
76
78
|
get version(): string;
|
|
77
79
|
}
|
|
78
80
|
/**
|
|
79
|
-
* Load, verify and open one ABI
|
|
81
|
+
* Load, verify and open one ABI v2 artifact (plan §3.2, steps 1-7). Returns
|
|
80
82
|
* the SAME `LoadedImage` for a path, a hardlink, a symlink or a second
|
|
81
83
|
* spelling of an already-loaded image: steps 2-4, 6 and 7 run once per image.
|
|
82
84
|
* An already-open image is still checked against every new signed statement a
|
|
@@ -84,7 +86,7 @@ export declare class LoadedImage {
|
|
|
84
86
|
* constant, which the first load already matched): a mismatch refuses that
|
|
85
87
|
* request and leaves the image open for the requests it did match.
|
|
86
88
|
*/
|
|
87
|
-
export declare function
|
|
89
|
+
export declare function openAbi2(input: LoadInput): LoadedImage;
|
|
88
90
|
/** `openUnverified`'s own gate, alone: a `UsageError` unless BOTH `allow` is true AND `CHTYPES_ALLOW_UNVERIFIED_LIBRARY=1` is set. The public layer asks it before an open is attempted, so the caller's misuse is told apart from a failed load. */
|
|
89
91
|
export declare function checkUnverifiedAllowed(path: string, allow: boolean): void;
|
|
90
92
|
/**
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/abi2/loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAIH,OAAO,EAAE,KAAK,SAAS,EAAmB,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAIvC,OAAO,EAAsB,KAAK,MAAM,EAAW,MAAM,UAAU,CAAC;AAEpE,2VAA2V;AAC3V,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3C;AAED,gGAAgG;AAChG,MAAM,WAAW,UAAU;IACzB,0FAA0F;IAC1F,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACtD;AAED,8JAA8J;AAC9J,MAAM,WAAW,SAAU,SAAQ,UAAU;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,sHAAsH;AACtH,qBAAa,WAAW;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAE9B,YAAY,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAK1D;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;CACF;AAsID;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,WAAW,CAkBtD;AA6BD,qPAAqP;AACrP,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAIzE;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,UAAU,GAAG,WAAW,CAa3G"}
|
|
@@ -1,25 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The ABI
|
|
2
|
+
* The ABI v2 loader (plan §3, steps 1-7; the 2.0.0-dev binding, public issue #511). Hand-written (the plan's "about 200
|
|
3
3
|
* lines per binding" FIRM piece); everything it reaches for — `rawDlopen`/
|
|
4
4
|
* `rawDlsym`/`glibcVersionString` (`./libc.ts`), `defineRawFunctions`/
|
|
5
5
|
* `rawCall` (`./raw.ts`), `DESCRIBED_SYMBOLS`/`SYMBOL`/`ABI_FINGERPRINT`/
|
|
6
6
|
* `CROSS_CHECK` (`./decls.gen.ts`) — is generated or generic, so this file
|
|
7
7
|
* never spells a `chs_` name itself.
|
|
8
8
|
*
|
|
9
|
-
* STEPS, IN ORDER (plan §3.2; `spec/abi-
|
|
9
|
+
* STEPS, IN ORDER (plan §3.2; `spec/abi-v2/sdk.json`'s `loader.refusals`
|
|
10
10
|
* names each reason):
|
|
11
11
|
*
|
|
12
12
|
* 1. glibc (Linux only; darwin skips it). BEFORE dlopen.
|
|
13
13
|
* 2. `dlopen(path, RTLD_NOW | RTLD_LOCAL)`, through `./libc.ts` (plan
|
|
14
14
|
* §3.3(b): the real fix for ffi-rs's own `RTLD_LAZY` open).
|
|
15
15
|
* 3. `chs_abi_version`: present (`dlsym`, plan §3.3(c)) and, once present,
|
|
16
|
-
* `===
|
|
16
|
+
* `=== ABI_VERSION` (2; a real call — only now safe through ffi-rs's own by-name
|
|
17
17
|
* `open`/`define`, plan §3.3(d), since step 2 already proved the image
|
|
18
18
|
* binds completely under `RTLD_NOW`).
|
|
19
19
|
* 4. `chs_build_info`: present, parses (ASCII, no duplicate keys at any
|
|
20
20
|
* nesting depth, `schema === 1`), and its `abi_fingerprint` matches
|
|
21
|
-
* this binding's own compiled-in `ABI_FINGERPRINT` byte for byte.
|
|
22
|
-
*
|
|
21
|
+
* this binding's own compiled-in `ABI_FINGERPRINT` byte for byte. While
|
|
22
|
+
* the description is unstable (`ABI_STABILITY`) the refusal carries rule
|
|
23
|
+
* r6's exact dev message (`./errors.ts`, `devFingerprintMessage`).
|
|
24
|
+
* 5. the nine `CROSS_CHECK` fields (`spec/abi-v2/sdk.json`) against
|
|
23
25
|
* `LoadInput.predicate`.
|
|
24
26
|
* 6. every OTHER described symbol, present (`dlsym` only — no call).
|
|
25
27
|
* 7. `chs_initialize(zone)`, then `chs_set_defaults(defaults)` when there are
|
|
@@ -40,11 +42,11 @@
|
|
|
40
42
|
import { realpathSync, statSync } from 'node:fs';
|
|
41
43
|
import { decodeBuildInfo } from './buildinfo.js';
|
|
42
44
|
import { Calls } from './calls.gen.js';
|
|
43
|
-
import { ABI_FINGERPRINT, CROSS_CHECK, DESCRIBED_SYMBOLS, SYMBOL } from './decls.gen.js';
|
|
45
|
+
import { ABI_FINGERPRINT, ABI_VERSION, CROSS_CHECK, DESCRIBED_SYMBOLS, SYMBOL } from './decls.gen.js';
|
|
44
46
|
import { ArtifactIncompatibleError, LoaderCorruptError, UsageError, usageError } from './errors.js';
|
|
45
47
|
import { compareDottedVersions, ffiOpen, glibcVersionString, lastDlError, rawDlopen, rawDlsym } from './libc.js';
|
|
46
48
|
import { defineRawFunctions, rawCall } from './raw.js';
|
|
47
|
-
/** One opened, verified ABI
|
|
49
|
+
/** One opened, verified ABI v2 image: the resolved raw table, its typed call wrappers, and the decoded build info. */
|
|
48
50
|
export class LoadedImage {
|
|
49
51
|
path;
|
|
50
52
|
raw;
|
|
@@ -145,9 +147,9 @@ function checkCrossFields(path, buildInfo, predicate) {
|
|
|
145
147
|
*/
|
|
146
148
|
function openAndCheck(path, key) {
|
|
147
149
|
const osHandle = openImage(path); // step 2
|
|
148
|
-
// step 3: chs_abi_version present, then (through ffi-rs, now safe) ===
|
|
150
|
+
// step 3: chs_abi_version present, then (through ffi-rs, now safe) === ABI_VERSION.
|
|
149
151
|
if (rawDlsym(osHandle, SYMBOL.ABI_VERSION) === null) {
|
|
150
|
-
refuseIncompatible(path, 'not_v1',
|
|
152
|
+
refuseIncompatible(path, 'not_v1', String(ABI_VERSION), '(the generation handshake is not exported)');
|
|
151
153
|
}
|
|
152
154
|
ffiOpen(key, path); // plan §3.3(d): only now, after RTLD_NOW already bound the image.
|
|
153
155
|
let raw = rawTables.get(key);
|
|
@@ -157,8 +159,8 @@ function openAndCheck(path, key) {
|
|
|
157
159
|
}
|
|
158
160
|
const abiVersionCall = rawCall(raw, SYMBOL.ABI_VERSION, []);
|
|
159
161
|
const abiVersion = abiVersionCall.outcome === 'value' ? Number(abiVersionCall.value) : Number.NaN;
|
|
160
|
-
if (abiVersion !==
|
|
161
|
-
refuseIncompatible(path, 'abi_version',
|
|
162
|
+
if (abiVersion !== ABI_VERSION)
|
|
163
|
+
refuseIncompatible(path, 'abi_version', String(ABI_VERSION), String(abiVersion));
|
|
162
164
|
// step 4: the build info present, decoded (malformed is corrupt), fingerprint matches.
|
|
163
165
|
if (rawDlsym(osHandle, SYMBOL.BUILD_INFO) === null) {
|
|
164
166
|
refuseIncompatible(path, `missing_symbol:${SYMBOL.BUILD_INFO}`, undefined, `(${SYMBOL.BUILD_INFO} is not exported)`);
|
|
@@ -182,7 +184,7 @@ function openAndCheck(path, key) {
|
|
|
182
184
|
return { raw, buildInfo };
|
|
183
185
|
}
|
|
184
186
|
/**
|
|
185
|
-
* Load, verify and open one ABI
|
|
187
|
+
* Load, verify and open one ABI v2 artifact (plan §3.2, steps 1-7). Returns
|
|
186
188
|
* the SAME `LoadedImage` for a path, a hardlink, a symlink or a second
|
|
187
189
|
* spelling of an already-loaded image: steps 2-4, 6 and 7 run once per image.
|
|
188
190
|
* An already-open image is still checked against every new signed statement a
|
|
@@ -190,7 +192,7 @@ function openAndCheck(path, key) {
|
|
|
190
192
|
* constant, which the first load already matched): a mismatch refuses that
|
|
191
193
|
* request and leaves the image open for the requests it did match.
|
|
192
194
|
*/
|
|
193
|
-
export function
|
|
195
|
+
export function openAbi2(input) {
|
|
194
196
|
const path = input.libraryPath;
|
|
195
197
|
const key = resolveImageKey(path);
|
|
196
198
|
const cached = loadedByKey.get(key);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/abi2/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The generic, data-driven call engine over the typed table `defineRawFunctions`
|
|
3
|
-
* builds for one opened ABI
|
|
3
|
+
* builds for one opened ABI v2 image (plan §3.3(d) happens in `./loader.ts`,
|
|
4
4
|
* which calls `./libc.ts`'s `ffiOpen` then this file's `defineRawFunctions`).
|
|
5
5
|
*
|
|
6
6
|
* This is the "invoke by name" dispatcher the plan asks of this emitter
|
|
@@ -95,7 +95,7 @@ export declare function rawCall(raw: RawApi, name: string, args: readonly unknow
|
|
|
95
95
|
export declare function asBuffer(bytes: Uint8Array): Buffer;
|
|
96
96
|
/**
|
|
97
97
|
* The outputs of a status call that came back OK; anything else throws the
|
|
98
|
-
* class `spec/abi-
|
|
98
|
+
* class `spec/abi-v2/sdk.json`'s status table gives (`./errmap.gen.ts`). A
|
|
99
99
|
* non-OK status with no error object is the library's bug, never a silent
|
|
100
100
|
* success.
|
|
101
101
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raw.d.ts","sourceRoot":"","sources":["../../src/
|
|
1
|
+
{"version":3,"file":"raw.d.ts","sourceRoot":"","sources":["../../src/abi2/raw.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAOL,KAAK,UAAU,EAGhB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAAE,KAAK,eAAe,EAAiB,MAAM,aAAa,CAAC;AAiElE,KAAK,KAAK,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;AAC1C,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAErD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAM7D;AAwBD;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,EAAE,UAQxB,CAAC;AAWL,mLAAmL;AACnL,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM,CAMjE;AAED,0OAA0O;AAC1O,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,IAAI,CAEpF;AAUD,MAAM,MAAM,SAAS,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAA;CAAE,CAAC;AAE5E,MAAM,MAAM,aAAa,GACrB;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;CAAE,GACrE;IAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;CAAE,GAC1D;IACE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IAC5D,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;CACxC,CAAC;AAiBN;;;;;;;;;;;;GAYG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,OAAO,EAAE,GAAG,aAAa,CA2E1F;AAED,uEAAuE;AACvE,wBAAgB,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAElD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAO/F"}
|