gitx.do 0.1.0 → 0.1.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.
Files changed (344) hide show
  1. package/README.md +40 -353
  2. package/dist/do/logger.d.ts +50 -0
  3. package/dist/do/logger.d.ts.map +1 -0
  4. package/dist/do/logger.js +122 -0
  5. package/dist/do/logger.js.map +1 -0
  6. package/dist/{durable-object → do}/schema.d.ts +3 -3
  7. package/dist/do/schema.d.ts.map +1 -0
  8. package/dist/{durable-object → do}/schema.js +4 -3
  9. package/dist/do/schema.js.map +1 -0
  10. package/dist/do/types.d.ts +267 -0
  11. package/dist/do/types.d.ts.map +1 -0
  12. package/dist/do/types.js +62 -0
  13. package/dist/do/types.js.map +1 -0
  14. package/dist/index.d.ts +15 -415
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +31 -483
  17. package/dist/index.js.map +1 -1
  18. package/package.json +13 -21
  19. package/dist/cli/commands/add.d.ts +0 -174
  20. package/dist/cli/commands/add.d.ts.map +0 -1
  21. package/dist/cli/commands/add.js +0 -131
  22. package/dist/cli/commands/add.js.map +0 -1
  23. package/dist/cli/commands/blame.d.ts +0 -259
  24. package/dist/cli/commands/blame.d.ts.map +0 -1
  25. package/dist/cli/commands/blame.js +0 -609
  26. package/dist/cli/commands/blame.js.map +0 -1
  27. package/dist/cli/commands/branch.d.ts +0 -249
  28. package/dist/cli/commands/branch.d.ts.map +0 -1
  29. package/dist/cli/commands/branch.js +0 -693
  30. package/dist/cli/commands/branch.js.map +0 -1
  31. package/dist/cli/commands/commit.d.ts +0 -182
  32. package/dist/cli/commands/commit.d.ts.map +0 -1
  33. package/dist/cli/commands/commit.js +0 -437
  34. package/dist/cli/commands/commit.js.map +0 -1
  35. package/dist/cli/commands/diff.d.ts +0 -464
  36. package/dist/cli/commands/diff.d.ts.map +0 -1
  37. package/dist/cli/commands/diff.js +0 -958
  38. package/dist/cli/commands/diff.js.map +0 -1
  39. package/dist/cli/commands/log.d.ts +0 -239
  40. package/dist/cli/commands/log.d.ts.map +0 -1
  41. package/dist/cli/commands/log.js +0 -535
  42. package/dist/cli/commands/log.js.map +0 -1
  43. package/dist/cli/commands/merge.d.ts +0 -106
  44. package/dist/cli/commands/merge.d.ts.map +0 -1
  45. package/dist/cli/commands/merge.js +0 -55
  46. package/dist/cli/commands/merge.js.map +0 -1
  47. package/dist/cli/commands/review.d.ts +0 -457
  48. package/dist/cli/commands/review.d.ts.map +0 -1
  49. package/dist/cli/commands/review.js +0 -533
  50. package/dist/cli/commands/review.js.map +0 -1
  51. package/dist/cli/commands/status.d.ts +0 -269
  52. package/dist/cli/commands/status.d.ts.map +0 -1
  53. package/dist/cli/commands/status.js +0 -493
  54. package/dist/cli/commands/status.js.map +0 -1
  55. package/dist/cli/commands/web.d.ts +0 -199
  56. package/dist/cli/commands/web.d.ts.map +0 -1
  57. package/dist/cli/commands/web.js +0 -696
  58. package/dist/cli/commands/web.js.map +0 -1
  59. package/dist/cli/fs-adapter.d.ts +0 -656
  60. package/dist/cli/fs-adapter.d.ts.map +0 -1
  61. package/dist/cli/fs-adapter.js +0 -1179
  62. package/dist/cli/fs-adapter.js.map +0 -1
  63. package/dist/cli/fsx-cli-adapter.d.ts +0 -359
  64. package/dist/cli/fsx-cli-adapter.d.ts.map +0 -1
  65. package/dist/cli/fsx-cli-adapter.js +0 -619
  66. package/dist/cli/fsx-cli-adapter.js.map +0 -1
  67. package/dist/cli/index.d.ts +0 -387
  68. package/dist/cli/index.d.ts.map +0 -1
  69. package/dist/cli/index.js +0 -523
  70. package/dist/cli/index.js.map +0 -1
  71. package/dist/cli/ui/components/DiffView.d.ts +0 -7
  72. package/dist/cli/ui/components/DiffView.d.ts.map +0 -1
  73. package/dist/cli/ui/components/DiffView.js +0 -11
  74. package/dist/cli/ui/components/DiffView.js.map +0 -1
  75. package/dist/cli/ui/components/ErrorDisplay.d.ts +0 -6
  76. package/dist/cli/ui/components/ErrorDisplay.d.ts.map +0 -1
  77. package/dist/cli/ui/components/ErrorDisplay.js +0 -11
  78. package/dist/cli/ui/components/ErrorDisplay.js.map +0 -1
  79. package/dist/cli/ui/components/FuzzySearch.d.ts +0 -9
  80. package/dist/cli/ui/components/FuzzySearch.d.ts.map +0 -1
  81. package/dist/cli/ui/components/FuzzySearch.js +0 -12
  82. package/dist/cli/ui/components/FuzzySearch.js.map +0 -1
  83. package/dist/cli/ui/components/LoadingSpinner.d.ts +0 -6
  84. package/dist/cli/ui/components/LoadingSpinner.d.ts.map +0 -1
  85. package/dist/cli/ui/components/LoadingSpinner.js +0 -10
  86. package/dist/cli/ui/components/LoadingSpinner.js.map +0 -1
  87. package/dist/cli/ui/components/NavigationList.d.ts +0 -9
  88. package/dist/cli/ui/components/NavigationList.d.ts.map +0 -1
  89. package/dist/cli/ui/components/NavigationList.js +0 -11
  90. package/dist/cli/ui/components/NavigationList.js.map +0 -1
  91. package/dist/cli/ui/components/ScrollableContent.d.ts +0 -8
  92. package/dist/cli/ui/components/ScrollableContent.d.ts.map +0 -1
  93. package/dist/cli/ui/components/ScrollableContent.js +0 -11
  94. package/dist/cli/ui/components/ScrollableContent.js.map +0 -1
  95. package/dist/cli/ui/components/index.d.ts +0 -7
  96. package/dist/cli/ui/components/index.d.ts.map +0 -1
  97. package/dist/cli/ui/components/index.js +0 -9
  98. package/dist/cli/ui/components/index.js.map +0 -1
  99. package/dist/cli/ui/terminal-ui.d.ts +0 -52
  100. package/dist/cli/ui/terminal-ui.d.ts.map +0 -1
  101. package/dist/cli/ui/terminal-ui.js +0 -121
  102. package/dist/cli/ui/terminal-ui.js.map +0 -1
  103. package/dist/do/BashModule.d.ts +0 -871
  104. package/dist/do/BashModule.d.ts.map +0 -1
  105. package/dist/do/BashModule.js +0 -1143
  106. package/dist/do/BashModule.js.map +0 -1
  107. package/dist/do/FsModule.d.ts +0 -601
  108. package/dist/do/FsModule.d.ts.map +0 -1
  109. package/dist/do/FsModule.js +0 -1120
  110. package/dist/do/FsModule.js.map +0 -1
  111. package/dist/do/GitModule.d.ts +0 -635
  112. package/dist/do/GitModule.d.ts.map +0 -1
  113. package/dist/do/GitModule.js +0 -781
  114. package/dist/do/GitModule.js.map +0 -1
  115. package/dist/do/GitRepoDO.d.ts +0 -281
  116. package/dist/do/GitRepoDO.d.ts.map +0 -1
  117. package/dist/do/GitRepoDO.js +0 -479
  118. package/dist/do/GitRepoDO.js.map +0 -1
  119. package/dist/do/bash-ast.d.ts +0 -246
  120. package/dist/do/bash-ast.d.ts.map +0 -1
  121. package/dist/do/bash-ast.js +0 -888
  122. package/dist/do/bash-ast.js.map +0 -1
  123. package/dist/do/container-executor.d.ts +0 -491
  124. package/dist/do/container-executor.d.ts.map +0 -1
  125. package/dist/do/container-executor.js +0 -730
  126. package/dist/do/container-executor.js.map +0 -1
  127. package/dist/do/index.d.ts +0 -53
  128. package/dist/do/index.d.ts.map +0 -1
  129. package/dist/do/index.js +0 -91
  130. package/dist/do/index.js.map +0 -1
  131. package/dist/do/tiered-storage.d.ts +0 -403
  132. package/dist/do/tiered-storage.d.ts.map +0 -1
  133. package/dist/do/tiered-storage.js +0 -689
  134. package/dist/do/tiered-storage.js.map +0 -1
  135. package/dist/do/withBash.d.ts +0 -231
  136. package/dist/do/withBash.d.ts.map +0 -1
  137. package/dist/do/withBash.js +0 -244
  138. package/dist/do/withBash.js.map +0 -1
  139. package/dist/do/withFs.d.ts +0 -237
  140. package/dist/do/withFs.d.ts.map +0 -1
  141. package/dist/do/withFs.js +0 -387
  142. package/dist/do/withFs.js.map +0 -1
  143. package/dist/do/withGit.d.ts +0 -180
  144. package/dist/do/withGit.d.ts.map +0 -1
  145. package/dist/do/withGit.js +0 -271
  146. package/dist/do/withGit.js.map +0 -1
  147. package/dist/durable-object/object-store.d.ts +0 -633
  148. package/dist/durable-object/object-store.d.ts.map +0 -1
  149. package/dist/durable-object/object-store.js +0 -1161
  150. package/dist/durable-object/object-store.js.map +0 -1
  151. package/dist/durable-object/schema.d.ts.map +0 -1
  152. package/dist/durable-object/schema.js.map +0 -1
  153. package/dist/durable-object/wal.d.ts +0 -416
  154. package/dist/durable-object/wal.d.ts.map +0 -1
  155. package/dist/durable-object/wal.js +0 -445
  156. package/dist/durable-object/wal.js.map +0 -1
  157. package/dist/mcp/adapter.d.ts +0 -772
  158. package/dist/mcp/adapter.d.ts.map +0 -1
  159. package/dist/mcp/adapter.js +0 -895
  160. package/dist/mcp/adapter.js.map +0 -1
  161. package/dist/mcp/sandbox/miniflare-evaluator.d.ts +0 -22
  162. package/dist/mcp/sandbox/miniflare-evaluator.d.ts.map +0 -1
  163. package/dist/mcp/sandbox/miniflare-evaluator.js +0 -140
  164. package/dist/mcp/sandbox/miniflare-evaluator.js.map +0 -1
  165. package/dist/mcp/sandbox/object-store-proxy.d.ts +0 -32
  166. package/dist/mcp/sandbox/object-store-proxy.d.ts.map +0 -1
  167. package/dist/mcp/sandbox/object-store-proxy.js +0 -30
  168. package/dist/mcp/sandbox/object-store-proxy.js.map +0 -1
  169. package/dist/mcp/sandbox/template.d.ts +0 -17
  170. package/dist/mcp/sandbox/template.d.ts.map +0 -1
  171. package/dist/mcp/sandbox/template.js +0 -71
  172. package/dist/mcp/sandbox/template.js.map +0 -1
  173. package/dist/mcp/sandbox.d.ts +0 -764
  174. package/dist/mcp/sandbox.d.ts.map +0 -1
  175. package/dist/mcp/sandbox.js +0 -1362
  176. package/dist/mcp/sandbox.js.map +0 -1
  177. package/dist/mcp/sdk-adapter.d.ts +0 -835
  178. package/dist/mcp/sdk-adapter.d.ts.map +0 -1
  179. package/dist/mcp/sdk-adapter.js +0 -974
  180. package/dist/mcp/sdk-adapter.js.map +0 -1
  181. package/dist/mcp/tools/do.d.ts +0 -32
  182. package/dist/mcp/tools/do.d.ts.map +0 -1
  183. package/dist/mcp/tools/do.js +0 -115
  184. package/dist/mcp/tools/do.js.map +0 -1
  185. package/dist/mcp/tools.d.ts +0 -548
  186. package/dist/mcp/tools.d.ts.map +0 -1
  187. package/dist/mcp/tools.js +0 -1934
  188. package/dist/mcp/tools.js.map +0 -1
  189. package/dist/ops/blame.d.ts +0 -551
  190. package/dist/ops/blame.d.ts.map +0 -1
  191. package/dist/ops/blame.js +0 -1037
  192. package/dist/ops/blame.js.map +0 -1
  193. package/dist/ops/branch.d.ts +0 -766
  194. package/dist/ops/branch.d.ts.map +0 -1
  195. package/dist/ops/branch.js +0 -950
  196. package/dist/ops/branch.js.map +0 -1
  197. package/dist/ops/commit-traversal.d.ts +0 -349
  198. package/dist/ops/commit-traversal.d.ts.map +0 -1
  199. package/dist/ops/commit-traversal.js +0 -821
  200. package/dist/ops/commit-traversal.js.map +0 -1
  201. package/dist/ops/commit.d.ts +0 -555
  202. package/dist/ops/commit.d.ts.map +0 -1
  203. package/dist/ops/commit.js +0 -826
  204. package/dist/ops/commit.js.map +0 -1
  205. package/dist/ops/merge-base.d.ts +0 -397
  206. package/dist/ops/merge-base.d.ts.map +0 -1
  207. package/dist/ops/merge-base.js +0 -691
  208. package/dist/ops/merge-base.js.map +0 -1
  209. package/dist/ops/merge.d.ts +0 -855
  210. package/dist/ops/merge.d.ts.map +0 -1
  211. package/dist/ops/merge.js +0 -1551
  212. package/dist/ops/merge.js.map +0 -1
  213. package/dist/ops/tag.d.ts +0 -247
  214. package/dist/ops/tag.d.ts.map +0 -1
  215. package/dist/ops/tag.js +0 -649
  216. package/dist/ops/tag.js.map +0 -1
  217. package/dist/ops/tree-builder.d.ts +0 -178
  218. package/dist/ops/tree-builder.d.ts.map +0 -1
  219. package/dist/ops/tree-builder.js +0 -271
  220. package/dist/ops/tree-builder.js.map +0 -1
  221. package/dist/ops/tree-diff.d.ts +0 -291
  222. package/dist/ops/tree-diff.d.ts.map +0 -1
  223. package/dist/ops/tree-diff.js +0 -705
  224. package/dist/ops/tree-diff.js.map +0 -1
  225. package/dist/pack/delta.d.ts +0 -248
  226. package/dist/pack/delta.d.ts.map +0 -1
  227. package/dist/pack/delta.js +0 -736
  228. package/dist/pack/delta.js.map +0 -1
  229. package/dist/pack/format.d.ts +0 -446
  230. package/dist/pack/format.d.ts.map +0 -1
  231. package/dist/pack/format.js +0 -572
  232. package/dist/pack/format.js.map +0 -1
  233. package/dist/pack/full-generation.d.ts +0 -612
  234. package/dist/pack/full-generation.d.ts.map +0 -1
  235. package/dist/pack/full-generation.js +0 -1378
  236. package/dist/pack/full-generation.js.map +0 -1
  237. package/dist/pack/generation.d.ts +0 -441
  238. package/dist/pack/generation.d.ts.map +0 -1
  239. package/dist/pack/generation.js +0 -707
  240. package/dist/pack/generation.js.map +0 -1
  241. package/dist/pack/index.d.ts +0 -502
  242. package/dist/pack/index.d.ts.map +0 -1
  243. package/dist/pack/index.js +0 -833
  244. package/dist/pack/index.js.map +0 -1
  245. package/dist/refs/branch.d.ts +0 -668
  246. package/dist/refs/branch.d.ts.map +0 -1
  247. package/dist/refs/branch.js +0 -897
  248. package/dist/refs/branch.js.map +0 -1
  249. package/dist/refs/storage.d.ts +0 -833
  250. package/dist/refs/storage.d.ts.map +0 -1
  251. package/dist/refs/storage.js +0 -1023
  252. package/dist/refs/storage.js.map +0 -1
  253. package/dist/refs/tag.d.ts +0 -860
  254. package/dist/refs/tag.d.ts.map +0 -1
  255. package/dist/refs/tag.js +0 -996
  256. package/dist/refs/tag.js.map +0 -1
  257. package/dist/storage/backend.d.ts +0 -425
  258. package/dist/storage/backend.d.ts.map +0 -1
  259. package/dist/storage/backend.js +0 -41
  260. package/dist/storage/backend.js.map +0 -1
  261. package/dist/storage/fsx-adapter.d.ts +0 -204
  262. package/dist/storage/fsx-adapter.d.ts.map +0 -1
  263. package/dist/storage/fsx-adapter.js +0 -470
  264. package/dist/storage/fsx-adapter.js.map +0 -1
  265. package/dist/storage/lru-cache.d.ts +0 -691
  266. package/dist/storage/lru-cache.d.ts.map +0 -1
  267. package/dist/storage/lru-cache.js +0 -813
  268. package/dist/storage/lru-cache.js.map +0 -1
  269. package/dist/storage/object-index.d.ts +0 -585
  270. package/dist/storage/object-index.d.ts.map +0 -1
  271. package/dist/storage/object-index.js +0 -532
  272. package/dist/storage/object-index.js.map +0 -1
  273. package/dist/storage/r2-pack.d.ts +0 -1257
  274. package/dist/storage/r2-pack.d.ts.map +0 -1
  275. package/dist/storage/r2-pack.js +0 -1770
  276. package/dist/storage/r2-pack.js.map +0 -1
  277. package/dist/tiered/cdc-pipeline.d.ts +0 -1888
  278. package/dist/tiered/cdc-pipeline.d.ts.map +0 -1
  279. package/dist/tiered/cdc-pipeline.js +0 -1880
  280. package/dist/tiered/cdc-pipeline.js.map +0 -1
  281. package/dist/tiered/migration.d.ts +0 -1104
  282. package/dist/tiered/migration.d.ts.map +0 -1
  283. package/dist/tiered/migration.js +0 -1214
  284. package/dist/tiered/migration.js.map +0 -1
  285. package/dist/tiered/parquet-writer.d.ts +0 -1145
  286. package/dist/tiered/parquet-writer.d.ts.map +0 -1
  287. package/dist/tiered/parquet-writer.js +0 -1183
  288. package/dist/tiered/parquet-writer.js.map +0 -1
  289. package/dist/tiered/read-path.d.ts +0 -835
  290. package/dist/tiered/read-path.d.ts.map +0 -1
  291. package/dist/tiered/read-path.js +0 -487
  292. package/dist/tiered/read-path.js.map +0 -1
  293. package/dist/types/capability.d.ts +0 -1385
  294. package/dist/types/capability.d.ts.map +0 -1
  295. package/dist/types/capability.js +0 -36
  296. package/dist/types/capability.js.map +0 -1
  297. package/dist/types/index.d.ts +0 -13
  298. package/dist/types/index.d.ts.map +0 -1
  299. package/dist/types/index.js +0 -18
  300. package/dist/types/index.js.map +0 -1
  301. package/dist/types/objects.d.ts +0 -692
  302. package/dist/types/objects.d.ts.map +0 -1
  303. package/dist/types/objects.js +0 -837
  304. package/dist/types/objects.js.map +0 -1
  305. package/dist/types/storage.d.ts +0 -603
  306. package/dist/types/storage.d.ts.map +0 -1
  307. package/dist/types/storage.js +0 -191
  308. package/dist/types/storage.js.map +0 -1
  309. package/dist/types/worker-loader.d.ts +0 -60
  310. package/dist/types/worker-loader.d.ts.map +0 -1
  311. package/dist/types/worker-loader.js +0 -62
  312. package/dist/types/worker-loader.js.map +0 -1
  313. package/dist/utils/hash.d.ts +0 -197
  314. package/dist/utils/hash.d.ts.map +0 -1
  315. package/dist/utils/hash.js +0 -268
  316. package/dist/utils/hash.js.map +0 -1
  317. package/dist/utils/sha1.d.ts +0 -290
  318. package/dist/utils/sha1.d.ts.map +0 -1
  319. package/dist/utils/sha1.js +0 -582
  320. package/dist/utils/sha1.js.map +0 -1
  321. package/dist/wire/capabilities.d.ts +0 -1044
  322. package/dist/wire/capabilities.d.ts.map +0 -1
  323. package/dist/wire/capabilities.js +0 -941
  324. package/dist/wire/capabilities.js.map +0 -1
  325. package/dist/wire/path-security.d.ts +0 -157
  326. package/dist/wire/path-security.d.ts.map +0 -1
  327. package/dist/wire/path-security.js +0 -307
  328. package/dist/wire/path-security.js.map +0 -1
  329. package/dist/wire/pkt-line.d.ts +0 -345
  330. package/dist/wire/pkt-line.d.ts.map +0 -1
  331. package/dist/wire/pkt-line.js +0 -381
  332. package/dist/wire/pkt-line.js.map +0 -1
  333. package/dist/wire/receive-pack.d.ts +0 -1059
  334. package/dist/wire/receive-pack.d.ts.map +0 -1
  335. package/dist/wire/receive-pack.js +0 -1414
  336. package/dist/wire/receive-pack.js.map +0 -1
  337. package/dist/wire/smart-http.d.ts +0 -799
  338. package/dist/wire/smart-http.d.ts.map +0 -1
  339. package/dist/wire/smart-http.js +0 -945
  340. package/dist/wire/smart-http.js.map +0 -1
  341. package/dist/wire/upload-pack.d.ts +0 -727
  342. package/dist/wire/upload-pack.d.ts.map +0 -1
  343. package/dist/wire/upload-pack.js +0 -1138
  344. package/dist/wire/upload-pack.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"lru-cache.js","sourceRoot":"","sources":["../../src/storage/lru-cache.ts"],"names":[],"mappings":"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"}
@@ -1,585 +0,0 @@
1
- /**
2
- * @fileoverview Object Location Index Module
3
- *
4
- * This module tracks the storage location of Git objects across multiple storage tiers.
5
- * It provides a unified index for locating objects regardless of which tier contains
6
- * the actual data.
7
- *
8
- * ## Storage Tiers
9
- *
10
- * - **Hot**: SQLite (local Durable Object storage for frequently accessed objects)
11
- * - **R2**: Packed in R2 object storage (for larger objects or archives)
12
- * - **Parquet**: Columnar format for cold storage analytics
13
- *
14
- * ## Features
15
- *
16
- * - O(1) object location lookup by SHA
17
- * - Batch lookup for multiple objects
18
- * - Tier-based statistics and querying
19
- * - Object tracking during tier migrations
20
- *
21
- * @module storage/object-index
22
- *
23
- * @example
24
- * ```typescript
25
- * // Initialize the index with Durable Object storage
26
- * const index = new ObjectIndex(storage);
27
- *
28
- * // Record an object location
29
- * await index.recordLocation({
30
- * sha: 'abc123...def456',
31
- * tier: 'hot',
32
- * size: 1024,
33
- * type: 'blob'
34
- * });
35
- *
36
- * // Look up an object
37
- * const location = await index.lookupLocation('abc123...def456');
38
- * if (location) {
39
- * console.log(`Object is in ${location.tier} tier`);
40
- * }
41
- * ```
42
- */
43
- import { DurableObjectStorage } from '../durable-object/schema';
44
- /**
45
- * Storage tiers for object location.
46
- *
47
- * @description
48
- * Represents the different storage tiers in the tiered storage architecture:
49
- * - `hot`: Fast, local SQLite storage in Durable Objects for frequently accessed data
50
- * - `r2`: R2 object storage for packed objects and archives
51
- * - `parquet`: Columnar Parquet format for cold storage and analytics
52
- */
53
- export type StorageTier = 'hot' | 'r2' | 'parquet';
54
- /**
55
- * Represents the location of a git object in the tiered storage system.
56
- *
57
- * @description
58
- * Contains all metadata needed to locate and retrieve an object from any storage tier.
59
- * The `packId` and `offset` fields are only applicable for `r2` and `parquet` tiers
60
- * where objects are stored in packed format.
61
- *
62
- * @example
63
- * ```typescript
64
- * // Hot tier object (stored directly in SQLite)
65
- * const hotLocation: ObjectLocation = {
66
- * tier: 'hot',
67
- * packId: null,
68
- * offset: null,
69
- * size: 512,
70
- * sha: 'abc123...',
71
- * type: 'blob'
72
- * };
73
- *
74
- * // R2 tier object (stored in a packfile)
75
- * const r2Location: ObjectLocation = {
76
- * tier: 'r2',
77
- * packId: 'pack-xyz789',
78
- * offset: 1024,
79
- * size: 2048,
80
- * sha: 'def456...',
81
- * type: 'tree'
82
- * };
83
- * ```
84
- */
85
- export interface ObjectLocation {
86
- /** The storage tier where the object is located */
87
- tier: StorageTier;
88
- /**
89
- * Pack file ID (for R2 or Parquet tiers).
90
- * Null for hot tier where objects are stored individually.
91
- */
92
- packId: string | null;
93
- /**
94
- * Byte offset within the pack file (for R2 or Parquet tiers).
95
- * Null for hot tier.
96
- */
97
- offset: number | null;
98
- /** Size of the object in bytes */
99
- size: number;
100
- /** The object's 40-character SHA-1 hash */
101
- sha: string;
102
- /** Object type (blob, tree, commit, tag) */
103
- type?: string;
104
- /** Timestamp when location was last updated (milliseconds since epoch) */
105
- updatedAt?: number;
106
- }
107
- /**
108
- * Statistics about objects in each storage tier.
109
- *
110
- * @description
111
- * Provides aggregated statistics about the distribution of objects
112
- * across storage tiers, useful for monitoring and capacity planning.
113
- *
114
- * @example
115
- * ```typescript
116
- * const stats = await index.getStats();
117
- * console.log(`Total objects: ${stats.totalObjects}`);
118
- * console.log(`Hot tier: ${stats.hotCount} objects (${stats.hotSize} bytes)`);
119
- * console.log(`R2 tier: ${stats.r2Count} objects (${stats.r2Size} bytes)`);
120
- * ```
121
- */
122
- export interface ObjectIndexStats {
123
- /** Total number of indexed objects across all tiers */
124
- totalObjects: number;
125
- /** Number of objects in hot tier */
126
- hotCount: number;
127
- /** Number of objects in R2 tier */
128
- r2Count: number;
129
- /** Number of objects in Parquet tier */
130
- parquetCount: number;
131
- /** Total size of objects in hot tier (bytes) */
132
- hotSize: number;
133
- /** Total size of objects in R2 tier (bytes) */
134
- r2Size: number;
135
- /** Total size of objects in Parquet tier (bytes) */
136
- parquetSize: number;
137
- }
138
- /**
139
- * Result of a batch lookup operation.
140
- *
141
- * @description
142
- * Contains both found objects and a list of SHAs that were not found,
143
- * allowing callers to handle missing objects appropriately.
144
- *
145
- * @example
146
- * ```typescript
147
- * const result = await index.batchLookup(['sha1', 'sha2', 'sha3']);
148
- *
149
- * for (const [sha, location] of result.found) {
150
- * console.log(`${sha} is in ${location.tier}`);
151
- * }
152
- *
153
- * if (result.missing.length > 0) {
154
- * console.log(`Missing: ${result.missing.join(', ')}`);
155
- * }
156
- * ```
157
- */
158
- export interface BatchLookupResult {
159
- /** Map of SHA to location for found objects */
160
- found: Map<string, ObjectLocation>;
161
- /** Array of SHAs that were not found in the index */
162
- missing: string[];
163
- }
164
- /**
165
- * Options for recording an object location.
166
- *
167
- * @description
168
- * Specifies the parameters needed to record where an object is stored.
169
- * The `packId` and `offset` are required for r2/parquet tiers but optional
170
- * for hot tier.
171
- *
172
- * @example
173
- * ```typescript
174
- * // Record a hot tier object
175
- * await index.recordLocation({
176
- * sha: 'abc123...',
177
- * tier: 'hot',
178
- * size: 1024,
179
- * type: 'blob'
180
- * });
181
- *
182
- * // Record an R2 tier object
183
- * await index.recordLocation({
184
- * sha: 'def456...',
185
- * tier: 'r2',
186
- * packId: 'pack-001',
187
- * offset: 2048,
188
- * size: 512,
189
- * type: 'tree'
190
- * });
191
- * ```
192
- */
193
- export interface RecordLocationOptions {
194
- /** The object's 40-character SHA-1 hash */
195
- sha: string;
196
- /** Storage tier where the object is stored */
197
- tier: StorageTier;
198
- /** Pack ID (required for r2/parquet tiers, optional for hot) */
199
- packId?: string;
200
- /** Byte offset in pack file (for r2/parquet tiers) */
201
- offset?: number;
202
- /** Size of the object in bytes */
203
- size: number;
204
- /** Object type (blob, tree, commit, tag) */
205
- type?: string;
206
- }
207
- /**
208
- * Object Index class for managing object locations across storage tiers.
209
- *
210
- * @description
211
- * Provides a centralized index for tracking where Git objects are stored
212
- * in the tiered storage system. Uses SQLite (via Durable Object storage)
213
- * for persistent, consistent storage of location metadata.
214
- *
215
- * ## Key Features
216
- *
217
- * - **Fast Lookups**: O(1) lookup by SHA using indexed SQLite queries
218
- * - **Batch Operations**: Efficient bulk lookup for multiple objects
219
- * - **Tier Tracking**: Query objects by storage tier
220
- * - **Statistics**: Aggregate stats for monitoring and capacity planning
221
- *
222
- * ## Thread Safety
223
- *
224
- * The underlying Durable Object storage provides transactional guarantees,
225
- * ensuring consistency even with concurrent access.
226
- *
227
- * @example
228
- * ```typescript
229
- * const index = new ObjectIndex(storage);
230
- *
231
- * // Record locations
232
- * await index.recordLocation({
233
- * sha: 'abc123...',
234
- * tier: 'hot',
235
- * size: 1024,
236
- * type: 'blob'
237
- * });
238
- *
239
- * // Look up a single object
240
- * const location = await index.lookupLocation('abc123...');
241
- *
242
- * // Batch lookup
243
- * const result = await index.batchLookup(['sha1', 'sha2', 'sha3']);
244
- *
245
- * // Get objects by tier
246
- * const hotObjects = await index.getObjectsByTier('hot');
247
- *
248
- * // Get statistics
249
- * const stats = await index.getStats();
250
- * ```
251
- */
252
- export declare class ObjectIndex {
253
- private _storage;
254
- /**
255
- * Creates a new ObjectIndex instance.
256
- *
257
- * @description
258
- * Initializes the index with a Durable Object storage instance.
259
- * The storage should have the object_index table already created
260
- * by the schema migration.
261
- *
262
- * @param storage - Durable Object storage instance with SQL support
263
- *
264
- * @example
265
- * ```typescript
266
- * // In a Durable Object class
267
- * constructor(state: DurableObjectState) {
268
- * this.index = new ObjectIndex(state.storage);
269
- * }
270
- * ```
271
- */
272
- constructor(storage: DurableObjectStorage);
273
- /**
274
- * Records the location of an object in the index.
275
- *
276
- * @description
277
- * Inserts or updates the location record for an object. If the object
278
- * already exists in the index, its location is updated (upsert behavior).
279
- *
280
- * @param options - Location recording options including SHA, tier, size, etc.
281
- *
282
- * @throws {Error} If SHA format is invalid
283
- *
284
- * @example
285
- * ```typescript
286
- * // Record a new object in hot tier
287
- * await index.recordLocation({
288
- * sha: 'abc123def456789012345678901234567890abcd',
289
- * tier: 'hot',
290
- * size: 1024,
291
- * type: 'blob'
292
- * });
293
- *
294
- * // Record an object in R2 pack
295
- * await index.recordLocation({
296
- * sha: 'def456789012345678901234567890abcdef12',
297
- * tier: 'r2',
298
- * packId: 'pack-abc123',
299
- * offset: 4096,
300
- * size: 2048,
301
- * type: 'tree'
302
- * });
303
- * ```
304
- */
305
- recordLocation(options: RecordLocationOptions): Promise<void>;
306
- /**
307
- * Looks up the location of an object by SHA.
308
- *
309
- * @description
310
- * Retrieves the storage location for a single object. Returns null if
311
- * the object is not found in the index.
312
- *
313
- * @param sha - The 40-character SHA-1 hash of the object
314
- *
315
- * @returns The object location or null if not found
316
- *
317
- * @example
318
- * ```typescript
319
- * const location = await index.lookupLocation('abc123...');
320
- * if (location) {
321
- * console.log(`Object is in ${location.tier} tier`);
322
- * if (location.packId) {
323
- * console.log(`Pack: ${location.packId}, Offset: ${location.offset}`);
324
- * }
325
- * } else {
326
- * console.log('Object not found');
327
- * }
328
- * ```
329
- */
330
- lookupLocation(sha: string): Promise<ObjectLocation | null>;
331
- /**
332
- * Performs batch lookup of multiple objects.
333
- *
334
- * @description
335
- * Efficiently looks up locations for multiple objects in a single query.
336
- * Returns both found locations and a list of missing SHAs.
337
- *
338
- * This is more efficient than multiple single lookups when you need
339
- * to find several objects.
340
- *
341
- * @param shas - Array of SHA-1 hashes to look up
342
- *
343
- * @returns Result containing found locations and missing SHAs
344
- *
345
- * @example
346
- * ```typescript
347
- * const shas = ['sha1...', 'sha2...', 'sha3...'];
348
- * const result = await index.batchLookup(shas);
349
- *
350
- * console.log(`Found ${result.found.size} objects`);
351
- * console.log(`Missing ${result.missing.length} objects`);
352
- *
353
- * for (const [sha, location] of result.found) {
354
- * console.log(`${sha}: ${location.tier}`);
355
- * }
356
- * ```
357
- */
358
- batchLookup(shas: string[]): Promise<BatchLookupResult>;
359
- /**
360
- * Updates the location of an object (e.g., when moving between tiers).
361
- *
362
- * @description
363
- * Updates the tier, packId, and offset for an existing object.
364
- * Use this when migrating objects between storage tiers.
365
- *
366
- * Note: This only updates existing records. If the object doesn't exist,
367
- * no action is taken. Use `recordLocation` for upsert behavior.
368
- *
369
- * @param sha - The object's SHA-1 hash
370
- * @param newTier - The new storage tier
371
- * @param packId - Pack ID for r2/parquet tiers (optional)
372
- * @param offset - Byte offset in pack file (optional)
373
- *
374
- * @example
375
- * ```typescript
376
- * // Migrate object from hot to R2
377
- * await index.updateLocation(
378
- * 'abc123...',
379
- * 'r2',
380
- * 'pack-new123',
381
- * 1024
382
- * );
383
- *
384
- * // Migrate object to hot tier
385
- * await index.updateLocation('abc123...', 'hot');
386
- * ```
387
- */
388
- updateLocation(sha: string, newTier: StorageTier, packId?: string, offset?: number): Promise<void>;
389
- /**
390
- * Gets statistics about object distribution across tiers.
391
- *
392
- * @description
393
- * Returns aggregated statistics including object counts and total sizes
394
- * for each storage tier. Useful for monitoring storage usage and
395
- * capacity planning.
396
- *
397
- * @returns Statistics about objects in each tier
398
- *
399
- * @example
400
- * ```typescript
401
- * const stats = await index.getStats();
402
- *
403
- * console.log(`Total objects: ${stats.totalObjects}`);
404
- * console.log('Hot tier:');
405
- * console.log(` Count: ${stats.hotCount}`);
406
- * console.log(` Size: ${(stats.hotSize / 1024 / 1024).toFixed(2)} MB`);
407
- * console.log('R2 tier:');
408
- * console.log(` Count: ${stats.r2Count}`);
409
- * console.log(` Size: ${(stats.r2Size / 1024 / 1024).toFixed(2)} MB`);
410
- * ```
411
- */
412
- getStats(): Promise<ObjectIndexStats>;
413
- /**
414
- * Checks if an object exists in the index.
415
- *
416
- * @description
417
- * Returns true if the object is tracked in the index, regardless of
418
- * which tier it's stored in.
419
- *
420
- * @param sha - The object's SHA-1 hash
421
- *
422
- * @returns true if the object exists in the index
423
- *
424
- * @example
425
- * ```typescript
426
- * if (await index.exists('abc123...')) {
427
- * console.log('Object is tracked');
428
- * } else {
429
- * console.log('Object is not in the index');
430
- * }
431
- * ```
432
- */
433
- exists(sha: string): Promise<boolean>;
434
- /**
435
- * Deletes an object from the index.
436
- *
437
- * @description
438
- * Removes the location record for an object. This does NOT delete
439
- * the actual object data from storage - only the index entry.
440
- *
441
- * @param sha - The object's SHA-1 hash
442
- *
443
- * @returns true if the object was deleted, false if it didn't exist
444
- *
445
- * @example
446
- * ```typescript
447
- * if (await index.deleteLocation('abc123...')) {
448
- * console.log('Location record deleted');
449
- * } else {
450
- * console.log('Object was not in the index');
451
- * }
452
- * ```
453
- */
454
- deleteLocation(sha: string): Promise<boolean>;
455
- /**
456
- * Gets all objects in a specific tier.
457
- *
458
- * @description
459
- * Returns all objects currently stored in the specified tier.
460
- * Useful for migration planning or tier-specific operations.
461
- *
462
- * @param tier - The storage tier to query ('hot', 'r2', or 'parquet')
463
- *
464
- * @returns Array of object locations in the specified tier
465
- *
466
- * @example
467
- * ```typescript
468
- * // Get all hot tier objects
469
- * const hotObjects = await index.getObjectsByTier('hot');
470
- * console.log(`Hot tier has ${hotObjects.length} objects`);
471
- *
472
- * // Calculate total size
473
- * const totalSize = hotObjects.reduce((sum, obj) => sum + obj.size, 0);
474
- * console.log(`Total hot tier size: ${totalSize} bytes`);
475
- * ```
476
- */
477
- getObjectsByTier(tier: StorageTier): Promise<ObjectLocation[]>;
478
- /**
479
- * Gets all objects in a specific pack.
480
- *
481
- * @description
482
- * Returns all objects stored in a particular packfile, sorted by offset.
483
- * Useful for pack operations like repacking or verification.
484
- *
485
- * @param packId - The pack file identifier
486
- *
487
- * @returns Array of object locations in the pack, sorted by offset
488
- *
489
- * @example
490
- * ```typescript
491
- * const packObjects = await index.getObjectsByPack('pack-abc123');
492
- * console.log(`Pack contains ${packObjects.length} objects`);
493
- *
494
- * // Objects are sorted by offset for sequential reading
495
- * for (const obj of packObjects) {
496
- * console.log(` ${obj.sha}: offset=${obj.offset}, size=${obj.size}`);
497
- * }
498
- * ```
499
- */
500
- getObjectsByPack(packId: string): Promise<ObjectLocation[]>;
501
- }
502
- /**
503
- * Records the location of an object (standalone function).
504
- *
505
- * @description
506
- * Standalone function that creates a temporary ObjectIndex instance
507
- * to record an object's location. Useful when you don't need to
508
- * maintain an ObjectIndex instance.
509
- *
510
- * @param storage - Durable Object storage instance
511
- * @param options - Location recording options
512
- *
513
- * @throws {Error} If SHA format is invalid
514
- *
515
- * @example
516
- * ```typescript
517
- * await recordLocation(storage, {
518
- * sha: 'abc123...',
519
- * tier: 'hot',
520
- * size: 1024,
521
- * type: 'blob'
522
- * });
523
- * ```
524
- */
525
- export declare function recordLocation(storage: DurableObjectStorage, options: RecordLocationOptions): Promise<void>;
526
- /**
527
- * Looks up the location of an object by SHA (standalone function).
528
- *
529
- * @description
530
- * Standalone function for single object lookup. Creates a temporary
531
- * ObjectIndex instance internally.
532
- *
533
- * @param storage - Durable Object storage instance
534
- * @param sha - The object's SHA-1 hash
535
- *
536
- * @returns Object location or null if not found
537
- *
538
- * @example
539
- * ```typescript
540
- * const location = await lookupLocation(storage, 'abc123...');
541
- * if (location) {
542
- * console.log(`Found in ${location.tier}`);
543
- * }
544
- * ```
545
- */
546
- export declare function lookupLocation(storage: DurableObjectStorage, sha: string): Promise<ObjectLocation | null>;
547
- /**
548
- * Performs batch lookup of multiple objects (standalone function).
549
- *
550
- * @description
551
- * Standalone function for batch object lookup. More efficient than
552
- * multiple single lookups when querying several objects.
553
- *
554
- * @param storage - Durable Object storage instance
555
- * @param shas - Array of SHA-1 hashes to look up
556
- *
557
- * @returns Result containing found locations and missing SHAs
558
- *
559
- * @example
560
- * ```typescript
561
- * const result = await batchLookup(storage, ['sha1...', 'sha2...']);
562
- * console.log(`Found: ${result.found.size}, Missing: ${result.missing.length}`);
563
- * ```
564
- */
565
- export declare function batchLookup(storage: DurableObjectStorage, shas: string[]): Promise<BatchLookupResult>;
566
- /**
567
- * Gets statistics about object distribution (standalone function).
568
- *
569
- * @description
570
- * Standalone function for retrieving object distribution statistics
571
- * across storage tiers.
572
- *
573
- * @param storage - Durable Object storage instance
574
- *
575
- * @returns Statistics about objects in each tier
576
- *
577
- * @example
578
- * ```typescript
579
- * const stats = await getStats(storage);
580
- * console.log(`Total: ${stats.totalObjects} objects`);
581
- * console.log(`Hot: ${stats.hotCount}, R2: ${stats.r2Count}`);
582
- * ```
583
- */
584
- export declare function getStats(storage: DurableObjectStorage): Promise<ObjectIndexStats>;
585
- //# sourceMappingURL=object-index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"object-index.d.ts","sourceRoot":"","sources":["../../src/storage/object-index.ts"],"names":[],"mappings":"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"}