Skip to content

Commit bcc6a42

Browse files
marinofaggianaclaucambrampivchevAndyScherzingeri2h3
authored
Version 6.0.4 (#131)
* nextcloud/ios#2390 Signed-off-by: Marino Faggiana <8616947+marinofaggiana@users.noreply.github.com> * add async/await searchMedia Signed-off-by: Marino Faggiana <8616947+marinofaggiana@users.noreply.github.com> * Livephoto detect (#51) * Update NKModel.swift * cleaning Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * Fix build on macOS broken by freeDisk change (#53) Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> * livePhotoFile -> fileId Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * rollback Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * rollback Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * Fix error description chunk Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * chunk error fix Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * errorDescription Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * added description Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * Change to markdown Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * Added e2ee options versionApi Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * change variable name Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * endpoint update Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * Fix chunk S3 (#56) * cod Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * fix Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> --------- Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * public func Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * lint Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * remove description Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * fix Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * fix Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * fix log Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * Resolution - GPS (#59) * fix resolution-gps Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> --------- Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * set h, w to Double Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * coding (#61) Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * normalized taskHandler taskHandler(task) }. Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * add filename in trash (#63) * add filename Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * disable Build and test Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> --------- Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * Nextcloud Assistant (#66) * getTextProcessingTaskTypes Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * getTextProcessingTaskTypes Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * NKTextProcessingTaskTypes Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * coding Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * coding Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * coding Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * coding Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * fix Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * Add init Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * Change model Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> --------- Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> Co-authored-by: Milen Pivchev <milen.pivchev@gmail.com> * Add support for visionOS, fix tvOS and watchOS support (#67) * Add CoreServices import for visionOS Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> * Fix screen scaling calculation when UIScreen is not available (for visionOS) Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> * Fix availability of UIImage.resizeImage on non iOS platforms Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> * Add visionOS target support to NextcloudKit Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> * Bump watchOS version up, per dependency requirements Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> * Remove reachability observation on watchOS, as this is unsupported in Alamofire Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> * Remove free disk calculation on watchOS which cannot be done Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> * Bump up tvOS version per dependencies Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> * Also restrict free space calculation on tvOS, as unavailable Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> --------- Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> * Task description (#70) * coding Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * task.taskDescription Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * DownloadingFinish Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * fix Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * improvements Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * fix Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> --------- Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * change TypeIconFile (#71) Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * Core Preview Improvements and use only fileId Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * fix Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * improvements Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * Improvements Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * added compressionQuality Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * Improvements (#76) Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * improved code Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * fix paramenters default Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * fix paramenters default Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * improvements Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * cod Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * improvements Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * downloadPreview Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * added downloadPreview url Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * httpCookieStorage (#80) Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * new getUserProfile() Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * change paramenter name Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * Account (#82) * cod Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * cod Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * cod Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> --------- Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * cod Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * Revert "cod" This reverts commit 83b75a1. Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * Filename validator (#83) * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * cleanup Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * Make singleton Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> --------- Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * fix session delegate Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * fix Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * Filename validator (#92) * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * cleanup Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * Make singleton Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> --------- Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> Co-authored-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * NextcloudKit Version 5 - Multisession (#94) --------- Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> Co-authored-by: Milen Pivchev <milen.pivchev@gmail.com> * NextcloudKit V 5 Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * fix Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * requestCachePolicy Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * cache Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * cache Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * cache Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * Add optional spaces and periods - WCF Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * Response (#97) * API Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * assistant Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * comments Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * dashboard Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * e2ee Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * groupfolders Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * hovercard Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * login Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * nctext Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * pn Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * richdocuments Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * search Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * share Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * userstatus Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * webdav Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * upload Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * API Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * download Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * upload Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * NextcloudKitSessionDelegate Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * normalized Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> --------- Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * ThreadSafeArray Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * logger delegate Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * fix message 503 Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * public Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * fix error Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * Add reuse compliance (#96) * Auto rename (#99) * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * License Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * Licenses Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * Swiftlint fixes Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * Fix lint issue Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * Fix ordering Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * Refactor Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * License Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * Licenses Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * Swiftlint fixes Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * Fix lint issue Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * Fix ordering Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * Refactor Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> --------- Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> Co-authored-by: Marino Faggiana <marino@marinofaggiana.com> * Keep original extension Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * Refactor Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * License (#102) Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * ( multipathServiceType ) Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * Add more extensive test for AutoRenamer (#101) * Add more extensive test Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * Force check Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * Revert "Force check" This reverts commit b7fadf6. * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> --------- Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> Co-authored-by: Marino Faggiana <marino@marinofaggiana.com> * Split NKModel.swift into designated source code files for every contained type. Signed-off-by: Iva Horn <iva.horn@icloud.com> * Update README.md (#106) Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * Prettier Landing Page (#108) - Replaced logo with an self-created image based on the Apple symbol design for frameworks. - Removed the "V 2" in the top level heading because it contradicts the current major version 5. - Corrected alt text of image which appears to be copied and pasted from Nextcloud iOS app README. - Improved orthography on testing headings. - Added syntax definitions to some code fences. - Minor formatting improvements. * Reenabled build on macOS. (#109) Certain APIs used were not available on macOS in general or the currently supported version per package manifest. I added necessary code switches to make the code at least build again. Co-authored-by: Marino Faggiana <marino@marinofaggiana.com> * Track ocId in NKTrash items (#110) Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> * Dav pagination (#111) * add paginate Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * StandardHeaders Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * code Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * fix Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> --------- Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * Terms of Service (#112) * tos Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * getTermsOfService Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * getTermsOfService Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * cod Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * code Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * cod Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * signTermsOfService Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * cod Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * cod Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * cod Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * cleaning Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> --------- Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * Added capabilities to manage share download limits. (#107) - Requesting share download limit capability of files_downloadlimit app. - Augmented WebDAV metadata requests and responses with optional share download limits. - Extended NextcloudKit with methods to manage share download limits via OCS. Signed-off-by: Iva Horn <iva.horn@icloud.com> * Recommended files (#115) * cod Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * cod Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * cod Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> --------- Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * improvements Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * Allow setting custom destinations in chunked upload (#116) * Allow setting a different destination file name from local file name in chunked upload Using macOS File Provider APIs we rely on the system to provide us with a URL pointing the an item's local modified contents. This URL last path component is a UUID and does not represent the expected file name of the item. The current API of uploadChunk presents a problem because it assumes the local content file's filename is the same as what will eventually be uploaded to the server. This commit addresses the issue by allowing users of this function to provide a destination file name which will replace the provided local filename, if used. Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> * Make file chunks output directory customisable Currently the chunking procedure produces file chunks within the directory of the input file. However, this fails in cases where the directory is read-only. This can be fixed by allowing the chunked files output directory to be changed Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> --------- Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> * added httpMaximumConnectionsPerHost Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * httpMaximumConnectionsPerHost Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * appendSession Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * cod Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * Added feature to get download limits explicitly via OCS API. Signed-off-by: Iva Horn <iva.horn@icloud.com> * Update FileNameValidator.swift * Make NextcloudKit Swift 6 compatible (#119) * Define NKDownloadLimit as a sendable struct Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> * Define NKFile as a sendable struct Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> * Define NKSession as a sendable struct Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> f Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> * Define UTTypeConformsToServer as a sendable struct Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> * Define NKError as a sendable, equatable struct Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> * Convert ThreadSafeArray into a sendable struct This also modifies the behaviour of its methods to be sendable compliant by using locking instead of a dispatch queue Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> * Make FileAutoRenamer Sendable compliant Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> f autorenamer Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> f autorenamer Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> f autorenamer 3 Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> * Make FileNameValidator Sendable compliant Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> f filenamevalidator Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> * Fix copyright header in NSLock extension Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> * Use self createFolder rather than going for shared instance Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> * Make NextcloudKitDelegate protocol sendable Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> * Make NKBackground a final class Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> * Make NextcloudKitSessionDelegate conform to sendable Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> * Use the appropriate nkCommonInstance in NKSession initialiser Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> * Make nkCommonInstance mutable in NextcloudKit Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> * Only provide shared NextcloudKit instance on swift <6 Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> f shared nckit Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> * When using swift 6, use a task to retrieve screen scale on iOS Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> * Make NKFileProperty a sendable struct Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> f nkfileproperty Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> * Convert NKCommon into a sendable struct This required modifying the caches into standard maps. Unfortunately NSCache is not sendable compliant. I have made the changes take effect only when building with Swift 6 Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> * Fix whitespace handling in FileAutoRenamer Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> * Remove leading dot for hidden file filenames in autorenamer This is seemingly expected by the autotests Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> --------- Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> Co-authored-by: Milen Pivchev <milen.pivchev@gmail.com> * Add static/refactor Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * NextcloudKitDelegate Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * change Name to NKMonitor Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * Added NKInterceptor Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * Interceptor Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * Interceptor Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * interceptor Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * cleaning Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * Interceptor Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * INterceptor Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * sendable Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * test Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * cleaning Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * checkUnauthorized Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * debug Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * X-NC-CheckUnauthorized Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * test Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * cod Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * cod Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * cod Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * common (#121) * fix Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * cod Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> --------- Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * cleaning Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * cleaning Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * added checkUnauthorized options Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * cod Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * fix Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * cleaning Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * cod Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * setupLog Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * dependencies version updated Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * improved code Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * improved Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * cleaning Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * debugPrint Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * debugprint Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * cod Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * log Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * cleaning Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * LOG (#123) * cod Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * cod Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> --------- Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * added request delagate Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * cleaning Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * protocol NextcloudKitDelegate optional Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * added getRequestBodyFileExists Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * public Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * fix Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * init Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * Interceptor & Monitor Improved (#126) * cod Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * cod Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * code Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * fix Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * improvements Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * cod Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> --------- Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> Co-authored-by: Marino Faggiana <marino@marinofaggiana.com> * Improved code Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * Improvements Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * Upload fix multisession (#129) * fix Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * fix Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> --------- Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> Co-authored-by: Marino Faggiana <marino@marinofaggiana.com> * Fix: Login poll without cached responses. Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * Assistant V2 Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> Fix compile Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> Refactor Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> Refactor Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> Refactor Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> Finish Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> Compliance Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> PR fixes Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> Assistant API v2 (#124) * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * Fix compile Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * Refactor Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * Refactor Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * Refactor Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * Finish Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * Compliance Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * PR fixes Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * Upload fix multisession (#129) * fix Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> * fix Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> --------- Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> Co-authored-by: Marino Faggiana <marino@marinofaggiana.com> * Fix: Login poll without cached responses. Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * Linter Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> --------- Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> Co-authored-by: Marino Faggiana <marino.faggiana@nextcloud.com> Co-authored-by: Marino Faggiana <marino@marinofaggiana.com> --------- Signed-off-by: Marino Faggiana <8616947+marinofaggiana@users.noreply.github.com> Signed-off-by: Marino Faggiana <marino@marinofaggiana.com> Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com> Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> Signed-off-by: Iva Horn <iva.horn@icloud.com> Co-authored-by: Marino Faggiana <8616947+marinofaggiana@users.noreply.github.com> Co-authored-by: Marino Faggiana <marino@marinofaggiana.com> Co-authored-by: Claudio Cambra <claudio.cambra@nextcloud.com> Co-authored-by: Milen Pivchev <milen.pivchev@gmail.com> Co-authored-by: Andy Scherzinger <info@andy-scherzinger.de> Co-authored-by: Iva Horn <iva.horn@icloud.com>
1 parent 7a59ec3 commit bcc6a42

6 files changed

Lines changed: 466 additions & 72 deletions

File tree

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
// SPDX-FileCopyrightText: Nextcloud GmbH
2+
// SPDX-FileCopyrightText: 2025 Milen Pivchev
3+
// SPDX-License-Identifier: GPL-3.0-or-later
4+
5+
import SwiftyJSON
6+
7+
public class NKTextProcessingTask {
8+
public var id: Int?
9+
public var type: String?
10+
public var status: Int?
11+
public var userId: String?
12+
public var appId: String?
13+
public var input: String?
14+
public var output: String?
15+
public var identifier: String?
16+
public var completionExpectedAt: Double?
17+
18+
public init(id: Int? = nil, type: String? = nil, status: Int? = nil, userId: String? = nil, appId: String? = nil, input: String? = nil, output: String? = nil, identifier: String? = nil, completionExpectedAt: Double? = nil) {
19+
self.id = id
20+
self.type = type
21+
self.status = status
22+
self.userId = userId
23+
self.appId = appId
24+
self.input = input
25+
self.output = output
26+
self.identifier = identifier
27+
self.completionExpectedAt = completionExpectedAt
28+
}
29+
30+
public init?(json: JSON) {
31+
self.id = json["id"].int
32+
self.type = json["type"].string
33+
self.status = json["status"].int
34+
self.userId = json["userId"].string
35+
self.appId = json["appId"].string
36+
self.input = json["input"].string
37+
self.output = json["output"].string
38+
self.identifier = json["identifier"].string
39+
self.completionExpectedAt = json["completionExpectedAt"].double
40+
}
41+
42+
static func deserialize(multipleObjects data: JSON) -> [NKTextProcessingTask]? {
43+
guard let allResults = data.array else { return nil }
44+
return allResults.compactMap(NKTextProcessingTask.init)
45+
}
46+
47+
static func deserialize(singleObject data: JSON) -> NKTextProcessingTask? {
48+
NKTextProcessingTask(json: data)
49+
}
50+
51+
public static func toV2(tasks: [NKTextProcessingTask]) -> TaskList {
52+
let tasks = tasks.map { task in
53+
AssistantTask(
54+
id: Int64(task.id ?? 0),
55+
type: task.type,
56+
status: String(task.status ?? 0),
57+
userId: task.userId,
58+
appId: task.appId,
59+
input: TaskInput(input: task.input),
60+
output: TaskOutput(output: task.output),
61+
completionExpectedAt: Int(task.completionExpectedAt ?? 0),
62+
progress: nil,
63+
lastUpdated: nil,
64+
scheduledAt: nil,
65+
endedAt: nil
66+
)
67+
}
68+
69+
return TaskList(tasks: tasks)
70+
}
71+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
// SPDX-FileCopyrightText: Nextcloud GmbH
2+
// SPDX-FileCopyrightText: 2025 Milen Pivchev
3+
// SPDX-License-Identifier: GPL-3.0-or-later
4+
5+
import SwiftyJSON
6+
7+
public class NKTextProcessingTaskType {
8+
public var id: String?
9+
public var name: String?
10+
public var description: String?
11+
12+
public init(id: String? = nil, name: String? = nil, description: String? = nil) {
13+
self.id = id
14+
self.name = name
15+
self.description = description
16+
}
17+
18+
public init?(json: JSON) {
19+
self.id = json["id"].string
20+
self.name = json["name"].string
21+
self.description = json["description"].string
22+
}
23+
24+
static func deserialize(multipleObjects data: JSON) -> [NKTextProcessingTaskType]? {
25+
guard let allResults = data.array else { return nil }
26+
return allResults.compactMap(NKTextProcessingTaskType.init)
27+
}
28+
29+
public static func toV2(type: [NKTextProcessingTaskType]) -> TaskTypes {
30+
let types = type.map { type in
31+
TaskTypeData(id: type.id, name: type.name, description: type.description, inputShape: nil, outputShape: nil)
32+
}
33+
34+
return TaskTypes(types: types)
35+
}
36+
}
37+
38+
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
// SPDX-FileCopyrightText: Nextcloud GmbH
2+
// SPDX-FileCopyrightText: 2025 Milen Pivchev
3+
// SPDX-License-Identifier: GPL-3.0-or-later
4+
5+
import SwiftyJSON
6+
7+
public struct TaskList: Codable {
8+
public var tasks: [AssistantTask]
9+
10+
static func deserialize(from data: JSON) -> TaskList? {
11+
let tasks = data.arrayValue.map { taskJson in
12+
AssistantTask(
13+
id: taskJson["id"].int64Value,
14+
type: taskJson["type"].string,
15+
status: taskJson["status"].string,
16+
userId: taskJson["userId"].string,
17+
appId: taskJson["appId"].string,
18+
input: TaskInput(input: taskJson["input"]["input"].string),
19+
output: TaskOutput(output: taskJson["output"]["output"].string),
20+
completionExpectedAt: taskJson["completionExpectedAt"].int,
21+
progress: taskJson["progress"].int,
22+
lastUpdated: taskJson["lastUpdated"].int,
23+
scheduledAt: taskJson["scheduledAt"].int,
24+
endedAt: taskJson["endedAt"].int
25+
)
26+
}
27+
28+
return TaskList(tasks: tasks)
29+
}
30+
}
31+
32+
public struct AssistantTask: Codable {
33+
public let id: Int64
34+
public let type: String?
35+
public let status: String?
36+
public let userId: String?
37+
public let appId: String?
38+
public let input: TaskInput?
39+
public let output: TaskOutput?
40+
public let completionExpectedAt: Int?
41+
public var progress: Int?
42+
public let lastUpdated: Int?
43+
public let scheduledAt: Int?
44+
public let endedAt: Int?
45+
46+
public init(id: Int64, type: String?, status: String?, userId: String?, appId: String?, input: TaskInput?, output: TaskOutput?, completionExpectedAt: Int?, progress: Int? = nil, lastUpdated: Int?, scheduledAt: Int?, endedAt: Int?) {
47+
self.id = id
48+
self.type = type
49+
self.status = status
50+
self.userId = userId
51+
self.appId = appId
52+
self.input = input
53+
self.output = output
54+
self.completionExpectedAt = completionExpectedAt
55+
self.progress = progress
56+
self.lastUpdated = lastUpdated
57+
self.scheduledAt = scheduledAt
58+
self.endedAt = endedAt
59+
}
60+
61+
static func deserialize(from data: JSON) -> AssistantTask? {
62+
let task = AssistantTask(
63+
id: data["id"].int64Value,
64+
type: data["type"].string,
65+
status: data["status"].string,
66+
userId: data["userId"].string,
67+
appId: data["appId"].string,
68+
input: TaskInput(input: data["input"]["input"].string),
69+
output: TaskOutput(output: data["output"]["output"].string),
70+
completionExpectedAt: data["completionExpectedAt"].int,
71+
progress: data["progress"].int,
72+
lastUpdated: data["lastUpdated"].int,
73+
scheduledAt: data["scheduledAt"].int,
74+
endedAt: data["endedAt"].int
75+
)
76+
77+
return task
78+
}
79+
}
80+
81+
public struct TaskInput: Codable {
82+
public var input: String?
83+
84+
public init(input: String? = nil) {
85+
self.input = input
86+
}
87+
}
88+
89+
public struct TaskOutput: Codable {
90+
public var output: String?
91+
92+
public init(output: String? = nil) {
93+
self.output = output
94+
}
95+
}
96+
97+
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
// SPDX-FileCopyrightText: Nextcloud GmbH
2+
// SPDX-FileCopyrightText: 2025 Milen Pivchev
3+
// SPDX-License-Identifier: GPL-3.0-or-later
4+
5+
import SwiftyJSON
6+
7+
public struct TaskTypes: Codable {
8+
public let types: [TaskTypeData]
9+
10+
static func deserialize(from data: JSON) -> TaskTypes? {
11+
var taskTypes: [TaskTypeData] = []
12+
13+
for (key, subJson) in data {
14+
let taskTypeData = TaskTypeData(
15+
id: key,
16+
name: subJson["name"].string,
17+
description: subJson["description"].string,
18+
inputShape: subJson["inputShape"].dictionary != nil ? TaskInputShape(
19+
input: subJson["inputShape"]["input"].dictionary != nil ? Shape(
20+
name: subJson["inputShape"]["input"]["name"].stringValue,
21+
description: subJson["inputShape"]["input"]["description"].stringValue,
22+
type: subJson["inputShape"]["input"]["type"].stringValue
23+
) : nil
24+
) : nil,
25+
outputShape: subJson["outputShape"].dictionary != nil ? TaskOutputShape(
26+
output: subJson["outputShape"]["output"].dictionary != nil ? Shape(
27+
name: subJson["outputShape"]["output"]["name"].stringValue,
28+
description: subJson["outputShape"]["output"]["description"].stringValue,
29+
type: subJson["outputShape"]["output"]["type"].stringValue
30+
) : nil
31+
) : nil
32+
)
33+
34+
taskTypes.append(taskTypeData)
35+
}
36+
37+
return TaskTypes(types: taskTypes)
38+
}
39+
}
40+
41+
public struct TaskTypeData: Codable {
42+
public let id: String?
43+
public let name: String?
44+
public let description: String?
45+
public let inputShape: TaskInputShape?
46+
public let outputShape: TaskOutputShape?
47+
48+
public init(id: String?, name: String?, description: String?, inputShape: TaskInputShape?, outputShape: TaskOutputShape?) {
49+
self.id = id
50+
self.name = name
51+
self.description = description
52+
self.inputShape = inputShape
53+
self.outputShape = outputShape
54+
}
55+
}
56+
57+
public struct TaskInputShape: Codable {
58+
public let input: Shape?
59+
60+
public init(input: Shape?) {
61+
self.input = input
62+
}
63+
}
64+
65+
public struct TaskOutputShape: Codable {
66+
public let output: Shape?
67+
68+
public init(output: Shape?) {
69+
self.output = output
70+
}
71+
}
72+
73+
public struct Shape: Codable {
74+
public let name: String
75+
public let description: String
76+
public let type: String
77+
78+
public init(name: String, description: String, type: String) {
79+
self.name = name
80+
self.description = description
81+
self.type = type
82+
}
83+
}
84+
85+
86+
87+
88+
89+

0 commit comments

Comments
 (0)