@cmmd-center/forge 0.13.5 → 0.13.7

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.
Files changed (78) hide show
  1. package/dist/{BunHttpServer-DKvSpNd1.cjs → BunHttpServer-C7-1JJ7b.cjs} +4 -4
  2. package/dist/{BunHttpServer-CDh4Vioe.mjs → BunHttpServer-CVPGkizx.mjs} +4 -4
  3. package/dist/{BunServices-D6PAheqS.mjs → BunServices-CPrZSIfE.mjs} +2 -2
  4. package/dist/{BunServices-DDh7Whyx.cjs → BunServices-Dl-3897e.cjs} +2 -2
  5. package/dist/{Cache-BVilO50s.mjs → Cache-C9cwdCDt.mjs} +2 -2
  6. package/dist/{Cache-DCF22Dfk.cjs → Cache-Cf3ARNaS.cjs} +2 -2
  7. package/dist/{HttpServer-ClsGgAq1.mjs → HttpServer-COaBeM7-.mjs} +2 -2
  8. package/dist/{HttpServer-D1gSU7NX.cjs → HttpServer-CggZzScj.cjs} +3 -3
  9. package/dist/{NodeHttpServer-Dfc7nSMq.cjs → NodeHttpServer-Bi339XFk.cjs} +5 -5
  10. package/dist/{NodeHttpServer-DT0TF8s4.mjs → NodeHttpServer-UQnvZnmu.mjs} +5 -5
  11. package/dist/{NodePTY-loxi8Vku.mjs → NodePTY-B1u6RHXk.mjs} +2 -2
  12. package/dist/{NodePTY-S4tPEwZc.cjs → NodePTY-UOaRyQsj.cjs} +2 -2
  13. package/dist/{NodeServices-Cb0rXFb2.cjs → NodeServices-CKFIZVu5.cjs} +2 -2
  14. package/dist/{NodeServices-DE8jhdcU.cjs → NodeServices-R0BZsZ72.cjs} +1 -1
  15. package/dist/{NodeServices-BahzLhbo.mjs → NodeServices-z1Ac4lEO.mjs} +2 -2
  16. package/dist/{NodeSqliteClient-DqFjB3u_.mjs → NodeSqliteClient-BrzqdOsF.mjs} +4 -4
  17. package/dist/{NodeSqliteClient-qjBWAOGq.cjs → NodeSqliteClient-CyJvo9y9.cjs} +4 -4
  18. package/dist/{NodeTerminal-rYbifme7.cjs → NodeTerminal-B89MobLp.cjs} +2 -2
  19. package/dist/{NodeTerminal-BPw7bktz.mjs → NodeTerminal-pYVVRTiD.mjs} +2 -2
  20. package/dist/{Path-CGCc_dDx.cjs → Path-BunGrE8F.cjs} +72 -1
  21. package/dist/{Path-C851t6sC.mjs → Path-evOm-H0Q.mjs} +61 -2
  22. package/dist/{SqlError-CzB6p9lL.cjs → SqlError-1wIMjXAf.cjs} +2 -2
  23. package/dist/{SqlError-3aqibZrj.mjs → SqlError-CezTFGvr.mjs} +2 -2
  24. package/dist/{SqliteClient-DTWCGkrj.mjs → SqliteClient-D3Yd3ZHn.mjs} +3 -3
  25. package/dist/{SqliteClient-Cq1peWN1.cjs → SqliteClient-bo7iui1t.cjs} +3 -3
  26. package/dist/bin.cjs +4819 -3952
  27. package/dist/bin.mjs +4357 -3496
  28. package/dist/client/assets/{CanvasPanel-BwSV27Ct.js → CanvasPanel-C21OO2qi.js} +2 -2
  29. package/dist/client/assets/{CompositeItem-CZk3X-ud.js → CompositeItem-naFGUtSL.js} +2 -2
  30. package/dist/client/assets/{DiffPanel-BeCVuoWI.js → DiffPanel-D_YC838v.js} +3 -3
  31. package/dist/client/assets/{DiffPanel.logic-DUE8JeYc.js → DiffPanel.logic-Bqk_6nE1.js} +2 -2
  32. package/dist/client/assets/DiffPanelShell-D1KMJc9z.js +2532 -0
  33. package/dist/client/assets/{DiffWorkerPoolProvider-Co6F91_V.js → DiffWorkerPoolProvider-B5tF5UEc.js} +10 -10
  34. package/dist/client/assets/PullRequestCodePanel-ClD3ZXbi.js +5 -0
  35. package/dist/client/assets/Virtualizer-cvcMb_IQ.js +2 -0
  36. package/dist/client/assets/{canvasStateStore-5DH2Z-PG.js → canvasStateStore-CpNOSHBt.js} +2 -2
  37. package/dist/client/assets/cmmdAuthRedirect-DdH7K490.js +2 -0
  38. package/dist/client/assets/index-BE83u7Db.css +1 -0
  39. package/dist/client/assets/index-yLc4LtMp.js +153 -0
  40. package/dist/client/assets/{popover-Dxp_1Sz0.js → popover-BajtiGgk.js} +2 -2
  41. package/dist/client/assets/src-D6fBWY6U.js +3 -0
  42. package/dist/client/assets/{toggle-B-GE6jq_.js → toggle-BRNCUuRT.js} +2 -2
  43. package/dist/client/index.html +11 -11
  44. package/dist/forge-build.json +1 -1
  45. package/dist/node_modules/@ff-labs/fff-bin-linux-x64-gnu/libfff_c.so +0 -0
  46. package/dist/node_modules/@ff-labs/fff-bin-linux-x64-gnu/package.json +27 -0
  47. package/dist/node_modules/@ff-labs/fff-node/.bun-tag-689ffe3747e13d19 +0 -0
  48. package/dist/node_modules/@ff-labs/fff-node/README.md +126 -0
  49. package/dist/node_modules/@ff-labs/fff-node/dist/src/binary.d.ts +22 -0
  50. package/dist/node_modules/@ff-labs/fff-node/dist/src/binary.js +144 -0
  51. package/dist/node_modules/@ff-labs/fff-node/dist/src/fff-api.d.ts +581 -0
  52. package/dist/node_modules/@ff-labs/fff-node/dist/src/fff-api.js +24 -0
  53. package/dist/node_modules/@ff-labs/fff-node/dist/src/ffi.d.ts +137 -0
  54. package/dist/node_modules/@ff-labs/fff-node/dist/src/ffi.js +1191 -0
  55. package/dist/node_modules/@ff-labs/fff-node/dist/src/finder.d.ts +353 -0
  56. package/dist/node_modules/@ff-labs/fff-node/dist/src/finder.js +488 -0
  57. package/dist/node_modules/@ff-labs/fff-node/dist/src/index.d.ts +47 -0
  58. package/dist/node_modules/@ff-labs/fff-node/dist/src/index.js +47 -0
  59. package/dist/node_modules/@ff-labs/fff-node/dist/src/platform.d.ts +27 -0
  60. package/dist/node_modules/@ff-labs/fff-node/dist/src/platform.js +120 -0
  61. package/dist/node_modules/@ff-labs/fff-node/package.json +76 -0
  62. package/dist/node_modules/@yuuang/ffi-rs-linux-x64-gnu/README.md +794 -0
  63. package/dist/node_modules/@yuuang/ffi-rs-linux-x64-gnu/ffi-rs.linux-x64-gnu.node +0 -0
  64. package/dist/node_modules/@yuuang/ffi-rs-linux-x64-gnu/package.json +21 -0
  65. package/dist/node_modules/ffi-rs/LICENSE +21 -0
  66. package/dist/node_modules/ffi-rs/README.md +794 -0
  67. package/dist/node_modules/ffi-rs/index.d.ts +222 -0
  68. package/dist/node_modules/ffi-rs/index.js +380 -0
  69. package/dist/node_modules/ffi-rs/package.json +76 -0
  70. package/dist/{open-FIgTDosf.mjs → open-D8mGyWmt.mjs} +3 -3
  71. package/package.json +2 -1
  72. package/dist/client/assets/DiffPanelShell-BtlUvofR.js +0 -2532
  73. package/dist/client/assets/PullRequestCodePanel-BJZt8VNz.js +0 -5
  74. package/dist/client/assets/cmmdAuthRedirect-D68LO-sw.js +0 -2
  75. package/dist/client/assets/diffTargetResolution-CTZU_fcs.js +0 -2
  76. package/dist/client/assets/index-CiFHhuWE.js +0 -153
  77. package/dist/client/assets/index-DivaIsZ4.css +0 -1
  78. package/dist/client/assets/src-n5cTLVWV.js +0 -3
@@ -0,0 +1,222 @@
1
+
2
+ interface RawPointer { }
3
+
4
+ export interface JsExternal {
5
+ _externalDataPlaceholder: RawPointer;
6
+ }
7
+
8
+ export enum DataType {
9
+ /**
10
+ UTF-16 String, equivalent to char*
11
+ */
12
+ String = 0,
13
+ /**
14
+ UTF-16 String, equivalent to wchar*
15
+ */
16
+ WString = 15,
17
+ I32 = 1,
18
+ Double = 2,
19
+ /**
20
+ * denotes ordinary i32 number array instead of Uint32Array
21
+ */
22
+ I32Array = 3,
23
+ StringArray = 4,
24
+ /**
25
+ denotes f64 array
26
+ */
27
+ DoubleArray = 5,
28
+ Boolean = 6,
29
+ /**
30
+ equal with undefined
31
+ */
32
+ Void = 7,
33
+ I64 = 8,
34
+ U8 = 9,
35
+ /**
36
+ Equivanlent to Buffer
37
+ */
38
+ U8Array = 10,
39
+ /**
40
+ A type that wrap native pointer
41
+ */
42
+ External = 11,
43
+ U64 = 12,
44
+ FloatArray = 13,
45
+ Float = 14,
46
+ /**
47
+ As params will be transformed to i64, as return value will be created from i64
48
+ */
49
+ BigInt = 16,
50
+ I16 = 17,
51
+ StructArray = 18,
52
+ I16Array = 19,
53
+ U32 = 20,
54
+ StackStruct = 999, // reserve keyword
55
+ StackArray = 996,
56
+ Function = 998,
57
+ Array = 997,
58
+ }
59
+
60
+ type DataTypeToType<T> = T extends DataType.String
61
+ ? string
62
+ : T extends DataType.WString
63
+ ? string
64
+ : T extends DataType.U8
65
+ ? number
66
+ : T extends DataType.I32
67
+ ? number
68
+ : T extends DataType.I64
69
+ ? number
70
+ : T extends DataType.BigInt
71
+ ? BigInt
72
+ : T extends DataType.U64
73
+ ? number
74
+ : T extends DataType.U32
75
+ ? number
76
+ : T extends DataType.Double
77
+ ? number
78
+ : T extends DataType.External
79
+ ? JsExternal
80
+ : T extends DataType.U8Array
81
+ ? number[]
82
+ : T extends DataType.I16Array
83
+ ? number[]
84
+ : T extends DataType.I32Array
85
+ ? number[]
86
+ : T extends DataType.StringArray
87
+ ? string[]
88
+ : T extends DataType.DoubleArray
89
+ ? number[]
90
+ : T extends DataType.FloatArray
91
+ ? number[]
92
+ : T extends DataType.Boolean
93
+ ? boolean
94
+ : T extends DataType.Void
95
+ ? undefined
96
+ : never;
97
+
98
+ export enum FFITypeTag {
99
+ StackStruct = DataType.StackStruct,
100
+ StackArray = DataType.StackArray,
101
+ }
102
+
103
+ export interface ArrayConstructorOptions {
104
+ type: DataType;
105
+ length: number;
106
+ ffiTypeTag?: FFITypeTag;
107
+ dynamicArray?: boolean
108
+ structItemType?: RecordFieldType
109
+ }
110
+
111
+ export interface FuncConstructorOptions {
112
+ paramsType: FieldType[];
113
+ retType: FieldType;
114
+ needFree?: boolean
115
+ // Default:false, whether or not free function call params memory automatically which are allocated in c side
116
+ freeCFuncParamsMemory?: boolean
117
+ }
118
+
119
+ export function arrayConstructor(options: ArrayConstructorOptions): ArrayConstructorOptions;
120
+
121
+ export function funcConstructor(options: FuncConstructorOptions): FuncConstructorOptions;
122
+
123
+ export interface OpenParams {
124
+ library: string;
125
+ path: string;
126
+ }
127
+
128
+ export function open(params: OpenParams): void;
129
+ export function close(library: string): void;
130
+
131
+ export function createPointer(params: {
132
+ paramsType: FieldType[];
133
+ paramsValue: unknown[];
134
+ }): JsExternal[]
135
+
136
+ export enum PointerType {
137
+ RsPointer = 0,
138
+ CPointer = 1
139
+ }
140
+
141
+ export function freePointer(params: {
142
+ paramsType: FieldType[];
143
+ paramsValue: JsExternal[];
144
+ pointerType: PointerType
145
+ }): void
146
+
147
+ export function restorePointer<T>(params: {
148
+ retType: FieldType[];
149
+ paramsValue: JsExternal[];
150
+ }): DataTypeToType<T>[]
151
+
152
+ export function unwrapPointer(params: JsExternal[]): JsExternal[]
153
+
154
+ export function wrapPointer(params: JsExternal[]): JsExternal[]
155
+
156
+ export function isNullPointer(params: JsExternal): boolean
157
+
158
+ /**
159
+ * Wrap an existing native pointer into a Node.js `Buffer` **without copying**.
160
+ *
161
+ * The returned Buffer shares the same memory as `external`, so reads/writes on
162
+ * either side are immediately visible on the other — the zero-copy equivalent
163
+ * of ffi-napi's `ref.reinterpret`.
164
+ *
165
+ * `external` is the pointer to wrap (a `DataType.External` returned from `load`,
166
+ * or any `JsExternal` from `createPointer`/`unwrapPointer`/`wrapPointer`).
167
+ * `length` is the number of bytes to expose.
168
+ *
169
+ * ffi-rs does NOT free the underlying memory when the Buffer is garbage
170
+ * collected; the caller owns the pointer's lifetime (e.g. a region returned by
171
+ * `mmap` must stay mapped until you are done with the Buffer and call `munmap`
172
+ * yourself). On runtimes that forbid external buffers (e.g. Electron) this
173
+ * silently falls back to copying the data.
174
+ */
175
+ export function createExternalBuffer(external: JsExternal, length: number): Buffer
176
+
177
+ type ResultWithErrno<T, E = undefined> = E extends true
178
+ ? { value: T; errnoCode: number; errnoMessage: string }
179
+ : T;
180
+
181
+ type ResultWithPromise<T, P = undefined> = P extends true
182
+ ? Promise<T>
183
+ : T;
184
+
185
+ export type FieldType =
186
+ | DataType
187
+ | ArrayConstructorOptions
188
+ | FuncConstructorOptions
189
+ | RecordFieldType
190
+
191
+ interface RecordFieldType extends Record<string, FieldType> { }
192
+
193
+ type FieldTypeToType<T> = T extends DataType
194
+ ? DataTypeToType<T>
195
+ : T extends ArrayConstructorOptions
196
+ ? DataTypeToType<T['type']>
197
+ : T extends RecordFieldType
198
+ ? { [K in keyof T]: FieldTypeToType<T[K]> }
199
+ : never;
200
+
201
+ export interface FFIParams<T, E = undefined, R = undefined> {
202
+ library: string;
203
+ funcName: string;
204
+ retType: T;
205
+ paramsType: FieldType[];
206
+ paramsValue: unknown[];
207
+ // whether need output errno
208
+ errno?: E
209
+ runInNewThread?: R
210
+ // Default:false, whether or not need to free the result of return value memory automatically
211
+ freeResultMemory?: boolean
212
+ }
213
+
214
+ export function load<T extends FieldType, E = undefined, R extends boolean | undefined = undefined>(
215
+ params: FFIParams<T, E, R>
216
+ ): R extends true ? Promise<ResultWithErrno<FieldTypeToType<T>, E>> : ResultWithErrno<FieldTypeToType<T>, E>
217
+
218
+ type FuncObj<T, E = undefined, R = undefined> = Record<string, Omit<FFIParams<T, E, R>, 'paramsValue' | 'funcName'>>
219
+
220
+ export function define<T extends FuncObj<FieldType, boolean | undefined, boolean | undefined>>(funcs: T): {
221
+ [K in keyof T]: (paramsValue: unknown[]) => ResultWithPromise<ResultWithErrno<FieldTypeToType<T[K]['retType']>, T[K]['errno']>, T[K]['runInNewThread']>;
222
+ }
@@ -0,0 +1,380 @@
1
+ const { existsSync, readFileSync } = require('fs')
2
+ const { join } = require('path')
3
+
4
+ const { platform, arch } = process
5
+
6
+ let nativeBinding = null
7
+ let localFileExisted = false
8
+ let loadError = null
9
+
10
+ function isMusl() {
11
+ // For Node 10
12
+ if (!process.report || typeof process.report.getReport !== 'function') {
13
+ try {
14
+ const lddPath = require('child_process').execSync('which ldd').toString().trim()
15
+ return readFileSync(lddPath, 'utf8').includes('musl')
16
+ } catch (e) {
17
+ return true
18
+ }
19
+ } else {
20
+ const { glibcVersionRuntime } = process.report.getReport().header
21
+ return !glibcVersionRuntime
22
+ }
23
+ }
24
+
25
+ switch (platform) {
26
+ case 'android':
27
+ switch (arch) {
28
+ case 'arm64':
29
+ localFileExisted = existsSync(join(__dirname, 'ffi-rs.android-arm64.node'))
30
+ try {
31
+ if (localFileExisted) {
32
+ nativeBinding = require('./ffi-rs.android-arm64.node')
33
+ } else {
34
+ nativeBinding = require('@yuuang/ffi-rs-android-arm64')
35
+ }
36
+ } catch (e) {
37
+ loadError = e
38
+ }
39
+ break
40
+ case 'arm':
41
+ localFileExisted = existsSync(join(__dirname, 'ffi-rs.android-arm-eabi.node'))
42
+ try {
43
+ if (localFileExisted) {
44
+ nativeBinding = require('./ffi-rs.android-arm-eabi.node')
45
+ } else {
46
+ nativeBinding = require('@yuuang/ffi-rs-android-arm-eabi')
47
+ }
48
+ } catch (e) {
49
+ loadError = e
50
+ }
51
+ break
52
+ default:
53
+ throw new Error(`Unsupported architecture on Android ${arch}`)
54
+ }
55
+ break
56
+ case 'win32':
57
+ switch (arch) {
58
+ case 'x64':
59
+ localFileExisted = existsSync(
60
+ join(__dirname, 'ffi-rs.win32-x64-msvc.node')
61
+ )
62
+ try {
63
+ if (localFileExisted) {
64
+ nativeBinding = require('./ffi-rs.win32-x64-msvc.node')
65
+ } else {
66
+ nativeBinding = require('@yuuang/ffi-rs-win32-x64-msvc')
67
+ }
68
+ } catch (e) {
69
+ loadError = e
70
+ }
71
+ break
72
+ case 'ia32':
73
+ localFileExisted = existsSync(
74
+ join(__dirname, 'ffi-rs.win32-ia32-msvc.node')
75
+ )
76
+ try {
77
+ if (localFileExisted) {
78
+ nativeBinding = require('./ffi-rs.win32-ia32-msvc.node')
79
+ } else {
80
+ nativeBinding = require('@yuuang/ffi-rs-win32-ia32-msvc')
81
+ }
82
+ } catch (e) {
83
+ loadError = e
84
+ }
85
+ break
86
+ case 'arm64':
87
+ localFileExisted = existsSync(
88
+ join(__dirname, 'ffi-rs.win32-arm64-msvc.node')
89
+ )
90
+ try {
91
+ if (localFileExisted) {
92
+ nativeBinding = require('./ffi-rs.win32-arm64-msvc.node')
93
+ } else {
94
+ nativeBinding = require('@yuuang/ffi-rs-win32-arm64-msvc')
95
+ }
96
+ } catch (e) {
97
+ loadError = e
98
+ }
99
+ break
100
+ default:
101
+ throw new Error(`Unsupported architecture on Windows: ${arch}`)
102
+ }
103
+ break
104
+ case 'darwin':
105
+ localFileExisted = existsSync(join(__dirname, 'ffi-rs.darwin-universal.node'))
106
+ try {
107
+ if (localFileExisted) {
108
+ nativeBinding = require('./ffi-rs.darwin-universal.node')
109
+ } else {
110
+ nativeBinding = require('@yuuang/ffi-rs-darwin-universal')
111
+ }
112
+ break
113
+ } catch { }
114
+ switch (arch) {
115
+ case 'x64':
116
+ localFileExisted = existsSync(join(__dirname, 'ffi-rs.darwin-x64.node'))
117
+ try {
118
+ if (localFileExisted) {
119
+ nativeBinding = require('./ffi-rs.darwin-x64.node')
120
+ } else {
121
+ nativeBinding = require('@yuuang/ffi-rs-darwin-x64')
122
+ }
123
+ } catch (e) {
124
+ loadError = e
125
+ }
126
+ break
127
+ case 'arm64':
128
+ localFileExisted = existsSync(
129
+ join(__dirname, 'ffi-rs.darwin-arm64.node')
130
+ )
131
+ try {
132
+ if (localFileExisted) {
133
+ nativeBinding = require('./ffi-rs.darwin-arm64.node')
134
+ } else {
135
+ nativeBinding = require('@yuuang/ffi-rs-darwin-arm64')
136
+ }
137
+ } catch (e) {
138
+ loadError = e
139
+ }
140
+ break
141
+ default:
142
+ throw new Error(`Unsupported architecture on macOS: ${arch}`)
143
+ }
144
+ break
145
+ case 'freebsd':
146
+ if (arch !== 'x64') {
147
+ throw new Error(`Unsupported architecture on FreeBSD: ${arch}`)
148
+ }
149
+ localFileExisted = existsSync(join(__dirname, 'ffi-rs.freebsd-x64.node'))
150
+ try {
151
+ if (localFileExisted) {
152
+ nativeBinding = require('./ffi-rs.freebsd-x64.node')
153
+ } else {
154
+ nativeBinding = require('@yuuang/ffi-rs-freebsd-x64')
155
+ }
156
+ } catch (e) {
157
+ loadError = e
158
+ }
159
+ break
160
+ case 'linux':
161
+ switch (arch) {
162
+ case 'x64':
163
+ if (isMusl()) {
164
+ localFileExisted = existsSync(
165
+ join(__dirname, 'ffi-rs.linux-x64-musl.node')
166
+ )
167
+ try {
168
+ if (localFileExisted) {
169
+ nativeBinding = require('./ffi-rs.linux-x64-musl.node')
170
+ } else {
171
+ nativeBinding = require('@yuuang/ffi-rs-linux-x64-musl')
172
+ }
173
+ } catch (e) {
174
+ loadError = e
175
+ }
176
+ } else {
177
+ localFileExisted = existsSync(
178
+ join(__dirname, 'ffi-rs.linux-x64-gnu.node')
179
+ )
180
+ try {
181
+ if (localFileExisted) {
182
+ nativeBinding = require('./ffi-rs.linux-x64-gnu.node')
183
+ } else {
184
+ nativeBinding = require('@yuuang/ffi-rs-linux-x64-gnu')
185
+ }
186
+ } catch (e) {
187
+ loadError = e
188
+ }
189
+ }
190
+ break
191
+ case 'arm64':
192
+ if (isMusl()) {
193
+ localFileExisted = existsSync(
194
+ join(__dirname, 'ffi-rs.linux-arm64-musl.node')
195
+ )
196
+ try {
197
+ if (localFileExisted) {
198
+ nativeBinding = require('./ffi-rs.linux-arm64-musl.node')
199
+ } else {
200
+ nativeBinding = require('@yuuang/ffi-rs-linux-arm64-musl')
201
+ }
202
+ } catch (e) {
203
+ loadError = e
204
+ }
205
+ } else {
206
+ localFileExisted = existsSync(
207
+ join(__dirname, 'ffi-rs.linux-arm64-gnu.node')
208
+ )
209
+ try {
210
+ if (localFileExisted) {
211
+ nativeBinding = require('./ffi-rs.linux-arm64-gnu.node')
212
+ } else {
213
+ nativeBinding = require('@yuuang/ffi-rs-linux-arm64-gnu')
214
+ }
215
+ } catch (e) {
216
+ loadError = e
217
+ }
218
+ }
219
+ break
220
+ case 'arm':
221
+ if (isMusl()) {
222
+ localFileExisted = existsSync(
223
+ join(__dirname, 'ffi-rs.linux-arm-musleabihf.node')
224
+ )
225
+ try {
226
+ if (localFileExisted) {
227
+ nativeBinding = require('./ffi-rs.linux-arm-musleabihf.node')
228
+ } else {
229
+ nativeBinding = require('@yuuang/ffi-rs-linux-arm-musleabihf')
230
+ }
231
+ } catch (e) {
232
+ loadError = e
233
+ }
234
+ } else {
235
+ localFileExisted = existsSync(
236
+ join(__dirname, 'ffi-rs.linux-arm-gnueabihf.node')
237
+ )
238
+ try {
239
+ if (localFileExisted) {
240
+ nativeBinding = require('./ffi-rs.linux-arm-gnueabihf.node')
241
+ } else {
242
+ nativeBinding = require('@yuuang/ffi-rs-linux-arm-gnueabihf')
243
+ }
244
+ } catch (e) {
245
+ loadError = e
246
+ }
247
+ }
248
+ break
249
+ case 'riscv64':
250
+ if (isMusl()) {
251
+ localFileExisted = existsSync(
252
+ join(__dirname, 'ffi-rs.linux-riscv64-musl.node')
253
+ )
254
+ try {
255
+ if (localFileExisted) {
256
+ nativeBinding = require('./ffi-rs.linux-riscv64-musl.node')
257
+ } else {
258
+ nativeBinding = require('@yuuang/ffi-rs-linux-riscv64-musl')
259
+ }
260
+ } catch (e) {
261
+ loadError = e
262
+ }
263
+ } else {
264
+ localFileExisted = existsSync(
265
+ join(__dirname, 'ffi-rs.linux-riscv64-gnu.node')
266
+ )
267
+ try {
268
+ if (localFileExisted) {
269
+ nativeBinding = require('./ffi-rs.linux-riscv64-gnu.node')
270
+ } else {
271
+ nativeBinding = require('@yuuang/ffi-rs-linux-riscv64-gnu')
272
+ }
273
+ } catch (e) {
274
+ loadError = e
275
+ }
276
+ }
277
+ break
278
+ case 's390x':
279
+ localFileExisted = existsSync(
280
+ join(__dirname, 'ffi-rs.linux-s390x-gnu.node')
281
+ )
282
+ try {
283
+ if (localFileExisted) {
284
+ nativeBinding = require('./ffi-rs.linux-s390x-gnu.node')
285
+ } else {
286
+ nativeBinding = require('@yuuang/ffi-rs-linux-s390x-gnu')
287
+ }
288
+ } catch (e) {
289
+ loadError = e
290
+ }
291
+ break
292
+ default:
293
+ throw new Error(`Unsupported architecture on Linux: ${arch}`)
294
+ }
295
+ break
296
+ default:
297
+ throw new Error(`Unsupported OS: ${platform}, architecture: ${arch}`)
298
+ }
299
+
300
+ if (!nativeBinding) {
301
+ if (loadError) {
302
+ throw loadError
303
+ }
304
+ throw new Error(`Failed to load native binding`)
305
+ (processParamsTypeForArray(params))
306
+ }
307
+
308
+ const { DataType, createPointer, restorePointer, unwrapPointer, wrapPointer, freePointer, open, close, load, isNullPointer, FFITypeTag, createExternalBuffer } = nativeBinding
309
+ DataType.StackStruct = 999
310
+ DataType.Function = 998
311
+ DataType.Array = 997
312
+ DataType.StackArray = 996
313
+ exports.DataType = DataType
314
+ exports.PointerType = nativeBinding.PointerType
315
+ exports.open = open
316
+ exports.close = close
317
+ exports.load = load
318
+ exports.isNullPointer = isNullPointer
319
+ exports.FFITypeTag = FFITypeTag
320
+ const arrayDataType = [DataType.I16Array, DataType.I32Array, DataType.StringArray, DataType.DoubleArray, DataType.U8Array, DataType.FloatArray]
321
+ const arrayConstructor = (options) => ({
322
+ ffiTypeTag: FFITypeTag.Array,
323
+ ...options
324
+ })
325
+
326
+ const processParamsTypeForArray = (params) => {
327
+ params.paramsType = params.paramsType?.map((paramType, index) => {
328
+ if (arrayDataType.includes(paramType)) {
329
+ return arrayConstructor({
330
+ type: paramType,
331
+ length: params.paramsValue[index].length,
332
+ })
333
+ }
334
+ return paramType
335
+ })
336
+ return params
337
+ }
338
+
339
+ const setFreePointerTag = (params) => {
340
+ params.paramsType = params.paramsType?.map((paramType, index) => {
341
+ if (paramType.ffiTypeTag === FFITypeTag.Function) {
342
+ paramType.needFree = true
343
+ }
344
+ return paramType
345
+ })
346
+ return params
347
+ }
348
+
349
+ const wrapLoad = (params) => {
350
+ if (params.freeResultMemory === undefined) {
351
+ params.freeResultMemory = false
352
+ }
353
+ return load(processParamsTypeForArray(params))
354
+ }
355
+ exports.load = wrapLoad
356
+ exports.createPointer = (params) => createPointer(processParamsTypeForArray(params))
357
+ exports.restorePointer = (params) => restorePointer(processParamsTypeForArray(params))
358
+ exports.unwrapPointer = (params) => unwrapPointer(processParamsTypeForArray(params))
359
+ exports.wrapPointer = (params) => wrapPointer(processParamsTypeForArray(params))
360
+ exports.freePointer = (params) => freePointer(setFreePointerTag(processParamsTypeForArray(params)))
361
+ exports.createExternalBuffer = createExternalBuffer
362
+ exports.arrayConstructor = arrayConstructor
363
+
364
+ exports.funcConstructor = (options) => ({
365
+ ffiTypeTag: FFITypeTag.Function,
366
+ needFree: false,
367
+ freeCFuncParamsMemory: false,
368
+ ...options,
369
+ })
370
+ exports.define = (obj) => {
371
+ const res = {}
372
+ Object.entries(obj).map(([funcName, funcDesc]) => {
373
+ res[funcName] = (paramsValue = []) => wrapLoad({
374
+ ...funcDesc,
375
+ funcName,
376
+ paramsValue
377
+ })
378
+ })
379
+ return res
380
+ }
@@ -0,0 +1,76 @@
1
+ {
2
+ "name": "ffi-rs",
3
+ "version": "1.3.7",
4
+ "main": "index.js",
5
+ "types": "index.d.ts",
6
+ "description": "A module written in Rust and N-API provides interface (FFI) features for Node.js",
7
+ "napi": {
8
+ "name": "ffi-rs",
9
+ "triples": {
10
+ "additional": [
11
+ "aarch64-apple-darwin",
12
+ "aarch64-unknown-linux-gnu",
13
+ "aarch64-unknown-linux-musl",
14
+ "arm-unknown-linux-gnueabihf",
15
+ "i686-pc-windows-msvc",
16
+ "x86_64-unknown-linux-musl",
17
+ "aarch64-pc-windows-msvc",
18
+ "aarch64-linux-android"
19
+ ]
20
+ }
21
+ },
22
+ "author": "zhangyuang",
23
+ "homepage": "https://github.com/zhangyuang/node-ffi-rs#readme",
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "git+https://github.com/zhangyuang/node-ffi-rs.git"
27
+ },
28
+ "keywords": [
29
+ "ffi",
30
+ "rust",
31
+ "node.js",
32
+ "napi"
33
+ ],
34
+ "files": [
35
+ "index.js",
36
+ "index.d.ts",
37
+ "README.md"
38
+ ],
39
+ "license": "MIT",
40
+ "dependencies": {},
41
+ "devDependencies": {
42
+ "@napi-rs/cli": "^2.15.2",
43
+ "@types/node": "^20.8.7",
44
+ "benny": "^3.7.1",
45
+ "conventional-changelog-cli": "^4.1.0",
46
+ "esno": "^4.0.0",
47
+ "koa": "^2.14.2",
48
+ "shelljs": "^0.8.5",
49
+ "typescript": "^5.4.5"
50
+ },
51
+ "scripts": {
52
+ "artifacts": "napi artifacts",
53
+ "build:c": "node scripts/compile.js",
54
+ "build:dev": "env=development node scripts/build.js",
55
+ "build": "node scripts/build.js",
56
+ "publish:npm": "node scripts/publish.js",
57
+ "test": "esno ./tests/index.ts",
58
+ "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0 && git add . && git commit -m \"docs: update changelog.md\" && git push origin master",
59
+ "pub": "npm version patch && git push origin master --tags && npm run changelog",
60
+ "copy": "cp -r ./tests ./*.md ./package.json ../node-ffi-rs/",
61
+ "pub:alpha": "npm version prerelease --preid=alpha && git push origin master --tags"
62
+ },
63
+ "optionalDependencies": {
64
+ "@yuuang/ffi-rs-android-arm64": "1.3.7",
65
+ "@yuuang/ffi-rs-darwin-arm64": "1.3.7",
66
+ "@yuuang/ffi-rs-darwin-x64": "1.3.7",
67
+ "@yuuang/ffi-rs-linux-arm-gnueabihf": "1.3.7",
68
+ "@yuuang/ffi-rs-linux-arm64-gnu": "1.3.7",
69
+ "@yuuang/ffi-rs-linux-arm64-musl": "1.3.7",
70
+ "@yuuang/ffi-rs-linux-x64-gnu": "1.3.7",
71
+ "@yuuang/ffi-rs-linux-x64-musl": "1.3.7",
72
+ "@yuuang/ffi-rs-win32-arm64-msvc": "1.3.7",
73
+ "@yuuang/ffi-rs-win32-ia32-msvc": "1.3.7",
74
+ "@yuuang/ffi-rs-win32-x64-msvc": "1.3.7"
75
+ }
76
+ }
@@ -2,7 +2,7 @@
2
2
 
3
3
  import childProcess, { execFile } from "node:child_process";
4
4
  import fs from "node:fs";
5
- import os from "node:os";
5
+ import $U from "node:os";
6
6
  import path from "node:path";
7
7
  import { fileURLToPath } from "node:url";
8
8
  import process from "node:process";
@@ -49,7 +49,7 @@ function isInsideContainer() {
49
49
  //#region ../../node_modules/.bun/is-wsl@3.1.1/node_modules/is-wsl/index.js
50
50
  const isWsl = () => {
51
51
  if (process.platform !== "linux") return false;
52
- if (os.release().toLowerCase().includes("microsoft")) {
52
+ if ($U.release().toLowerCase().includes("microsoft")) {
53
53
  if (isInsideContainer()) return false;
54
54
  return true;
55
55
  }
@@ -589,4 +589,4 @@ defineLazyProperty(apps, "safari", () => detectPlatformBinary({ darwin: "Safari"
589
589
  //#endregion
590
590
  export { apps, open as default, openApp };
591
591
 
592
- //# sourceMappingURL=open-FIgTDosf.mjs.map
592
+ //# sourceMappingURL=open-D8mGyWmt.mjs.map