@reqlan/analytical 0.10.0 → 0.10.2
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 +12 -0
- package/out/index.d.ts +2 -1
- package/out/index.js +1 -1
- package/out/index.js.map +1 -1
- package/out/native/load-native.d.ts +15 -0
- package/out/native/load-native.js +133 -45
- package/out/native/load-native.js.map +1 -1
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -30,6 +30,18 @@ npm install @reqlan/analytical
|
|
|
30
30
|
|
|
31
31
|
## Changelog
|
|
32
32
|
|
|
33
|
+
### 0.10.2
|
|
34
|
+
|
|
35
|
+
#### Patch Changes
|
|
36
|
+
|
|
37
|
+
- 75902d5: fix tests; and decouple golden corpus.
|
|
38
|
+
|
|
39
|
+
### 0.10.1
|
|
40
|
+
|
|
41
|
+
#### Patch Changes
|
|
42
|
+
|
|
43
|
+
- 06e9150: fix build and deps.
|
|
44
|
+
|
|
33
45
|
### 0.10.0
|
|
34
46
|
|
|
35
47
|
#### Minor Changes
|
package/out/index.d.ts
CHANGED
|
@@ -40,7 +40,8 @@ export { IndexFileError, recordCaughtFileIssue, recordCaughtIndexError, toFileIn
|
|
|
40
40
|
export { NativeAnalysisApi } from './native/native-analysis-api.js';
|
|
41
41
|
export type { AnalysisRuntimeOptions, InteractionDescriptor, RequirementMatch, SearchRequirementsOptions } from './native/native-analysis-api.js';
|
|
42
42
|
export { openAnalysisApi, type HeadlessAnalysisApi, type OpenedAnalysisApi } from './native/open-analysis-api.js';
|
|
43
|
-
export { nativeEngineRequested, loadNativeEngine, tryLoadNativeEngine, nativeEngineAvailable, addNativeEngineSearchDirs, resetNativeEngineCache } from './native/load-native.js';
|
|
43
|
+
export { nativeEngineRequested, loadNativeEngine, tryLoadNativeEngine, nativeEngineAvailable, addNativeEngineSearchDirs, hostNativeBindingSpec, resetNativeEngineCache } from './native/load-native.js';
|
|
44
|
+
export type { HostNativeBindingSpec } from './native/load-native.js';
|
|
44
45
|
export { NativeWorkspaceIndex } from './native/native-workspace-index.js';
|
|
45
46
|
export type { NativeSyncResult } from './native/native-workspace-index.js';
|
|
46
47
|
export { NativeIndexStore } from './native/native-index-store.js';
|
package/out/index.js
CHANGED
|
@@ -21,7 +21,7 @@ export { fileIssue, fileIssueFromError, unnamedIdeaIssues, validIdeas } from './
|
|
|
21
21
|
export { IndexFileError, recordCaughtFileIssue, recordCaughtIndexError, toFileIndexIssueDraft } from './index-store/index-file-error.js';
|
|
22
22
|
export { NativeAnalysisApi } from './native/native-analysis-api.js';
|
|
23
23
|
export { openAnalysisApi } from './native/open-analysis-api.js';
|
|
24
|
-
export { nativeEngineRequested, loadNativeEngine, tryLoadNativeEngine, nativeEngineAvailable, addNativeEngineSearchDirs, resetNativeEngineCache } from './native/load-native.js';
|
|
24
|
+
export { nativeEngineRequested, loadNativeEngine, tryLoadNativeEngine, nativeEngineAvailable, addNativeEngineSearchDirs, hostNativeBindingSpec, resetNativeEngineCache } from './native/load-native.js';
|
|
25
25
|
export { NativeWorkspaceIndex } from './native/native-workspace-index.js';
|
|
26
26
|
export { NativeIndexStore } from './native/native-index-store.js';
|
|
27
27
|
export { NativeSqlConnection } from './native/native-sql-db.js';
|
package/out/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAEpG,OAAO,EACH,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACH,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACH,sBAAsB,EACtB,eAAe,EACf,oBAAoB,EACpB,0BAA0B,EAC1B,iBAAiB,EACjB,4BAA4B,EAC5B,uBAAuB,EACvB,6BAA6B,EAChC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACH,yBAAyB,EACzB,oBAAoB,EACpB,2BAA2B,EAC3B,aAAa,EACb,YAAY,EACZ,mBAAmB,EACtB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AASvF,OAAO,EACH,WAAW,EACX,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EACnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAkBjE,OAAO,EACH,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,EACpB,2BAA2B,EAC3B,uBAAuB,EACvB,8BAA8B,EACjC,MAAM,wCAAwC,CAAC;AAShD,OAAO,EACH,eAAe,EACf,oBAAoB,EACpB,8BAA8B,EAC9B,2BAA2B,EAC3B,+BAA+B,EAC/B,mBAAmB,EACnB,yBAAyB,EACzB,eAAe,EACf,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EACrB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACH,sBAAsB,EACtB,iBAAiB,EACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,kCAAkC,EAAE,MAAM,2BAA2B,CAAC;AAE/E,cAAc,iBAAiB,CAAC;AAChC,OAAO,EACH,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,6BAA6B,EAC7B,kBAAkB,EAClB,iBAAiB,EACjB,4BAA4B,EAC/B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,cAAc,EAAE,cAAc,IAAI,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAI1G,OAAO,EACH,qBAAqB,EACrB,gBAAgB,EACnB,MAAM,0CAA0C,CAAC;AAUlD,OAAO,EACH,SAAS,EACT,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACb,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EACH,cAAc,EACd,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACxB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAOpE,OAAO,EACH,eAAe,EAGlB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACH,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACzB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,6 +42,21 @@ export declare function addNativeEngineSearchDirs(...dirs: string[]): void;
|
|
|
42
42
|
* are rejected so production always uses the host core engine.
|
|
43
43
|
*/
|
|
44
44
|
export declare function nativeEngineRequested(): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Host napi tuples keyed by Node `process.platform`-`process.arch` (extension host,
|
|
47
|
+
* not the VS Code UI client). Keep in sync with `scripts/native-targets.mjs`.
|
|
48
|
+
*/
|
|
49
|
+
export interface HostNativeBindingSpec {
|
|
50
|
+
vsCodeTarget: string;
|
|
51
|
+
napiSuffix: string;
|
|
52
|
+
packageName: string;
|
|
53
|
+
binaryName: string;
|
|
54
|
+
rustTarget: string;
|
|
55
|
+
}
|
|
56
|
+
/** Resolve the napi package for this Node / extension-host process. */
|
|
57
|
+
export declare function hostNativeBindingSpec(platform?: NodeJS.Platform, arch?: NodeJS.Architecture): HostNativeBindingSpec | undefined;
|
|
58
|
+
/** Filesystem paths and the host npm package name probed for this process. */
|
|
59
|
+
export declare function listNativeEngineCandidates(platform?: NodeJS.Platform, arch?: NodeJS.Architecture): string[];
|
|
45
60
|
/** Load the host-matching core engine `.node`, or `undefined` when unavailable. */
|
|
46
61
|
export declare function tryLoadNativeEngine(): NativeModule | undefined;
|
|
47
62
|
export declare function loadNativeEngine(): NativeModule;
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* rq:["../../../reqlan rq/core_analysis/rust_port.rq".cutover]
|
|
7
7
|
*/
|
|
8
8
|
import { createRequire } from 'node:module';
|
|
9
|
-
import { existsSync } from 'node:fs';
|
|
9
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
10
10
|
import { dirname, join } from 'node:path';
|
|
11
11
|
import { fileURLToPath } from 'node:url';
|
|
12
12
|
function moduleDirectory() {
|
|
@@ -54,58 +54,139 @@ export function nativeEngineRequested() {
|
|
|
54
54
|
}
|
|
55
55
|
return true;
|
|
56
56
|
}
|
|
57
|
-
const
|
|
58
|
-
'linux-x64':
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
57
|
+
const HOST_NATIVE_BY_PLATFORM = {
|
|
58
|
+
'linux-x64': {
|
|
59
|
+
vsCodeTarget: 'linux-x64',
|
|
60
|
+
napiSuffix: 'linux-x64-gnu',
|
|
61
|
+
packageName: '@reqlan/analytical-linux-x64-gnu',
|
|
62
|
+
binaryName: 'reqlan_napi.linux-x64-gnu.node',
|
|
63
|
+
rustTarget: 'x86_64-unknown-linux-gnu'
|
|
64
|
+
},
|
|
65
|
+
'linux-arm64': {
|
|
66
|
+
vsCodeTarget: 'linux-arm64',
|
|
67
|
+
napiSuffix: 'linux-arm64-gnu',
|
|
68
|
+
packageName: '@reqlan/analytical-linux-arm64-gnu',
|
|
69
|
+
binaryName: 'reqlan_napi.linux-arm64-gnu.node',
|
|
70
|
+
rustTarget: 'aarch64-unknown-linux-gnu'
|
|
71
|
+
},
|
|
72
|
+
'darwin-x64': {
|
|
73
|
+
vsCodeTarget: 'darwin-x64',
|
|
74
|
+
napiSuffix: 'darwin-x64',
|
|
75
|
+
packageName: '@reqlan/analytical-darwin-x64',
|
|
76
|
+
binaryName: 'reqlan_napi.darwin-x64.node',
|
|
77
|
+
rustTarget: 'x86_64-apple-darwin'
|
|
78
|
+
},
|
|
79
|
+
'darwin-arm64': {
|
|
80
|
+
vsCodeTarget: 'darwin-arm64',
|
|
81
|
+
napiSuffix: 'darwin-arm64',
|
|
82
|
+
packageName: '@reqlan/analytical-darwin-arm64',
|
|
83
|
+
binaryName: 'reqlan_napi.darwin-arm64.node',
|
|
84
|
+
rustTarget: 'aarch64-apple-darwin'
|
|
85
|
+
},
|
|
86
|
+
'win32-x64': {
|
|
87
|
+
vsCodeTarget: 'win32-x64',
|
|
88
|
+
napiSuffix: 'win32-x64-msvc',
|
|
89
|
+
packageName: '@reqlan/analytical-win32-x64-msvc',
|
|
90
|
+
binaryName: 'reqlan_napi.win32-x64-msvc.node',
|
|
91
|
+
rustTarget: 'x86_64-pc-windows-msvc'
|
|
92
|
+
},
|
|
93
|
+
'win32-arm64': {
|
|
94
|
+
vsCodeTarget: 'win32-arm64',
|
|
95
|
+
napiSuffix: 'win32-arm64-msvc',
|
|
96
|
+
packageName: '@reqlan/analytical-win32-arm64-msvc',
|
|
97
|
+
binaryName: 'reqlan_napi.win32-arm64-msvc.node',
|
|
98
|
+
rustTarget: 'aarch64-pc-windows-msvc'
|
|
99
|
+
}
|
|
72
100
|
};
|
|
73
|
-
|
|
74
|
-
|
|
101
|
+
/** Resolve the napi package for this Node / extension-host process. */
|
|
102
|
+
export function hostNativeBindingSpec(platform = process.platform, arch = process.arch) {
|
|
103
|
+
return HOST_NATIVE_BY_PLATFORM[`${platform}-${arch}`];
|
|
75
104
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
105
|
+
const CRATE_BINARY_NAMES = [
|
|
106
|
+
'reqlan_napi.node',
|
|
107
|
+
'libreqlan_napi.so',
|
|
108
|
+
'libreqlan_napi.dylib',
|
|
109
|
+
'reqlan_napi.dll'
|
|
110
|
+
];
|
|
111
|
+
/**
|
|
112
|
+
* Walk toward the repo root looking for `crates/Cargo.toml`.
|
|
113
|
+
* Compiled output lives in `packages/analytical/out/native/` (four levels below
|
|
114
|
+
* the repo root); a naive `../../../crates` incorrectly resolves to `packages/crates`.
|
|
115
|
+
*/
|
|
116
|
+
function findRepoRoot(start) {
|
|
117
|
+
let dir = start;
|
|
118
|
+
for (let i = 0; i < 10; i++) {
|
|
119
|
+
if (existsSync(join(dir, 'crates', 'Cargo.toml'))) {
|
|
120
|
+
return dir;
|
|
121
|
+
}
|
|
122
|
+
const parent = dirname(dir);
|
|
123
|
+
if (parent === dir) {
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
dir = parent;
|
|
127
|
+
}
|
|
128
|
+
return undefined;
|
|
129
|
+
}
|
|
130
|
+
function crateBuildCandidates(repoRoot, rustTarget) {
|
|
131
|
+
const targetRoot = join(repoRoot, 'crates', 'target');
|
|
132
|
+
const dirs = [
|
|
133
|
+
join(targetRoot, rustTarget, 'release'),
|
|
134
|
+
join(targetRoot, 'release'),
|
|
135
|
+
join(targetRoot, rustTarget, 'debug'),
|
|
136
|
+
join(targetRoot, 'debug')
|
|
137
|
+
];
|
|
138
|
+
return dirs.flatMap(dir => CRATE_BINARY_NAMES.map(name => join(dir, name)));
|
|
139
|
+
}
|
|
140
|
+
function hostNativePackageFile(repoRoot, spec) {
|
|
141
|
+
return join(repoRoot, 'packages', 'analytical-native', spec.napiSuffix, spec.binaryName);
|
|
142
|
+
}
|
|
143
|
+
function readStagedTarget(dir) {
|
|
144
|
+
const metaPath = join(dir, 'target.json');
|
|
145
|
+
if (!existsSync(metaPath)) {
|
|
146
|
+
return undefined;
|
|
147
|
+
}
|
|
148
|
+
try {
|
|
149
|
+
const meta = JSON.parse(readFileSync(metaPath, 'utf8'));
|
|
150
|
+
return typeof meta.vsCodeTarget === 'string' ? meta.vsCodeTarget : undefined;
|
|
151
|
+
}
|
|
152
|
+
catch {
|
|
153
|
+
return undefined;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
function stagedDirCandidates(dir, spec) {
|
|
157
|
+
const stagedTarget = readStagedTarget(dir);
|
|
158
|
+
const hostNamed = join(dir, spec.binaryName);
|
|
159
|
+
const generic = join(dir, 'reqlan_napi.node');
|
|
160
|
+
const crateNames = [
|
|
83
161
|
join(dir, 'libreqlan_napi.so'),
|
|
84
162
|
join(dir, 'libreqlan_napi.dylib'),
|
|
85
163
|
join(dir, 'reqlan_napi.dll')
|
|
86
|
-
]
|
|
164
|
+
];
|
|
165
|
+
if (stagedTarget && stagedTarget !== spec.vsCodeTarget) {
|
|
166
|
+
return [hostNamed];
|
|
167
|
+
}
|
|
168
|
+
return [hostNamed, generic, ...crateNames];
|
|
169
|
+
}
|
|
170
|
+
/** Filesystem paths and the host npm package name probed for this process. */
|
|
171
|
+
export function listNativeEngineCandidates(platform = process.platform, arch = process.arch) {
|
|
172
|
+
const spec = hostNativeBindingSpec(platform, arch);
|
|
173
|
+
if (!spec) {
|
|
174
|
+
return [];
|
|
175
|
+
}
|
|
176
|
+
const here = moduleDirectory();
|
|
177
|
+
const repoRoot = findRepoRoot(here);
|
|
178
|
+
const staged = extraSearchDirs.flatMap(dir => stagedDirCandidates(dir, spec));
|
|
179
|
+
const stagedHostPkg = repoRoot ? hostNativePackageFile(repoRoot, spec) : undefined;
|
|
87
180
|
return [
|
|
88
181
|
...staged,
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
join(here, '../../../crates/target/release/reqlan_napi.node'),
|
|
93
|
-
join(here, '../../../crates/target/debug/reqlan_napi.node'),
|
|
94
|
-
join(here, '../../../crates/target/release/libreqlan_napi.so'),
|
|
95
|
-
join(here, '../../../crates/target/debug/libreqlan_napi.so'),
|
|
96
|
-
join(here, '../../../crates/target/release/libreqlan_napi.dylib'),
|
|
97
|
-
join(here, '../../../crates/target/debug/libreqlan_napi.dylib'),
|
|
98
|
-
join(here, '../../../crates/target/release/reqlan_napi.dll'),
|
|
99
|
-
join(here, '../../../crates/target/debug/reqlan_napi.dll'),
|
|
100
|
-
// Remaining platform packages (wrong-host installs still listed for clear errors).
|
|
101
|
-
'@reqlan/analytical-linux-x64-gnu',
|
|
102
|
-
'@reqlan/analytical-linux-arm64-gnu',
|
|
103
|
-
'@reqlan/analytical-darwin-arm64',
|
|
104
|
-
'@reqlan/analytical-darwin-x64',
|
|
105
|
-
'@reqlan/analytical-win32-x64-msvc',
|
|
106
|
-
'@reqlan/analytical-win32-arm64-msvc'
|
|
182
|
+
...(stagedHostPkg ? [stagedHostPkg] : []),
|
|
183
|
+
spec.packageName,
|
|
184
|
+
...(repoRoot ? crateBuildCandidates(repoRoot, spec.rustTarget) : [])
|
|
107
185
|
].filter((c, i, arr) => arr.indexOf(c) === i);
|
|
108
186
|
}
|
|
187
|
+
function candidatePaths() {
|
|
188
|
+
return listNativeEngineCandidates();
|
|
189
|
+
}
|
|
109
190
|
function tryRequire(candidate) {
|
|
110
191
|
// Skip known-missing filesystem paths without attempting require.
|
|
111
192
|
if (!candidate.startsWith('@') && !existsSync(candidate)) {
|
|
@@ -137,8 +218,15 @@ export function loadNativeEngine() {
|
|
|
137
218
|
if (loaded) {
|
|
138
219
|
return loaded;
|
|
139
220
|
}
|
|
221
|
+
const spec = hostNativeBindingSpec();
|
|
222
|
+
if (!spec) {
|
|
223
|
+
const supported = Object.keys(HOST_NATIVE_BY_PLATFORM).join(', ');
|
|
224
|
+
throw new Error(`Native analytical engine is required but ${process.platform}-${process.arch} ` +
|
|
225
|
+
`is not a supported extension-host target. Supported: ${supported}.`);
|
|
226
|
+
}
|
|
140
227
|
const tried = candidatePaths().join('\n');
|
|
141
|
-
throw new Error(`Native analytical engine is required but the host .node was not found
|
|
228
|
+
throw new Error(`Native analytical engine is required but the host .node was not found ` +
|
|
229
|
+
`(${spec.vsCodeTarget} / ${spec.packageName}). ` +
|
|
142
230
|
`Build crates/reqlan-napi (cargo build -p reqlan-napi) or install the host ` +
|
|
143
231
|
`optionalDependency package. Tried:\n${tried}`);
|
|
144
232
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-native.js","sourceRoot":"","sources":["../../src/native/load-native.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"load-native.js","sourceRoot":"","sources":["../../src/native/load-native.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reqlan/analytical",
|
|
3
3
|
"description": "Native requirement graph index and analysis API for reqlan",
|
|
4
|
-
"version": "0.10.
|
|
4
|
+
"version": "0.10.2",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "AGPL-3.0-only",
|
|
7
7
|
"repository": {
|
|
@@ -41,12 +41,12 @@
|
|
|
41
41
|
"ignore": "^7.0.6"
|
|
42
42
|
},
|
|
43
43
|
"optionalDependencies": {
|
|
44
|
-
"@reqlan/analytical-win32-x64-msvc": "0.10.
|
|
45
|
-
"@reqlan/analytical-
|
|
46
|
-
"@reqlan/analytical-
|
|
47
|
-
"@reqlan/analytical-
|
|
48
|
-
"@reqlan/analytical-darwin-x64": "0.10.
|
|
49
|
-
"@reqlan/analytical-
|
|
44
|
+
"@reqlan/analytical-win32-x64-msvc": "0.10.2",
|
|
45
|
+
"@reqlan/analytical-win32-arm64-msvc": "0.10.2",
|
|
46
|
+
"@reqlan/analytical-linux-arm64-gnu": "0.10.2",
|
|
47
|
+
"@reqlan/analytical-linux-x64-gnu": "0.10.2",
|
|
48
|
+
"@reqlan/analytical-darwin-x64": "0.10.2",
|
|
49
|
+
"@reqlan/analytical-darwin-arm64": "0.10.2"
|
|
50
50
|
},
|
|
51
51
|
"scripts": {
|
|
52
52
|
"clean": "shx rm -fr *.tsbuildinfo out",
|