node-pagefind 0.1.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.
@@ -0,0 +1,405 @@
1
+ export { createPagefindClient, PagefindClient } from './pagefind.js';
2
+ export type { PagefindClientOptions, PagefindFilterMap, PagefindModule, PagefindResult, PagefindResultData, PagefindSearchOptions, PagefindSearchResponse, } from './types.js';
3
+ export { pagefindCLI as cli };
4
+ import pagefindCLI from './cli.js';
5
+ export declare const sdk: import("cli-forge").SDKCommand<{
6
+ unmatched: string[];
7
+ '--'?: string[];
8
+ } & {
9
+ url?: string;
10
+ } & {} & {
11
+ path?: string;
12
+ } & {} & {
13
+ cachePath?: string;
14
+ } & {}, void, {
15
+ search: import("cli-forge").CLI<{
16
+ unmatched: string[];
17
+ '--'?: string[];
18
+ } & {
19
+ url?: string;
20
+ } & {} & {
21
+ path?: string;
22
+ } & {} & {
23
+ cachePath?: string;
24
+ } & {} & {
25
+ query?: string;
26
+ } & {} & {
27
+ lang?: string;
28
+ } & {} & {
29
+ excerpt?: boolean;
30
+ } & {} & {
31
+ limit?: number;
32
+ } & {}, Promise<{
33
+ query: string;
34
+ results: {
35
+ score: number;
36
+ data: import("./types.js").PagefindResultData;
37
+ }[];
38
+ }>, {}, import("cli-forge").CLI<{
39
+ unmatched: string[];
40
+ '--'?: string[];
41
+ } & {
42
+ url?: string;
43
+ } & {} & {
44
+ path?: string;
45
+ } & {} & {
46
+ cachePath?: string;
47
+ } & {}, any, {}, any>>;
48
+ } & {
49
+ filters: import("cli-forge").CLI<{
50
+ unmatched: string[];
51
+ '--'?: string[];
52
+ } & {
53
+ url?: string;
54
+ } & {} & {
55
+ path?: string;
56
+ } & {} & {
57
+ cachePath?: string;
58
+ } & {}, Promise<import("./types.js").PagefindFilterMap>, {
59
+ search: import("cli-forge").CLI<{
60
+ unmatched: string[];
61
+ '--'?: string[];
62
+ } & {
63
+ url?: string;
64
+ } & {} & {
65
+ path?: string;
66
+ } & {} & {
67
+ cachePath?: string;
68
+ } & {} & {
69
+ query?: string;
70
+ } & {} & {
71
+ lang?: string;
72
+ } & {} & {
73
+ excerpt?: boolean;
74
+ } & {} & {
75
+ limit?: number;
76
+ } & {}, Promise<{
77
+ query: string;
78
+ results: {
79
+ score: number;
80
+ data: import("./types.js").PagefindResultData;
81
+ }[];
82
+ }>, {}, import("cli-forge").CLI<{
83
+ unmatched: string[];
84
+ '--'?: string[];
85
+ } & {
86
+ url?: string;
87
+ } & {} & {
88
+ path?: string;
89
+ } & {} & {
90
+ cachePath?: string;
91
+ } & {}, any, {}, any>>;
92
+ }, import("cli-forge").CLI<{
93
+ unmatched: string[];
94
+ '--'?: string[];
95
+ } & {
96
+ url?: string;
97
+ } & {} & {
98
+ path?: string;
99
+ } & {} & {
100
+ cachePath?: string;
101
+ } & {}, any, {
102
+ search: import("cli-forge").CLI<{
103
+ unmatched: string[];
104
+ '--'?: string[];
105
+ } & {
106
+ url?: string;
107
+ } & {} & {
108
+ path?: string;
109
+ } & {} & {
110
+ cachePath?: string;
111
+ } & {} & {
112
+ query?: string;
113
+ } & {} & {
114
+ lang?: string;
115
+ } & {} & {
116
+ excerpt?: boolean;
117
+ } & {} & {
118
+ limit?: number;
119
+ } & {}, Promise<{
120
+ query: string;
121
+ results: {
122
+ score: number;
123
+ data: import("./types.js").PagefindResultData;
124
+ }[];
125
+ }>, {}, import("cli-forge").CLI<{
126
+ unmatched: string[];
127
+ '--'?: string[];
128
+ } & {
129
+ url?: string;
130
+ } & {} & {
131
+ path?: string;
132
+ } & {} & {
133
+ cachePath?: string;
134
+ } & {}, any, {}, any>>;
135
+ }, any>>;
136
+ } & {
137
+ info: import("cli-forge").CLI<{
138
+ unmatched: string[];
139
+ '--'?: string[];
140
+ } & {
141
+ url?: string;
142
+ } & {} & {
143
+ path?: string;
144
+ } & {} & {
145
+ cachePath?: string;
146
+ } & {}, Promise<{
147
+ baseUrl: string;
148
+ pagefindPath: string;
149
+ initialized: boolean;
150
+ }>, {
151
+ search: import("cli-forge").CLI<{
152
+ unmatched: string[];
153
+ '--'?: string[];
154
+ } & {
155
+ url?: string;
156
+ } & {} & {
157
+ path?: string;
158
+ } & {} & {
159
+ cachePath?: string;
160
+ } & {} & {
161
+ query?: string;
162
+ } & {} & {
163
+ lang?: string;
164
+ } & {} & {
165
+ excerpt?: boolean;
166
+ } & {} & {
167
+ limit?: number;
168
+ } & {}, Promise<{
169
+ query: string;
170
+ results: {
171
+ score: number;
172
+ data: import("./types.js").PagefindResultData;
173
+ }[];
174
+ }>, {}, import("cli-forge").CLI<{
175
+ unmatched: string[];
176
+ '--'?: string[];
177
+ } & {
178
+ url?: string;
179
+ } & {} & {
180
+ path?: string;
181
+ } & {} & {
182
+ cachePath?: string;
183
+ } & {}, any, {}, any>>;
184
+ } & {
185
+ filters: import("cli-forge").CLI<{
186
+ unmatched: string[];
187
+ '--'?: string[];
188
+ } & {
189
+ url?: string;
190
+ } & {} & {
191
+ path?: string;
192
+ } & {} & {
193
+ cachePath?: string;
194
+ } & {}, Promise<import("./types.js").PagefindFilterMap>, {
195
+ search: import("cli-forge").CLI<{
196
+ unmatched: string[];
197
+ '--'?: string[];
198
+ } & {
199
+ url?: string;
200
+ } & {} & {
201
+ path?: string;
202
+ } & {} & {
203
+ cachePath?: string;
204
+ } & {} & {
205
+ query?: string;
206
+ } & {} & {
207
+ lang?: string;
208
+ } & {} & {
209
+ excerpt?: boolean;
210
+ } & {} & {
211
+ limit?: number;
212
+ } & {}, Promise<{
213
+ query: string;
214
+ results: {
215
+ score: number;
216
+ data: import("./types.js").PagefindResultData;
217
+ }[];
218
+ }>, {}, import("cli-forge").CLI<{
219
+ unmatched: string[];
220
+ '--'?: string[];
221
+ } & {
222
+ url?: string;
223
+ } & {} & {
224
+ path?: string;
225
+ } & {} & {
226
+ cachePath?: string;
227
+ } & {}, any, {}, any>>;
228
+ }, import("cli-forge").CLI<{
229
+ unmatched: string[];
230
+ '--'?: string[];
231
+ } & {
232
+ url?: string;
233
+ } & {} & {
234
+ path?: string;
235
+ } & {} & {
236
+ cachePath?: string;
237
+ } & {}, any, {
238
+ search: import("cli-forge").CLI<{
239
+ unmatched: string[];
240
+ '--'?: string[];
241
+ } & {
242
+ url?: string;
243
+ } & {} & {
244
+ path?: string;
245
+ } & {} & {
246
+ cachePath?: string;
247
+ } & {} & {
248
+ query?: string;
249
+ } & {} & {
250
+ lang?: string;
251
+ } & {} & {
252
+ excerpt?: boolean;
253
+ } & {} & {
254
+ limit?: number;
255
+ } & {}, Promise<{
256
+ query: string;
257
+ results: {
258
+ score: number;
259
+ data: import("./types.js").PagefindResultData;
260
+ }[];
261
+ }>, {}, import("cli-forge").CLI<{
262
+ unmatched: string[];
263
+ '--'?: string[];
264
+ } & {
265
+ url?: string;
266
+ } & {} & {
267
+ path?: string;
268
+ } & {} & {
269
+ cachePath?: string;
270
+ } & {}, any, {}, any>>;
271
+ }, any>>;
272
+ }, import("cli-forge").CLI<{
273
+ unmatched: string[];
274
+ '--'?: string[];
275
+ } & {
276
+ url?: string;
277
+ } & {} & {
278
+ path?: string;
279
+ } & {} & {
280
+ cachePath?: string;
281
+ } & {}, any, {
282
+ search: import("cli-forge").CLI<{
283
+ unmatched: string[];
284
+ '--'?: string[];
285
+ } & {
286
+ url?: string;
287
+ } & {} & {
288
+ path?: string;
289
+ } & {} & {
290
+ cachePath?: string;
291
+ } & {} & {
292
+ query?: string;
293
+ } & {} & {
294
+ lang?: string;
295
+ } & {} & {
296
+ excerpt?: boolean;
297
+ } & {} & {
298
+ limit?: number;
299
+ } & {}, Promise<{
300
+ query: string;
301
+ results: {
302
+ score: number;
303
+ data: import("./types.js").PagefindResultData;
304
+ }[];
305
+ }>, {}, import("cli-forge").CLI<{
306
+ unmatched: string[];
307
+ '--'?: string[];
308
+ } & {
309
+ url?: string;
310
+ } & {} & {
311
+ path?: string;
312
+ } & {} & {
313
+ cachePath?: string;
314
+ } & {}, any, {}, any>>;
315
+ } & {
316
+ filters: import("cli-forge").CLI<{
317
+ unmatched: string[];
318
+ '--'?: string[];
319
+ } & {
320
+ url?: string;
321
+ } & {} & {
322
+ path?: string;
323
+ } & {} & {
324
+ cachePath?: string;
325
+ } & {}, Promise<import("./types.js").PagefindFilterMap>, {
326
+ search: import("cli-forge").CLI<{
327
+ unmatched: string[];
328
+ '--'?: string[];
329
+ } & {
330
+ url?: string;
331
+ } & {} & {
332
+ path?: string;
333
+ } & {} & {
334
+ cachePath?: string;
335
+ } & {} & {
336
+ query?: string;
337
+ } & {} & {
338
+ lang?: string;
339
+ } & {} & {
340
+ excerpt?: boolean;
341
+ } & {} & {
342
+ limit?: number;
343
+ } & {}, Promise<{
344
+ query: string;
345
+ results: {
346
+ score: number;
347
+ data: import("./types.js").PagefindResultData;
348
+ }[];
349
+ }>, {}, import("cli-forge").CLI<{
350
+ unmatched: string[];
351
+ '--'?: string[];
352
+ } & {
353
+ url?: string;
354
+ } & {} & {
355
+ path?: string;
356
+ } & {} & {
357
+ cachePath?: string;
358
+ } & {}, any, {}, any>>;
359
+ }, import("cli-forge").CLI<{
360
+ unmatched: string[];
361
+ '--'?: string[];
362
+ } & {
363
+ url?: string;
364
+ } & {} & {
365
+ path?: string;
366
+ } & {} & {
367
+ cachePath?: string;
368
+ } & {}, any, {
369
+ search: import("cli-forge").CLI<{
370
+ unmatched: string[];
371
+ '--'?: string[];
372
+ } & {
373
+ url?: string;
374
+ } & {} & {
375
+ path?: string;
376
+ } & {} & {
377
+ cachePath?: string;
378
+ } & {} & {
379
+ query?: string;
380
+ } & {} & {
381
+ lang?: string;
382
+ } & {} & {
383
+ excerpt?: boolean;
384
+ } & {} & {
385
+ limit?: number;
386
+ } & {}, Promise<{
387
+ query: string;
388
+ results: {
389
+ score: number;
390
+ data: import("./types.js").PagefindResultData;
391
+ }[];
392
+ }>, {}, import("cli-forge").CLI<{
393
+ unmatched: string[];
394
+ '--'?: string[];
395
+ } & {
396
+ url?: string;
397
+ } & {} & {
398
+ path?: string;
399
+ } & {} & {
400
+ cachePath?: string;
401
+ } & {}, any, {}, any>>;
402
+ }, any>>;
403
+ }, any>>;
404
+ }>;
405
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACrE,YAAY,EACV,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,IAAI,GAAG,EAAE,CAAC;AAE9B,OAAO,WAAW,MAAM,UAAU,CAAC;AACnC,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAoB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,5 @@
1
+ export { createPagefindClient, PagefindClient } from './pagefind.js';
2
+ export { pagefindCLI as cli };
3
+ import pagefindCLI from './cli.js';
4
+ export const sdk = pagefindCLI.sdk();
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAUrE,OAAO,EAAE,WAAW,IAAI,GAAG,EAAE,CAAC;AAE9B,OAAO,WAAW,MAAM,UAAU,CAAC;AACnC,MAAM,CAAC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { PagefindClientOptions, PagefindFilterMap, PagefindSearchOptions, PagefindSearchResponse } from './types.js';
2
+ export declare class PagefindClient {
3
+ private localPath;
4
+ private baseUrl;
5
+ private pagefindPath;
6
+ private cachePath;
7
+ private initialized;
8
+ private pagefindModule;
9
+ constructor(options?: PagefindClientOptions);
10
+ private resolveLocalPath;
11
+ init(language?: string): Promise<this>;
12
+ private invalidateCache;
13
+ private loadPagefind;
14
+ private loadWithCustomCache;
15
+ private loadWithVersionCache;
16
+ private downloadPagefind;
17
+ search(query: string, options?: PagefindSearchOptions): Promise<PagefindSearchResponse>;
18
+ filters(): Promise<PagefindFilterMap>;
19
+ getInfo(): {
20
+ baseUrl: string;
21
+ pagefindPath: string;
22
+ initialized: boolean;
23
+ };
24
+ }
25
+ export declare function createPagefindClient(options: {
26
+ path?: string;
27
+ url?: string;
28
+ cachePath?: string;
29
+ }): PagefindClient;
30
+ //# sourceMappingURL=pagefind.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagefind.d.ts","sourceRoot":"","sources":["../src/pagefind.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,qBAAqB,EACrB,iBAAiB,EAEjB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAwCpB,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,cAAc,CAA+B;gBAEzC,OAAO,GAAE,qBAA0B;IAgB/C,OAAO,CAAC,gBAAgB;IAiBlB,IAAI,CAAC,QAAQ,SAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC1C,OAAO,CAAC,eAAe;YAeT,YAAY;YAkBZ,mBAAmB;YAsBnB,oBAAoB;YAqCpB,gBAAgB;IAQxB,MAAM,CACV,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,sBAAsB,CAAC;IAU5B,OAAO,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAQ3C,OAAO,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE;CAO3E;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,cAAc,CAQjB"}
@@ -0,0 +1,215 @@
1
+ var _a, _b;
2
+ import { __awaiter } from "tslib";
3
+ import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from 'fs';
4
+ import { tmpdir } from 'os';
5
+ import { join, resolve } from 'path';
6
+ // Shim window and location for basePath resolution
7
+ (_a = global.window) !== null && _a !== void 0 ? _a : (global.window = undefined);
8
+ (_b = global.document) !== null && _b !== void 0 ? _b : (global.document = undefined);
9
+ const CACHE_ROOT = join(tmpdir(), 'node-pagefind');
10
+ const KNOWN_VERSIONS_PATH = join(CACHE_ROOT, 'known-versions.json');
11
+ function readKnownVersions() {
12
+ if (!existsSync(KNOWN_VERSIONS_PATH)) {
13
+ return {};
14
+ }
15
+ return JSON.parse(readFileSync(KNOWN_VERSIONS_PATH, 'utf-8'));
16
+ }
17
+ function writeKnownVersions(versions) {
18
+ if (!existsSync(CACHE_ROOT)) {
19
+ mkdirSync(CACHE_ROOT, { recursive: true });
20
+ }
21
+ writeFileSync(KNOWN_VERSIONS_PATH, JSON.stringify(versions, null, 2));
22
+ }
23
+ function extractVersion(jsContent) {
24
+ // Pagefind embeds: const pagefind_version="X.Y.Z";
25
+ const match = jsContent.match(/pagefind_version\s*=\s*"([^"]+)"/);
26
+ if (!match) {
27
+ throw new Error('Could not extract pagefind version from downloaded pagefind.js');
28
+ }
29
+ return match[1];
30
+ }
31
+ function getCachedPagefindPath(version) {
32
+ return join(CACHE_ROOT, version, 'pagefind.js');
33
+ }
34
+ export class PagefindClient {
35
+ constructor(options = {}) {
36
+ var _a;
37
+ this.initialized = false;
38
+ this.pagefindModule = null;
39
+ this.localPath = options.localPath
40
+ ? this.resolveLocalPath(options.localPath)
41
+ : null;
42
+ this.baseUrl = options.baseUrl;
43
+ if (!this.localPath && !this.baseUrl) {
44
+ throw new Error('Either localPath or baseUrl must be provided');
45
+ }
46
+ this.pagefindPath = this.localPath
47
+ ? this.localPath
48
+ : `${this.baseUrl.replace(/\/$/, '')}/pagefind`;
49
+ this.cachePath = (_a = options.cachePath) !== null && _a !== void 0 ? _a : null;
50
+ }
51
+ resolveLocalPath(inputPath) {
52
+ const resolved = resolve(inputPath);
53
+ if (existsSync(join(resolved, 'pagefind.js'))) {
54
+ return resolved;
55
+ }
56
+ const withSubdir = join(resolved, 'pagefind');
57
+ if (existsSync(join(withSubdir, 'pagefind.js'))) {
58
+ return withSubdir;
59
+ }
60
+ throw new Error(`Could not find pagefind.js in "${resolved}" or "${withSubdir}"`);
61
+ }
62
+ init() {
63
+ return __awaiter(this, arguments, void 0, function* (language = 'en') {
64
+ if (this.initialized) {
65
+ return this;
66
+ }
67
+ this.pagefindModule = yield this.loadPagefind();
68
+ this.pagefindModule.options({
69
+ basePath: this.pagefindPath,
70
+ baseUrl: this.localPath ? `file://${this.localPath}` : this.baseUrl,
71
+ });
72
+ try {
73
+ yield this.pagefindModule.init(language);
74
+ }
75
+ catch (err) {
76
+ // Version mismatch — invalidate cache and retry once
77
+ if (!this.localPath) {
78
+ this.invalidateCache();
79
+ this.pagefindModule = yield this.loadPagefind(true);
80
+ this.pagefindModule.options({
81
+ basePath: this.pagefindPath,
82
+ baseUrl: this.baseUrl,
83
+ });
84
+ yield this.pagefindModule.init(language);
85
+ }
86
+ else {
87
+ throw err;
88
+ }
89
+ }
90
+ this.initialized = true;
91
+ return this;
92
+ });
93
+ }
94
+ invalidateCache() {
95
+ const versions = readKnownVersions();
96
+ const dataSource = this.pagefindPath;
97
+ const oldVersion = versions[dataSource];
98
+ if (oldVersion) {
99
+ const oldCacheDir = join(CACHE_ROOT, oldVersion);
100
+ if (existsSync(oldCacheDir)) {
101
+ rmSync(oldCacheDir, { recursive: true, force: true });
102
+ }
103
+ delete versions[dataSource];
104
+ writeKnownVersions(versions);
105
+ }
106
+ }
107
+ loadPagefind() {
108
+ return __awaiter(this, arguments, void 0, function* (skipCache = false) {
109
+ if (this.localPath) {
110
+ const localFile = join(this.localPath, 'pagefind.js');
111
+ const fileUrl = `file://localhost${localFile}`;
112
+ return (yield import(fileUrl));
113
+ }
114
+ const pagefindUrl = `${this.pagefindPath}/pagefind.js`;
115
+ // Custom cache path: simple download-to-path, no version management
116
+ if (this.cachePath) {
117
+ return this.loadWithCustomCache(pagefindUrl, skipCache);
118
+ }
119
+ // Default: version-keyed cache in /tmp/node-pagefind/
120
+ return this.loadWithVersionCache(pagefindUrl, skipCache);
121
+ });
122
+ }
123
+ loadWithCustomCache(pagefindUrl, skipCache) {
124
+ return __awaiter(this, void 0, void 0, function* () {
125
+ const cacheDir = resolve(this.cachePath);
126
+ const cachedFile = join(cacheDir, 'pagefind.js');
127
+ if (!skipCache && existsSync(cachedFile)) {
128
+ const fileUrl = `file://localhost${cachedFile}`;
129
+ return (yield import(fileUrl));
130
+ }
131
+ const content = yield this.downloadPagefind(pagefindUrl);
132
+ if (!existsSync(cacheDir)) {
133
+ mkdirSync(cacheDir, { recursive: true });
134
+ }
135
+ writeFileSync(cachedFile, content);
136
+ const fileUrl = `file://localhost${cachedFile}`;
137
+ return (yield import(fileUrl));
138
+ });
139
+ }
140
+ loadWithVersionCache(pagefindUrl, skipCache) {
141
+ return __awaiter(this, void 0, void 0, function* () {
142
+ // Check known versions map for a cached copy
143
+ const dataSource = this.pagefindPath;
144
+ if (!skipCache) {
145
+ const versions = readKnownVersions();
146
+ const knownVersion = versions[dataSource];
147
+ if (knownVersion) {
148
+ const cachedFile = getCachedPagefindPath(knownVersion);
149
+ if (existsSync(cachedFile)) {
150
+ const fileUrl = `file://localhost${cachedFile}`;
151
+ return (yield import(fileUrl));
152
+ }
153
+ }
154
+ }
155
+ const content = yield this.downloadPagefind(pagefindUrl);
156
+ const version = extractVersion(content);
157
+ // Store in version-keyed cache directory
158
+ const versionDir = join(CACHE_ROOT, version);
159
+ if (!existsSync(versionDir)) {
160
+ mkdirSync(versionDir, { recursive: true });
161
+ }
162
+ writeFileSync(join(versionDir, 'pagefind.js'), content);
163
+ // Update known versions map
164
+ const versions = readKnownVersions();
165
+ versions[dataSource] = version;
166
+ writeKnownVersions(versions);
167
+ const fileUrl = `file://localhost${join(versionDir, 'pagefind.js')}`;
168
+ return (yield import(fileUrl));
169
+ });
170
+ }
171
+ downloadPagefind(pagefindUrl) {
172
+ return __awaiter(this, void 0, void 0, function* () {
173
+ const response = yield fetch(pagefindUrl);
174
+ if (!response.ok) {
175
+ throw new Error(`Failed to download Pagefind: ${response.status}`);
176
+ }
177
+ return response.text();
178
+ });
179
+ }
180
+ search(query_1) {
181
+ return __awaiter(this, arguments, void 0, function* (query, options = {}) {
182
+ if (!this.initialized) {
183
+ yield this.init(options.language);
184
+ }
185
+ return this.pagefindModule.search(query, {
186
+ filters: options.filters,
187
+ });
188
+ });
189
+ }
190
+ filters() {
191
+ return __awaiter(this, void 0, void 0, function* () {
192
+ if (!this.initialized) {
193
+ yield this.init();
194
+ }
195
+ return this.pagefindModule.filters();
196
+ });
197
+ }
198
+ getInfo() {
199
+ return {
200
+ baseUrl: this.baseUrl,
201
+ pagefindPath: this.pagefindPath,
202
+ initialized: this.initialized,
203
+ };
204
+ }
205
+ }
206
+ export function createPagefindClient(options) {
207
+ if (options.path) {
208
+ return new PagefindClient({ localPath: options.path });
209
+ }
210
+ return new PagefindClient({
211
+ baseUrl: options.url,
212
+ cachePath: options.cachePath,
213
+ });
214
+ }
215
+ //# sourceMappingURL=pagefind.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagefind.js","sourceRoot":"","sources":["../src/pagefind.ts"],"names":[],"mappings":"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"}