@wavehouse/chtypes 1.1.0 → 2.0.0-dev.0
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 +4 -4
- package/dist/{abi1 → abi2}/calls.gen.d.ts.map +1 -1
- package/dist/{abi1 → abi2}/calls.gen.js +1 -1
- package/dist/{abi1 → abi2}/calls.gen.js.map +1 -1
- package/dist/{abi1 → abi2}/decls.gen.d.ts +12 -6
- package/dist/{abi1 → abi2}/decls.gen.d.ts.map +1 -1
- package/dist/{abi1 → abi2}/decls.gen.js +15 -9
- 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.js +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/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
|
@@ -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:8ec0c6941f000aa07bfb9fbfef20205d3ee0a588833856bd12270ba42912bfb3) — 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":"AAAA,wLAAwL;AACxL;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAmB,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEhF,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC;AAErD,MAAM,QAAQ,GAAG,mBAAmB,CAAC;AAErC,SAAS,QAAQ;IACf,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAAE,OAAO,4BAA4B,CAAC;IACvE,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;QAAE,OAAO,WAAW,CAAC;IACrD,MAAM,IAAI,KAAK,CAAC,sCAAsC,OAAO,CAAC,QAAQ,8CAA8C,CAAC,CAAC;AACxH,CAAC;AAED,IAAI,MAAM,GAAG,KAAK,CAAC;AACnB,SAAS,UAAU;IACjB,IAAI,MAAM;QAAE,OAAO;IACnB,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC9C,MAAM,GAAG,IAAI,CAAC;AAChB,CAAC;AAUD,IAAI,GAAG,GAAmB,IAAI,CAAC;AAC/B,SAAS,IAAI;IACX,UAAU,EAAE,CAAC;IACb,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,GAAG,GAAG,MAAM,CAAC;YACX,MAAM,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;YACxE,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE;YAC5E,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;YACjE,oBAAoB,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;YAC9E,MAAM,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAE;SACpE,CAAuB,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,MAAM,CAAC,IAAY,EAAE,KAAa;IAChD,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IACvC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,6GAA6G;AAC7G,MAAM,UAAU,aAAa,CAAC,MAAkB,EAAE,IAAY;IAC5D,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IACvC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,wHAAwH;AACxH,MAAM,UAAU,OAAO;IACrB,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7B,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,iHAAiH;AACjH,MAAM,UAAU,iBAAiB;IAC/B,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;QAC1C,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,2GAA2G;AAC3G,MAAM,UAAU,aAAa,CAAC,GAAe;IAC3C,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -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"}
|
|
@@ -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
|
|
@@ -44,7 +44,7 @@ function scalarDataType(type) {
|
|
|
44
44
|
case 'u8ptr_const':
|
|
45
45
|
return External;
|
|
46
46
|
default:
|
|
47
|
-
throw new Error(`chtypes
|
|
47
|
+
throw new Error(`chtypes abi2: raw.ts does not know the ffi-rs type for scalar ${String(type)}`);
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
function retDataType(spec) {
|
|
@@ -60,7 +60,7 @@ function retDataType(spec) {
|
|
|
60
60
|
case 'scalar':
|
|
61
61
|
return scalarDataType(spec.returns.type);
|
|
62
62
|
default:
|
|
63
|
-
throw new Error(`chtypes
|
|
63
|
+
throw new Error(`chtypes abi2: unknown return kind ${spec.returns.kind}`);
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
function paramDataTypes(p) {
|
|
@@ -77,10 +77,10 @@ function paramDataTypes(p) {
|
|
|
77
77
|
return [External];
|
|
78
78
|
case 'out_scalar':
|
|
79
79
|
// Reserved: no FIRM or provisional function uses it today
|
|
80
|
-
// (spec/abi-
|
|
81
|
-
throw new Error('chtypes
|
|
80
|
+
// (spec/abi-v2/abi.json); nothing to marshal yet.
|
|
81
|
+
throw new Error('chtypes abi2: out_scalar has no described use yet');
|
|
82
82
|
default:
|
|
83
|
-
throw new Error(`chtypes
|
|
83
|
+
throw new Error(`chtypes abi2: unknown param kind ${p.kind}`);
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
/**
|
|
@@ -137,17 +137,17 @@ export const NULL_EXTERNAL = (() => {
|
|
|
137
137
|
const p = readExternalSlot(slot);
|
|
138
138
|
dropSlot(slot);
|
|
139
139
|
if (!isNullPointer(p)) {
|
|
140
|
-
throw new Error('chtypes
|
|
140
|
+
throw new Error('chtypes abi2: internal — the null External constant did not come back null');
|
|
141
141
|
}
|
|
142
142
|
return p;
|
|
143
143
|
})();
|
|
144
144
|
// --------------------------------------------------------------- buf reading
|
|
145
145
|
function rawFn(raw, chsName) {
|
|
146
146
|
if (FUNCTION_SPECS[chsName] === undefined)
|
|
147
|
-
throw new Error(`chtypes
|
|
147
|
+
throw new Error(`chtypes abi2: ${chsName} is not a described symbol`);
|
|
148
148
|
const fn = raw[chsName];
|
|
149
149
|
if (fn === undefined)
|
|
150
|
-
throw new Error(`chtypes
|
|
150
|
+
throw new Error(`chtypes abi2: ${chsName} was not declared on this image`);
|
|
151
151
|
return fn;
|
|
152
152
|
}
|
|
153
153
|
/** Read `buf`'s bytes (via the raw `chs_buf_data`/`chs_buf_len` accessors) into an owned copy, then free `buf`. Returns an empty Buffer for a null handle (never dereferenced). */
|
|
@@ -199,10 +199,10 @@ function decodeError(raw, status, errSlot) {
|
|
|
199
199
|
export function rawCall(raw, name, args) {
|
|
200
200
|
const spec = FUNCTION_SPECS[name];
|
|
201
201
|
if (spec === undefined)
|
|
202
|
-
throw new Error(`chtypes
|
|
202
|
+
throw new Error(`chtypes abi2: no such described function ${name}`);
|
|
203
203
|
const inputs = inputParams(spec);
|
|
204
204
|
if (inputs.length !== args.length) {
|
|
205
|
-
throw new Error(`chtypes
|
|
205
|
+
throw new Error(`chtypes abi2: ${name} takes ${inputs.length} input argument(s), got ${args.length}`);
|
|
206
206
|
}
|
|
207
207
|
const paramsValue = [];
|
|
208
208
|
const outSlots = [];
|
|
@@ -256,7 +256,7 @@ export function rawCall(raw, name, args) {
|
|
|
256
256
|
return { outcome: 'value', value: readStaticCString(result) };
|
|
257
257
|
}
|
|
258
258
|
if (spec.returns.type === 'u8ptr_const') {
|
|
259
|
-
throw new Error(`chtypes
|
|
259
|
+
throw new Error(`chtypes abi2: ${name} returns a borrowed u8ptr_const (its length lives in a different ` +
|
|
260
260
|
'described call); call it directly through the raw table, not through rawCall');
|
|
261
261
|
}
|
|
262
262
|
return { outcome: 'value', value: Number(result) };
|
|
@@ -265,7 +265,7 @@ export function rawCall(raw, name, args) {
|
|
|
265
265
|
case 'handle':
|
|
266
266
|
return { outcome: 'handle', handle: { kind: spec.returns.type, ptr: result } };
|
|
267
267
|
default:
|
|
268
|
-
throw new Error(`chtypes
|
|
268
|
+
throw new Error(`chtypes abi2: unknown return kind ${spec.returns.kind}`);
|
|
269
269
|
}
|
|
270
270
|
}
|
|
271
271
|
finally {
|
|
@@ -279,7 +279,7 @@ export function asBuffer(bytes) {
|
|
|
279
279
|
}
|
|
280
280
|
/**
|
|
281
281
|
* The outputs of a status call that came back OK; anything else throws the
|
|
282
|
-
* class `spec/abi-
|
|
282
|
+
* class `spec/abi-v2/sdk.json`'s status table gives (`./errmap.gen.ts`). A
|
|
283
283
|
* non-OK status with no error object is the library's bug, never a silent
|
|
284
284
|
* success.
|
|
285
285
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raw.js","sourceRoot":"","sources":["../../src/
|
|
1
|
+
{"version":3,"file":"raw.js","sourceRoot":"","sources":["../../src/abi2/raw.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strictjson.d.ts","sourceRoot":"","sources":["../../src/
|
|
1
|
+
{"version":3,"file":"strictjson.d.ts","sourceRoot":"","sources":["../../src/abi2/strictjson.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,6CAA6C;AAC7C,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAErB,YAAY,GAAG,EAAE,MAAM,EAItB;CACF;AAED,6TAA6T;AAC7T,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAyC7D;AAED,uGAAuG;AACvG,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIrD;AAED,0CAA0C;AAC1C,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKjD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strictjson.js","sourceRoot":"","sources":["../../src/
|
|
1
|
+
{"version":3,"file":"strictjson.js","sourceRoot":"","sources":["../../src/abi2/strictjson.ts"],"names":[],"mappings":"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"}
|