├── .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 |
--------------------------------------------------------------------------------