@zipbul/gildash 0.0.1

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 (58) hide show
  1. package/LICENSE +21 -0
  2. package/README.ko.md +386 -0
  3. package/README.md +445 -0
  4. package/dist/index.d.ts +1 -0
  5. package/dist/index.js +2736 -0
  6. package/dist/index.js.map +42 -0
  7. package/dist/migrations/0000_soft_revanche.sql +56 -0
  8. package/dist/migrations/meta/0000_snapshot.json +408 -0
  9. package/dist/migrations/meta/_journal.json +13 -0
  10. package/dist/migrations/migrations/0000_soft_revanche.sql +56 -0
  11. package/dist/migrations/migrations/meta/0000_snapshot.json +408 -0
  12. package/dist/migrations/migrations/meta/_journal.json +13 -0
  13. package/dist/src/codeledger.d.ts +103 -0
  14. package/dist/src/common/hasher.d.ts +2 -0
  15. package/dist/src/common/index.d.ts +5 -0
  16. package/dist/src/common/lru-cache.d.ts +10 -0
  17. package/dist/src/common/path-utils.d.ts +2 -0
  18. package/dist/src/common/project-discovery.d.ts +6 -0
  19. package/dist/src/common/tsconfig-resolver.d.ts +6 -0
  20. package/dist/src/errors.d.ts +42 -0
  21. package/dist/src/extractor/calls-extractor.d.ts +3 -0
  22. package/dist/src/extractor/extractor-utils.d.ts +5 -0
  23. package/dist/src/extractor/heritage-extractor.d.ts +3 -0
  24. package/dist/src/extractor/imports-extractor.d.ts +4 -0
  25. package/dist/src/extractor/index.d.ts +7 -0
  26. package/dist/src/extractor/relation-extractor.d.ts +4 -0
  27. package/dist/src/extractor/symbol-extractor.d.ts +3 -0
  28. package/dist/src/extractor/types.d.ts +162 -0
  29. package/dist/src/gildash.d.ts +284 -0
  30. package/dist/src/index.d.ts +8 -0
  31. package/dist/src/indexer/file-indexer.d.ts +27 -0
  32. package/dist/src/indexer/index-coordinator.d.ts +80 -0
  33. package/dist/src/indexer/index.d.ts +8 -0
  34. package/dist/src/indexer/relation-indexer.d.ts +24 -0
  35. package/dist/src/indexer/symbol-indexer.d.ts +29 -0
  36. package/dist/src/parser/ast-utils.d.ts +10 -0
  37. package/dist/src/parser/index.d.ts +6 -0
  38. package/dist/src/parser/jsdoc-parser.d.ts +2 -0
  39. package/dist/src/parser/parse-cache.d.ts +10 -0
  40. package/dist/src/parser/parse-source.d.ts +3 -0
  41. package/dist/src/parser/source-position.d.ts +3 -0
  42. package/dist/src/parser/types.d.ts +16 -0
  43. package/dist/src/search/dependency-graph.d.ts +71 -0
  44. package/dist/src/search/index.d.ts +6 -0
  45. package/dist/src/search/relation-search.d.ts +45 -0
  46. package/dist/src/search/symbol-search.d.ts +76 -0
  47. package/dist/src/store/connection.d.ts +30 -0
  48. package/dist/src/store/index.d.ts +10 -0
  49. package/dist/src/store/repositories/file.repository.d.ts +18 -0
  50. package/dist/src/store/repositories/fts-utils.d.ts +1 -0
  51. package/dist/src/store/repositories/relation.repository.d.ts +29 -0
  52. package/dist/src/store/repositories/symbol.repository.d.ts +46 -0
  53. package/dist/src/store/schema.d.ts +634 -0
  54. package/dist/src/watcher/index.d.ts +3 -0
  55. package/dist/src/watcher/ownership.d.ts +22 -0
  56. package/dist/src/watcher/project-watcher.d.ts +13 -0
  57. package/dist/src/watcher/types.d.ts +11 -0
  58. package/package.json +58 -0
@@ -0,0 +1,634 @@
1
+ export declare const files: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
2
+ name: "files";
3
+ schema: undefined;
4
+ columns: {
5
+ project: import("drizzle-orm/sqlite-core").SQLiteColumn<{
6
+ name: "project";
7
+ tableName: "files";
8
+ dataType: "string";
9
+ columnType: "SQLiteText";
10
+ data: string;
11
+ driverParam: string;
12
+ notNull: true;
13
+ hasDefault: false;
14
+ isPrimaryKey: false;
15
+ isAutoincrement: false;
16
+ hasRuntimeDefault: false;
17
+ enumValues: [string, ...string[]];
18
+ baseColumn: never;
19
+ identity: undefined;
20
+ generated: undefined;
21
+ }, {}, {
22
+ length: number | undefined;
23
+ }>;
24
+ filePath: import("drizzle-orm/sqlite-core").SQLiteColumn<{
25
+ name: "file_path";
26
+ tableName: "files";
27
+ dataType: "string";
28
+ columnType: "SQLiteText";
29
+ data: string;
30
+ driverParam: string;
31
+ notNull: true;
32
+ hasDefault: false;
33
+ isPrimaryKey: false;
34
+ isAutoincrement: false;
35
+ hasRuntimeDefault: false;
36
+ enumValues: [string, ...string[]];
37
+ baseColumn: never;
38
+ identity: undefined;
39
+ generated: undefined;
40
+ }, {}, {
41
+ length: number | undefined;
42
+ }>;
43
+ mtimeMs: import("drizzle-orm/sqlite-core").SQLiteColumn<{
44
+ name: "mtime_ms";
45
+ tableName: "files";
46
+ dataType: "number";
47
+ columnType: "SQLiteReal";
48
+ data: number;
49
+ driverParam: number;
50
+ notNull: true;
51
+ hasDefault: false;
52
+ isPrimaryKey: false;
53
+ isAutoincrement: false;
54
+ hasRuntimeDefault: false;
55
+ enumValues: undefined;
56
+ baseColumn: never;
57
+ identity: undefined;
58
+ generated: undefined;
59
+ }, {}, {}>;
60
+ size: import("drizzle-orm/sqlite-core").SQLiteColumn<{
61
+ name: "size";
62
+ tableName: "files";
63
+ dataType: "number";
64
+ columnType: "SQLiteInteger";
65
+ data: number;
66
+ driverParam: number;
67
+ notNull: true;
68
+ hasDefault: false;
69
+ isPrimaryKey: false;
70
+ isAutoincrement: false;
71
+ hasRuntimeDefault: false;
72
+ enumValues: undefined;
73
+ baseColumn: never;
74
+ identity: undefined;
75
+ generated: undefined;
76
+ }, {}, {}>;
77
+ contentHash: import("drizzle-orm/sqlite-core").SQLiteColumn<{
78
+ name: "content_hash";
79
+ tableName: "files";
80
+ dataType: "string";
81
+ columnType: "SQLiteText";
82
+ data: string;
83
+ driverParam: string;
84
+ notNull: true;
85
+ hasDefault: false;
86
+ isPrimaryKey: false;
87
+ isAutoincrement: false;
88
+ hasRuntimeDefault: false;
89
+ enumValues: [string, ...string[]];
90
+ baseColumn: never;
91
+ identity: undefined;
92
+ generated: undefined;
93
+ }, {}, {
94
+ length: number | undefined;
95
+ }>;
96
+ updatedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
97
+ name: "updated_at";
98
+ tableName: "files";
99
+ dataType: "string";
100
+ columnType: "SQLiteText";
101
+ data: string;
102
+ driverParam: string;
103
+ notNull: true;
104
+ hasDefault: false;
105
+ isPrimaryKey: false;
106
+ isAutoincrement: false;
107
+ hasRuntimeDefault: false;
108
+ enumValues: [string, ...string[]];
109
+ baseColumn: never;
110
+ identity: undefined;
111
+ generated: undefined;
112
+ }, {}, {
113
+ length: number | undefined;
114
+ }>;
115
+ };
116
+ dialect: "sqlite";
117
+ }>;
118
+ export declare const symbols: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
119
+ name: "symbols";
120
+ schema: undefined;
121
+ columns: {
122
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
123
+ name: "id";
124
+ tableName: "symbols";
125
+ dataType: "number";
126
+ columnType: "SQLiteInteger";
127
+ data: number;
128
+ driverParam: number;
129
+ notNull: true;
130
+ hasDefault: true;
131
+ isPrimaryKey: true;
132
+ isAutoincrement: false;
133
+ hasRuntimeDefault: false;
134
+ enumValues: undefined;
135
+ baseColumn: never;
136
+ identity: undefined;
137
+ generated: undefined;
138
+ }, {}, {}>;
139
+ project: import("drizzle-orm/sqlite-core").SQLiteColumn<{
140
+ name: "project";
141
+ tableName: "symbols";
142
+ dataType: "string";
143
+ columnType: "SQLiteText";
144
+ data: string;
145
+ driverParam: string;
146
+ notNull: true;
147
+ hasDefault: false;
148
+ isPrimaryKey: false;
149
+ isAutoincrement: false;
150
+ hasRuntimeDefault: false;
151
+ enumValues: [string, ...string[]];
152
+ baseColumn: never;
153
+ identity: undefined;
154
+ generated: undefined;
155
+ }, {}, {
156
+ length: number | undefined;
157
+ }>;
158
+ filePath: import("drizzle-orm/sqlite-core").SQLiteColumn<{
159
+ name: "file_path";
160
+ tableName: "symbols";
161
+ dataType: "string";
162
+ columnType: "SQLiteText";
163
+ data: string;
164
+ driverParam: string;
165
+ notNull: true;
166
+ hasDefault: false;
167
+ isPrimaryKey: false;
168
+ isAutoincrement: false;
169
+ hasRuntimeDefault: false;
170
+ enumValues: [string, ...string[]];
171
+ baseColumn: never;
172
+ identity: undefined;
173
+ generated: undefined;
174
+ }, {}, {
175
+ length: number | undefined;
176
+ }>;
177
+ kind: import("drizzle-orm/sqlite-core").SQLiteColumn<{
178
+ name: "kind";
179
+ tableName: "symbols";
180
+ dataType: "string";
181
+ columnType: "SQLiteText";
182
+ data: string;
183
+ driverParam: string;
184
+ notNull: true;
185
+ hasDefault: false;
186
+ isPrimaryKey: false;
187
+ isAutoincrement: false;
188
+ hasRuntimeDefault: false;
189
+ enumValues: [string, ...string[]];
190
+ baseColumn: never;
191
+ identity: undefined;
192
+ generated: undefined;
193
+ }, {}, {
194
+ length: number | undefined;
195
+ }>;
196
+ name: import("drizzle-orm/sqlite-core").SQLiteColumn<{
197
+ name: "name";
198
+ tableName: "symbols";
199
+ dataType: "string";
200
+ columnType: "SQLiteText";
201
+ data: string;
202
+ driverParam: string;
203
+ notNull: true;
204
+ hasDefault: false;
205
+ isPrimaryKey: false;
206
+ isAutoincrement: false;
207
+ hasRuntimeDefault: false;
208
+ enumValues: [string, ...string[]];
209
+ baseColumn: never;
210
+ identity: undefined;
211
+ generated: undefined;
212
+ }, {}, {
213
+ length: number | undefined;
214
+ }>;
215
+ startLine: import("drizzle-orm/sqlite-core").SQLiteColumn<{
216
+ name: "start_line";
217
+ tableName: "symbols";
218
+ dataType: "number";
219
+ columnType: "SQLiteInteger";
220
+ data: number;
221
+ driverParam: number;
222
+ notNull: true;
223
+ hasDefault: false;
224
+ isPrimaryKey: false;
225
+ isAutoincrement: false;
226
+ hasRuntimeDefault: false;
227
+ enumValues: undefined;
228
+ baseColumn: never;
229
+ identity: undefined;
230
+ generated: undefined;
231
+ }, {}, {}>;
232
+ startColumn: import("drizzle-orm/sqlite-core").SQLiteColumn<{
233
+ name: "start_column";
234
+ tableName: "symbols";
235
+ dataType: "number";
236
+ columnType: "SQLiteInteger";
237
+ data: number;
238
+ driverParam: number;
239
+ notNull: true;
240
+ hasDefault: false;
241
+ isPrimaryKey: false;
242
+ isAutoincrement: false;
243
+ hasRuntimeDefault: false;
244
+ enumValues: undefined;
245
+ baseColumn: never;
246
+ identity: undefined;
247
+ generated: undefined;
248
+ }, {}, {}>;
249
+ endLine: import("drizzle-orm/sqlite-core").SQLiteColumn<{
250
+ name: "end_line";
251
+ tableName: "symbols";
252
+ dataType: "number";
253
+ columnType: "SQLiteInteger";
254
+ data: number;
255
+ driverParam: number;
256
+ notNull: true;
257
+ hasDefault: false;
258
+ isPrimaryKey: false;
259
+ isAutoincrement: false;
260
+ hasRuntimeDefault: false;
261
+ enumValues: undefined;
262
+ baseColumn: never;
263
+ identity: undefined;
264
+ generated: undefined;
265
+ }, {}, {}>;
266
+ endColumn: import("drizzle-orm/sqlite-core").SQLiteColumn<{
267
+ name: "end_column";
268
+ tableName: "symbols";
269
+ dataType: "number";
270
+ columnType: "SQLiteInteger";
271
+ data: number;
272
+ driverParam: number;
273
+ notNull: true;
274
+ hasDefault: false;
275
+ isPrimaryKey: false;
276
+ isAutoincrement: false;
277
+ hasRuntimeDefault: false;
278
+ enumValues: undefined;
279
+ baseColumn: never;
280
+ identity: undefined;
281
+ generated: undefined;
282
+ }, {}, {}>;
283
+ isExported: import("drizzle-orm/sqlite-core").SQLiteColumn<{
284
+ name: "is_exported";
285
+ tableName: "symbols";
286
+ dataType: "number";
287
+ columnType: "SQLiteInteger";
288
+ data: number;
289
+ driverParam: number;
290
+ notNull: true;
291
+ hasDefault: true;
292
+ isPrimaryKey: false;
293
+ isAutoincrement: false;
294
+ hasRuntimeDefault: false;
295
+ enumValues: undefined;
296
+ baseColumn: never;
297
+ identity: undefined;
298
+ generated: undefined;
299
+ }, {}, {}>;
300
+ signature: import("drizzle-orm/sqlite-core").SQLiteColumn<{
301
+ name: "signature";
302
+ tableName: "symbols";
303
+ dataType: "string";
304
+ columnType: "SQLiteText";
305
+ data: string;
306
+ driverParam: string;
307
+ notNull: false;
308
+ hasDefault: false;
309
+ isPrimaryKey: false;
310
+ isAutoincrement: false;
311
+ hasRuntimeDefault: false;
312
+ enumValues: [string, ...string[]];
313
+ baseColumn: never;
314
+ identity: undefined;
315
+ generated: undefined;
316
+ }, {}, {
317
+ length: number | undefined;
318
+ }>;
319
+ fingerprint: import("drizzle-orm/sqlite-core").SQLiteColumn<{
320
+ name: "fingerprint";
321
+ tableName: "symbols";
322
+ dataType: "string";
323
+ columnType: "SQLiteText";
324
+ data: string;
325
+ driverParam: string;
326
+ notNull: false;
327
+ hasDefault: false;
328
+ isPrimaryKey: false;
329
+ isAutoincrement: false;
330
+ hasRuntimeDefault: false;
331
+ enumValues: [string, ...string[]];
332
+ baseColumn: never;
333
+ identity: undefined;
334
+ generated: undefined;
335
+ }, {}, {
336
+ length: number | undefined;
337
+ }>;
338
+ detailJson: import("drizzle-orm/sqlite-core").SQLiteColumn<{
339
+ name: "detail_json";
340
+ tableName: "symbols";
341
+ dataType: "string";
342
+ columnType: "SQLiteText";
343
+ data: string;
344
+ driverParam: string;
345
+ notNull: false;
346
+ hasDefault: false;
347
+ isPrimaryKey: false;
348
+ isAutoincrement: false;
349
+ hasRuntimeDefault: false;
350
+ enumValues: [string, ...string[]];
351
+ baseColumn: never;
352
+ identity: undefined;
353
+ generated: undefined;
354
+ }, {}, {
355
+ length: number | undefined;
356
+ }>;
357
+ contentHash: import("drizzle-orm/sqlite-core").SQLiteColumn<{
358
+ name: "content_hash";
359
+ tableName: "symbols";
360
+ dataType: "string";
361
+ columnType: "SQLiteText";
362
+ data: string;
363
+ driverParam: string;
364
+ notNull: true;
365
+ hasDefault: false;
366
+ isPrimaryKey: false;
367
+ isAutoincrement: false;
368
+ hasRuntimeDefault: false;
369
+ enumValues: [string, ...string[]];
370
+ baseColumn: never;
371
+ identity: undefined;
372
+ generated: undefined;
373
+ }, {}, {
374
+ length: number | undefined;
375
+ }>;
376
+ indexedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
377
+ name: "indexed_at";
378
+ tableName: "symbols";
379
+ dataType: "string";
380
+ columnType: "SQLiteText";
381
+ data: string;
382
+ driverParam: string;
383
+ notNull: true;
384
+ hasDefault: false;
385
+ isPrimaryKey: false;
386
+ isAutoincrement: false;
387
+ hasRuntimeDefault: false;
388
+ enumValues: [string, ...string[]];
389
+ baseColumn: never;
390
+ identity: undefined;
391
+ generated: undefined;
392
+ }, {}, {
393
+ length: number | undefined;
394
+ }>;
395
+ };
396
+ dialect: "sqlite";
397
+ }>;
398
+ export declare const relations: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
399
+ name: "relations";
400
+ schema: undefined;
401
+ columns: {
402
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
403
+ name: "id";
404
+ tableName: "relations";
405
+ dataType: "number";
406
+ columnType: "SQLiteInteger";
407
+ data: number;
408
+ driverParam: number;
409
+ notNull: true;
410
+ hasDefault: true;
411
+ isPrimaryKey: true;
412
+ isAutoincrement: false;
413
+ hasRuntimeDefault: false;
414
+ enumValues: undefined;
415
+ baseColumn: never;
416
+ identity: undefined;
417
+ generated: undefined;
418
+ }, {}, {}>;
419
+ project: import("drizzle-orm/sqlite-core").SQLiteColumn<{
420
+ name: "project";
421
+ tableName: "relations";
422
+ dataType: "string";
423
+ columnType: "SQLiteText";
424
+ data: string;
425
+ driverParam: string;
426
+ notNull: true;
427
+ hasDefault: false;
428
+ isPrimaryKey: false;
429
+ isAutoincrement: false;
430
+ hasRuntimeDefault: false;
431
+ enumValues: [string, ...string[]];
432
+ baseColumn: never;
433
+ identity: undefined;
434
+ generated: undefined;
435
+ }, {}, {
436
+ length: number | undefined;
437
+ }>;
438
+ type: import("drizzle-orm/sqlite-core").SQLiteColumn<{
439
+ name: "type";
440
+ tableName: "relations";
441
+ dataType: "string";
442
+ columnType: "SQLiteText";
443
+ data: string;
444
+ driverParam: string;
445
+ notNull: true;
446
+ hasDefault: false;
447
+ isPrimaryKey: false;
448
+ isAutoincrement: false;
449
+ hasRuntimeDefault: false;
450
+ enumValues: [string, ...string[]];
451
+ baseColumn: never;
452
+ identity: undefined;
453
+ generated: undefined;
454
+ }, {}, {
455
+ length: number | undefined;
456
+ }>;
457
+ srcFilePath: import("drizzle-orm/sqlite-core").SQLiteColumn<{
458
+ name: "src_file_path";
459
+ tableName: "relations";
460
+ dataType: "string";
461
+ columnType: "SQLiteText";
462
+ data: string;
463
+ driverParam: string;
464
+ notNull: true;
465
+ hasDefault: false;
466
+ isPrimaryKey: false;
467
+ isAutoincrement: false;
468
+ hasRuntimeDefault: false;
469
+ enumValues: [string, ...string[]];
470
+ baseColumn: never;
471
+ identity: undefined;
472
+ generated: undefined;
473
+ }, {}, {
474
+ length: number | undefined;
475
+ }>;
476
+ srcSymbolName: import("drizzle-orm/sqlite-core").SQLiteColumn<{
477
+ name: "src_symbol_name";
478
+ tableName: "relations";
479
+ dataType: "string";
480
+ columnType: "SQLiteText";
481
+ data: string;
482
+ driverParam: string;
483
+ notNull: false;
484
+ hasDefault: false;
485
+ isPrimaryKey: false;
486
+ isAutoincrement: false;
487
+ hasRuntimeDefault: false;
488
+ enumValues: [string, ...string[]];
489
+ baseColumn: never;
490
+ identity: undefined;
491
+ generated: undefined;
492
+ }, {}, {
493
+ length: number | undefined;
494
+ }>;
495
+ dstFilePath: import("drizzle-orm/sqlite-core").SQLiteColumn<{
496
+ name: "dst_file_path";
497
+ tableName: "relations";
498
+ dataType: "string";
499
+ columnType: "SQLiteText";
500
+ data: string;
501
+ driverParam: string;
502
+ notNull: true;
503
+ hasDefault: false;
504
+ isPrimaryKey: false;
505
+ isAutoincrement: false;
506
+ hasRuntimeDefault: false;
507
+ enumValues: [string, ...string[]];
508
+ baseColumn: never;
509
+ identity: undefined;
510
+ generated: undefined;
511
+ }, {}, {
512
+ length: number | undefined;
513
+ }>;
514
+ dstSymbolName: import("drizzle-orm/sqlite-core").SQLiteColumn<{
515
+ name: "dst_symbol_name";
516
+ tableName: "relations";
517
+ dataType: "string";
518
+ columnType: "SQLiteText";
519
+ data: string;
520
+ driverParam: string;
521
+ notNull: false;
522
+ hasDefault: false;
523
+ isPrimaryKey: false;
524
+ isAutoincrement: false;
525
+ hasRuntimeDefault: false;
526
+ enumValues: [string, ...string[]];
527
+ baseColumn: never;
528
+ identity: undefined;
529
+ generated: undefined;
530
+ }, {}, {
531
+ length: number | undefined;
532
+ }>;
533
+ metaJson: import("drizzle-orm/sqlite-core").SQLiteColumn<{
534
+ name: "meta_json";
535
+ tableName: "relations";
536
+ dataType: "string";
537
+ columnType: "SQLiteText";
538
+ data: string;
539
+ driverParam: string;
540
+ notNull: false;
541
+ hasDefault: false;
542
+ isPrimaryKey: false;
543
+ isAutoincrement: false;
544
+ hasRuntimeDefault: false;
545
+ enumValues: [string, ...string[]];
546
+ baseColumn: never;
547
+ identity: undefined;
548
+ generated: undefined;
549
+ }, {}, {
550
+ length: number | undefined;
551
+ }>;
552
+ };
553
+ dialect: "sqlite";
554
+ }>;
555
+ export declare const watcherOwner: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
556
+ name: "watcher_owner";
557
+ schema: undefined;
558
+ columns: {
559
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
560
+ name: "id";
561
+ tableName: "watcher_owner";
562
+ dataType: "number";
563
+ columnType: "SQLiteInteger";
564
+ data: number;
565
+ driverParam: number;
566
+ notNull: true;
567
+ hasDefault: true;
568
+ isPrimaryKey: true;
569
+ isAutoincrement: false;
570
+ hasRuntimeDefault: false;
571
+ enumValues: undefined;
572
+ baseColumn: never;
573
+ identity: undefined;
574
+ generated: undefined;
575
+ }, {}, {}>;
576
+ pid: import("drizzle-orm/sqlite-core").SQLiteColumn<{
577
+ name: "pid";
578
+ tableName: "watcher_owner";
579
+ dataType: "number";
580
+ columnType: "SQLiteInteger";
581
+ data: number;
582
+ driverParam: number;
583
+ notNull: true;
584
+ hasDefault: false;
585
+ isPrimaryKey: false;
586
+ isAutoincrement: false;
587
+ hasRuntimeDefault: false;
588
+ enumValues: undefined;
589
+ baseColumn: never;
590
+ identity: undefined;
591
+ generated: undefined;
592
+ }, {}, {}>;
593
+ startedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
594
+ name: "started_at";
595
+ tableName: "watcher_owner";
596
+ dataType: "string";
597
+ columnType: "SQLiteText";
598
+ data: string;
599
+ driverParam: string;
600
+ notNull: true;
601
+ hasDefault: false;
602
+ isPrimaryKey: false;
603
+ isAutoincrement: false;
604
+ hasRuntimeDefault: false;
605
+ enumValues: [string, ...string[]];
606
+ baseColumn: never;
607
+ identity: undefined;
608
+ generated: undefined;
609
+ }, {}, {
610
+ length: number | undefined;
611
+ }>;
612
+ heartbeatAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
613
+ name: "heartbeat_at";
614
+ tableName: "watcher_owner";
615
+ dataType: "string";
616
+ columnType: "SQLiteText";
617
+ data: string;
618
+ driverParam: string;
619
+ notNull: true;
620
+ hasDefault: false;
621
+ isPrimaryKey: false;
622
+ isAutoincrement: false;
623
+ hasRuntimeDefault: false;
624
+ enumValues: [string, ...string[]];
625
+ baseColumn: never;
626
+ identity: undefined;
627
+ generated: undefined;
628
+ }, {}, {
629
+ length: number | undefined;
630
+ }>;
631
+ };
632
+ dialect: "sqlite";
633
+ }>;
634
+ export declare const FTS_SETUP_SQL: readonly string[];
@@ -0,0 +1,3 @@
1
+ export * from "./types";
2
+ export * from "./ownership";
3
+ export * from "./project-watcher";
@@ -0,0 +1,22 @@
1
+ import type { WatcherRole } from "./types";
2
+ interface WatcherOwnerRow {
3
+ pid: number;
4
+ heartbeat_at: string;
5
+ }
6
+ export interface WatcherOwnerStore {
7
+ immediateTransaction<T>(fn: () => T): T;
8
+ selectOwner(): WatcherOwnerRow | undefined;
9
+ insertOwner(pid: number): void;
10
+ replaceOwner(pid: number): void;
11
+ touchOwner(pid: number): void;
12
+ deleteOwner(pid: number): void;
13
+ }
14
+ interface AcquireOptions {
15
+ now?: () => number;
16
+ isAlive?: (pid: number) => boolean;
17
+ staleAfterSeconds?: number;
18
+ }
19
+ export declare function acquireWatcherRole(db: WatcherOwnerStore, pid: number, options?: AcquireOptions): WatcherRole;
20
+ export declare function releaseWatcherRole(db: WatcherOwnerStore, pid: number): void;
21
+ export declare function updateHeartbeat(db: WatcherOwnerStore, pid: number): void;
22
+ export {};
@@ -0,0 +1,13 @@
1
+ import type { AsyncSubscription, SubscribeCallback } from "@parcel/watcher";
2
+ import { subscribe as parcelSubscribe } from "@parcel/watcher";
3
+ type SubscribeOptions = NonNullable<Parameters<typeof parcelSubscribe>[2]>;
4
+ import type { FileChangeEvent, WatcherOptions } from "./types";
5
+ import type { Logger } from "../gildash";
6
+ type SubscribeFn = (directoryPath: string, callback: SubscribeCallback, options?: SubscribeOptions) => Promise<AsyncSubscription>;
7
+ export declare class ProjectWatcher {
8
+ #private;
9
+ constructor(options: WatcherOptions, subscribeFn?: SubscribeFn, logger?: Logger);
10
+ start(onChange: (event: FileChangeEvent) => void): Promise<void>;
11
+ close(): Promise<void>;
12
+ }
13
+ export {};
@@ -0,0 +1,11 @@
1
+ export type FileChangeEventType = "create" | "change" | "delete";
2
+ export interface FileChangeEvent {
3
+ eventType: FileChangeEventType;
4
+ filePath: string;
5
+ }
6
+ export interface WatcherOptions {
7
+ projectRoot: string;
8
+ ignorePatterns?: string[];
9
+ extensions?: string[];
10
+ }
11
+ export type WatcherRole = "owner" | "reader";