offprint 0.0.3__tar.gz → 0.0.6__tar.gz

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 (272) hide show
  1. {offprint-0.0.3 → offprint-0.0.6}/PKG-INFO +3 -4
  2. {offprint-0.0.3 → offprint-0.0.6}/README.md +2 -2
  3. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/Cargo.lock +16 -16
  4. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/Cargo.toml +15 -15
  5. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/capture/src/content_store.rs +51 -7
  6. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/generated/collector.js +148 -96
  7. offprint-0.0.6/offprint-rs/chromium/generated/collector.sha256 +1 -0
  8. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/lib.rs +1 -1
  9. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/offline.rs +61 -64
  10. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/page/activity.rs +3 -10
  11. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/page/interception.rs +6 -14
  12. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/page/lifecycle.rs +5 -9
  13. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/page/navigation.rs +10 -3
  14. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/page/offline.rs +1 -1
  15. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/page.rs +4 -3
  16. offprint-0.0.6/offprint-rs/chromium/src/pdf/prepare.js +166 -0
  17. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/pdf.rs +1 -52
  18. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/proxy.rs +108 -17
  19. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/resources/identity.rs +32 -0
  20. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/resources.rs +5 -11
  21. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/targets/tests.rs +3 -75
  22. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/targets.rs +29 -79
  23. offprint-0.0.6/offprint-rs/chromium/src/transport/events/queue.rs +394 -0
  24. offprint-0.0.6/offprint-rs/chromium/src/transport/events.rs +498 -0
  25. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/transport/tests.rs +71 -4
  26. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/transport.rs +26 -60
  27. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/tests/browser_smoke.rs +31 -0
  28. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/src/artifact_service/export.rs +3 -4
  29. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/src/artifact_service/markdown_bundle.rs +3 -3
  30. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/src/artifact_service.rs +5 -117
  31. offprint-0.0.6/offprint-rs/core/src/bounded_io.rs +169 -0
  32. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/src/lib.rs +1 -0
  33. offprint-0.0.6/offprint-rs/core/src/runtime/checkpoints.rs +257 -0
  34. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/src/runtime/configuration.rs +1 -0
  35. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/src/runtime.rs +9 -1
  36. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/src/scheduler/resume.rs +139 -61
  37. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/src/scheduler.rs +84 -25
  38. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/tests/artifact_exports.rs +314 -0
  39. offprint-0.0.6/offprint-rs/core/tests/parallel_capture.rs +126 -0
  40. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/document/src/discover/css.rs +17 -29
  41. offprint-0.0.6/offprint-rs/document/src/discover/rewrite.rs +78 -0
  42. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/document/src/discover.rs +4 -17
  43. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/document/src/serialize.rs +4 -6
  44. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/export/src/pdf/metadata/model.rs +12 -0
  45. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/export/src/pdf/metadata/tests.rs +49 -0
  46. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/export/src/pdf/metadata.rs +13 -8
  47. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/export/src/pdf.rs +14 -16
  48. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/test-support/src/manifest/model.rs +2 -0
  49. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/test-support/src/manifest.rs +74 -0
  50. {offprint-0.0.3 → offprint-0.0.6}/pyproject.toml +2 -3
  51. offprint-0.0.3/THIRD_PARTY_NOTICES.txt +0 -12930
  52. offprint-0.0.3/offprint-rs/chromium/generated/collector.sha256 +0 -1
  53. {offprint-0.0.3 → offprint-0.0.6}/LICENSE +0 -0
  54. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/artifact/Cargo.toml +0 -0
  55. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/artifact/LICENSE +0 -0
  56. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/artifact/src/filename.rs +0 -0
  57. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/artifact/src/lib.rs +0 -0
  58. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/artifact/src/memory.rs +0 -0
  59. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/artifact/src/multi_output/commit.rs +0 -0
  60. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/artifact/src/multi_output/durable.rs +0 -0
  61. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/artifact/src/multi_output/fault.rs +0 -0
  62. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/artifact/src/multi_output/journal.rs +0 -0
  63. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/artifact/src/multi_output/payload.rs +0 -0
  64. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/artifact/src/multi_output/plan.rs +0 -0
  65. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/artifact/src/multi_output/recovery.rs +0 -0
  66. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/artifact/src/multi_output/tests.rs +0 -0
  67. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/artifact/src/multi_output.rs +0 -0
  68. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/artifact/src/transaction.rs +0 -0
  69. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/artifact/tests/relative_output.rs +0 -0
  70. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/browser/Cargo.toml +0 -0
  71. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/browser/LICENSE +0 -0
  72. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/browser/src/backend.rs +0 -0
  73. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/browser/src/lib.rs +0 -0
  74. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/browser/src/network/tests.rs +0 -0
  75. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/browser/src/network.rs +0 -0
  76. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/browser/src/observation.rs +0 -0
  77. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/capture/Cargo.toml +0 -0
  78. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/capture/LICENSE +0 -0
  79. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/capture/src/budget.rs +0 -0
  80. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/capture/src/cancellation.rs +0 -0
  81. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/capture/src/lib.rs +0 -0
  82. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/capture/src/state.rs +0 -0
  83. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/capture/src/validated.rs +0 -0
  84. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/Cargo.toml +0 -0
  85. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/LICENSE +0 -0
  86. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/NOTICE +0 -0
  87. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/backend/tests.rs +0 -0
  88. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/backend.rs +0 -0
  89. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/cdp/generated/cdp_browser.rs +0 -0
  90. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/cdp/generated/cdp_page.rs +0 -0
  91. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/cdp/generated/cdp_target.rs +0 -0
  92. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/cdp/generated/mod.rs +0 -0
  93. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/cdp.rs +0 -0
  94. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/collector.rs +0 -0
  95. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/discovery.rs +0 -0
  96. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/launch.rs +0 -0
  97. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/managed/archive.rs +0 -0
  98. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/managed/cache.rs +0 -0
  99. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/managed/catalog.rs +0 -0
  100. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/managed/download.rs +0 -0
  101. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/managed/installed.rs +0 -0
  102. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/managed/leases.rs +0 -0
  103. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/managed.rs +0 -0
  104. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/page/frame_owner.rs +0 -0
  105. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/page/interception/paused.rs +0 -0
  106. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/page/resource.rs +0 -0
  107. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/page/tests.rs +0 -0
  108. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/page/visual_fallback.rs +0 -0
  109. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/remote.rs +0 -0
  110. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/resources/normalization.rs +0 -0
  111. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/resources/storage.rs +0 -0
  112. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/resources/stream.rs +0 -0
  113. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/resources/tasks.rs +0 -0
  114. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/chromium/src/resources/test_support.rs +0 -0
  115. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/Cargo.toml +0 -0
  116. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/LICENSE +0 -0
  117. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/src/command.rs +0 -0
  118. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/src/config/browser.rs +0 -0
  119. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/src/config/document.rs +0 -0
  120. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/src/config/environment.rs +0 -0
  121. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/src/config/profile.rs +0 -0
  122. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/src/config/resolve.rs +0 -0
  123. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/src/config/tests.rs +0 -0
  124. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/src/config/value.rs +0 -0
  125. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/src/config.rs +0 -0
  126. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/src/credentials.rs +0 -0
  127. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/src/lib.rs +0 -0
  128. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/src/main.rs +0 -0
  129. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/src/output.rs +0 -0
  130. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/src/process.rs +0 -0
  131. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/src/runner/arguments.rs +0 -0
  132. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/src/runner/artifacts.rs +0 -0
  133. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/src/runner/batch.rs +0 -0
  134. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/src/runner/browser.rs +0 -0
  135. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/src/runner/capture/execute.rs +0 -0
  136. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/src/runner/capture/finish.rs +0 -0
  137. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/src/runner/capture/plan.rs +0 -0
  138. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/src/runner/capture.rs +0 -0
  139. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/src/runner/crawl.rs +0 -0
  140. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/src/runner/diagnostics.rs +0 -0
  141. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/src/runner/dispatch.rs +0 -0
  142. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/src/runner/export.rs +0 -0
  143. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/src/runner/input.rs +0 -0
  144. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/src/runner/scheduler.rs +0 -0
  145. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/src/runner/tests.rs +0 -0
  146. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/src/runner.rs +0 -0
  147. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/tests/metadata_cli.rs +0 -0
  148. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/tests/release_archive_smoke.rs +0 -0
  149. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/cli/tests/staging_error_cli.rs +0 -0
  150. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/Cargo.toml +0 -0
  151. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/LICENSE +0 -0
  152. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/README.md +0 -0
  153. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/examples/capture_file.rs +0 -0
  154. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/examples/capture_memory.rs +0 -0
  155. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/examples/custom_network.rs +0 -0
  156. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/src/browser_service.rs +0 -0
  157. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/src/capture_builder.rs +0 -0
  158. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/src/capture_service/diagnostics.rs +0 -0
  159. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/src/capture_service/events.rs +0 -0
  160. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/src/capture_service.rs +0 -0
  161. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/src/dependencies.rs +0 -0
  162. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/src/diagnostics.rs +0 -0
  163. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/src/pipeline/artifact.rs +0 -0
  164. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/src/pipeline/frames.rs +0 -0
  165. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/src/pipeline/offline.rs +0 -0
  166. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/src/pipeline/render.rs +0 -0
  167. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/src/pipeline/resource_materialization.rs +0 -0
  168. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/src/pipeline.rs +0 -0
  169. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/src/runtime/browser/tests.rs +0 -0
  170. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/src/runtime/browser.rs +0 -0
  171. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/src/runtime/context.rs +0 -0
  172. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/src/runtime/lifecycle.rs +0 -0
  173. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/src/scheduler/job.rs +0 -0
  174. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/src/verified_html.rs +0 -0
  175. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/tests/capture_regressions.rs +0 -0
  176. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/tests/custom_backend.rs +0 -0
  177. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/tests/diagnostics.rs +0 -0
  178. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/tests/differential.rs +0 -0
  179. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/tests/fixture_matrix.rs +0 -0
  180. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/tests/remote_browser.rs +0 -0
  181. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/tests/repeated_capture.rs +0 -0
  182. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/core/tests/request_api.rs +0 -0
  183. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/document/Cargo.toml +0 -0
  184. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/document/LICENSE +0 -0
  185. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/document/src/discover/html.rs +0 -0
  186. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/document/src/discover/svg.rs +0 -0
  187. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/document/src/document/frame.rs +0 -0
  188. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/document/src/document/mod.rs +0 -0
  189. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/document/src/document/parse.rs +0 -0
  190. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/document/src/document/tests.rs +0 -0
  191. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/document/src/lib.rs +0 -0
  192. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/document/src/policy.rs +0 -0
  193. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/document/src/resource.rs +0 -0
  194. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/document/src/sanitize.rs +0 -0
  195. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/document/src/state.rs +0 -0
  196. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/export/Cargo.toml +0 -0
  197. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/export/LICENSE +0 -0
  198. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/export/src/lib.rs +0 -0
  199. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/export/src/markdown/output.rs +0 -0
  200. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/export/src/markdown.rs +0 -0
  201. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/export/src/mhtml.rs +0 -0
  202. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/export/src/pdf/metadata/apply.rs +0 -0
  203. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/export/src/pdf/metadata/source.rs +0 -0
  204. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/export/src/pdf/metadata/verify.rs +0 -0
  205. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/export/src/pdf/metadata/xmp.rs +0 -0
  206. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/export/src/pdf/semantics.rs +0 -0
  207. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/export/src/self_extracting.rs +0 -0
  208. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/export/src/support.rs +0 -0
  209. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/export/src/zip.rs +0 -0
  210. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/html/Cargo.toml +0 -0
  211. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/html/LICENSE +0 -0
  212. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/html/src/csp.rs +0 -0
  213. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/html/src/encode.rs +0 -0
  214. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/html/src/fallback.rs +0 -0
  215. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/html/src/lib.rs +0 -0
  216. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/html/src/repair.rs +0 -0
  217. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/html/src/sandbox.rs +0 -0
  218. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/html/src/state.rs +0 -0
  219. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/html/src/verified.rs +0 -0
  220. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/html/src/verify/active_content.rs +0 -0
  221. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/html/src/verify/manifest.rs +0 -0
  222. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/html/src/verify/resource.rs +0 -0
  223. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/html/src/verify/structure.rs +0 -0
  224. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/html/src/verify.rs +0 -0
  225. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/model/Cargo.toml +0 -0
  226. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/model/LICENSE +0 -0
  227. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/model/src/artifact.rs +0 -0
  228. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/model/src/browser.rs +0 -0
  229. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/model/src/credentials.rs +0 -0
  230. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/model/src/error/catalog/definitions.rs +0 -0
  231. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/model/src/error/catalog.rs +0 -0
  232. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/model/src/error/mod.rs +0 -0
  233. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/model/src/error/tests.rs +0 -0
  234. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/model/src/event.rs +0 -0
  235. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/model/src/export.rs +0 -0
  236. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/model/src/id.rs +0 -0
  237. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/model/src/lib.rs +0 -0
  238. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/model/src/path.rs +0 -0
  239. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/model/src/policy.rs +0 -0
  240. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/model/src/request.rs +0 -0
  241. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/model/src/resource.rs +0 -0
  242. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/model/src/result.rs +0 -0
  243. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/model/src/schedule.rs +0 -0
  244. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/model/src/structural.rs +0 -0
  245. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/model/src/url_value.rs +0 -0
  246. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/protocol/Cargo.toml +0 -0
  247. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/protocol/LICENSE +0 -0
  248. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/protocol/fixtures/collector-responses.json +0 -0
  249. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/protocol/src/chunk.rs +0 -0
  250. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/protocol/src/handshake.rs +0 -0
  251. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/protocol/src/lib.rs +0 -0
  252. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/protocol/src/message.rs +0 -0
  253. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/protocol/src/transfer.rs +0 -0
  254. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/python/Cargo.toml +0 -0
  255. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/python/src/lib.rs +0 -0
  256. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/test-support/Cargo.toml +0 -0
  257. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/test-support/src/lib.rs +0 -0
  258. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/test-support/src/server/http.rs +0 -0
  259. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/test-support/src/server/tests.rs +0 -0
  260. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/test-support/src/server.rs +0 -0
  261. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/transform/Cargo.toml +0 -0
  262. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/transform/LICENSE +0 -0
  263. {offprint-0.0.3 → offprint-0.0.6}/offprint-rs/transform/src/lib.rs +0 -0
  264. {offprint-0.0.3 → offprint-0.0.6}/src/offprint/__init__.py +0 -0
  265. {offprint-0.0.3 → offprint-0.0.6}/src/offprint/__init__.pyi +0 -0
  266. {offprint-0.0.3 → offprint-0.0.6}/src/offprint/__main__.py +0 -0
  267. {offprint-0.0.3 → offprint-0.0.6}/src/offprint/_api.py +0 -0
  268. {offprint-0.0.3 → offprint-0.0.6}/src/offprint/_cli.py +0 -0
  269. {offprint-0.0.3 → offprint-0.0.6}/src/offprint/_native.pyi +0 -0
  270. {offprint-0.0.3 → offprint-0.0.6}/src/offprint/contracts.py +0 -0
  271. {offprint-0.0.3 → offprint-0.0.6}/src/offprint/exceptions.py +0 -0
  272. {offprint-0.0.3 → offprint-0.0.6}/src/offprint/py.typed +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: offprint
3
- Version: 0.0.3
3
+ Version: 0.0.6
4
4
  Classifier: Development Status :: 3 - Alpha
5
5
  Classifier: Programming Language :: Python
6
6
  Classifier: Programming Language :: Python :: 3 :: Only
@@ -12,7 +12,6 @@ Classifier: Programming Language :: Python :: 3.14
12
12
  Classifier: Programming Language :: Rust
13
13
  Classifier: Typing :: Typed
14
14
  License-File: LICENSE
15
- License-File: THIRD_PARTY_NOTICES.txt
16
15
  Summary: Capture rendered web pages as verified self-contained artifacts
17
16
  License-Expression: MIT
18
17
  Requires-Python: >=3.10, <3.15
@@ -42,10 +41,10 @@ uvx offprint capture https://example.com --output example.html --quiet
42
41
 
43
42
  ## Use in an application
44
43
 
45
- Install version 0.0.3:
44
+ Install version 0.0.6:
46
45
 
47
46
  ```console
48
- python -m pip install offprint==0.0.3
47
+ python -m pip install offprint==0.0.6
49
48
  ```
50
49
 
51
50
  ```python
@@ -19,10 +19,10 @@ uvx offprint capture https://example.com --output example.html --quiet
19
19
 
20
20
  ## Use in an application
21
21
 
22
- Install version 0.0.3:
22
+ Install version 0.0.6:
23
23
 
24
24
  ```console
25
- python -m pip install offprint==0.0.3
25
+ python -m pip install offprint==0.0.6
26
26
  ```
27
27
 
28
28
  ```python
@@ -1482,7 +1482,7 @@ dependencies = [
1482
1482
 
1483
1483
  [[package]]
1484
1484
  name = "offprint"
1485
- version = "0.0.3"
1485
+ version = "0.0.6"
1486
1486
  dependencies = [
1487
1487
  "async-trait",
1488
1488
  "base64",
@@ -1519,7 +1519,7 @@ dependencies = [
1519
1519
 
1520
1520
  [[package]]
1521
1521
  name = "offprint-artifact"
1522
- version = "0.0.3"
1522
+ version = "0.0.6"
1523
1523
  dependencies = [
1524
1524
  "camino",
1525
1525
  "fs2",
@@ -1535,7 +1535,7 @@ dependencies = [
1535
1535
 
1536
1536
  [[package]]
1537
1537
  name = "offprint-browser"
1538
- version = "0.0.3"
1538
+ version = "0.0.6"
1539
1539
  dependencies = [
1540
1540
  "async-trait",
1541
1541
  "bytes",
@@ -1550,7 +1550,7 @@ dependencies = [
1550
1550
 
1551
1551
  [[package]]
1552
1552
  name = "offprint-capture"
1553
- version = "0.0.3"
1553
+ version = "0.0.6"
1554
1554
  dependencies = [
1555
1555
  "bytes",
1556
1556
  "futures-util",
@@ -1564,7 +1564,7 @@ dependencies = [
1564
1564
 
1565
1565
  [[package]]
1566
1566
  name = "offprint-chromium"
1567
- version = "0.0.3"
1567
+ version = "0.0.6"
1568
1568
  dependencies = [
1569
1569
  "async-trait",
1570
1570
  "base64",
@@ -1593,7 +1593,7 @@ dependencies = [
1593
1593
 
1594
1594
  [[package]]
1595
1595
  name = "offprint-cli"
1596
- version = "0.0.3"
1596
+ version = "0.0.6"
1597
1597
  dependencies = [
1598
1598
  "camino",
1599
1599
  "clap",
@@ -1615,7 +1615,7 @@ dependencies = [
1615
1615
 
1616
1616
  [[package]]
1617
1617
  name = "offprint-document"
1618
- version = "0.0.3"
1618
+ version = "0.0.6"
1619
1619
  dependencies = [
1620
1620
  "cssparser",
1621
1621
  "html5ever",
@@ -1629,7 +1629,7 @@ dependencies = [
1629
1629
 
1630
1630
  [[package]]
1631
1631
  name = "offprint-export"
1632
- version = "0.0.3"
1632
+ version = "0.0.6"
1633
1633
  dependencies = [
1634
1634
  "base64",
1635
1635
  "data-url",
@@ -1648,7 +1648,7 @@ dependencies = [
1648
1648
 
1649
1649
  [[package]]
1650
1650
  name = "offprint-html"
1651
- version = "0.0.3"
1651
+ version = "0.0.6"
1652
1652
  dependencies = [
1653
1653
  "base64",
1654
1654
  "chrono",
@@ -1663,7 +1663,7 @@ dependencies = [
1663
1663
 
1664
1664
  [[package]]
1665
1665
  name = "offprint-model"
1666
- version = "0.0.3"
1666
+ version = "0.0.6"
1667
1667
  dependencies = [
1668
1668
  "camino",
1669
1669
  "chrono",
@@ -1680,7 +1680,7 @@ dependencies = [
1680
1680
 
1681
1681
  [[package]]
1682
1682
  name = "offprint-protocol"
1683
- version = "0.0.3"
1683
+ version = "0.0.6"
1684
1684
  dependencies = [
1685
1685
  "crc32fast",
1686
1686
  "offprint-model",
@@ -1692,7 +1692,7 @@ dependencies = [
1692
1692
 
1693
1693
  [[package]]
1694
1694
  name = "offprint-python"
1695
- version = "0.0.3"
1695
+ version = "0.0.6"
1696
1696
  dependencies = [
1697
1697
  "futures-util",
1698
1698
  "offprint",
@@ -1707,7 +1707,7 @@ dependencies = [
1707
1707
 
1708
1708
  [[package]]
1709
1709
  name = "offprint-test-support"
1710
- version = "0.0.3"
1710
+ version = "0.0.6"
1711
1711
  dependencies = [
1712
1712
  "base64",
1713
1713
  "flate2",
@@ -1726,7 +1726,7 @@ dependencies = [
1726
1726
 
1727
1727
  [[package]]
1728
1728
  name = "offprint-transform"
1729
- version = "0.0.3"
1729
+ version = "0.0.6"
1730
1730
  dependencies = [
1731
1731
  "offprint-document",
1732
1732
  "offprint-html",
@@ -2449,9 +2449,9 @@ dependencies = [
2449
2449
 
2450
2450
  [[package]]
2451
2451
  name = "rustls"
2452
- version = "0.23.43"
2452
+ version = "0.23.45"
2453
2453
  source = "registry+https://github.com/rust-lang/crates.io-index"
2454
- checksum = "0283386ce02abc0151e1761d08802dfe86c173b0b494af5cbc086574e453da06"
2454
+ checksum = "0d41d731c7d2f962d1ccc364cec258de3c0e93b38c2fb3ba97ac74513048d634"
2455
2455
  dependencies = [
2456
2456
  "aws-lc-rs",
2457
2457
  "once_cell",
@@ -4,7 +4,7 @@ members = ["python", "core", "artifact", "browser", "capture", "chromium", "cli"
4
4
  resolver = "3"
5
5
 
6
6
  [workspace.package]
7
- version = "0.0.3"
7
+ version = "0.0.6"
8
8
  edition = "2024"
9
9
  rust-version = "1.97"
10
10
  license = "MIT"
@@ -52,7 +52,7 @@ reqwest = { version = "0.13.1", default-features = false, features = [
52
52
  "rustls",
53
53
  "stream",
54
54
  ] }
55
- rustls = { version = "0.23.42", default-features = false, features = [
55
+ rustls = { version = "0.23.45", default-features = false, features = [
56
56
  "aws_lc_rs",
57
57
  "std",
58
58
  "tls12",
@@ -94,19 +94,19 @@ url = { version = "2.5.8", features = ["serde"] }
94
94
  zeroize = "1.8.2"
95
95
  zip = { version = "8.2.0", default-features = false, features = ["deflate"] }
96
96
 
97
- offprint = { version = "0.0.3", path = "core" }
98
- offprint-artifact = { version = "0.0.3", path = "artifact" }
99
- offprint-browser = { version = "0.0.3", path = "browser" }
100
- offprint-capture = { version = "0.0.3", path = "capture" }
101
- offprint-chromium = { version = "0.0.3", path = "chromium" }
102
- offprint-cli = { version = "0.0.3", path = "cli" }
103
- offprint-document = { version = "0.0.3", path = "document" }
104
- offprint-export = { version = "0.0.3", path = "export" }
105
- offprint-html = { version = "0.0.3", path = "html" }
106
- offprint-model = { version = "0.0.3", path = "model" }
107
- offprint-protocol = { version = "0.0.3", path = "protocol" }
108
- offprint-test-support = { version = "0.0.3", path = "test-support" }
109
- offprint-transform = { version = "0.0.3", path = "transform" }
97
+ offprint = { version = "0.0.6", path = "core" }
98
+ offprint-artifact = { version = "0.0.6", path = "artifact" }
99
+ offprint-browser = { version = "0.0.6", path = "browser" }
100
+ offprint-capture = { version = "0.0.6", path = "capture" }
101
+ offprint-chromium = { version = "0.0.6", path = "chromium" }
102
+ offprint-cli = { version = "0.0.6", path = "cli" }
103
+ offprint-document = { version = "0.0.6", path = "document" }
104
+ offprint-export = { version = "0.0.6", path = "export" }
105
+ offprint-html = { version = "0.0.6", path = "html" }
106
+ offprint-model = { version = "0.0.6", path = "model" }
107
+ offprint-protocol = { version = "0.0.6", path = "protocol" }
108
+ offprint-test-support = { version = "0.0.6", path = "test-support" }
109
+ offprint-transform = { version = "0.0.6", path = "transform" }
110
110
  processkit = "3.0.2"
111
111
  proptest = "1.9.0"
112
112
  pulldown-cmark = { version = "0.13.4", default-features = false }
@@ -196,20 +196,17 @@ impl ContentStore {
196
196
  format!("failed to flush temporary resource content: {error}"),
197
197
  )
198
198
  })?;
199
- file.sync_all().await.map_err(|error| {
200
- content_error(
201
- "offprint.resource.store",
202
- format!("failed to sync temporary resource content: {error}"),
203
- )
204
- })?;
205
- drop(file);
206
199
  let digest = ContentDigest::from_bytes(digest.finalize().into());
207
200
  if let Some(content) = self.entries.get(&digest) {
201
+ drop(file);
208
202
  return Ok(ContentInsertion {
209
203
  content: content.clone(),
210
204
  new_content: false,
211
205
  });
212
206
  }
207
+ // Flush completes Tokio's pending writes before the capture reads this
208
+ // temporary entry. Artifact delivery owns durable file synchronization.
209
+ drop(file);
213
210
  let destination = self.directory.path().join(digest.to_hex());
214
211
  path.persist(&destination).map_err(|error| {
215
212
  content_error(
@@ -310,6 +307,34 @@ mod tests {
310
307
  })
311
308
  }
312
309
 
310
+ #[test]
311
+ fn duplicate_streams_keep_receive_limits_and_release_temporary_entries()
312
+ -> Result<(), Box<dyn std::error::Error>> {
313
+ runtime()?.block_on(async {
314
+ let mut store = ContentStore::new()?;
315
+ let first = store.insert_bytes(b"same".to_vec(), 4, 8).await?;
316
+ let stream = futures_util::stream::iter([
317
+ Ok(Bytes::from_static(b"sa")),
318
+ Ok(Bytes::from_static(b"me")),
319
+ ]);
320
+ let duplicate = store.insert_stream(stream, 4, 8).await?;
321
+ assert!(!duplicate.new_content);
322
+ assert_eq!(duplicate.content, first.content);
323
+ assert_eq!(duplicate.content.read(4).await?, b"same");
324
+ assert_eq!(store.received_bytes(), 8);
325
+ assert_eq!(std::fs::read_dir(store.directory.path())?.count(), 1);
326
+
327
+ let error = store.insert_bytes(b"same".to_vec(), 4, 8).await;
328
+ assert_eq!(
329
+ error.err().map(|error| error.code.to_string()),
330
+ Some("offprint.resource.limit".into())
331
+ );
332
+ assert_eq!(std::fs::read_dir(store.directory.path())?.count(), 1);
333
+ assert_eq!(first.content.read(4).await?, b"same");
334
+ Ok(())
335
+ })
336
+ }
337
+
313
338
  #[test]
314
339
  fn stored_content_read_enforces_limits_and_detects_changed_length()
315
340
  -> Result<(), Box<dyn std::error::Error>> {
@@ -375,6 +400,25 @@ mod tests {
375
400
  Ok(())
376
401
  }
377
402
 
403
+ #[test]
404
+ fn completed_stream_is_readable_until_store_drop() -> Result<(), Box<dyn std::error::Error>> {
405
+ runtime()?.block_on(async {
406
+ let mut store = ContentStore::new()?;
407
+ let chunks = futures_util::stream::iter([
408
+ Ok(Bytes::from_static(b"first")),
409
+ Ok(Bytes::from_static(b"second")),
410
+ ]);
411
+ let inserted = store.insert_stream(chunks, 11, 11).await?;
412
+ assert_eq!(inserted.content.read(11).await?, b"firstsecond");
413
+ assert_eq!(store.received_bytes(), 11);
414
+ assert_eq!(store.unique_bytes(), 11);
415
+ let path = inserted.content.path().to_owned();
416
+ drop(store);
417
+ assert!(!path.exists());
418
+ Ok(())
419
+ })
420
+ }
421
+
378
422
  proptest! {
379
423
  #![proptest_config({
380
424
  let mut config = ProptestConfig::default();