@plures/pluresdb 1.6.10 โ 2.9.6
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 +97 -289
- package/crates/README.md +99 -0
- package/crates/pluresdb-node/README.md +181 -0
- package/crates/pluresdb-node/index.d.ts +0 -0
- package/crates/pluresdb-node/index.js +265 -0
- package/crates/pluresdb-node/package.json +35 -0
- package/dist/napi/index.js +60 -0
- package/embedded.d.ts +1 -0
- package/embedded.js +46 -0
- package/package.json +20 -9
- package/dist/.tsbuildinfo +0 -1
- package/dist/better-sqlite3-shared.d.ts +0 -12
- package/dist/better-sqlite3-shared.d.ts.map +0 -1
- package/dist/better-sqlite3-shared.js +0 -143
- package/dist/better-sqlite3-shared.js.map +0 -1
- package/dist/better-sqlite3.d.ts +0 -4
- package/dist/better-sqlite3.d.ts.map +0 -1
- package/dist/better-sqlite3.js +0 -8
- package/dist/better-sqlite3.js.map +0 -1
- package/dist/cli.d.ts +0 -7
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/local-first/unified-api.d.ts +0 -110
- package/dist/local-first/unified-api.d.ts.map +0 -1
- package/dist/local-first/unified-api.js +0 -348
- package/dist/local-first/unified-api.js.map +0 -1
- package/dist/node-index.d.ts +0 -150
- package/dist/node-index.d.ts.map +0 -1
- package/dist/node-index.js +0 -668
- package/dist/node-index.js.map +0 -1
- package/dist/node-wrapper.d.ts +0 -44
- package/dist/node-wrapper.d.ts.map +0 -1
- package/dist/node-wrapper.js +0 -296
- package/dist/node-wrapper.js.map +0 -1
- package/dist/types/index.d.ts +0 -28
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -3
- package/dist/types/index.js.map +0 -1
- package/dist/types/node-types.d.ts +0 -71
- package/dist/types/node-types.d.ts.map +0 -1
- package/dist/types/node-types.js +0 -6
- package/dist/types/node-types.js.map +0 -1
- package/dist/util/debug.d.ts +0 -3
- package/dist/util/debug.d.ts.map +0 -1
- package/dist/util/debug.js +0 -34
- package/dist/util/debug.js.map +0 -1
- package/dist/vscode/extension.d.ts +0 -81
- package/dist/vscode/extension.d.ts.map +0 -1
- package/dist/vscode/extension.js +0 -309
- package/dist/vscode/extension.js.map +0 -1
- package/examples/basic-usage.d.ts +0 -2
- package/examples/basic-usage.d.ts.map +0 -1
- package/examples/basic-usage.js +0 -26
- package/examples/basic-usage.js.map +0 -1
- package/examples/basic-usage.ts +0 -29
- package/examples/browser-demo/README.md +0 -204
- package/examples/browser-demo/index.html +0 -466
- package/examples/browser-wasm-integration.md +0 -411
- package/examples/ipc-demo/README.md +0 -127
- package/examples/local-first-usage.ts +0 -138
- package/examples/native-ipc-integration.md +0 -526
- package/examples/tauri-demo/README.md +0 -240
- package/examples/tauri-integration.md +0 -260
- package/examples/vscode-extension-example/README.md +0 -95
- package/examples/vscode-extension-example/package.json +0 -49
- package/examples/vscode-extension-example/src/extension.ts +0 -172
- package/examples/vscode-extension-example/tsconfig.json +0 -12
- package/examples/vscode-extension-integration.d.ts +0 -31
- package/examples/vscode-extension-integration.d.ts.map +0 -1
- package/examples/vscode-extension-integration.js +0 -319
- package/examples/vscode-extension-integration.js.map +0 -1
- package/examples/vscode-extension-integration.ts +0 -41
- package/legacy/benchmarks/memory-benchmarks.ts +0 -350
- package/legacy/benchmarks/run-benchmarks.ts +0 -315
- package/legacy/better-sqlite3-shared.ts +0 -157
- package/legacy/better-sqlite3.ts +0 -4
- package/legacy/cli.ts +0 -241
- package/legacy/config.ts +0 -50
- package/legacy/core/crdt.ts +0 -107
- package/legacy/core/database.ts +0 -529
- package/legacy/healthcheck.ts +0 -162
- package/legacy/http/api-server.ts +0 -569
- package/legacy/index.ts +0 -31
- package/legacy/local-first/unified-api.ts +0 -449
- package/legacy/logic/rules.ts +0 -46
- package/legacy/main.rs +0 -3
- package/legacy/main.ts +0 -197
- package/legacy/network/websocket-server.ts +0 -115
- package/legacy/node-index.ts +0 -827
- package/legacy/node-wrapper.ts +0 -329
- package/legacy/plugins/README.md +0 -181
- package/legacy/plugins/example-embedding-plugin.ts +0 -56
- package/legacy/plugins/plugin-system.ts +0 -315
- package/legacy/sqlite-compat.ts +0 -633
- package/legacy/sqlite3-compat.ts +0 -55
- package/legacy/storage/kv-storage.ts +0 -73
- package/legacy/tests/core.test.ts +0 -305
- package/legacy/tests/fixtures/performance-data.json +0 -71
- package/legacy/tests/fixtures/test-data.json +0 -129
- package/legacy/tests/integration/api-server.test.ts +0 -334
- package/legacy/tests/integration/mesh-network.test.ts +0 -303
- package/legacy/tests/logic.test.ts +0 -34
- package/legacy/tests/performance/load.test.ts +0 -290
- package/legacy/tests/security/input-validation.test.ts +0 -286
- package/legacy/tests/unit/core.test.ts +0 -226
- package/legacy/tests/unit/local-first-api.test.ts +0 -65
- package/legacy/tests/unit/plugin-system.test.ts +0 -388
- package/legacy/tests/unit/subscriptions.test.ts +0 -135
- package/legacy/tests/unit/vector-search.test.ts +0 -173
- package/legacy/tests/vscode_extension_test.ts +0 -281
- package/legacy/types/index.ts +0 -32
- package/legacy/types/node-types.ts +0 -80
- package/legacy/util/debug.ts +0 -27
- package/legacy/vector/index.ts +0 -59
- package/legacy/vscode/extension.ts +0 -387
- package/scripts/compiled-crud-verify.ts +0 -30
- package/scripts/dogfood.ts +0 -297
- package/scripts/postinstall.js +0 -156
- package/scripts/publish-crates.sh +0 -95
- package/scripts/release-check.js +0 -224
- package/scripts/run-tests.ts +0 -178
- package/scripts/setup-libclang.ps1 +0 -209
- package/scripts/update-changelog.js +0 -214
- package/scripts/validate-npm-publish.js +0 -228
- package/web/README.md +0 -27
- package/web/svelte/package.json +0 -31
|
@@ -1,214 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Updates CHANGELOG.md with commits since the last tag
|
|
5
|
-
* This script is meant to be run during CI before version bumping
|
|
6
|
-
*
|
|
7
|
-
* Usage: node scripts/update-changelog.js <version>
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
const { execSync } = require('child_process');
|
|
11
|
-
const fs = require('fs');
|
|
12
|
-
const path = require('path');
|
|
13
|
-
|
|
14
|
-
function run(cmd) {
|
|
15
|
-
try {
|
|
16
|
-
return execSync(cmd, { encoding: 'utf8', stdio: 'pipe' }).trim();
|
|
17
|
-
} catch (e) {
|
|
18
|
-
return null;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
function getCommitsSinceLastTag() {
|
|
23
|
-
const lastTag = run('git describe --tags --abbrev=0 2>/dev/null');
|
|
24
|
-
if (!lastTag) {
|
|
25
|
-
console.log('No previous tags found, analyzing all commits');
|
|
26
|
-
const commits = run('git log --format="%s"');
|
|
27
|
-
return commits ? commits.split('\n').filter(Boolean) : [];
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
const range = `${lastTag}..HEAD`;
|
|
31
|
-
const commits = run(`git log --format="%s" ${range}`);
|
|
32
|
-
if (!commits) {
|
|
33
|
-
console.log('No commits since last tag');
|
|
34
|
-
return [];
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
return commits.split('\n').filter(Boolean);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
function categorizeCommits(commits) {
|
|
41
|
-
const categories = {
|
|
42
|
-
feat: [],
|
|
43
|
-
fix: [],
|
|
44
|
-
docs: [],
|
|
45
|
-
style: [],
|
|
46
|
-
refactor: [],
|
|
47
|
-
test: [],
|
|
48
|
-
chore: [],
|
|
49
|
-
perf: [],
|
|
50
|
-
ci: [],
|
|
51
|
-
build: [],
|
|
52
|
-
other: [],
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
commits.forEach((commit) => {
|
|
56
|
-
// Skip release commits
|
|
57
|
-
if (commit.match(/^chore\(release\):/)) {
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
const match = commit.match(/^(\w+)(\(.+\))?: (.+)/);
|
|
62
|
-
if (match) {
|
|
63
|
-
const [, type, , description] = match;
|
|
64
|
-
if (categories[type]) {
|
|
65
|
-
categories[type].push(description);
|
|
66
|
-
} else {
|
|
67
|
-
categories.other.push(commit);
|
|
68
|
-
}
|
|
69
|
-
} else {
|
|
70
|
-
categories.other.push(commit);
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
return categories;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
function generateChangelogEntry(version, categories) {
|
|
78
|
-
const today = new Date().toISOString().split('T')[0];
|
|
79
|
-
let entry = `## [${version}] - ${today}\n\n`;
|
|
80
|
-
let hasContent = false;
|
|
81
|
-
|
|
82
|
-
if (categories.feat.length > 0) {
|
|
83
|
-
entry += '### Added\n\n';
|
|
84
|
-
categories.feat.forEach((item) => {
|
|
85
|
-
entry += `- ${item}\n`;
|
|
86
|
-
});
|
|
87
|
-
entry += '\n';
|
|
88
|
-
hasContent = true;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
if (categories.fix.length > 0) {
|
|
92
|
-
entry += '### Fixed\n\n';
|
|
93
|
-
categories.fix.forEach((item) => {
|
|
94
|
-
entry += `- ${item}\n`;
|
|
95
|
-
});
|
|
96
|
-
entry += '\n';
|
|
97
|
-
hasContent = true;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
if (categories.refactor.length > 0 || categories.style.length > 0 || categories.perf.length > 0) {
|
|
101
|
-
entry += '### Changed\n\n';
|
|
102
|
-
[...categories.refactor, ...categories.style, ...categories.perf].forEach((item) => {
|
|
103
|
-
entry += `- ${item}\n`;
|
|
104
|
-
});
|
|
105
|
-
entry += '\n';
|
|
106
|
-
hasContent = true;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
if (categories.docs.length > 0) {
|
|
110
|
-
entry += '### Documentation\n\n';
|
|
111
|
-
categories.docs.forEach((item) => {
|
|
112
|
-
entry += `- ${item}\n`;
|
|
113
|
-
});
|
|
114
|
-
entry += '\n';
|
|
115
|
-
hasContent = true;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
if (categories.test.length > 0 || categories.chore.length > 0 || categories.ci.length > 0 || categories.build.length > 0) {
|
|
119
|
-
entry += '### Developer Experience\n\n';
|
|
120
|
-
[...categories.test, ...categories.chore, ...categories.ci, ...categories.build].forEach((item) => {
|
|
121
|
-
entry += `- ${item}\n`;
|
|
122
|
-
});
|
|
123
|
-
entry += '\n';
|
|
124
|
-
hasContent = true;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
if (categories.other.length > 0) {
|
|
128
|
-
entry += '### Other\n\n';
|
|
129
|
-
categories.other.forEach((item) => {
|
|
130
|
-
entry += `- ${item}\n`;
|
|
131
|
-
});
|
|
132
|
-
entry += '\n';
|
|
133
|
-
hasContent = true;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
if (!hasContent) {
|
|
137
|
-
entry += '- Maintenance and improvements\n\n';
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
return entry;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
function updateChangelog(newEntry) {
|
|
144
|
-
const changelogPath = path.join(process.cwd(), 'CHANGELOG.md');
|
|
145
|
-
|
|
146
|
-
if (!fs.existsSync(changelogPath)) {
|
|
147
|
-
console.log('CHANGELOG.md not found, creating new one');
|
|
148
|
-
const content = `# Changelog\n\nAll notable changes to this project will be documented in this file.\n\n${newEntry}`;
|
|
149
|
-
fs.writeFileSync(changelogPath, content);
|
|
150
|
-
console.log('Created CHANGELOG.md');
|
|
151
|
-
return;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
const content = fs.readFileSync(changelogPath, 'utf8');
|
|
155
|
-
const lines = content.split('\n');
|
|
156
|
-
let insertIndex = -1;
|
|
157
|
-
|
|
158
|
-
// Find the position after the header and before the first version entry
|
|
159
|
-
for (let i = 0; i < lines.length; i++) {
|
|
160
|
-
if (lines[i].startsWith('## [') && !lines[i].includes('[Unreleased]')) {
|
|
161
|
-
insertIndex = i;
|
|
162
|
-
break;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
if (insertIndex === -1) {
|
|
167
|
-
// No previous releases found, insert after any "Unreleased" section
|
|
168
|
-
for (let i = 0; i < lines.length; i++) {
|
|
169
|
-
if (lines[i].startsWith('## [Unreleased]')) {
|
|
170
|
-
// Skip the unreleased section
|
|
171
|
-
let j = i + 1;
|
|
172
|
-
while (j < lines.length && !lines[j].startsWith('##')) {
|
|
173
|
-
j++;
|
|
174
|
-
}
|
|
175
|
-
insertIndex = j;
|
|
176
|
-
break;
|
|
177
|
-
} else if (lines[i].startsWith('# ')) {
|
|
178
|
-
// Found the main header, insert after it
|
|
179
|
-
insertIndex = i + 2;
|
|
180
|
-
break;
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
if (insertIndex === -1) {
|
|
186
|
-
// Last resort: append at the end
|
|
187
|
-
lines.push('', newEntry);
|
|
188
|
-
} else {
|
|
189
|
-
// Insert the new entry
|
|
190
|
-
lines.splice(insertIndex, 0, newEntry);
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
fs.writeFileSync(changelogPath, lines.join('\n'));
|
|
194
|
-
console.log('โ
Updated CHANGELOG.md');
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
function main() {
|
|
198
|
-
const version = process.argv[2];
|
|
199
|
-
if (!version) {
|
|
200
|
-
console.error('Usage: node scripts/update-changelog.js <version>');
|
|
201
|
-
process.exit(1);
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
const commits = getCommitsSinceLastTag();
|
|
205
|
-
if (commits.length === 0) {
|
|
206
|
-
console.log('No commits to add to changelog, creating minimal entry');
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
const categories = categorizeCommits(commits);
|
|
210
|
-
const entry = generateChangelogEntry(version, categories);
|
|
211
|
-
updateChangelog(entry);
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
main();
|
|
@@ -1,228 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Pre-publish Validation Script for NPM
|
|
5
|
-
*
|
|
6
|
-
* This script validates that the package is ready to be published to npm.
|
|
7
|
-
* It checks:
|
|
8
|
-
* 1. TypeScript compilation succeeds
|
|
9
|
-
* 2. Deno type checking passes
|
|
10
|
-
* 3. All tests pass
|
|
11
|
-
* 4. Required files exist in dist/
|
|
12
|
-
* 5. package.json is valid
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
const { execSync } = require("node:child_process");
|
|
16
|
-
const fs = require("node:fs");
|
|
17
|
-
const path = require("node:path");
|
|
18
|
-
|
|
19
|
-
const RED = "\x1b[31m";
|
|
20
|
-
const GREEN = "\x1b[32m";
|
|
21
|
-
const YELLOW = "\x1b[33m";
|
|
22
|
-
const RESET = "\x1b[0m";
|
|
23
|
-
const BOLD = "\x1b[1m";
|
|
24
|
-
|
|
25
|
-
// Configuration
|
|
26
|
-
const MAX_PACKAGE_SIZE_MB = 10;
|
|
27
|
-
|
|
28
|
-
function log(message, color = RESET) {
|
|
29
|
-
console.log(`${color}${message}${RESET}`);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
function error(message) {
|
|
33
|
-
log(`โ ${message}`, RED);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
function success(message) {
|
|
37
|
-
log(`โ ${message}`, GREEN);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
function info(message) {
|
|
41
|
-
log(`โน ${message}`, YELLOW);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
function title(message) {
|
|
45
|
-
log(`\n${BOLD}${message}${RESET}`);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
function runCommand(command, description) {
|
|
49
|
-
try {
|
|
50
|
-
info(`Running: ${description}...`);
|
|
51
|
-
execSync(command, { stdio: "inherit", cwd: process.cwd() });
|
|
52
|
-
success(description);
|
|
53
|
-
return true;
|
|
54
|
-
} catch (err) {
|
|
55
|
-
error(`${description} failed`);
|
|
56
|
-
return false;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
function checkFileExists(filePath, description) {
|
|
61
|
-
const fullPath = path.join(process.cwd(), filePath);
|
|
62
|
-
if (fs.existsSync(fullPath)) {
|
|
63
|
-
success(`${description}: ${filePath}`);
|
|
64
|
-
return true;
|
|
65
|
-
} else {
|
|
66
|
-
error(`${description} missing: ${filePath}`);
|
|
67
|
-
return false;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
async function main() {
|
|
72
|
-
title("๐ NPM Publish Validation");
|
|
73
|
-
|
|
74
|
-
let allChecksPassed = true;
|
|
75
|
-
|
|
76
|
-
// 1. Check package.json is valid
|
|
77
|
-
title("๐ฆ Validating package.json...");
|
|
78
|
-
try {
|
|
79
|
-
const packageJson = JSON.parse(
|
|
80
|
-
fs.readFileSync(path.join(process.cwd(), "package.json"), "utf-8"),
|
|
81
|
-
);
|
|
82
|
-
if (!packageJson.name || !packageJson.version) {
|
|
83
|
-
error("package.json missing required fields (name or version)");
|
|
84
|
-
allChecksPassed = false;
|
|
85
|
-
} else {
|
|
86
|
-
success(
|
|
87
|
-
`Package: ${packageJson.name}@${packageJson.version}`,
|
|
88
|
-
);
|
|
89
|
-
}
|
|
90
|
-
} catch (err) {
|
|
91
|
-
error(`Invalid package.json: ${err.message}`);
|
|
92
|
-
allChecksPassed = false;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
// 2. TypeScript compilation
|
|
96
|
-
title("๐จ Building TypeScript...");
|
|
97
|
-
if (!runCommand("npm run build:lib", "TypeScript compilation")) {
|
|
98
|
-
allChecksPassed = false;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
// 3. Check required dist files exist
|
|
102
|
-
title("๐ Checking required files...");
|
|
103
|
-
const requiredFiles = [
|
|
104
|
-
"dist/node-index.js",
|
|
105
|
-
"dist/node-index.d.ts",
|
|
106
|
-
"dist/better-sqlite3.js",
|
|
107
|
-
"dist/better-sqlite3.d.ts",
|
|
108
|
-
"dist/cli.js",
|
|
109
|
-
"dist/cli.d.ts",
|
|
110
|
-
"dist/local-first/unified-api.js",
|
|
111
|
-
"dist/local-first/unified-api.d.ts",
|
|
112
|
-
"dist/vscode/extension.js",
|
|
113
|
-
"dist/vscode/extension.d.ts",
|
|
114
|
-
"dist/types/node-types.js",
|
|
115
|
-
"dist/types/node-types.d.ts",
|
|
116
|
-
];
|
|
117
|
-
|
|
118
|
-
for (const file of requiredFiles) {
|
|
119
|
-
if (!checkFileExists(file, "Required file")) {
|
|
120
|
-
allChecksPassed = false;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
// 4. Deno type checking
|
|
125
|
-
title("๐ฆ Deno type checking...");
|
|
126
|
-
const denoPath = process.env.DENO_PATH || "deno";
|
|
127
|
-
const denoCheckFiles = [
|
|
128
|
-
"legacy/local-first/unified-api.ts",
|
|
129
|
-
"legacy/node-index.ts",
|
|
130
|
-
"legacy/better-sqlite3.ts",
|
|
131
|
-
"legacy/cli.ts",
|
|
132
|
-
"legacy/vscode/extension.ts",
|
|
133
|
-
];
|
|
134
|
-
|
|
135
|
-
// Check if Deno is available
|
|
136
|
-
let denoAvailable = false;
|
|
137
|
-
try {
|
|
138
|
-
execSync(`${denoPath} --version`, { stdio: "pipe" });
|
|
139
|
-
denoAvailable = true;
|
|
140
|
-
} catch (err) {
|
|
141
|
-
info("Deno not available - skipping Deno type checks");
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
if (denoAvailable) {
|
|
145
|
-
let denoChecksFailed = false;
|
|
146
|
-
for (const file of denoCheckFiles) {
|
|
147
|
-
if (
|
|
148
|
-
!runCommand(
|
|
149
|
-
`${denoPath} check --sloppy-imports ${file}`,
|
|
150
|
-
`Deno type check: ${file}`,
|
|
151
|
-
)
|
|
152
|
-
) {
|
|
153
|
-
error(`Deno type check failed for ${file}`);
|
|
154
|
-
denoChecksFailed = true;
|
|
155
|
-
allChecksPassed = false;
|
|
156
|
-
// Continue checking other files to show all failures
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
if (!denoChecksFailed) {
|
|
160
|
-
success("All Deno type checks passed");
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
// 5. Run tests (if Deno is available)
|
|
165
|
-
title("๐งช Running tests...");
|
|
166
|
-
if (denoAvailable) {
|
|
167
|
-
// Set DENO_PATH environment variable so npm test can find deno
|
|
168
|
-
const testEnv = { ...process.env };
|
|
169
|
-
const denoPathEnv = process.env.DENO_PATH;
|
|
170
|
-
if (denoPathEnv && denoPathEnv.includes(path.sep)) {
|
|
171
|
-
// If DENO_PATH was provided as a path, make sure its directory is in PATH for npm test
|
|
172
|
-
const denoBinDir = path.dirname(denoPathEnv);
|
|
173
|
-
// Use path.delimiter for cross-platform compatibility (: on Unix, ; on Windows)
|
|
174
|
-
testEnv.PATH = `${denoBinDir}${path.delimiter}${process.env.PATH}`;
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
try {
|
|
178
|
-
execSync("npm test", { stdio: "inherit", cwd: process.cwd(), env: testEnv });
|
|
179
|
-
success("Deno tests");
|
|
180
|
-
} catch (err) {
|
|
181
|
-
error("Tests failed");
|
|
182
|
-
allChecksPassed = false;
|
|
183
|
-
}
|
|
184
|
-
} else {
|
|
185
|
-
info("Deno tests skipped (Deno not available)");
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
// 6. Check package size
|
|
189
|
-
title("๐ Package size check...");
|
|
190
|
-
try {
|
|
191
|
-
const output = execSync("npm pack --dry-run 2>&1", { encoding: "utf-8" });
|
|
192
|
-
const sizeMatch = output.match(/package size:\s+(\d+\.?\d*)\s*(\w+)/i);
|
|
193
|
-
if (sizeMatch) {
|
|
194
|
-
const size = parseFloat(sizeMatch[1]);
|
|
195
|
-
const unit = sizeMatch[2];
|
|
196
|
-
success(`Package size: ${size} ${unit}`);
|
|
197
|
-
|
|
198
|
-
// Warn if package is larger than configured threshold
|
|
199
|
-
if (unit.toLowerCase() === "mb" && size > MAX_PACKAGE_SIZE_MB) {
|
|
200
|
-
info(
|
|
201
|
-
`Warning: Package size is quite large (${size} ${unit}). Consider excluding unnecessary files.`,
|
|
202
|
-
);
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
} catch (err) {
|
|
206
|
-
info("Could not determine package size");
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
// Summary
|
|
210
|
-
title("๐ Validation Summary");
|
|
211
|
-
if (allChecksPassed) {
|
|
212
|
-
success("All critical checks passed! โจ");
|
|
213
|
-
log(
|
|
214
|
-
"\nThe package is ready to be published to npm.",
|
|
215
|
-
GREEN,
|
|
216
|
-
);
|
|
217
|
-
process.exit(0);
|
|
218
|
-
} else {
|
|
219
|
-
error("Some checks failed. Please fix the issues before publishing.");
|
|
220
|
-
process.exit(1);
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
main().catch((err) => {
|
|
225
|
-
error(`Validation failed with error: ${err.message}`);
|
|
226
|
-
console.error(err);
|
|
227
|
-
process.exit(1);
|
|
228
|
-
});
|
package/web/README.md
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
# Web UI (Svelte)
|
|
2
|
-
|
|
3
|
-
This folder contains a Svelte-based reactive UI for PluresDB.
|
|
4
|
-
|
|
5
|
-
- svelte/ source using Vite
|
|
6
|
-
- Built assets go to web/dist/ and are served by the PluresDB HTTP server
|
|
7
|
-
|
|
8
|
-
## Dev
|
|
9
|
-
|
|
10
|
-
Use Node 18+.
|
|
11
|
-
|
|
12
|
-
```
|
|
13
|
-
cd web/svelte
|
|
14
|
-
npm i
|
|
15
|
-
npm run dev
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
Configure the API base URL if needed (defaults to same origin).
|
|
19
|
-
|
|
20
|
-
## Build
|
|
21
|
-
|
|
22
|
-
```
|
|
23
|
-
cd web/svelte
|
|
24
|
-
npm run build
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
This outputs to ../dist/. Start PluresDB serve and open the port+1 URL printed in the console.
|
package/web/svelte/package.json
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "pluresdb-ui",
|
|
3
|
-
"private": true,
|
|
4
|
-
"version": "0.0.1",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"scripts": {
|
|
7
|
-
"dev": "vite",
|
|
8
|
-
"build": "vite build",
|
|
9
|
-
"preview": "vite preview"
|
|
10
|
-
},
|
|
11
|
-
"devDependencies": {
|
|
12
|
-
"@codemirror/commands": "^6.6.0",
|
|
13
|
-
"@codemirror/lang-json": "^6.0.1",
|
|
14
|
-
"@codemirror/lint": "^6.8.0",
|
|
15
|
-
"@codemirror/state": "^6.4.0",
|
|
16
|
-
"@codemirror/theme-one-dark": "^6.1.2",
|
|
17
|
-
"@codemirror/view": "^6.28.1",
|
|
18
|
-
"@sveltejs/vite-plugin-svelte": "^6.2.1",
|
|
19
|
-
"ajv": "^8.12.0",
|
|
20
|
-
"svelte": "^5.17.3",
|
|
21
|
-
"vite": "^7.2.2"
|
|
22
|
-
},
|
|
23
|
-
"dependencies": {
|
|
24
|
-
"@monaco-editor/loader": "^1.5.0",
|
|
25
|
-
"cytoscape": "^3.29.3",
|
|
26
|
-
"cytoscape-cola": "^2.5.1",
|
|
27
|
-
"cytoscape-cose-bilkent": "^4.1.0",
|
|
28
|
-
"cytoscape-dagre": "^2.5.0",
|
|
29
|
-
"monaco-editor": "^0.49.0"
|
|
30
|
-
}
|
|
31
|
-
}
|