├── .gitignore ├── .swift-version ├── .swiftlint.yml ├── Cartfile ├── Examples ├── Leaderboard │ ├── Cartfile │ ├── Leaderboard.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ ├── Leaderboard │ │ ├── Info.plist │ │ └── Sources │ │ │ ├── Leaderbot.swift │ │ │ └── main.swift │ ├── Package.swift │ └── Podfile └── Robot or Not Bot │ ├── Cartfile │ ├── Package.swift │ ├── Podfile │ ├── Robot Or Not Bot.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── Robot Or Not Bot │ ├── Info.plist │ └── Sources │ └── main.swift ├── Frameworks ├── Starscream.xcframework │ ├── Info.plist │ ├── ios-arm64_armv7 │ │ ├── BCSymbolMaps │ │ │ ├── 1684A708-C83D-30AD-A383-D04142982E4B.bcsymbolmap │ │ │ └── 663F15FE-A93D-3B74-BF78-331B4E39C1C3.bcsymbolmap │ │ ├── Starscream.framework │ │ │ ├── Headers │ │ │ │ ├── Starscream-Swift.h │ │ │ │ └── Starscream.h │ │ │ ├── Info.plist │ │ │ ├── Modules │ │ │ │ ├── Starscream.swiftmodule │ │ │ │ │ ├── arm.swiftdoc │ │ │ │ │ ├── arm.swiftinterface │ │ │ │ │ ├── arm.swiftmodule │ │ │ │ │ ├── arm64-apple-ios.swiftdoc │ │ │ │ │ ├── arm64-apple-ios.swiftinterface │ │ │ │ │ ├── arm64-apple-ios.swiftmodule │ │ │ │ │ ├── arm64.swiftdoc │ │ │ │ │ ├── arm64.swiftinterface │ │ │ │ │ ├── arm64.swiftmodule │ │ │ │ │ ├── armv7-apple-ios.swiftdoc │ │ │ │ │ ├── armv7-apple-ios.swiftinterface │ │ │ │ │ ├── armv7-apple-ios.swiftmodule │ │ │ │ │ ├── armv7.swiftdoc │ │ │ │ │ ├── armv7.swiftinterface │ │ │ │ │ └── armv7.swiftmodule │ │ │ │ └── module.modulemap │ │ │ └── Starscream │ │ └── dSYMs │ │ │ └── Starscream.framework.dSYM │ │ │ └── Contents │ │ │ ├── Info.plist │ │ │ └── Resources │ │ │ └── DWARF │ │ │ └── Starscream │ ├── ios-arm64_i386_x86_64-simulator │ │ ├── Starscream.framework │ │ │ ├── Headers │ │ │ │ ├── Starscream-Swift.h │ │ │ │ └── Starscream.h │ │ │ ├── Info.plist │ │ │ ├── Modules │ │ │ │ ├── Starscream.swiftmodule │ │ │ │ │ ├── Project │ │ │ │ │ │ ├── arm64-apple-ios-simulator.swiftsourceinfo │ │ │ │ │ │ ├── arm64.swiftsourceinfo │ │ │ │ │ │ ├── i386-apple-ios-simulator.swiftsourceinfo │ │ │ │ │ │ ├── i386.swiftsourceinfo │ │ │ │ │ │ ├── x86_64-apple-ios-simulator.swiftsourceinfo │ │ │ │ │ │ └── x86_64.swiftsourceinfo │ │ │ │ │ ├── arm64-apple-ios-simulator.swiftdoc │ │ │ │ │ ├── arm64-apple-ios-simulator.swiftinterface │ │ │ │ │ ├── arm64-apple-ios-simulator.swiftmodule │ │ │ │ │ ├── arm64.swiftdoc │ │ │ │ │ ├── arm64.swiftinterface │ │ │ │ │ ├── arm64.swiftmodule │ │ │ │ │ ├── i386-apple-ios-simulator.swiftdoc │ │ │ │ │ ├── i386-apple-ios-simulator.swiftinterface │ │ │ │ │ ├── i386-apple-ios-simulator.swiftmodule │ │ │ │ │ ├── i386.swiftdoc │ │ │ │ │ ├── i386.swiftinterface │ │ │ │ │ ├── i386.swiftmodule │ │ │ │ │ ├── x86_64-apple-ios-simulator.swiftdoc │ │ │ │ │ ├── x86_64-apple-ios-simulator.swiftinterface │ │ │ │ │ ├── x86_64-apple-ios-simulator.swiftmodule │ │ │ │ │ ├── x86_64.swiftdoc │ │ │ │ │ ├── x86_64.swiftinterface │ │ │ │ │ └── x86_64.swiftmodule │ │ │ │ └── module.modulemap │ │ │ ├── Starscream │ │ │ └── _CodeSignature │ │ │ │ └── CodeResources │ │ └── dSYMs │ │ │ └── Starscream.framework.dSYM │ │ │ └── Contents │ │ │ ├── Info.plist │ │ │ └── Resources │ │ │ └── DWARF │ │ │ └── Starscream │ ├── macos-arm64_x86_64 │ │ ├── Starscream.framework │ │ │ ├── Headers │ │ │ ├── Modules │ │ │ ├── Resources │ │ │ ├── Starscream │ │ │ └── Versions │ │ │ │ ├── A │ │ │ │ ├── Headers │ │ │ │ │ ├── Starscream-Swift.h │ │ │ │ │ └── Starscream.h │ │ │ │ ├── Modules │ │ │ │ │ ├── Starscream.swiftmodule │ │ │ │ │ │ ├── arm64-apple-macos.swiftdoc │ │ │ │ │ │ ├── arm64-apple-macos.swiftinterface │ │ │ │ │ │ ├── arm64-apple-macos.swiftmodule │ │ │ │ │ │ ├── arm64.swiftdoc │ │ │ │ │ │ ├── arm64.swiftinterface │ │ │ │ │ │ ├── arm64.swiftmodule │ │ │ │ │ │ ├── x86_64-apple-macos.swiftdoc │ │ │ │ │ │ ├── x86_64-apple-macos.swiftinterface │ │ │ │ │ │ ├── x86_64-apple-macos.swiftmodule │ │ │ │ │ │ ├── x86_64.swiftdoc │ │ │ │ │ │ ├── x86_64.swiftinterface │ │ │ │ │ │ └── x86_64.swiftmodule │ │ │ │ │ └── module.modulemap │ │ │ │ ├── Resources │ │ │ │ │ └── Info.plist │ │ │ │ └── Starscream │ │ │ │ └── Current │ │ └── dSYMs │ │ │ └── Starscream.framework.dSYM │ │ │ └── Contents │ │ │ ├── Info.plist │ │ │ └── Resources │ │ │ └── DWARF │ │ │ └── Starscream │ ├── tvos-arm64 │ │ ├── BCSymbolMaps │ │ │ └── 8791D9ED-8AC3-3DE5-9171-5A5B11EF7AF7.bcsymbolmap │ │ ├── Starscream.framework │ │ │ ├── Headers │ │ │ │ ├── Starscream-Swift.h │ │ │ │ └── Starscream.h │ │ │ ├── Info.plist │ │ │ ├── Modules │ │ │ │ ├── Starscream.swiftmodule │ │ │ │ │ ├── arm64-apple-tvos.swiftdoc │ │ │ │ │ ├── arm64-apple-tvos.swiftinterface │ │ │ │ │ ├── arm64-apple-tvos.swiftmodule │ │ │ │ │ ├── arm64.swiftdoc │ │ │ │ │ ├── arm64.swiftinterface │ │ │ │ │ └── arm64.swiftmodule │ │ │ │ └── module.modulemap │ │ │ └── Starscream │ │ └── dSYMs │ │ │ └── Starscream.framework.dSYM │ │ │ └── Contents │ │ │ ├── Info.plist │ │ │ └── Resources │ │ │ └── DWARF │ │ │ └── Starscream │ ├── tvos-arm64_x86_64-simulator │ │ ├── Starscream.framework │ │ │ ├── Headers │ │ │ │ ├── Starscream-Swift.h │ │ │ │ └── Starscream.h │ │ │ ├── Info.plist │ │ │ ├── Modules │ │ │ │ ├── Starscream.swiftmodule │ │ │ │ │ ├── Project │ │ │ │ │ │ ├── arm64-apple-tvos-simulator.swiftsourceinfo │ │ │ │ │ │ ├── arm64.swiftsourceinfo │ │ │ │ │ │ ├── x86_64-apple-tvos-simulator.swiftsourceinfo │ │ │ │ │ │ └── x86_64.swiftsourceinfo │ │ │ │ │ ├── arm64-apple-tvos-simulator.swiftdoc │ │ │ │ │ ├── arm64-apple-tvos-simulator.swiftinterface │ │ │ │ │ ├── arm64-apple-tvos-simulator.swiftmodule │ │ │ │ │ ├── arm64.swiftdoc │ │ │ │ │ ├── arm64.swiftinterface │ │ │ │ │ ├── arm64.swiftmodule │ │ │ │ │ ├── x86_64-apple-tvos-simulator.swiftdoc │ │ │ │ │ ├── x86_64-apple-tvos-simulator.swiftinterface │ │ │ │ │ ├── x86_64-apple-tvos-simulator.swiftmodule │ │ │ │ │ ├── x86_64.swiftdoc │ │ │ │ │ ├── x86_64.swiftinterface │ │ │ │ │ └── x86_64.swiftmodule │ │ │ │ └── module.modulemap │ │ │ ├── Starscream │ │ │ └── _CodeSignature │ │ │ │ └── CodeResources │ │ └── dSYMs │ │ │ └── Starscream.framework.dSYM │ │ │ └── Contents │ │ │ ├── Info.plist │ │ │ └── Resources │ │ │ └── DWARF │ │ │ └── Starscream │ ├── watchos-arm64_32_armv7k │ │ ├── BCSymbolMaps │ │ │ ├── 78A6DAB4-6C96-30C2-8A33-9164C5E1D376.bcsymbolmap │ │ │ └── DCCABDFA-4BBD-3EC4-B990-D0E95B1EDDE3.bcsymbolmap │ │ ├── Starscream.framework │ │ │ ├── Headers │ │ │ │ ├── Starscream-Swift.h │ │ │ │ └── Starscream.h │ │ │ ├── Info.plist │ │ │ ├── Modules │ │ │ │ ├── Starscream.swiftmodule │ │ │ │ │ ├── arm.swiftdoc │ │ │ │ │ ├── arm.swiftinterface │ │ │ │ │ ├── arm.swiftmodule │ │ │ │ │ ├── arm64_32-apple-watchos.swiftdoc │ │ │ │ │ ├── arm64_32-apple-watchos.swiftinterface │ │ │ │ │ ├── arm64_32-apple-watchos.swiftmodule │ │ │ │ │ ├── arm64_32.swiftdoc │ │ │ │ │ ├── arm64_32.swiftinterface │ │ │ │ │ ├── arm64_32.swiftmodule │ │ │ │ │ ├── armv7k-apple-watchos.swiftdoc │ │ │ │ │ ├── armv7k-apple-watchos.swiftinterface │ │ │ │ │ ├── armv7k-apple-watchos.swiftmodule │ │ │ │ │ ├── armv7k.swiftdoc │ │ │ │ │ ├── armv7k.swiftinterface │ │ │ │ │ └── armv7k.swiftmodule │ │ │ │ └── module.modulemap │ │ │ └── Starscream │ │ └── dSYMs │ │ │ └── Starscream.framework.dSYM │ │ │ └── Contents │ │ │ ├── Info.plist │ │ │ └── Resources │ │ │ └── DWARF │ │ │ └── Starscream │ └── watchos-arm64_i386_x86_64-simulator │ │ ├── Starscream.framework │ │ ├── Headers │ │ │ ├── Starscream-Swift.h │ │ │ └── Starscream.h │ │ ├── Info.plist │ │ ├── Modules │ │ │ ├── Starscream.swiftmodule │ │ │ │ ├── Project │ │ │ │ │ ├── arm64-apple-watchos-simulator.swiftsourceinfo │ │ │ │ │ ├── arm64.swiftsourceinfo │ │ │ │ │ ├── i386-apple-watchos-simulator.swiftsourceinfo │ │ │ │ │ ├── i386.swiftsourceinfo │ │ │ │ │ ├── x86_64-apple-watchos-simulator.swiftsourceinfo │ │ │ │ │ └── x86_64.swiftsourceinfo │ │ │ │ ├── arm64-apple-watchos-simulator.swiftdoc │ │ │ │ ├── arm64-apple-watchos-simulator.swiftinterface │ │ │ │ ├── arm64-apple-watchos-simulator.swiftmodule │ │ │ │ ├── arm64.swiftdoc │ │ │ │ ├── arm64.swiftinterface │ │ │ │ ├── arm64.swiftmodule │ │ │ │ ├── i386-apple-watchos-simulator.swiftdoc │ │ │ │ ├── i386-apple-watchos-simulator.swiftinterface │ │ │ │ ├── i386-apple-watchos-simulator.swiftmodule │ │ │ │ ├── i386.swiftdoc │ │ │ │ ├── i386.swiftinterface │ │ │ │ ├── i386.swiftmodule │ │ │ │ ├── x86_64-apple-watchos-simulator.swiftdoc │ │ │ │ ├── x86_64-apple-watchos-simulator.swiftinterface │ │ │ │ ├── x86_64-apple-watchos-simulator.swiftmodule │ │ │ │ ├── x86_64.swiftdoc │ │ │ │ ├── x86_64.swiftinterface │ │ │ │ └── x86_64.swiftmodule │ │ │ └── module.modulemap │ │ ├── Starscream │ │ └── _CodeSignature │ │ │ └── CodeResources │ │ └── dSYMs │ │ └── Starscream.framework.dSYM │ │ └── Contents │ │ ├── Info.plist │ │ └── Resources │ │ └── DWARF │ │ └── Starscream └── Swifter.xcframework │ ├── Info.plist │ ├── ios-arm64_armv7 │ ├── BCSymbolMaps │ │ ├── 69DE339A-CB39-3D3E-856C-53C1343E33BC.bcsymbolmap │ │ └── BBA7DB2A-F4CA-3950-82FD-82E86002C3F8.bcsymbolmap │ ├── Swifter.framework │ │ ├── Headers │ │ │ ├── Swifter-Swift.h │ │ │ └── SwifteriOS.h │ │ ├── Info.plist │ │ ├── Modules │ │ │ ├── Swifter.swiftmodule │ │ │ │ ├── arm.swiftdoc │ │ │ │ ├── arm.swiftinterface │ │ │ │ ├── arm.swiftmodule │ │ │ │ ├── arm64-apple-ios.swiftdoc │ │ │ │ ├── arm64-apple-ios.swiftinterface │ │ │ │ ├── arm64-apple-ios.swiftmodule │ │ │ │ ├── arm64.swiftdoc │ │ │ │ ├── arm64.swiftinterface │ │ │ │ ├── arm64.swiftmodule │ │ │ │ ├── armv7-apple-ios.swiftdoc │ │ │ │ ├── armv7-apple-ios.swiftinterface │ │ │ │ ├── armv7-apple-ios.swiftmodule │ │ │ │ ├── armv7.swiftdoc │ │ │ │ ├── armv7.swiftinterface │ │ │ │ └── armv7.swiftmodule │ │ │ └── module.modulemap │ │ └── Swifter │ └── dSYMs │ │ └── Swifter.framework.dSYM │ │ └── Contents │ │ ├── Info.plist │ │ └── Resources │ │ └── DWARF │ │ └── Swifter │ ├── ios-arm64_i386_x86_64-simulator │ ├── Swifter.framework │ │ ├── Headers │ │ │ ├── Swifter-Swift.h │ │ │ └── SwifteriOS.h │ │ ├── Info.plist │ │ ├── Modules │ │ │ ├── Swifter.swiftmodule │ │ │ │ ├── Project │ │ │ │ │ ├── arm64-apple-ios-simulator.swiftsourceinfo │ │ │ │ │ ├── arm64.swiftsourceinfo │ │ │ │ │ ├── i386-apple-ios-simulator.swiftsourceinfo │ │ │ │ │ ├── i386.swiftsourceinfo │ │ │ │ │ ├── x86_64-apple-ios-simulator.swiftsourceinfo │ │ │ │ │ └── x86_64.swiftsourceinfo │ │ │ │ ├── arm64-apple-ios-simulator.swiftdoc │ │ │ │ ├── arm64-apple-ios-simulator.swiftinterface │ │ │ │ ├── arm64-apple-ios-simulator.swiftmodule │ │ │ │ ├── arm64.swiftdoc │ │ │ │ ├── arm64.swiftinterface │ │ │ │ ├── arm64.swiftmodule │ │ │ │ ├── i386-apple-ios-simulator.swiftdoc │ │ │ │ ├── i386-apple-ios-simulator.swiftinterface │ │ │ │ ├── i386-apple-ios-simulator.swiftmodule │ │ │ │ ├── i386.swiftdoc │ │ │ │ ├── i386.swiftinterface │ │ │ │ ├── i386.swiftmodule │ │ │ │ ├── x86_64-apple-ios-simulator.swiftdoc │ │ │ │ ├── x86_64-apple-ios-simulator.swiftinterface │ │ │ │ ├── x86_64-apple-ios-simulator.swiftmodule │ │ │ │ ├── x86_64.swiftdoc │ │ │ │ ├── x86_64.swiftinterface │ │ │ │ └── x86_64.swiftmodule │ │ │ └── module.modulemap │ │ ├── Swifter │ │ └── _CodeSignature │ │ │ └── CodeResources │ └── dSYMs │ │ └── Swifter.framework.dSYM │ │ └── Contents │ │ ├── Info.plist │ │ └── Resources │ │ └── DWARF │ │ └── Swifter │ ├── macos-arm64_x86_64 │ ├── Swifter.framework │ │ ├── Headers │ │ ├── Modules │ │ ├── Resources │ │ ├── Swifter │ │ └── Versions │ │ │ ├── A │ │ │ ├── Headers │ │ │ │ ├── Swifter-Swift.h │ │ │ │ └── SwifterMac.h │ │ │ ├── Modules │ │ │ │ ├── Swifter.swiftmodule │ │ │ │ │ ├── arm64-apple-macos.swiftdoc │ │ │ │ │ ├── arm64-apple-macos.swiftinterface │ │ │ │ │ ├── arm64-apple-macos.swiftmodule │ │ │ │ │ ├── arm64.swiftdoc │ │ │ │ │ ├── arm64.swiftinterface │ │ │ │ │ ├── arm64.swiftmodule │ │ │ │ │ ├── x86_64-apple-macos.swiftdoc │ │ │ │ │ ├── x86_64-apple-macos.swiftinterface │ │ │ │ │ ├── x86_64-apple-macos.swiftmodule │ │ │ │ │ ├── x86_64.swiftdoc │ │ │ │ │ ├── x86_64.swiftinterface │ │ │ │ │ └── x86_64.swiftmodule │ │ │ │ └── module.modulemap │ │ │ ├── Resources │ │ │ │ └── Info.plist │ │ │ └── Swifter │ │ │ └── Current │ └── dSYMs │ │ └── Swifter.framework.dSYM │ │ └── Contents │ │ ├── Info.plist │ │ └── Resources │ │ └── DWARF │ │ └── Swifter │ ├── tvos-arm64 │ ├── BCSymbolMaps │ │ └── 24498D0D-539A-3EC9-BEF8-55A70F255FA9.bcsymbolmap │ ├── Swifter.framework │ │ ├── Headers │ │ │ ├── Swifter-Swift.h │ │ │ └── SwiftertvOS.h │ │ ├── Info.plist │ │ ├── Modules │ │ │ ├── Swifter.swiftmodule │ │ │ │ ├── arm64-apple-tvos.swiftdoc │ │ │ │ ├── arm64-apple-tvos.swiftinterface │ │ │ │ ├── arm64-apple-tvos.swiftmodule │ │ │ │ ├── arm64.swiftdoc │ │ │ │ ├── arm64.swiftinterface │ │ │ │ └── arm64.swiftmodule │ │ │ └── module.modulemap │ │ └── Swifter │ └── dSYMs │ │ └── Swifter.framework.dSYM │ │ └── Contents │ │ ├── Info.plist │ │ └── Resources │ │ └── DWARF │ │ └── Swifter │ └── tvos-arm64_x86_64-simulator │ ├── Swifter.framework │ ├── Headers │ │ ├── Swifter-Swift.h │ │ └── SwiftertvOS.h │ ├── Info.plist │ ├── Modules │ │ ├── Swifter.swiftmodule │ │ │ ├── Project │ │ │ │ ├── arm64-apple-tvos-simulator.swiftsourceinfo │ │ │ │ ├── arm64.swiftsourceinfo │ │ │ │ ├── x86_64-apple-tvos-simulator.swiftsourceinfo │ │ │ │ └── x86_64.swiftsourceinfo │ │ │ ├── arm64-apple-tvos-simulator.swiftdoc │ │ │ ├── arm64-apple-tvos-simulator.swiftinterface │ │ │ ├── arm64-apple-tvos-simulator.swiftmodule │ │ │ ├── arm64.swiftdoc │ │ │ ├── arm64.swiftinterface │ │ │ ├── arm64.swiftmodule │ │ │ ├── x86_64-apple-tvos-simulator.swiftdoc │ │ │ ├── x86_64-apple-tvos-simulator.swiftinterface │ │ │ ├── x86_64-apple-tvos-simulator.swiftmodule │ │ │ ├── x86_64.swiftdoc │ │ │ ├── x86_64.swiftinterface │ │ │ └── x86_64.swiftmodule │ │ └── module.modulemap │ ├── Swifter │ └── _CodeSignature │ │ └── CodeResources │ └── dSYMs │ └── Swifter.framework.dSYM │ └── Contents │ ├── Info.plist │ └── Resources │ └── DWARF │ └── Swifter ├── LICENSE ├── LinuxMain.swift ├── Package.swift ├── README.md ├── SKClient ├── README.md └── Sources │ └── Client.swift ├── SKCore ├── README.md └── Sources │ ├── Action.swift │ ├── Attachment.swift │ ├── AttachmentField.swift │ ├── BlockComposition.swift │ ├── BlockElement.swift │ ├── BlockLayout.swift │ ├── Bot.swift │ ├── Channel.swift │ ├── Comment.swift │ ├── CustomProfile.swift │ ├── CustomProfileField.swift │ ├── DoNotDisturbStatus.swift │ ├── Edited.swift │ ├── Event.swift │ ├── Extensions.swift │ ├── File.swift │ ├── History.swift │ ├── Item.swift │ ├── Message.swift │ ├── OAuthConfig.swift │ ├── RTMOptions.swift │ ├── Reaction.swift │ ├── Reply.swift │ ├── Scope.swift │ ├── SlackError.swift │ ├── Team.swift │ ├── TeamIcon.swift │ ├── Topic.swift │ ├── User.swift │ └── UserGroup.swift ├── SKRTMAPI ├── README.md └── Sources │ ├── Conformers │ ├── StarscreamRTM.swift │ └── VaporEngineRTM.swift │ └── SKRTMAPI.swift ├── SKServer ├── README.md └── Sources │ ├── Conformers │ └── SwifterServer.swift │ ├── Middleware │ ├── MessageActionMiddleware.swift │ ├── OAuthMiddleware.swift │ ├── RedirectMiddleware.swift │ └── ResponseMiddleware.swift │ ├── Model │ ├── AuthorizeResponse.swift │ ├── IncomingWebhook.swift │ ├── MessageActionRequest.swift │ ├── MessageActionRoute.swift │ ├── OAuthResponse.swift │ ├── RequestRoute.swift │ ├── SKResponse.swift │ └── WebhookRequest.swift │ ├── SKServer.swift │ ├── SlackKitResponder.swift │ └── Titan │ ├── Titan │ └── Titan.swift │ ├── Titan404 │ └── Titan404.swift │ ├── TitanCORS │ └── TitanCORS.swift │ ├── TitanCore │ ├── TitanCore.swift │ ├── TitanError.swift │ ├── TitanHeader.swift │ ├── TitanLogs.swift │ ├── TitanMethod.swift │ ├── TitanRequest.swift │ └── TitanResponse.swift │ ├── TitanErrorHandling │ └── TitanErrorHandling.swift │ ├── TitanFormURLEncodedBodyParser │ └── TitanFormURLEncodedBodyParser.swift │ ├── TitanHealthz │ └── TitanHealthz.swift │ ├── TitanJSON │ ├── TitanJSONRequestBody.swift │ └── TitanJSONResponseBody.swift │ ├── TitanQueryString │ └── TitanQueryString.swift │ └── TitanRouter │ ├── InitializerOverloads.swift │ ├── PathParameterSupport.swift │ ├── TitanParameterizedRoutes.swift │ ├── TitanRoutesByMethod.swift │ └── TitanRoutingExtension.swift ├── SKWebAPI ├── README.md └── Sources │ ├── Endpoint.swift │ ├── NetworkInterface.swift │ └── WebAPI.swift ├── SlackKit.podspec ├── SlackKit.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist └── xcshareddata │ └── xcschemes │ ├── SKClient.xcscheme │ ├── SKCore.xcscheme │ ├── SKRTMAPI.xcscheme │ ├── SKServer.xcscheme │ ├── SKWebAPI.xcscheme │ ├── SlackKit.xcscheme │ └── SlackKitTests.xcscheme ├── SlackKit ├── README.md └── Sources │ ├── ClientConnection.swift │ └── SlackKit.swift ├── SlackKitTests ├── Resources │ ├── action.json │ ├── attachment.json │ ├── attachmentfield.json │ ├── channel.json │ ├── conversation.json │ ├── customprofilefield.json │ ├── donotdisturbstatus.json │ ├── edited.json │ ├── events.json │ ├── file.json │ ├── group.json │ ├── im.json │ ├── member_joined_channel.json │ ├── member_left_channel.json │ ├── mpim.json │ ├── reply.json │ ├── rtm.connect.json │ ├── rtm.start.json │ ├── teamicon.json │ ├── topic.json │ ├── user.json │ └── usergroup.json ├── SKClient │ └── SKClientTests.swift ├── SKCore │ └── SKCoreTests.swift ├── Supporting Files │ ├── Info.plist │ └── SlackKitTests.xcconfig └── XCTestManifests.swift ├── Supporting Files ├── Info.plist ├── SKClient.h ├── SKCore.h ├── SKRTMAPI.h ├── SKServer.h ├── SKWebAPI.h └── SlackKit.h └── azure-pipelines.yml /.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | # 3 | build/ 4 | *.pbxuser 5 | !default.pbxuser 6 | *.mode1v3 7 | !default.mode1v3 8 | *.mode2v3 9 | !default.mode2v3 10 | *.perspectivev3 11 | !default.perspectivev3 12 | xcuserdata 13 | *.xccheckout 14 | *.moved-aside 15 | DerivedData 16 | *.hmap 17 | *.ipa 18 | *.xcuserstate 19 | *.DS_Store 20 | 21 | # SwiftPM 22 | Packages/ 23 | .build 24 | 25 | # CocoaPods 26 | # 27 | # We recommend against adding the Pods directory to your .gitignore. However 28 | # you should judge for yourself, the pros and cons are mentioned at: 29 | # http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control 30 | # 31 | Pods/ 32 | SlackKit.xcworkspace 33 | 34 | # Carthage 35 | # 36 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 37 | Carthage/Checkouts 38 | Carthage/Build 39 | 40 | # Swift Package Manager 41 | .swiftpm/ 42 | 43 | *.resolved 44 | .vscode 45 | -------------------------------------------------------------------------------- /.swift-version: -------------------------------------------------------------------------------- 1 | 5.5.2 -------------------------------------------------------------------------------- /.swiftlint.yml: -------------------------------------------------------------------------------- 1 | disabled_rules: 2 | - identifier_name 3 | - function_parameter_count 4 | line_length: 140 5 | excluded: # paths to ignore during linting. Takes precedence over `included`. 6 | - Carthage 7 | - Pods -------------------------------------------------------------------------------- /Cartfile: -------------------------------------------------------------------------------- 1 | github "daltoniam/Starscream" == 4.0.4 2 | github "httpswift/swifter" == 1.5.0 -------------------------------------------------------------------------------- /Examples/Leaderboard/Cartfile: -------------------------------------------------------------------------------- 1 | github "pvzig/SlackKit" -------------------------------------------------------------------------------- /Examples/Leaderboard/Leaderboard.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Examples/Leaderboard/Leaderboard.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Examples/Leaderboard/Leaderboard/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSMinimumSystemVersion 24 | $(MACOSX_DEPLOYMENT_TARGET) 25 | NSHumanReadableCopyright 26 | Copyright © 2019 Peter Zignego. All rights reserved. 27 | 28 | 29 | -------------------------------------------------------------------------------- /Examples/Leaderboard/Leaderboard/Sources/main.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | //With OAuth 4 | //let bot = Leaderbot(clientID: "CLIENT_ID", clientSecret: "CLIENT_SECRET") 5 | 6 | //With API token 7 | let bot = Leaderbot(apiToken: "xoxb-SLACK_BOT_TOKEN") 8 | RunLoop.main.run() 9 | -------------------------------------------------------------------------------- /Examples/Leaderboard/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version:4.2 2 | 3 | import PackageDescription 4 | 5 | let package = Package( 6 | name: "Leaderboard", 7 | products: [ 8 | .executable(name: "Leaderboard", targets: ["Leaderboard"]), 9 | ], 10 | dependencies: [ 11 | .package(url: "https://github.com/pvzig/SlackKit", .upToNextMinor(from: "4.6.0")) 12 | ], 13 | targets: [ 14 | .target(name: "Leaderboard", 15 | dependencies: ["SlackKit"], 16 | path: "Leaderboard/Sources") 17 | ] 18 | ) 19 | -------------------------------------------------------------------------------- /Examples/Leaderboard/Podfile: -------------------------------------------------------------------------------- 1 | platform :osx, '10.11' 2 | 3 | target 'Leaderboard' do 4 | pod 'SlackKit', '>= 4.6.0' 5 | end 6 | -------------------------------------------------------------------------------- /Examples/Robot or Not Bot/Cartfile: -------------------------------------------------------------------------------- 1 | github "pvzig/SlackKit" -------------------------------------------------------------------------------- /Examples/Robot or Not Bot/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version:4.2 2 | 3 | import PackageDescription 4 | 5 | let package = Package( 6 | name: "Robot or Not Bot", 7 | products: [ 8 | .executable(name: "Robot or Not Bot", targets: ["Robot or Not Bot"]), 9 | ], 10 | dependencies: [ 11 | .package(url: "https://github.com/pvzig/SlackKit", .upToNextMinor(from: "4.6.0")) 12 | ], 13 | targets: [ 14 | .target(name: "Robot or Not Bot", 15 | dependencies: ["SlackKit"], 16 | path: "Robot or Not Bot/Sources") 17 | ] 18 | ) 19 | -------------------------------------------------------------------------------- /Examples/Robot or Not Bot/Podfile: -------------------------------------------------------------------------------- 1 | platform :osx, '10.11' 2 | 3 | target 'Robot Or Not Bot' do 4 | pod 'SlackKit', '>= 4.6.0' 5 | end 6 | -------------------------------------------------------------------------------- /Examples/Robot or Not Bot/Robot Or Not Bot.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Examples/Robot or Not Bot/Robot Or Not Bot.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Examples/Robot or Not Bot/Robot Or Not Bot/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSMinimumSystemVersion 24 | $(MACOSX_DEPLOYMENT_TARGET) 25 | NSHumanReadableCopyright 26 | Copyright © 2019 Peter Zignego. All rights reserved. 27 | 28 | 29 | -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_armv7/Starscream.framework/Headers/Starscream.h: -------------------------------------------------------------------------------- 1 | // 2 | // Starscream.h 3 | // Starscream 4 | // 5 | // Created by Austin Cherry on 9/25/14. 6 | // Copyright (c) 2014 Vluxe. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for Starscream. 12 | FOUNDATION_EXPORT double StarscreamVersionNumber; 13 | 14 | //! Project version string for Starscream. 15 | FOUNDATION_EXPORT const unsigned char StarscreamVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_armv7/Starscream.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/ios-arm64_armv7/Starscream.framework/Info.plist -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_armv7/Starscream.framework/Modules/Starscream.swiftmodule/arm.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/ios-arm64_armv7/Starscream.framework/Modules/Starscream.swiftmodule/arm.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_armv7/Starscream.framework/Modules/Starscream.swiftmodule/arm.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/ios-arm64_armv7/Starscream.framework/Modules/Starscream.swiftmodule/arm.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_armv7/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-ios.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/ios-arm64_armv7/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-ios.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_armv7/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-ios.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/ios-arm64_armv7/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-ios.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_armv7/Starscream.framework/Modules/Starscream.swiftmodule/arm64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/ios-arm64_armv7/Starscream.framework/Modules/Starscream.swiftmodule/arm64.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_armv7/Starscream.framework/Modules/Starscream.swiftmodule/arm64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/ios-arm64_armv7/Starscream.framework/Modules/Starscream.swiftmodule/arm64.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_armv7/Starscream.framework/Modules/Starscream.swiftmodule/armv7-apple-ios.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/ios-arm64_armv7/Starscream.framework/Modules/Starscream.swiftmodule/armv7-apple-ios.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_armv7/Starscream.framework/Modules/Starscream.swiftmodule/armv7-apple-ios.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/ios-arm64_armv7/Starscream.framework/Modules/Starscream.swiftmodule/armv7-apple-ios.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_armv7/Starscream.framework/Modules/Starscream.swiftmodule/armv7.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/ios-arm64_armv7/Starscream.framework/Modules/Starscream.swiftmodule/armv7.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_armv7/Starscream.framework/Modules/Starscream.swiftmodule/armv7.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/ios-arm64_armv7/Starscream.framework/Modules/Starscream.swiftmodule/armv7.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_armv7/Starscream.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module Starscream { 2 | umbrella header "Starscream.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | 8 | module Starscream.Swift { 9 | header "Starscream-Swift.h" 10 | requires objc 11 | } 12 | -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_armv7/Starscream.framework/Starscream: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/ios-arm64_armv7/Starscream.framework/Starscream -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_armv7/dSYMs/Starscream.framework.dSYM/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.apple.xcode.dsym.com.vluxe.Starscream 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | dSYM 13 | CFBundleSignature 14 | ???? 15 | CFBundleShortVersionString 16 | 4.0.4 17 | CFBundleVersion 18 | 1 19 | 20 | 21 | -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_armv7/dSYMs/Starscream.framework.dSYM/Contents/Resources/DWARF/Starscream: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/ios-arm64_armv7/dSYMs/Starscream.framework.dSYM/Contents/Resources/DWARF/Starscream -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Headers/Starscream.h: -------------------------------------------------------------------------------- 1 | // 2 | // Starscream.h 3 | // Starscream 4 | // 5 | // Created by Austin Cherry on 9/25/14. 6 | // Copyright (c) 2014 Vluxe. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for Starscream. 12 | FOUNDATION_EXPORT double StarscreamVersionNumber; 13 | 14 | //! Project version string for Starscream. 15 | FOUNDATION_EXPORT const unsigned char StarscreamVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Info.plist -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/arm64.swiftsourceinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/arm64.swiftsourceinfo -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/i386-apple-ios-simulator.swiftsourceinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/i386-apple-ios-simulator.swiftsourceinfo -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/i386.swiftsourceinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/i386.swiftsourceinfo -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/x86_64.swiftsourceinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/x86_64.swiftsourceinfo -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-ios-simulator.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-ios-simulator.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-ios-simulator.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-ios-simulator.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/arm64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/arm64.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/arm64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/arm64.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/i386-apple-ios-simulator.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/i386-apple-ios-simulator.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/i386-apple-ios-simulator.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/i386-apple-ios-simulator.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/i386.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/i386.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/i386.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/i386.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/x86_64-apple-ios-simulator.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/x86_64-apple-ios-simulator.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/x86_64-apple-ios-simulator.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/x86_64-apple-ios-simulator.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/x86_64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/x86_64.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/x86_64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/x86_64.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module Starscream { 2 | umbrella header "Starscream.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | 8 | module Starscream.Swift { 9 | header "Starscream-Swift.h" 10 | requires objc 11 | } 12 | -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Starscream: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/Starscream.framework/Starscream -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/dSYMs/Starscream.framework.dSYM/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.apple.xcode.dsym.com.vluxe.Starscream 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | dSYM 13 | CFBundleSignature 14 | ???? 15 | CFBundleShortVersionString 16 | 4.0.4 17 | CFBundleVersion 18 | 1 19 | 20 | 21 | -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/dSYMs/Starscream.framework.dSYM/Contents/Resources/DWARF/Starscream: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/ios-arm64_i386_x86_64-simulator/dSYMs/Starscream.framework.dSYM/Contents/Resources/DWARF/Starscream -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/macos-arm64_x86_64/Starscream.framework/Headers: -------------------------------------------------------------------------------- 1 | Versions/Current/Headers -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/macos-arm64_x86_64/Starscream.framework/Modules: -------------------------------------------------------------------------------- 1 | Versions/Current/Modules -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/macos-arm64_x86_64/Starscream.framework/Resources: -------------------------------------------------------------------------------- 1 | Versions/Current/Resources -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/macos-arm64_x86_64/Starscream.framework/Starscream: -------------------------------------------------------------------------------- 1 | Versions/Current/Starscream -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/macos-arm64_x86_64/Starscream.framework/Versions/A/Headers/Starscream.h: -------------------------------------------------------------------------------- 1 | // 2 | // Starscream.h 3 | // Starscream 4 | // 5 | // Created by Austin Cherry on 9/25/14. 6 | // Copyright (c) 2014 Vluxe. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for Starscream. 12 | FOUNDATION_EXPORT double StarscreamVersionNumber; 13 | 14 | //! Project version string for Starscream. 15 | FOUNDATION_EXPORT const unsigned char StarscreamVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/macos-arm64_x86_64/Starscream.framework/Versions/A/Modules/Starscream.swiftmodule/arm64-apple-macos.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/macos-arm64_x86_64/Starscream.framework/Versions/A/Modules/Starscream.swiftmodule/arm64-apple-macos.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/macos-arm64_x86_64/Starscream.framework/Versions/A/Modules/Starscream.swiftmodule/arm64-apple-macos.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/macos-arm64_x86_64/Starscream.framework/Versions/A/Modules/Starscream.swiftmodule/arm64-apple-macos.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/macos-arm64_x86_64/Starscream.framework/Versions/A/Modules/Starscream.swiftmodule/arm64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/macos-arm64_x86_64/Starscream.framework/Versions/A/Modules/Starscream.swiftmodule/arm64.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/macos-arm64_x86_64/Starscream.framework/Versions/A/Modules/Starscream.swiftmodule/arm64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/macos-arm64_x86_64/Starscream.framework/Versions/A/Modules/Starscream.swiftmodule/arm64.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/macos-arm64_x86_64/Starscream.framework/Versions/A/Modules/Starscream.swiftmodule/x86_64-apple-macos.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/macos-arm64_x86_64/Starscream.framework/Versions/A/Modules/Starscream.swiftmodule/x86_64-apple-macos.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/macos-arm64_x86_64/Starscream.framework/Versions/A/Modules/Starscream.swiftmodule/x86_64-apple-macos.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/macos-arm64_x86_64/Starscream.framework/Versions/A/Modules/Starscream.swiftmodule/x86_64-apple-macos.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/macos-arm64_x86_64/Starscream.framework/Versions/A/Modules/Starscream.swiftmodule/x86_64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/macos-arm64_x86_64/Starscream.framework/Versions/A/Modules/Starscream.swiftmodule/x86_64.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/macos-arm64_x86_64/Starscream.framework/Versions/A/Modules/Starscream.swiftmodule/x86_64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/macos-arm64_x86_64/Starscream.framework/Versions/A/Modules/Starscream.swiftmodule/x86_64.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/macos-arm64_x86_64/Starscream.framework/Versions/A/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module Starscream { 2 | umbrella header "Starscream.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | 8 | module Starscream.Swift { 9 | header "Starscream-Swift.h" 10 | requires objc 11 | } 12 | -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/macos-arm64_x86_64/Starscream.framework/Versions/A/Resources/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BuildMachineOSBuild 6 | 20D74 7 | CFBundleDevelopmentRegion 8 | en 9 | CFBundleExecutable 10 | Starscream 11 | CFBundleIdentifier 12 | com.vluxe.Starscream 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | Starscream 17 | CFBundlePackageType 18 | FMWK 19 | CFBundleShortVersionString 20 | 4.0.4 21 | CFBundleSignature 22 | ???? 23 | CFBundleSupportedPlatforms 24 | 25 | MacOSX 26 | 27 | CFBundleVersion 28 | 1 29 | DTCompiler 30 | com.apple.compilers.llvm.clang.1_0 31 | DTPlatformBuild 32 | 12D4e 33 | DTPlatformName 34 | macosx 35 | DTPlatformVersion 36 | 11.1 37 | DTSDKBuild 38 | 20C63 39 | DTSDKName 40 | macosx11.1 41 | DTXcode 42 | 1240 43 | DTXcodeBuild 44 | 12D4e 45 | LSMinimumSystemVersion 46 | 10.10 47 | 48 | 49 | -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/macos-arm64_x86_64/Starscream.framework/Versions/A/Starscream: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/macos-arm64_x86_64/Starscream.framework/Versions/A/Starscream -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/macos-arm64_x86_64/Starscream.framework/Versions/Current: -------------------------------------------------------------------------------- 1 | A -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/macos-arm64_x86_64/dSYMs/Starscream.framework.dSYM/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.apple.xcode.dsym.com.vluxe.Starscream 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | dSYM 13 | CFBundleSignature 14 | ???? 15 | CFBundleShortVersionString 16 | 4.0.4 17 | CFBundleVersion 18 | 1 19 | 20 | 21 | -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/macos-arm64_x86_64/dSYMs/Starscream.framework.dSYM/Contents/Resources/DWARF/Starscream: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/macos-arm64_x86_64/dSYMs/Starscream.framework.dSYM/Contents/Resources/DWARF/Starscream -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/tvos-arm64/Starscream.framework/Headers/Starscream.h: -------------------------------------------------------------------------------- 1 | // 2 | // Starscream.h 3 | // Starscream 4 | // 5 | // Created by Austin Cherry on 9/25/14. 6 | // Copyright (c) 2014 Vluxe. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for Starscream. 12 | FOUNDATION_EXPORT double StarscreamVersionNumber; 13 | 14 | //! Project version string for Starscream. 15 | FOUNDATION_EXPORT const unsigned char StarscreamVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/tvos-arm64/Starscream.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/tvos-arm64/Starscream.framework/Info.plist -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/tvos-arm64/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-tvos.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/tvos-arm64/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-tvos.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/tvos-arm64/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-tvos.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/tvos-arm64/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-tvos.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/tvos-arm64/Starscream.framework/Modules/Starscream.swiftmodule/arm64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/tvos-arm64/Starscream.framework/Modules/Starscream.swiftmodule/arm64.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/tvos-arm64/Starscream.framework/Modules/Starscream.swiftmodule/arm64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/tvos-arm64/Starscream.framework/Modules/Starscream.swiftmodule/arm64.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/tvos-arm64/Starscream.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module Starscream { 2 | umbrella header "Starscream.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | 8 | module Starscream.Swift { 9 | header "Starscream-Swift.h" 10 | requires objc 11 | } 12 | -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/tvos-arm64/Starscream.framework/Starscream: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/tvos-arm64/Starscream.framework/Starscream -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/tvos-arm64/dSYMs/Starscream.framework.dSYM/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.apple.xcode.dsym.com.vluxe.Starscream 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | dSYM 13 | CFBundleSignature 14 | ???? 15 | CFBundleShortVersionString 16 | 4.0.4 17 | CFBundleVersion 18 | 1 19 | 20 | 21 | -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/tvos-arm64/dSYMs/Starscream.framework.dSYM/Contents/Resources/DWARF/Starscream: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/tvos-arm64/dSYMs/Starscream.framework.dSYM/Contents/Resources/DWARF/Starscream -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/tvos-arm64_x86_64-simulator/Starscream.framework/Headers/Starscream.h: -------------------------------------------------------------------------------- 1 | // 2 | // Starscream.h 3 | // Starscream 4 | // 5 | // Created by Austin Cherry on 9/25/14. 6 | // Copyright (c) 2014 Vluxe. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for Starscream. 12 | FOUNDATION_EXPORT double StarscreamVersionNumber; 13 | 14 | //! Project version string for Starscream. 15 | FOUNDATION_EXPORT const unsigned char StarscreamVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/tvos-arm64_x86_64-simulator/Starscream.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/tvos-arm64_x86_64-simulator/Starscream.framework/Info.plist -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/tvos-arm64_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/arm64-apple-tvos-simulator.swiftsourceinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/tvos-arm64_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/arm64-apple-tvos-simulator.swiftsourceinfo -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/tvos-arm64_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/arm64.swiftsourceinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/tvos-arm64_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/arm64.swiftsourceinfo -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/tvos-arm64_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/x86_64-apple-tvos-simulator.swiftsourceinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/tvos-arm64_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/x86_64-apple-tvos-simulator.swiftsourceinfo -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/tvos-arm64_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/x86_64.swiftsourceinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/tvos-arm64_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/x86_64.swiftsourceinfo -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/tvos-arm64_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-tvos-simulator.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/tvos-arm64_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-tvos-simulator.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/tvos-arm64_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-tvos-simulator.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/tvos-arm64_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-tvos-simulator.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/tvos-arm64_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/arm64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/tvos-arm64_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/arm64.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/tvos-arm64_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/arm64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/tvos-arm64_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/arm64.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/tvos-arm64_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/x86_64-apple-tvos-simulator.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/tvos-arm64_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/x86_64-apple-tvos-simulator.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/tvos-arm64_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/x86_64-apple-tvos-simulator.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/tvos-arm64_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/x86_64-apple-tvos-simulator.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/tvos-arm64_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/x86_64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/tvos-arm64_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/x86_64.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/tvos-arm64_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/x86_64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/tvos-arm64_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/x86_64.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/tvos-arm64_x86_64-simulator/Starscream.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module Starscream { 2 | umbrella header "Starscream.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | 8 | module Starscream.Swift { 9 | header "Starscream-Swift.h" 10 | requires objc 11 | } 12 | -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/tvos-arm64_x86_64-simulator/Starscream.framework/Starscream: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/tvos-arm64_x86_64-simulator/Starscream.framework/Starscream -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/tvos-arm64_x86_64-simulator/dSYMs/Starscream.framework.dSYM/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.apple.xcode.dsym.com.vluxe.Starscream 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | dSYM 13 | CFBundleSignature 14 | ???? 15 | CFBundleShortVersionString 16 | 4.0.4 17 | CFBundleVersion 18 | 1 19 | 20 | 21 | -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/tvos-arm64_x86_64-simulator/dSYMs/Starscream.framework.dSYM/Contents/Resources/DWARF/Starscream: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/tvos-arm64_x86_64-simulator/dSYMs/Starscream.framework.dSYM/Contents/Resources/DWARF/Starscream -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_32_armv7k/Starscream.framework/Headers/Starscream.h: -------------------------------------------------------------------------------- 1 | // 2 | // Starscream.h 3 | // Starscream 4 | // 5 | // Created by Austin Cherry on 9/25/14. 6 | // Copyright (c) 2014 Vluxe. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for Starscream. 12 | FOUNDATION_EXPORT double StarscreamVersionNumber; 13 | 14 | //! Project version string for Starscream. 15 | FOUNDATION_EXPORT const unsigned char StarscreamVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_32_armv7k/Starscream.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/watchos-arm64_32_armv7k/Starscream.framework/Info.plist -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_32_armv7k/Starscream.framework/Modules/Starscream.swiftmodule/arm.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/watchos-arm64_32_armv7k/Starscream.framework/Modules/Starscream.swiftmodule/arm.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_32_armv7k/Starscream.framework/Modules/Starscream.swiftmodule/arm.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/watchos-arm64_32_armv7k/Starscream.framework/Modules/Starscream.swiftmodule/arm.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_32_armv7k/Starscream.framework/Modules/Starscream.swiftmodule/arm64_32-apple-watchos.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/watchos-arm64_32_armv7k/Starscream.framework/Modules/Starscream.swiftmodule/arm64_32-apple-watchos.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_32_armv7k/Starscream.framework/Modules/Starscream.swiftmodule/arm64_32-apple-watchos.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/watchos-arm64_32_armv7k/Starscream.framework/Modules/Starscream.swiftmodule/arm64_32-apple-watchos.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_32_armv7k/Starscream.framework/Modules/Starscream.swiftmodule/arm64_32.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/watchos-arm64_32_armv7k/Starscream.framework/Modules/Starscream.swiftmodule/arm64_32.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_32_armv7k/Starscream.framework/Modules/Starscream.swiftmodule/arm64_32.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/watchos-arm64_32_armv7k/Starscream.framework/Modules/Starscream.swiftmodule/arm64_32.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_32_armv7k/Starscream.framework/Modules/Starscream.swiftmodule/armv7k-apple-watchos.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/watchos-arm64_32_armv7k/Starscream.framework/Modules/Starscream.swiftmodule/armv7k-apple-watchos.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_32_armv7k/Starscream.framework/Modules/Starscream.swiftmodule/armv7k-apple-watchos.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/watchos-arm64_32_armv7k/Starscream.framework/Modules/Starscream.swiftmodule/armv7k-apple-watchos.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_32_armv7k/Starscream.framework/Modules/Starscream.swiftmodule/armv7k.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/watchos-arm64_32_armv7k/Starscream.framework/Modules/Starscream.swiftmodule/armv7k.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_32_armv7k/Starscream.framework/Modules/Starscream.swiftmodule/armv7k.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/watchos-arm64_32_armv7k/Starscream.framework/Modules/Starscream.swiftmodule/armv7k.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_32_armv7k/Starscream.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module Starscream { 2 | umbrella header "Starscream.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | 8 | module Starscream.Swift { 9 | header "Starscream-Swift.h" 10 | requires objc 11 | } 12 | -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_32_armv7k/Starscream.framework/Starscream: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/watchos-arm64_32_armv7k/Starscream.framework/Starscream -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_32_armv7k/dSYMs/Starscream.framework.dSYM/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.apple.xcode.dsym.com.vluxe.Starscream 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | dSYM 13 | CFBundleSignature 14 | ???? 15 | CFBundleShortVersionString 16 | 4.0.4 17 | CFBundleVersion 18 | 1 19 | 20 | 21 | -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_32_armv7k/dSYMs/Starscream.framework.dSYM/Contents/Resources/DWARF/Starscream: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/watchos-arm64_32_armv7k/dSYMs/Starscream.framework.dSYM/Contents/Resources/DWARF/Starscream -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Headers/Starscream.h: -------------------------------------------------------------------------------- 1 | // 2 | // Starscream.h 3 | // Starscream 4 | // 5 | // Created by Austin Cherry on 9/25/14. 6 | // Copyright (c) 2014 Vluxe. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for Starscream. 12 | FOUNDATION_EXPORT double StarscreamVersionNumber; 13 | 14 | //! Project version string for Starscream. 15 | FOUNDATION_EXPORT const unsigned char StarscreamVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Info.plist -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/arm64-apple-watchos-simulator.swiftsourceinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/arm64-apple-watchos-simulator.swiftsourceinfo -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/arm64.swiftsourceinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/arm64.swiftsourceinfo -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/i386-apple-watchos-simulator.swiftsourceinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/i386-apple-watchos-simulator.swiftsourceinfo -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/i386.swiftsourceinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/i386.swiftsourceinfo -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/x86_64-apple-watchos-simulator.swiftsourceinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/x86_64-apple-watchos-simulator.swiftsourceinfo -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/x86_64.swiftsourceinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/x86_64.swiftsourceinfo -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-watchos-simulator.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-watchos-simulator.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-watchos-simulator.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-watchos-simulator.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/arm64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/arm64.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/arm64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/arm64.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/i386-apple-watchos-simulator.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/i386-apple-watchos-simulator.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/i386-apple-watchos-simulator.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/i386-apple-watchos-simulator.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/i386.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/i386.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/i386.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/i386.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/x86_64-apple-watchos-simulator.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/x86_64-apple-watchos-simulator.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/x86_64-apple-watchos-simulator.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/x86_64-apple-watchos-simulator.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/x86_64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/x86_64.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/x86_64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/x86_64.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module Starscream { 2 | umbrella header "Starscream.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | 8 | module Starscream.Swift { 9 | header "Starscream-Swift.h" 10 | requires objc 11 | } 12 | -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Starscream: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/Starscream.framework/Starscream -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/dSYMs/Starscream.framework.dSYM/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.apple.xcode.dsym.com.vluxe.Starscream 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | dSYM 13 | CFBundleSignature 14 | ???? 15 | CFBundleShortVersionString 16 | 4.0.4 17 | CFBundleVersion 18 | 1 19 | 20 | 21 | -------------------------------------------------------------------------------- /Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/dSYMs/Starscream.framework.dSYM/Contents/Resources/DWARF/Starscream: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Starscream.xcframework/watchos-arm64_i386_x86_64-simulator/dSYMs/Starscream.framework.dSYM/Contents/Resources/DWARF/Starscream -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_armv7/Swifter.framework/Headers/SwifteriOS.h: -------------------------------------------------------------------------------- 1 | // 2 | // SwifteriOS.h 3 | // SwifteriOS 4 | // 5 | // Created by Romain Pouclet on 2015-11-24. 6 | // Copyright © 2015 Damian Kołakowski. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for SwifteriOS. 12 | FOUNDATION_EXPORT double SwifteriOSVersionNumber; 13 | 14 | //! Project version string for SwifteriOS. 15 | FOUNDATION_EXPORT const unsigned char SwifteriOSVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_armv7/Swifter.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/ios-arm64_armv7/Swifter.framework/Info.plist -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_armv7/Swifter.framework/Modules/Swifter.swiftmodule/arm.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/ios-arm64_armv7/Swifter.framework/Modules/Swifter.swiftmodule/arm.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_armv7/Swifter.framework/Modules/Swifter.swiftmodule/arm.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/ios-arm64_armv7/Swifter.framework/Modules/Swifter.swiftmodule/arm.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_armv7/Swifter.framework/Modules/Swifter.swiftmodule/arm64-apple-ios.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/ios-arm64_armv7/Swifter.framework/Modules/Swifter.swiftmodule/arm64-apple-ios.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_armv7/Swifter.framework/Modules/Swifter.swiftmodule/arm64-apple-ios.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/ios-arm64_armv7/Swifter.framework/Modules/Swifter.swiftmodule/arm64-apple-ios.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_armv7/Swifter.framework/Modules/Swifter.swiftmodule/arm64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/ios-arm64_armv7/Swifter.framework/Modules/Swifter.swiftmodule/arm64.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_armv7/Swifter.framework/Modules/Swifter.swiftmodule/arm64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/ios-arm64_armv7/Swifter.framework/Modules/Swifter.swiftmodule/arm64.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_armv7/Swifter.framework/Modules/Swifter.swiftmodule/armv7-apple-ios.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/ios-arm64_armv7/Swifter.framework/Modules/Swifter.swiftmodule/armv7-apple-ios.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_armv7/Swifter.framework/Modules/Swifter.swiftmodule/armv7-apple-ios.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/ios-arm64_armv7/Swifter.framework/Modules/Swifter.swiftmodule/armv7-apple-ios.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_armv7/Swifter.framework/Modules/Swifter.swiftmodule/armv7.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/ios-arm64_armv7/Swifter.framework/Modules/Swifter.swiftmodule/armv7.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_armv7/Swifter.framework/Modules/Swifter.swiftmodule/armv7.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/ios-arm64_armv7/Swifter.framework/Modules/Swifter.swiftmodule/armv7.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_armv7/Swifter.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module Swifter { 2 | header "Swifter-Swift.h" 3 | requires objc 4 | } 5 | -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_armv7/Swifter.framework/Swifter: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/ios-arm64_armv7/Swifter.framework/Swifter -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_armv7/dSYMs/Swifter.framework.dSYM/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.apple.xcode.dsym.pl.kolakowski.SwifteriOS 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | dSYM 13 | CFBundleSignature 14 | ???? 15 | CFBundleShortVersionString 16 | 1.5.0 17 | CFBundleVersion 18 | 1.5.0 19 | 20 | 21 | -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_armv7/dSYMs/Swifter.framework.dSYM/Contents/Resources/DWARF/Swifter: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/ios-arm64_armv7/dSYMs/Swifter.framework.dSYM/Contents/Resources/DWARF/Swifter -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Headers/SwifteriOS.h: -------------------------------------------------------------------------------- 1 | // 2 | // SwifteriOS.h 3 | // SwifteriOS 4 | // 5 | // Created by Romain Pouclet on 2015-11-24. 6 | // Copyright © 2015 Damian Kołakowski. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for SwifteriOS. 12 | FOUNDATION_EXPORT double SwifteriOSVersionNumber; 13 | 14 | //! Project version string for SwifteriOS. 15 | FOUNDATION_EXPORT const unsigned char SwifteriOSVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Info.plist -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/Project/arm64.swiftsourceinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/Project/arm64.swiftsourceinfo -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/Project/i386-apple-ios-simulator.swiftsourceinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/Project/i386-apple-ios-simulator.swiftsourceinfo -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/Project/i386.swiftsourceinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/Project/i386.swiftsourceinfo -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/Project/x86_64.swiftsourceinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/Project/x86_64.swiftsourceinfo -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/arm64-apple-ios-simulator.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/arm64-apple-ios-simulator.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/arm64-apple-ios-simulator.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/arm64-apple-ios-simulator.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/arm64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/arm64.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/arm64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/arm64.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/i386-apple-ios-simulator.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/i386-apple-ios-simulator.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/i386-apple-ios-simulator.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/i386-apple-ios-simulator.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/i386.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/i386.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/i386.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/i386.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/x86_64-apple-ios-simulator.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/x86_64-apple-ios-simulator.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/x86_64-apple-ios-simulator.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/x86_64-apple-ios-simulator.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/x86_64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/x86_64.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/x86_64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/x86_64.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module Swifter { 2 | header "Swifter-Swift.h" 3 | requires objc 4 | } 5 | -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Swifter: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/Swifter.framework/Swifter -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/dSYMs/Swifter.framework.dSYM/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.apple.xcode.dsym.pl.kolakowski.SwifteriOS 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | dSYM 13 | CFBundleSignature 14 | ???? 15 | CFBundleShortVersionString 16 | 1.5.0 17 | CFBundleVersion 18 | 1.5.0 19 | 20 | 21 | -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/dSYMs/Swifter.framework.dSYM/Contents/Resources/DWARF/Swifter: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/ios-arm64_i386_x86_64-simulator/dSYMs/Swifter.framework.dSYM/Contents/Resources/DWARF/Swifter -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/macos-arm64_x86_64/Swifter.framework/Headers: -------------------------------------------------------------------------------- 1 | Versions/Current/Headers -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/macos-arm64_x86_64/Swifter.framework/Modules: -------------------------------------------------------------------------------- 1 | Versions/Current/Modules -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/macos-arm64_x86_64/Swifter.framework/Resources: -------------------------------------------------------------------------------- 1 | Versions/Current/Resources -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/macos-arm64_x86_64/Swifter.framework/Swifter: -------------------------------------------------------------------------------- 1 | Versions/Current/Swifter -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/macos-arm64_x86_64/Swifter.framework/Versions/A/Headers/SwifterMac.h: -------------------------------------------------------------------------------- 1 | // 2 | // SwifterMac.h 3 | // SwifterMac 4 | // 5 | // Created by Romain Pouclet on 2015-11-24. 6 | // Copyright © 2015 Damian Kołakowski. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for SwifterMac. 12 | FOUNDATION_EXPORT double SwifterMacVersionNumber; 13 | 14 | //! Project version string for SwifterMac. 15 | FOUNDATION_EXPORT const unsigned char SwifterMacVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/macos-arm64_x86_64/Swifter.framework/Versions/A/Modules/Swifter.swiftmodule/arm64-apple-macos.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/macos-arm64_x86_64/Swifter.framework/Versions/A/Modules/Swifter.swiftmodule/arm64-apple-macos.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/macos-arm64_x86_64/Swifter.framework/Versions/A/Modules/Swifter.swiftmodule/arm64-apple-macos.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/macos-arm64_x86_64/Swifter.framework/Versions/A/Modules/Swifter.swiftmodule/arm64-apple-macos.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/macos-arm64_x86_64/Swifter.framework/Versions/A/Modules/Swifter.swiftmodule/arm64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/macos-arm64_x86_64/Swifter.framework/Versions/A/Modules/Swifter.swiftmodule/arm64.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/macos-arm64_x86_64/Swifter.framework/Versions/A/Modules/Swifter.swiftmodule/arm64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/macos-arm64_x86_64/Swifter.framework/Versions/A/Modules/Swifter.swiftmodule/arm64.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/macos-arm64_x86_64/Swifter.framework/Versions/A/Modules/Swifter.swiftmodule/x86_64-apple-macos.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/macos-arm64_x86_64/Swifter.framework/Versions/A/Modules/Swifter.swiftmodule/x86_64-apple-macos.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/macos-arm64_x86_64/Swifter.framework/Versions/A/Modules/Swifter.swiftmodule/x86_64-apple-macos.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/macos-arm64_x86_64/Swifter.framework/Versions/A/Modules/Swifter.swiftmodule/x86_64-apple-macos.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/macos-arm64_x86_64/Swifter.framework/Versions/A/Modules/Swifter.swiftmodule/x86_64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/macos-arm64_x86_64/Swifter.framework/Versions/A/Modules/Swifter.swiftmodule/x86_64.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/macos-arm64_x86_64/Swifter.framework/Versions/A/Modules/Swifter.swiftmodule/x86_64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/macos-arm64_x86_64/Swifter.framework/Versions/A/Modules/Swifter.swiftmodule/x86_64.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/macos-arm64_x86_64/Swifter.framework/Versions/A/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module Swifter { 2 | header "Swifter-Swift.h" 3 | requires objc 4 | } 5 | -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/macos-arm64_x86_64/Swifter.framework/Versions/A/Resources/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BuildMachineOSBuild 6 | 20D74 7 | CFBundleDevelopmentRegion 8 | en 9 | CFBundleExecutable 10 | Swifter 11 | CFBundleIdentifier 12 | pl.kolakowski.SwifterMac 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | Swifter 17 | CFBundlePackageType 18 | FMWK 19 | CFBundleShortVersionString 20 | 1.5.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleSupportedPlatforms 24 | 25 | MacOSX 26 | 27 | CFBundleVersion 28 | 1.5.0 29 | DTCompiler 30 | com.apple.compilers.llvm.clang.1_0 31 | DTPlatformBuild 32 | 12D4e 33 | DTPlatformName 34 | macosx 35 | DTPlatformVersion 36 | 11.1 37 | DTSDKBuild 38 | 20C63 39 | DTSDKName 40 | macosx11.1 41 | DTXcode 42 | 1240 43 | DTXcodeBuild 44 | 12D4e 45 | LSMinimumSystemVersion 46 | 10.10 47 | NSHumanReadableCopyright 48 | Copyright © 2019 Damian Kołakowski. All rights reserved. 49 | 50 | 51 | -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/macos-arm64_x86_64/Swifter.framework/Versions/A/Swifter: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/macos-arm64_x86_64/Swifter.framework/Versions/A/Swifter -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/macos-arm64_x86_64/Swifter.framework/Versions/Current: -------------------------------------------------------------------------------- 1 | A -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/macos-arm64_x86_64/dSYMs/Swifter.framework.dSYM/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.apple.xcode.dsym.pl.kolakowski.SwifterMac 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | dSYM 13 | CFBundleSignature 14 | ???? 15 | CFBundleShortVersionString 16 | 1.5.0 17 | CFBundleVersion 18 | 1.5.0 19 | 20 | 21 | -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/macos-arm64_x86_64/dSYMs/Swifter.framework.dSYM/Contents/Resources/DWARF/Swifter: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/macos-arm64_x86_64/dSYMs/Swifter.framework.dSYM/Contents/Resources/DWARF/Swifter -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/tvos-arm64/Swifter.framework/Headers/SwiftertvOS.h: -------------------------------------------------------------------------------- 1 | // 2 | // SwiftertvOS.h 3 | // SwiftertvOS 4 | // 5 | // Created by Romain Pouclet on 2015-11-24. 6 | // Copyright © 2015 Damian Kołakowski. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for SwiftertvOS. 12 | FOUNDATION_EXPORT double SwiftertvOSVersionNumber; 13 | 14 | //! Project version string for SwifteriOS. 15 | FOUNDATION_EXPORT const unsigned char SwiftertvOSVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/tvos-arm64/Swifter.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/tvos-arm64/Swifter.framework/Info.plist -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/tvos-arm64/Swifter.framework/Modules/Swifter.swiftmodule/arm64-apple-tvos.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/tvos-arm64/Swifter.framework/Modules/Swifter.swiftmodule/arm64-apple-tvos.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/tvos-arm64/Swifter.framework/Modules/Swifter.swiftmodule/arm64-apple-tvos.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/tvos-arm64/Swifter.framework/Modules/Swifter.swiftmodule/arm64-apple-tvos.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/tvos-arm64/Swifter.framework/Modules/Swifter.swiftmodule/arm64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/tvos-arm64/Swifter.framework/Modules/Swifter.swiftmodule/arm64.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/tvos-arm64/Swifter.framework/Modules/Swifter.swiftmodule/arm64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/tvos-arm64/Swifter.framework/Modules/Swifter.swiftmodule/arm64.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/tvos-arm64/Swifter.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module Swifter { 2 | header "Swifter-Swift.h" 3 | requires objc 4 | } 5 | -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/tvos-arm64/Swifter.framework/Swifter: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/tvos-arm64/Swifter.framework/Swifter -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/tvos-arm64/dSYMs/Swifter.framework.dSYM/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.apple.xcode.dsym.pl.kolakowski.SwiftertvOS 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | dSYM 13 | CFBundleSignature 14 | ???? 15 | CFBundleShortVersionString 16 | 1.5.0 17 | CFBundleVersion 18 | 1.5.0 19 | 20 | 21 | -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/tvos-arm64/dSYMs/Swifter.framework.dSYM/Contents/Resources/DWARF/Swifter: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/tvos-arm64/dSYMs/Swifter.framework.dSYM/Contents/Resources/DWARF/Swifter -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/tvos-arm64_x86_64-simulator/Swifter.framework/Headers/SwiftertvOS.h: -------------------------------------------------------------------------------- 1 | // 2 | // SwiftertvOS.h 3 | // SwiftertvOS 4 | // 5 | // Created by Romain Pouclet on 2015-11-24. 6 | // Copyright © 2015 Damian Kołakowski. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for SwiftertvOS. 12 | FOUNDATION_EXPORT double SwiftertvOSVersionNumber; 13 | 14 | //! Project version string for SwifteriOS. 15 | FOUNDATION_EXPORT const unsigned char SwiftertvOSVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/tvos-arm64_x86_64-simulator/Swifter.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/tvos-arm64_x86_64-simulator/Swifter.framework/Info.plist -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/tvos-arm64_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/Project/arm64-apple-tvos-simulator.swiftsourceinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/tvos-arm64_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/Project/arm64-apple-tvos-simulator.swiftsourceinfo -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/tvos-arm64_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/Project/arm64.swiftsourceinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/tvos-arm64_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/Project/arm64.swiftsourceinfo -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/tvos-arm64_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/Project/x86_64-apple-tvos-simulator.swiftsourceinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/tvos-arm64_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/Project/x86_64-apple-tvos-simulator.swiftsourceinfo -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/tvos-arm64_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/Project/x86_64.swiftsourceinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/tvos-arm64_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/Project/x86_64.swiftsourceinfo -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/tvos-arm64_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/arm64-apple-tvos-simulator.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/tvos-arm64_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/arm64-apple-tvos-simulator.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/tvos-arm64_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/arm64-apple-tvos-simulator.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/tvos-arm64_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/arm64-apple-tvos-simulator.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/tvos-arm64_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/arm64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/tvos-arm64_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/arm64.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/tvos-arm64_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/arm64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/tvos-arm64_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/arm64.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/tvos-arm64_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/x86_64-apple-tvos-simulator.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/tvos-arm64_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/x86_64-apple-tvos-simulator.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/tvos-arm64_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/x86_64-apple-tvos-simulator.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/tvos-arm64_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/x86_64-apple-tvos-simulator.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/tvos-arm64_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/x86_64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/tvos-arm64_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/x86_64.swiftdoc -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/tvos-arm64_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/x86_64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/tvos-arm64_x86_64-simulator/Swifter.framework/Modules/Swifter.swiftmodule/x86_64.swiftmodule -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/tvos-arm64_x86_64-simulator/Swifter.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module Swifter { 2 | header "Swifter-Swift.h" 3 | requires objc 4 | } 5 | -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/tvos-arm64_x86_64-simulator/Swifter.framework/Swifter: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/tvos-arm64_x86_64-simulator/Swifter.framework/Swifter -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/tvos-arm64_x86_64-simulator/dSYMs/Swifter.framework.dSYM/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.apple.xcode.dsym.pl.kolakowski.SwiftertvOS 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | dSYM 13 | CFBundleSignature 14 | ???? 15 | CFBundleShortVersionString 16 | 1.5.0 17 | CFBundleVersion 18 | 1.5.0 19 | 20 | 21 | -------------------------------------------------------------------------------- /Frameworks/Swifter.xcframework/tvos-arm64_x86_64-simulator/dSYMs/Swifter.framework.dSYM/Contents/Resources/DWARF/Swifter: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pvzig/SlackKit/8b1596e12e8b28638af592922ed5e8ef61dbcd38/Frameworks/Swifter.xcframework/tvos-arm64_x86_64-simulator/dSYMs/Swifter.framework.dSYM/Contents/Resources/DWARF/Swifter -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2017 Peter Zignego 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /LinuxMain.swift: -------------------------------------------------------------------------------- 1 | import XCTest 2 | 3 | import SlackKitTests 4 | 5 | var tests = [XCTestCaseEntry]() 6 | tests += SlackKitTests.__allTests() 7 | 8 | XCTMain(tests) 9 | -------------------------------------------------------------------------------- /SKClient/README.md: -------------------------------------------------------------------------------- 1 | # SKClient 2 | Create a custom SlackKit client. 3 | 4 | ## Installation 5 | 6 |
7 | Swift Package Manager 8 | Add SlackKit as a dependency to your Package.swift and specify SKClient as a target dependency: 9 | 10 | ```swift 11 | import PackageDescription 12 | 13 | let package = Package( 14 | name: "SampleApp", 15 | products: [ 16 | .executable( 17 | name: "SampleApp", 18 | targets: ["SampleApp"]), 19 | ], 20 | dependencies: [ 21 | .package(url: "https://github.com/pvzig/SlackKit.git", .upToNextMinor(from: "4.6.0")), 22 | ], 23 | targets: [ 24 | .target( 25 | name: "SampleApp", 26 | dependencies: ["SKClient"]) 27 | ] 28 | ) 29 | 30 | ``` 31 |
32 |
33 | Carthage 34 | Add SlackKit to your Cartfile: 35 | 36 | ``` 37 | github "pvzig/SlackKit" 38 | ``` 39 | 40 | and run 41 | 42 | ``` 43 | carthage bootstrap 44 | ``` 45 | 46 | Drag the built SKClient.framework and it's dependency SKCore.framework into your Xcode project. 47 |
48 |
49 | CocoaPods 50 | Add SKClient to your Podfile: 51 | 52 | ``` 53 | use_frameworks! 54 | pod 'SlackKit/SKClient' 55 | ``` 56 |
57 | 58 | ## Usage 59 | To use the library in your project import it: 60 | 61 | #### Carthage & SPM 62 | 63 | ```swift 64 | import SKClient 65 | ``` 66 | 67 | #### CocoaPods 68 | 69 | ```swift 70 | import SlackKit 71 | ``` 72 | 73 | ### The Basics 74 | Subclass `Client` to create a custom SlackKit client. 75 | 76 | ``` 77 | class MyClient: Client { 78 | 79 | override func notificationForEvent(_ event: Event, type: EventType) { 80 | … 81 | } 82 | 83 | override func initialSetup(JSON: [String: Any]) { 84 | … 85 | } 86 | } 87 | ``` 88 | 89 | Pass your custom client to [`SlackKit`](https://www.github.com/pvzig/SlackKit) when adding an RTM bot: 90 | 91 | ``` 92 | let bot = SlackKit() 93 | bot.addRTMBotWithAPIToken(“xoxb-SLACK_AUTH_TOKEN”, client: MyClient()) 94 | ``` 95 | -------------------------------------------------------------------------------- /SKCore/README.md: -------------------------------------------------------------------------------- 1 | # SKCore 2 | 3 | The shared model objects used by [SlackKit](https://www.github.com/pvzig/SlackKit). 4 | 5 | -------------------------------------------------------------------------------- /SKCore/Sources/Bot.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Bot.swift 3 | // 4 | // Copyright © 2017 Peter Zignego. All rights reserved. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | public struct Bot { 25 | public let id: String? 26 | public var botToken: String? 27 | public var name: String? 28 | public var icons: [String: Any]? 29 | 30 | public init(bot: [String: Any]?) { 31 | id = bot?["id"] as? String 32 | name = bot?["name"] as? String 33 | icons = bot?["icons"] as? [String: Any] 34 | } 35 | 36 | public init(botUser: [String: Any]?) { 37 | id = botUser?["bot_user_id"] as? String 38 | botToken = botUser?["bot_access_token"] as? String 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /SKCore/Sources/Comment.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Comment.swift 3 | // 4 | // Copyright © 2017 Peter Zignego. All rights reserved. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | public struct Comment: Equatable { 25 | public let id: String? 26 | public let user: String? 27 | public var created: Int? 28 | public var comment: String? 29 | public var starred: Bool? 30 | public var stars: Int? 31 | public var reactions = [Reaction]() 32 | 33 | public init(comment: [String: Any]?) { 34 | self.comment = comment?["comment"] as? String 35 | id = comment?["id"] as? String 36 | created = comment?["created"] as? Int 37 | user = comment?["user"] as? String 38 | starred = comment?["is_starred"] as? Bool 39 | stars = comment?["num_stars"] as? Int 40 | reactions = Reaction.reactionsFromArray(comment?["reactions"] as? [[String: Any]]) 41 | } 42 | 43 | public init(id: String?) { 44 | self.id = id 45 | self.user = nil 46 | } 47 | 48 | public static func == (lhs: Comment, rhs: Comment) -> Bool { 49 | return lhs.id == rhs.id 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /SKCore/Sources/CustomProfile.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CustomProfile.swift 3 | // 4 | // Copyright © 2017 Peter Zignego. All rights reserved. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | public struct CustomProfile { 25 | public var fields = [String: CustomProfileField]() 26 | 27 | public init(profile: [String: Any]?) { 28 | if let eventFields = profile?["fields"] as? [Any] { 29 | for field in eventFields { 30 | var cpf: CustomProfileField? 31 | if let fieldDictionary = field as? [String: Any] { 32 | cpf = CustomProfileField(field: fieldDictionary) 33 | } else { 34 | cpf = CustomProfileField(id: field as? String) 35 | } 36 | if let id = cpf?.id { fields[id] = cpf } 37 | } 38 | } 39 | } 40 | 41 | public init(customFields: [String: Any]?) { 42 | if let customFields = customFields { 43 | for key in customFields.keys { 44 | let cpf = CustomProfileField(field: customFields[key] as? [String: Any]) 45 | self.fields[key] = cpf 46 | } 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /SKCore/Sources/Edited.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Edited.swift 3 | // 4 | // Copyright © 2017 Peter Zignego. All rights reserved. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | public struct Edited { 25 | fileprivate enum CodingKeys: String { 26 | case user 27 | case ts 28 | } 29 | 30 | public let user: String? 31 | public let ts: String? 32 | 33 | public init(edited: [String: Any]?) { 34 | user = edited?[CodingKeys.user] as? String 35 | ts = edited?[CodingKeys.ts] as? String 36 | } 37 | } 38 | 39 | extension Edited: Codable { 40 | public init(from decoder: Decoder) throws { 41 | let values = try decoder.container(keyedBy: CodingKeys.self) 42 | user = try values.decodeIfPresent(String.self, forKey: .user) 43 | ts = try values.decodeIfPresent(String.self, forKey: .ts) 44 | } 45 | 46 | public func encode(to encoder: Encoder) throws { 47 | var container = encoder.container(keyedBy: CodingKeys.self) 48 | try container.encode(user, forKey: .user) 49 | try container.encode(ts, forKey: .ts) 50 | } 51 | } 52 | 53 | extension Edited.CodingKeys: CodingKey { } 54 | -------------------------------------------------------------------------------- /SKCore/Sources/Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Extensions.swift 3 | // 4 | // Copyright © 2017 Peter Zignego. All rights reserved. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | import Foundation 25 | 26 | public extension Date { 27 | var slackTimestamp: Double { 28 | return NSNumber(value: timeIntervalSince1970).doubleValue 29 | } 30 | } 31 | 32 | public extension UInt64 { 33 | static var nanosecondsPerSecond: UInt64 { 34 | #if os(Linux) 35 | return UInt64(CLOCKS_PER_SEC) 36 | #else 37 | return NSEC_PER_SEC 38 | #endif 39 | } 40 | } 41 | 42 | public extension Dictionary where Key == String, Value == Any { 43 | subscript(codingKey: CodingKey) -> Any? { 44 | get { 45 | return self[codingKey.stringValue] 46 | } 47 | 48 | set { 49 | self[codingKey.stringValue] = newValue 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /SKCore/Sources/History.swift: -------------------------------------------------------------------------------- 1 | // 2 | // History.swift 3 | // 4 | // Copyright © 2017 Peter Zignego. All rights reserved. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | import Foundation 25 | 26 | public struct History { 27 | public var latest: Date? 28 | public var messages = [Message]() 29 | public let hasMore: Bool? 30 | 31 | public init(history: [String: Any]?) { 32 | if let latestStr = history?["latest"] as? String, let latestDouble = Double(latestStr) { 33 | latest = Date(timeIntervalSince1970: TimeInterval(latestDouble)) 34 | } 35 | if let msgs = history?["messages"] as? [[String: Any]] { 36 | for message in msgs { 37 | messages.append(Message(dictionary: message)) 38 | } 39 | } 40 | hasMore = history?["has_more"] as? Bool 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /SKCore/Sources/OAuthConfig.swift: -------------------------------------------------------------------------------- 1 | // 2 | // OAuthConfig.swift 3 | // 4 | // Copyright © 2017 Peter Zignego. All rights reserved. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | import Foundation 25 | 26 | public struct OAuthConfig { 27 | public let clientID: String 28 | public let clientSecret: String 29 | public let state: String 30 | public let redirectURI: String? 31 | 32 | public init(clientID: String, clientSecret: String, state: String = "", redirectURI: String? = nil) { 33 | self.clientID = clientID 34 | self.clientSecret = clientSecret 35 | self.state = state 36 | self.redirectURI = redirectURI 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /SKCore/Sources/RTMOptions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RTMOptions.swift 3 | // 4 | // Copyright © 2017 Peter Zignego. All rights reserved. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | import Foundation 25 | 26 | public struct RTMOptions { 27 | public let batchPresenceAware: Bool 28 | public let mpimAware: Bool 29 | public let noLatest: Bool 30 | public let noUnreads: Bool 31 | public let presenceSub: Bool 32 | public let simpleLatest: Bool 33 | public let pingInterval: TimeInterval 34 | public let timeout: TimeInterval 35 | public let reconnect: Bool 36 | 37 | public init( 38 | batchPresenceAware: Bool = false, 39 | mpimAware: Bool = true, 40 | noLatest: Bool = false, 41 | noUnreads: Bool = false, 42 | presenceSub: Bool = false, 43 | simpleLatest: Bool = false, 44 | pingInterval: TimeInterval = 30, 45 | timeout: TimeInterval = 300, 46 | reconnect: Bool = true 47 | ) { 48 | self.batchPresenceAware = batchPresenceAware 49 | self.mpimAware = mpimAware 50 | self.noLatest = noLatest 51 | self.noUnreads = noUnreads 52 | self.presenceSub = presenceSub 53 | self.simpleLatest = simpleLatest 54 | self.pingInterval = pingInterval 55 | self.timeout = timeout 56 | self.reconnect = reconnect 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /SKCore/Sources/Reaction.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Reaction.swift 3 | // 4 | // Copyright © 2017 Peter Zignego. All rights reserved. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | public struct Reaction: Equatable { 25 | public let name: String? 26 | public var user: String? 27 | 28 | public init(reaction: [String: Any]?) { 29 | name = reaction?["name"] as? String 30 | } 31 | 32 | public init(name: String, user: String) { 33 | self.name = name 34 | self.user = user 35 | } 36 | 37 | static func reactionsFromArray(_ array: [[String: Any]]?) -> [Reaction] { 38 | var reactions = [Reaction]() 39 | if let array = array { 40 | for reaction in array { 41 | if let users = reaction["users"] as? [String], let name = reaction["name"] as? String { 42 | for user in users { 43 | reactions.append(Reaction(name: name, user: user)) 44 | } 45 | } 46 | } 47 | } 48 | return reactions 49 | } 50 | 51 | public static func == (lhs: Reaction, rhs: Reaction) -> Bool { 52 | return lhs.name == rhs.name 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /SKCore/Sources/Reply.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Reaction.swift 3 | // 4 | // Copyright © 2017 Peter Zignego. All rights reserved. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | public struct Reply { 25 | fileprivate enum CodingKeys: String { 26 | case user 27 | case ts 28 | } 29 | 30 | public let user: String? 31 | public let ts: String? 32 | 33 | public init(reply: [String: Any]?) { 34 | user = reply?[CodingKeys.user] as? String 35 | ts = reply?[CodingKeys.ts] as? String 36 | } 37 | } 38 | 39 | extension Reply: Codable { 40 | public init(from decoder: Decoder) throws { 41 | let values = try decoder.container(keyedBy: CodingKeys.self) 42 | user = try values.decodeIfPresent(String.self, forKey: .user) 43 | ts = try values.decodeIfPresent(String.self, forKey: .ts) 44 | } 45 | 46 | public func encode(to encoder: Encoder) throws { 47 | var container = encoder.container(keyedBy: CodingKeys.self) 48 | try container.encode(user, forKey: .user) 49 | try container.encode(ts, forKey: .ts) 50 | } 51 | } 52 | 53 | extension Reply.CodingKeys: CodingKey { } 54 | -------------------------------------------------------------------------------- /SKCore/Sources/Team.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Team.swift 3 | // 4 | // Copyright © 2017 Peter Zignego. All rights reserved. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | public struct Team { 25 | public let id: String? 26 | public var name: String? 27 | public var domain: String? 28 | public var emailDomain: String? 29 | public var messageEditWindowMinutes: Int? 30 | public var overStorageLimit: Bool? 31 | public var prefs: [String: Any]? 32 | public var plan: String? 33 | public var icon: TeamIcon? 34 | 35 | public init(team: [String: Any]?) { 36 | id = team?["id"] as? String 37 | name = team?["name"] as? String 38 | domain = team?["domain"] as? String 39 | emailDomain = team?["email_domain"] as? String 40 | messageEditWindowMinutes = team?["msg_edit_window_mins"] as? Int 41 | overStorageLimit = team?["over_storage_limit"] as? Bool 42 | prefs = team?["prefs"] as? [String: Any] 43 | plan = team?["plan"] as? String 44 | icon = TeamIcon(icon: team?["icon"] as? [String: Any]) 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /SKCore/Sources/Topic.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Topic.swift 3 | // 4 | // Copyright © 2017 Peter Zignego. All rights reserved. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | public struct Topic { 25 | fileprivate enum CodingKeys: String { 26 | case value 27 | case creator 28 | case lastSet = "last_set" 29 | } 30 | 31 | public let value: String? 32 | public let creator: String? 33 | public let lastSet: Int? 34 | 35 | public init(topic: [String: Any]?) { 36 | value = topic?[CodingKeys.value] as? String 37 | creator = topic?[CodingKeys.creator] as? String 38 | lastSet = topic?[CodingKeys.lastSet] as? Int 39 | } 40 | } 41 | 42 | extension Topic: Codable { 43 | public init(from decoder: Decoder) throws { 44 | let values = try decoder.container(keyedBy: CodingKeys.self) 45 | value = try values.decodeIfPresent(String.self, forKey: .value) 46 | creator = try values.decodeIfPresent(String.self, forKey: .creator) 47 | lastSet = try values.decodeIfPresent(Int.self, forKey: .lastSet) 48 | } 49 | 50 | public func encode(to encoder: Encoder) throws { 51 | var container = encoder.container(keyedBy: CodingKeys.self) 52 | try container.encode(value, forKey: .value) 53 | try container.encode(creator, forKey: .creator) 54 | try container.encode(lastSet, forKey: .lastSet) 55 | } 56 | } 57 | 58 | extension Topic.CodingKeys: CodingKey { } 59 | -------------------------------------------------------------------------------- /SKServer/Sources/Middleware/MessageActionMiddleware.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MessageActionMiddleware.swift 3 | // 4 | // Copyright © 2017 Peter Zignego. All rights reserved. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | public struct MessageActionMiddleware: Middleware { 25 | let token: String 26 | let routes: [MessageActionRoute] 27 | 28 | public init(token: String, routes: [MessageActionRoute]) { 29 | self.token = token 30 | self.routes = routes 31 | } 32 | 33 | public func respond(to request: (RequestType, ResponseType)) -> (RequestType, ResponseType) { 34 | if let form = request.0.formURLEncodedBody.first(where: {$0.name == "ssl_check"}), form.value == "1" { 35 | return (request.0, Response(200)) 36 | } 37 | guard 38 | let actionRequest = MessageActionRequest(request: request.0), 39 | let middleware = routes.first(where: {$0.action.name == actionRequest.action?.name})?.middleware, 40 | actionRequest.token == token 41 | else { 42 | return (request.0, Response(400)) 43 | } 44 | return middleware.respond(to: request) 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /SKServer/Sources/Middleware/RedirectMiddleware.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RedirectMiddleware.swift 3 | // 4 | // Copyright (c) 2017 Quark 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in all 14 | // copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | // SOFTWARE. 23 | 24 | public struct RedirectMiddleware: Middleware { 25 | let location: String 26 | let shouldRedirect: (RequestType) -> Bool 27 | 28 | public init(redirectTo location: String, if shouldRedirect: @escaping (RequestType) -> Bool) { 29 | self.location = location 30 | self.shouldRedirect = shouldRedirect 31 | } 32 | 33 | public func respond(to request: (RequestType, ResponseType)) -> (RequestType, ResponseType) { 34 | if shouldRedirect(request.0) { 35 | return (request.0, try! Response(302, "", HTTPHeaders(headers: [Header(name: "location", value: location)]))) 36 | } 37 | return request 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /SKServer/Sources/Model/AuthorizeResponse.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AuthorizeResponse.swift 3 | // 4 | // Copyright © 2017 Peter Zignego. All rights reserved. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | public struct AuthorizeResponse { 25 | var code: String? 26 | var state: String? 27 | 28 | init?(queryItems: [String: String]) { 29 | for item in queryItems { 30 | switch item.key { 31 | case "code": 32 | self.code = item.value 33 | case "state": 34 | self.state = item.value 35 | default: 36 | continue 37 | } 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /SKServer/Sources/Model/IncomingWebhook.swift: -------------------------------------------------------------------------------- 1 | // 2 | // IncomingWebhook.swift 3 | // 4 | // Copyright © 2017 Peter Zignego. All rights reserved. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | public struct IncomingWebhook { 25 | public let url: String? 26 | public let channel: String? 27 | public let configurationURL: String? 28 | public let username: String? 29 | public let iconEmoji: String? 30 | public let iconURL: String? 31 | 32 | internal init(webhook: [String: Any]?) { 33 | url = webhook?["url"] as? String 34 | channel = webhook?["channel"] as? String 35 | configurationURL = webhook?["configuration_url"] as? String 36 | username = webhook?["username"] as? String 37 | iconEmoji = webhook?["icon_emoji"] as? String 38 | iconURL = webhook?["icon_url"] as? String 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /SKServer/Sources/Model/MessageActionRoute.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MessageActionRoute.swift 3 | // 4 | // Copyright © 2017 Peter Zignego. All rights reserved. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #if !COCOAPODS 25 | import SKCore 26 | #endif 27 | 28 | public struct MessageActionRoute { 29 | let action: Action 30 | let middleware: Middleware 31 | 32 | public init(action: Action, middleware: Middleware) { 33 | self.action = action 34 | self.middleware = middleware 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /SKServer/Sources/Model/OAuthResponse.swift: -------------------------------------------------------------------------------- 1 | // 2 | // OAuthResponse.swift 3 | // 4 | // Copyright © 2017 Peter Zignego. All rights reserved. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #if !COCOAPODS 25 | import SKCore 26 | #endif 27 | 28 | public struct OAuthResponse { 29 | public let accessToken: String? 30 | public let scope: [Scope]? 31 | public let userID: String? 32 | public let teamName: String? 33 | public let teamID: String? 34 | public let incomingWebhook: IncomingWebhook? 35 | public let bot: Bot? 36 | 37 | internal init(response: [String: Any]?) { 38 | accessToken = response?["access_token"] as? String 39 | scope = (response?["scope"] as? String)?.components(separatedBy: ",").compactMap { Scope(rawValue: $0) } 40 | userID = response?["user_id"] as? String 41 | teamName = response?["team_name"] as? String 42 | teamID = response?["team_id"] as? String 43 | incomingWebhook = IncomingWebhook(webhook: response?["incoming_webhook"] as? [String: Any]) 44 | bot = Bot(botUser: response?["bot"] as? [String: Any]) 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /SKServer/Sources/Model/RequestRoute.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RequestRoute.swift 3 | // 4 | // Copyright © 2017 Peter Zignego. All rights reserved. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | public struct RequestRoute { 25 | let path: String 26 | let middleware: Middleware 27 | 28 | public init(path: String, middleware: Middleware) { 29 | self.path = path 30 | self.middleware = middleware 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /SKServer/Sources/Model/SKResponse.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SKResponse.swift 3 | // 4 | // Copyright © 2017 Peter Zignego. All rights reserved. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | import Foundation 25 | #if !COCOAPODS 26 | import SKCore 27 | #endif 28 | 29 | public struct SKResponse { 30 | let text: String 31 | let responseType: MessageResponseType 32 | let attachments: [Attachment]? 33 | 34 | public init(text: String, responseType: MessageResponseType = .inChannel, attachments: [Attachment]? = nil) { 35 | self.responseType = responseType 36 | self.text = text 37 | self.attachments = attachments 38 | } 39 | 40 | internal var json: [String: Any] { 41 | var json = [String: Any]() 42 | json["text"] = text 43 | json["response_type"] = responseType.rawValue 44 | json["attachments"] = attachments?.map({$0.dictionary}) 45 | return json 46 | } 47 | 48 | internal var data: Data? { 49 | return try? JSONSerialization.data(withJSONObject: self.json, options: []) 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /SKServer/Sources/Model/WebhookRequest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // WebhookRequest.swift 3 | // 4 | // Copyright © 2017 Peter Zignego. All rights reserved. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | public struct WebhookRequest { 25 | public let token: String? 26 | public let teamID: String? 27 | public let teamDomain: String? 28 | public let channelID: String? 29 | public let channelName: String? 30 | public let ts: String? 31 | public let userID: String? 32 | public let userName: String? 33 | public let command: String? 34 | public let text: String? 35 | public let triggerWord: String? 36 | public let responseURL: String? 37 | 38 | internal init(request: [String: Any]?) { 39 | token = request?["token"] as? String 40 | teamID = request?["team_id"] as? String 41 | teamDomain = request?["team_domain"] as? String 42 | channelID = request?["channel_id"] as? String 43 | channelName = request?["channel_name"] as? String 44 | ts = request?["timestamp"] as? String 45 | userID = request?["user_id"] as? String 46 | userName = request?["user_name"] as? String 47 | command = request?["command"] as? String 48 | text = request?["text"] as? String 49 | triggerWord = request?["trigger_word"] as? String 50 | responseURL = request?["response_url"] as? String 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /SKServer/Sources/SKServer.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SKServer.swift 3 | // 4 | // Copyright © 2017 Peter Zignego. All rights reserved. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #if !COCOAPODS 25 | @_exported import SKCore 26 | #endif 27 | 28 | public protocol SlackKitServer { 29 | func start() 30 | } 31 | 32 | public protocol Middleware { 33 | func respond(to request: (RequestType, ResponseType)) -> (RequestType, ResponseType) 34 | } 35 | 36 | public final class SKServer { 37 | internal let server: SlackKitServer 38 | 39 | public init?(server: SlackKitServer? = nil, responder: SlackKitResponder) { 40 | if let server = server { 41 | self.server = server 42 | } else { 43 | self.server = SwifterServer(responder: responder) 44 | } 45 | } 46 | 47 | public convenience init?(server: SlackKitServer? = nil, responder: SlackKitResponder, oauth: OAuthConfig) { 48 | var res = responder 49 | res.routes.append(SKServer.oauthRequestRoute(config: oauth)) 50 | self.init(server: server, responder: res) 51 | } 52 | 53 | private static func oauthRequestRoute(config: OAuthConfig) -> RequestRoute { 54 | let oauth = OAuthMiddleware(config: config) 55 | return RequestRoute(path: "/oauth", middleware: oauth) 56 | } 57 | 58 | public func start() { 59 | server.start() 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /SKServer/Sources/SlackKitResponder.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SlackKitResponder.swift 3 | // 4 | // Copyright © 2017 Peter Zignego. All rights reserved. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #if os(Linux) 25 | import Dispatch 26 | #endif 27 | 28 | //swiftlint:disable line_length 29 | public struct SlackKitResponder: Middleware { 30 | 31 | public var routes: [RequestRoute] 32 | 33 | public init(routes: [RequestRoute]) { 34 | self.routes = routes 35 | } 36 | 37 | public func respond(to request: (RequestType, ResponseType)) -> (RequestType, ResponseType) { 38 | if let form = request.0.formURLEncodedBody.first(where: {$0.name == "ssl_check"}), form.value == "1" { 39 | return (request.0, Response(200)) 40 | } 41 | return routes.filter { $0.path == request.0.path }.first?.middleware.respond(to: (request.0, request.1)) ?? (request.0, Response(404)) 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /SKServer/Sources/Titan/Titan/Titan.swift: -------------------------------------------------------------------------------- 1 | // Copyright 2017 Enervolution GmbH 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // https://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | import Foundation 15 | 16 | extension Titan { 17 | public func predicate(_ predicate: @escaping (RequestType, ResponseType) -> Bool, 18 | true trueBuilder: ((Titan) -> Void), false falseBuilder: ((Titan) -> Void)? = nil) { 19 | 20 | let trueTitan = Titan() 21 | trueBuilder(trueTitan) 22 | let falseTitan = falseBuilder.map { (builder) -> Titan in 23 | let falseTitan = Titan() 24 | builder(falseTitan) 25 | return falseTitan 26 | } 27 | self.addFunction { (req, res) -> (RequestType, ResponseType) in 28 | if predicate(req, res) { 29 | return trueTitan.app(request: req, response: res) 30 | } else { 31 | return falseTitan?.app(request: req, response: res) ?? (req, res) 32 | } 33 | } 34 | } 35 | 36 | public func authenticated(_ predicate: @escaping ((RequestType) -> Bool), _ authenticatedBuilder: ((Titan) -> Void)) { 37 | self.predicate({ (req, _) -> Bool in 38 | return predicate(req) 39 | }, true: authenticatedBuilder, false: { (unauthenticated) in 40 | unauthenticated.addFunction({ (req, _) -> (RequestType, ResponseType) in 41 | do { 42 | return (req, 43 | try Response(code: 401, body: "Not Authorized", 44 | headers: HTTPHeaders(dictionaryLiteral: ("Content-Type", "text/plain")))) 45 | } catch { 46 | self.log?.error(error.localizedDescription) 47 | } 48 | return (req, Response(401)) 49 | }) 50 | }) 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /SKServer/Sources/Titan/Titan404/Titan404.swift: -------------------------------------------------------------------------------- 1 | // Copyright 2017 Enervolution GmbH 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // https://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | import Foundation 15 | 16 | /* 17 | Returns a 404 response. 18 | 19 | By design, Titan returns a null HTTP response. This is less than ideal. 20 | by adding this to the top of a chain of Titan functions, the server will return this response if 21 | no other function has returned a ResponseType. Otherwise, any other function that returns a response will 22 | effectively overwrite it. 23 | */ 24 | public let defaultTo404: TitanFunc = { (request, response) -> (RequestType, ResponseType) in 25 | 26 | do { 27 | return (request, try Response(code: 404, body: "Not found", headers: HTTPHeaders(dictionaryLiteral: ("Content-Type", "text/plain")))) 28 | } catch { 29 | return (request, Response(code: 404, body: Data(), headers: HTTPHeaders())) 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /SKServer/Sources/Titan/TitanCore/TitanCore.swift: -------------------------------------------------------------------------------- 1 | // Copyright 2017 Enervolution GmbH 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // https://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | import Foundation 15 | 16 | public typealias TitanFunc = (RequestType, ResponseType) -> (request: RequestType, response: ResponseType) 17 | 18 | public final class Titan { 19 | 20 | public let log: TitanLogger? 21 | 22 | /// Creates a Titan instance 23 | /// 24 | /// - parameters: 25 | /// - logger: a TitanLogger 26 | public init(_ logger: TitanLogger? = nil) { 27 | self.log = logger 28 | } 29 | 30 | // A chain of Functions that are executed in order. The output of one is the input of the next; the final output is sent to the client. 31 | private var functionStack = [TitanFunc]() 32 | 33 | /// add a function to Titan’s request / response processing flow 34 | public func addFunction(_ function: @escaping TitanFunc) { 35 | functionStack.append(function) 36 | } 37 | 38 | /// Titan handler which should be given to a server 39 | public func app(request: RequestType, response: ResponseType) -> (request: RequestType, response: ResponseType) { 40 | typealias Result = (RequestType, ResponseType) 41 | 42 | let initial: Result = (request, response) 43 | // Apply the function one at a time to the request and the response, returning the result to the next function. 44 | return functionStack.reduce(initial) { (res, next) -> Result in 45 | return next(res.request, res.response) 46 | } 47 | } 48 | 49 | } 50 | -------------------------------------------------------------------------------- /SKServer/Sources/Titan/TitanCore/TitanError.swift: -------------------------------------------------------------------------------- 1 | // Copyright 2017 Enervolution GmbH 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // https://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | import Foundation 15 | 16 | public enum TitanError: Error { 17 | case dataConversion 18 | } 19 | 20 | extension TitanError: LocalizedError { 21 | public var errorDescription: String? { 22 | switch self { 23 | case .dataConversion: 24 | return "failed converting body String to Data." 25 | } 26 | } 27 | public var failureReason: String? { 28 | switch self { 29 | case .dataConversion: 30 | return "String is not utf8 encoded." 31 | } 32 | } 33 | public var recoverySuggestion: String? { 34 | switch self { 35 | case .dataConversion: 36 | return "String must be utf8 encoded." 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /SKServer/Sources/Titan/TitanCore/TitanLogs.swift: -------------------------------------------------------------------------------- 1 | // Copyright 2017 Enervolution GmbH 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // https://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | import Foundation 15 | 16 | public protocol TitanLogger { 17 | 18 | /// log something generally unimportant (lowest priority) 19 | func verbose(_ string: String) 20 | 21 | /// log something which help during debugging (low priority) 22 | func debug(_ string: String) 23 | 24 | /// log something which you are really interested but which is not an issue or error (normal priority) 25 | func info(_ string: String) 26 | 27 | /// log something which may cause big trouble soon (high priority) 28 | func warning(_ string: String) 29 | 30 | /// log something which will keep you awake at night (highest priority) 31 | func error(_ string: String) 32 | } 33 | -------------------------------------------------------------------------------- /SKServer/Sources/Titan/TitanCore/TitanResponse.swift: -------------------------------------------------------------------------------- 1 | // Copyright 2017 Enervolution GmbH 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // https://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | import Foundation 15 | 16 | /// A protocol defining an HTTP response 17 | public protocol ResponseType { 18 | /// The HTTP response status code. 19 | var code: Int { get } 20 | /// The HTTP response headers. 21 | var headers: HTTPHeaders { get } 22 | /// The HTTP response body. 23 | var body: Data { get } 24 | } 25 | 26 | /// A reified `ResponseType` 27 | public struct Response: ResponseType { 28 | public var code: Int 29 | public var headers: HTTPHeaders 30 | public var body: Data 31 | 32 | /// Create a Response 33 | public init(code: Int, body: Data?, headers: HTTPHeaders = HTTPHeaders()) { 34 | self.code = code 35 | self.body = body ?? Data() 36 | self.headers = headers 37 | } 38 | 39 | /// Create a Response 40 | /// Throws an error if the body parameter cannot be converted to Data 41 | public init(code: Int, body: String, headers: HTTPHeaders) throws { 42 | 43 | self.code = code 44 | guard let data = body.data(using: .utf8) else { 45 | throw TitanError.dataConversion 46 | } 47 | self.body = data 48 | self.headers = headers 49 | } 50 | } 51 | 52 | extension Response { 53 | /// Create a Response from a ResponseType 54 | public init(response: ResponseType) { 55 | self.init(code: response.code, body: response.body, headers: response.headers) 56 | } 57 | } 58 | 59 | extension ResponseType { 60 | /// The HTTP response body as a UTF-8 encoded string. 61 | public var bodyString: String? { 62 | return String(data: self.body, encoding: .utf8) 63 | } 64 | /// Create a Response as a copy of the ResponseType 65 | public func copy() -> Response { 66 | return Response(response: self) 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /SKServer/Sources/Titan/TitanErrorHandling/TitanErrorHandling.swift: -------------------------------------------------------------------------------- 1 | // Copyright 2017 Enervolution GmbH 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // https://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | import Foundation 15 | 16 | public let defaultErrorHandler: (Error) -> (ResponseType) = { err in 17 | do { 18 | return try Response(code: 500, body: String(describing: err), headers: HTTPHeaders()) 19 | } catch {} 20 | return Response(code: 500, body: Data(), headers: HTTPHeaders()) 21 | } 22 | 23 | extension Titan { 24 | public func addFunction(errorHandler: @escaping (Error) -> (ResponseType), handler: @escaping ThrowingFunction) { 25 | self.addFunction(toFunction(handler, errorHandler: errorHandler)) 26 | } 27 | } 28 | 29 | public typealias ThrowingFunction = (RequestType, ResponseType) throws -> (RequestType, ResponseType) 30 | 31 | /// Convert a throwing function to a non throwing function, calling the specified error handler in case of throws. 32 | public func toFunction(_ handler: @escaping ThrowingFunction, errorHandler: @escaping (Error) -> (ResponseType)) -> TitanFunc { 33 | return { req, res in 34 | do { 35 | return try handler(req, res) 36 | } catch { 37 | return (req, errorHandler(error)) 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /SKServer/Sources/Titan/TitanHealthz/TitanHealthz.swift: -------------------------------------------------------------------------------- 1 | // Copyright 2017 Enervolution GmbH 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // https://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | import Foundation 15 | 16 | /// A basic healthcheck route that returns 200 and diagnostic info 17 | public let healthz: TitanFunc = healthzWithCheck(check: { return nil }) 18 | 19 | // Workaround for https://bugs.swift.org/browse/SR-6391 20 | let cachedHostname: String = { 21 | return ProcessInfo.processInfo.hostName 22 | }() 23 | 24 | /// Creates a healthcheck route that executes the supplied closure. 25 | /// If a string is returned, the string is returned as part of the diagnostic info in the 26 | /// healthcheck 200 response. 27 | /// If an error is thrown, the error is coerced to a string and printed inside a 500 response. 28 | public func healthzWithCheck(check: @escaping () throws -> String?) -> TitanFunc { 29 | return { req, res in 30 | 31 | guard req.path.lowercased() == "/healthz", 32 | req.method == .get else { 33 | return (req, res) 34 | } 35 | 36 | do { 37 | let result = try check() ?? "Ok" 38 | let ok = try Response(code: 200, 39 | body: "Host: \(cachedHostname)\nTime: \(Date())\n\nStatus: \(result)", 40 | headers: HTTPHeaders()) 41 | return (req, ok) 42 | } catch { 43 | let body = "Host: \(cachedHostname)\nTime: \(Date())\n\nStatus: \(error)".data(using: .utf8) ?? Data() 44 | let notOk = Response(code: 500, body: body, headers: HTTPHeaders()) 45 | return (req, notOk) 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /SKServer/Sources/Titan/TitanJSON/TitanJSONRequestBody.swift: -------------------------------------------------------------------------------- 1 | // Copyright 2017 Enervolution GmbH 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // https://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | import Foundation 15 | 16 | public extension RequestType { 17 | /// Return the body content as a JSON object, if possible, otherwise return nil. 18 | /// Uses `Foundation` JSONSerialization for decoding. 19 | var json: Any? { 20 | return try? JSONSerialization.jsonObject(with: body, options: []) 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /SKServer/Sources/Titan/TitanJSON/TitanJSONResponseBody.swift: -------------------------------------------------------------------------------- 1 | // Copyright 2017 Enervolution GmbH 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // https://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | import Foundation 15 | 16 | public extension Response { 17 | 18 | init(code: Int, json: Any) throws { 19 | let jsonData = try JSONSerialization.data(withJSONObject: json, options: []) 20 | self.init(code: code, body: jsonData, headers: HTTPHeaders(dictionaryLiteral: ("content-type", "application/json"))) 21 | } 22 | 23 | init(code: Int, object: T, jsonEncoder: JSONEncoder = JSONEncoder()) throws { 24 | let data = try jsonEncoder.encode(object) 25 | self.init(code: code, body: data, headers: HTTPHeaders(dictionaryLiteral: ("content-type", "application/json"))) 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /SKServer/Sources/Titan/TitanQueryString/TitanQueryString.swift: -------------------------------------------------------------------------------- 1 | // Copyright 2017 Enervolution GmbH 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // https://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | import Foundation 15 | 16 | public extension RequestType { 17 | /// Access the query string as a dictionary, with case sensitive keys. 18 | /// Complexity: 0(n) on all invocations. 19 | var query: [String: String] { 20 | var query: [String: String] = [:] 21 | for (name, value) in self.queryPairs { 22 | query[name] = value 23 | } 24 | return query 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /SKServer/Sources/Titan/TitanRouter/InitializerOverloads.swift: -------------------------------------------------------------------------------- 1 | // Copyright 2017 Enervolution GmbH 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // https://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | import Foundation 15 | 16 | extension Request { 17 | public init(_ method: HTTPMethod = .get, _ path: String = "/", _ queryPairs: [(String, String)] = [], _ body: String = "", _ headers: HTTPHeaders = HTTPHeaders()) { 18 | self.init(method: method, path: path, queryPairs: queryPairs, body: body.data(using: .utf8) ?? Data(), headers: headers) 19 | } 20 | } 21 | 22 | extension Response { 23 | public init(_ code: Int = 200, _ body: String, _ headers: HTTPHeaders = HTTPHeaders()) throws { 24 | try self.init(code: code, body: body, headers: headers) 25 | } 26 | 27 | public init(_ code: Int = 200, _ body: Data = Data(), _ headers: HTTPHeaders = HTTPHeaders()) { 28 | self.init(code: code, body: body, headers: headers) 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /SKServer/Sources/Titan/TitanRouter/PathParameterSupport.swift: -------------------------------------------------------------------------------- 1 | // Copyright 2017 Enervolution GmbH 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // https://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | public typealias PathParameters = [String: String] 16 | public typealias TitanPathParametersFunc = (RequestType, ResponseType, PathParameters) -> (RequestType, ResponseType) 17 | 18 | func toTitanFunc(_ handler: @escaping TitanPathParametersFunc, with pathTemplate: String) -> TitanFunc { 19 | 20 | return { req, res in 21 | let params = parameters(from: req.path, with: pathTemplate) 22 | return handler(req, res, params) 23 | } 24 | } 25 | 26 | /// Extract the parameters from a path given a template. 27 | /// It is a programmer error to pass a path template containing a different number of components to the path itself, 28 | /// and may result in undefined behavior. 29 | /// Where the `path` is /users/567/email 30 | /// Where the `template` is /users/{id}/email 31 | /// return ["id":"567"] 32 | func parameters(from path: String, with template: String) -> PathParameters { 33 | // Split the path and the template into its individual parts 34 | var params: [String: String] = [:] 35 | let pathComps = path.splitOnSlashes() 36 | let templateComps = template.splitOnSlashes() 37 | // Zip them together 38 | let z = zip(pathComps, templateComps) 39 | 40 | for (pathComp, templateComp) in z { 41 | guard templateComp.hasPrefix("{") && templateComp.hasSuffix("}") else { 42 | continue 43 | } 44 | let key = String((templateComp.dropFirst()).dropLast()) 45 | params[key] = pathComp 46 | } 47 | return params 48 | } 49 | -------------------------------------------------------------------------------- /SlackKit.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = "SlackKit" 3 | s.version = "4.7.0" 4 | s.summary = "Write Slack apps in Swift" 5 | s.homepage = "https://github.com/pvzig/SlackKit" 6 | s.license = "MIT" 7 | s.author = { "Peter Zignego" => "peter@launchsoft.co" } 8 | s.source = { :git => "https://github.com/pvzig/SlackKit.git", :tag => s.version.to_s } 9 | s.social_media_url = "https://twitter.com/pvzig" 10 | s.platforms = { :ios => '10.0', :osx => '10.11', :tvos => '10.0' } 11 | s.swift_version = '5.5.2' 12 | s.cocoapods_version = '>= 1.4.0' 13 | s.default_subspec = "SlackKit" 14 | 15 | s.subspec "SlackKit" do |ss| 16 | ss.source_files = "SlackKit/Sources/" 17 | ss.dependency "SlackKit/SKCore" 18 | ss.dependency "SlackKit/SKClient" 19 | ss.dependency "SlackKit/SKWebAPI" 20 | ss.dependency "SlackKit/SKRTMAPI" 21 | ss.dependency "SlackKit/SKServer" 22 | end 23 | 24 | s.subspec "SKClient" do |ss| 25 | ss.source_files = "SKClient/Sources/" 26 | ss.dependency "SlackKit/SKCore" 27 | end 28 | 29 | s.subspec "SKCore" do |ss| 30 | ss.source_files = "SKCore/Sources/" 31 | ss.framework = "Foundation" 32 | end 33 | 34 | s.subspec "SKRTMAPI" do |ss| 35 | ss.source_files = "SKRTMAPI/Sources/**/*.swift" 36 | ss.exclude_files = "SKRTMAPI/Sources/Conformers/VaporEngineRTM.swift" 37 | ss.dependency "SlackKit/SKCore" 38 | ss.dependency "SlackKit/SKWebAPI" 39 | ss.dependency "Starscream", "4.0.4" 40 | end 41 | 42 | s.subspec "SKServer" do |ss| 43 | ss.source_files = "SKServer/Sources/**/*.swift" 44 | ss.dependency "SlackKit/SKCore" 45 | ss.dependency "SlackKit/SKWebAPI" 46 | ss.dependency "Swifter", "1.5.0" 47 | end 48 | 49 | s.subspec "SKWebAPI" do |ss| 50 | ss.source_files = "SKWebAPI/Sources/" 51 | ss.dependency "SlackKit/SKCore" 52 | end 53 | end -------------------------------------------------------------------------------- /SlackKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SlackKit.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SlackKit.xcodeproj/xcshareddata/xcschemes/SlackKitTests.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 14 | 15 | 17 | 23 | 24 | 25 | 26 | 27 | 37 | 38 | 41 | 42 | 43 | 44 | 50 | 51 | 53 | 54 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /SlackKit/Sources/ClientConnection.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ClientConnection.swift 3 | // SlackKit 4 | // 5 | // Created by Emory Dunn on 12/28/17. 6 | // 7 | 8 | import Foundation 9 | 10 | public class ClientConnection { 11 | public var client: Client? 12 | public var rtm: SKRTMAPI? 13 | public var webAPI: WebAPI? 14 | 15 | public init(client: Client?, rtm: SKRTMAPI?, webAPI: WebAPI?) { 16 | self.client = client 17 | self.rtm = rtm 18 | self.webAPI = webAPI 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /SlackKitTests/Resources/action.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "any name", 3 | "text": "any text", 4 | "type": "any type", 5 | "value": "any value", 6 | "url": "any url", 7 | "style": "primary", 8 | "confirm": 9 | { 10 | "title": "any title", 11 | "text": "any text", 12 | "ok_text": "any ok text", 13 | "dismiss_text": "any dismiss text" 14 | }, 15 | "options": 16 | [ 17 | { 18 | "text": "any text 1", 19 | "value": "any value 1" 20 | }, 21 | { 22 | "text": "any text 2", 23 | "value": "any value 2" 24 | } 25 | ], 26 | "data_source": "channels" 27 | } 28 | -------------------------------------------------------------------------------- /SlackKitTests/Resources/attachmentfield.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "any title", 3 | "value": "any value", 4 | "short": false 5 | } 6 | -------------------------------------------------------------------------------- /SlackKitTests/Resources/channel.json: -------------------------------------------------------------------------------- 1 | { 2 | "ok": true, 3 | "channel": { 4 | "id": "C1H9RESGL", 5 | "name": "busting", 6 | "is_channel": true, 7 | "created": 1466025154, 8 | "creator": "U0G9QF9C6", 9 | "is_archived": false, 10 | "is_general": false, 11 | "name_normalized": "busting", 12 | "is_shared": false, 13 | "is_org_shared": false, 14 | "is_member": true, 15 | "is_private": false, 16 | "is_mpim": false, 17 | "last_read": "1503435939.000101", 18 | "latest": { 19 | "text": "Containment unit is 98% full", 20 | "username": "ecto1138", 21 | "bot_id": "B19LU7CSY", 22 | "attachments": [ 23 | { 24 | "text": "Don't get too attached", 25 | "id": 1, 26 | "fallback": "This is an attachment fallback" 27 | } 28 | ], 29 | "type": "message", 30 | "subtype": "bot_message", 31 | "ts": "1503435956.000247" 32 | }, 33 | "unread_count": 1, 34 | "unread_count_display": 1, 35 | "members": [ 36 | "U0G9QF9C6", 37 | "U1QNSQB9U" 38 | ], 39 | "topic": { 40 | "value": "Spiritual containment strategies", 41 | "creator": "U0G9QF9C6", 42 | "last_set": 1503435128 43 | }, 44 | "purpose": { 45 | "value": "Discuss busting ghosts", 46 | "creator": "U0G9QF9C6", 47 | "last_set": 1503435128 48 | }, 49 | "previous_names": [ 50 | "dusting" 51 | ] 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /SlackKitTests/Resources/conversation.json: -------------------------------------------------------------------------------- 1 | { 2 | "ok": true, 3 | "channel": { 4 | "id": "C012AB3CD", 5 | "name": "general", 6 | "is_channel": true, 7 | "is_group": false, 8 | "is_im": false, 9 | "created": 1449252889, 10 | "creator": "W012A3BCD", 11 | "is_archived": false, 12 | "is_general": true, 13 | "unlinked": 0, 14 | "name_normalized": "general", 15 | "is_read_only": false, 16 | "is_shared": false, 17 | "is_ext_shared": false, 18 | "is_org_shared": false, 19 | "pending_shared": [], 20 | "is_pending_ext_shared": false, 21 | "is_member": true, 22 | "is_private": false, 23 | "is_mpim": false, 24 | "last_read": "1502126650.228446", 25 | "topic": { 26 | "value": "For public discussion of generalities", 27 | "creator": "W012A3BCD", 28 | "last_set": 1449709364 29 | }, 30 | "purpose": { 31 | "value": "This part of the workspace is for fun. Make fun here.", 32 | "creator": "W012A3BCD", 33 | "last_set": 1449709364 34 | }, 35 | "previous_names": [ "specifics", "abstractions", "etc" ], 36 | "num_members": 23, 37 | "locale": "en-US" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /SlackKitTests/Resources/customprofilefield.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "any id", 3 | "alt": "any alt", 4 | "value": "any value", 5 | "is_hidden": true, 6 | "hint": "any hint", 7 | "label": "any label", 8 | "options": "any options", 9 | "ordering": 1, 10 | "possible_values": ["first value", "second value"], 11 | "type": "any type" 12 | } 13 | -------------------------------------------------------------------------------- /SlackKitTests/Resources/donotdisturbstatus.json: -------------------------------------------------------------------------------- 1 | { 2 | "dnd_enabled": false, 3 | "next_dnd_start_ts": 1000, 4 | "next_dnd_end_ts": 2000, 5 | "snooze_enabled": true, 6 | "snooze_endtime": 3000 7 | } 8 | -------------------------------------------------------------------------------- /SlackKitTests/Resources/edited.json: -------------------------------------------------------------------------------- 1 | { 2 | "user": "U0CJ5PC7L", 3 | "ts": "1448262357.000002" 4 | } 5 | -------------------------------------------------------------------------------- /SlackKitTests/Resources/file.json: -------------------------------------------------------------------------------- 1 | { 2 | "id" : "F2147483862", 3 | "created" : 1356032811, 4 | "timestamp" : 1356032811, 5 | "name" : "file.htm", 6 | "title" : "My HTML file", 7 | "mimetype" : "text\/plain", 8 | "filetype" : "text", 9 | "pretty_type": "Text", 10 | "user" : "U2147483697", 11 | "mode" : "hosted", 12 | "editable" : true, 13 | "is_external": false, 14 | "external_type": "", 15 | "username": "", 16 | "size" : 12345, 17 | "url_private": "https:\/\/slack.com\/files-pri\/T024BE7LD-F024BERPE\/1.png", 18 | "url_private_download": "https:\/\/slack.com\/files-pri\/T024BE7LD-F024BERPE\/download\/1.png", 19 | "thumb_64": "https:\/\/slack-files.com\/files-tmb\/T024BE7LD-F024BERPE-c66246\/1_64.png", 20 | "thumb_80": "https:\/\/slack-files.com\/files-tmb\/T024BE7LD-F024BERPE-c66246\/1_80.png", 21 | "thumb_360": "https:\/\/slack-files.com\/files-tmb\/T024BE7LD-F024BERPE-c66246\/1_360.png", 22 | "thumb_360_gif": "https:\/\/slack-files.com\/files-tmb\/T024BE7LD-F024BERPE-c66246\/1_360.gif", 23 | "thumb_360_w": 100, 24 | "thumb_360_h": 100, 25 | "thumb_480": "https:\/\/slack-files.com\/files-tmb\/T024BE7LD-F024BERPE-c66246\/1_480.png", 26 | "thumb_480_w": 480, 27 | "thumb_480_h": 480, 28 | "thumb_160": "https:\/\/slack-files.com\/files-tmb\/T024BE7LD-F024BERPE-c66246\/1_160.png", 29 | "permalink": "https:\/\/tinyspeck.slack.com\/files\/cal\/F024BERPE\/1.png", 30 | "permalink_public" : "https:\/\/tinyspeck.slack.com\/T024BE7LD-F024BERPE-3f9216b62c", 31 | "edit_link": "https:\/\/tinyspeck.slack.com\/files\/cal\/F024BERPE\/1.png/edit", 32 | "preview": "<!DOCTYPE html>\n<html>\n<meta charset='utf-8'>", 33 | "preview_highlight": "<div class=\"sssh-code\"><div class=\"sssh-line\"><pre><!DOCTYPE html...", 34 | "lines": 123, 35 | "lines_more": 118, 36 | "is_public": true, 37 | "public_url_shared": false, 38 | "display_as_bot" : false, 39 | "channels": ["C024BE7LT"], 40 | "groups": ["G12345"], 41 | "ims": ["D12345"], 42 | "initial_comment": {}, 43 | "num_stars": 7, 44 | "is_starred": true, 45 | "pinned_to": ["C024BE7LT"], 46 | "reactions": [ 47 | { 48 | "name": "astonished", 49 | "count": 3, 50 | "users": [ "U1", "U2", "U3" ] 51 | }, 52 | { 53 | "name": "facepalm", 54 | "count": 1034, 55 | "users": [ "U1", "U2", "U3", "U4", "U5" ] 56 | } 57 | ], 58 | "comments_count": 1 59 | } 60 | -------------------------------------------------------------------------------- /SlackKitTests/Resources/group.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "G024BE91L", 3 | "name": "secretplans", 4 | "is_group": "true", 5 | "created": 1360782804, 6 | "creator": "U024BE7LH", 7 | "is_archived": false, 8 | "is_mpim": false, 9 | "members": [ 10 | "U024BE7LH" 11 | ], 12 | "topic": { 13 | "value": "Secret plans on hold", 14 | "creator": "U024BE7LV", 15 | "last_set": 1369677212 16 | }, 17 | "purpose": { 18 | "value": "Discuss secret plans that no-one else should know", 19 | "creator": "U024BE7LH", 20 | "last_set": 1360782804 21 | }, 22 | 23 | "last_read": "1401383885.000061", 24 | "latest": {}, 25 | "unread_count": 0, 26 | "unread_count_display": 0 27 | } 28 | -------------------------------------------------------------------------------- /SlackKitTests/Resources/im.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "D024BFF1M", 3 | "is_im": true, 4 | "user": "U024BE7LH", 5 | "created": 1360782804, 6 | "is_user_deleted": false 7 | } 8 | -------------------------------------------------------------------------------- /SlackKitTests/Resources/member_joined_channel.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "member_joined_channel", 3 | "user": "U0CJ1TWKX", 4 | "channel": "C0CHZA86Q", 5 | "channel_type": "C", 6 | "team": "T0CHZBU59", 7 | "inviter": "U123456789" 8 | } 9 | -------------------------------------------------------------------------------- /SlackKitTests/Resources/member_left_channel.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "member_left_channel", 3 | "user": "U0CJ5PC7L", 4 | "channel": "C0CJ25PDM", 5 | "channel_type": "C", 6 | "team": "T0CHZBU59" 7 | } 8 | -------------------------------------------------------------------------------- /SlackKitTests/Resources/mpim.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "G024BE91L", 3 | "name": "mpdm-user1--user2--user3-1", 4 | "is_mpim": true, 5 | "is_group": false, 6 | "created": 1360782804, 7 | "creator": "U024BE7LH", 8 | "members": [ 9 | "U024BE7LH" 10 | ], 11 | "last_read": "1401383885.000061", 12 | "latest": { }, 13 | "unread_count": 0, 14 | "unread_count_display": 0 15 | } 16 | -------------------------------------------------------------------------------- /SlackKitTests/Resources/reply.json: -------------------------------------------------------------------------------- 1 | { 2 | "user": "U0CJ5PC7L", 3 | "ts": "1448262357.000002" 4 | } 5 | -------------------------------------------------------------------------------- /SlackKitTests/Resources/rtm.connect.json: -------------------------------------------------------------------------------- 1 | { 2 | "ok": true, 3 | "url": "ws://localhost:5225", 4 | "team": { 5 | "id": "T02QYTVLG", 6 | "name": "SF UTES", 7 | "domain": "sfutes" 8 | }, 9 | "self": { 10 | "id": "U02QYTVLJ", 11 | "name": "hess" 12 | } 13 | } -------------------------------------------------------------------------------- /SlackKitTests/Resources/teamicon.json: -------------------------------------------------------------------------------- 1 | { 2 | "image_34": "image 34", 3 | "image_44": "image 44", 4 | "image_68": "image 68", 5 | "image_88": "image 88", 6 | "image_102": "image 102", 7 | "image_132": "image 132", 8 | "image_original": "image original", 9 | "image_default": true 10 | } 11 | -------------------------------------------------------------------------------- /SlackKitTests/Resources/topic.json: -------------------------------------------------------------------------------- 1 | { 2 | "value": "any value", 3 | "creator": "any creator", 4 | "last_set": 1000 5 | } 6 | -------------------------------------------------------------------------------- /SlackKitTests/Resources/user.json: -------------------------------------------------------------------------------- 1 | { 2 | "ok": true, 3 | "user": { 4 | "id": "W012A3CDE", 5 | "team_id": "T012AB3C4", 6 | "name": "spengler", 7 | "deleted": false, 8 | "color": "9f69e7", 9 | "real_name": "Egon Spengler", 10 | "tz": "America/Los_Angeles", 11 | "tz_label": "Pacific Daylight Time", 12 | "tz_offset": -25200, 13 | "profile": { 14 | "avatar_hash": "ge3b51ca72de", 15 | "status_text": "Print is dead", 16 | "status_emoji": ":books:", 17 | "real_name": "Egon Spengler", 18 | "display_name": "spengler", 19 | "real_name_normalized": "Egon Spengler", 20 | "display_name_normalized": "spengler", 21 | "email": "spengler@ghostbusters.example.com", 22 | "image_24": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg", 23 | "image_32": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg", 24 | "image_48": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg", 25 | "image_72": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg", 26 | "image_192": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg", 27 | "image_512": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg", 28 | "team": "T012AB3C4" 29 | }, 30 | "is_admin": true, 31 | "is_owner": false, 32 | "is_primary_owner": false, 33 | "is_restricted": false, 34 | "is_ultra_restricted": false, 35 | "is_bot": false, 36 | "is_stranger": false, 37 | "updated": 1502138686, 38 | "is_app_user": false, 39 | "has_2fa": false, 40 | "locale": "en-US" 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /SlackKitTests/Resources/usergroup.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "S0614TZR7", 3 | "team_id": "T060RNRCH", 4 | "is_usergroup": true, 5 | "name": "Workspace Admins", 6 | "description": "A group of all Administrators on your workspace.", 7 | "handle": "admins", 8 | "is_external": false, 9 | "date_create": 1446598059, 10 | "date_update": 1446670362, 11 | "date_delete": 0, 12 | "auto_type": "admin", 13 | "created_by": "USLACKBOT", 14 | "updated_by": "U060RNRCZ", 15 | "deleted_by": null, 16 | "prefs": { 17 | "channels": [ 18 | 19 | ], 20 | "groups": [ 21 | 22 | ] 23 | }, 24 | "users": [ 25 | "U060RNRCZ", 26 | "U060ULRC0", 27 | "U06129G2V", 28 | "U061309JM" 29 | ], 30 | "user_count": "4" 31 | } 32 | -------------------------------------------------------------------------------- /SlackKitTests/SKClient/SKClientTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SKClientTests.swift 3 | // SlackKitTests 4 | // 5 | // Created by Peter Zignego on 3/5/19. 6 | // Copyright © 2019 Peter Zignego. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import SKClient 11 | 12 | final class SKClientTests: XCTestCase { 13 | 14 | static var rootPath: String { 15 | #if Xcode 16 | return Bundle(for: self).resourcePath! 17 | #else 18 | return "SlackKitTests/Resources" 19 | #endif 20 | } 21 | 22 | struct JSONData { 23 | static let rtm_start = try! Data(contentsOf: URL(fileURLWithPath: "\(rootPath)/rtm.start.json")) 24 | static let member_joined_channel = try! Data(contentsOf: URL(fileURLWithPath: "\(rootPath)/member_joined_channel.json")) 25 | static let member_left_channel = try! Data(contentsOf: URL(fileURLWithPath: "\(rootPath)/member_left_channel.json")) 26 | } 27 | 28 | static var allTests = [ 29 | ("testMemberJoinedChannel", testMemberJoinedChannel), 30 | ("testMemberLeftChannel", testMemberLeftChannel) 31 | ] 32 | 33 | var client: Client! 34 | 35 | override func setUp() { 36 | client = Client() 37 | client.initialSetup(JSON: try! JSONSerialization.jsonObject(with: JSONData.rtm_start, options: []) as! [String: Any]) 38 | } 39 | 40 | func testMemberJoinedChannel() { 41 | let channelId = "C0CHZA86Q" 42 | let userId = "U0CJ1TWKX" 43 | let json = try! JSONSerialization.jsonObject(with: JSONData.member_joined_channel, options: []) as! [String: Any] 44 | client.memberJoinedChannel(Event(json)) 45 | if let contains = client.channels[channelId]?.members?.contains(userId) { 46 | XCTAssertTrue(contains) 47 | } else { 48 | XCTFail() 49 | } 50 | } 51 | 52 | func testMemberLeftChannel() { 53 | let channelId = "C0CJ25PDM" 54 | let userId = "U0CJ5PC7L" 55 | let json = try! JSONSerialization.jsonObject(with: JSONData.member_left_channel, options: []) as! [String: Any] 56 | client.memberLeftChannel(Event(json)) 57 | if let contains = client.channels[channelId]?.members?.contains(userId) { 58 | XCTAssertFalse(contains) 59 | } else { 60 | XCTFail() 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /SlackKitTests/Supporting Files/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /SlackKitTests/Supporting Files/SlackKitTests.xcconfig: -------------------------------------------------------------------------------- 1 | // 2 | // SlackKitTests.xcconfig 3 | // SlackKit 4 | // 5 | // Created by Peter Zignego on 1/28/19. 6 | // Copyright © 2019 Peter Zignego. All rights reserved. 7 | // 8 | 9 | // Configuration settings file format documentation can be found at: 10 | // https://help.apple.com/xcode/#/dev745c5c974 11 | 12 | FRAMEWORK_SEARCH_PATHS[sdk=macosx*] = "$(PROJECT_DIR)/Frameworks/macOS"; 13 | FRAMEWORK_SEARCH_PATHS[sdk=appletvos*] = "$(PROJECT_DIR)/Frameworks/tvOS"; 14 | FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*] = "$(PROJECT_DIR)/Frameworks/iOS"; 15 | FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*] = "$(PROJECT_DIR)/Frameworks/iOS"; 16 | FRAMEWORK_SEARCH_PATHS[sdk=appletvsimulator*] = "$(PROJECT_DIR)/Frameworks/tvOS"; 17 | -------------------------------------------------------------------------------- /SlackKitTests/XCTestManifests.swift: -------------------------------------------------------------------------------- 1 | import XCTest 2 | 3 | extension SKClientTests { 4 | static let __allTests = [ 5 | ("testMemberJoinedChannel", testMemberJoinedChannel), 6 | ("testMemberLeftChannel", testMemberLeftChannel), 7 | ] 8 | } 9 | 10 | extension SKCoreTests { 11 | static let __allTests = [ 12 | ("testChannel", testChannel), 13 | ("testConversation", testConversation), 14 | ("testEvents", testEvents), 15 | ("testFile", testFile), 16 | ("testGroup", testGroup), 17 | ("testIm", testIm), 18 | ("testMpim", testMpim), 19 | ("testUser", testUser), 20 | ("testUserGroup", testUserGroup), 21 | ("testActionCodable", testActionCodable), 22 | ("testAttachmentCodable", testAttachmentCodable), 23 | ("testAttachmentFieldCodable", testAttachmentFieldCodable), 24 | ("testCustomProfileFieldCodable", testCustomProfileFieldCodable), 25 | ("testDoNotDisturbStatusCodable", testDoNotDisturbStatusCodable), 26 | ("testEditedCodable", testEditedCodable), 27 | ("testReplyCodable", testReplyCodable), 28 | ("testTeamIconCodable", testTeamIconCodable), 29 | ("testTopicCodable", testTopicCodable), 30 | ] 31 | } 32 | 33 | #if !os(macOS) 34 | public func __allTests() -> [XCTestCaseEntry] { 35 | return [ 36 | testCase(SKClientTests.__allTests), 37 | testCase(SKCoreTests.__allTests), 38 | ] 39 | } 40 | #endif 41 | -------------------------------------------------------------------------------- /Supporting Files/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleExecutable 6 | $(EXECUTABLE_NAME) 7 | CFBundleIdentifier 8 | $(PRODUCT_BUNDLE_IDENTIFIER) 9 | CFBundleInfoDictionaryVersion 10 | 4.5.1 11 | CFBundleName 12 | $(PRODUCT_NAME) 13 | CFBundlePackageType 14 | FMWK 15 | CFBundleShortVersionString 16 | $(MARKETING_VERSION) 17 | CFBundleVersion 18 | $(CURRENT_PROJECT_VERSION) 19 | 20 | 21 | -------------------------------------------------------------------------------- /Supporting Files/SKClient.h: -------------------------------------------------------------------------------- 1 | // 2 | // SKClient.h 3 | // SKClient 4 | // 5 | 6 | #import 7 | 8 | //! Project version number for SKClient. 9 | FOUNDATION_EXPORT double SKClientVersionNumber; 10 | 11 | //! Project version string for SKClient. 12 | FOUNDATION_EXPORT const unsigned char SKClientVersionString[]; 13 | 14 | // In this header, you should import all the public headers of your framework using statements like #import 15 | -------------------------------------------------------------------------------- /Supporting Files/SKCore.h: -------------------------------------------------------------------------------- 1 | // 2 | // SKCore.h 3 | // SKCore 4 | // 5 | 6 | #import 7 | 8 | //! Project version number for SKCore. 9 | FOUNDATION_EXPORT double SKCoreVersionNumber; 10 | 11 | //! Project version string for SKCore. 12 | FOUNDATION_EXPORT const unsigned char SKCoreVersionString[]; 13 | 14 | // In this header, you should import all the public headers of your framework using statements like #import 15 | -------------------------------------------------------------------------------- /Supporting Files/SKRTMAPI.h: -------------------------------------------------------------------------------- 1 | // 2 | // SKRTMAPI.h 3 | // SKRTMAPI 4 | // 5 | 6 | #import 7 | 8 | //! Project version number for SKRTMAPI. 9 | FOUNDATION_EXPORT double SKRTMAPIVersionNumber; 10 | 11 | //! Project version string for SKRTMAPI. 12 | FOUNDATION_EXPORT const unsigned char SKRTMAPIVersionString[]; 13 | 14 | // In this header, you should import all the public headers of your framework using statements like #import 15 | -------------------------------------------------------------------------------- /Supporting Files/SKServer.h: -------------------------------------------------------------------------------- 1 | // 2 | // SKServer.h 3 | // SKServer 4 | // 5 | 6 | #import 7 | 8 | //! Project version number for SKServer. 9 | FOUNDATION_EXPORT double SKServerVersionNumber; 10 | 11 | //! Project version string for SKServer. 12 | FOUNDATION_EXPORT const unsigned char SKServerVersionString[]; 13 | 14 | // In this header, you should import all the public headers of your framework using statements like #import 15 | -------------------------------------------------------------------------------- /Supporting Files/SKWebAPI.h: -------------------------------------------------------------------------------- 1 | // 2 | // SKWebAPI.h 3 | // SKWebAPI 4 | // 5 | 6 | #import 7 | 8 | //! Project version number for SKWebAPI. 9 | FOUNDATION_EXPORT double SKWebAPIVersionNumber; 10 | 11 | //! Project version string for SKWebAPI. 12 | FOUNDATION_EXPORT const unsigned char SKWebAPIVersionString[]; 13 | 14 | // In this header, you should import all the public headers of your framework using statements like #import 15 | -------------------------------------------------------------------------------- /Supporting Files/SlackKit.h: -------------------------------------------------------------------------------- 1 | // 2 | // SlackKit.h 3 | // SlackKit 4 | // 5 | 6 | #import 7 | 8 | //! Project version number for SlackKit. 9 | FOUNDATION_EXPORT double SlackKitVersionNumber; 10 | 11 | //! Project version string for Moya. 12 | FOUNDATION_EXPORT const unsigned char SlackKitVersionString[]; 13 | 14 | // In this header, you should import all the public headers of your framework using statements like #import 15 | --------------------------------------------------------------------------------