cdpify 0.3.0__tar.gz → 0.5.0__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 (478) hide show
  1. cdpify-0.5.0/CHANGELOG.md +214 -0
  2. cdpify-0.5.0/MANIFEST.in +2 -0
  3. cdpify-0.5.0/PKG-INFO +586 -0
  4. cdpify-0.5.0/README.md +567 -0
  5. cdpify-0.5.0/RELEASING.md +76 -0
  6. cdpify-0.5.0/cdpify/__init__.py +47 -0
  7. cdpify-0.5.0/cdpify/client.py +241 -0
  8. cdpify-0.5.0/cdpify/codec.py +275 -0
  9. cdpify-0.5.0/cdpify/domains/__init__.py +198 -0
  10. cdpify-0.5.0/cdpify/domains/accessibility/__init__.py +103 -0
  11. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/accessibility/commands.py +74 -14
  12. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/accessibility/domain.py +94 -41
  13. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/accessibility/events.py +17 -5
  14. cdpify-0.5.0/cdpify/domains/accessibility/types.py +321 -0
  15. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/accessors.py +193 -62
  16. cdpify-0.5.0/cdpify/domains/ads/__init__.py +37 -0
  17. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/ads/commands.py +1 -1
  18. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/ads/types.py +47 -1
  19. cdpify-0.5.0/cdpify/domains/animation/__init__.py +94 -0
  20. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/animation/commands.py +59 -8
  21. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/animation/domain.py +61 -25
  22. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/animation/events.py +26 -5
  23. cdpify-0.5.0/cdpify/domains/animation/types.py +189 -0
  24. cdpify-0.5.0/cdpify/domains/audits/__init__.py +299 -0
  25. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/audits/commands.py +25 -3
  26. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/audits/domain.py +16 -10
  27. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/audits/events.py +5 -2
  28. cdpify-0.5.0/cdpify/domains/audits/types.py +1349 -0
  29. cdpify-0.5.0/cdpify/domains/autofill/__init__.py +58 -0
  30. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/autofill/commands.py +19 -4
  31. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/autofill/domain.py +24 -11
  32. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/autofill/events.py +10 -0
  33. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/autofill/types.py +72 -16
  34. cdpify-0.5.0/cdpify/domains/backgroundservice/__init__.py +63 -0
  35. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/backgroundservice/commands.py +4 -4
  36. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/backgroundservice/domain.py +16 -13
  37. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/backgroundservice/events.py +10 -1
  38. cdpify-0.5.0/cdpify/domains/backgroundservice/types.py +72 -0
  39. cdpify-0.5.0/cdpify/domains/bluetoothemulation/__init__.py +146 -0
  40. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/bluetoothemulation/commands.py +35 -17
  41. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/bluetoothemulation/domain.py +70 -60
  42. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/bluetoothemulation/events.py +19 -6
  43. cdpify-0.5.0/cdpify/domains/bluetoothemulation/types.py +135 -0
  44. cdpify-0.5.0/cdpify/domains/browser/__init__.py +142 -0
  45. cdpify-0.5.0/cdpify/domains/browser/commands.py +420 -0
  46. cdpify-0.5.0/cdpify/domains/browser/domain.py +519 -0
  47. cdpify-0.5.0/cdpify/domains/browser/events.py +77 -0
  48. cdpify-0.5.0/cdpify/domains/browser/types.py +216 -0
  49. cdpify-0.5.0/cdpify/domains/cachestorage/__init__.py +72 -0
  50. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/cachestorage/commands.py +56 -3
  51. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/cachestorage/domain.py +57 -28
  52. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/cachestorage/types.py +59 -11
  53. cdpify-0.5.0/cdpify/domains/cast/__init__.py +53 -0
  54. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/cast/domain.py +18 -16
  55. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/cast/events.py +6 -1
  56. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/cast/types.py +8 -4
  57. cdpify-0.5.0/cdpify/domains/console/__init__.py +34 -0
  58. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/console/events.py +8 -2
  59. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/console/types.py +25 -11
  60. cdpify-0.5.0/cdpify/domains/crashreportcontext/__init__.py +31 -0
  61. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/crashreportcontext/commands.py +2 -2
  62. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/crashreportcontext/types.py +5 -2
  63. cdpify-0.5.0/cdpify/domains/css/__init__.py +407 -0
  64. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/css/commands.py +293 -55
  65. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/css/domain.py +249 -150
  66. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/css/events.py +30 -3
  67. cdpify-0.5.0/cdpify/domains/css/types.py +1293 -0
  68. cdpify-0.5.0/cdpify/domains/debugger/__init__.py +245 -0
  69. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/debugger/commands.py +344 -45
  70. cdpify-0.5.0/cdpify/domains/debugger/domain.py +871 -0
  71. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/debugger/events.py +181 -14
  72. cdpify-0.5.0/cdpify/domains/debugger/types.py +260 -0
  73. cdpify-0.5.0/cdpify/domains/deviceaccess/__init__.py +42 -0
  74. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/deviceaccess/commands.py +2 -2
  75. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/deviceaccess/domain.py +10 -7
  76. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/deviceaccess/events.py +8 -3
  77. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/deviceaccess/types.py +8 -5
  78. cdpify-0.5.0/cdpify/domains/deviceorientation/__init__.py +31 -0
  79. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/deviceorientation/commands.py +13 -4
  80. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/deviceorientation/domain.py +12 -4
  81. cdpify-0.5.0/cdpify/domains/digitalcredentials/__init__.py +34 -0
  82. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/digitalcredentials/commands.py +17 -5
  83. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/digitalcredentials/domain.py +18 -6
  84. cdpify-0.5.0/cdpify/domains/digitalcredentials/types.py +18 -0
  85. cdpify-0.5.0/cdpify/domains/dom/__init__.py +431 -0
  86. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/dom/commands.py +550 -59
  87. cdpify-0.5.0/cdpify/domains/dom/domain.py +1422 -0
  88. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/dom/events.py +171 -18
  89. cdpify-0.5.0/cdpify/domains/dom/types.py +465 -0
  90. cdpify-0.5.0/cdpify/domains/domdebugger/__init__.py +80 -0
  91. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/domdebugger/commands.py +68 -10
  92. cdpify-0.5.0/cdpify/domains/domdebugger/domain.py +254 -0
  93. cdpify-0.5.0/cdpify/domains/domdebugger/types.py +81 -0
  94. cdpify-0.5.0/cdpify/domains/domsnapshot/__init__.py +87 -0
  95. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/domsnapshot/commands.py +54 -3
  96. cdpify-0.5.0/cdpify/domains/domsnapshot/domain.py +134 -0
  97. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/domsnapshot/types.py +310 -27
  98. cdpify-0.5.0/cdpify/domains/domstorage/__init__.py +67 -0
  99. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/domstorage/commands.py +4 -4
  100. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/domstorage/domain.py +18 -13
  101. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/domstorage/events.py +12 -3
  102. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/domstorage/types.py +11 -3
  103. cdpify-0.5.0/cdpify/domains/emulation/__init__.py +311 -0
  104. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/emulation/commands.py +419 -96
  105. cdpify-0.5.0/cdpify/domains/emulation/domain.py +1238 -0
  106. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/emulation/events.py +17 -7
  107. cdpify-0.5.0/cdpify/domains/emulation/types.py +385 -0
  108. cdpify-0.5.0/cdpify/domains/eventbreakpoints/__init__.py +40 -0
  109. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/eventbreakpoints/commands.py +6 -0
  110. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/eventbreakpoints/domain.py +14 -7
  111. cdpify-0.5.0/cdpify/domains/extensions/__init__.py +63 -0
  112. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/extensions/commands.py +64 -13
  113. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/extensions/domain.py +63 -22
  114. cdpify-0.5.0/cdpify/domains/extensions/types.py +48 -0
  115. cdpify-0.5.0/cdpify/domains/fedcm/__init__.py +67 -0
  116. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/fedcm/commands.py +5 -0
  117. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/fedcm/domain.py +32 -24
  118. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/fedcm/events.py +12 -3
  119. cdpify-0.5.0/cdpify/domains/fedcm/types.py +74 -0
  120. cdpify-0.5.0/cdpify/domains/fetch/__init__.py +91 -0
  121. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/fetch/commands.py +103 -12
  122. cdpify-0.5.0/cdpify/domains/fetch/domain.py +298 -0
  123. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/fetch/events.py +56 -2
  124. cdpify-0.5.0/cdpify/domains/fetch/types.py +107 -0
  125. cdpify-0.5.0/cdpify/domains/filesystem/__init__.py +37 -0
  126. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/filesystem/commands.py +4 -1
  127. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/filesystem/domain.py +6 -6
  128. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/filesystem/types.py +23 -4
  129. cdpify-0.5.0/cdpify/domains/findinpage/__init__.py +28 -0
  130. cdpify-0.5.0/cdpify/domains/findinpage/commands.py +25 -0
  131. cdpify-0.5.0/cdpify/domains/findinpage/domain.py +70 -0
  132. cdpify-0.5.0/cdpify/domains/headlessexperimental/__init__.py +37 -0
  133. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/headlessexperimental/commands.py +31 -4
  134. cdpify-0.5.0/cdpify/domains/headlessexperimental/domain.py +96 -0
  135. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/headlessexperimental/types.py +11 -4
  136. cdpify-0.5.0/cdpify/domains/heapprofiler/__init__.py +101 -0
  137. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/heapprofiler/commands.py +77 -3
  138. cdpify-0.5.0/cdpify/domains/heapprofiler/domain.py +262 -0
  139. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/heapprofiler/events.py +24 -6
  140. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/heapprofiler/types.py +30 -7
  141. cdpify-0.5.0/cdpify/domains/indexeddb/__init__.py +87 -0
  142. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/indexeddb/commands.py +128 -0
  143. cdpify-0.5.0/cdpify/domains/indexeddb/domain.py +311 -0
  144. cdpify-0.5.0/cdpify/domains/indexeddb/types.py +171 -0
  145. cdpify-0.5.0/cdpify/domains/input/__init__.py +92 -0
  146. cdpify-0.5.0/cdpify/domains/input/commands.py +518 -0
  147. cdpify-0.5.0/cdpify/domains/input/domain.py +573 -0
  148. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/input/events.py +7 -3
  149. cdpify-0.5.0/cdpify/domains/input/types.py +138 -0
  150. cdpify-0.5.0/cdpify/domains/inspector/__init__.py +43 -0
  151. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/inspector/events.py +12 -6
  152. cdpify-0.5.0/cdpify/domains/io/__init__.py +46 -0
  153. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/io/commands.py +37 -8
  154. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/io/domain.py +33 -12
  155. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/io/types.py +1 -1
  156. cdpify-0.5.0/cdpify/domains/layertree/__init__.py +97 -0
  157. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/layertree/commands.py +63 -3
  158. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/layertree/domain.py +67 -31
  159. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/layertree/events.py +16 -2
  160. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/layertree/types.py +89 -17
  161. cdpify-0.5.0/cdpify/domains/log/__init__.py +38 -0
  162. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/log/commands.py +5 -2
  163. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/log/domain.py +9 -4
  164. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/log/events.py +8 -2
  165. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/log/types.py +45 -19
  166. cdpify-0.5.0/cdpify/domains/media/__init__.py +72 -0
  167. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/media/events.py +16 -5
  168. cdpify-0.5.0/cdpify/domains/media/types.py +102 -0
  169. cdpify-0.5.0/cdpify/domains/memory/__init__.py +84 -0
  170. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/memory/commands.py +23 -8
  171. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/memory/domain.py +25 -12
  172. cdpify-0.5.0/cdpify/domains/memory/types.py +90 -0
  173. cdpify-0.5.0/cdpify/domains/network/__init__.py +641 -0
  174. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/network/commands.py +357 -61
  175. cdpify-0.5.0/cdpify/domains/network/domain.py +939 -0
  176. cdpify-0.5.0/cdpify/domains/network/events.py +1199 -0
  177. cdpify-0.5.0/cdpify/domains/network/types.py +2430 -0
  178. cdpify-0.5.0/cdpify/domains/overlay/__init__.py +269 -0
  179. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/overlay/commands.py +179 -24
  180. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/overlay/domain.py +264 -136
  181. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/overlay/events.py +27 -2
  182. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/overlay/types.py +385 -19
  183. cdpify-0.5.0/cdpify/domains/page/__init__.py +578 -0
  184. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/page/commands.py +628 -106
  185. cdpify-0.5.0/cdpify/domains/page/domain.py +1583 -0
  186. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/page/events.py +309 -58
  187. cdpify-0.5.0/cdpify/domains/page/types.py +1398 -0
  188. cdpify-0.5.0/cdpify/domains/performance/__init__.py +45 -0
  189. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/performance/commands.py +12 -2
  190. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/performance/domain.py +19 -10
  191. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/performance/events.py +12 -3
  192. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/performance/types.py +9 -3
  193. cdpify-0.5.0/cdpify/domains/performancetimeline/__init__.py +47 -0
  194. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/performancetimeline/commands.py +7 -0
  195. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/performancetimeline/domain.py +13 -4
  196. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/performancetimeline/events.py +7 -2
  197. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/performancetimeline/types.py +37 -8
  198. cdpify-0.5.0/cdpify/domains/preload/__init__.py +93 -0
  199. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/preload/events.py +35 -5
  200. cdpify-0.5.0/cdpify/domains/preload/types.py +346 -0
  201. cdpify-0.5.0/cdpify/domains/profiler/__init__.py +83 -0
  202. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/profiler/commands.py +36 -7
  203. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/profiler/domain.py +24 -11
  204. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/profiler/events.py +41 -11
  205. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/profiler/types.py +78 -10
  206. cdpify-0.5.0/cdpify/domains/pwa/__init__.py +65 -0
  207. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/pwa/commands.py +23 -2
  208. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/pwa/domain.py +52 -28
  209. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/pwa/types.py +15 -7
  210. cdpify-0.5.0/cdpify/domains/runtime/__init__.py +215 -0
  211. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/runtime/commands.py +316 -22
  212. cdpify-0.5.0/cdpify/domains/runtime/domain.py +697 -0
  213. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/runtime/events.py +78 -16
  214. cdpify-0.5.0/cdpify/domains/runtime/types.py +669 -0
  215. cdpify-0.5.0/cdpify/domains/schema/__init__.py +31 -0
  216. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/schema/commands.py +5 -2
  217. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/schema/types.py +9 -3
  218. cdpify-0.5.0/cdpify/domains/security/__init__.py +92 -0
  219. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/security/commands.py +18 -5
  220. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/security/domain.py +28 -14
  221. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/security/events.py +48 -7
  222. cdpify-0.5.0/cdpify/domains/security/types.py +284 -0
  223. cdpify-0.5.0/cdpify/domains/serviceworker/__init__.py +113 -0
  224. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/serviceworker/commands.py +6 -6
  225. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/serviceworker/domain.py +37 -39
  226. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/serviceworker/events.py +14 -3
  227. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/serviceworker/types.py +55 -24
  228. cdpify-0.5.0/cdpify/domains/smartcardemulation/__init__.py +146 -0
  229. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/smartcardemulation/commands.py +7 -7
  230. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/smartcardemulation/domain.py +47 -45
  231. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/smartcardemulation/events.py +76 -16
  232. cdpify-0.5.0/cdpify/domains/smartcardemulation/types.py +139 -0
  233. cdpify-0.5.0/cdpify/domains/storage/__init__.py +233 -0
  234. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/storage/commands.py +155 -26
  235. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/storage/domain.py +222 -88
  236. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/storage/events.py +77 -4
  237. cdpify-0.5.0/cdpify/domains/storage/types.py +138 -0
  238. cdpify-0.5.0/cdpify/domains/systeminfo/__init__.py +72 -0
  239. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/systeminfo/commands.py +19 -1
  240. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/systeminfo/domain.py +6 -4
  241. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/systeminfo/types.py +105 -17
  242. cdpify-0.5.0/cdpify/domains/target/__init__.py +158 -0
  243. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/target/commands.py +209 -22
  244. cdpify-0.5.0/cdpify/domains/target/domain.py +569 -0
  245. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/target/events.py +40 -3
  246. cdpify-0.5.0/cdpify/domains/target/types.py +130 -0
  247. cdpify-0.5.0/cdpify/domains/tethering/__init__.py +35 -0
  248. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/tethering/commands.py +9 -3
  249. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/tethering/domain.py +14 -7
  250. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/tethering/events.py +10 -1
  251. cdpify-0.5.0/cdpify/domains/tracing/__init__.py +80 -0
  252. cdpify-0.5.0/cdpify/domains/tracing/commands.py +169 -0
  253. cdpify-0.5.0/cdpify/domains/tracing/domain.py +194 -0
  254. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/tracing/events.py +39 -7
  255. cdpify-0.5.0/cdpify/domains/tracing/types.py +136 -0
  256. cdpify-0.5.0/cdpify/domains/webaudio/__init__.py +118 -0
  257. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/webaudio/domain.py +6 -4
  258. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/webaudio/events.py +34 -5
  259. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/webaudio/types.py +74 -25
  260. cdpify-0.5.0/cdpify/domains/webauthn/__init__.py +116 -0
  261. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/webauthn/commands.py +29 -6
  262. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/webauthn/domain.py +86 -61
  263. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/webauthn/events.py +12 -3
  264. cdpify-0.5.0/cdpify/domains/webauthn/types.py +214 -0
  265. cdpify-0.5.0/cdpify/domains/webmcp/__init__.py +68 -0
  266. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/webmcp/commands.py +16 -1
  267. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/webmcp/domain.py +17 -7
  268. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/webmcp/events.py +52 -9
  269. cdpify-0.5.0/cdpify/domains/webmcp/types.py +112 -0
  270. cdpify-0.5.0/cdpify/error.py +110 -0
  271. cdpify-0.5.0/cdpify/event_queue.py +87 -0
  272. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/events/__init__.py +11 -9
  273. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/events/dispatcher.py +22 -3
  274. cdpify-0.5.0/cdpify/events/router.py +183 -0
  275. cdpify-0.5.0/cdpify/events/source.py +65 -0
  276. cdpify-0.5.0/cdpify/events/subscription.py +109 -0
  277. cdpify-0.5.0/cdpify/executor.py +74 -0
  278. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/generator/generators/commands.py +107 -90
  279. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/generator/generators/domain.py +98 -97
  280. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/generator/generators/events.py +126 -106
  281. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/generator/generators/init.py +103 -83
  282. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/generator/generators/types.py +135 -105
  283. cdpify-0.5.0/cdpify/generator/generators/utils.py +185 -0
  284. cdpify-0.5.0/cdpify/generator/generators/views.py +148 -0
  285. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/generator/schemas.py +5 -1
  286. cdpify-0.5.0/cdpify/generator/templates/accessors.py.jinja2 +30 -0
  287. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/generator/templates/commands.py.jinja2 +47 -38
  288. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/generator/templates/domain.py.jinja2 +76 -65
  289. cdpify-0.5.0/cdpify/generator/templates/domain_init.py.jinja2 +35 -0
  290. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/generator/templates/events.py.jinja2 +49 -40
  291. cdpify-0.5.0/cdpify/generator/templates/root_init.py.jinja2 +26 -0
  292. cdpify-0.5.0/cdpify/generator/templates/types.py.jinja2 +52 -0
  293. cdpify-0.5.0/cdpify/py.typed +0 -0
  294. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/session.py +45 -54
  295. cdpify-0.5.0/cdpify/shared/decorators.py +53 -0
  296. cdpify-0.5.0/cdpify/shared/enums.py +19 -0
  297. cdpify-0.5.0/cdpify/shared/lazy.py +35 -0
  298. cdpify-0.5.0/cdpify/transport.py +60 -0
  299. cdpify-0.5.0/cdpify/transports/websocket.py +325 -0
  300. cdpify-0.5.0/cdpify/unset.py +13 -0
  301. cdpify-0.5.0/cdpify.egg-info/PKG-INFO +586 -0
  302. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify.egg-info/SOURCES.txt +22 -2
  303. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify.egg-info/requires.txt +3 -0
  304. {cdpify-0.3.0 → cdpify-0.5.0}/pyproject.toml +15 -1
  305. {cdpify-0.3.0 → cdpify-0.5.0}/tests/test_client.py +303 -239
  306. cdpify-0.5.0/tests/test_codec.py +222 -0
  307. cdpify-0.5.0/tests/test_decorators_and_errors.py +93 -0
  308. {cdpify-0.3.0 → cdpify-0.5.0}/tests/test_dependency_boundaries.py +20 -2
  309. cdpify-0.5.0/tests/test_enums.py +117 -0
  310. {cdpify-0.3.0 → cdpify-0.5.0}/tests/test_event_dispatcher.py +2 -1
  311. cdpify-0.5.0/tests/test_event_overflow_and_raw.py +109 -0
  312. cdpify-0.5.0/tests/test_event_subscription.py +331 -0
  313. cdpify-0.5.0/tests/test_executor.py +74 -0
  314. cdpify-0.5.0/tests/test_generated_params.py +40 -0
  315. cdpify-0.5.0/tests/test_lazy_imports.py +75 -0
  316. cdpify-0.5.0/tests/test_models.py +144 -0
  317. {cdpify-0.3.0 → cdpify-0.5.0}/tests/test_session.py +143 -140
  318. cdpify-0.5.0/tests/test_websocket_client.py +173 -0
  319. cdpify-0.5.0/tests/test_websocket_transport.py +412 -0
  320. cdpify-0.3.0/PKG-INFO +0 -304
  321. cdpify-0.3.0/README.md +0 -287
  322. cdpify-0.3.0/cdpify/__init__.py +0 -27
  323. cdpify-0.3.0/cdpify/client.py +0 -160
  324. cdpify-0.3.0/cdpify/codec.py +0 -183
  325. cdpify-0.3.0/cdpify/domains/__init__.py +0 -125
  326. cdpify-0.3.0/cdpify/domains/accessibility/__init__.py +0 -65
  327. cdpify-0.3.0/cdpify/domains/accessibility/types.py +0 -223
  328. cdpify-0.3.0/cdpify/domains/ads/__init__.py +0 -19
  329. cdpify-0.3.0/cdpify/domains/animation/__init__.py +0 -61
  330. cdpify-0.3.0/cdpify/domains/animation/types.py +0 -96
  331. cdpify-0.3.0/cdpify/domains/audits/__init__.py +0 -160
  332. cdpify-0.3.0/cdpify/domains/audits/types.py +0 -1092
  333. cdpify-0.3.0/cdpify/domains/autofill/__init__.py +0 -34
  334. cdpify-0.3.0/cdpify/domains/backgroundservice/__init__.py +0 -37
  335. cdpify-0.3.0/cdpify/domains/backgroundservice/types.py +0 -47
  336. cdpify-0.3.0/cdpify/domains/bluetoothemulation/__init__.py +0 -79
  337. cdpify-0.3.0/cdpify/domains/bluetoothemulation/types.py +0 -96
  338. cdpify-0.3.0/cdpify/domains/browser/__init__.py +0 -87
  339. cdpify-0.3.0/cdpify/domains/browser/commands.py +0 -267
  340. cdpify-0.3.0/cdpify/domains/browser/domain.py +0 -391
  341. cdpify-0.3.0/cdpify/domains/browser/events.py +0 -43
  342. cdpify-0.3.0/cdpify/domains/browser/types.py +0 -129
  343. cdpify-0.3.0/cdpify/domains/cachestorage/__init__.py +0 -45
  344. cdpify-0.3.0/cdpify/domains/cast/__init__.py +0 -31
  345. cdpify-0.3.0/cdpify/domains/console/__init__.py +0 -18
  346. cdpify-0.3.0/cdpify/domains/crashreportcontext/__init__.py +0 -16
  347. cdpify-0.3.0/cdpify/domains/css/__init__.py +0 -247
  348. cdpify-0.3.0/cdpify/domains/css/types.py +0 -689
  349. cdpify-0.3.0/cdpify/domains/debugger/__init__.py +0 -147
  350. cdpify-0.3.0/cdpify/domains/debugger/domain.py +0 -680
  351. cdpify-0.3.0/cdpify/domains/debugger/types.py +0 -159
  352. cdpify-0.3.0/cdpify/domains/deviceaccess/__init__.py +0 -22
  353. cdpify-0.3.0/cdpify/domains/deviceorientation/__init__.py +0 -14
  354. cdpify-0.3.0/cdpify/domains/digitalcredentials/__init__.py +0 -16
  355. cdpify-0.3.0/cdpify/domains/digitalcredentials/types.py +0 -12
  356. cdpify-0.3.0/cdpify/domains/dom/__init__.py +0 -249
  357. cdpify-0.3.0/cdpify/domains/dom/domain.py +0 -1069
  358. cdpify-0.3.0/cdpify/domains/dom/types.py +0 -271
  359. cdpify-0.3.0/cdpify/domains/domdebugger/__init__.py +0 -41
  360. cdpify-0.3.0/cdpify/domains/domdebugger/domain.py +0 -203
  361. cdpify-0.3.0/cdpify/domains/domdebugger/types.py +0 -48
  362. cdpify-0.3.0/cdpify/domains/domsnapshot/__init__.py +0 -55
  363. cdpify-0.3.0/cdpify/domains/domsnapshot/domain.py +0 -101
  364. cdpify-0.3.0/cdpify/domains/domstorage/__init__.py +0 -41
  365. cdpify-0.3.0/cdpify/domains/emulation/__init__.py +0 -161
  366. cdpify-0.3.0/cdpify/domains/emulation/domain.py +0 -956
  367. cdpify-0.3.0/cdpify/domains/emulation/types.py +0 -211
  368. cdpify-0.3.0/cdpify/domains/eventbreakpoints/__init__.py +0 -19
  369. cdpify-0.3.0/cdpify/domains/extensions/__init__.py +0 -38
  370. cdpify-0.3.0/cdpify/domains/extensions/types.py +0 -26
  371. cdpify-0.3.0/cdpify/domains/fedcm/__init__.py +0 -41
  372. cdpify-0.3.0/cdpify/domains/fedcm/types.py +0 -51
  373. cdpify-0.3.0/cdpify/domains/fetch/__init__.py +0 -53
  374. cdpify-0.3.0/cdpify/domains/fetch/domain.py +0 -229
  375. cdpify-0.3.0/cdpify/domains/fetch/types.py +0 -71
  376. cdpify-0.3.0/cdpify/domains/filesystem/__init__.py +0 -19
  377. cdpify-0.3.0/cdpify/domains/headlessexperimental/__init__.py +0 -17
  378. cdpify-0.3.0/cdpify/domains/headlessexperimental/domain.py +0 -75
  379. cdpify-0.3.0/cdpify/domains/heapprofiler/__init__.py +0 -61
  380. cdpify-0.3.0/cdpify/domains/heapprofiler/domain.py +0 -195
  381. cdpify-0.3.0/cdpify/domains/indexeddb/__init__.py +0 -53
  382. cdpify-0.3.0/cdpify/domains/indexeddb/domain.py +0 -239
  383. cdpify-0.3.0/cdpify/domains/indexeddb/types.py +0 -94
  384. cdpify-0.3.0/cdpify/domains/input/__init__.py +0 -56
  385. cdpify-0.3.0/cdpify/domains/input/commands.py +0 -268
  386. cdpify-0.3.0/cdpify/domains/input/domain.py +0 -385
  387. cdpify-0.3.0/cdpify/domains/input/types.py +0 -52
  388. cdpify-0.3.0/cdpify/domains/inspector/__init__.py +0 -25
  389. cdpify-0.3.0/cdpify/domains/io/__init__.py +0 -27
  390. cdpify-0.3.0/cdpify/domains/layertree/__init__.py +0 -61
  391. cdpify-0.3.0/cdpify/domains/log/__init__.py +0 -20
  392. cdpify-0.3.0/cdpify/domains/media/__init__.py +0 -45
  393. cdpify-0.3.0/cdpify/domains/media/types.py +0 -81
  394. cdpify-0.3.0/cdpify/domains/memory/__init__.py +0 -43
  395. cdpify-0.3.0/cdpify/domains/memory/types.py +0 -56
  396. cdpify-0.3.0/cdpify/domains/network/__init__.py +0 -371
  397. cdpify-0.3.0/cdpify/domains/network/domain.py +0 -718
  398. cdpify-0.3.0/cdpify/domains/network/events.py +0 -678
  399. cdpify-0.3.0/cdpify/domains/network/types.py +0 -1399
  400. cdpify-0.3.0/cdpify/domains/overlay/__init__.py +0 -141
  401. cdpify-0.3.0/cdpify/domains/page/__init__.py +0 -325
  402. cdpify-0.3.0/cdpify/domains/page/domain.py +0 -1189
  403. cdpify-0.3.0/cdpify/domains/page/types.py +0 -883
  404. cdpify-0.3.0/cdpify/domains/performance/__init__.py +0 -26
  405. cdpify-0.3.0/cdpify/domains/performancetimeline/__init__.py +0 -27
  406. cdpify-0.3.0/cdpify/domains/preload/__init__.py +0 -55
  407. cdpify-0.3.0/cdpify/domains/preload/types.py +0 -250
  408. cdpify-0.3.0/cdpify/domains/profiler/__init__.py +0 -51
  409. cdpify-0.3.0/cdpify/domains/pwa/__init__.py +0 -39
  410. cdpify-0.3.0/cdpify/domains/runtime/__init__.py +0 -137
  411. cdpify-0.3.0/cdpify/domains/runtime/domain.py +0 -494
  412. cdpify-0.3.0/cdpify/domains/runtime/types.py +0 -430
  413. cdpify-0.3.0/cdpify/domains/schema/__init__.py +0 -16
  414. cdpify-0.3.0/cdpify/domains/security/__init__.py +0 -53
  415. cdpify-0.3.0/cdpify/domains/security/types.py +0 -142
  416. cdpify-0.3.0/cdpify/domains/serviceworker/__init__.py +0 -67
  417. cdpify-0.3.0/cdpify/domains/smartcardemulation/__init__.py +0 -87
  418. cdpify-0.3.0/cdpify/domains/smartcardemulation/types.py +0 -116
  419. cdpify-0.3.0/cdpify/domains/storage/__init__.py +0 -105
  420. cdpify-0.3.0/cdpify/domains/storage/types.py +0 -80
  421. cdpify-0.3.0/cdpify/domains/systeminfo/__init__.py +0 -41
  422. cdpify-0.3.0/cdpify/domains/target/__init__.py +0 -103
  423. cdpify-0.3.0/cdpify/domains/target/domain.py +0 -429
  424. cdpify-0.3.0/cdpify/domains/target/types.py +0 -74
  425. cdpify-0.3.0/cdpify/domains/tethering/__init__.py +0 -18
  426. cdpify-0.3.0/cdpify/domains/tracing/__init__.py +0 -51
  427. cdpify-0.3.0/cdpify/domains/tracing/commands.py +0 -102
  428. cdpify-0.3.0/cdpify/domains/tracing/domain.py +0 -138
  429. cdpify-0.3.0/cdpify/domains/tracing/types.py +0 -80
  430. cdpify-0.3.0/cdpify/domains/webaudio/__init__.py +0 -73
  431. cdpify-0.3.0/cdpify/domains/webauthn/__init__.py +0 -71
  432. cdpify-0.3.0/cdpify/domains/webauthn/types.py +0 -93
  433. cdpify-0.3.0/cdpify/domains/webmcp/__init__.py +0 -43
  434. cdpify-0.3.0/cdpify/domains/webmcp/types.py +0 -65
  435. cdpify-0.3.0/cdpify/events/router.py +0 -91
  436. cdpify-0.3.0/cdpify/exceptions.py +0 -18
  437. cdpify-0.3.0/cdpify/executor.py +0 -39
  438. cdpify-0.3.0/cdpify/generator/generators/utils.py +0 -111
  439. cdpify-0.3.0/cdpify/generator/generators/views.py +0 -90
  440. cdpify-0.3.0/cdpify/generator/templates/accessors.py.jinja2 +0 -17
  441. cdpify-0.3.0/cdpify/generator/templates/domain_init.py.jinja2 +0 -22
  442. cdpify-0.3.0/cdpify/generator/templates/root_init.py.jinja2 +0 -9
  443. cdpify-0.3.0/cdpify/generator/templates/types.py.jinja2 +0 -33
  444. cdpify-0.3.0/cdpify/shared/decorators.py +0 -27
  445. cdpify-0.3.0/cdpify/transport.py +0 -29
  446. cdpify-0.3.0/cdpify/transports/websocket.py +0 -256
  447. cdpify-0.3.0/cdpify.egg-info/PKG-INFO +0 -304
  448. cdpify-0.3.0/tests/test_codec.py +0 -118
  449. cdpify-0.3.0/tests/test_decorators_and_exceptions.py +0 -42
  450. cdpify-0.3.0/tests/test_models.py +0 -59
  451. cdpify-0.3.0/tests/test_websocket_transport.py +0 -161
  452. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/ads/domain.py +0 -0
  453. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/cast/commands.py +0 -0
  454. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/console/commands.py +0 -0
  455. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/console/domain.py +0 -0
  456. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/crashreportcontext/domain.py +0 -0
  457. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/inspector/commands.py +0 -0
  458. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/inspector/domain.py +0 -0
  459. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/media/commands.py +0 -0
  460. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/media/domain.py +0 -0
  461. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/preload/commands.py +0 -0
  462. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/preload/domain.py +0 -0
  463. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/schema/domain.py +0 -0
  464. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/domains/webaudio/commands.py +0 -0
  465. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/generator/__main__.py +0 -0
  466. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/generator/downloader.py +0 -0
  467. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/generator/formatting.py +0 -0
  468. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/generator/generator.py +0 -0
  469. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/generator/generators/__init__.py +0 -0
  470. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/generator/generators/accessors.py +0 -0
  471. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/generator/generators/constants.py +0 -0
  472. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/generator/generators/context.py +0 -0
  473. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/generator/rendering.py +0 -0
  474. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/shared/naming.py +0 -0
  475. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify/transports/__init__.py +0 -0
  476. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify.egg-info/dependency_links.txt +0 -0
  477. {cdpify-0.3.0 → cdpify-0.5.0}/cdpify.egg-info/top_level.txt +0 -0
  478. {cdpify-0.3.0 → cdpify-0.5.0}/setup.cfg +0 -0
@@ -0,0 +1,214 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project are documented here.
4
+ Breaking changes are listed first in each release.
5
+
6
+ ## [0.5.0] - Unreleased
7
+
8
+ Release preparation; the publication date will be recorded when 0.5.0 ships.
9
+ See the [migration guide](README.md#upgrading-from-040) before upgrading.
10
+
11
+ ### Breaking changes
12
+
13
+ - Renamed the error module from `cdpify.exceptions` to `cdpify.error`.
14
+ Update imports such as `from cdpify.exceptions import CDPCommandError` to
15
+ `from cdpify.error import CDPCommandError`. The old module is removed;
16
+ error classes remain available from the root package (`from cdpify import
17
+ CDPCommandError`) with the same behavior and inheritance.
18
+ - Optional `any` fields now default to `UNSET`, distinguishing omission from
19
+ JSON `null`. For example, `CallArgument()` omits `value`, while
20
+ `CallArgument(value=None)` sends `{"value": null}`. Ordinary optional scalar
21
+ fields still use `None` to mean omitted. `UNSET` and `UnsetType` are public.
22
+ - `decode_cdp` now raises `CDPDecodeError` for missing required fields, including
23
+ nested models. Unknown fields and future enum values remain supported. Use
24
+ `decode_cdp(Model, payload, strict=False)` for the previous tolerant behavior
25
+ that logs a warning and fills missing required fields with `None`.
26
+ - Command timeouts now cover sending and receiving. The
27
+ `CdpClient(default_timeout=...)` setting is enforced for every transport and
28
+ inherited by session views. Omit the raw `execute(timeout=...)` argument to
29
+ inherit the default; pass `None` to disable it. Set `default_timeout=None` to
30
+ disable the client default entirely.
31
+ - `WebSocketTransport` no longer accepts `default_timeout`; configure it on
32
+ `CdpClient` instead. Standalone transport calls have no deadline unless
33
+ `execute(timeout=seconds)` is specified. Generated methods retain only CDP's
34
+ own parameters; use `asyncio.timeout(seconds)` for an individual caller budget.
35
+ - WebSocket compression is disabled by default for lower local latency. Pass
36
+ `compression="deflate"` to `CdpClient` or `WebSocketTransport` to opt into
37
+ compression when bandwidth matters more.
38
+ - Bounded event buffers now default to `overflow="error"`: overflow terminates
39
+ only the affected stream and raises `CDPEventOverflowError` on its next read.
40
+ Pass `overflow="drop_oldest"` on the client, transport or subscription to keep
41
+ the old lossy behavior. The default queue size remains unlimited (`0`).
42
+
43
+ ### Added
44
+
45
+ - Generated method docstrings include parameter descriptions, units and defaults
46
+ from the spec. Model fields retain their attribute documentation. Experimental
47
+ and deprecated markers are preserved on types, events and fields as well as
48
+ commands.
49
+ - `listen_raw(method=None)` on clients and sessions, and `listen_all_raw()` on
50
+ clients, return `TransportEvent` values with wire names, parameter dictionaries
51
+ and session IDs. None matches every method in the selected scope.
52
+ - Per-subscription overflow overrides and structured `CDPEventOverflowError`
53
+ details (`max_queue_size`, `dropped_events`). Overflow never blocks responses
54
+ or other subscriptions; failed listeners unregister immediately.
55
+ - `compression`, `open_timeout` and `close_timeout` options for URL-based clients
56
+ and the standalone WebSocket transport. Connection timeouts are in seconds.
57
+ - Reproducible codec, dispatch and optional Chrome round-trip benchmarks in
58
+ `benchmarks/runtime.py`; offline regeneration and generated-code drift checks
59
+ in `scripts/check_generated.py`.
60
+ - CI checks the library and public API with Pyright and runs isolated headless
61
+ Chrome tests. Run those locally with `pytest -m integration` and optionally
62
+ `CHROME_PATH`; they are excluded from the default unit-test run.
63
+
64
+ ### Performance
65
+
66
+ - Generated command methods build wire dictionaries directly, avoiding an
67
+ intermediate Params dataclass and reflective field traversal. Public Params
68
+ models and keyword-only command signatures are retained. Nested models still
69
+ serialize through the shared codec.
70
+ - The orjson transport sends UTF-8 bytes directly as text frames and receives
71
+ bytes without first decoding to a Python string. This removes redundant
72
+ UTF-8 conversions while preserving the CDP wire format.
73
+
74
+ ## [0.4.0] - 2026-10-25
75
+
76
+ ### Breaking changes
77
+
78
+ - Named protocol enums are now `StrEnum` subclasses instead of `Literal`
79
+ aliases. Use constants such as `ResourceType.FETCH` and
80
+ `CookieOperation.SET_COOKIE` in typed code. `decode_cdp` returns enum members,
81
+ including in nested models and collections. Unknown strings from newer CDP
82
+ versions remain instances of the corresponding enum with their original
83
+ `.value`; they are not added to its declared members. Inline enums remain
84
+ `Literal` annotations.
85
+ - Matching event listeners now share one decoded model per incoming event and
86
+ event class, including `listen_all()`'s `ReceivedEvent.value`. Mutations are
87
+ visible to other listeners. Treat event data as read-only or make a
88
+ `copy.deepcopy(event)` before changing it privately.
89
+ - All generated type aliases use `type` statements, including primitives and
90
+ arrays, e.g. `type FrameId = str` and `type Quad = list[float]`. Use them in
91
+ annotations; pass plain values such as `frame_id: FrameId = "F1"` instead of
92
+ calling `FrameId("F1")`. For runtime checks use `isinstance(value, str)` rather
93
+ than `isinstance(value, FrameId)`.
94
+ - `Client` and `CDPSession` are renamed to `CdpClient` and `CdpSession`.
95
+ Update imports to `from cdpify import CdpClient, CdpSession` and calls to
96
+ `CdpClient(...)`. `client.session(...)` now returns `CdpSession`.
97
+ - Exceptions follow Python naming: `CDPException` → `CDPError`,
98
+ `CDPConnectionException` → `CDPConnectionError`, `CDPCommandException` →
99
+ `CDPCommandError`, `CDPTimeoutException` → `CDPTimeoutError`. The old names
100
+ still work but emit a `DeprecationWarning` and will be removed in a future
101
+ release.
102
+ - `CDPCommandError` takes `(method, code, message, data=None)` instead of the
103
+ raw error dict. Use `CDPCommandError.from_response(method, error)` to build
104
+ one from a CDP error payload. The message now names the failed method, e.g.
105
+ `Page.navigate failed with CDP error -32000: Cannot navigate to invalid URL`.
106
+ - `listen()`, `listen_all()` and `CdpSession.listen()` are now regular methods
107
+ that return an `EventSubscription` instead of async generators. `async for`
108
+ and `aclose()` keep working. Code that relied on the generator type itself
109
+ (e.g. `inspect.isasyncgen`) or on `asend()`/`athrow()` must be updated.
110
+ - `listen()`, `listen_all()` and `CdpSession.listen()` take the event class
111
+ instead of an event name plus class, and `timeout` is keyword-only:
112
+
113
+ ```python
114
+ # Before
115
+ client.listen(NetworkEvent.REQUEST_WILL_BE_SENT, RequestWillBeSentEvent)
116
+ client.listen(
117
+ event_name=NetworkEvent.REQUEST_WILL_BE_SENT,
118
+ event_type=RequestWillBeSentEvent,
119
+ )
120
+
121
+ # After
122
+ client.listen(RequestWillBeSentEvent)
123
+ ```
124
+
125
+ The CDP name comes from the new `__cdp_event__` class variable on generated
126
+ event classes. For custom dataclasses pass `event_name="Domain.event"`.
127
+ - Calling a deprecated CDP command emits a `DeprecationWarning` instead of
128
+ logging a warning on every call. Python's default filters show it once per
129
+ call site; use `warnings.filterwarnings` or `-W` to change that. The
130
+ decorator is now `warnings.deprecated` (PEP 702) on Python 3.13+, so IDEs and
131
+ type checkers mark deprecated commands. `cdpify.shared.decorators.deprecated`
132
+ requires a message: `@deprecated("...")` instead of `@deprecated()`.
133
+
134
+ ### Added
135
+
136
+ - Optional `max_queue_size` on `CdpClient`, `WebSocketTransport`, `listen()`,
137
+ `listen_all()`, and `CdpSession.listen()`. Zero keeps unlimited buffering;
138
+ bounded queues drop their oldest event instead of blocking command responses.
139
+ Subscriptions inherit the client limit unless overridden. Both subscriptions
140
+ and the standalone WebSocket transport expose `dropped_events` counters.
141
+ - `cdpify[orjson]` enables optional `orjson` encoding and decoding in the WebSocket
142
+ transport, with automatic fallback to `json` and outgoing text frames.
143
+ - Optional `CallbackTransport` protocol in `cdpify.transport` for direct event
144
+ delivery without a transport queue. Existing `Transport` implementations work
145
+ through their event iterator.
146
+ - `EventSubscription` registers its handler as soon as `listen()` is called, so
147
+ events emitted before the first read are no longer lost. It supports
148
+ `async with` for deterministic cleanup and `await events.next(timeout=...)`
149
+ for waiting on a single event. `next()` raises `CDPStreamClosedError` once
150
+ the stream has ended.
151
+ - Generated event classes expose their CDP method name as `__cdp_event__`,
152
+ e.g. `LoadEventFiredEvent.__cdp_event__ == "Page.loadEventFired"`.
153
+ - `FindInPage` domain (`client.find_in_page`) from the latest CDP spec.
154
+
155
+ ### Changed
156
+
157
+ - Generated `__cdp_event__` class variables refer to the domain's event enum,
158
+ e.g. `LoadingFailedEvent.__cdp_event__ is NetworkEvent.LOADING_FAILED`.
159
+ - The root client and session views share the implementation of `listen()`.
160
+ - CI runs tests on Ubuntu, Windows, and macOS with Python 3.12, 3.13, and 3.14,
161
+ including both JSON backends.
162
+ - `CDPTimeoutError` also inherits from the built-in `TimeoutError`, so
163
+ `except TimeoutError` catches command timeouts.
164
+ - Docstrings of generated type aliases follow the alias, so IDEs and Sphinx
165
+ show them on hover.
166
+ - Generated fields only carry `metadata={"cdp_name": ...}` when the CDP name
167
+ differs from the Python name. Code that reads `field.metadata["cdp_name"]`
168
+ directly should fall back to `field.name`.
169
+
170
+ ### Fixed
171
+
172
+ - Distributions include the `py.typed` marker so type checkers recognize the
173
+ installed package's inline annotations.
174
+ - A connection closing while a command is being sent now raises
175
+ `CDPConnectionError` and does not leave an unobserved response-future exception.
176
+ Commands submitted after shutdown starts are rejected immediately.
177
+ - Concurrent disconnects and browser-initiated closure now wait for the same
178
+ cleanup. Cancelling a disconnect waiter no longer interrupts socket cleanup
179
+ or masks cancellation with an error when detaching the event callback.
180
+ - Bounded event streams close even when their buffers are full, preserving
181
+ buffered events on disconnect. Explicit subscription closure releases pending
182
+ events immediately. Subscriptions from an earlier connection stay closed
183
+ after reconnecting.
184
+ - `decode_cdp` now decodes nested models behind `type X = ...` aliases instead
185
+ of leaving them as plain dicts.
186
+ - `decode_cdp` logs a warning when a field annotation cannot be resolved,
187
+ instead of silently leaving nested values as plain dicts.
188
+ - A malformed message from the browser no longer closes the WebSocket
189
+ connection. The message is logged and skipped.
190
+ - Events sent with `"params": null` are delivered with empty params instead of
191
+ being dropped as malformed.
192
+ - Event listeners (`listen()`, `listen_all()`, `CdpSession.listen()`) now end
193
+ when the transport event stream ends or the client disconnects. Previously
194
+ they waited forever unless a `timeout` was set. Events that were already
195
+ received are still delivered before the stream ends.
196
+ - Array type aliases keep their element type instead of `list[Any]`, e.g.
197
+ `DOM.Quad = list[float]` and `Target.TargetFilter = list[FilterEntry]`.
198
+ Fields typed as `TargetFilter` now decode to `FilterEntry` objects instead
199
+ of plain dicts.
200
+ - Generated fields and parameters whose CDP name is a Python keyword get a
201
+ trailing underscore (`or` → `or_`), so the generated code is valid again.
202
+
203
+ ### Performance
204
+
205
+ - The default WebSocket transport delivers events directly to the router,
206
+ removing the intermediate queue and client event-loop task.
207
+ - Event models are decoded lazily once per incoming event and target class,
208
+ then reused by matching listeners. Unread events are not decoded; caches are
209
+ released together with the buffered event instead of being retained globally.
210
+ - `decode_cdp` builds a converter per field once per model instead of
211
+ inspecting type annotations for every value. Decoding typical Network
212
+ events is 4–7× faster (`ResponseReceivedEvent`: 56 µs → 7 µs).
213
+ - `import cdpify` loads CDP domains lazily on first access. Import time drops
214
+ from ~790 ms to ~85 ms.
@@ -0,0 +1,2 @@
1
+ include CHANGELOG.md
2
+ include RELEASING.md