ghostcrawl 2.2.3__tar.gz → 2.3.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 (371) hide show
  1. ghostcrawl-2.3.0/LICENSE +21 -0
  2. {ghostcrawl-2.2.3/ghostcrawl.egg-info → ghostcrawl-2.3.0}/PKG-INFO +86 -55
  3. ghostcrawl-2.3.0/README.md +191 -0
  4. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/v1_request_builder.py +0 -10
  5. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/ghostcrawl/__init__.py +13 -0
  6. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/ghostcrawl/cli/main.py +1 -1
  7. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/ghostcrawl/facade.py +154 -3
  8. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0/ghostcrawl.egg-info}/PKG-INFO +86 -55
  9. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/ghostcrawl.egg-info/SOURCES.txt +0 -2
  10. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/pyproject.toml +3 -3
  11. ghostcrawl-2.2.3/LICENSE +0 -46
  12. ghostcrawl-2.2.3/README.md +0 -160
  13. ghostcrawl-2.2.3/_generated/v1/binary/binary_request_builder.py +0 -33
  14. ghostcrawl-2.2.3/_generated/v1/binary/download/download_request_builder.py +0 -88
  15. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/MANIFEST.in +0 -0
  16. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/ghostcrawl_client.py +0 -0
  17. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/audit_event_out.py +0 -0
  18. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/audit_event_out_actor_ip.py +0 -0
  19. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/audit_event_out_actor_ip_member1.py +0 -0
  20. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/audit_event_out_actor_token_id.py +0 -0
  21. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/audit_event_out_actor_token_id_member1.py +0 -0
  22. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/audit_event_out_actor_user_agent.py +0 -0
  23. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/audit_event_out_actor_user_agent_member1.py +0 -0
  24. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/audit_event_out_actor_user_id.py +0 -0
  25. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/audit_event_out_actor_user_id_member1.py +0 -0
  26. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/audit_event_out_metadata.py +0 -0
  27. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/audit_event_out_org_id.py +0 -0
  28. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/audit_event_out_org_id_member1.py +0 -0
  29. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/audit_event_out_target_id.py +0 -0
  30. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/audit_event_out_target_id_member1.py +0 -0
  31. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/audit_event_out_target_kind.py +0 -0
  32. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/audit_event_out_target_kind_member1.py +0 -0
  33. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/audit_events_response.py +0 -0
  34. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/audit_events_response_next_cursor.py +0 -0
  35. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/audit_events_response_next_cursor_member1.py +0 -0
  36. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/batch_scrape_request.py +0 -0
  37. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/batch_scrape_request_behavior_actions.py +0 -0
  38. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/batch_scrape_request_behavior_actions_member1.py +0 -0
  39. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/batch_scrape_request_behavior_actions_member2.py +0 -0
  40. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/batch_scrape_request_extraction_strategy.py +0 -0
  41. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/batch_scrape_request_extraction_strategy_member1.py +0 -0
  42. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/batch_scrape_request_identity_country.py +0 -0
  43. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/batch_scrape_request_identity_country_member1.py +0 -0
  44. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/batch_scrape_request_language.py +0 -0
  45. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/batch_scrape_request_language_member1.py +0 -0
  46. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/batch_scrape_request_output_format.py +0 -0
  47. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/batch_scrape_request_profile.py +0 -0
  48. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/batch_scrape_request_profile_member1.py +0 -0
  49. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/cdp_frame_request.py +0 -0
  50. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/cdp_url_request.py +0 -0
  51. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/checkout_request.py +0 -0
  52. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/contact_request.py +0 -0
  53. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/cookie_dict.py +0 -0
  54. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/cookie_dict_domain.py +0 -0
  55. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/cookie_dict_domain_member1.py +0 -0
  56. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/cookie_dict_expires.py +0 -0
  57. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/cookie_dict_expires_member1.py +0 -0
  58. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/cookie_dict_http_only.py +0 -0
  59. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/cookie_dict_http_only_member1.py +0 -0
  60. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/cookie_dict_path.py +0 -0
  61. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/cookie_dict_path_member1.py +0 -0
  62. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/cookie_dict_same_site.py +0 -0
  63. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/cookie_dict_same_site_member1.py +0 -0
  64. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/cookie_dict_secure.py +0 -0
  65. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/cookie_dict_secure_member1.py +0 -0
  66. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/cookie_dict_url.py +0 -0
  67. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/cookie_dict_url_member1.py +0 -0
  68. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/cookies_delete_body.py +0 -0
  69. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/cookies_delete_body_domain.py +0 -0
  70. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/cookies_delete_body_domain_member1.py +0 -0
  71. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/cookies_delete_body_name.py +0 -0
  72. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/cookies_delete_body_name_member1.py +0 -0
  73. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/cookies_delete_body_path.py +0 -0
  74. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/cookies_delete_body_path_member1.py +0 -0
  75. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/cookies_set_body.py +0 -0
  76. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/deep_crawl_body.py +0 -0
  77. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/deep_crawl_body_webhook_url.py +0 -0
  78. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/deep_crawl_body_webhook_url_member1.py +0 -0
  79. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/dom_snapshot_body.py +0 -0
  80. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/download_body.py +0 -0
  81. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/error_code.py +0 -0
  82. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/eval_body.py +0 -0
  83. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/extend_body.py +0 -0
  84. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/extend_body_ttl_seconds.py +0 -0
  85. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/extend_body_ttl_seconds_member1.py +0 -0
  86. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/extract_request.py +0 -0
  87. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/extract_request_behavior_actions.py +0 -0
  88. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/extract_request_behavior_actions_member1.py +0 -0
  89. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/extract_request_behavior_actions_member2.py +0 -0
  90. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/extract_request_engine.py +0 -0
  91. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/extract_request_identity_country.py +0 -0
  92. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/extract_request_identity_country_member1.py +0 -0
  93. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/extract_request_language.py +0 -0
  94. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/extract_request_language_member1.py +0 -0
  95. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/extract_request_prompt.py +0 -0
  96. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/extract_request_prompt_member1.py +0 -0
  97. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/extract_request_url.py +0 -0
  98. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/extract_request_url_member1.py +0 -0
  99. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/extract_request_urls.py +0 -0
  100. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/extract_request_urls_member1.py +0 -0
  101. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/filter_spec.py +0 -0
  102. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/h_t_t_p_validation_error.py +0 -0
  103. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/har_body.py +0 -0
  104. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/identity_payload.py +0 -0
  105. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/identity_request.py +0 -0
  106. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/identity_request_claim_browser.py +0 -0
  107. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/identity_request_claim_browser_member1.py +0 -0
  108. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/identity_request_claim_os.py +0 -0
  109. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/identity_request_claim_os_member1.py +0 -0
  110. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/identity_request_device_model.py +0 -0
  111. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/identity_request_device_model_member1.py +0 -0
  112. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/identity_request_locale.py +0 -0
  113. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/identity_request_locale_member1.py +0 -0
  114. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/identity_request_proxy.py +0 -0
  115. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/identity_request_proxy_member1.py +0 -0
  116. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/identity_request_source.py +0 -0
  117. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/identity_request_source_member1.py +0 -0
  118. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/identity_request_timezone.py +0 -0
  119. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/identity_request_timezone_member1.py +0 -0
  120. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/identity_request_viewport.py +0 -0
  121. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/identity_request_viewport_member1.py +0 -0
  122. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/identity_response.py +0 -0
  123. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/identity_response_expires_at.py +0 -0
  124. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/identity_response_expires_at_member1.py +0 -0
  125. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/identity_response_identity_id.py +0 -0
  126. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/identity_response_identity_id_member1.py +0 -0
  127. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/identity_response_workspace_id.py +0 -0
  128. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/identity_response_workspace_id_member1.py +0 -0
  129. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/map_body.py +0 -0
  130. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/map_body_search.py +0 -0
  131. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/map_body_search_member1.py +0 -0
  132. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/map_response.py +0 -0
  133. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/map_response_truncated_to_server_max.py +0 -0
  134. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/map_response_truncated_to_server_max_member1.py +0 -0
  135. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/me_response.py +0 -0
  136. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/me_response_created_at.py +0 -0
  137. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/me_response_created_at_member1.py +0 -0
  138. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/policy_upsert_request.py +0 -0
  139. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/policy_upsert_request_max_crawl_pages.py +0 -0
  140. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/policy_upsert_request_max_crawl_pages_member1.py +0 -0
  141. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/policy_upsert_request_max_llm_calls.py +0 -0
  142. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/policy_upsert_request_max_llm_calls_member1.py +0 -0
  143. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/policy_upsert_request_max_llm_tokens.py +0 -0
  144. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/policy_upsert_request_max_llm_tokens_member1.py +0 -0
  145. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/problem_details.py +0 -0
  146. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/profile_create_request.py +0 -0
  147. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/profile_create_request_storage_state_id.py +0 -0
  148. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/profile_create_request_storage_state_id_member1.py +0 -0
  149. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/profile_update_request.py +0 -0
  150. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/profile_update_request_name.py +0 -0
  151. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/profile_update_request_name_member1.py +0 -0
  152. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/profile_update_request_storage_state_id.py +0 -0
  153. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/profile_update_request_storage_state_id_member1.py +0 -0
  154. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/registry_token_request.py +0 -0
  155. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/retry_delivery_response.py +0 -0
  156. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/rotate_secret_response.py +0 -0
  157. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/schedule_create_request.py +0 -0
  158. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/schedule_create_request_job_params.py +0 -0
  159. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/schedule_create_request_notify_webhook.py +0 -0
  160. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/schedule_create_request_notify_webhook_member1.py +0 -0
  161. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/scorer_spec.py +0 -0
  162. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/scrape_request.py +0 -0
  163. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/scrape_request_batch_identity_mode.py +0 -0
  164. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/scrape_request_behavior_actions.py +0 -0
  165. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/scrape_request_behavior_actions_member1.py +0 -0
  166. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/scrape_request_behavior_actions_member2.py +0 -0
  167. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/scrape_request_engine.py +0 -0
  168. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/scrape_request_format.py +0 -0
  169. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/scrape_request_identity.py +0 -0
  170. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/scrape_request_identity_country.py +0 -0
  171. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/scrape_request_identity_country_member1.py +0 -0
  172. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/scrape_request_identity_member1.py +0 -0
  173. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/scrape_request_language.py +0 -0
  174. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/scrape_request_language_member1.py +0 -0
  175. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/scrape_request_profile.py +0 -0
  176. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/scrape_request_profile_member1.py +0 -0
  177. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/scrape_request_proxy.py +0 -0
  178. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/scrape_request_proxy_member1.py +0 -0
  179. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/scrape_request_screenshot_selector.py +0 -0
  180. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/scrape_request_screenshot_selector_member1.py +0 -0
  181. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/scrape_request_session.py +0 -0
  182. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/scrape_request_session_member1.py +0 -0
  183. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/scrape_request_url.py +0 -0
  184. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/scrape_request_url_member1.py +0 -0
  185. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/scrape_request_urls.py +0 -0
  186. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/scrape_request_urls_member1.py +0 -0
  187. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/scroll_body.py +0 -0
  188. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/scroll_body_direction.py +0 -0
  189. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/scroll_body_distance_px.py +0 -0
  190. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/scroll_body_distance_px_member1.py +0 -0
  191. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/scroll_body_selector.py +0 -0
  192. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/scroll_body_selector_member1.py +0 -0
  193. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/search_request.py +0 -0
  194. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/search_request_country.py +0 -0
  195. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/search_request_country_member1.py +0 -0
  196. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/search_request_engine.py +0 -0
  197. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/search_request_engine_member1.py +0 -0
  198. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/search_request_freshness.py +0 -0
  199. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/search_request_freshness_member1.py +0 -0
  200. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/search_request_vertical.py +0 -0
  201. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/search_request_vertical_member1.py +0 -0
  202. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/session_create_request.py +0 -0
  203. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/session_create_request_engine.py +0 -0
  204. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/session_create_request_profile.py +0 -0
  205. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/session_create_request_profile_member1.py +0 -0
  206. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/storage_state_attach_request.py +0 -0
  207. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/storage_state_detach_request.py +0 -0
  208. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/takeover_action_body.py +0 -0
  209. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/team_response.py +0 -0
  210. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/tenant_context.py +0 -0
  211. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/upload_body.py +0 -0
  212. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/validation_error.py +0 -0
  213. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/validation_error_ctx.py +0 -0
  214. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/viewport_exact.py +0 -0
  215. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/wait_body.py +0 -0
  216. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/wait_body_selector.py +0 -0
  217. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/wait_body_selector_member1.py +0 -0
  218. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/webhook_create_request.py +0 -0
  219. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/webhook_create_response.py +0 -0
  220. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/webhook_delivery_list_response.py +0 -0
  221. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/webhook_delivery_list_response_next_cursor.py +0 -0
  222. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/webhook_delivery_list_response_next_cursor_member1.py +0 -0
  223. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/webhook_delivery_public.py +0 -0
  224. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/webhook_delivery_public_delivered_at.py +0 -0
  225. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/webhook_delivery_public_delivered_at_member1.py +0 -0
  226. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/webhook_delivery_public_error_class.py +0 -0
  227. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/webhook_delivery_public_error_class_member1.py +0 -0
  228. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/webhook_delivery_public_replay_of.py +0 -0
  229. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/webhook_delivery_public_replay_of_member1.py +0 -0
  230. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/webhook_delivery_public_response_body_preview.py +0 -0
  231. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/webhook_delivery_public_response_body_preview_member1.py +0 -0
  232. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/webhook_delivery_public_response_status.py +0 -0
  233. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/webhook_delivery_public_response_status_member1.py +0 -0
  234. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/webhook_list_response.py +0 -0
  235. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/webhook_list_response_next_cursor.py +0 -0
  236. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/webhook_list_response_next_cursor_member1.py +0 -0
  237. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/webhook_public.py +0 -0
  238. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/webhook_public_secret_rotated_at.py +0 -0
  239. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/models/webhook_public_secret_rotated_at_member1.py +0 -0
  240. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/audit/audit_request_builder.py +0 -0
  241. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/audit/events/events_request_builder.py +0 -0
  242. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/billing/billing_request_builder.py +0 -0
  243. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/billing/checkout/checkout_request_builder.py +0 -0
  244. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/billing/portal/portal_request_builder.py +0 -0
  245. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/billing/subscription/subscription_request_builder.py +0 -0
  246. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/billing/usage/usage_request_builder.py +0 -0
  247. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/budgets/budgets_request_builder.py +0 -0
  248. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/budgets/policy/item/item/with_scope_item_request_builder.py +0 -0
  249. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/budgets/policy/item/with_scope_type_item_request_builder.py +0 -0
  250. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/budgets/policy/policy_request_builder.py +0 -0
  251. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/budgets/usage/usage_request_builder.py +0 -0
  252. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/cdp/cdp_request_builder.py +0 -0
  253. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/cdp/frame/frame_request_builder.py +0 -0
  254. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/cdp/url/url_request_builder.py +0 -0
  255. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/contact/contact_post_response.py +0 -0
  256. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/contact/contact_request_builder.py +0 -0
  257. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/crawl/crawl_request_builder.py +0 -0
  258. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/crawl/deep/deep_request_builder.py +0 -0
  259. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/crawl/deep/item/with_run_item_request_builder.py +0 -0
  260. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/crawl_runs/crawl_runs_post_request_body.py +0 -0
  261. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/crawl_runs/crawl_runs_request_builder.py +0 -0
  262. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/crawl_runs/item/cancel/cancel_request_builder.py +0 -0
  263. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/crawl_runs/item/resume/resume_request_builder.py +0 -0
  264. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/crawl_runs/item/with_run_item_request_builder.py +0 -0
  265. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/datasets/datasets_post_request_body.py +0 -0
  266. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/datasets/datasets_request_builder.py +0 -0
  267. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/datasets/item/rows/append/append_post_request_body.py +0 -0
  268. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/datasets/item/rows/append/append_request_builder.py +0 -0
  269. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/datasets/item/rows/rows_request_builder.py +0 -0
  270. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/datasets/item/with_name_item_request_builder.py +0 -0
  271. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/discovery/discovery_request_builder.py +0 -0
  272. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/engines/engines_request_builder.py +0 -0
  273. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/engines/manifest/manifest_request_builder.py +0 -0
  274. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/extract/extract_post_response.py +0 -0
  275. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/extract/extract_request_builder.py +0 -0
  276. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/identity/identity_request_builder.py +0 -0
  277. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/kv/item/with_key_item_request_builder.py +0 -0
  278. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/kv/item/with_key_put_request_body.py +0 -0
  279. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/kv/kv_request_builder.py +0 -0
  280. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/map/map_request_builder.py +0 -0
  281. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/me/export/export_get_response.py +0 -0
  282. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/me/export/export_request_builder.py +0 -0
  283. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/me/me_request_builder.py +0 -0
  284. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/me/usage/get_period_query_parameter_type.py +0 -0
  285. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/me/usage/usage_get_response.py +0 -0
  286. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/me/usage/usage_request_builder.py +0 -0
  287. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/page/cookies/cookies_request_builder.py +0 -0
  288. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/page/dom_snapshot/dom_snapshot_request_builder.py +0 -0
  289. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/page/download/download_request_builder.py +0 -0
  290. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/page/eval/eval_request_builder.py +0 -0
  291. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/page/har/har_request_builder.py +0 -0
  292. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/page/page_request_builder.py +0 -0
  293. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/page/scroll/scroll_request_builder.py +0 -0
  294. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/page/upload/upload_request_builder.py +0 -0
  295. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/page/wait/wait_request_builder.py +0 -0
  296. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/pricing/pricing_request_builder.py +0 -0
  297. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/pricing/public/public_request_builder.py +0 -0
  298. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/profiles/item/with_name_item_request_builder.py +0 -0
  299. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/profiles/profiles_request_builder.py +0 -0
  300. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/proxy_providers/proxy_providers_request_builder.py +0 -0
  301. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/queues/item/ack/ack_post_request_body.py +0 -0
  302. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/queues/item/ack/ack_request_builder.py +0 -0
  303. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/queues/item/pop/pop_request_builder.py +0 -0
  304. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/queues/item/push/push_post_request_body.py +0 -0
  305. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/queues/item/push/push_request_builder.py +0 -0
  306. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/queues/item/stats/stats_request_builder.py +0 -0
  307. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/queues/item/with_name_item_request_builder.py +0 -0
  308. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/queues/queues_request_builder.py +0 -0
  309. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/recordings/item/recording_item_request_builder.py +0 -0
  310. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/recordings/item/visual/frames/frames_request_builder.py +0 -0
  311. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/recordings/item/visual/start/start_request_builder.py +0 -0
  312. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/recordings/item/visual/stop/stop_request_builder.py +0 -0
  313. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/recordings/item/visual/visual_request_builder.py +0 -0
  314. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/recordings/recordings_request_builder.py +0 -0
  315. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/registry/registry_request_builder.py +0 -0
  316. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/registry/token/token_request_builder.py +0 -0
  317. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/schedules/item/runs/runs_request_builder.py +0 -0
  318. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/schedules/item/with_schedule_item_request_builder.py +0 -0
  319. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/schedules/schedules_request_builder.py +0 -0
  320. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/scrape/batch/batch_request_builder.py +0 -0
  321. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/scrape/scrape_request_builder.py +0 -0
  322. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/screenshot_blobs/item/with_ref_item_request_builder.py +0 -0
  323. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/screenshot_blobs/screenshot_blobs_request_builder.py +0 -0
  324. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/search/search_request_builder.py +0 -0
  325. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/sessions/create/create_request_builder.py +0 -0
  326. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/sessions/item/budget_stream/budget_stream_request_builder.py +0 -0
  327. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/sessions/item/extend/extend_request_builder.py +0 -0
  328. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/sessions/item/pin/pin_request_builder.py +0 -0
  329. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/sessions/item/profile_item_request_builder.py +0 -0
  330. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/sessions/item/recording/recording_request_builder.py +0 -0
  331. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/sessions/item/recording/start/start_request_builder.py +0 -0
  332. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/sessions/item/recording/stop/stop_request_builder.py +0 -0
  333. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/sessions/item/release/release_request_builder.py +0 -0
  334. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/sessions/item/takeover/takeover_request_builder.py +0 -0
  335. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/sessions/item/takeover_release/takeover_release_request_builder.py +0 -0
  336. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/sessions/item/takeover_token/takeover_token_request_builder.py +0 -0
  337. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/sessions/sessions_request_builder.py +0 -0
  338. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/storage_states/detach/detach_request_builder.py +0 -0
  339. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/storage_states/item/attach/attach_request_builder.py +0 -0
  340. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/storage_states/item/with_id_or_name_item_request_builder.py +0 -0
  341. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/storage_states/storage_states_post_request_body.py +0 -0
  342. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/storage_states/storage_states_request_builder.py +0 -0
  343. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/updates/updates_request_builder.py +0 -0
  344. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/webhooks/item/deliveries/deliveries_request_builder.py +0 -0
  345. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/webhooks/item/deliveries/item/retry/retry_request_builder.py +0 -0
  346. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/webhooks/item/deliveries/item/with_delivery_item_request_builder.py +0 -0
  347. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/webhooks/item/rotate_secret/rotate_secret_request_builder.py +0 -0
  348. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/webhooks/item/with_webhook_item_request_builder.py +0 -0
  349. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/_generated/v1/webhooks/webhooks_request_builder.py +0 -0
  350. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/ghostcrawl/_ghostcrawl.py +0 -0
  351. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/ghostcrawl/branded.py +0 -0
  352. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/ghostcrawl/cli/__init__.py +0 -0
  353. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/ghostcrawl/cli/_batch.py +0 -0
  354. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/ghostcrawl/cli/_config_store.py +0 -0
  355. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/ghostcrawl/cli/install.py +0 -0
  356. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/ghostcrawl/errors/__init__.py +0 -0
  357. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/ghostcrawl/errors/codes.py +0 -0
  358. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/ghostcrawl/errors/identity_errors.py +0 -0
  359. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/ghostcrawl/identity/__init__.py +0 -0
  360. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/ghostcrawl/identity/client.py +0 -0
  361. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/ghostcrawl/identity/types.py +0 -0
  362. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/ghostcrawl/mcp/__init__.py +0 -0
  363. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/ghostcrawl/mcp/wrapper.py +0 -0
  364. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/ghostcrawl/params.py +0 -0
  365. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/ghostcrawl/py.typed +0 -0
  366. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/ghostcrawl/retry_policy.py +0 -0
  367. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/ghostcrawl.egg-info/dependency_links.txt +0 -0
  368. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/ghostcrawl.egg-info/entry_points.txt +0 -0
  369. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/ghostcrawl.egg-info/requires.txt +0 -0
  370. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/ghostcrawl.egg-info/top_level.txt +0 -0
  371. {ghostcrawl-2.2.3 → ghostcrawl-2.3.0}/setup.cfg +0 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 GhostCrawl, LLC
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,14 +1,14 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ghostcrawl
3
- Version: 2.2.3
3
+ Version: 2.3.0
4
4
  Summary: Official Python SDK for the Ghostcrawl local orchestration API.
5
5
  Author: Ghostcrawl
6
- License: Proprietary — see LICENSE
6
+ License: MIT
7
7
  Project-URL: Homepage, https://github.com/ghostcrawl/ghostcrawl
8
8
  Keywords: ghostcrawl,scraping,browser,automation,agent
9
9
  Classifier: Development Status :: 4 - Beta
10
10
  Classifier: Intended Audience :: Developers
11
- Classifier: License :: Other/Proprietary License
11
+ Classifier: License :: OSI Approved :: MIT License
12
12
  Classifier: Programming Language :: Python :: 3
13
13
  Classifier: Programming Language :: Python :: 3.10
14
14
  Classifier: Programming Language :: Python :: 3.11
@@ -45,26 +45,42 @@ pip install ghostcrawl
45
45
 
46
46
  Requires Python 3.10+. Runtime dependencies: `httpx>=0.28.1`.
47
47
 
48
+ > The client is **async** — every request method is a coroutine. Call them with
49
+ > `await` inside an `async` function and drive it with `asyncio.run(...)`.
50
+
48
51
  ## Quickstart
49
52
 
50
53
  ```python
54
+ import asyncio
51
55
  from ghostcrawl import GhostcrawlClient
52
56
 
53
- # Reads GHOSTCRAWL_API_KEY from environment, or pass token= explicitly
54
- client = GhostcrawlClient(token="gck_live_YOUR_KEY")
55
-
56
- # Scrape a URL
57
- result = client.scrape(url="https://example.com", format="markdown")
58
- print(result["content"])
59
-
60
- # Start a crawl
61
- run = client.crawl_runs.start(url="https://example.com", max_depth=2, max_pages=50)
62
- print(run["run_id"])
63
-
64
- # Web search
65
- results = client.search(query="latest AI research", engine="google", limit=10)
66
- for r in results["results"]:
67
- print(r["title"], r["url"])
57
+ async def main():
58
+ # Reads GHOSTCRAWL_API_KEY from environment, or pass token= explicitly
59
+ async with GhostcrawlClient(token="gck_live_YOUR_KEY") as client:
60
+ # Scrape a URL
61
+ result = await client.scrape(url="https://example.com", format="markdown")
62
+ print(result["content"])
63
+
64
+ # Start a crawl and wait for it to finish — EVENT-DRIVEN: the server
65
+ # blocks until the run is terminal (completed/failed/cancelled) or the
66
+ # timeout elapses, then returns the run. No client-side poll loop.
67
+ run = await client.crawl_runs.start(
68
+ url="https://example.com", max_depth=2, max_pages=50,
69
+ wait=True, wait_timeout=300,
70
+ )
71
+ print(run["run_id"], run["status"])
72
+
73
+ # Already have a run_id? Long-poll it to completion the same way:
74
+ # run = await client.crawl_runs.wait(run_id, timeout=300)
75
+ # Or skip waiting entirely and get notified via a webhook (see Webhooks)
76
+ # by omitting wait= and registering a delivery URL with client.webhooks.
77
+
78
+ # Web search
79
+ results = await client.search(query="latest AI research", engine="google", limit=10)
80
+ for r in results["results"]:
81
+ print(r["title"], r["url"])
82
+
83
+ asyncio.run(main())
68
84
  ```
69
85
 
70
86
  ## Authentication
@@ -86,71 +102,86 @@ Every request sends `Authorization: Bearer <token>`. This is the only auth schem
86
102
  ## Extract structured data
87
103
 
88
104
  ```python
105
+ import asyncio
89
106
  from ghostcrawl import GhostcrawlClient
90
107
 
91
- client = GhostcrawlClient(token="gck_live_YOUR_KEY")
92
-
93
- # Define a schema and extract matching data
94
- data = client.extract(
95
- url="https://example.com/product",
96
- schema={
97
- "type": "object",
98
- "properties": {
99
- "name": {"type": "string"},
100
- "price": {"type": "number"},
101
- "description": {"type": "string"},
102
- },
103
- },
104
- )
105
- print(data["name"], data["price"])
108
+ async def main():
109
+ async with GhostcrawlClient(token="gck_live_YOUR_KEY") as client:
110
+ # Define a schema and extract matching data
111
+ data = await client.extract(
112
+ url="https://example.com/product",
113
+ schema={
114
+ "type": "object",
115
+ "properties": {
116
+ "name": {"type": "string"},
117
+ "price": {"type": "number"},
118
+ "description": {"type": "string"},
119
+ },
120
+ },
121
+ )
122
+ print(data["name"], data["price"])
123
+
124
+ asyncio.run(main())
106
125
  ```
107
126
 
108
127
  ## Browser sessions
109
128
 
110
129
  ```python
130
+ import asyncio
111
131
  from ghostcrawl import GhostcrawlClient
112
132
 
113
- client = GhostcrawlClient(token="gck_live_YOUR_KEY")
133
+ async def main():
134
+ async with GhostcrawlClient(token="gck_live_YOUR_KEY") as client:
135
+ # Create a session
136
+ session = await client.sessions.create(profile_name="my-profile")
137
+ session_id = session["session_id"]
114
138
 
115
- # Create a session
116
- session = client.sessions.create(profile_name="my-profile")
117
- session_id = session["session_id"]
139
+ # Extend and release
140
+ await client.sessions.extend(session_id, duration_seconds=600)
141
+ await client.sessions.release(session_id)
118
142
 
119
- # Extend and release
120
- client.sessions.extend(session_id, duration_seconds=600)
121
- client.sessions.release(session_id)
143
+ asyncio.run(main())
122
144
  ```
123
145
 
124
146
  ## Error handling
125
147
 
126
148
  ```python
149
+ import asyncio
127
150
  from ghostcrawl import GhostcrawlClient, AuthenticationError, RateLimitError, APIError
128
151
 
129
- client = GhostcrawlClient(token="gck_live_YOUR_KEY")
130
-
131
- try:
132
- result = client.scrape(url="https://example.com")
133
- except AuthenticationError:
134
- print("Invalid API key — check your token")
135
- except RateLimitError:
136
- print("Rate limit reached — retry after a short delay")
137
- except APIError as e:
138
- print(f"Server error: {e.status_code}")
152
+ async def main():
153
+ async with GhostcrawlClient(token="gck_live_YOUR_KEY") as client:
154
+ try:
155
+ result = await client.scrape(url="https://example.com")
156
+ except AuthenticationError:
157
+ print("Invalid API key — check your token")
158
+ except RateLimitError:
159
+ print("Rate limit reached — retry after a short delay")
160
+ except APIError as e:
161
+ print(f"Server error: {e.status_code}")
162
+
163
+ asyncio.run(main())
139
164
  ```
140
165
 
141
166
  ## Context manager
142
167
 
143
168
  ```python
169
+ import asyncio
144
170
  from ghostcrawl import GhostcrawlClient
145
171
 
146
- with GhostcrawlClient(token="gck_live_YOUR_KEY") as client:
147
- result = client.scrape(url="https://example.com")
148
- print(result)
149
- # HTTP connection is closed automatically
172
+ async def main():
173
+ async with GhostcrawlClient(token="gck_live_YOUR_KEY") as client:
174
+ result = await client.scrape(url="https://example.com")
175
+ print(result)
176
+ # HTTP connection is closed automatically
177
+
178
+ asyncio.run(main())
150
179
  ```
151
180
 
152
181
  ## All resources
153
182
 
183
+ Every operation below is a coroutine — prefix each call with `await` inside an `async` function.
184
+
154
185
  | Resource | Client attribute | Key operations |
155
186
  |----------|-----------------|----------------|
156
187
  | Scraping | `client.scrape(url=…)` | Render and return page content |
@@ -158,7 +189,7 @@ with GhostcrawlClient(token="gck_live_YOUR_KEY") as client:
158
189
  | Data extraction | `client.extract(url=…, schema=…)` | Structured JSON from any page |
159
190
  | Deep crawl | `client.crawl(url=…)` | Crawl a site depth-first |
160
191
  | URL map | `client.map(url=…)` | Discover all reachable URLs |
161
- | Crawl runs | `client.crawl_runs` | start, list, get, cancel |
192
+ | Crawl runs | `client.crawl_runs` | start (`wait=True`), wait, list, get, cancel |
162
193
  | Sessions | `client.sessions` | create, extend, release |
163
194
  | Profiles | `client.profiles` | list, get, create, update, delete |
164
195
  | Webhooks | `client.webhooks` | list, get, create, delete, rotate-secret |
@@ -0,0 +1,191 @@
1
+ # ghostcrawl — Python SDK
2
+
3
+ The official Python client for the [GhostCrawl](https://ghostcrawl.io) API. Collect web data at scale — scrape, crawl, search, extract structured data, manage browser sessions, and automate the full data-collection pipeline.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ pip install ghostcrawl
9
+ ```
10
+
11
+ Requires Python 3.10+. Runtime dependencies: `httpx>=0.28.1`.
12
+
13
+ > The client is **async** — every request method is a coroutine. Call them with
14
+ > `await` inside an `async` function and drive it with `asyncio.run(...)`.
15
+
16
+ ## Quickstart
17
+
18
+ ```python
19
+ import asyncio
20
+ from ghostcrawl import GhostcrawlClient
21
+
22
+ async def main():
23
+ # Reads GHOSTCRAWL_API_KEY from environment, or pass token= explicitly
24
+ async with GhostcrawlClient(token="gck_live_YOUR_KEY") as client:
25
+ # Scrape a URL
26
+ result = await client.scrape(url="https://example.com", format="markdown")
27
+ print(result["content"])
28
+
29
+ # Start a crawl and wait for it to finish — EVENT-DRIVEN: the server
30
+ # blocks until the run is terminal (completed/failed/cancelled) or the
31
+ # timeout elapses, then returns the run. No client-side poll loop.
32
+ run = await client.crawl_runs.start(
33
+ url="https://example.com", max_depth=2, max_pages=50,
34
+ wait=True, wait_timeout=300,
35
+ )
36
+ print(run["run_id"], run["status"])
37
+
38
+ # Already have a run_id? Long-poll it to completion the same way:
39
+ # run = await client.crawl_runs.wait(run_id, timeout=300)
40
+ # Or skip waiting entirely and get notified via a webhook (see Webhooks)
41
+ # by omitting wait= and registering a delivery URL with client.webhooks.
42
+
43
+ # Web search
44
+ results = await client.search(query="latest AI research", engine="google", limit=10)
45
+ for r in results["results"]:
46
+ print(r["title"], r["url"])
47
+
48
+ asyncio.run(main())
49
+ ```
50
+
51
+ ## Authentication
52
+
53
+ ```python
54
+ import os
55
+ from ghostcrawl import GhostcrawlClient
56
+
57
+ # Option 1: pass token directly
58
+ client = GhostcrawlClient(token="gck_live_YOUR_KEY")
59
+
60
+ # Option 2: set environment variable (recommended for production)
61
+ os.environ["GHOSTCRAWL_API_KEY"] = "gck_live_YOUR_KEY"
62
+ client = GhostcrawlClient()
63
+ ```
64
+
65
+ Every request sends `Authorization: Bearer <token>`. This is the only auth scheme the API accepts.
66
+
67
+ ## Extract structured data
68
+
69
+ ```python
70
+ import asyncio
71
+ from ghostcrawl import GhostcrawlClient
72
+
73
+ async def main():
74
+ async with GhostcrawlClient(token="gck_live_YOUR_KEY") as client:
75
+ # Define a schema and extract matching data
76
+ data = await client.extract(
77
+ url="https://example.com/product",
78
+ schema={
79
+ "type": "object",
80
+ "properties": {
81
+ "name": {"type": "string"},
82
+ "price": {"type": "number"},
83
+ "description": {"type": "string"},
84
+ },
85
+ },
86
+ )
87
+ print(data["name"], data["price"])
88
+
89
+ asyncio.run(main())
90
+ ```
91
+
92
+ ## Browser sessions
93
+
94
+ ```python
95
+ import asyncio
96
+ from ghostcrawl import GhostcrawlClient
97
+
98
+ async def main():
99
+ async with GhostcrawlClient(token="gck_live_YOUR_KEY") as client:
100
+ # Create a session
101
+ session = await client.sessions.create(profile_name="my-profile")
102
+ session_id = session["session_id"]
103
+
104
+ # Extend and release
105
+ await client.sessions.extend(session_id, duration_seconds=600)
106
+ await client.sessions.release(session_id)
107
+
108
+ asyncio.run(main())
109
+ ```
110
+
111
+ ## Error handling
112
+
113
+ ```python
114
+ import asyncio
115
+ from ghostcrawl import GhostcrawlClient, AuthenticationError, RateLimitError, APIError
116
+
117
+ async def main():
118
+ async with GhostcrawlClient(token="gck_live_YOUR_KEY") as client:
119
+ try:
120
+ result = await client.scrape(url="https://example.com")
121
+ except AuthenticationError:
122
+ print("Invalid API key — check your token")
123
+ except RateLimitError:
124
+ print("Rate limit reached — retry after a short delay")
125
+ except APIError as e:
126
+ print(f"Server error: {e.status_code}")
127
+
128
+ asyncio.run(main())
129
+ ```
130
+
131
+ ## Context manager
132
+
133
+ ```python
134
+ import asyncio
135
+ from ghostcrawl import GhostcrawlClient
136
+
137
+ async def main():
138
+ async with GhostcrawlClient(token="gck_live_YOUR_KEY") as client:
139
+ result = await client.scrape(url="https://example.com")
140
+ print(result)
141
+ # HTTP connection is closed automatically
142
+
143
+ asyncio.run(main())
144
+ ```
145
+
146
+ ## All resources
147
+
148
+ Every operation below is a coroutine — prefix each call with `await` inside an `async` function.
149
+
150
+ | Resource | Client attribute | Key operations |
151
+ |----------|-----------------|----------------|
152
+ | Scraping | `client.scrape(url=…)` | Render and return page content |
153
+ | Web search | `client.search(query=…)` | Search Google, Bing, DuckDuckGo |
154
+ | Data extraction | `client.extract(url=…, schema=…)` | Structured JSON from any page |
155
+ | Deep crawl | `client.crawl(url=…)` | Crawl a site depth-first |
156
+ | URL map | `client.map(url=…)` | Discover all reachable URLs |
157
+ | Crawl runs | `client.crawl_runs` | start (`wait=True`), wait, list, get, cancel |
158
+ | Sessions | `client.sessions` | create, extend, release |
159
+ | Profiles | `client.profiles` | list, get, create, update, delete |
160
+ | Webhooks | `client.webhooks` | list, get, create, delete, rotate-secret |
161
+ | Schedules | `client.schedules` | list, get, create, delete |
162
+ | Datasets | `client.datasets` | list, get, create, delete, append rows |
163
+ | Recordings | `client.recordings` | list, get, delete |
164
+ | Key-Value Store | `client.kv` | get, set, delete |
165
+ | Account | `client.me()` | Get account info and usage |
166
+
167
+ ## LangChain integration
168
+
169
+ ```bash
170
+ pip install ghostcrawl-langchain
171
+ ```
172
+
173
+ ```python
174
+ from ghostcrawl_langchain import GhostcrawlScrape, GhostcrawlSearch
175
+
176
+ scrape_tool = GhostcrawlScrape()
177
+ search_tool = GhostcrawlSearch()
178
+ ```
179
+
180
+ ## Self-hosted
181
+
182
+ ```python
183
+ client = GhostcrawlClient(
184
+ token="gck_live_YOUR_KEY",
185
+ base_url="http://localhost:8080", # your self-hosted instance
186
+ )
187
+ ```
188
+
189
+ ## License
190
+
191
+ Proprietary — GhostCrawl Software License. See [LICENSE](LICENSE).
@@ -8,7 +8,6 @@ from typing import Any, Optional, TYPE_CHECKING, Union
8
8
  if TYPE_CHECKING:
9
9
  from .audit.audit_request_builder import AuditRequestBuilder
10
10
  from .billing.billing_request_builder import BillingRequestBuilder
11
- from .binary.binary_request_builder import BinaryRequestBuilder
12
11
  from .budgets.budgets_request_builder import BudgetsRequestBuilder
13
12
  from .cdp.cdp_request_builder import CdpRequestBuilder
14
13
  from .contact.contact_request_builder import ContactRequestBuilder
@@ -69,15 +68,6 @@ class V1RequestBuilder(BaseRequestBuilder):
69
68
 
70
69
  return BillingRequestBuilder(self.request_adapter, self.path_parameters)
71
70
 
72
- @property
73
- def binary(self) -> BinaryRequestBuilder:
74
- """
75
- The binary property
76
- """
77
- from .binary.binary_request_builder import BinaryRequestBuilder
78
-
79
- return BinaryRequestBuilder(self.request_adapter, self.path_parameters)
80
-
81
71
  @property
82
72
  def budgets(self) -> BudgetsRequestBuilder:
83
73
  """
@@ -81,7 +81,20 @@ from .params import (
81
81
  )
82
82
  from .retry_policy import RetryPolicy, with_retries
83
83
 
84
+ # ---------------------------------------------------------------------------
85
+ # Package version — sourced from installed distribution metadata (single source
86
+ # of truth = pyproject.toml), so ``ghostcrawl.__version__`` never drifts from
87
+ # the published version. Falls back to "0.0.0" only for an uninstalled tree.
88
+ # ---------------------------------------------------------------------------
89
+ from importlib.metadata import version as _pkg_version, PackageNotFoundError
90
+
91
+ try:
92
+ __version__ = _pkg_version("ghostcrawl")
93
+ except PackageNotFoundError: # source tree not pip-installed
94
+ __version__ = "0.0.0"
95
+
84
96
  __all__ = [
97
+ "__version__",
85
98
  # Canonical client + aliases
86
99
  "GhostcrawlClient",
87
100
  "Ghostcrawl",
@@ -58,7 +58,7 @@ def _run(value: Any) -> Any:
58
58
  # Top-level app
59
59
  # ---------------------------------------------------------------------------
60
60
 
61
- __version__ = "2.2.3" # keep in sync with sdks/python/pyproject.toml (test_version_matches_pyproject guards drift)
61
+ __version__ = "2.3.0" # keep in sync with sdks/python/pyproject.toml (test_version_matches_pyproject guards drift)
62
62
 
63
63
 
64
64
  def _version_callback(value: bool) -> None: