fix(ios): add AI privacy consent alert (#14421)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Release Notes * **New Features** * Added AI feature consent flow requiring user agreement before enabling AI capabilities. * Added calendar integration support including CalDAV account linking and management. * Expanded workspace administration capabilities with detailed workspace analytics and configuration options. * **Improvements** * Enhanced workspace sharing and configuration controls. * Added support for calendar provider presets and subscriptions. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
@@ -7,4 +7,5 @@
|
||||
|
||||
import ApolloAPI
|
||||
|
||||
public typealias JSON = JSONObject
|
||||
/// The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf).
|
||||
public typealias JSON = String
|
||||
|
||||
@@ -7,35 +7,5 @@
|
||||
|
||||
import ApolloAPI
|
||||
|
||||
public typealias JSONObject = CustomJSON
|
||||
|
||||
public enum CustomJSON: CustomScalarType, Hashable {
|
||||
case dictionary([String: AnyHashable])
|
||||
case array([AnyHashable])
|
||||
|
||||
public init(_jsonValue value: JSONValue) throws {
|
||||
if let dict = value as? [String: AnyHashable] {
|
||||
self = .dictionary(dict)
|
||||
} else if let array = value as? [AnyHashable] {
|
||||
self = .array(array)
|
||||
} else {
|
||||
throw JSONDecodingError.couldNotConvert(value: value, to: CustomJSON.self)
|
||||
}
|
||||
}
|
||||
|
||||
public var _jsonValue: JSONValue {
|
||||
switch self {
|
||||
case let .dictionary(json as AnyHashable),
|
||||
let .array(json as AnyHashable):
|
||||
json
|
||||
}
|
||||
}
|
||||
|
||||
public static func == (lhs: CustomJSON, rhs: CustomJSON) -> Bool {
|
||||
lhs._jsonValue == rhs._jsonValue
|
||||
}
|
||||
|
||||
public func hash(into hasher: inout Hasher) {
|
||||
hasher.combine(_jsonValue)
|
||||
}
|
||||
}
|
||||
/// The `JSONObject` scalar type represents JSON objects as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf).
|
||||
public typealias JSONObject = String
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
// @generated
|
||||
// This file was automatically generated and should not be edited.
|
||||
|
||||
import ApolloAPI
|
||||
|
||||
public enum AdminWorkspaceSort: String, EnumType {
|
||||
case blobCount = "BlobCount"
|
||||
case blobSize = "BlobSize"
|
||||
case createdAt = "CreatedAt"
|
||||
case memberCount = "MemberCount"
|
||||
case publicPageCount = "PublicPageCount"
|
||||
case snapshotCount = "SnapshotCount"
|
||||
case snapshotSize = "SnapshotSize"
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
// @generated
|
||||
// This file was automatically generated and should not be edited.
|
||||
|
||||
import ApolloAPI
|
||||
|
||||
public enum CalendarProviderType: String, EnumType {
|
||||
case calDAV = "CalDAV"
|
||||
case google = "Google"
|
||||
}
|
||||
@@ -11,20 +11,13 @@ public struct AddContextFileInput: InputObject {
|
||||
}
|
||||
|
||||
public init(
|
||||
blobId: GraphQLNullable<String> = nil,
|
||||
contextId: String
|
||||
) {
|
||||
__data = InputDict([
|
||||
"blobId": blobId,
|
||||
"contextId": contextId
|
||||
])
|
||||
}
|
||||
|
||||
public var blobId: GraphQLNullable<String> {
|
||||
get { __data["blobId"] }
|
||||
set { __data["blobId"] = newValue }
|
||||
}
|
||||
|
||||
public var contextId: String {
|
||||
get { __data["contextId"] }
|
||||
set { __data["contextId"] = newValue }
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
// @generated
|
||||
// This file was automatically generated and should not be edited.
|
||||
|
||||
import ApolloAPI
|
||||
|
||||
public struct AdminUpdateWorkspaceInput: InputObject {
|
||||
public private(set) var __data: InputDict
|
||||
|
||||
public init(_ data: InputDict) {
|
||||
__data = data
|
||||
}
|
||||
|
||||
public init(
|
||||
avatarKey: GraphQLNullable<String> = nil,
|
||||
enableAi: GraphQLNullable<Bool> = nil,
|
||||
enableDocEmbedding: GraphQLNullable<Bool> = nil,
|
||||
enableSharing: GraphQLNullable<Bool> = nil,
|
||||
enableUrlPreview: GraphQLNullable<Bool> = nil,
|
||||
features: GraphQLNullable<[GraphQLEnum<FeatureType>]> = nil,
|
||||
id: String,
|
||||
name: GraphQLNullable<String> = nil,
|
||||
`public`: GraphQLNullable<Bool> = nil
|
||||
) {
|
||||
__data = InputDict([
|
||||
"avatarKey": avatarKey,
|
||||
"enableAi": enableAi,
|
||||
"enableDocEmbedding": enableDocEmbedding,
|
||||
"enableSharing": enableSharing,
|
||||
"enableUrlPreview": enableUrlPreview,
|
||||
"features": features,
|
||||
"id": id,
|
||||
"name": name,
|
||||
"public": `public`
|
||||
])
|
||||
}
|
||||
|
||||
public var avatarKey: GraphQLNullable<String> {
|
||||
get { __data["avatarKey"] }
|
||||
set { __data["avatarKey"] = newValue }
|
||||
}
|
||||
|
||||
public var enableAi: GraphQLNullable<Bool> {
|
||||
get { __data["enableAi"] }
|
||||
set { __data["enableAi"] = newValue }
|
||||
}
|
||||
|
||||
public var enableDocEmbedding: GraphQLNullable<Bool> {
|
||||
get { __data["enableDocEmbedding"] }
|
||||
set { __data["enableDocEmbedding"] = newValue }
|
||||
}
|
||||
|
||||
public var enableSharing: GraphQLNullable<Bool> {
|
||||
get { __data["enableSharing"] }
|
||||
set { __data["enableSharing"] = newValue }
|
||||
}
|
||||
|
||||
public var enableUrlPreview: GraphQLNullable<Bool> {
|
||||
get { __data["enableUrlPreview"] }
|
||||
set { __data["enableUrlPreview"] = newValue }
|
||||
}
|
||||
|
||||
public var features: GraphQLNullable<[GraphQLEnum<FeatureType>]> {
|
||||
get { __data["features"] }
|
||||
set { __data["features"] = newValue }
|
||||
}
|
||||
|
||||
public var id: String {
|
||||
get { __data["id"] }
|
||||
set { __data["id"] = newValue }
|
||||
}
|
||||
|
||||
public var name: GraphQLNullable<String> {
|
||||
get { __data["name"] }
|
||||
set { __data["name"] = newValue }
|
||||
}
|
||||
|
||||
public var `public`: GraphQLNullable<Bool> {
|
||||
get { __data["public"] }
|
||||
set { __data["public"] = newValue }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
// @generated
|
||||
// This file was automatically generated and should not be edited.
|
||||
|
||||
import ApolloAPI
|
||||
|
||||
public struct LinkCalDAVAccountInput: InputObject {
|
||||
public private(set) var __data: InputDict
|
||||
|
||||
public init(_ data: InputDict) {
|
||||
__data = data
|
||||
}
|
||||
|
||||
public init(
|
||||
displayName: GraphQLNullable<String> = nil,
|
||||
password: String,
|
||||
providerPresetId: String,
|
||||
username: String
|
||||
) {
|
||||
__data = InputDict([
|
||||
"displayName": displayName,
|
||||
"password": password,
|
||||
"providerPresetId": providerPresetId,
|
||||
"username": username
|
||||
])
|
||||
}
|
||||
|
||||
public var displayName: GraphQLNullable<String> {
|
||||
get { __data["displayName"] }
|
||||
set { __data["displayName"] = newValue }
|
||||
}
|
||||
|
||||
public var password: String {
|
||||
get { __data["password"] }
|
||||
set { __data["password"] = newValue }
|
||||
}
|
||||
|
||||
public var providerPresetId: String {
|
||||
get { __data["providerPresetId"] }
|
||||
set { __data["providerPresetId"] = newValue }
|
||||
}
|
||||
|
||||
public var username: String {
|
||||
get { __data["username"] }
|
||||
set { __data["username"] = newValue }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
// @generated
|
||||
// This file was automatically generated and should not be edited.
|
||||
|
||||
import ApolloAPI
|
||||
|
||||
public struct LinkCalendarAccountInput: InputObject {
|
||||
public private(set) var __data: InputDict
|
||||
|
||||
public init(_ data: InputDict) {
|
||||
__data = data
|
||||
}
|
||||
|
||||
public init(
|
||||
provider: GraphQLEnum<CalendarProviderType>,
|
||||
redirectUri: GraphQLNullable<String> = nil
|
||||
) {
|
||||
__data = InputDict([
|
||||
"provider": provider,
|
||||
"redirectUri": redirectUri
|
||||
])
|
||||
}
|
||||
|
||||
public var provider: GraphQLEnum<CalendarProviderType> {
|
||||
get { __data["provider"] }
|
||||
set { __data["provider"] = newValue }
|
||||
}
|
||||
|
||||
public var redirectUri: GraphQLNullable<String> {
|
||||
get { __data["redirectUri"] }
|
||||
set { __data["redirectUri"] = newValue }
|
||||
}
|
||||
}
|
||||
@@ -11,20 +11,34 @@ public struct ListUserInput: InputObject {
|
||||
}
|
||||
|
||||
public init(
|
||||
features: GraphQLNullable<[GraphQLEnum<FeatureType>]> = nil,
|
||||
first: GraphQLNullable<Int> = nil,
|
||||
keyword: GraphQLNullable<String> = nil,
|
||||
skip: GraphQLNullable<Int> = nil
|
||||
) {
|
||||
__data = InputDict([
|
||||
"features": features,
|
||||
"first": first,
|
||||
"keyword": keyword,
|
||||
"skip": skip
|
||||
])
|
||||
}
|
||||
|
||||
public var features: GraphQLNullable<[GraphQLEnum<FeatureType>]> {
|
||||
get { __data["features"] }
|
||||
set { __data["features"] = newValue }
|
||||
}
|
||||
|
||||
public var first: GraphQLNullable<Int> {
|
||||
get { __data["first"] }
|
||||
set { __data["first"] = newValue }
|
||||
}
|
||||
|
||||
public var keyword: GraphQLNullable<String> {
|
||||
get { __data["keyword"] }
|
||||
set { __data["keyword"] = newValue }
|
||||
}
|
||||
|
||||
public var skip: GraphQLNullable<Int> {
|
||||
get { __data["skip"] }
|
||||
set { __data["skip"] = newValue }
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
// @generated
|
||||
// This file was automatically generated and should not be edited.
|
||||
|
||||
import ApolloAPI
|
||||
|
||||
public struct ListWorkspaceInput: InputObject {
|
||||
public private(set) var __data: InputDict
|
||||
|
||||
public init(_ data: InputDict) {
|
||||
__data = data
|
||||
}
|
||||
|
||||
public init(
|
||||
enableAi: GraphQLNullable<Bool> = nil,
|
||||
enableDocEmbedding: GraphQLNullable<Bool> = nil,
|
||||
enableSharing: GraphQLNullable<Bool> = nil,
|
||||
enableUrlPreview: GraphQLNullable<Bool> = nil,
|
||||
features: GraphQLNullable<[GraphQLEnum<FeatureType>]> = nil,
|
||||
first: Int? = nil,
|
||||
keyword: GraphQLNullable<String> = nil,
|
||||
orderBy: GraphQLNullable<GraphQLEnum<AdminWorkspaceSort>> = nil,
|
||||
`public`: GraphQLNullable<Bool> = nil,
|
||||
skip: Int? = nil
|
||||
) {
|
||||
__data = InputDict([
|
||||
"enableAi": enableAi,
|
||||
"enableDocEmbedding": enableDocEmbedding,
|
||||
"enableSharing": enableSharing,
|
||||
"enableUrlPreview": enableUrlPreview,
|
||||
"features": features,
|
||||
"first": first,
|
||||
"keyword": keyword,
|
||||
"orderBy": orderBy,
|
||||
"public": `public`,
|
||||
"skip": skip
|
||||
])
|
||||
}
|
||||
|
||||
public var enableAi: GraphQLNullable<Bool> {
|
||||
get { __data["enableAi"] }
|
||||
set { __data["enableAi"] = newValue }
|
||||
}
|
||||
|
||||
public var enableDocEmbedding: GraphQLNullable<Bool> {
|
||||
get { __data["enableDocEmbedding"] }
|
||||
set { __data["enableDocEmbedding"] = newValue }
|
||||
}
|
||||
|
||||
public var enableSharing: GraphQLNullable<Bool> {
|
||||
get { __data["enableSharing"] }
|
||||
set { __data["enableSharing"] = newValue }
|
||||
}
|
||||
|
||||
public var enableUrlPreview: GraphQLNullable<Bool> {
|
||||
get { __data["enableUrlPreview"] }
|
||||
set { __data["enableUrlPreview"] = newValue }
|
||||
}
|
||||
|
||||
public var features: GraphQLNullable<[GraphQLEnum<FeatureType>]> {
|
||||
get { __data["features"] }
|
||||
set { __data["features"] = newValue }
|
||||
}
|
||||
|
||||
public var first: Int? {
|
||||
get { __data["first"] }
|
||||
set { __data["first"] = newValue }
|
||||
}
|
||||
|
||||
public var keyword: GraphQLNullable<String> {
|
||||
get { __data["keyword"] }
|
||||
set { __data["keyword"] = newValue }
|
||||
}
|
||||
|
||||
public var orderBy: GraphQLNullable<GraphQLEnum<AdminWorkspaceSort>> {
|
||||
get { __data["orderBy"] }
|
||||
set { __data["orderBy"] = newValue }
|
||||
}
|
||||
|
||||
public var `public`: GraphQLNullable<Bool> {
|
||||
get { __data["public"] }
|
||||
set { __data["public"] = newValue }
|
||||
}
|
||||
|
||||
public var skip: Int? {
|
||||
get { __data["skip"] }
|
||||
set { __data["skip"] = newValue }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
// @generated
|
||||
// This file was automatically generated and should not be edited.
|
||||
|
||||
import ApolloAPI
|
||||
|
||||
public struct UpdateWorkspaceCalendarsInput: InputObject {
|
||||
public private(set) var __data: InputDict
|
||||
|
||||
public init(_ data: InputDict) {
|
||||
__data = data
|
||||
}
|
||||
|
||||
public init(
|
||||
items: [WorkspaceCalendarItemInput],
|
||||
workspaceId: String
|
||||
) {
|
||||
__data = InputDict([
|
||||
"items": items,
|
||||
"workspaceId": workspaceId
|
||||
])
|
||||
}
|
||||
|
||||
public var items: [WorkspaceCalendarItemInput] {
|
||||
get { __data["items"] }
|
||||
set { __data["items"] = newValue }
|
||||
}
|
||||
|
||||
public var workspaceId: String {
|
||||
get { __data["workspaceId"] }
|
||||
set { __data["workspaceId"] = newValue }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
// @generated
|
||||
// This file was automatically generated and should not be edited.
|
||||
|
||||
import ApolloAPI
|
||||
|
||||
public struct WorkspaceCalendarItemInput: InputObject {
|
||||
public private(set) var __data: InputDict
|
||||
|
||||
public init(_ data: InputDict) {
|
||||
__data = data
|
||||
}
|
||||
|
||||
public init(
|
||||
colorOverride: GraphQLNullable<String> = nil,
|
||||
sortOrder: GraphQLNullable<Int> = nil,
|
||||
subscriptionId: String
|
||||
) {
|
||||
__data = InputDict([
|
||||
"colorOverride": colorOverride,
|
||||
"sortOrder": sortOrder,
|
||||
"subscriptionId": subscriptionId
|
||||
])
|
||||
}
|
||||
|
||||
public var colorOverride: GraphQLNullable<String> {
|
||||
get { __data["colorOverride"] }
|
||||
set { __data["colorOverride"] = newValue }
|
||||
}
|
||||
|
||||
public var sortOrder: GraphQLNullable<Int> {
|
||||
get { __data["sortOrder"] }
|
||||
set { __data["sortOrder"] = newValue }
|
||||
}
|
||||
|
||||
public var subscriptionId: String {
|
||||
get { __data["subscriptionId"] }
|
||||
set { __data["subscriptionId"] = newValue }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
// @generated
|
||||
// This file was automatically generated and should not be edited.
|
||||
|
||||
import ApolloAPI
|
||||
|
||||
public extension Objects {
|
||||
static let AdminWorkspace = ApolloAPI.Object(
|
||||
typename: "AdminWorkspace",
|
||||
implementedInterfaces: [],
|
||||
keyFields: nil
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
// @generated
|
||||
// This file was automatically generated and should not be edited.
|
||||
|
||||
import ApolloAPI
|
||||
|
||||
public extension Objects {
|
||||
static let AdminWorkspaceMember = ApolloAPI.Object(
|
||||
typename: "AdminWorkspaceMember",
|
||||
implementedInterfaces: [],
|
||||
keyFields: nil
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
// @generated
|
||||
// This file was automatically generated and should not be edited.
|
||||
|
||||
import ApolloAPI
|
||||
|
||||
public extension Objects {
|
||||
static let AdminWorkspaceSharedLink = ApolloAPI.Object(
|
||||
typename: "AdminWorkspaceSharedLink",
|
||||
implementedInterfaces: [],
|
||||
keyFields: nil
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
// @generated
|
||||
// This file was automatically generated and should not be edited.
|
||||
|
||||
import ApolloAPI
|
||||
|
||||
public extension Objects {
|
||||
static let CalendarAccountObjectType = ApolloAPI.Object(
|
||||
typename: "CalendarAccountObjectType",
|
||||
implementedInterfaces: [],
|
||||
keyFields: nil
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
// @generated
|
||||
// This file was automatically generated and should not be edited.
|
||||
|
||||
import ApolloAPI
|
||||
|
||||
public extension Objects {
|
||||
static let CalendarCalDAVProviderPresetObjectType = ApolloAPI.Object(
|
||||
typename: "CalendarCalDAVProviderPresetObjectType",
|
||||
implementedInterfaces: [],
|
||||
keyFields: nil
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
// @generated
|
||||
// This file was automatically generated and should not be edited.
|
||||
|
||||
import ApolloAPI
|
||||
|
||||
public extension Objects {
|
||||
static let CalendarEventObjectType = ApolloAPI.Object(
|
||||
typename: "CalendarEventObjectType",
|
||||
implementedInterfaces: [],
|
||||
keyFields: nil
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
// @generated
|
||||
// This file was automatically generated and should not be edited.
|
||||
|
||||
import ApolloAPI
|
||||
|
||||
public extension Objects {
|
||||
static let CalendarSubscriptionObjectType = ApolloAPI.Object(
|
||||
typename: "CalendarSubscriptionObjectType",
|
||||
implementedInterfaces: [],
|
||||
keyFields: nil
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
// @generated
|
||||
// This file was automatically generated and should not be edited.
|
||||
|
||||
import ApolloAPI
|
||||
|
||||
public extension Objects {
|
||||
static let WorkspaceCalendarItemObjectType = ApolloAPI.Object(
|
||||
typename: "WorkspaceCalendarItemObjectType",
|
||||
implementedInterfaces: [],
|
||||
keyFields: nil
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
// @generated
|
||||
// This file was automatically generated and should not be edited.
|
||||
|
||||
import ApolloAPI
|
||||
|
||||
public extension Objects {
|
||||
static let WorkspaceCalendarObjectType = ApolloAPI.Object(
|
||||
typename: "WorkspaceCalendarObjectType",
|
||||
implementedInterfaces: [],
|
||||
keyFields: nil
|
||||
)
|
||||
}
|
||||
@@ -20,6 +20,9 @@ public enum SchemaMetadata: ApolloAPI.SchemaMetadata {
|
||||
|
||||
public static func objectType(forTypename typename: String) -> ApolloAPI.Object? {
|
||||
switch typename {
|
||||
case "AdminWorkspace": return AffineGraphQL.Objects.AdminWorkspace
|
||||
case "AdminWorkspaceMember": return AffineGraphQL.Objects.AdminWorkspaceMember
|
||||
case "AdminWorkspaceSharedLink": return AffineGraphQL.Objects.AdminWorkspaceSharedLink
|
||||
case "AggregateBucketHitsObjectType": return AffineGraphQL.Objects.AggregateBucketHitsObjectType
|
||||
case "AggregateBucketObjectType": return AffineGraphQL.Objects.AggregateBucketObjectType
|
||||
case "AggregateResultObjectType": return AffineGraphQL.Objects.AggregateResultObjectType
|
||||
@@ -27,6 +30,10 @@ public enum SchemaMetadata: ApolloAPI.SchemaMetadata {
|
||||
case "BlobUploadInit": return AffineGraphQL.Objects.BlobUploadInit
|
||||
case "BlobUploadPart": return AffineGraphQL.Objects.BlobUploadPart
|
||||
case "BlobUploadedPart": return AffineGraphQL.Objects.BlobUploadedPart
|
||||
case "CalendarAccountObjectType": return AffineGraphQL.Objects.CalendarAccountObjectType
|
||||
case "CalendarCalDAVProviderPresetObjectType": return AffineGraphQL.Objects.CalendarCalDAVProviderPresetObjectType
|
||||
case "CalendarEventObjectType": return AffineGraphQL.Objects.CalendarEventObjectType
|
||||
case "CalendarSubscriptionObjectType": return AffineGraphQL.Objects.CalendarSubscriptionObjectType
|
||||
case "ChatMessage": return AffineGraphQL.Objects.ChatMessage
|
||||
case "CommentChangeObjectType": return AffineGraphQL.Objects.CommentChangeObjectType
|
||||
case "CommentChangeObjectTypeEdge": return AffineGraphQL.Objects.CommentChangeObjectTypeEdge
|
||||
@@ -107,6 +114,8 @@ public enum SchemaMetadata: ApolloAPI.SchemaMetadata {
|
||||
case "UserQuotaUsageType": return AffineGraphQL.Objects.UserQuotaUsageType
|
||||
case "UserSettingsType": return AffineGraphQL.Objects.UserSettingsType
|
||||
case "UserType": return AffineGraphQL.Objects.UserType
|
||||
case "WorkspaceCalendarItemObjectType": return AffineGraphQL.Objects.WorkspaceCalendarItemObjectType
|
||||
case "WorkspaceCalendarObjectType": return AffineGraphQL.Objects.WorkspaceCalendarObjectType
|
||||
case "WorkspaceDocMeta": return AffineGraphQL.Objects.WorkspaceDocMeta
|
||||
case "WorkspacePermissions": return AffineGraphQL.Objects.WorkspacePermissions
|
||||
case "WorkspaceQuotaHumanReadableType": return AffineGraphQL.Objects.WorkspaceQuotaHumanReadableType
|
||||
|
||||
Reference in New Issue
Block a user