ory-client 1.22.65 → 1.22.78

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 (957) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +3 -3
  3. data/README.md +24 -7
  4. data/docs/AccountExperienceConfiguration.md +2 -2
  5. data/docs/AddProjectToWorkspaceBody.md +1 -1
  6. data/docs/AddWorkspaceOrganizationDomainBody.md +18 -0
  7. data/docs/AiAssistantSessionToken.md +20 -0
  8. data/docs/ApiKeysApi.md +2 -2
  9. data/docs/AttributeFilter.md +1 -1
  10. data/docs/CreateProjectNormalizedPayload.md +20 -8
  11. data/docs/CreateRecoveryCodeForIdentityBody.md +1 -1
  12. data/docs/CreateRecoveryLinkForIdentityBody.md +1 -1
  13. data/docs/CreateSubscriptionBody.md +2 -2
  14. data/docs/CreateSubscriptionCommon.md +2 -2
  15. data/docs/CreateWorkspaceContactBody.md +26 -0
  16. data/docs/CreateWorkspaceSubscriptionBody.md +2 -2
  17. data/docs/CustomDomain.md +1 -1
  18. data/docs/DomainVerificationStatus.md +28 -0
  19. data/docs/ErrorOAuth2.md +1 -1
  20. data/docs/EventStream.md +5 -3
  21. data/docs/FeatureFlagsCatalogEntry.md +26 -0
  22. data/docs/FrontendApi.md +145 -16
  23. data/docs/GenericError.md +2 -2
  24. data/docs/IdentityApi.md +10 -10
  25. data/docs/IdentityCredentials.md +1 -1
  26. data/docs/JwkApi.md +5 -5
  27. data/docs/KeysetPaginationResponseHeaders.md +1 -1
  28. data/docs/ListWorkspaceContacts.md +22 -0
  29. data/docs/LoginFlow.md +2 -2
  30. data/docs/ManageSessionsBody.md +1 -1
  31. data/docs/Message.md +1 -1
  32. data/docs/NormalizedProjectRevision.md +18 -6
  33. data/docs/NormalizedProjectRevisionCourierChannel.md +1 -1
  34. data/docs/NormalizedProjectRevisionIdentitySchema.md +1 -1
  35. data/docs/NormalizedProjectRevisionSAMLProvider.md +3 -1
  36. data/docs/NormalizedProjectRevisionThirdPartyProvider.md +3 -3
  37. data/docs/NormalizedProjectRevisionTokenizerTemplate.md +1 -1
  38. data/docs/OAuth2Api.md +10 -6
  39. data/docs/OAuth2Client.md +3 -3
  40. data/docs/OAuth2ConsentRequestOpenIDConnectContext.md +1 -1
  41. data/docs/OidcApi.md +1 -1
  42. data/docs/OidcConfiguration.md +1 -1
  43. data/docs/OplParseError.md +22 -0
  44. data/docs/OplSourcePosition.md +20 -0
  45. data/docs/OplValidateResult.md +18 -0
  46. data/docs/PatchIdentitiesBody.md +3 -1
  47. data/docs/PatchWorkspaceContactBody.md +26 -0
  48. data/docs/ProjectApi.md +79 -5
  49. data/docs/Provider.md +1 -1
  50. data/docs/QuotaUsage.md +1 -1
  51. data/docs/RateLimitPolicy.md +2 -2
  52. data/docs/RecoveryFlow.md +1 -1
  53. data/docs/RegistrationFlow.md +2 -2
  54. data/docs/RotateOAuth2ClientSecretBody.md +18 -0
  55. data/docs/SessionAuthenticationMethod.md +3 -1
  56. data/docs/SettingsFlow.md +1 -1
  57. data/docs/TokenPaginationHeaders.md +2 -2
  58. data/docs/TokenPaginationResponseHeaders.md +1 -1
  59. data/docs/UpdateLoginFlowWithOidcMethod.md +2 -2
  60. data/docs/UpdateRegistrationFlowWithOidcMethod.md +2 -2
  61. data/docs/UpdateSettingsFlowWithOidcMethod.md +7 -5
  62. data/docs/UpdateSettingsFlowWithSamlMethod.md +4 -4
  63. data/docs/UpdateSubscriptionBody.md +1 -1
  64. data/docs/VerificationFlow.md +1 -1
  65. data/docs/WebAuthnRelatedOrigins.md +18 -0
  66. data/docs/WorkspaceContact.md +32 -0
  67. data/docs/WorkspaceContactRecipient.md +22 -0
  68. data/docs/WorkspaceContactRecipientInput.md +20 -0
  69. data/docs/WorkspaceOrganization.md +2 -0
  70. data/lib/ory-client/api/api_keys_api.rb +5 -5
  71. data/lib/ory-client/api/courier_api.rb +1 -1
  72. data/lib/ory-client/api/elements_api.rb +1 -1
  73. data/lib/ory-client/api/events_api.rb +1 -1
  74. data/lib/ory-client/api/frontend_api.rb +161 -34
  75. data/lib/ory-client/api/identity_api.rb +15 -15
  76. data/lib/ory-client/api/jwk_api.rb +11 -11
  77. data/lib/ory-client/api/metadata_api.rb +1 -1
  78. data/lib/ory-client/api/o_auth2_api.rb +11 -4
  79. data/lib/ory-client/api/oidc_api.rb +3 -3
  80. data/lib/ory-client/api/permission_api.rb +1 -1
  81. data/lib/ory-client/api/project_api.rb +75 -5
  82. data/lib/ory-client/api/relationship_api.rb +1 -1
  83. data/lib/ory-client/api/wellknown_api.rb +1 -1
  84. data/lib/ory-client/api/workspace_api.rb +1 -1
  85. data/lib/ory-client/api_client.rb +2 -2
  86. data/lib/ory-client/api_error.rb +1 -1
  87. data/lib/ory-client/api_model_base.rb +1 -1
  88. data/lib/ory-client/configuration.rb +7 -1
  89. data/lib/ory-client/models/accept_device_user_code_request.rb +1 -1
  90. data/lib/ory-client/models/accept_o_auth2_consent_request.rb +1 -1
  91. data/lib/ory-client/models/accept_o_auth2_consent_request_session.rb +1 -1
  92. data/lib/ory-client/models/accept_o_auth2_login_request.rb +1 -1
  93. data/lib/ory-client/models/account_experience_colors.rb +1 -1
  94. data/lib/ory-client/models/account_experience_configuration.rb +3 -2
  95. data/lib/ory-client/models/add_project_to_workspace_body.rb +2 -2
  96. data/lib/ory-client/models/add_workspace_organization_domain_body.rb +165 -0
  97. data/lib/ory-client/models/admin_identity_import_credentials_lookup_secret.rb +1 -1
  98. data/lib/ory-client/models/admin_identity_import_credentials_lookup_secret_config.rb +1 -1
  99. data/lib/ory-client/models/admin_revoke_imported_api_key_body.rb +1 -1
  100. data/lib/ory-client/models/admin_revoke_issued_api_key_body.rb +1 -1
  101. data/lib/ory-client/models/admin_rotate_issued_api_key_body.rb +1 -1
  102. data/lib/ory-client/models/admin_update_imported_api_key_request.rb +1 -1
  103. data/lib/ory-client/models/admin_update_issued_api_key_request.rb +1 -1
  104. data/lib/ory-client/models/ai_assistant_session_token.rb +193 -0
  105. data/lib/ory-client/models/any.rb +1 -1
  106. data/lib/ory-client/models/attribute.rb +1 -1
  107. data/lib/ory-client/models/attribute_filter.rb +2 -1
  108. data/lib/ory-client/models/attributes_count_datapoint.rb +1 -1
  109. data/lib/ory-client/models/authenticator_assurance_level.rb +1 -1
  110. data/lib/ory-client/models/basic_organization.rb +1 -1
  111. data/lib/ory-client/models/batch_check_permission_body.rb +1 -1
  112. data/lib/ory-client/models/batch_check_permission_result.rb +1 -1
  113. data/lib/ory-client/models/batch_create_imported_api_keys_error_code.rb +1 -1
  114. data/lib/ory-client/models/batch_create_imported_api_keys_request.rb +1 -1
  115. data/lib/ory-client/models/batch_create_imported_api_keys_response.rb +1 -1
  116. data/lib/ory-client/models/batch_create_imported_api_keys_result.rb +1 -1
  117. data/lib/ory-client/models/batch_patch_identities_response.rb +1 -1
  118. data/lib/ory-client/models/batch_verify_api_keys_request.rb +1 -1
  119. data/lib/ory-client/models/batch_verify_api_keys_response.rb +1 -1
  120. data/lib/ory-client/models/billing_period_bucket.rb +1 -1
  121. data/lib/ory-client/models/check_opl_syntax_result.rb +1 -1
  122. data/lib/ory-client/models/check_permission_result.rb +1 -1
  123. data/lib/ory-client/models/check_permission_result_with_error.rb +1 -1
  124. data/lib/ory-client/models/cloud_account.rb +1 -1
  125. data/lib/ory-client/models/continue_with.rb +1 -1
  126. data/lib/ory-client/models/continue_with_device_authn_pin_entry_ui.rb +1 -1
  127. data/lib/ory-client/models/continue_with_device_authn_pin_entry_ui_data.rb +1 -1
  128. data/lib/ory-client/models/continue_with_recovery_ui.rb +1 -1
  129. data/lib/ory-client/models/continue_with_recovery_ui_flow.rb +1 -1
  130. data/lib/ory-client/models/continue_with_redirect_browser_to.rb +1 -1
  131. data/lib/ory-client/models/continue_with_set_ory_session_token.rb +1 -1
  132. data/lib/ory-client/models/continue_with_settings_ui.rb +1 -1
  133. data/lib/ory-client/models/continue_with_settings_ui_flow.rb +1 -1
  134. data/lib/ory-client/models/continue_with_verification_ui.rb +1 -1
  135. data/lib/ory-client/models/continue_with_verification_ui_flow.rb +1 -1
  136. data/lib/ory-client/models/courier_message_status.rb +1 -1
  137. data/lib/ory-client/models/courier_message_type.rb +3 -3
  138. data/lib/ory-client/models/create_custom_domain_body.rb +1 -1
  139. data/lib/ory-client/models/create_event_stream_body.rb +1 -1
  140. data/lib/ory-client/models/create_fedcm_flow_response.rb +1 -1
  141. data/lib/ory-client/models/create_identity_body.rb +1 -1
  142. data/lib/ory-client/models/create_invite_response.rb +1 -1
  143. data/lib/ory-client/models/create_json_web_key_set.rb +1 -1
  144. data/lib/ory-client/models/create_onboarding_link_response.rb +1 -1
  145. data/lib/ory-client/models/create_organization_onboarding_portal_link_body.rb +2 -1
  146. data/lib/ory-client/models/create_project_api_key_body.rb +2 -1
  147. data/lib/ory-client/models/create_project_body.rb +1 -1
  148. data/lib/ory-client/models/create_project_branding.rb +1 -1
  149. data/lib/ory-client/models/create_project_member_invite_body.rb +1 -1
  150. data/lib/ory-client/models/create_project_normalized_payload.rb +72 -10
  151. data/lib/ory-client/models/create_recovery_code_for_identity_body.rb +1 -1
  152. data/lib/ory-client/models/create_recovery_link_for_identity_body.rb +1 -1
  153. data/lib/ory-client/models/create_relationship_body.rb +1 -1
  154. data/lib/ory-client/models/create_subscription_body.rb +3 -3
  155. data/lib/ory-client/models/create_subscription_common.rb +3 -3
  156. data/lib/ory-client/models/create_test_login_flow_body.rb +1 -1
  157. data/lib/ory-client/models/create_test_login_flow_from_onboarding_portal_link_body.rb +1 -1
  158. data/lib/ory-client/models/create_verifiable_credential_request_body.rb +1 -1
  159. data/lib/ory-client/models/create_workspace_api_key_body.rb +2 -1
  160. data/lib/ory-client/models/create_workspace_body.rb +1 -1
  161. data/lib/ory-client/models/create_workspace_contact_body.rb +272 -0
  162. data/lib/ory-client/models/create_workspace_member_invite_body.rb +1 -1
  163. data/lib/ory-client/models/create_workspace_organization_body.rb +1 -1
  164. data/lib/ory-client/models/create_workspace_subscription_body.rb +3 -3
  165. data/lib/ory-client/models/credential_supported_draft00.rb +1 -1
  166. data/lib/ory-client/models/custom_domain.rb +2 -1
  167. data/lib/ory-client/models/customer_portal_availability.rb +1 -1
  168. data/lib/ory-client/models/delete_my_sessions_count.rb +1 -1
  169. data/lib/ory-client/models/derive_token_request.rb +1 -1
  170. data/lib/ory-client/models/derive_token_response.rb +1 -1
  171. data/lib/ory-client/models/device_authn_android_authorization_list.rb +1 -1
  172. data/lib/ory-client/models/device_authn_android_key_description.rb +1 -1
  173. data/lib/ory-client/models/device_authn_android_root_of_trust.rb +1 -1
  174. data/lib/ory-client/models/device_authn_attestation.rb +1 -1
  175. data/lib/ory-client/models/device_authn_ios_att_stmt.rb +1 -1
  176. data/lib/ory-client/models/device_authn_ios_attestation.rb +1 -1
  177. data/lib/ory-client/models/device_authn_key.rb +1 -1
  178. data/lib/ory-client/models/device_authorization.rb +1 -1
  179. data/lib/ory-client/models/device_type.rb +1 -1
  180. data/lib/ory-client/models/device_user_auth_request.rb +1 -1
  181. data/lib/ory-client/models/domain_verification_status.rb +296 -0
  182. data/lib/ory-client/models/elements_configuration.rb +1 -1
  183. data/lib/ory-client/models/email_template_data.rb +1 -1
  184. data/lib/ory-client/models/email_template_data_body.rb +1 -1
  185. data/lib/ory-client/models/error_authenticator_assurance_level_not_satisfied.rb +1 -1
  186. data/lib/ory-client/models/error_browser_location_change_required.rb +1 -1
  187. data/lib/ory-client/models/error_flow_replaced.rb +1 -1
  188. data/lib/ory-client/models/error_generic.rb +1 -1
  189. data/lib/ory-client/models/error_o_auth2.rb +1 -1
  190. data/lib/ory-client/models/event_stream.rb +16 -2
  191. data/lib/ory-client/models/expanded_permission_tree.rb +1 -1
  192. data/lib/ory-client/models/feature_flags_catalog_entry.rb +256 -0
  193. data/lib/ory-client/models/flow_error.rb +1 -1
  194. data/lib/ory-client/models/generic_error.rb +1 -1
  195. data/lib/ory-client/models/generic_error_content.rb +1 -1
  196. data/lib/ory-client/models/generic_oidc_provider.rb +1 -1
  197. data/lib/ory-client/models/generic_usage.rb +1 -1
  198. data/lib/ory-client/models/get_attributes_count.rb +1 -1
  199. data/lib/ory-client/models/get_jwks_response.rb +1 -1
  200. data/lib/ory-client/models/get_jwks_response_jwks.rb +1 -1
  201. data/lib/ory-client/models/get_jwks_response_jwks_keys_inner.rb +1 -1
  202. data/lib/ory-client/models/get_managed_identity_schema_location.rb +1 -1
  203. data/lib/ory-client/models/get_metrics_count.rb +1 -1
  204. data/lib/ory-client/models/get_metrics_event_attributes.rb +1 -1
  205. data/lib/ory-client/models/get_metrics_event_types.rb +1 -1
  206. data/lib/ory-client/models/get_organization_response.rb +1 -1
  207. data/lib/ory-client/models/get_organizations_by_hostname_response.rb +1 -1
  208. data/lib/ory-client/models/get_project_events.rb +1 -1
  209. data/lib/ory-client/models/get_project_events_body.rb +1 -1
  210. data/lib/ory-client/models/get_project_metrics.rb +1 -1
  211. data/lib/ory-client/models/get_session_activity.rb +1 -1
  212. data/lib/ory-client/models/get_version200_response.rb +1 -1
  213. data/lib/ory-client/models/health_not_ready_status.rb +1 -1
  214. data/lib/ory-client/models/health_status.rb +1 -1
  215. data/lib/ory-client/models/identity.rb +1 -1
  216. data/lib/ory-client/models/identity_credentials.rb +2 -2
  217. data/lib/ory-client/models/identity_credentials_code.rb +1 -1
  218. data/lib/ory-client/models/identity_credentials_code_address.rb +1 -1
  219. data/lib/ory-client/models/identity_credentials_lookup_secret_code.rb +1 -1
  220. data/lib/ory-client/models/identity_credentials_oidc.rb +1 -1
  221. data/lib/ory-client/models/identity_credentials_oidc_provider.rb +1 -1
  222. data/lib/ory-client/models/identity_credentials_password.rb +1 -1
  223. data/lib/ory-client/models/identity_credentials_web_authn.rb +1 -1
  224. data/lib/ory-client/models/identity_credentials_web_authn_attestation.rb +1 -1
  225. data/lib/ory-client/models/identity_credentials_web_authn_authenticator.rb +1 -1
  226. data/lib/ory-client/models/identity_credentials_web_authn_flags.rb +1 -1
  227. data/lib/ory-client/models/identity_patch.rb +1 -1
  228. data/lib/ory-client/models/identity_patch_response.rb +1 -1
  229. data/lib/ory-client/models/identity_schema_container.rb +1 -1
  230. data/lib/ory-client/models/identity_schema_preset.rb +1 -1
  231. data/lib/ory-client/models/identity_with_credentials.rb +1 -1
  232. data/lib/ory-client/models/identity_with_credentials_oidc.rb +1 -1
  233. data/lib/ory-client/models/identity_with_credentials_oidc_config.rb +1 -1
  234. data/lib/ory-client/models/identity_with_credentials_oidc_config_provider.rb +1 -1
  235. data/lib/ory-client/models/identity_with_credentials_passkey.rb +1 -1
  236. data/lib/ory-client/models/identity_with_credentials_passkey_config.rb +1 -1
  237. data/lib/ory-client/models/identity_with_credentials_password.rb +1 -1
  238. data/lib/ory-client/models/identity_with_credentials_password_config.rb +1 -1
  239. data/lib/ory-client/models/identity_with_credentials_saml.rb +1 -1
  240. data/lib/ory-client/models/identity_with_credentials_saml_config.rb +1 -1
  241. data/lib/ory-client/models/identity_with_credentials_saml_config_provider.rb +1 -1
  242. data/lib/ory-client/models/identity_with_credentials_totp.rb +1 -1
  243. data/lib/ory-client/models/identity_with_credentials_totp_config.rb +1 -1
  244. data/lib/ory-client/models/identity_with_credentials_web_authn.rb +1 -1
  245. data/lib/ory-client/models/identity_with_credentials_web_authn_config.rb +1 -1
  246. data/lib/ory-client/models/import_api_key_request.rb +1 -1
  247. data/lib/ory-client/models/imported_api_key.rb +1 -1
  248. data/lib/ory-client/models/internal_get_project_branding_body.rb +1 -1
  249. data/lib/ory-client/models/internal_is_ax_welcome_screen_enabled_for_project_body.rb +1 -1
  250. data/lib/ory-client/models/internal_is_owner_for_project_by_slug.rb +1 -1
  251. data/lib/ory-client/models/internal_is_owner_for_project_by_slug_body.rb +3 -3
  252. data/lib/ory-client/models/introspected_o_auth2_token.rb +1 -1
  253. data/lib/ory-client/models/invite_token_body.rb +1 -1
  254. data/lib/ory-client/models/invoice.rb +2 -16
  255. data/lib/ory-client/models/invoice_data_v1.rb +1 -1
  256. data/lib/ory-client/models/ip_restriction.rb +1 -1
  257. data/lib/ory-client/models/is_owner_for_project_by_slug.rb +1 -1
  258. data/lib/ory-client/models/issue_api_key_request.rb +1 -1
  259. data/lib/ory-client/models/issue_api_key_response.rb +1 -1
  260. data/lib/ory-client/models/issued_api_key.rb +1 -1
  261. data/lib/ory-client/models/json_patch.rb +1 -1
  262. data/lib/ory-client/models/json_web_key.rb +1 -1
  263. data/lib/ory-client/models/json_web_key_set.rb +1 -1
  264. data/lib/ory-client/models/keto_namespace.rb +1 -1
  265. data/lib/ory-client/models/key_state.rb +1 -1
  266. data/lib/ory-client/models/key_status.rb +1 -1
  267. data/lib/ory-client/models/key_visibility.rb +1 -1
  268. data/lib/ory-client/models/keyset_pagination_request_parameters.rb +1 -1
  269. data/lib/ory-client/models/keyset_pagination_response_headers.rb +2 -2
  270. data/lib/ory-client/models/line_item_v1.rb +1 -1
  271. data/lib/ory-client/models/list_event_streams.rb +1 -1
  272. data/lib/ory-client/models/list_imported_api_keys_response.rb +1 -1
  273. data/lib/ory-client/models/list_invoices_response.rb +1 -1
  274. data/lib/ory-client/models/list_issued_api_keys_response.rb +1 -1
  275. data/lib/ory-client/models/list_organizations_response.rb +1 -1
  276. data/lib/ory-client/models/list_workspace_contacts.rb +218 -0
  277. data/lib/ory-client/models/list_workspace_projects.rb +1 -1
  278. data/lib/ory-client/models/list_workspaces.rb +1 -1
  279. data/lib/ory-client/models/login_flow.rb +18 -5
  280. data/lib/ory-client/models/login_flow_state.rb +1 -1
  281. data/lib/ory-client/models/login_flow_test_context.rb +1 -1
  282. data/lib/ory-client/models/login_flow_test_debug_payload.rb +1 -1
  283. data/lib/ory-client/models/login_flow_test_schema_validation_error.rb +1 -1
  284. data/lib/ory-client/models/login_flow_test_step_error.rb +1 -1
  285. data/lib/ory-client/models/logout_flow.rb +1 -1
  286. data/lib/ory-client/models/manage_sessions_body.rb +2 -2
  287. data/lib/ory-client/models/manage_sessions_response.rb +1 -1
  288. data/lib/ory-client/models/managed_identity_schema.rb +1 -1
  289. data/lib/ory-client/models/managed_identity_schema_validation_result.rb +1 -1
  290. data/lib/ory-client/models/member_invite.rb +1 -1
  291. data/lib/ory-client/models/message.rb +2 -2
  292. data/lib/ory-client/models/message_dispatch.rb +1 -1
  293. data/lib/ory-client/models/metrics_datapoint.rb +1 -1
  294. data/lib/ory-client/models/namespace.rb +1 -1
  295. data/lib/ory-client/models/needs_privileged_session_error.rb +1 -1
  296. data/lib/ory-client/models/normalized_project.rb +1 -1
  297. data/lib/ory-client/models/normalized_project_revision.rb +70 -8
  298. data/lib/ory-client/models/normalized_project_revision_courier_channel.rb +2 -2
  299. data/lib/ory-client/models/normalized_project_revision_hook.rb +1 -1
  300. data/lib/ory-client/models/normalized_project_revision_identity_schema.rb +1 -1
  301. data/lib/ory-client/models/normalized_project_revision_saml_provider.rb +13 -3
  302. data/lib/ory-client/models/normalized_project_revision_scim_client.rb +1 -1
  303. data/lib/ory-client/models/normalized_project_revision_third_party_provider.rb +4 -4
  304. data/lib/ory-client/models/normalized_project_revision_tokenizer_template.rb +2 -2
  305. data/lib/ory-client/models/null_value.rb +1 -1
  306. data/lib/ory-client/models/o_auth2_client.rb +4 -4
  307. data/lib/ory-client/models/o_auth2_client_token_lifespans.rb +1 -1
  308. data/lib/ory-client/models/o_auth2_consent_request.rb +1 -1
  309. data/lib/ory-client/models/o_auth2_consent_request_open_id_connect_context.rb +2 -2
  310. data/lib/ory-client/models/o_auth2_consent_session.rb +1 -1
  311. data/lib/ory-client/models/o_auth2_login_request.rb +1 -1
  312. data/lib/ory-client/models/o_auth2_logout_request.rb +1 -1
  313. data/lib/ory-client/models/o_auth2_redirect_to.rb +1 -1
  314. data/lib/ory-client/models/o_auth2_token_exchange.rb +1 -1
  315. data/lib/ory-client/models/oidc_configuration.rb +1 -1
  316. data/lib/ory-client/models/oidc_user_info.rb +1 -1
  317. data/lib/ory-client/models/onboarding_portal_link.rb +1 -1
  318. data/lib/ory-client/models/onboarding_portal_organization.rb +1 -1
  319. data/lib/ory-client/models/onboarding_portal_test_login_flow.rb +1 -1
  320. data/lib/ory-client/models/opl_parse_error.rb +165 -0
  321. data/lib/ory-client/models/opl_source_position.rb +156 -0
  322. data/lib/ory-client/models/opl_validate_result.rb +149 -0
  323. data/lib/ory-client/models/organization.rb +1 -1
  324. data/lib/ory-client/models/organization_body.rb +1 -1
  325. data/lib/ory-client/models/organization_by_hostname.rb +1 -1
  326. data/lib/ory-client/models/organization_onboarding_portal_links_response.rb +1 -1
  327. data/lib/ory-client/models/parse_error.rb +1 -1
  328. data/lib/ory-client/models/patch_identities_body.rb +15 -5
  329. data/lib/ory-client/models/patch_workspace_contact_body.rb +183 -0
  330. data/lib/ory-client/models/patch_workspace_member_body.rb +1 -1
  331. data/lib/ory-client/models/perform_native_logout_body.rb +1 -1
  332. data/lib/ory-client/models/permissions_on_workspace.rb +1 -1
  333. data/lib/ory-client/models/pin_config.rb +1 -1
  334. data/lib/ory-client/models/plan_details.rb +1 -1
  335. data/lib/ory-client/models/post_check_permission_body.rb +1 -1
  336. data/lib/ory-client/models/post_check_permission_or_error_body.rb +1 -1
  337. data/lib/ory-client/models/project.rb +1 -1
  338. data/lib/ory-client/models/project_api_key.rb +2 -1
  339. data/lib/ory-client/models/project_branding.rb +1 -1
  340. data/lib/ory-client/models/project_branding_colors.rb +1 -1
  341. data/lib/ory-client/models/project_branding_theme.rb +1 -1
  342. data/lib/ory-client/models/project_cors.rb +1 -1
  343. data/lib/ory-client/models/project_events_datapoint.rb +1 -1
  344. data/lib/ory-client/models/project_host.rb +1 -1
  345. data/lib/ory-client/models/project_member.rb +1 -1
  346. data/lib/ory-client/models/project_metadata.rb +1 -1
  347. data/lib/ory-client/models/project_service_account_experience.rb +1 -1
  348. data/lib/ory-client/models/project_service_identity.rb +1 -1
  349. data/lib/ory-client/models/project_service_o_auth2.rb +1 -1
  350. data/lib/ory-client/models/project_service_permission.rb +1 -1
  351. data/lib/ory-client/models/project_service_talos.rb +1 -1
  352. data/lib/ory-client/models/project_services.rb +1 -1
  353. data/lib/ory-client/models/provider.rb +2 -2
  354. data/lib/ory-client/models/quota_usage.rb +4 -4
  355. data/lib/ory-client/models/rate_limit_policy.rb +3 -2
  356. data/lib/ory-client/models/recovery_code_for_identity.rb +1 -1
  357. data/lib/ory-client/models/recovery_flow.rb +39 -4
  358. data/lib/ory-client/models/recovery_flow_state.rb +6 -2
  359. data/lib/ory-client/models/recovery_identity_address.rb +1 -1
  360. data/lib/ory-client/models/recovery_link_for_identity.rb +1 -1
  361. data/lib/ory-client/models/registration_flow.rb +18 -5
  362. data/lib/ory-client/models/registration_flow_state.rb +1 -1
  363. data/lib/ory-client/models/reject_o_auth2_request.rb +1 -1
  364. data/lib/ory-client/models/relation_query.rb +1 -1
  365. data/lib/ory-client/models/relationship.rb +1 -1
  366. data/lib/ory-client/models/relationship_namespaces.rb +1 -1
  367. data/lib/ory-client/models/relationship_patch.rb +1 -1
  368. data/lib/ory-client/models/relationships.rb +1 -1
  369. data/lib/ory-client/models/revision_account_experience_custom_translation.rb +1 -1
  370. data/lib/ory-client/models/revocation_reason.rb +1 -1
  371. data/lib/ory-client/models/rfc6749_error_json.rb +1 -1
  372. data/lib/ory-client/models/rotate_issued_api_key_response.rb +1 -1
  373. data/lib/ory-client/models/rotate_o_auth2_client_secret_body.rb +149 -0
  374. data/lib/ory-client/models/rotate_talos_key_body.rb +1 -1
  375. data/lib/ory-client/models/schema_patch.rb +1 -1
  376. data/lib/ory-client/models/self_revoke_api_key_request.rb +1 -1
  377. data/lib/ory-client/models/self_service_flow_expired_error.rb +1 -1
  378. data/lib/ory-client/models/session.rb +1 -1
  379. data/lib/ory-client/models/session_activity_datapoint.rb +1 -1
  380. data/lib/ory-client/models/session_authentication_method.rb +12 -3
  381. data/lib/ory-client/models/session_device.rb +1 -1
  382. data/lib/ory-client/models/set_custom_domain_body.rb +1 -1
  383. data/lib/ory-client/models/set_event_stream_body.rb +1 -1
  384. data/lib/ory-client/models/set_organization_from_onboarding_portal_link_body.rb +1 -1
  385. data/lib/ory-client/models/set_project.rb +1 -1
  386. data/lib/ory-client/models/set_project_branding_theme_body.rb +1 -1
  387. data/lib/ory-client/models/settings_flow.rb +39 -4
  388. data/lib/ory-client/models/settings_flow_state.rb +1 -1
  389. data/lib/ory-client/models/source_position.rb +1 -1
  390. data/lib/ory-client/models/status.rb +1 -1
  391. data/lib/ory-client/models/subject_set.rb +1 -1
  392. data/lib/ory-client/models/subscription.rb +3 -1
  393. data/lib/ory-client/models/successful_code_exchange_response.rb +1 -1
  394. data/lib/ory-client/models/successful_native_login.rb +1 -1
  395. data/lib/ory-client/models/successful_native_registration.rb +1 -1
  396. data/lib/ory-client/models/successful_project_update.rb +1 -1
  397. data/lib/ory-client/models/talos_retired_value.rb +1 -1
  398. data/lib/ory-client/models/tax_line_item.rb +1 -1
  399. data/lib/ory-client/models/time_interval.rb +1 -1
  400. data/lib/ory-client/models/token.rb +1 -1
  401. data/lib/ory-client/models/token_algorithm.rb +1 -1
  402. data/lib/ory-client/models/token_pagination.rb +1 -1
  403. data/lib/ory-client/models/token_pagination_headers.rb +3 -3
  404. data/lib/ory-client/models/token_pagination_request_parameters.rb +1 -1
  405. data/lib/ory-client/models/token_pagination_response_headers.rb +2 -2
  406. data/lib/ory-client/models/trust_o_auth2_jwt_grant_issuer.rb +1 -1
  407. data/lib/ory-client/models/trusted_o_auth2_jwt_grant_issuer.rb +1 -1
  408. data/lib/ory-client/models/trusted_o_auth2_jwt_grant_json_web_key.rb +1 -1
  409. data/lib/ory-client/models/ui_container.rb +1 -1
  410. data/lib/ory-client/models/ui_node.rb +1 -1
  411. data/lib/ory-client/models/ui_node_anchor_attributes.rb +1 -1
  412. data/lib/ory-client/models/ui_node_attributes.rb +1 -1
  413. data/lib/ory-client/models/ui_node_division_attributes.rb +1 -1
  414. data/lib/ory-client/models/ui_node_image_attributes.rb +1 -1
  415. data/lib/ory-client/models/ui_node_input_attributes.rb +1 -1
  416. data/lib/ory-client/models/ui_node_input_attributes_option.rb +1 -1
  417. data/lib/ory-client/models/ui_node_meta.rb +1 -1
  418. data/lib/ory-client/models/ui_node_script_attributes.rb +1 -1
  419. data/lib/ory-client/models/ui_node_text_attributes.rb +1 -1
  420. data/lib/ory-client/models/ui_text.rb +1 -1
  421. data/lib/ory-client/models/update_fedcm_flow_body.rb +1 -1
  422. data/lib/ory-client/models/update_identity_body.rb +1 -1
  423. data/lib/ory-client/models/update_login_flow_body.rb +1 -1
  424. data/lib/ory-client/models/update_login_flow_with_code_method.rb +1 -1
  425. data/lib/ory-client/models/update_login_flow_with_device_authn_method.rb +1 -1
  426. data/lib/ory-client/models/update_login_flow_with_identifier_first_method.rb +1 -1
  427. data/lib/ory-client/models/update_login_flow_with_lookup_secret_method.rb +1 -1
  428. data/lib/ory-client/models/update_login_flow_with_oidc_method.rb +3 -3
  429. data/lib/ory-client/models/update_login_flow_with_passkey_method.rb +1 -1
  430. data/lib/ory-client/models/update_login_flow_with_password_method.rb +1 -1
  431. data/lib/ory-client/models/update_login_flow_with_saml_method.rb +1 -1
  432. data/lib/ory-client/models/update_login_flow_with_totp_method.rb +1 -1
  433. data/lib/ory-client/models/update_login_flow_with_web_authn_method.rb +1 -1
  434. data/lib/ory-client/models/update_organization_onboarding_portal_link_body.rb +2 -1
  435. data/lib/ory-client/models/update_recovery_flow_body.rb +1 -1
  436. data/lib/ory-client/models/update_recovery_flow_with_code_method.rb +1 -1
  437. data/lib/ory-client/models/update_recovery_flow_with_link_method.rb +1 -1
  438. data/lib/ory-client/models/update_registration_flow_body.rb +1 -1
  439. data/lib/ory-client/models/update_registration_flow_with_code_method.rb +1 -1
  440. data/lib/ory-client/models/update_registration_flow_with_oidc_method.rb +3 -3
  441. data/lib/ory-client/models/update_registration_flow_with_passkey_method.rb +1 -1
  442. data/lib/ory-client/models/update_registration_flow_with_password_method.rb +1 -1
  443. data/lib/ory-client/models/update_registration_flow_with_profile_method.rb +1 -1
  444. data/lib/ory-client/models/update_registration_flow_with_saml_method.rb +1 -1
  445. data/lib/ory-client/models/update_registration_flow_with_web_authn_method.rb +1 -1
  446. data/lib/ory-client/models/update_settings_flow_body.rb +1 -1
  447. data/lib/ory-client/models/update_settings_flow_with_device_authn_method.rb +1 -1
  448. data/lib/ory-client/models/update_settings_flow_with_device_authn_method_register.rb +1 -1
  449. data/lib/ory-client/models/update_settings_flow_with_device_authn_method_rotate_secret.rb +1 -1
  450. data/lib/ory-client/models/update_settings_flow_with_lookup_method.rb +1 -1
  451. data/lib/ory-client/models/update_settings_flow_with_oidc_method.rb +17 -7
  452. data/lib/ory-client/models/update_settings_flow_with_passkey_method.rb +1 -1
  453. data/lib/ory-client/models/update_settings_flow_with_password_method.rb +1 -1
  454. data/lib/ory-client/models/update_settings_flow_with_profile_method.rb +1 -1
  455. data/lib/ory-client/models/update_settings_flow_with_saml_method.rb +5 -5
  456. data/lib/ory-client/models/update_settings_flow_with_totp_method.rb +1 -1
  457. data/lib/ory-client/models/update_settings_flow_with_web_authn_method.rb +1 -1
  458. data/lib/ory-client/models/update_subscription_body.rb +2 -2
  459. data/lib/ory-client/models/update_verification_flow_body.rb +1 -1
  460. data/lib/ory-client/models/update_verification_flow_with_code_method.rb +1 -1
  461. data/lib/ory-client/models/update_verification_flow_with_link_method.rb +1 -1
  462. data/lib/ory-client/models/update_workspace_body.rb +1 -1
  463. data/lib/ory-client/models/update_workspace_organization_body.rb +1 -1
  464. data/lib/ory-client/models/usage.rb +1 -1
  465. data/lib/ory-client/models/user_verification.rb +1 -1
  466. data/lib/ory-client/models/validate_base_url_rewrite_request.rb +1 -1
  467. data/lib/ory-client/models/validate_base_url_rewrite_response.rb +1 -1
  468. data/lib/ory-client/models/verifiable_credential_priming_response.rb +1 -1
  469. data/lib/ory-client/models/verifiable_credential_proof.rb +1 -1
  470. data/lib/ory-client/models/verifiable_credential_response.rb +1 -1
  471. data/lib/ory-client/models/verifiable_identity_address.rb +1 -1
  472. data/lib/ory-client/models/verification_error_code.rb +1 -1
  473. data/lib/ory-client/models/verification_flow.rb +39 -4
  474. data/lib/ory-client/models/verification_flow_state.rb +1 -1
  475. data/lib/ory-client/models/verify_api_key_request.rb +1 -1
  476. data/lib/ory-client/models/verify_api_key_response.rb +1 -1
  477. data/lib/ory-client/models/verify_user_code_request.rb +1 -1
  478. data/lib/ory-client/models/version.rb +1 -1
  479. data/lib/ory-client/models/warning.rb +1 -1
  480. data/lib/ory-client/models/web_authn_related_origins.rb +168 -0
  481. data/lib/ory-client/models/workspace.rb +1 -1
  482. data/lib/ory-client/models/workspace_api_key.rb +2 -1
  483. data/lib/ory-client/models/workspace_contact.rb +210 -0
  484. data/lib/ory-client/models/{plan.rb → workspace_contact_recipient.rb} +26 -53
  485. data/lib/ory-client/models/workspace_contact_recipient_input.rb +158 -0
  486. data/lib/ory-client/models/workspace_organization.rb +14 -2
  487. data/lib/ory-client/version.rb +2 -2
  488. data/lib/ory-client.rb +16 -2
  489. data/ory-client.gemspec +1 -1
  490. data/spec/api/api_keys_api_spec.rb +3 -3
  491. data/spec/api/courier_api_spec.rb +1 -1
  492. data/spec/api/elements_api_spec.rb +1 -1
  493. data/spec/api/events_api_spec.rb +1 -1
  494. data/spec/api/frontend_api_spec.rb +41 -17
  495. data/spec/api/identity_api_spec.rb +8 -8
  496. data/spec/api/jwk_api_spec.rb +6 -6
  497. data/spec/api/metadata_api_spec.rb +1 -1
  498. data/spec/api/o_auth2_api_spec.rb +3 -2
  499. data/spec/api/oidc_api_spec.rb +2 -2
  500. data/spec/api/permission_api_spec.rb +1 -1
  501. data/spec/api/project_api_spec.rb +16 -3
  502. data/spec/api/relationship_api_spec.rb +1 -1
  503. data/spec/api/wellknown_api_spec.rb +1 -1
  504. data/spec/api/workspace_api_spec.rb +1 -1
  505. data/spec/models/accept_device_user_code_request_spec.rb +1 -1
  506. data/spec/models/accept_o_auth2_consent_request_session_spec.rb +1 -1
  507. data/spec/models/accept_o_auth2_consent_request_spec.rb +1 -1
  508. data/spec/models/accept_o_auth2_login_request_spec.rb +1 -1
  509. data/spec/models/account_experience_colors_spec.rb +1 -1
  510. data/spec/models/account_experience_configuration_spec.rb +1 -1
  511. data/spec/models/add_project_to_workspace_body_spec.rb +1 -1
  512. data/spec/models/add_workspace_organization_domain_body_spec.rb +36 -0
  513. data/spec/models/admin_identity_import_credentials_lookup_secret_config_spec.rb +1 -1
  514. data/spec/models/admin_identity_import_credentials_lookup_secret_spec.rb +1 -1
  515. data/spec/models/admin_revoke_imported_api_key_body_spec.rb +1 -1
  516. data/spec/models/admin_revoke_issued_api_key_body_spec.rb +1 -1
  517. data/spec/models/admin_rotate_issued_api_key_body_spec.rb +1 -1
  518. data/spec/models/admin_update_imported_api_key_request_spec.rb +1 -1
  519. data/spec/models/admin_update_issued_api_key_request_spec.rb +1 -1
  520. data/spec/models/ai_assistant_session_token_spec.rb +42 -0
  521. data/spec/models/any_spec.rb +1 -1
  522. data/spec/models/attribute_filter_spec.rb +1 -1
  523. data/spec/models/attribute_spec.rb +1 -1
  524. data/spec/models/attributes_count_datapoint_spec.rb +1 -1
  525. data/spec/models/authenticator_assurance_level_spec.rb +1 -1
  526. data/spec/models/basic_organization_spec.rb +1 -1
  527. data/spec/models/batch_check_permission_body_spec.rb +1 -1
  528. data/spec/models/batch_check_permission_result_spec.rb +1 -1
  529. data/spec/models/batch_create_imported_api_keys_error_code_spec.rb +1 -1
  530. data/spec/models/batch_create_imported_api_keys_request_spec.rb +1 -1
  531. data/spec/models/batch_create_imported_api_keys_response_spec.rb +1 -1
  532. data/spec/models/batch_create_imported_api_keys_result_spec.rb +1 -1
  533. data/spec/models/batch_patch_identities_response_spec.rb +1 -1
  534. data/spec/models/batch_verify_api_keys_request_spec.rb +1 -1
  535. data/spec/models/batch_verify_api_keys_response_spec.rb +1 -1
  536. data/spec/models/billing_period_bucket_spec.rb +1 -1
  537. data/spec/models/check_opl_syntax_result_spec.rb +1 -1
  538. data/spec/models/check_permission_result_spec.rb +1 -1
  539. data/spec/models/check_permission_result_with_error_spec.rb +1 -1
  540. data/spec/models/cloud_account_spec.rb +1 -1
  541. data/spec/models/continue_with_device_authn_pin_entry_ui_data_spec.rb +1 -1
  542. data/spec/models/continue_with_device_authn_pin_entry_ui_spec.rb +1 -1
  543. data/spec/models/continue_with_recovery_ui_flow_spec.rb +1 -1
  544. data/spec/models/continue_with_recovery_ui_spec.rb +1 -1
  545. data/spec/models/continue_with_redirect_browser_to_spec.rb +1 -1
  546. data/spec/models/continue_with_set_ory_session_token_spec.rb +1 -1
  547. data/spec/models/continue_with_settings_ui_flow_spec.rb +1 -1
  548. data/spec/models/continue_with_settings_ui_spec.rb +1 -1
  549. data/spec/models/continue_with_spec.rb +1 -1
  550. data/spec/models/continue_with_verification_ui_flow_spec.rb +1 -1
  551. data/spec/models/continue_with_verification_ui_spec.rb +1 -1
  552. data/spec/models/courier_message_status_spec.rb +1 -1
  553. data/spec/models/courier_message_type_spec.rb +1 -1
  554. data/spec/models/create_custom_domain_body_spec.rb +1 -1
  555. data/spec/models/create_event_stream_body_spec.rb +1 -1
  556. data/spec/models/create_fedcm_flow_response_spec.rb +1 -1
  557. data/spec/models/create_identity_body_spec.rb +1 -1
  558. data/spec/models/create_invite_response_spec.rb +1 -1
  559. data/spec/models/create_json_web_key_set_spec.rb +1 -1
  560. data/spec/models/create_onboarding_link_response_spec.rb +1 -1
  561. data/spec/models/create_organization_onboarding_portal_link_body_spec.rb +1 -1
  562. data/spec/models/create_project_api_key_body_spec.rb +1 -1
  563. data/spec/models/create_project_body_spec.rb +1 -1
  564. data/spec/models/create_project_branding_spec.rb +1 -1
  565. data/spec/models/create_project_member_invite_body_spec.rb +1 -1
  566. data/spec/models/create_project_normalized_payload_spec.rb +37 -1
  567. data/spec/models/create_recovery_code_for_identity_body_spec.rb +1 -1
  568. data/spec/models/create_recovery_link_for_identity_body_spec.rb +1 -1
  569. data/spec/models/create_relationship_body_spec.rb +1 -1
  570. data/spec/models/create_subscription_body_spec.rb +1 -1
  571. data/spec/models/create_subscription_common_spec.rb +1 -1
  572. data/spec/models/create_test_login_flow_body_spec.rb +1 -1
  573. data/spec/models/create_test_login_flow_from_onboarding_portal_link_body_spec.rb +1 -1
  574. data/spec/models/create_verifiable_credential_request_body_spec.rb +1 -1
  575. data/spec/models/create_workspace_api_key_body_spec.rb +1 -1
  576. data/spec/models/create_workspace_body_spec.rb +1 -1
  577. data/spec/models/create_workspace_contact_body_spec.rb +60 -0
  578. data/spec/models/create_workspace_member_invite_body_spec.rb +1 -1
  579. data/spec/models/create_workspace_organization_body_spec.rb +1 -1
  580. data/spec/models/create_workspace_subscription_body_spec.rb +1 -1
  581. data/spec/models/credential_supported_draft00_spec.rb +1 -1
  582. data/spec/models/custom_domain_spec.rb +1 -1
  583. data/spec/models/customer_portal_availability_spec.rb +1 -1
  584. data/spec/models/delete_my_sessions_count_spec.rb +1 -1
  585. data/spec/models/derive_token_request_spec.rb +1 -1
  586. data/spec/models/derive_token_response_spec.rb +1 -1
  587. data/spec/models/device_authn_android_authorization_list_spec.rb +1 -1
  588. data/spec/models/device_authn_android_key_description_spec.rb +1 -1
  589. data/spec/models/device_authn_android_root_of_trust_spec.rb +1 -1
  590. data/spec/models/device_authn_attestation_spec.rb +1 -1
  591. data/spec/models/device_authn_ios_att_stmt_spec.rb +1 -1
  592. data/spec/models/device_authn_ios_attestation_spec.rb +1 -1
  593. data/spec/models/device_authn_key_spec.rb +1 -1
  594. data/spec/models/device_authorization_spec.rb +1 -1
  595. data/spec/models/device_type_spec.rb +1 -1
  596. data/spec/models/device_user_auth_request_spec.rb +1 -1
  597. data/spec/models/domain_verification_status_spec.rb +74 -0
  598. data/spec/models/elements_configuration_spec.rb +1 -1
  599. data/spec/models/email_template_data_body_spec.rb +1 -1
  600. data/spec/models/email_template_data_spec.rb +1 -1
  601. data/spec/models/error_authenticator_assurance_level_not_satisfied_spec.rb +1 -1
  602. data/spec/models/error_browser_location_change_required_spec.rb +1 -1
  603. data/spec/models/error_flow_replaced_spec.rb +1 -1
  604. data/spec/models/error_generic_spec.rb +1 -1
  605. data/spec/models/error_o_auth2_spec.rb +1 -1
  606. data/spec/models/event_stream_spec.rb +7 -1
  607. data/spec/models/expanded_permission_tree_spec.rb +1 -1
  608. data/spec/models/feature_flags_catalog_entry_spec.rb +60 -0
  609. data/spec/models/flow_error_spec.rb +1 -1
  610. data/spec/models/generic_error_content_spec.rb +1 -1
  611. data/spec/models/generic_error_spec.rb +1 -1
  612. data/spec/models/generic_oidc_provider_spec.rb +1 -1
  613. data/spec/models/generic_usage_spec.rb +1 -1
  614. data/spec/models/get_attributes_count_spec.rb +1 -1
  615. data/spec/models/get_jwks_response_jwks_keys_inner_spec.rb +1 -1
  616. data/spec/models/get_jwks_response_jwks_spec.rb +1 -1
  617. data/spec/models/get_jwks_response_spec.rb +1 -1
  618. data/spec/models/get_managed_identity_schema_location_spec.rb +1 -1
  619. data/spec/models/get_metrics_count_spec.rb +1 -1
  620. data/spec/models/get_metrics_event_attributes_spec.rb +1 -1
  621. data/spec/models/get_metrics_event_types_spec.rb +1 -1
  622. data/spec/models/get_organization_response_spec.rb +1 -1
  623. data/spec/models/get_organizations_by_hostname_response_spec.rb +1 -1
  624. data/spec/models/get_project_events_body_spec.rb +1 -1
  625. data/spec/models/get_project_events_spec.rb +1 -1
  626. data/spec/models/get_project_metrics_spec.rb +1 -1
  627. data/spec/models/get_session_activity_spec.rb +1 -1
  628. data/spec/models/get_version200_response_spec.rb +1 -1
  629. data/spec/models/health_not_ready_status_spec.rb +1 -1
  630. data/spec/models/health_status_spec.rb +1 -1
  631. data/spec/models/identity_credentials_code_address_spec.rb +1 -1
  632. data/spec/models/identity_credentials_code_spec.rb +1 -1
  633. data/spec/models/identity_credentials_lookup_secret_code_spec.rb +1 -1
  634. data/spec/models/identity_credentials_oidc_provider_spec.rb +1 -1
  635. data/spec/models/identity_credentials_oidc_spec.rb +1 -1
  636. data/spec/models/identity_credentials_password_spec.rb +1 -1
  637. data/spec/models/identity_credentials_spec.rb +1 -1
  638. data/spec/models/identity_credentials_web_authn_attestation_spec.rb +1 -1
  639. data/spec/models/identity_credentials_web_authn_authenticator_spec.rb +1 -1
  640. data/spec/models/identity_credentials_web_authn_flags_spec.rb +1 -1
  641. data/spec/models/identity_credentials_web_authn_spec.rb +1 -1
  642. data/spec/models/identity_patch_response_spec.rb +1 -1
  643. data/spec/models/identity_patch_spec.rb +1 -1
  644. data/spec/models/identity_schema_container_spec.rb +1 -1
  645. data/spec/models/identity_schema_preset_spec.rb +1 -1
  646. data/spec/models/identity_spec.rb +1 -1
  647. data/spec/models/identity_with_credentials_oidc_config_provider_spec.rb +1 -1
  648. data/spec/models/identity_with_credentials_oidc_config_spec.rb +1 -1
  649. data/spec/models/identity_with_credentials_oidc_spec.rb +1 -1
  650. data/spec/models/identity_with_credentials_passkey_config_spec.rb +1 -1
  651. data/spec/models/identity_with_credentials_passkey_spec.rb +1 -1
  652. data/spec/models/identity_with_credentials_password_config_spec.rb +1 -1
  653. data/spec/models/identity_with_credentials_password_spec.rb +1 -1
  654. data/spec/models/identity_with_credentials_saml_config_provider_spec.rb +1 -1
  655. data/spec/models/identity_with_credentials_saml_config_spec.rb +1 -1
  656. data/spec/models/identity_with_credentials_saml_spec.rb +1 -1
  657. data/spec/models/identity_with_credentials_spec.rb +1 -1
  658. data/spec/models/identity_with_credentials_totp_config_spec.rb +1 -1
  659. data/spec/models/identity_with_credentials_totp_spec.rb +1 -1
  660. data/spec/models/identity_with_credentials_web_authn_config_spec.rb +1 -1
  661. data/spec/models/identity_with_credentials_web_authn_spec.rb +1 -1
  662. data/spec/models/import_api_key_request_spec.rb +1 -1
  663. data/spec/models/imported_api_key_spec.rb +1 -1
  664. data/spec/models/internal_get_project_branding_body_spec.rb +1 -1
  665. data/spec/models/internal_is_ax_welcome_screen_enabled_for_project_body_spec.rb +1 -1
  666. data/spec/models/internal_is_owner_for_project_by_slug_body_spec.rb +2 -2
  667. data/spec/models/internal_is_owner_for_project_by_slug_spec.rb +1 -1
  668. data/spec/models/introspected_o_auth2_token_spec.rb +1 -1
  669. data/spec/models/invite_token_body_spec.rb +1 -1
  670. data/spec/models/invoice_data_v1_spec.rb +1 -1
  671. data/spec/models/invoice_spec.rb +1 -1
  672. data/spec/models/ip_restriction_spec.rb +1 -1
  673. data/spec/models/is_owner_for_project_by_slug_spec.rb +1 -1
  674. data/spec/models/issue_api_key_request_spec.rb +1 -1
  675. data/spec/models/issue_api_key_response_spec.rb +1 -1
  676. data/spec/models/issued_api_key_spec.rb +1 -1
  677. data/spec/models/json_patch_spec.rb +1 -1
  678. data/spec/models/json_web_key_set_spec.rb +1 -1
  679. data/spec/models/json_web_key_spec.rb +1 -1
  680. data/spec/models/keto_namespace_spec.rb +1 -1
  681. data/spec/models/key_state_spec.rb +1 -1
  682. data/spec/models/key_status_spec.rb +1 -1
  683. data/spec/models/key_visibility_spec.rb +1 -1
  684. data/spec/models/keyset_pagination_request_parameters_spec.rb +1 -1
  685. data/spec/models/keyset_pagination_response_headers_spec.rb +1 -1
  686. data/spec/models/line_item_v1_spec.rb +1 -1
  687. data/spec/models/list_event_streams_spec.rb +1 -1
  688. data/spec/models/list_imported_api_keys_response_spec.rb +1 -1
  689. data/spec/models/list_invoices_response_spec.rb +1 -1
  690. data/spec/models/list_issued_api_keys_response_spec.rb +1 -1
  691. data/spec/models/list_organizations_response_spec.rb +1 -1
  692. data/spec/models/list_workspace_contacts_spec.rb +48 -0
  693. data/spec/models/list_workspace_projects_spec.rb +1 -1
  694. data/spec/models/list_workspaces_spec.rb +1 -1
  695. data/spec/models/login_flow_spec.rb +1 -1
  696. data/spec/models/login_flow_state_spec.rb +1 -1
  697. data/spec/models/login_flow_test_context_spec.rb +1 -1
  698. data/spec/models/login_flow_test_debug_payload_spec.rb +1 -1
  699. data/spec/models/login_flow_test_schema_validation_error_spec.rb +1 -1
  700. data/spec/models/login_flow_test_step_error_spec.rb +1 -1
  701. data/spec/models/logout_flow_spec.rb +1 -1
  702. data/spec/models/manage_sessions_body_spec.rb +1 -1
  703. data/spec/models/manage_sessions_response_spec.rb +1 -1
  704. data/spec/models/managed_identity_schema_spec.rb +1 -1
  705. data/spec/models/managed_identity_schema_validation_result_spec.rb +1 -1
  706. data/spec/models/member_invite_spec.rb +1 -1
  707. data/spec/models/message_dispatch_spec.rb +1 -1
  708. data/spec/models/message_spec.rb +1 -1
  709. data/spec/models/metrics_datapoint_spec.rb +1 -1
  710. data/spec/models/namespace_spec.rb +1 -1
  711. data/spec/models/needs_privileged_session_error_spec.rb +1 -1
  712. data/spec/models/normalized_project_revision_courier_channel_spec.rb +1 -1
  713. data/spec/models/normalized_project_revision_hook_spec.rb +1 -1
  714. data/spec/models/normalized_project_revision_identity_schema_spec.rb +1 -1
  715. data/spec/models/normalized_project_revision_saml_provider_spec.rb +7 -1
  716. data/spec/models/normalized_project_revision_scim_client_spec.rb +1 -1
  717. data/spec/models/normalized_project_revision_spec.rb +37 -1
  718. data/spec/models/normalized_project_revision_third_party_provider_spec.rb +1 -1
  719. data/spec/models/normalized_project_revision_tokenizer_template_spec.rb +1 -1
  720. data/spec/models/normalized_project_spec.rb +1 -1
  721. data/spec/models/null_value_spec.rb +1 -1
  722. data/spec/models/o_auth2_client_spec.rb +1 -1
  723. data/spec/models/o_auth2_client_token_lifespans_spec.rb +1 -1
  724. data/spec/models/o_auth2_consent_request_open_id_connect_context_spec.rb +1 -1
  725. data/spec/models/o_auth2_consent_request_spec.rb +1 -1
  726. data/spec/models/o_auth2_consent_session_spec.rb +1 -1
  727. data/spec/models/o_auth2_login_request_spec.rb +1 -1
  728. data/spec/models/o_auth2_logout_request_spec.rb +1 -1
  729. data/spec/models/o_auth2_redirect_to_spec.rb +1 -1
  730. data/spec/models/o_auth2_token_exchange_spec.rb +1 -1
  731. data/spec/models/oidc_configuration_spec.rb +1 -1
  732. data/spec/models/oidc_user_info_spec.rb +1 -1
  733. data/spec/models/onboarding_portal_link_spec.rb +1 -1
  734. data/spec/models/onboarding_portal_organization_spec.rb +1 -1
  735. data/spec/models/onboarding_portal_test_login_flow_spec.rb +1 -1
  736. data/spec/models/opl_parse_error_spec.rb +48 -0
  737. data/spec/models/{plan_spec.rb → opl_source_position_spec.rb} +9 -9
  738. data/spec/models/opl_validate_result_spec.rb +36 -0
  739. data/spec/models/organization_body_spec.rb +1 -1
  740. data/spec/models/organization_by_hostname_spec.rb +1 -1
  741. data/spec/models/organization_onboarding_portal_links_response_spec.rb +1 -1
  742. data/spec/models/organization_spec.rb +1 -1
  743. data/spec/models/parse_error_spec.rb +1 -1
  744. data/spec/models/patch_identities_body_spec.rb +7 -1
  745. data/spec/models/patch_workspace_contact_body_spec.rb +60 -0
  746. data/spec/models/patch_workspace_member_body_spec.rb +1 -1
  747. data/spec/models/perform_native_logout_body_spec.rb +1 -1
  748. data/spec/models/permissions_on_workspace_spec.rb +1 -1
  749. data/spec/models/pin_config_spec.rb +1 -1
  750. data/spec/models/plan_details_spec.rb +1 -1
  751. data/spec/models/post_check_permission_body_spec.rb +1 -1
  752. data/spec/models/post_check_permission_or_error_body_spec.rb +1 -1
  753. data/spec/models/project_api_key_spec.rb +1 -1
  754. data/spec/models/project_branding_colors_spec.rb +1 -1
  755. data/spec/models/project_branding_spec.rb +1 -1
  756. data/spec/models/project_branding_theme_spec.rb +1 -1
  757. data/spec/models/project_cors_spec.rb +1 -1
  758. data/spec/models/project_events_datapoint_spec.rb +1 -1
  759. data/spec/models/project_host_spec.rb +1 -1
  760. data/spec/models/project_member_spec.rb +1 -1
  761. data/spec/models/project_metadata_spec.rb +1 -1
  762. data/spec/models/project_service_account_experience_spec.rb +1 -1
  763. data/spec/models/project_service_identity_spec.rb +1 -1
  764. data/spec/models/project_service_o_auth2_spec.rb +1 -1
  765. data/spec/models/project_service_permission_spec.rb +1 -1
  766. data/spec/models/project_service_talos_spec.rb +1 -1
  767. data/spec/models/project_services_spec.rb +1 -1
  768. data/spec/models/project_spec.rb +1 -1
  769. data/spec/models/provider_spec.rb +1 -1
  770. data/spec/models/quota_usage_spec.rb +2 -2
  771. data/spec/models/rate_limit_policy_spec.rb +1 -1
  772. data/spec/models/recovery_code_for_identity_spec.rb +1 -1
  773. data/spec/models/recovery_flow_spec.rb +1 -1
  774. data/spec/models/recovery_flow_state_spec.rb +1 -1
  775. data/spec/models/recovery_identity_address_spec.rb +1 -1
  776. data/spec/models/recovery_link_for_identity_spec.rb +1 -1
  777. data/spec/models/registration_flow_spec.rb +1 -1
  778. data/spec/models/registration_flow_state_spec.rb +1 -1
  779. data/spec/models/reject_o_auth2_request_spec.rb +1 -1
  780. data/spec/models/relation_query_spec.rb +1 -1
  781. data/spec/models/relationship_namespaces_spec.rb +1 -1
  782. data/spec/models/relationship_patch_spec.rb +1 -1
  783. data/spec/models/relationship_spec.rb +1 -1
  784. data/spec/models/relationships_spec.rb +1 -1
  785. data/spec/models/revision_account_experience_custom_translation_spec.rb +1 -1
  786. data/spec/models/revocation_reason_spec.rb +1 -1
  787. data/spec/models/rfc6749_error_json_spec.rb +1 -1
  788. data/spec/models/rotate_issued_api_key_response_spec.rb +1 -1
  789. data/spec/models/rotate_o_auth2_client_secret_body_spec.rb +36 -0
  790. data/spec/models/rotate_talos_key_body_spec.rb +1 -1
  791. data/spec/models/schema_patch_spec.rb +1 -1
  792. data/spec/models/self_revoke_api_key_request_spec.rb +1 -1
  793. data/spec/models/self_service_flow_expired_error_spec.rb +1 -1
  794. data/spec/models/session_activity_datapoint_spec.rb +1 -1
  795. data/spec/models/session_authentication_method_spec.rb +7 -1
  796. data/spec/models/session_device_spec.rb +1 -1
  797. data/spec/models/session_spec.rb +1 -1
  798. data/spec/models/set_custom_domain_body_spec.rb +1 -1
  799. data/spec/models/set_event_stream_body_spec.rb +1 -1
  800. data/spec/models/set_organization_from_onboarding_portal_link_body_spec.rb +1 -1
  801. data/spec/models/set_project_branding_theme_body_spec.rb +1 -1
  802. data/spec/models/set_project_spec.rb +1 -1
  803. data/spec/models/settings_flow_spec.rb +1 -1
  804. data/spec/models/settings_flow_state_spec.rb +1 -1
  805. data/spec/models/source_position_spec.rb +1 -1
  806. data/spec/models/status_spec.rb +1 -1
  807. data/spec/models/subject_set_spec.rb +1 -1
  808. data/spec/models/subscription_spec.rb +1 -1
  809. data/spec/models/successful_code_exchange_response_spec.rb +1 -1
  810. data/spec/models/successful_native_login_spec.rb +1 -1
  811. data/spec/models/successful_native_registration_spec.rb +1 -1
  812. data/spec/models/successful_project_update_spec.rb +1 -1
  813. data/spec/models/talos_retired_value_spec.rb +1 -1
  814. data/spec/models/tax_line_item_spec.rb +1 -1
  815. data/spec/models/time_interval_spec.rb +1 -1
  816. data/spec/models/token_algorithm_spec.rb +1 -1
  817. data/spec/models/token_pagination_headers_spec.rb +1 -1
  818. data/spec/models/token_pagination_request_parameters_spec.rb +1 -1
  819. data/spec/models/token_pagination_response_headers_spec.rb +1 -1
  820. data/spec/models/token_pagination_spec.rb +1 -1
  821. data/spec/models/token_spec.rb +1 -1
  822. data/spec/models/trust_o_auth2_jwt_grant_issuer_spec.rb +1 -1
  823. data/spec/models/trusted_o_auth2_jwt_grant_issuer_spec.rb +1 -1
  824. data/spec/models/trusted_o_auth2_jwt_grant_json_web_key_spec.rb +1 -1
  825. data/spec/models/ui_container_spec.rb +1 -1
  826. data/spec/models/ui_node_anchor_attributes_spec.rb +1 -1
  827. data/spec/models/ui_node_attributes_spec.rb +1 -1
  828. data/spec/models/ui_node_division_attributes_spec.rb +1 -1
  829. data/spec/models/ui_node_image_attributes_spec.rb +1 -1
  830. data/spec/models/ui_node_input_attributes_option_spec.rb +1 -1
  831. data/spec/models/ui_node_input_attributes_spec.rb +1 -1
  832. data/spec/models/ui_node_meta_spec.rb +1 -1
  833. data/spec/models/ui_node_script_attributes_spec.rb +1 -1
  834. data/spec/models/ui_node_spec.rb +1 -1
  835. data/spec/models/ui_node_text_attributes_spec.rb +1 -1
  836. data/spec/models/ui_text_spec.rb +1 -1
  837. data/spec/models/update_fedcm_flow_body_spec.rb +1 -1
  838. data/spec/models/update_identity_body_spec.rb +1 -1
  839. data/spec/models/update_login_flow_body_spec.rb +1 -1
  840. data/spec/models/update_login_flow_with_code_method_spec.rb +1 -1
  841. data/spec/models/update_login_flow_with_device_authn_method_spec.rb +1 -1
  842. data/spec/models/update_login_flow_with_identifier_first_method_spec.rb +1 -1
  843. data/spec/models/update_login_flow_with_lookup_secret_method_spec.rb +1 -1
  844. data/spec/models/update_login_flow_with_oidc_method_spec.rb +1 -1
  845. data/spec/models/update_login_flow_with_passkey_method_spec.rb +1 -1
  846. data/spec/models/update_login_flow_with_password_method_spec.rb +1 -1
  847. data/spec/models/update_login_flow_with_saml_method_spec.rb +1 -1
  848. data/spec/models/update_login_flow_with_totp_method_spec.rb +1 -1
  849. data/spec/models/update_login_flow_with_web_authn_method_spec.rb +1 -1
  850. data/spec/models/update_organization_onboarding_portal_link_body_spec.rb +1 -1
  851. data/spec/models/update_recovery_flow_body_spec.rb +1 -1
  852. data/spec/models/update_recovery_flow_with_code_method_spec.rb +1 -1
  853. data/spec/models/update_recovery_flow_with_link_method_spec.rb +1 -1
  854. data/spec/models/update_registration_flow_body_spec.rb +1 -1
  855. data/spec/models/update_registration_flow_with_code_method_spec.rb +1 -1
  856. data/spec/models/update_registration_flow_with_oidc_method_spec.rb +1 -1
  857. data/spec/models/update_registration_flow_with_passkey_method_spec.rb +1 -1
  858. data/spec/models/update_registration_flow_with_password_method_spec.rb +1 -1
  859. data/spec/models/update_registration_flow_with_profile_method_spec.rb +1 -1
  860. data/spec/models/update_registration_flow_with_saml_method_spec.rb +1 -1
  861. data/spec/models/update_registration_flow_with_web_authn_method_spec.rb +1 -1
  862. data/spec/models/update_settings_flow_body_spec.rb +1 -1
  863. data/spec/models/update_settings_flow_with_device_authn_method_register_spec.rb +1 -1
  864. data/spec/models/update_settings_flow_with_device_authn_method_rotate_secret_spec.rb +1 -1
  865. data/spec/models/update_settings_flow_with_device_authn_method_spec.rb +1 -1
  866. data/spec/models/update_settings_flow_with_lookup_method_spec.rb +1 -1
  867. data/spec/models/update_settings_flow_with_oidc_method_spec.rb +7 -1
  868. data/spec/models/update_settings_flow_with_passkey_method_spec.rb +1 -1
  869. data/spec/models/update_settings_flow_with_password_method_spec.rb +1 -1
  870. data/spec/models/update_settings_flow_with_profile_method_spec.rb +1 -1
  871. data/spec/models/update_settings_flow_with_saml_method_spec.rb +1 -1
  872. data/spec/models/update_settings_flow_with_totp_method_spec.rb +1 -1
  873. data/spec/models/update_settings_flow_with_web_authn_method_spec.rb +1 -1
  874. data/spec/models/update_subscription_body_spec.rb +1 -1
  875. data/spec/models/update_verification_flow_body_spec.rb +1 -1
  876. data/spec/models/update_verification_flow_with_code_method_spec.rb +1 -1
  877. data/spec/models/update_verification_flow_with_link_method_spec.rb +1 -1
  878. data/spec/models/update_workspace_body_spec.rb +1 -1
  879. data/spec/models/update_workspace_organization_body_spec.rb +1 -1
  880. data/spec/models/usage_spec.rb +1 -1
  881. data/spec/models/user_verification_spec.rb +1 -1
  882. data/spec/models/validate_base_url_rewrite_request_spec.rb +1 -1
  883. data/spec/models/validate_base_url_rewrite_response_spec.rb +1 -1
  884. data/spec/models/verifiable_credential_priming_response_spec.rb +1 -1
  885. data/spec/models/verifiable_credential_proof_spec.rb +1 -1
  886. data/spec/models/verifiable_credential_response_spec.rb +1 -1
  887. data/spec/models/verifiable_identity_address_spec.rb +1 -1
  888. data/spec/models/verification_error_code_spec.rb +1 -1
  889. data/spec/models/verification_flow_spec.rb +1 -1
  890. data/spec/models/verification_flow_state_spec.rb +1 -1
  891. data/spec/models/verify_api_key_request_spec.rb +1 -1
  892. data/spec/models/verify_api_key_response_spec.rb +1 -1
  893. data/spec/models/verify_user_code_request_spec.rb +1 -1
  894. data/spec/models/version_spec.rb +1 -1
  895. data/spec/models/warning_spec.rb +1 -1
  896. data/spec/models/web_authn_related_origins_spec.rb +36 -0
  897. data/spec/models/workspace_api_key_spec.rb +1 -1
  898. data/spec/models/workspace_contact_recipient_input_spec.rb +42 -0
  899. data/spec/models/workspace_contact_recipient_spec.rb +48 -0
  900. data/spec/models/workspace_contact_spec.rb +78 -0
  901. data/spec/models/workspace_organization_spec.rb +7 -1
  902. data/spec/models/workspace_spec.rb +1 -1
  903. data/spec/spec_helper.rb +1 -1
  904. data/vendor/bundle/ruby/3.2.0/cache/io-console-0.9.4.gem +0 -0
  905. data/vendor/bundle/ruby/3.2.0/cache/reline-0.7.0.gem +0 -0
  906. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux-gnu/3.2.0/byebug-13.0.0/gem_make.out +5 -5
  907. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux-gnu/3.2.0/{io-console-0.8.2 → io-console-0.9.4}/gem_make.out +17 -14
  908. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux-gnu/3.2.0/io-console-0.9.4/io/console.so +0 -0
  909. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux-gnu/3.2.0/{io-console-0.8.2 → io-console-0.9.4}/mkmf.log +131 -93
  910. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux-gnu/3.2.0/jaro_winkler-1.5.6/gem_make.out +5 -5
  911. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux-gnu/3.2.0/psych-4.0.6/gem_make.out +5 -5
  912. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux-gnu/3.2.0/racc-1.8.1/gem_make.out +5 -5
  913. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux-gnu/3.2.0/stringio-3.2.0/gem_make.out +5 -5
  914. data/vendor/bundle/ruby/3.2.0/gems/{io-console-0.8.2 → io-console-0.9.4}/ext/io/console/Makefile +3 -3
  915. data/vendor/bundle/ruby/3.2.0/gems/{io-console-0.8.2 → io-console-0.9.4}/ext/io/console/console.c +621 -40
  916. data/vendor/bundle/ruby/3.2.0/gems/{io-console-0.8.2 → io-console-0.9.4}/ext/io/console/extconf.rb +39 -15
  917. data/vendor/bundle/ruby/3.2.0/gems/{io-console-0.8.2 → io-console-0.9.4}/ext/io/console/win32_vk.inc +313 -165
  918. data/vendor/bundle/ruby/3.2.0/gems/{io-console-0.8.2 → io-console-0.9.4}/lib/io/console/size.rb +4 -2
  919. data/vendor/bundle/ruby/3.2.0/gems/io-console-0.9.4/lib/io/console.so +0 -0
  920. data/vendor/bundle/ruby/3.2.0/gems/{reline-0.6.3 → reline-0.7.0}/lib/reline/io/ansi.rb +6 -4
  921. data/vendor/bundle/ruby/3.2.0/gems/{reline-0.6.3 → reline-0.7.0}/lib/reline/io/windows.rb +49 -23
  922. data/vendor/bundle/ruby/3.2.0/gems/{reline-0.6.3 → reline-0.7.0}/lib/reline/io.rb +8 -2
  923. data/vendor/bundle/ruby/3.2.0/gems/{reline-0.6.3 → reline-0.7.0}/lib/reline/line_editor.rb +49 -21
  924. data/vendor/bundle/ruby/3.2.0/gems/reline-0.7.0/lib/reline/version.rb +3 -0
  925. data/vendor/bundle/ruby/3.2.0/gems/{reline-0.6.3 → reline-0.7.0}/lib/reline.rb +10 -9
  926. data/vendor/bundle/ruby/3.2.0/specifications/{io-console-0.8.2.gemspec → io-console-0.9.4.gemspec} +3 -3
  927. data/vendor/bundle/ruby/3.2.0/specifications/{reline-0.6.3.gemspec → reline-0.7.0.gemspec} +2 -2
  928. metadata +108 -52
  929. data/docs/Plan.md +0 -20
  930. data/vendor/bundle/ruby/3.2.0/cache/io-console-0.8.2.gem +0 -0
  931. data/vendor/bundle/ruby/3.2.0/cache/reline-0.6.3.gem +0 -0
  932. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux-gnu/3.2.0/io-console-0.8.2/io/console.so +0 -0
  933. data/vendor/bundle/ruby/3.2.0/gems/io-console-0.8.2/lib/io/console.so +0 -0
  934. data/vendor/bundle/ruby/3.2.0/gems/reline-0.6.3/lib/reline/version.rb +0 -3
  935. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux-gnu/3.2.0/{io-console-0.8.2 → io-console-0.9.4}/gem.build_complete +0 -0
  936. data/vendor/bundle/ruby/3.2.0/gems/{io-console-0.8.2 → io-console-0.9.4}/.document +0 -0
  937. data/vendor/bundle/ruby/3.2.0/gems/{io-console-0.8.2 → io-console-0.9.4}/BSDL +0 -0
  938. data/vendor/bundle/ruby/3.2.0/gems/{io-console-0.8.2 → io-console-0.9.4}/COPYING +0 -0
  939. data/vendor/bundle/ruby/3.2.0/gems/{io-console-0.8.2 → io-console-0.9.4}/README.md +0 -0
  940. data/vendor/bundle/ruby/3.2.0/gems/{reline-0.6.3 → reline-0.7.0}/BSDL +0 -0
  941. data/vendor/bundle/ruby/3.2.0/gems/{reline-0.6.3 → reline-0.7.0}/COPYING +0 -0
  942. data/vendor/bundle/ruby/3.2.0/gems/{reline-0.6.3 → reline-0.7.0}/README.md +0 -0
  943. data/vendor/bundle/ruby/3.2.0/gems/{reline-0.6.3 → reline-0.7.0}/lib/reline/config.rb +0 -0
  944. data/vendor/bundle/ruby/3.2.0/gems/{reline-0.6.3 → reline-0.7.0}/lib/reline/face.rb +0 -0
  945. data/vendor/bundle/ruby/3.2.0/gems/{reline-0.6.3 → reline-0.7.0}/lib/reline/history.rb +0 -0
  946. data/vendor/bundle/ruby/3.2.0/gems/{reline-0.6.3 → reline-0.7.0}/lib/reline/io/dumb.rb +0 -0
  947. data/vendor/bundle/ruby/3.2.0/gems/{reline-0.6.3 → reline-0.7.0}/lib/reline/key_actor/base.rb +0 -0
  948. data/vendor/bundle/ruby/3.2.0/gems/{reline-0.6.3 → reline-0.7.0}/lib/reline/key_actor/composite.rb +0 -0
  949. data/vendor/bundle/ruby/3.2.0/gems/{reline-0.6.3 → reline-0.7.0}/lib/reline/key_actor/emacs.rb +2 -2
  950. /data/vendor/bundle/ruby/3.2.0/gems/{reline-0.6.3 → reline-0.7.0}/lib/reline/key_actor/vi_command.rb +0 -0
  951. /data/vendor/bundle/ruby/3.2.0/gems/{reline-0.6.3 → reline-0.7.0}/lib/reline/key_actor/vi_insert.rb +0 -0
  952. /data/vendor/bundle/ruby/3.2.0/gems/{reline-0.6.3 → reline-0.7.0}/lib/reline/key_actor.rb +0 -0
  953. /data/vendor/bundle/ruby/3.2.0/gems/{reline-0.6.3 → reline-0.7.0}/lib/reline/key_stroke.rb +0 -0
  954. /data/vendor/bundle/ruby/3.2.0/gems/{reline-0.6.3 → reline-0.7.0}/lib/reline/kill_ring.rb +0 -0
  955. /data/vendor/bundle/ruby/3.2.0/gems/{reline-0.6.3 → reline-0.7.0}/lib/reline/unicode/east_asian_width.rb +0 -0
  956. /data/vendor/bundle/ruby/3.2.0/gems/{reline-0.6.3 → reline-0.7.0}/lib/reline/unicode.rb +0 -0
  957. /data/vendor/bundle/ruby/3.2.0/gems/{reline-0.6.3 → reline-0.7.0}/license_of_rb-readline +0 -0
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  static const char *const
7
- IO_CONSOLE_VERSION = "0.8.2";
7
+ IO_CONSOLE_VERSION = "0.9.4";
8
8
 
9
9
  #include "ruby.h"
10
10
  #include "ruby/io.h"
@@ -56,6 +56,13 @@ typedef struct sgttyb conmode;
56
56
  #include <conio.h>
57
57
  typedef DWORD conmode;
58
58
 
59
+ #ifndef ENABLE_WRAP_AT_EOL_OUTPUT
60
+ # define ENABLE_WRAP_AT_EOL_OUTPUT 0x0002
61
+ #endif
62
+ #ifndef ENABLE_VIRTUAL_TERMINAL_PROCESSING
63
+ # define ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004
64
+ #endif
65
+
59
66
  #define LAST_ERROR rb_w32_map_errno(GetLastError())
60
67
  #define SET_LAST_ERROR (errno = LAST_ERROR, 0)
61
68
 
@@ -81,7 +88,7 @@ getattr(int fd, conmode *t)
81
88
 
82
89
  #define CSI "\x1b\x5b"
83
90
 
84
- static ID id_getc, id_close;
91
+ static ID id_getc, id_close, id_timeout;
85
92
  static ID id_gets, id_flush, id_chomp_bang;
86
93
 
87
94
  #ifndef HAVE_RB_INTERNED_STR_CSTR
@@ -89,6 +96,10 @@ static ID id_gets, id_flush, id_chomp_bang;
89
96
  # define rb_interned_str_cstr(str) rb_str_freeze(rb_usascii_str_new_cstr(str))
90
97
  #endif
91
98
 
99
+ #if !defined(HAVE_RB_CATEGORY_WARN) || !defined(HAVE_CONST_RB_WARN_CATEGORY_DEPRECATED)
100
+ # define rb_category_warn(category, ...) rb_warn(__VA_ARGS__)
101
+ #endif
102
+
92
103
  #if defined HAVE_RUBY_FIBER_SCHEDULER_H
93
104
  # include "ruby/fiber/scheduler.h"
94
105
  #elif defined HAVE_RB_SCHEDULER_TIMEOUT
@@ -118,22 +129,6 @@ io_path_fallback(VALUE io)
118
129
  #define rb_io_path io_path_fallback
119
130
  #endif
120
131
 
121
- #ifndef HAVE_RB_IO_GET_WRITE_IO
122
- static VALUE
123
- io_get_write_io_fallback(VALUE io)
124
- {
125
- rb_io_t *fptr;
126
- GetOpenFile(io, fptr);
127
- VALUE wio = fptr->tied_io_for_writing;
128
- return wio ? wio : io;
129
- }
130
- #define rb_io_get_write_io io_get_write_io_fallback
131
- #endif
132
-
133
- #ifndef DHAVE_RB_SYSERR_FAIL_STR
134
- # define rb_syserr_fail_str(e, mesg) rb_exc_raise(rb_syserr_new_str(e, mesg))
135
- #endif
136
-
137
132
  #define sys_fail(io) do { \
138
133
  int err = errno; \
139
134
  rb_syserr_fail_str(err, rb_io_path(io)); \
@@ -183,6 +178,22 @@ typedef struct {
183
178
  # define NIL_OR_UNDEF_P(obj) (NIL_P(obj) || UNDEF_P(obj))
184
179
  #endif
185
180
 
181
+ static int
182
+ to_vtime(VALUE vtime)
183
+ {
184
+ VALUE v10 = INT2FIX(10);
185
+ vtime = rb_funcall3(vtime, '*', 1, &v10);
186
+ return NUM2INT(vtime);
187
+ }
188
+
189
+ static unsigned char
190
+ clamp_uchar(int n)
191
+ {
192
+ if ((unsigned int)n >= UCHAR_MAX) n = UCHAR_MAX;
193
+ else if (n < 0) n = 0;
194
+ return (unsigned char)n;
195
+ }
196
+
186
197
  static rawmode_arg_t *
187
198
  rawmode_opt(int *argcp, VALUE *argv, int min_argc, int max_argc, rawmode_arg_t *opts)
188
199
  {
@@ -214,13 +225,11 @@ rawmode_opt(int *argcp, VALUE *argv, int min_argc, int max_argc, rawmode_arg_t *
214
225
  opts->vtime = 0;
215
226
  opts->intr = 0;
216
227
  if (!NIL_OR_UNDEF_P(vmin)) {
217
- opts->vmin = NUM2INT(vmin);
228
+ opts->vmin = clamp_uchar(NUM2INT(vmin));
218
229
  optp = opts;
219
230
  }
220
231
  if (!NIL_OR_UNDEF_P(vtime)) {
221
- VALUE v10 = INT2FIX(10);
222
- vtime = rb_funcall3(vtime, '*', 1, &v10);
223
- opts->vtime = NUM2INT(vtime);
232
+ opts->vtime = clamp_uchar(to_vtime(vtime));
224
233
  optp = opts;
225
234
  }
226
235
  switch (intr) {
@@ -550,7 +559,7 @@ nogvl_getch(void *p)
550
559
 
551
560
  /*
552
561
  * call-seq:
553
- * io.getch(min: nil, time: nil, intr: nil) -> char
562
+ * io.getch(min: nil, time: nil, intr: nil) -> char or nil
554
563
  *
555
564
  * Reads and returns a character in raw mode.
556
565
  *
@@ -635,6 +644,43 @@ console_getch(int argc, VALUE *argv, VALUE io)
635
644
  #endif
636
645
  }
637
646
 
647
+ /*
648
+ * call-seq:
649
+ * io.input_pending? -> true or false
650
+ *
651
+ * Returns whether input can be read without blocking.
652
+ *
653
+ * You must require 'io/console' to use this method.
654
+ */
655
+ static VALUE
656
+ console_input_pending_p(VALUE io)
657
+ {
658
+ rb_io_t *fptr;
659
+
660
+ GetOpenFile(io, fptr);
661
+ if (rb_io_read_pending(fptr)) return Qtrue;
662
+ #ifdef _WIN32
663
+ {
664
+ DWORD mode;
665
+ HANDLE h = (HANDLE)rb_w32_get_osfhandle(GetReadFD(io));
666
+
667
+ if (GetConsoleMode(h, &mode)) return _kbhit() ? Qtrue : Qfalse;
668
+ }
669
+ #endif
670
+ #if defined HAVE_RB_IO_WAIT
671
+ return RTEST(rb_io_wait(io, RB_INT2NUM(RUBY_IO_READABLE), INT2FIX(0))) ? Qtrue : Qfalse;
672
+ #else
673
+ {
674
+ struct timeval timeout = {0, 0};
675
+ int result;
676
+
677
+ result = rb_wait_for_single_fd(fptr->fd, RB_WAITFD_IN, &timeout);
678
+ if (result < 0) sys_fail(io);
679
+ return (result & RB_WAITFD_IN) ? Qtrue : Qfalse;
680
+ }
681
+ #endif
682
+ }
683
+
638
684
  /*
639
685
  * call-seq:
640
686
  * io.noecho {|io| }
@@ -730,6 +776,13 @@ conmode_init_copy(VALUE obj, VALUE obj2)
730
776
  return obj;
731
777
  }
732
778
 
779
+ static VALUE
780
+ conmode_get_echo(VALUE obj)
781
+ {
782
+ conmode *t = rb_check_typeddata(obj, &conmode_type);
783
+ return echo_p(t) ? Qtrue : Qfalse;
784
+ }
785
+
733
786
  static VALUE
734
787
  conmode_set_echo(VALUE obj, VALUE f)
735
788
  {
@@ -762,6 +815,122 @@ conmode_raw_new(int argc, VALUE *argv, VALUE obj)
762
815
  return conmode_new(rb_obj_class(obj), &t);
763
816
  }
764
817
 
818
+ static VALUE
819
+ conmode_get_min(VALUE obj)
820
+ {
821
+ conmode *t = rb_check_typeddata(obj, &conmode_type);
822
+ #ifdef VMIN
823
+ return INT2FIX(t->c_cc[VMIN]);
824
+ #else
825
+ (void)t;
826
+ return Qnil;
827
+ #endif
828
+ }
829
+
830
+ static VALUE
831
+ conmode_set_min(VALUE obj, VALUE min)
832
+ {
833
+ conmode *t = rb_check_typeddata(obj, &conmode_type);
834
+ int vmin = NIL_P(min) ? 1 : clamp_uchar(NUM2INT(min));
835
+ #ifdef VMIN
836
+ t->c_cc[VMIN] = vmin;
837
+ #else
838
+ (void)t;
839
+ (void)vmin;
840
+ #endif
841
+ return min;
842
+ }
843
+
844
+ static VALUE
845
+ conmode_get_time(VALUE obj)
846
+ {
847
+ conmode *t = rb_check_typeddata(obj, &conmode_type);
848
+ #ifdef VTIME
849
+ return rb_rational_new(INT2FIX(t->c_cc[VTIME]), INT2FIX(10));
850
+ #else
851
+ (void)t;
852
+ return Qnil;
853
+ #endif
854
+ }
855
+
856
+ static VALUE
857
+ conmode_set_time(VALUE obj, VALUE time)
858
+ {
859
+ conmode *t = rb_check_typeddata(obj, &conmode_type);
860
+ int vtime = NIL_P(time) ? 0 : clamp_uchar(to_vtime(time));
861
+ #ifdef VTIME
862
+ t->c_cc[VTIME] = vtime;
863
+ #else
864
+ (void)t;
865
+ (void)vtime;
866
+ #endif
867
+ return time;
868
+ }
869
+
870
+ #ifdef _WIN32
871
+ /*
872
+ * call-seq:
873
+ * mode.virtual_terminal_processing? -> true or false
874
+ *
875
+ * Returns whether virtual terminal sequences are processed on output.
876
+ */
877
+ static VALUE
878
+ conmode_virtual_terminal_processing_p(VALUE obj)
879
+ {
880
+ conmode *t = rb_check_typeddata(obj, &conmode_type);
881
+ return (*t & ENABLE_VIRTUAL_TERMINAL_PROCESSING) ? Qtrue : Qfalse;
882
+ }
883
+
884
+ /*
885
+ * call-seq:
886
+ * mode.virtual_terminal_processing = enabled
887
+ *
888
+ * Enables or disables virtual terminal sequence processing in +mode+.
889
+ * Assign +mode+ to IO#console_mode= to apply the change.
890
+ */
891
+ static VALUE
892
+ conmode_set_virtual_terminal_processing(VALUE obj, VALUE enabled)
893
+ {
894
+ conmode *t = rb_check_typeddata(obj, &conmode_type);
895
+ if (RTEST(enabled))
896
+ *t |= ENABLE_VIRTUAL_TERMINAL_PROCESSING;
897
+ else
898
+ *t &= ~ENABLE_VIRTUAL_TERMINAL_PROCESSING;
899
+ return obj;
900
+ }
901
+
902
+ /*
903
+ * call-seq:
904
+ * mode.wrap_at_eol_output? -> true or false
905
+ *
906
+ * Returns whether output wraps at the end of a line.
907
+ */
908
+ static VALUE
909
+ conmode_wrap_at_eol_output_p(VALUE obj)
910
+ {
911
+ conmode *t = rb_check_typeddata(obj, &conmode_type);
912
+ return (*t & ENABLE_WRAP_AT_EOL_OUTPUT) ? Qtrue : Qfalse;
913
+ }
914
+
915
+ /*
916
+ * call-seq:
917
+ * mode.wrap_at_eol_output = enabled
918
+ *
919
+ * Enables or disables wrapping at the end of a line in +mode+.
920
+ * Assign +mode+ to IO#console_mode= to apply the change.
921
+ */
922
+ static VALUE
923
+ conmode_set_wrap_at_eol_output(VALUE obj, VALUE enabled)
924
+ {
925
+ conmode *t = rb_check_typeddata(obj, &conmode_type);
926
+ if (RTEST(enabled))
927
+ *t |= ENABLE_WRAP_AT_EOL_OUTPUT;
928
+ else
929
+ *t &= ~ENABLE_WRAP_AT_EOL_OUTPUT;
930
+ return obj;
931
+ }
932
+ #endif
933
+
765
934
  /*
766
935
  * call-seq:
767
936
  * io.console_mode -> mode
@@ -861,7 +1030,6 @@ console_set_winsize(VALUE io, VALUE size)
861
1030
  int newrow, newcol;
862
1031
  COORD oldsize;
863
1032
  SMALL_RECT oldwindow;
864
- BOOL ret;
865
1033
  #endif
866
1034
  VALUE row, col, xpixel, ypixel;
867
1035
  const VALUE *sz;
@@ -963,12 +1131,207 @@ console_set_winsize(VALUE io, VALUE size)
963
1131
  #endif
964
1132
 
965
1133
  #ifdef _WIN32
1134
+ enum console_input_handle_index {
1135
+ console_input_handle,
1136
+ console_input_wakeup,
1137
+ console_input_handle_count
1138
+ };
1139
+
1140
+ typedef struct {
1141
+ HANDLE handles[console_input_handle_count];
1142
+ INPUT_RECORD *records;
1143
+ DWORD length;
1144
+ DWORD count;
1145
+ DWORD timeout;
1146
+ DWORD wait_result;
1147
+ DWORD error;
1148
+ BOOL result;
1149
+ } read_console_input_args_t;
1150
+
1151
+ static void *
1152
+ nogvl_read_console_input(void *ptr)
1153
+ {
1154
+ read_console_input_args_t *args = ptr;
1155
+
1156
+ args->wait_result = WaitForMultipleObjects(console_input_handle_count,
1157
+ args->handles, FALSE, args->timeout);
1158
+ if (args->wait_result == WAIT_OBJECT_0 + console_input_handle) {
1159
+ args->result = ReadConsoleInputW(args->handles[console_input_handle],
1160
+ args->records, args->length, &args->count);
1161
+ if (!args->result) args->error = GetLastError();
1162
+ }
1163
+ else if (args->wait_result == WAIT_FAILED) {
1164
+ args->error = GetLastError();
1165
+ }
1166
+ return 0;
1167
+ }
1168
+
1169
+ static void
1170
+ ubf_console_input(void *ptr)
1171
+ {
1172
+ read_console_input_args_t *args = ptr;
1173
+ SetEvent(args->handles[console_input_wakeup]);
1174
+ }
1175
+
1176
+ static void
1177
+ console_input_event_set(VALUE event, const char *name, VALUE value)
1178
+ {
1179
+ rb_hash_aset(event, ID2SYM(rb_intern(name)), value);
1180
+ }
1181
+
1182
+ static VALUE
1183
+ console_input_event(const INPUT_RECORD *record)
1184
+ {
1185
+ VALUE event = rb_hash_new();
1186
+
1187
+ switch (record->EventType) {
1188
+ case KEY_EVENT:
1189
+ console_input_event_set(event, "type", ID2SYM(rb_intern("key")));
1190
+ console_input_event_set(event, "key_down", record->Event.KeyEvent.bKeyDown ? Qtrue : Qfalse);
1191
+ console_input_event_set(event, "repeat_count", UINT2NUM(record->Event.KeyEvent.wRepeatCount));
1192
+ console_input_event_set(event, "virtual_key_code", UINT2NUM(record->Event.KeyEvent.wVirtualKeyCode));
1193
+ console_input_event_set(event, "virtual_scan_code", UINT2NUM(record->Event.KeyEvent.wVirtualScanCode));
1194
+ console_input_event_set(event, "unicode_char", UINT2NUM(record->Event.KeyEvent.uChar.UnicodeChar));
1195
+ console_input_event_set(event, "control_key_state", UINT2NUM(record->Event.KeyEvent.dwControlKeyState));
1196
+ break;
1197
+ case MOUSE_EVENT:
1198
+ console_input_event_set(event, "type", ID2SYM(rb_intern("mouse")));
1199
+ console_input_event_set(event, "position", rb_assoc_new(
1200
+ INT2NUM(record->Event.MouseEvent.dwMousePosition.Y),
1201
+ INT2NUM(record->Event.MouseEvent.dwMousePosition.X)));
1202
+ console_input_event_set(event, "button_state", UINT2NUM(record->Event.MouseEvent.dwButtonState));
1203
+ console_input_event_set(event, "control_key_state", UINT2NUM(record->Event.MouseEvent.dwControlKeyState));
1204
+ console_input_event_set(event, "event_flags", UINT2NUM(record->Event.MouseEvent.dwEventFlags));
1205
+ break;
1206
+ case WINDOW_BUFFER_SIZE_EVENT:
1207
+ console_input_event_set(event, "type", ID2SYM(rb_intern("window_buffer_size")));
1208
+ console_input_event_set(event, "size", rb_assoc_new(
1209
+ INT2NUM(record->Event.WindowBufferSizeEvent.dwSize.Y),
1210
+ INT2NUM(record->Event.WindowBufferSizeEvent.dwSize.X)));
1211
+ break;
1212
+ case MENU_EVENT:
1213
+ console_input_event_set(event, "type", ID2SYM(rb_intern("menu")));
1214
+ console_input_event_set(event, "command_id", UINT2NUM(record->Event.MenuEvent.dwCommandId));
1215
+ break;
1216
+ case FOCUS_EVENT:
1217
+ console_input_event_set(event, "type", ID2SYM(rb_intern("focus")));
1218
+ console_input_event_set(event, "set_focus", record->Event.FocusEvent.bSetFocus ? Qtrue : Qfalse);
1219
+ break;
1220
+ default:
1221
+ console_input_event_set(event, "type", UINT2NUM(record->EventType));
1222
+ break;
1223
+ }
1224
+
1225
+ return event;
1226
+ }
1227
+
1228
+ static VALUE
1229
+ console_input_events_read(VALUE vargs)
1230
+ {
1231
+ read_console_input_args_t *args = (read_console_input_args_t *)vargs;
1232
+ VALUE events;
1233
+ DWORD i;
1234
+
1235
+ rb_thread_call_without_gvl(nogvl_read_console_input, args,
1236
+ ubf_console_input, args);
1237
+ if (args->wait_result == WAIT_TIMEOUT) return rb_ary_new();
1238
+ if (args->wait_result != WAIT_OBJECT_0 + console_input_handle ||
1239
+ !args->result) {
1240
+ rb_syserr_fail(rb_w32_map_errno(args->error), 0);
1241
+ }
1242
+
1243
+ events = rb_ary_new_capa(args->count);
1244
+ for (i = 0; i < args->count; ++i) {
1245
+ rb_ary_push(events, console_input_event(&args->records[i]));
1246
+ }
1247
+ return events;
1248
+ }
1249
+
1250
+ static VALUE
1251
+ console_input_events_ensure(VALUE vargs)
1252
+ {
1253
+ read_console_input_args_t *args = (read_console_input_args_t *)vargs;
1254
+
1255
+ CloseHandle(args->handles[console_input_wakeup]);
1256
+ xfree(args->records);
1257
+ return Qnil;
1258
+ }
1259
+
1260
+ /*
1261
+ * call-seq:
1262
+ * io.console_input_events([max_events], timeout: nil) -> array
1263
+ *
1264
+ * Reads up to +max_events+ console input events, preserving their order.
1265
+ * The default is one event. Blocks until at least one event is available,
1266
+ * or for +timeout+ seconds if specified. Returns an empty Array on timeout.
1267
+ *
1268
+ * Each event is returned as a Hash. The +:type+ and remaining keys are:
1269
+ *
1270
+ * - +:key+ : +:key_down+, +:repeat_count+, +:virtual_key_code+,
1271
+ * +:virtual_scan_code+, +:unicode_char+, and +:control_key_state+.
1272
+ * - +:mouse+ : +:position+ ([row, column]), +:button_state+,
1273
+ * +:control_key_state+, and +:event_flags+.
1274
+ * - +:window_buffer_size+ : +:size+ ([rows, columns]).
1275
+ * - +:menu+ : +:command_id+.
1276
+ * - +:focus+ : +:set_focus+.
1277
+ *
1278
+ * This method is Windows only.
1279
+ *
1280
+ * You must require 'io/console' to use this method.
1281
+ */
1282
+ static VALUE
1283
+ console_input_events(int argc, VALUE *argv, VALUE io)
1284
+ {
1285
+ VALUE vmax = Qnil, vopts = Qnil, vtimeout = Qundef;
1286
+ VALUE values[1];
1287
+ ID keywords[1] = {id_timeout};
1288
+ DWORD max_events = 1;
1289
+ read_console_input_args_t args;
1290
+
1291
+ rb_scan_args(argc, argv, "01:", &vmax, &vopts);
1292
+ if (rb_get_kwargs(vopts, keywords, 0, 1, values)) {
1293
+ vtimeout = values[0];
1294
+ }
1295
+ if (!NIL_P(vmax)) {
1296
+ max_events = NUM2UINT(vmax);
1297
+ if (max_events == 0) rb_raise(rb_eArgError, "max_events must be positive");
1298
+ }
1299
+
1300
+ args.timeout = INFINITE;
1301
+ if (!NIL_OR_UNDEF_P(vtimeout)) {
1302
+ struct timeval timeout = rb_time_interval(vtimeout);
1303
+ uint64_t milliseconds = (uint64_t)timeout.tv_sec * 1000;
1304
+ milliseconds += ((uint64_t)timeout.tv_usec + 999) / 1000;
1305
+ args.timeout = milliseconds < INFINITE ? (DWORD)milliseconds : INFINITE - 1;
1306
+ }
1307
+
1308
+ args.handles[console_input_handle] =
1309
+ (HANDLE)rb_w32_get_osfhandle(GetReadFD(io));
1310
+ args.records = ALLOC_N(INPUT_RECORD, max_events);
1311
+ args.handles[console_input_wakeup] = CreateEvent(NULL, FALSE, FALSE, NULL);
1312
+ if (!args.handles[console_input_wakeup]) {
1313
+ int error = LAST_ERROR;
1314
+ xfree(args.records);
1315
+ rb_syserr_fail(error, 0);
1316
+ }
1317
+ args.length = max_events;
1318
+ args.count = 0;
1319
+ args.wait_result = WAIT_FAILED;
1320
+ args.error = ERROR_SUCCESS;
1321
+ args.result = FALSE;
1322
+ return rb_ensure(console_input_events_read, (VALUE)&args,
1323
+ console_input_events_ensure, (VALUE)&args);
1324
+ }
1325
+
966
1326
  /*
967
1327
  * call-seq:
968
1328
  * io.check_winsize_changed { ... } -> io
969
1329
  *
970
1330
  * Yields while console input events are queued.
971
1331
  *
1332
+ * Deprecated because it discards queued input events other than window buffer
1333
+ * size changes. Use IO#console_input_events instead to preserve all events.
1334
+ *
972
1335
  * This method is Windows only.
973
1336
  *
974
1337
  * You must require 'io/console' to use this method.
@@ -979,6 +1342,9 @@ console_check_winsize_changed(VALUE io)
979
1342
  HANDLE h;
980
1343
  DWORD num;
981
1344
 
1345
+ rb_category_warn(RB_WARN_CATEGORY_DEPRECATED,
1346
+ "IO#check_winsize_changed is deprecated; "
1347
+ "use IO#console_input_events instead");
982
1348
  h = (HANDLE)rb_w32_get_osfhandle(GetReadFD(io));
983
1349
  while (GetNumberOfConsoleInputEvents(h, &num) && num > 0) {
984
1350
  INPUT_RECORD rec;
@@ -991,6 +1357,7 @@ console_check_winsize_changed(VALUE io)
991
1357
  return io;
992
1358
  }
993
1359
  #else
1360
+ #define console_input_events rb_f_notimplement
994
1361
  #define console_check_winsize_changed rb_f_notimplement
995
1362
  #endif
996
1363
 
@@ -1291,6 +1658,54 @@ console_cursor_pos(VALUE io)
1291
1658
  #endif
1292
1659
  }
1293
1660
 
1661
+ static VALUE
1662
+ console_cursor_visibility(VALUE io, int visible)
1663
+ {
1664
+ #ifdef _WIN32
1665
+ HANDLE h = (HANDLE)rb_w32_get_osfhandle(GetWriteFD(io));
1666
+ CONSOLE_CURSOR_INFO info;
1667
+
1668
+ if (!GetConsoleCursorInfo(h, &info)) {
1669
+ rb_syserr_fail(LAST_ERROR, 0);
1670
+ }
1671
+ info.bVisible = visible;
1672
+ if (!SetConsoleCursorInfo(h, &info)) {
1673
+ rb_syserr_fail(LAST_ERROR, 0);
1674
+ }
1675
+ #else
1676
+ rb_io_write(io, rb_str_new_cstr(visible ? CSI "?25h" : CSI "?25l"));
1677
+ #endif
1678
+ return io;
1679
+ }
1680
+
1681
+ /*
1682
+ * call-seq:
1683
+ * io.hide_cursor -> io
1684
+ *
1685
+ * Hides the cursor.
1686
+ *
1687
+ * You must require 'io/console' to use this method.
1688
+ */
1689
+ static VALUE
1690
+ console_hide_cursor(VALUE io)
1691
+ {
1692
+ return console_cursor_visibility(io, 0);
1693
+ }
1694
+
1695
+ /*
1696
+ * call-seq:
1697
+ * io.show_cursor -> io
1698
+ *
1699
+ * Shows the cursor.
1700
+ *
1701
+ * You must require 'io/console' to use this method.
1702
+ */
1703
+ static VALUE
1704
+ console_show_cursor(VALUE io)
1705
+ {
1706
+ return console_cursor_visibility(io, 1);
1707
+ }
1708
+
1294
1709
  /*
1295
1710
  * call-seq:
1296
1711
  * io.goto(line, column) -> io
@@ -1710,7 +2125,7 @@ console_dev(int argc, VALUE *argv, VALUE klass)
1710
2125
  Check_Type(sym = argv[0], T_SYMBOL);
1711
2126
  }
1712
2127
 
1713
- // Force the class to be File.
2128
+ /* Force the class to be File. */
1714
2129
  if (klass == rb_cIO) klass = rb_cFile;
1715
2130
 
1716
2131
  if (console_dev_get(klass, &con)) {
@@ -1777,7 +2192,7 @@ console_dev(int argc, VALUE *argv, VALUE klass)
1777
2192
 
1778
2193
  /*
1779
2194
  * call-seq:
1780
- * io.getch(min: nil, time: nil, intr: nil) -> char
2195
+ * io.getch(min: nil, time: nil, intr: nil) -> char or nil
1781
2196
  *
1782
2197
  * See IO#getch.
1783
2198
  */
@@ -1793,10 +2208,17 @@ puts_call(VALUE io)
1793
2208
  return rb_io_write(io, rb_default_rs);
1794
2209
  }
1795
2210
 
2211
+ static VALUE
2212
+ funcall_with_rs(VALUE obj, ID mid)
2213
+ {
2214
+ const VALUE rs = rb_default_rs; /* rvalue in TruffleRuby */
2215
+ return rb_funcallv(obj, mid, 1, &rs);
2216
+ }
2217
+
1796
2218
  static VALUE
1797
2219
  gets_call(VALUE io)
1798
2220
  {
1799
- return rb_funcallv(io, id_gets, 0, 0);
2221
+ return funcall_with_rs(io, id_gets);
1800
2222
  }
1801
2223
 
1802
2224
  static VALUE
@@ -1819,8 +2241,7 @@ static VALUE
1819
2241
  str_chomp(VALUE str)
1820
2242
  {
1821
2243
  if (!NIL_P(str)) {
1822
- const VALUE rs = rb_default_rs; /* rvalue in TruffleRuby */
1823
- rb_funcallv(str, id_chomp_bang, 1, &rs);
2244
+ funcall_with_rs(str, id_chomp_bang);
1824
2245
  }
1825
2246
  return str;
1826
2247
  }
@@ -1881,7 +2302,7 @@ io_getpass(int argc, VALUE *argv, VALUE io)
1881
2302
  * call-seq:
1882
2303
  * io.ttyname -> string or nil
1883
2304
  *
1884
- * Returns name of associated terminal (tty) if +io+ is not a tty.
2305
+ * Returns name of associated terminal (tty) if +io+ is a tty.
1885
2306
  * Returns +nil+ otherwise.
1886
2307
  */
1887
2308
  static VALUE
@@ -1893,20 +2314,23 @@ console_ttyname(VALUE io)
1893
2314
  return rb_usascii_str_new_lit("con");
1894
2315
  # elif defined HAVE_TTYNAME_R
1895
2316
  {
2317
+ # ifdef TTYNAME_R_RETURNS_CHAR_P
2318
+ # define ttyname_r(fd, name, size) (ttyname_r(fd, name, size) == NULL ? errno : 0)
2319
+ # endif
1896
2320
  char termname[1024], *tn = termname;
1897
2321
  size_t size = sizeof(termname);
1898
2322
  int e;
1899
- if (ttyname_r(fd, tn, size) == 0)
2323
+ if ((e = ttyname_r(fd, tn, size)) == 0)
1900
2324
  return rb_interned_str_cstr(tn);
1901
- if ((e = errno) == ERANGE) {
2325
+ if (e == ERANGE) {
1902
2326
  VALUE s = rb_str_new(0, size);
1903
2327
  while (1) {
1904
2328
  tn = RSTRING_PTR(s);
1905
2329
  size = rb_str_capacity(s);
1906
- if (ttyname_r(fd, tn, size) == 0) {
2330
+ if ((e = ttyname_r(fd, tn, size)) == 0) {
1907
2331
  return rb_str_to_interned_str(rb_str_resize(s, strlen(tn)));
1908
2332
  }
1909
- if ((e = errno) != ERANGE) break;
2333
+ if (e != ERANGE) break;
1910
2334
  if ((size *= 2) >= INT_MAX/2) break;
1911
2335
  rb_str_resize(s, size);
1912
2336
  }
@@ -1931,6 +2355,103 @@ console_ttyname(VALUE io)
1931
2355
  # define console_ttyname rb_f_notimplement
1932
2356
  #endif
1933
2357
 
2358
+ typedef enum {
2359
+ platform_default,
2360
+ #if defined _WIN32
2361
+ platform_cygwin,
2362
+ platform_msys,
2363
+ #endif
2364
+ platform_any,
2365
+
2366
+ platform_default_bit = 1U << platform_default,
2367
+ #if defined _WIN32
2368
+ platform_cygwin_bit = 1U << platform_cygwin,
2369
+ platform_msys_bit = 1U << platform_msys,
2370
+ #endif
2371
+ platform_any_bit = (1U << platform_any) - 1 /* all bits */
2372
+ } console_platform_t;
2373
+
2374
+ /*
2375
+ * call-seq:
2376
+ * io.tty?([mode, ...]) -> true or false
2377
+ *
2378
+ * Returns +true+ if the stream is associated with a terminal device (tty),
2379
+ * +false+ otherwise.
2380
+ *
2381
+ * If one or more +type+s are given, returns +true+ if the stream is
2382
+ * associated with any of the specified tty types.
2383
+ *
2384
+ * - +nil+ : Returns the result of the default tty check, as if no type were
2385
+ * given. It can be combined with other types.
2386
+ * - +:any+ : Returns +true+ for any known kind of tty, including the
2387
+ * default tty.
2388
+ * - +:cygwin+ : Returns +true+ for cygwin tty, on Windows.
2389
+ * - +:msys+ : Returns +true+ for msys2 tty, on Windows.
2390
+ */
2391
+ static VALUE
2392
+ console_platform_tty_p(int argc, VALUE *argv, VALUE io)
2393
+ {
2394
+ VALUE ret = Qfalse;
2395
+ int mode = 0;
2396
+
2397
+ if (argc > 0) {
2398
+ int i;
2399
+ for (i = 0; i < argc; ++i) {
2400
+ VALUE m = argv[i];
2401
+ if (NIL_P(m)) {
2402
+ mode |= platform_default_bit;
2403
+ continue;
2404
+ }
2405
+ Check_Type(m, T_SYMBOL);
2406
+ if (m == ID2SYM(rb_intern("any"))) {
2407
+ mode |= platform_any_bit;
2408
+ }
2409
+ #if defined _WIN32
2410
+ else if (m == ID2SYM(rb_intern("cygwin"))) {
2411
+ mode |= platform_cygwin_bit;
2412
+ }
2413
+ else if (m == ID2SYM(rb_intern("msys"))) {
2414
+ mode |= platform_msys_bit;
2415
+ }
2416
+ #endif
2417
+ else {
2418
+ rb_raise(rb_eArgError, "unknown tty type: %+" PRIsVALUE, m);
2419
+ }
2420
+ }
2421
+ }
2422
+ if ((mode & platform_default_bit) || (mode == 0)) {
2423
+ ret = rb_call_super(0, 0);
2424
+ }
2425
+ if ((mode & ~platform_default_bit) && !RTEST(ret)) {
2426
+ #if defined _WIN32
2427
+ if (mode & (platform_cygwin_bit | platform_msys_bit)) {
2428
+ struct {
2429
+ FILE_NAME_INFO info;
2430
+ WCHAR rest[MAX_PATH];
2431
+ } buffer;
2432
+
2433
+ HANDLE h = (HANDLE)rb_w32_get_osfhandle(GetReadFD(io));
2434
+ if ((GetFileType(h) == FILE_TYPE_PIPE) &&
2435
+ GetFileInformationByHandleEx(h, FileNameInfo, &buffer, sizeof(buffer))) {
2436
+ WCHAR *const name = buffer.info.FileName;
2437
+ DWORD len = buffer.info.FileNameLength / sizeof(WCHAR);
2438
+ name[len] = L'\0';
2439
+ # define tty_pipe_p(type) \
2440
+ (memcmp(name, L"\\" #type "-", sizeof(L"\\" #type)) == 0 && \
2441
+ wcsstr(&name[rb_strlen_lit("\\" #type "-")], L"-pty") != NULL)
2442
+ if (!ret && (mode & platform_cygwin_bit)) {
2443
+ ret = tty_pipe_p(cygwin);
2444
+ }
2445
+ if (!ret && (mode & platform_msys_bit)) {
2446
+ ret = tty_pipe_p(msys);
2447
+ }
2448
+ }
2449
+ }
2450
+ #endif
2451
+ }
2452
+ return ret;
2453
+ }
2454
+
1934
2455
  /*
1935
2456
  * IO console methods
1936
2457
  */
@@ -1952,6 +2473,7 @@ Init_console(void)
1952
2473
  id_flush = rb_intern("flush");
1953
2474
  id_chomp_bang = rb_intern("chomp!");
1954
2475
  id_close = rb_intern("close");
2476
+ id_timeout = rb_intern("timeout");
1955
2477
  #define init_rawmode_opt_id(name) \
1956
2478
  rawmode_opt_ids[kwd_##name] = rb_intern(#name)
1957
2479
  init_rawmode_opt_id(min);
@@ -1966,11 +2488,31 @@ Init_console(void)
1966
2488
  void
1967
2489
  InitVM_console(void)
1968
2490
  {
2491
+ /* :nodoc: */
2492
+ VALUE mConsole = rb_define_module_under(rb_cIO, "Console");
2493
+ #ifdef _WIN32
2494
+ /* :nodoc: */
2495
+ VALUE mWindows = rb_define_module_under(mConsole, "Windows");
2496
+ #define define_win32_const(name) rb_define_const(mWindows, #name, UINT2NUM(name))
2497
+ EACH_VK(define_win32_const,;);
2498
+ define_win32_const(RIGHT_ALT_PRESSED);
2499
+ define_win32_const(LEFT_ALT_PRESSED);
2500
+ define_win32_const(RIGHT_CTRL_PRESSED);
2501
+ define_win32_const(LEFT_CTRL_PRESSED);
2502
+ define_win32_const(SHIFT_PRESSED);
2503
+ define_win32_const(NUMLOCK_ON);
2504
+ define_win32_const(SCROLLLOCK_ON);
2505
+ define_win32_const(CAPSLOCK_ON);
2506
+ define_win32_const(ENHANCED_KEY);
2507
+ #undef define_win32_const
2508
+ #endif
2509
+
1969
2510
  rb_define_method(rb_cIO, "raw", console_raw, -1);
1970
2511
  rb_define_method(rb_cIO, "raw!", console_set_raw, -1);
1971
2512
  rb_define_method(rb_cIO, "cooked", console_cooked, 0);
1972
2513
  rb_define_method(rb_cIO, "cooked!", console_set_cooked, 0);
1973
2514
  rb_define_method(rb_cIO, "getch", console_getch, -1);
2515
+ rb_define_method(rb_cIO, "input_pending?", console_input_pending_p, 0);
1974
2516
  rb_define_method(rb_cIO, "echo=", console_set_echo, 1);
1975
2517
  rb_define_method(rb_cIO, "echo?", console_echo_p, 0);
1976
2518
  rb_define_method(rb_cIO, "console_mode", console_conmode_get, 0);
@@ -1985,6 +2527,8 @@ InitVM_console(void)
1985
2527
  rb_define_method(rb_cIO, "goto", console_goto, 2);
1986
2528
  rb_define_method(rb_cIO, "cursor", console_cursor_pos, 0);
1987
2529
  rb_define_method(rb_cIO, "cursor=", console_cursor_set, 1);
2530
+ rb_define_method(rb_cIO, "hide_cursor", console_hide_cursor, 0);
2531
+ rb_define_method(rb_cIO, "show_cursor", console_show_cursor, 0);
1988
2532
  rb_define_method(rb_cIO, "cursor_up", console_cursor_up, 1);
1989
2533
  rb_define_method(rb_cIO, "cursor_down", console_cursor_down, 1);
1990
2534
  rb_define_method(rb_cIO, "cursor_left", console_cursor_left, 1);
@@ -1996,27 +2540,64 @@ InitVM_console(void)
1996
2540
  rb_define_method(rb_cIO, "scroll_backward", console_scroll_backward, 1);
1997
2541
  rb_define_method(rb_cIO, "clear_screen", console_clear_screen, 0);
1998
2542
  rb_define_method(rb_cIO, "pressed?", console_key_pressed_p, 1);
2543
+ rb_define_method(rb_cIO, "console_input_events", console_input_events, -1);
1999
2544
  rb_define_method(rb_cIO, "check_winsize_changed", console_check_winsize_changed, 0);
2000
2545
  rb_define_method(rb_cIO, "getpass", console_getpass, -1);
2001
2546
  rb_define_method(rb_cIO, "ttyname", console_ttyname, 0);
2547
+ {
2548
+ /* :nodoc: */
2549
+ VALUE platform = rb_define_module_under(rb_cIO, "platform_tty");
2550
+ {
2551
+ VALUE rb_cIO = platform;
2552
+ rb_define_method(rb_cIO, "tty?", console_platform_tty_p, -1);
2553
+ rb_define_method(rb_cIO, "isatty", console_platform_tty_p, -1);
2554
+ }
2555
+ #ifdef HAVE_RB_PREPEND_MODULE
2556
+ rb_prepend_module(rb_cIO, platform);
2557
+ #else
2558
+ rb_funcall(rb_cIO, rb_intern_const("prepend"), 1, platform);
2559
+ #endif
2560
+ }
2002
2561
  rb_define_singleton_method(rb_cIO, "console", console_dev, -1);
2003
2562
  {
2004
- /* :stopdoc: */
2563
+ /* :nodoc: */
2005
2564
  VALUE mReadable = rb_define_module_under(rb_cIO, "generic_readable");
2006
- /* :startdoc: */
2007
2565
  rb_define_method(mReadable, "getch", io_getch, -1);
2008
2566
  rb_define_method(mReadable, "getpass", io_getpass, -1);
2009
2567
  }
2010
2568
  {
2011
- /* :stopdoc: */
2012
- cConmode = rb_define_class_under(rb_cIO, "ConsoleMode", rb_cObject);
2013
- rb_define_const(cConmode, "VERSION", rb_obj_freeze(rb_str_new_cstr(IO_CONSOLE_VERSION)));
2569
+ /* :nodoc: */
2570
+ VALUE version = rb_obj_freeze(rb_str_new_cstr(IO_CONSOLE_VERSION));
2571
+ ID cid, deprecate_constant = rb_intern_const("deprecate_constant");
2572
+ rb_define_const(mConsole, "VERSION", version);
2573
+ /* :nodoc: */
2574
+ cConmode = rb_define_class_under(mConsole, "Mode", rb_cObject);
2575
+
2576
+ /* old internal names; do not use */
2577
+ cid = rb_intern_const("ConsoleMode");
2578
+ rb_const_set(rb_cIO, cid, cConmode);
2579
+ rb_funcall(rb_cIO, deprecate_constant, 1, ID2SYM(cid));
2580
+ cid = rb_intern_const("VERSION");
2581
+ rb_const_set(cConmode, cid, version);
2582
+ rb_funcall(cConmode, deprecate_constant, 1, ID2SYM(cid));
2583
+
2014
2584
  rb_define_alloc_func(cConmode, conmode_alloc);
2015
2585
  rb_undef_method(cConmode, "initialize");
2016
2586
  rb_define_method(cConmode, "initialize_copy", conmode_init_copy, 1);
2587
+ rb_define_method(cConmode, "echo?", conmode_get_echo, 0);
2588
+ rb_define_method(cConmode, "echo", conmode_get_echo, 0);
2017
2589
  rb_define_method(cConmode, "echo=", conmode_set_echo, 1);
2018
2590
  rb_define_method(cConmode, "raw!", conmode_set_raw, -1);
2019
2591
  rb_define_method(cConmode, "raw", conmode_raw_new, -1);
2020
- /* :startdoc: */
2592
+ rb_define_method(cConmode, "min", conmode_get_min, 0);
2593
+ rb_define_method(cConmode, "min=", conmode_set_min, 1);
2594
+ rb_define_method(cConmode, "time", conmode_get_time, 0);
2595
+ rb_define_method(cConmode, "time=", conmode_set_time, 1);
2596
+ #ifdef _WIN32
2597
+ rb_define_method(cConmode, "virtual_terminal_processing?", conmode_virtual_terminal_processing_p, 0);
2598
+ rb_define_method(cConmode, "virtual_terminal_processing=", conmode_set_virtual_terminal_processing, 1);
2599
+ rb_define_method(cConmode, "wrap_at_eol_output?", conmode_wrap_at_eol_output_p, 0);
2600
+ rb_define_method(cConmode, "wrap_at_eol_output=", conmode_set_wrap_at_eol_output, 1);
2601
+ #endif
2021
2602
  }
2022
2603
  }