@opendatalabs/personal-server-ts-core 1.33.8 → 1.34.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 (333) hide show
  1. package/dist/additions/budget.d.ts +28 -0
  2. package/dist/additions/budget.d.ts.map +1 -0
  3. package/dist/additions/budget.js +119 -0
  4. package/dist/additions/budget.js.map +1 -0
  5. package/dist/additions/durable.d.ts +64 -0
  6. package/dist/additions/durable.d.ts.map +1 -0
  7. package/dist/additions/durable.js +591 -0
  8. package/dist/additions/durable.js.map +1 -0
  9. package/dist/additions/first-added.d.ts +32 -48
  10. package/dist/additions/first-added.d.ts.map +1 -1
  11. package/dist/additions/first-added.js +68 -123
  12. package/dist/additions/first-added.js.map +1 -1
  13. package/dist/additions/index.d.ts +3 -0
  14. package/dist/additions/index.d.ts.map +1 -1
  15. package/dist/additions/index.js +3 -0
  16. package/dist/additions/index.js.map +1 -1
  17. package/dist/additions/ledger-store.js +1 -1
  18. package/dist/additions/record-rules.d.ts.map +1 -1
  19. package/dist/additions/record-rules.js +7 -0
  20. package/dist/additions/record-rules.js.map +1 -1
  21. package/dist/additions/summary.d.ts +88 -1
  22. package/dist/additions/summary.d.ts.map +1 -1
  23. package/dist/additions/summary.js +173 -8
  24. package/dist/additions/summary.js.map +1 -1
  25. package/dist/additions/version-inventory.d.ts +80 -0
  26. package/dist/additions/version-inventory.d.ts.map +1 -0
  27. package/dist/additions/version-inventory.js +232 -0
  28. package/dist/additions/version-inventory.js.map +1 -0
  29. package/dist/api/index.d.ts +70 -2
  30. package/dist/api/index.d.ts.map +1 -1
  31. package/dist/api/index.js +506 -79
  32. package/dist/api/index.js.map +1 -1
  33. package/dist/auth/index.d.ts +1 -1
  34. package/dist/auth/index.d.ts.map +1 -1
  35. package/dist/auth/index.js +1 -1
  36. package/dist/auth/index.js.map +1 -1
  37. package/dist/auth/request.d.ts +6 -0
  38. package/dist/auth/request.d.ts.map +1 -1
  39. package/dist/auth/request.js +66 -4
  40. package/dist/auth/request.js.map +1 -1
  41. package/dist/contracts/data.d.ts +54 -8
  42. package/dist/contracts/data.d.ts.map +1 -1
  43. package/dist/contracts/data.js +178 -35
  44. package/dist/contracts/data.js.map +1 -1
  45. package/dist/contracts/index.d.ts +1 -1
  46. package/dist/contracts/index.d.ts.map +1 -1
  47. package/dist/derivatives/registration.d.ts +0 -5
  48. package/dist/derivatives/registration.d.ts.map +1 -1
  49. package/dist/derivatives/registration.js +2 -1
  50. package/dist/derivatives/registration.js.map +1 -1
  51. package/dist/errors/pdpp-catalog.d.ts +36 -0
  52. package/dist/errors/pdpp-catalog.d.ts.map +1 -0
  53. package/dist/errors/pdpp-catalog.js +86 -0
  54. package/dist/errors/pdpp-catalog.js.map +1 -0
  55. package/dist/grants/index.d.ts +2 -0
  56. package/dist/grants/index.d.ts.map +1 -1
  57. package/dist/grants/index.js +4 -0
  58. package/dist/grants/index.js.map +1 -1
  59. package/dist/grants/pdpp-binding-store.d.ts +89 -0
  60. package/dist/grants/pdpp-binding-store.d.ts.map +1 -0
  61. package/dist/grants/pdpp-binding-store.js +112 -0
  62. package/dist/grants/pdpp-binding-store.js.map +1 -0
  63. package/dist/grants/pdpp-binding.d.ts +169 -0
  64. package/dist/grants/pdpp-binding.d.ts.map +1 -0
  65. package/dist/grants/pdpp-binding.js +236 -0
  66. package/dist/grants/pdpp-binding.js.map +1 -0
  67. package/dist/legacy-projection/bindings.d.ts +28 -1
  68. package/dist/legacy-projection/bindings.d.ts.map +1 -1
  69. package/dist/legacy-projection/bindings.js +622 -189
  70. package/dist/legacy-projection/bindings.js.map +1 -1
  71. package/dist/legacy-projection/claude-source-record.d.ts +22 -0
  72. package/dist/legacy-projection/claude-source-record.d.ts.map +1 -0
  73. package/dist/legacy-projection/claude-source-record.js +360 -0
  74. package/dist/legacy-projection/claude-source-record.js.map +1 -0
  75. package/dist/legacy-projection/declared-text.d.ts +41 -0
  76. package/dist/legacy-projection/declared-text.d.ts.map +1 -0
  77. package/dist/legacy-projection/declared-text.js +199 -0
  78. package/dist/legacy-projection/declared-text.js.map +1 -0
  79. package/dist/legacy-projection/github-browser-bindings.d.ts.map +1 -1
  80. package/dist/legacy-projection/github-browser-bindings.js +89 -5
  81. package/dist/legacy-projection/github-browser-bindings.js.map +1 -1
  82. package/dist/legacy-projection/github-legacy-fields.d.ts +6 -0
  83. package/dist/legacy-projection/github-legacy-fields.d.ts.map +1 -0
  84. package/dist/legacy-projection/github-legacy-fields.js +202 -0
  85. package/dist/legacy-projection/github-legacy-fields.js.map +1 -0
  86. package/dist/legacy-projection/index.d.ts +5 -1
  87. package/dist/legacy-projection/index.d.ts.map +1 -1
  88. package/dist/legacy-projection/index.js +55 -1
  89. package/dist/legacy-projection/index.js.map +1 -1
  90. package/dist/legacy-projection/oura-browser-bindings.d.ts.map +1 -1
  91. package/dist/legacy-projection/oura-browser-bindings.js +43 -41
  92. package/dist/legacy-projection/oura-browser-bindings.js.map +1 -1
  93. package/dist/legacy-projection/types.d.ts +38 -2
  94. package/dist/legacy-projection/types.d.ts.map +1 -1
  95. package/dist/mcp/read-client.d.ts.map +1 -1
  96. package/dist/mcp/read-client.js +10 -1
  97. package/dist/mcp/read-client.js.map +1 -1
  98. package/dist/mcp/resources.d.ts.map +1 -1
  99. package/dist/mcp/resources.js +3 -0
  100. package/dist/mcp/resources.js.map +1 -1
  101. package/dist/mcp/tools.d.ts.map +1 -1
  102. package/dist/mcp/tools.js +11 -2
  103. package/dist/mcp/tools.js.map +1 -1
  104. package/dist/pdpp/approval.d.ts +271 -0
  105. package/dist/pdpp/approval.d.ts.map +1 -0
  106. package/dist/pdpp/approval.js +467 -0
  107. package/dist/pdpp/approval.js.map +1 -0
  108. package/dist/pdpp/client-identity.d.ts +88 -0
  109. package/dist/pdpp/client-identity.d.ts.map +1 -0
  110. package/dist/pdpp/client-identity.js +196 -0
  111. package/dist/pdpp/client-identity.js.map +1 -0
  112. package/dist/pdpp/client-metadata.d.ts +95 -0
  113. package/dist/pdpp/client-metadata.d.ts.map +1 -0
  114. package/dist/pdpp/client-metadata.js +96 -0
  115. package/dist/pdpp/client-metadata.js.map +1 -0
  116. package/dist/pdpp/commitments.d.ts +75 -0
  117. package/dist/pdpp/commitments.d.ts.map +1 -0
  118. package/dist/pdpp/commitments.js +113 -0
  119. package/dist/pdpp/commitments.js.map +1 -0
  120. package/dist/pdpp/declaration.d.ts +118 -0
  121. package/dist/pdpp/declaration.d.ts.map +1 -0
  122. package/dist/pdpp/declaration.js +836 -0
  123. package/dist/pdpp/declaration.js.map +1 -0
  124. package/dist/pdpp/index.d.ts +37 -0
  125. package/dist/pdpp/index.d.ts.map +1 -0
  126. package/dist/pdpp/index.js +23 -0
  127. package/dist/pdpp/index.js.map +1 -0
  128. package/dist/pdpp/issuance.d.ts +126 -0
  129. package/dist/pdpp/issuance.d.ts.map +1 -0
  130. package/dist/pdpp/issuance.js +180 -0
  131. package/dist/pdpp/issuance.js.map +1 -0
  132. package/dist/pdpp/pkce.d.ts +53 -0
  133. package/dist/pdpp/pkce.d.ts.map +1 -0
  134. package/dist/pdpp/pkce.js +109 -0
  135. package/dist/pdpp/pkce.js.map +1 -0
  136. package/dist/pdpp/redirect.d.ts +60 -0
  137. package/dist/pdpp/redirect.d.ts.map +1 -0
  138. package/dist/pdpp/redirect.js +125 -0
  139. package/dist/pdpp/redirect.js.map +1 -0
  140. package/dist/pdpp/resolve.d.ts +109 -0
  141. package/dist/pdpp/resolve.d.ts.map +1 -0
  142. package/dist/pdpp/resolve.js +393 -0
  143. package/dist/pdpp/resolve.js.map +1 -0
  144. package/dist/pdpp/review.d.ts +280 -0
  145. package/dist/pdpp/review.d.ts.map +1 -0
  146. package/dist/pdpp/review.js +205 -0
  147. package/dist/pdpp/review.js.map +1 -0
  148. package/dist/pdpp/selection.d.ts +50 -0
  149. package/dist/pdpp/selection.d.ts.map +1 -0
  150. package/dist/pdpp/selection.js +442 -0
  151. package/dist/pdpp/selection.js.map +1 -0
  152. package/dist/pdpp/store.d.ts +228 -0
  153. package/dist/pdpp/store.d.ts.map +1 -0
  154. package/dist/pdpp/store.js +542 -0
  155. package/dist/pdpp/store.js.map +1 -0
  156. package/dist/pdpp/tokens.d.ts +181 -0
  157. package/dist/pdpp/tokens.d.ts.map +1 -0
  158. package/dist/pdpp/tokens.js +419 -0
  159. package/dist/pdpp/tokens.js.map +1 -0
  160. package/dist/pdpp/types.d.ts +441 -0
  161. package/dist/pdpp/types.d.ts.map +1 -0
  162. package/dist/pdpp/types.js +61 -0
  163. package/dist/pdpp/types.js.map +1 -0
  164. package/dist/pdpp-version.d.ts +28 -0
  165. package/dist/pdpp-version.d.ts.map +1 -0
  166. package/dist/pdpp-version.js +28 -0
  167. package/dist/pdpp-version.js.map +1 -0
  168. package/dist/policy/data-read.d.ts +24 -0
  169. package/dist/policy/data-read.d.ts.map +1 -1
  170. package/dist/policy/data-read.js +60 -3
  171. package/dist/policy/data-read.js.map +1 -1
  172. package/dist/policy/data-write.d.ts.map +1 -1
  173. package/dist/policy/data-write.js +3 -0
  174. package/dist/policy/data-write.js.map +1 -1
  175. package/dist/policy/index.d.ts +1 -0
  176. package/dist/policy/index.d.ts.map +1 -1
  177. package/dist/policy/index.js +1 -0
  178. package/dist/policy/index.js.map +1 -1
  179. package/dist/policy/reserved-scopes.d.ts +3 -0
  180. package/dist/policy/reserved-scopes.d.ts.map +1 -0
  181. package/dist/policy/reserved-scopes.js +5 -0
  182. package/dist/policy/reserved-scopes.js.map +1 -0
  183. package/dist/ports/index.d.ts +63 -0
  184. package/dist/ports/index.d.ts.map +1 -1
  185. package/dist/ports/index.js.map +1 -1
  186. package/dist/ports/pdpp-auth.d.ts +129 -0
  187. package/dist/ports/pdpp-auth.d.ts.map +1 -0
  188. package/dist/ports/pdpp-auth.js +60 -0
  189. package/dist/ports/pdpp-auth.js.map +1 -0
  190. package/dist/ports/pdpp-auth.test-utils.d.ts +9 -0
  191. package/dist/ports/pdpp-auth.test-utils.d.ts.map +1 -0
  192. package/dist/ports/pdpp-auth.test-utils.js +18 -0
  193. package/dist/ports/pdpp-auth.test-utils.js.map +1 -0
  194. package/dist/schemas/server-config.d.ts +44 -0
  195. package/dist/schemas/server-config.d.ts.map +1 -1
  196. package/dist/schemas/server-config.js +91 -0
  197. package/dist/schemas/server-config.js.map +1 -1
  198. package/dist/signing/request-signer.d.ts +2 -0
  199. package/dist/signing/request-signer.d.ts.map +1 -1
  200. package/dist/signing/request-signer.js +1 -0
  201. package/dist/signing/request-signer.js.map +1 -1
  202. package/dist/storage/adapters/interface.d.ts +3 -0
  203. package/dist/storage/adapters/interface.d.ts.map +1 -1
  204. package/dist/storage/adapters/vana-audience.d.ts +12 -0
  205. package/dist/storage/adapters/vana-audience.d.ts.map +1 -0
  206. package/dist/storage/adapters/vana-audience.js +72 -0
  207. package/dist/storage/adapters/vana-audience.js.map +1 -0
  208. package/dist/storage/adapters/vana.d.ts +2 -0
  209. package/dist/storage/adapters/vana.d.ts.map +1 -1
  210. package/dist/storage/adapters/vana.js +53 -20
  211. package/dist/storage/adapters/vana.js.map +1 -1
  212. package/dist/storage/canonical-legacy-projection.d.ts +262 -0
  213. package/dist/storage/canonical-legacy-projection.d.ts.map +1 -0
  214. package/dist/storage/canonical-legacy-projection.js +761 -0
  215. package/dist/storage/canonical-legacy-projection.js.map +1 -0
  216. package/dist/storage/index/manager.d.ts +29 -2
  217. package/dist/storage/index/manager.d.ts.map +1 -1
  218. package/dist/storage/index/schema.d.ts +1 -1
  219. package/dist/storage/index/schema.js +1 -1
  220. package/dist/storage/index/types.d.ts +7 -1
  221. package/dist/storage/index/types.d.ts.map +1 -1
  222. package/dist/storage/legacy-projection.d.ts +13 -10
  223. package/dist/storage/legacy-projection.d.ts.map +1 -1
  224. package/dist/storage/legacy-projection.js +269 -74
  225. package/dist/storage/legacy-projection.js.map +1 -1
  226. package/dist/storage/legacy-scope-coverage-exceptions.d.ts +8 -0
  227. package/dist/storage/legacy-scope-coverage-exceptions.d.ts.map +1 -0
  228. package/dist/storage/legacy-scope-coverage-exceptions.js +10 -0
  229. package/dist/storage/legacy-scope-coverage-exceptions.js.map +1 -0
  230. package/dist/storage/legacy-scope-coverage.d.ts +53 -0
  231. package/dist/storage/legacy-scope-coverage.d.ts.map +1 -0
  232. package/dist/storage/legacy-scope-coverage.js +403 -0
  233. package/dist/storage/legacy-scope-coverage.js.map +1 -0
  234. package/dist/storage/legacy-scope-entity-keys.d.ts +4 -0
  235. package/dist/storage/legacy-scope-entity-keys.d.ts.map +1 -0
  236. package/dist/storage/legacy-scope-entity-keys.js +92 -0
  237. package/dist/storage/legacy-scope-entity-keys.js.map +1 -0
  238. package/dist/storage/legacy-scope-view.d.ts +154 -0
  239. package/dist/storage/legacy-scope-view.d.ts.map +1 -0
  240. package/dist/storage/legacy-scope-view.js +735 -0
  241. package/dist/storage/legacy-scope-view.js.map +1 -0
  242. package/dist/storage/pdpp-records/completion.d.ts +91 -0
  243. package/dist/storage/pdpp-records/completion.d.ts.map +1 -0
  244. package/dist/storage/pdpp-records/completion.js +170 -0
  245. package/dist/storage/pdpp-records/completion.js.map +1 -0
  246. package/dist/storage/pdpp-records/cursor.d.ts +41 -0
  247. package/dist/storage/pdpp-records/cursor.d.ts.map +1 -0
  248. package/dist/storage/pdpp-records/cursor.js +49 -0
  249. package/dist/storage/pdpp-records/cursor.js.map +1 -0
  250. package/dist/storage/pdpp-records/declaration-witness.d.ts +58 -0
  251. package/dist/storage/pdpp-records/declaration-witness.d.ts.map +1 -0
  252. package/dist/storage/pdpp-records/declaration-witness.js +230 -0
  253. package/dist/storage/pdpp-records/declaration-witness.js.map +1 -0
  254. package/dist/storage/pdpp-records/enforcement.d.ts +52 -0
  255. package/dist/storage/pdpp-records/enforcement.d.ts.map +1 -0
  256. package/dist/storage/pdpp-records/enforcement.js +116 -0
  257. package/dist/storage/pdpp-records/enforcement.js.map +1 -0
  258. package/dist/storage/pdpp-records/index.d.ts +5 -0
  259. package/dist/storage/pdpp-records/index.d.ts.map +1 -0
  260. package/dist/storage/pdpp-records/index.js +5 -0
  261. package/dist/storage/pdpp-records/index.js.map +1 -0
  262. package/dist/storage/pdpp-records/ingest-plan.d.ts +39 -0
  263. package/dist/storage/pdpp-records/ingest-plan.d.ts.map +1 -0
  264. package/dist/storage/pdpp-records/ingest-plan.js +103 -0
  265. package/dist/storage/pdpp-records/ingest-plan.js.map +1 -0
  266. package/dist/storage/pdpp-records/interface.d.ts +104 -0
  267. package/dist/storage/pdpp-records/interface.d.ts.map +1 -0
  268. package/dist/storage/pdpp-records/interface.js +2 -0
  269. package/dist/storage/pdpp-records/interface.js.map +1 -0
  270. package/dist/storage/pdpp-records/memory-store.d.ts +9 -0
  271. package/dist/storage/pdpp-records/memory-store.d.ts.map +1 -0
  272. package/dist/storage/pdpp-records/memory-store.js +466 -0
  273. package/dist/storage/pdpp-records/memory-store.js.map +1 -0
  274. package/dist/storage/pdpp-records/portable.d.ts +9 -0
  275. package/dist/storage/pdpp-records/portable.d.ts.map +1 -0
  276. package/dist/storage/pdpp-records/portable.js +8 -0
  277. package/dist/storage/pdpp-records/portable.js.map +1 -0
  278. package/dist/storage/pdpp-records/read-port.d.ts +44 -0
  279. package/dist/storage/pdpp-records/read-port.d.ts.map +1 -0
  280. package/dist/storage/pdpp-records/read-port.js +22 -0
  281. package/dist/storage/pdpp-records/read-port.js.map +1 -0
  282. package/dist/storage/pdpp-records/record-key.d.ts +52 -0
  283. package/dist/storage/pdpp-records/record-key.d.ts.map +1 -0
  284. package/dist/storage/pdpp-records/record-key.js +97 -0
  285. package/dist/storage/pdpp-records/record-key.js.map +1 -0
  286. package/dist/storage/pdpp-records/schema.d.ts +41 -0
  287. package/dist/storage/pdpp-records/schema.d.ts.map +1 -0
  288. package/dist/storage/pdpp-records/schema.js +153 -0
  289. package/dist/storage/pdpp-records/schema.js.map +1 -0
  290. package/dist/storage/pdpp-records/stream-declaration.d.ts +88 -0
  291. package/dist/storage/pdpp-records/stream-declaration.d.ts.map +1 -0
  292. package/dist/storage/pdpp-records/stream-declaration.js +57 -0
  293. package/dist/storage/pdpp-records/stream-declaration.js.map +1 -0
  294. package/dist/storage/pdpp-records/types.d.ts +138 -0
  295. package/dist/storage/pdpp-records/types.d.ts.map +1 -0
  296. package/dist/storage/pdpp-records/types.js +38 -0
  297. package/dist/storage/pdpp-records/types.js.map +1 -0
  298. package/dist/sync/data-point-feed.d.ts +3 -0
  299. package/dist/sync/data-point-feed.d.ts.map +1 -1
  300. package/dist/sync/data-point-feed.js +17 -1
  301. package/dist/sync/data-point-feed.js.map +1 -1
  302. package/dist/sync/delete-data-port.d.ts +2 -0
  303. package/dist/sync/delete-data-port.d.ts.map +1 -1
  304. package/dist/sync/delete-data-port.js +1 -1
  305. package/dist/sync/delete-data-port.js.map +1 -1
  306. package/dist/sync/engine/sync-manager.d.ts.map +1 -1
  307. package/dist/sync/engine/sync-manager.js +5 -2
  308. package/dist/sync/engine/sync-manager.js.map +1 -1
  309. package/dist/sync/index.d.ts +3 -1
  310. package/dist/sync/index.d.ts.map +1 -1
  311. package/dist/sync/index.js +4 -0
  312. package/dist/sync/index.js.map +1 -1
  313. package/dist/sync/pdpp-import.d.ts +192 -0
  314. package/dist/sync/pdpp-import.d.ts.map +1 -0
  315. package/dist/sync/pdpp-import.js +441 -0
  316. package/dist/sync/pdpp-import.js.map +1 -0
  317. package/dist/sync/scope-deletions.d.ts +10 -0
  318. package/dist/sync/scope-deletions.d.ts.map +1 -1
  319. package/dist/sync/scope-deletions.js +40 -7
  320. package/dist/sync/scope-deletions.js.map +1 -1
  321. package/dist/sync/workers/download.d.ts +14 -0
  322. package/dist/sync/workers/download.d.ts.map +1 -1
  323. package/dist/sync/workers/download.js +149 -13
  324. package/dist/sync/workers/download.js.map +1 -1
  325. package/dist/sync/workers/upload.d.ts +2 -0
  326. package/dist/sync/workers/upload.d.ts.map +1 -1
  327. package/dist/sync/workers/upload.js +7 -0
  328. package/dist/sync/workers/upload.js.map +1 -1
  329. package/dist/test-utils/memory-storage.d.ts +1 -1
  330. package/dist/test-utils/memory-storage.d.ts.map +1 -1
  331. package/dist/test-utils/memory-storage.js +11 -5
  332. package/dist/test-utils/memory-storage.js.map +1 -1
  333. package/package.json +54 -4
@@ -6,24 +6,20 @@
6
6
  * as `chatgpt.conversations` = `{conversations, total}`. `withLegacyProjection`
7
7
  * wraps the raw storage port: when the latest stored body of a projected
8
8
  * scope is `{records}`, reads return the legacy body projected from that
9
- * stream and its sibling streams. Every other body is served exactly as
10
- * stored. Writes, listings and the sync-facing methods pass through.
9
+ * stream and its sibling streams. Legacy-shaped bodies are served as stored;
10
+ * raw bodies that cannot be projected fail the served read. Writes, listings
11
+ * and the sync-facing methods pass through.
11
12
  *
12
13
  * Give the wrapped ("served") port to every reader of data: the HTTP data
13
14
  * route, MCP, derivatives and the job worker. Give the raw port to sync
14
15
  * upload/download, so canonical bytes (and their hashes) never change.
15
16
  */
16
- import { LEGACY_SCOPE_BINDINGS, projectPdppRecordsToLegacyPayload, } from "../legacy-projection/index.js";
17
+ import { alternateLegacyBindingsForScope, LEGACY_SCOPE_BINDINGS, projectPdppRecordsToLegacyPayload, } from "../legacy-projection/index.js";
18
+ import { ProtocolError } from "../errors/catalog.js";
17
19
  import { isBinaryEnvelope } from "../contracts/binary.js";
18
20
  import { buildDataBlocksAsync } from "./blocks/build.js";
19
21
  import { readBuiltScopeBlocks } from "./blocks/page.js";
20
22
  import { previewEnvelopeValue } from "./preview.js";
21
- /**
22
- * Sources whose `{records}` bodies are projected. Other sources either emit
23
- * legacy wrappers themselves (GitHub, Strava) or have no real-shape parity
24
- * evidence yet (Oura), so their stored bodies are served as stored.
25
- */
26
- const PROJECTED_SOURCES = new Set(["chatgpt", "claude"]);
27
23
  /** Keys the server stamps into `data`; they are not part of the body. */
28
24
  const SERVER_STAMP_KEYS = new Set([
29
25
  "$writtenBy",
@@ -39,9 +35,9 @@ export function classifyStoredBody(scope, data) {
39
35
  const SERVED = Symbol.for("personal-server-ts.legacy-projection.served");
40
36
  /** A served port's own projected view of one stored version, for supersede. */
41
37
  const PROJECTED_VIEW = Symbol.for("personal-server-ts.legacy-projection.projected-view");
42
- const textEncoder = new TextEncoder();
43
38
  /** How many stored versions' body forms one served port remembers. */
44
39
  const FORM_CACHE_SIZE = 64;
40
+ const textEncoder = new TextEncoder();
45
41
  /**
46
42
  * Wrap a raw storage port so reads of projected scopes return legacy bodies.
47
43
  * Wrapping an already wrapped port returns it unchanged.
@@ -52,16 +48,24 @@ export function withLegacyProjection(raw, options = {}) {
52
48
  // One entry, keyed by the versions of every input. It saves re-projecting
53
49
  // on repeated reads of the same data; it is not a persistent cache.
54
50
  let memo = null;
55
- // The body form of each stored version read so far, so a version that is
56
- // not projected (most often a legacy body) is parsed to classify it once,
57
- // not on every read. Bounded; the oldest entry goes first.
51
+ // Classification is safe to reuse only for the same immutable stored
52
+ // version. The requested version is classified before the projection cache.
58
53
  const forms = new Map();
59
- const rememberForm = (version, form) => {
60
- forms.set(version, form);
54
+ const rememberForm = (key, value) => {
55
+ forms.set(key, value);
61
56
  if (forms.size > FORM_CACHE_SIZE) {
62
57
  forms.delete(forms.keys().next().value);
63
58
  }
64
59
  };
60
+ function failProjection(scope, collectedAt, error) {
61
+ options.onIssue?.({ kind: "projection_failed", scope, collectedAt, error });
62
+ throw new ProtocolError(409, "LEGACY_PROJECTION_UNAVAILABLE", `Cannot serve the legacy view for scope "${scope}"`, {
63
+ scope,
64
+ collectedAt,
65
+ reason: "reason" in error ? error.reason : error.kind,
66
+ projectionError: error.kind,
67
+ });
68
+ }
65
69
  /**
66
70
  * The projected view of a stored version, or null when it is served as
67
71
  * stored. `own` is the stored envelope when it had to be read to decide.
@@ -69,7 +73,43 @@ export function withLegacyProjection(raw, options = {}) {
69
73
  async function resolve(scope, collectedAt) {
70
74
  if (!isProjectedScope(scope))
71
75
  return { view: null };
72
- const binding = LEGACY_SCOPE_BINDINGS.get(scope);
76
+ const requestedEntry = raw.findEntry({ scope, at: collectedAt });
77
+ const ownVersion = requestedEntry
78
+ ? `${requestedEntry.id}@${requestedEntry.collectedAt}`
79
+ : `unindexed@${collectedAt}`;
80
+ const formKey = JSON.stringify([scope, ownVersion]);
81
+ let cached = forms.get(formKey);
82
+ let own;
83
+ if (!cached) {
84
+ own = await raw.readEnvelope(scope, collectedAt);
85
+ const form = classifyStoredBody(scope, own.data);
86
+ cached = {
87
+ form,
88
+ ...(form === "pdpp-projected"
89
+ ? {
90
+ selected: selectProjectionBinding(scope, own.data.records),
91
+ }
92
+ : {}),
93
+ };
94
+ rememberForm(formKey, cached);
95
+ }
96
+ if (cached.form === "legacy")
97
+ return { view: null, own };
98
+ if (cached.form === "pdpp-unprojected") {
99
+ failProjection(scope, collectedAt, {
100
+ kind: "incomplete_scope",
101
+ scope,
102
+ reason: "Stored records are not rows of one stream",
103
+ });
104
+ }
105
+ if (!cached.selected) {
106
+ failProjection(scope, collectedAt, {
107
+ kind: "incomplete_scope",
108
+ scope,
109
+ reason: "Stored records do not identify one compatible connector profile",
110
+ });
111
+ }
112
+ const { binding, profileKey } = cached.selected;
73
113
  const source = scope.slice(0, scope.indexOf("."));
74
114
  // The latest version joins the latest siblings, whatever order one run
75
115
  // wrote its streams in. A historical version joins, of the sibling
@@ -77,12 +117,26 @@ export function withLegacyProjection(raw, options = {}) {
77
117
  // in time: the one its own run wrote, before or after it.
78
118
  const supersededAt = nextVersionTime(raw, scope, collectedAt);
79
119
  const inputs = binding.pdppStreams.map((stream) => {
80
- const storedScope = `${source}.${stream}`;
81
- const entry = storedScope === scope
82
- ? raw.findEntry({ scope, at: collectedAt })
120
+ const canonicalScope = `${source}.${stream}`;
121
+ // For a single-stream alias, prefer the exact requested version when
122
+ // it exists. This keeps alias writes, body classification and cursors
123
+ // tied to the version the caller asked to read.
124
+ let storedScope = binding.pdppStreams.length === 1 && requestedEntry
125
+ ? scope
126
+ : canonicalScope;
127
+ let entry = storedScope === scope
128
+ ? requestedEntry
83
129
  : supersededAt === undefined
84
130
  ? raw.findEntry({ scope: storedScope })
85
131
  : nearestBefore(raw, storedScope, collectedAt, supersededAt);
132
+ // Some PDPP streams have a legacy scope alias (for example,
133
+ // youtube.history -> youtube.watch_history). Lite stores the stream
134
+ // envelope under that alias, so use it as the single stream input when
135
+ // no canonical stream-scope entry exists.
136
+ if (!entry && binding.pdppStreams.length === 1 && storedScope !== scope) {
137
+ storedScope = scope;
138
+ entry = requestedEntry;
139
+ }
86
140
  return {
87
141
  stream,
88
142
  storedScope,
@@ -92,33 +146,37 @@ export function withLegacyProjection(raw, options = {}) {
92
146
  version: entry ? `${entry.id}@${entry.collectedAt}` : null,
93
147
  };
94
148
  });
95
- const ownVersion = inputs.find((input) => input.storedScope === scope)?.version;
96
- if (ownVersion) {
97
- const form = forms.get(ownVersion);
98
- if (form !== undefined && form !== "pdpp-projected") {
99
- return { view: null };
100
- }
101
- }
102
- const key = JSON.stringify([scope, inputs.map((input) => input.version)]);
149
+ const key = JSON.stringify([
150
+ scope,
151
+ ownVersion,
152
+ profileKey,
153
+ inputs.map(({ storedScope, version }) => [storedScope, version]),
154
+ ]);
103
155
  if (memo?.key === key)
104
- return { view: memo.value };
105
- const own = await raw.readEnvelope(scope, collectedAt);
106
- const form = classifyStoredBody(scope, own.data);
107
- if (ownVersion)
108
- rememberForm(ownVersion, form);
109
- let value = null;
110
- if (form === "pdpp-projected") {
111
- value = await project(scope, collectedAt, own, inputs);
112
- if (value)
113
- value.view = key;
114
- }
156
+ return { view: memo.value, own };
157
+ own ??= await raw.readEnvelope(scope, collectedAt);
158
+ const value = await project(scope, collectedAt, own, inputs, binding, profileKey);
159
+ if (value)
160
+ value.view = key;
115
161
  memo = { key, value };
116
162
  return { view: value, own };
117
163
  }
118
164
  async function projected(scope, collectedAt) {
119
165
  return (await resolve(scope, collectedAt)).view;
120
166
  }
121
- async function project(scope, collectedAt, own, inputs) {
167
+ async function projectedForSupersede(scope, collectedAt) {
168
+ try {
169
+ return await projected(scope, collectedAt);
170
+ }
171
+ catch (error) {
172
+ if (error instanceof ProtocolError &&
173
+ error.errorCode === "LEGACY_PROJECTION_UNAVAILABLE") {
174
+ return null;
175
+ }
176
+ throw error;
177
+ }
178
+ }
179
+ async function project(scope, collectedAt, own, inputs, binding, profileKey) {
122
180
  const records = [];
123
181
  const fetchedStreams = [];
124
182
  // The projection time is the newest input version, so the same stored
@@ -138,26 +196,35 @@ export function withLegacyProjection(raw, options = {}) {
138
196
  if (rows.some(isTaggedRecord))
139
197
  continue;
140
198
  fetchedStreams.push(input.stream);
141
- if (input.collectedAt > now)
199
+ if (Date.parse(input.collectedAt) > Date.parse(now)) {
142
200
  now = input.collectedAt;
201
+ }
143
202
  for (const row of rows) {
144
203
  records.push({ stream: input.stream, data: row });
145
204
  }
146
205
  }
147
- const result = projectPdppRecordsToLegacyPayload(scope, records, {
206
+ if (!recordsMatchBindingSource(records, binding, alternateLegacyBindingsForScope(scope).size > 0)) {
207
+ failProjection(scope, collectedAt, {
208
+ kind: "incomplete_scope",
209
+ scope,
210
+ reason: "Joined streams have conflicting connector identities",
211
+ });
212
+ }
213
+ // Connector identity is storage metadata, not part of an app's legacy row.
214
+ const projectionRecords = records.map((record) => {
215
+ const data = { ...record.data };
216
+ delete data.$pdpp;
217
+ return { ...record, data };
218
+ });
219
+ const result = projectPdppRecordsToLegacyPayload(scope, projectionRecords, {
148
220
  fetchedStreams,
149
221
  now,
150
- orderByPrimaryKey: true,
222
+ ...(profileKey ? { profileKey } : {}),
223
+ orderByPrimaryKey: binding.rowOrder !== "arrival",
151
224
  allowMissingJoinStreams: true,
152
225
  });
153
226
  if (!result.ok) {
154
- options.onIssue?.({
155
- kind: "projection_failed",
156
- scope,
157
- collectedAt,
158
- error: result.error,
159
- });
160
- return null;
227
+ failProjection(scope, collectedAt, result.error);
161
228
  }
162
229
  if (result.diagnostics?.length) {
163
230
  options.onIssue?.({
@@ -191,7 +258,7 @@ export function withLegacyProjection(raw, options = {}) {
191
258
  }
192
259
  const overrides = {
193
260
  [SERVED]: true,
194
- [PROJECTED_VIEW]: projected,
261
+ [PROJECTED_VIEW]: projectedForSupersede,
195
262
  async readEnvelope(scope, collectedAt) {
196
263
  const { view, own } = await resolve(scope, collectedAt);
197
264
  return view?.envelope ?? own ?? raw.readEnvelope(scope, collectedAt);
@@ -297,10 +364,54 @@ export function legacyScopesProjectedFrom(scope) {
297
364
  .map((binding) => binding.scope);
298
365
  }
299
366
  function isProjectedScope(scope) {
300
- const dot = scope.indexOf(".");
301
- return (dot > 0 &&
302
- PROJECTED_SOURCES.has(scope.slice(0, dot)) &&
303
- LEGACY_SCOPE_BINDINGS.has(scope));
367
+ return LEGACY_SCOPE_BINDINGS.has(scope);
368
+ }
369
+ function selectProjectionBinding(scope, rows) {
370
+ const original = LEGACY_SCOPE_BINDINGS.get(scope);
371
+ const alternates = alternateLegacyBindingsForScope(scope);
372
+ const identities = rows.map(recordSourceId);
373
+ if (identities.includes(null))
374
+ return null;
375
+ if (alternates.size > 0 && identities.includes(undefined))
376
+ return null;
377
+ const sources = new Set(identities.filter((id) => !!id));
378
+ if (sources.size > 1)
379
+ return null;
380
+ if (sources.size === 0) {
381
+ return alternates.size === 0 ? { binding: original } : null;
382
+ }
383
+ const sourceId = [...sources][0];
384
+ const connectorKey = sourceId.slice(sourceId.lastIndexOf("/") + 1);
385
+ const alternate = alternates.get(connectorKey);
386
+ if (alternate && sourceIdForBinding(alternate) === sourceId) {
387
+ return { binding: alternate, profileKey: connectorKey };
388
+ }
389
+ return sourceIdForBinding(original) === sourceId
390
+ ? { binding: original }
391
+ : null;
392
+ }
393
+ function recordSourceId(data) {
394
+ if (!data || typeof data !== "object" || Array.isArray(data)) {
395
+ return null;
396
+ }
397
+ if (!("$pdpp" in data))
398
+ return undefined;
399
+ const metadata = data.$pdpp;
400
+ if (!metadata || typeof metadata !== "object" || Array.isArray(metadata)) {
401
+ return null;
402
+ }
403
+ const sourceId = metadata.sourceId;
404
+ return typeof sourceId === "string" && sourceId ? sourceId : null;
405
+ }
406
+ function sourceIdForBinding(binding) {
407
+ return binding.pdppSource.replace("/connectors/", "/sources/");
408
+ }
409
+ function recordsMatchBindingSource(records, binding, requireIdentity) {
410
+ const expected = sourceIdForBinding(binding);
411
+ return records.every(({ data }) => {
412
+ const actual = recordSourceId(data);
413
+ return actual === expected || (!requireIdentity && actual === undefined);
414
+ });
304
415
  }
305
416
  const VERSION_PAGE_SIZE = 100;
306
417
  /** Versions of `scope`, newest first, until `stop` returns true. */
@@ -378,13 +489,15 @@ function isRecordsBody(data) {
378
489
  /**
379
490
  * After a `{records}` version of a projected scope is committed, delete the
380
491
  * scope's older owner-written legacy versions: the new version serves the
381
- * same legacy view, so they are a second copy.
492
+ * same legacy view, so they are a second copy. This explicit supersede path
493
+ * remains available only for the original ChatGPT and Claude sources. Other
494
+ * bound sources retain legacy versions and replace them only in the read view.
382
495
  *
383
496
  * It deletes nothing unless `storage` is a served port (see
384
497
  * `withLegacyProjection`) whose projection of the new version is complete:
385
498
  * no join stream missing and no row left out. It also deletes nothing when
386
- * the projection holds fewer items than the newest legacy version, or lacks
387
- * any item id that version holds, so an empty or time-windowed run cannot
499
+ * the projection holds fewer items than a legacy version, or lacks
500
+ * any item identity that version holds, so an empty or time-windowed run cannot
388
501
  * replace a full history. For Claude scopes it also deletes nothing when an
389
502
  * item holds fewer nested messages or documents than the legacy item. A legacy version must carry the scope's legacy
390
503
  * collection key (`conversations` for `chatgpt.conversations`); PDPP
@@ -399,6 +512,14 @@ export async function supersedeLegacyVersions(storage, scope, committedAt) {
399
512
  superseded: [],
400
513
  refused,
401
514
  });
515
+ if (scope.startsWith("youtube.")) {
516
+ return refuse("YouTube legacy versions are retained for read-time projection");
517
+ }
518
+ if (isProjectedScope(scope) &&
519
+ !scope.startsWith("chatgpt.") &&
520
+ !scope.startsWith("claude.")) {
521
+ return refuse("Legacy versions are retained for read-time projection");
522
+ }
402
523
  const readStored = (storage.readStoredEnvelope ?? storage.readEnvelope).bind(storage);
403
524
  const committed = await readStored(scope, committedAt);
404
525
  if (classifyStoredBody(scope, committed.data) !== "pdpp-projected") {
@@ -413,6 +534,9 @@ export async function supersedeLegacyVersions(storage, scope, committedAt) {
413
534
  return refuse(`the projection is partial (${kinds.join(", ")})`);
414
535
  }
415
536
  const collection = legacyCollectionKey(scope);
537
+ if (!collection) {
538
+ return refuse(`the legacy collection for ${scope} is unsupported`);
539
+ }
416
540
  const projectedItems = view.envelope.data[collection];
417
541
  const projectedCount = projectedItems.length;
418
542
  const committedMs = Date.parse(committedAt);
@@ -441,23 +565,37 @@ export async function supersedeLegacyVersions(storage, scope, committedAt) {
441
565
  legacy.push({
442
566
  collectedAt,
443
567
  count: items.length,
444
- ids: items.map(itemId).filter((id) => id !== undefined),
445
568
  items,
446
569
  });
447
570
  }
448
571
  const newest = legacy.reduce((best, version) => !best || Date.parse(version.collectedAt) > Date.parse(best.collectedAt)
449
572
  ? version
450
573
  : best, undefined);
451
- if (newest && projectedCount < newest.count) {
452
- return refuse(`the projection has ${projectedCount} ${collection}; the newest legacy version has ${newest.count}`);
453
- }
454
- if (newest) {
455
- const projectedIds = new Set(projectedItems.map(itemId).filter((id) => id !== undefined));
456
- const missing = newest.ids.filter((id) => !projectedIds.has(id));
457
- if (missing.length > 0) {
458
- return refuse(`the projection lacks ${missing.length} of the ${collection} in the newest legacy version`);
574
+ const projectedCounts = new Map();
575
+ for (const item of projectedItems) {
576
+ const identity = itemIdentity(scope, item);
577
+ if (!identity)
578
+ continue;
579
+ projectedCounts.set(identity, (projectedCounts.get(identity) ?? 0) + 1);
580
+ }
581
+ for (const version of legacy) {
582
+ const versionLabel = version === newest ? "the newest legacy version" : "a legacy version";
583
+ if (projectedCount < version.count) {
584
+ return refuse(`the projection has ${projectedCount} ${collection}; ${versionLabel} has ${version.count}`);
585
+ }
586
+ const requiredCounts = new Map();
587
+ for (const item of version.items) {
588
+ const identity = itemIdentity(scope, item);
589
+ if (!identity) {
590
+ return refuse(`a legacy ${collection} item has no provable identity`);
591
+ }
592
+ requiredCounts.set(identity, (requiredCounts.get(identity) ?? 0) + 1);
459
593
  }
460
- const shortfall = nestedShortfall(scope, newest.items, projectedItems);
594
+ const missing = [...requiredCounts].reduce((count, [identity, required]) => count + Math.max(0, required - (projectedCounts.get(identity) ?? 0)), 0);
595
+ if (missing > 0) {
596
+ return refuse(`the projection lacks ${missing} of the ${collection} in ${versionLabel}`);
597
+ }
598
+ const shortfall = nestedShortfall(scope, version.items, projectedItems);
461
599
  if (shortfall)
462
600
  return refuse(shortfall);
463
601
  }
@@ -486,6 +624,10 @@ const NESTED_ITEMS = {
486
624
  held: arrayLength(field(item, "messages")),
487
625
  selfShort: false,
488
626
  }),
627
+ "youtube.playlistItems": (item) => ({
628
+ held: arrayLength(field(item, "items")),
629
+ selfShort: false,
630
+ }),
489
631
  "claude.projects": (item) => {
490
632
  const detail = field(item, "detail");
491
633
  const rawDocs = field(detail, "raw_docs");
@@ -511,18 +653,48 @@ function nestedShortfall(scope, legacyItems, projectedItems) {
511
653
  const nested = NESTED_ITEMS[scope];
512
654
  if (!nested)
513
655
  return undefined;
514
- const projectedById = new Map(projectedItems.map((item) => [itemId(item), nested(item).held]));
515
- const short = legacyItems.filter((item) => (projectedById.get(itemId(item)) ?? 0) < nested(item).held);
656
+ const heldByIdentity = (items) => {
657
+ const held = new Map();
658
+ for (const item of items) {
659
+ const identity = itemIdentity(scope, item);
660
+ if (!identity)
661
+ continue;
662
+ const values = held.get(identity) ?? [];
663
+ values.push(nested(item).held);
664
+ held.set(identity, values);
665
+ }
666
+ for (const values of held.values())
667
+ values.sort((left, right) => right - left);
668
+ return held;
669
+ };
670
+ const legacyHeld = heldByIdentity(legacyItems);
671
+ const projectedHeld = heldByIdentity(projectedItems);
672
+ let short = 0;
673
+ for (const [identity, required] of legacyHeld) {
674
+ const available = projectedHeld.get(identity) ?? [];
675
+ short += required.filter((count, index) => (available[index] ?? 0) < count).length;
676
+ }
516
677
  // A project whose own source lists docs the projection lacks.
517
678
  const incomplete = projectedItems.filter((item) => nested(item).selfShort);
518
- const count = short.length + incomplete.length;
679
+ const count = short + incomplete.length;
519
680
  return count > 0
520
- ? `the projection holds fewer nested rows than the source or the newest legacy version for ${count} of the ${legacyCollectionKey(scope)}`
681
+ ? `the projection holds fewer nested rows than the source or a legacy version for ${count} of the ${legacyCollectionKey(scope)}`
521
682
  : undefined;
522
683
  }
523
- /** `chatgpt.conversations` → `conversations`: the array a legacy body holds. */
684
+ const LEGACY_COLLECTION_KEYS = {
685
+ "youtube.profile": null,
686
+ "youtube.history": "history",
687
+ "youtube.subscriptions": "subscriptions",
688
+ "youtube.playlists": "playlists",
689
+ "youtube.playlistItems": "playlists",
690
+ "youtube.likes": "likedVideos",
691
+ "youtube.watchLater": "watchLater",
692
+ };
693
+ /** The array a legacy body holds, or null for singleton/unsupported shapes. */
524
694
  function legacyCollectionKey(scope) {
525
- return scope.slice(scope.indexOf(".") + 1);
695
+ return scope in LEGACY_COLLECTION_KEYS
696
+ ? LEGACY_COLLECTION_KEYS[scope]
697
+ : scope.slice(scope.indexOf(".") + 1);
526
698
  }
527
699
  /**
528
700
  * The items of an owner-written legacy body of `scope`, or null when the
@@ -535,9 +707,32 @@ function legacyCollection(scope, data) {
535
707
  }
536
708
  if (isRecordsBody(data) || "$writtenBy" in data)
537
709
  return null;
538
- const items = data[legacyCollectionKey(scope)];
710
+ const collection = legacyCollectionKey(scope);
711
+ if (!collection)
712
+ return null;
713
+ const items = data[collection];
539
714
  return Array.isArray(items) ? items : null;
540
715
  }
716
+ /** Stable identity fields for scopes whose legacy keys differ from `id`. */
717
+ const IDENTITY_FIELDS = {
718
+ "youtube.history": ["videoId", "videoUrl"],
719
+ "youtube.subscriptions": ["channelId", "channelUrl"],
720
+ "youtube.playlists": ["playlistId", "url"],
721
+ "youtube.playlistItems": ["playlistId"],
722
+ "youtube.likes": ["videoId", "videoUrl"],
723
+ "youtube.watchLater": ["videoId", "videoUrl"],
724
+ };
725
+ /** Stable identity used to prove that a projection covers a legacy item. */
726
+ function itemIdentity(scope, item) {
727
+ for (const key of IDENTITY_FIELDS[scope] ?? []) {
728
+ const value = field(item, key);
729
+ if (typeof value === "string" && value.length > 0) {
730
+ return `${key}:${value}`;
731
+ }
732
+ }
733
+ const id = itemId(item);
734
+ return id === undefined ? undefined : `id:${id}`;
735
+ }
541
736
  /** A legacy item's `id` (or `uuid`), when it has a string one. */
542
737
  function itemId(item) {
543
738
  if (item === null || typeof item !== "object")
@@ -1 +1 @@
1
- {"version":3,"file":"legacy-projection.js","sourceRoot":"","sources":["../../src/storage/legacy-projection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"legacy-projection.js","sourceRoot":"","sources":["../../src/storage/legacy-projection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /** Reviewed legacy collector defects for coverage comparison. */
2
+ export declare const LEGACY_COVERAGE_EXCEPTIONS: readonly [{
3
+ readonly scope: "chatgpt.memories";
4
+ readonly path: "$.memories[].created_at";
5
+ readonly reason: "legacy collector wrote collection time; canonical carries source creation time";
6
+ readonly authority: "canonical";
7
+ }];
8
+ //# sourceMappingURL=legacy-scope-coverage-exceptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy-scope-coverage-exceptions.d.ts","sourceRoot":"","sources":["../../src/storage/legacy-scope-coverage-exceptions.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,eAAO,MAAM,0BAA0B;;;;;EAQ7B,CAAC"}
@@ -0,0 +1,10 @@
1
+ /** Reviewed legacy collector defects for coverage comparison. */
2
+ export const LEGACY_COVERAGE_EXCEPTIONS = [
3
+ {
4
+ scope: "chatgpt.memories",
5
+ path: "$.memories[].created_at",
6
+ reason: "legacy collector wrote collection time; canonical carries source creation time",
7
+ authority: "canonical",
8
+ },
9
+ ];
10
+ //# sourceMappingURL=legacy-scope-coverage-exceptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy-scope-coverage-exceptions.js","sourceRoot":"","sources":["../../src/storage/legacy-scope-coverage-exceptions.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC;QACE,KAAK,EAAE,kBAAkB;QACzB,IAAI,EAAE,yBAAyB;QAC/B,MAAM,EACJ,gFAAgF;QAClF,SAAS,EAAE,WAAW;KACvB;CACO,CAAC"}