node-pagefind 0.1.0 → 0.2.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 +50 -50
- package/dist/cli.d.ts +1187 -10
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +89 -11
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +1180 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/pagefind.d.ts +59 -2
- package/dist/pagefind.d.ts.map +1 -1
- package/dist/pagefind.js +397 -58
- package/dist/pagefind.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/digest.d.ts +0 -20
- package/dist/digest.d.ts.map +0 -1
- package/dist/digest.js +0 -424
- package/dist/digest.js.map +0 -1
- package/dist/utils.d.ts +0 -19
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js +0 -115
- package/dist/utils.js.map +0 -1
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAyBA,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA0Mf,CAAC;AAEH,eAAe,WAAW,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,25 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { __awaiter } from "tslib";
|
|
3
3
|
import { cli } from 'cli-forge';
|
|
4
|
-
import {
|
|
4
|
+
import { PerformanceObserver } from 'perf_hooks';
|
|
5
|
+
import { createPagefindClient, printCacheInspection } from './pagefind.js';
|
|
6
|
+
function installPerfLogger() {
|
|
7
|
+
const measures = [];
|
|
8
|
+
const obs = new PerformanceObserver((list) => {
|
|
9
|
+
measures.push(...list.getEntries());
|
|
10
|
+
});
|
|
11
|
+
obs.observe({ entryTypes: ['measure'] });
|
|
12
|
+
process.on('beforeExit', () => {
|
|
13
|
+
obs.disconnect();
|
|
14
|
+
if (measures.length === 0)
|
|
15
|
+
return;
|
|
16
|
+
console.error('\n[perf] ─────────────────────────────');
|
|
17
|
+
for (const m of measures) {
|
|
18
|
+
console.error(`[perf] ${m.name.padEnd(10)} ${m.duration.toFixed(0)}ms`);
|
|
19
|
+
}
|
|
20
|
+
console.error('[perf] ─────────────────────────────');
|
|
21
|
+
});
|
|
22
|
+
}
|
|
5
23
|
const pagefindCLI = cli('pagefind', {
|
|
6
24
|
description: 'Query Pagefind search indices from Node.js',
|
|
7
25
|
builder: (args) => args
|
|
@@ -23,6 +41,21 @@ const pagefindCLI = cli('pagefind', {
|
|
|
23
41
|
.option('cachePath', {
|
|
24
42
|
type: 'string',
|
|
25
43
|
description: 'Custom cache directory for downloaded pagefind.js (bypasses version-based caching)',
|
|
44
|
+
})
|
|
45
|
+
.option('verbose', {
|
|
46
|
+
type: 'boolean',
|
|
47
|
+
default: false,
|
|
48
|
+
description: 'Log fetch events and cache details to stderr',
|
|
49
|
+
})
|
|
50
|
+
.option('skipCache', {
|
|
51
|
+
type: 'boolean',
|
|
52
|
+
default: false,
|
|
53
|
+
description: 'Skip all caching — always fetch from remote',
|
|
54
|
+
})
|
|
55
|
+
.middleware((opts) => {
|
|
56
|
+
if (opts.verbose) {
|
|
57
|
+
installPerfLogger();
|
|
58
|
+
}
|
|
26
59
|
})
|
|
27
60
|
.command('search', {
|
|
28
61
|
description: 'Search the pagefind index',
|
|
@@ -46,31 +79,57 @@ const pagefindCLI = cli('pagefind', {
|
|
|
46
79
|
type: 'number',
|
|
47
80
|
default: 10,
|
|
48
81
|
description: 'Maximum results to show',
|
|
82
|
+
})
|
|
83
|
+
.option('minScore', {
|
|
84
|
+
type: 'number',
|
|
85
|
+
default: 5,
|
|
86
|
+
description: 'Minimum score threshold (0-1) to include a result',
|
|
49
87
|
}),
|
|
50
88
|
handler: (opts) => __awaiter(void 0, void 0, void 0, function* () {
|
|
89
|
+
var _a, _b;
|
|
90
|
+
performance.mark('start');
|
|
51
91
|
const client = createPagefindClient({
|
|
52
92
|
path: opts.path,
|
|
53
93
|
url: opts.url,
|
|
54
94
|
cachePath: opts.cachePath,
|
|
95
|
+
verbose: opts.verbose,
|
|
96
|
+
skipCache: opts.skipCache,
|
|
55
97
|
});
|
|
56
98
|
yield client.init(opts.lang);
|
|
57
|
-
|
|
99
|
+
performance.mark('init');
|
|
100
|
+
performance.measure('init', 'start', 'init');
|
|
101
|
+
// When invoked via $0 alias, positionals land in unmatched
|
|
102
|
+
const query = (_a = opts.query) !== null && _a !== void 0 ? _a : (_b = opts.unmatched) === null || _b === void 0 ? void 0 : _b[0];
|
|
103
|
+
if (!query) {
|
|
104
|
+
console.error('Usage: pagefind search <query>');
|
|
105
|
+
process.exit(1);
|
|
106
|
+
}
|
|
58
107
|
const result = yield client.search(query, {
|
|
59
108
|
language: opts.lang,
|
|
60
109
|
excerpt: opts.excerpt,
|
|
61
110
|
limit: opts.limit,
|
|
62
111
|
});
|
|
63
|
-
|
|
112
|
+
performance.mark('search');
|
|
113
|
+
performance.measure('search', 'init', 'search');
|
|
114
|
+
const candidates = result.results
|
|
115
|
+
.filter((r) => {
|
|
116
|
+
return !opts.minScore || r.score >= opts.minScore;
|
|
117
|
+
})
|
|
118
|
+
.slice(0, opts.limit);
|
|
119
|
+
if (candidates.length === 0) {
|
|
64
120
|
console.log('No results found');
|
|
121
|
+
performance.measure('total', 'start');
|
|
65
122
|
return { query, results: [] };
|
|
66
123
|
}
|
|
67
124
|
console.log(`\nFound ${result.results.length} result(s):\n`);
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
125
|
+
const resolvedResults = yield Promise.all(candidates.map((r) => __awaiter(void 0, void 0, void 0, function* () {
|
|
126
|
+
return ({
|
|
127
|
+
score: r.score,
|
|
128
|
+
data: yield r.data(),
|
|
129
|
+
});
|
|
130
|
+
})));
|
|
131
|
+
for (const { score, data } of resolvedResults) {
|
|
132
|
+
console.log(`[${score.toFixed(2)}] ${data.meta.title}`);
|
|
74
133
|
console.log(` URL: ${data.url}`);
|
|
75
134
|
if (opts.excerpt && data.excerpt) {
|
|
76
135
|
console.log(` ${data.excerpt
|
|
@@ -79,9 +138,13 @@ const pagefindCLI = cli('pagefind', {
|
|
|
79
138
|
}
|
|
80
139
|
console.log();
|
|
81
140
|
}
|
|
82
|
-
|
|
83
|
-
|
|
141
|
+
const remaining = result.results.length - candidates.length;
|
|
142
|
+
if (remaining > 0) {
|
|
143
|
+
console.log(`... and ${remaining} more results`);
|
|
84
144
|
}
|
|
145
|
+
performance.mark('resolve');
|
|
146
|
+
performance.measure('resolve', 'search', 'resolve');
|
|
147
|
+
performance.measure('total', 'start', 'resolve');
|
|
85
148
|
return { query, results: resolvedResults };
|
|
86
149
|
}),
|
|
87
150
|
alias: ['$0'],
|
|
@@ -90,17 +153,23 @@ const pagefindCLI = cli('pagefind', {
|
|
|
90
153
|
description: 'List available search filters',
|
|
91
154
|
builder: (c) => c,
|
|
92
155
|
handler: (opts) => __awaiter(void 0, void 0, void 0, function* () {
|
|
156
|
+
performance.mark('start');
|
|
93
157
|
const client = createPagefindClient({
|
|
94
158
|
path: opts.path,
|
|
95
159
|
url: opts.url,
|
|
96
160
|
cachePath: opts.cachePath,
|
|
161
|
+
verbose: opts.verbose,
|
|
162
|
+
skipCache: opts.skipCache,
|
|
97
163
|
});
|
|
98
164
|
yield client.init();
|
|
165
|
+
performance.mark('init');
|
|
166
|
+
performance.measure('init', 'start', 'init');
|
|
99
167
|
const filters = yield client.filters();
|
|
100
168
|
console.log('Available filters:');
|
|
101
169
|
for (const [key, values] of Object.entries(filters)) {
|
|
102
170
|
console.log(` ${key}: ${Object.keys(values).join(', ')}`);
|
|
103
171
|
}
|
|
172
|
+
performance.measure('total', 'start');
|
|
104
173
|
return filters;
|
|
105
174
|
}),
|
|
106
175
|
})
|
|
@@ -112,6 +181,8 @@ const pagefindCLI = cli('pagefind', {
|
|
|
112
181
|
path: opts.path,
|
|
113
182
|
url: opts.url,
|
|
114
183
|
cachePath: opts.cachePath,
|
|
184
|
+
verbose: opts.verbose,
|
|
185
|
+
skipCache: opts.skipCache,
|
|
115
186
|
});
|
|
116
187
|
const info = client.getInfo();
|
|
117
188
|
console.log(`Base URL: ${info.baseUrl}`);
|
|
@@ -119,6 +190,13 @@ const pagefindCLI = cli('pagefind', {
|
|
|
119
190
|
console.log(`Initialized: ${info.initialized}`);
|
|
120
191
|
return info;
|
|
121
192
|
}),
|
|
193
|
+
})
|
|
194
|
+
.command('inspect-cache', {
|
|
195
|
+
description: 'Show information about the local pagefind cache',
|
|
196
|
+
builder: (c) => c,
|
|
197
|
+
handler: () => __awaiter(void 0, void 0, void 0, function* () {
|
|
198
|
+
return printCacheInspection();
|
|
199
|
+
}),
|
|
122
200
|
}),
|
|
123
201
|
});
|
|
124
202
|
export default pagefindCLI;
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|