diff --git a/.swiftpm/xcode/xcshareddata/xcschemes/SPM_XMPPFramework-Package.xcscheme b/.swiftpm/xcode/xcshareddata/xcschemes/SPM_XMPPFramework-Package.xcscheme
new file mode 100644
index 0000000000..c082df66a4
--- /dev/null
+++ b/.swiftpm/xcode/xcshareddata/xcschemes/SPM_XMPPFramework-Package.xcscheme
@@ -0,0 +1,157 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.travis.yml b/.travis.yml
index 6865135f73..b87f9320e1 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,36 +1,49 @@
-osx_image: xcode9.3
language: objective-c
-cache:
- directories:
- - Carthage
- - Xcode/Testing-iOS/Pods
- - Xcode/Testing-macOS/Pods
+jobs:
+ include:
+ - stage: Swift PM
+ osx_image: xcode12.2
+ script:
+ # Remove the Xcode project so `xcodebuild` would be able to test the Swift PM project.
+ - rm -rf *.xcodeproj
+ # Test the Swift PM project using `xcodebuild`.
+ # The test is performed using `xcodebuild` rather than `swift test` due to this bug:
+ # https://bugs.swift.org/browse/SR-13560
+ - xcodebuild -scheme SPM_XMPPFramework-Package -destination "name=iPhone 11 Pro" test
-before_install:
- # - brew update
- # - brew outdated carthage || brew upgrade carthage
- - export IOS_SIMULATOR_DESTINATION="platform=iOS Simulator,name=iPhone 8,OS=11.3"
+ - stage: Xcode Tests
+ osx_image: xcode9.3
+ cache:
+ directories:
+ - Carthage
+ - Xcode/Testing-iOS/Pods
+ - Xcode/Testing-macOS/Pods
-install:
- - carthage bootstrap --no-build
- - cd Xcode
- - bundle install
- - bundle exec pod repo update --silent
- - bundle exec pod install --project-directory=Testing-iOS/
- - bundle exec pod install --project-directory=Testing-macOS/
- - cd ../
+ before_install:
+ # - brew update
+ # - brew outdated carthage || brew upgrade carthage
+ - export IOS_SIMULATOR_DESTINATION="platform=iOS Simulator,name=iPhone 8,OS=11.3"
-before_script:
- - set -o pipefail
+ install:
+ - carthage bootstrap --no-build
+ - cd Xcode
+ - bundle install
+ - bundle exec pod repo update --silent
+ - bundle exec pod install --project-directory=Testing-iOS/
+ - bundle exec pod install --project-directory=Testing-macOS/
+ - cd ../
-script:
- - xcodebuild -workspace Xcode/Testing-macOS/XMPPFrameworkTests.xcworkspace -scheme XMPPFrameworkTests -sdk macosx -destination 'platform=OS X,arch=x86_64' test | xcpretty -c
- - travis_retry xcodebuild -workspace Xcode/Testing-iOS/XMPPFrameworkTests.xcworkspace -scheme XMPPFrameworkTests -sdk iphonesimulator -destination "$IOS_SIMULATOR_DESTINATION" test | xcpretty -c
- - xcodebuild -workspace Xcode/Testing-macOS/XMPPFrameworkTests.xcworkspace -scheme XMPPFrameworkSwiftTests -sdk macosx -destination 'platform=OS X,arch=x86_64' test | xcpretty -c
- - travis_retry xcodebuild -workspace Xcode/Testing-iOS/XMPPFrameworkTests.xcworkspace -scheme XMPPFrameworkSwiftTests -sdk iphonesimulator -destination "$IOS_SIMULATOR_DESTINATION" test | xcpretty -c
+ before_script:
+ - set -o pipefail
- - xcodebuild -project XMPPFramework.xcodeproj -scheme "XMPPFramework (tvOS)" -sdk appletvsimulator -arch x86_64 build | xcpretty -c
- - xcodebuild -project Xcode/Testing-Carthage/XMPPFrameworkTests.xcodeproj -scheme "XMPPFrameworkTests (macOS)" -sdk macosx -arch x86_64 test | xcpretty -c
- - xcodebuild -project Xcode/Testing-Carthage/XMPPFrameworkSwiftTests.xcodeproj -scheme "XMPPFrameworkTests (macOS)" -sdk macosx -arch x86_64 test | xcpretty -c
- - travis_retry xcodebuild -project Xcode/Testing-Carthage/XMPPFrameworkTests.xcodeproj -scheme "XMPPFrameworkTests (iOS)" -sdk iphonesimulator -destination "$IOS_SIMULATOR_DESTINATION" test | xcpretty -c
+ script:
+ - xcodebuild -workspace Xcode/Testing-macOS/XMPPFrameworkTests.xcworkspace -scheme XMPPFrameworkTests -sdk macosx -destination 'platform=OS X,arch=x86_64' test | xcpretty -c
+ - travis_retry xcodebuild -workspace Xcode/Testing-iOS/XMPPFrameworkTests.xcworkspace -scheme XMPPFrameworkTests -sdk iphonesimulator -destination "$IOS_SIMULATOR_DESTINATION" test | xcpretty -c
+ - xcodebuild -workspace Xcode/Testing-macOS/XMPPFrameworkTests.xcworkspace -scheme XMPPFrameworkSwiftTests -sdk macosx -destination 'platform=OS X,arch=x86_64' test | xcpretty -c
+ - travis_retry xcodebuild -workspace Xcode/Testing-iOS/XMPPFrameworkTests.xcworkspace -scheme XMPPFrameworkSwiftTests -sdk iphonesimulator -destination "$IOS_SIMULATOR_DESTINATION" test | xcpretty -c
+
+ - xcodebuild -project XMPPFramework.xcodeproj -scheme "XMPPFramework (tvOS)" -sdk appletvsimulator -arch x86_64 build | xcpretty -c
+ - xcodebuild -project Xcode/Testing-Carthage/XMPPFrameworkTests.xcodeproj -scheme "XMPPFrameworkTests (macOS)" -sdk macosx -arch x86_64 test | xcpretty -c
+ - xcodebuild -project Xcode/Testing-Carthage/XMPPFrameworkSwiftTests.xcodeproj -scheme "XMPPFrameworkTests (macOS)" -sdk macosx -arch x86_64 test | xcpretty -c
+ - travis_retry xcodebuild -project Xcode/Testing-Carthage/XMPPFrameworkTests.xcodeproj -scheme "XMPPFrameworkTests (iOS)" -sdk iphonesimulator -destination "$IOS_SIMULATOR_DESTINATION" test | xcpretty -c
diff --git a/Extensions/CoreDataStorage/XMPPCoreDataStorage.m b/Extensions/CoreDataStorage/XMPPCoreDataStorage.m
index 86121550db..10ffda8774 100644
--- a/Extensions/CoreDataStorage/XMPPCoreDataStorage.m
+++ b/Extensions/CoreDataStorage/XMPPCoreDataStorage.m
@@ -88,7 +88,11 @@ - (NSString *)managedObjectModelName
- (NSBundle *)managedObjectModelBundle
{
+#if SWIFT_PACKAGE && defined(SWIFTPM_MODULE_BUNDLE)
+ return SWIFTPM_MODULE_BUNDLE;
+#else
return [NSBundle bundleForClass:[self class]];
+#endif
}
- (NSString *)defaultDatabaseFileName
diff --git a/Extensions/XEP-0045/HybridStorage/XMPPRoomHybridStorageProtected.h b/Extensions/XEP-0045/HybridStorage/XMPPRoomHybridStorageProtected.h
index e5b2c94bfb..bc01f1eaea 100644
--- a/Extensions/XEP-0045/HybridStorage/XMPPRoomHybridStorageProtected.h
+++ b/Extensions/XEP-0045/HybridStorage/XMPPRoomHybridStorageProtected.h
@@ -9,6 +9,8 @@
* E.g. [super insertOccupant...]
**/
+#import "XMPPRoomHybridStorage.h"
+
@interface XMPPRoomHybridStorage (Protected)
/**
diff --git a/Package.swift b/Package.swift
new file mode 100644
index 0000000000..d4c261fb9e
--- /dev/null
+++ b/Package.swift
@@ -0,0 +1,180 @@
+// swift-tools-version:5.3
+import PackageDescription
+
+let package = Package(
+ name: "XMPPFramework",
+ defaultLocalization: "en",
+ platforms: [
+ .macOS(.v10_10),
+ .iOS(.v9),
+ .tvOS(.v9)
+ ],
+ products: [
+ .library(
+ name: "XMPPFramework",
+ targets: ["XMPPFramework"]
+ ),
+ .library(
+ name: "XMPPFrameworkSwift",
+ targets: ["XMPPFrameworkSwift"]
+ )
+ ],
+ dependencies: [
+ .package(name: "CocoaLumberjack", url: "https://github.com/CocoaLumberjack/CocoaLumberjack.git", .upToNextMajor(from: "3.6.1")),
+ .package(name: "CocoaAsyncSocket", url: "https://github.com/robbiehanson/CocoaAsyncSocket.git", .upToNextMajor(from: "7.6.4")),
+ .package(name: "KissXML", url: "https://github.com/robbiehanson/KissXML.git", .upToNextMajor(from: "5.3.3")),
+ .package(name: "libidn", url: "https://github.com/chrisballinger/libidn-framework.git", .upToNextMajor(from: "1.35.1"))
+ ],
+ targets: [
+ .target(
+ name: "XMPPFramework",
+ dependencies: [
+ "CocoaLumberjack",
+ "CocoaAsyncSocket",
+ "KissXML",
+ "libidn"
+ ],
+ path: ".",
+ exclude: [
+ "Swift",
+ "Xcode",
+ "README.md",
+ "copying.txt",
+ "Cartfile.resolved",
+ "xmppframework.png",
+ "Cartfile",
+ "Core/Info.plist",
+ "XMPPFramework.podspec"
+ ],
+ resources: [
+ .process("Extensions/Roster/CoreDataStorage/XMPPRoster.xcdatamodel"),
+ .process("Extensions/XEP-0045/CoreDataStorage/XMPPRoom.xcdatamodeld"),
+ .process("Extensions/XEP-0045/HybridStorage/XMPPRoomHybrid.xcdatamodeld"),
+ .process("Extensions/XEP-0054/CoreDataStorage/XMPPvCard.xcdatamodeld"),
+ .process("Extensions/XEP-0115/CoreDataStorage/XMPPCapabilities.xcdatamodel"),
+ .process("Extensions/XEP-0136/CoreDataStorage/XMPPMessageArchiving.xcdatamodeld"),
+ .process("Extensions/XMPPMUCLight/CoreDataStorage/XMPPRoomLight.xcdatamodel")
+ ],
+ publicHeadersPath: "include/XMPPFramework",
+ linkerSettings: [
+ .linkedLibrary("xml2"),
+ .linkedLibrary("resolv")
+ ]
+ ),
+ .target(
+ name: "XMPPFrameworkSwift",
+ dependencies: [
+ "XMPPFramework",
+ .product(name: "CocoaLumberjackSwift", package: "CocoaLumberjack")
+ ],
+ path: "Swift",
+ exclude: [
+ "XMPPFrameworkSwift-Info.plist",
+ "XMPPFrameworkSwift.h"
+ ]
+ ),
+ .target(
+ name: "XMPPFrameworkTestsShared",
+ dependencies: [
+ "XMPPFramework"
+ ],
+ path: "Xcode/Testing-Shared",
+ exclude: [
+ "Info.plist",
+ "XMPPvCardTests.m",
+ "XMPPStanzaIdTests.swift",
+ "OMEMOServerTests.m",
+ "XMPPDelayedDeliveryTests.m",
+ "XMPPMessageDeliveryReceiptsTests.m",
+ "XMPPHTTPFileUploadTests.m",
+ "XMPPRoomLightTests.m",
+ "OMEMOModuleTests.m",
+ "XMPPPushTests.swift",
+ "EncodeDecodeTest.m",
+ "XMPPOutOfBandResourceMessagingTests.m",
+ "XMPPRoomLightCoreDataStorageTests.m",
+ "XMPPMessageArchiveManagementTests.m",
+ "CapabilitiesHashingTest.m",
+ "XMPPMUCLightTests.m",
+ "OMEMOElementTests.m",
+ "XMPPURITests.m",
+ "XMPPSwift.swift",
+ "XMPPBookmarksTests.swift",
+ "XMPPOneToOneChatTests.m",
+ "OMEMOTestStorage.m",
+ "XMPPManagedMessagingTests.m",
+ "XMPPStorageHintTests.m",
+ "XMPPPubSubTests.m"
+ ],
+ sources: [
+ "XMPPMockStream.m"
+ ],
+ publicHeadersPath: "."
+ ),
+ .testTarget(
+ name: "XMPPFrameworkTests",
+ dependencies: [
+ "XMPPFramework",
+ "XMPPFrameworkTestsShared"
+ ],
+ path: "Xcode/Testing-Shared",
+ exclude: [
+ "Info.plist",
+ "XMPPMockStream.m",
+ "XMPPBookmarksTests.swift",
+ "XMPPPushTests.swift",
+ "XMPPStanzaIdTests.swift",
+ "XMPPSwift.swift"
+ ]
+ ),
+ .testTarget(
+ name: "XMPPFrameworkSwiftTests",
+ dependencies: [
+ "XMPPFramework",
+ "XMPPFrameworkSwift",
+ "XMPPFrameworkTestsShared"
+ ],
+ path: "Xcode",
+ exclude: [
+ "Gemfile",
+ "Gemfile.lock",
+ "Examples",
+ "Testing-Carthage",
+ "Testing-iOS",
+ "Testing-macOS",
+ "Testing-Shared/OMEMOTestStorage.m",
+ "Testing-Shared/Info.plist",
+ "Testing-Shared/XMPPManagedMessagingTests.m",
+ "Testing-Shared/XMPPMessageArchiveManagementTests.m",
+ "Testing-Shared/XMPPOutOfBandResourceMessagingTests.m",
+ "Testing-Shared/XMPPRoomLightCoreDataStorageTests.m",
+ "Testing-Shared/XMPPRoomLightTests.m",
+ "Testing-Shared/XMPPMessageDeliveryReceiptsTests.m",
+ "Testing-Shared/OMEMOServerTests.m",
+ "Testing-Shared/CapabilitiesHashingTest.m",
+ "Testing-Shared/XMPPOneToOneChatTests.m",
+ "Testing-Shared/XMPPDelayedDeliveryTests.m",
+ "Testing-Shared/XMPPMockStream.m",
+ "Testing-Shared/XMPPPubSubTests.m",
+ "Testing-Shared/XMPPHTTPFileUploadTests.m",
+ "Testing-Shared/XMPPvCardTests.m",
+ "Testing-Shared/OMEMOElementTests.m",
+ "Testing-Shared/OMEMOModuleTests.m",
+ "Testing-Shared/EncodeDecodeTest.m",
+ "Testing-Shared/XMPPStorageHintTests.m",
+ "Testing-Shared/XMPPURITests.m",
+ "Testing-Shared/XMPPMUCLightTests.m",
+ "Testing-Shared/XMPPFrameworkTests-Bridging-Header.h"
+ ],
+ sources: [
+ "Testing-Shared/XMPPBookmarksTests.swift",
+ "Testing-Shared/XMPPPushTests.swift",
+ "Testing-Shared/XMPPStanzaIdTests.swift",
+ "Testing-Shared/XMPPSwift.swift",
+ "Testing-Swift/XMPPBookmarksModuleTests.swift",
+ "Testing-Swift/XMPPPresenceTests.swift",
+ "Testing-Swift/XMPPvCardTempTests.swift"
+ ]
+ )
+ ]
+)
diff --git a/Swift/Core/XMLElement.swift b/Swift/Core/XMLElement.swift
index 4faff19fb2..159632821b 100644
--- a/Swift/Core/XMLElement.swift
+++ b/Swift/Core/XMLElement.swift
@@ -16,12 +16,12 @@ public extension XMLElement {
// MARK: Extracting a single element.
- public func element(forName name: String) -> XMLElement? {
+ func element(forName name: String) -> XMLElement? {
let elements = self.elements(forName: name)
return elements.first
}
- public func element(forName name: String, xmlns: String) -> XMLElement? {
+ func element(forName name: String, xmlns: String) -> XMLElement? {
let elements = self.elements(forLocalName: name, uri: xmlns)
return elements.first
}
diff --git a/Swift/Core/XMPPIQ.swift b/Swift/Core/XMPPIQ.swift
index 451bafe20e..6f69597c18 100644
--- a/Swift/Core/XMPPIQ.swift
+++ b/Swift/Core/XMPPIQ.swift
@@ -7,22 +7,25 @@
//
import Foundation
+#if canImport(XMPPFramework)
+import XMPPFramework
+#endif
public extension XMPPIQ {
- public enum IQType: String {
+ enum IQType: String {
case get
case set
case result
case error
}
- public var iqType: IQType? {
+ var iqType: IQType? {
guard let type = self.type else { return nil }
let iqType = IQType(rawValue: type)
return iqType
}
- public convenience init(iqType: IQType,
+ convenience init(iqType: IQType,
to JID: XMPPJID? = nil,
elementID eid: String? = nil,
child childElement: XMLElement? = nil) {
diff --git a/Swift/Core/XMPPMessage.swift b/Swift/Core/XMPPMessage.swift
index 34820e7527..78ce309784 100644
--- a/Swift/Core/XMPPMessage.swift
+++ b/Swift/Core/XMPPMessage.swift
@@ -7,9 +7,12 @@
//
import Foundation
+#if canImport(XMPPFramework)
+import XMPPFramework
+#endif
public extension XMPPMessage {
- public enum MessageType: String {
+ enum MessageType: String {
case chat
case error
case groupchat
@@ -17,14 +20,14 @@ public extension XMPPMessage {
case normal
}
- public var messageType: MessageType? {
+ var messageType: MessageType? {
guard let type = self.type else {
return nil
}
return MessageType(rawValue: type)
}
- public convenience init(messageType: MessageType? = nil,
+ convenience init(messageType: MessageType? = nil,
to: XMPPJID? = nil,
elementID: String? = nil,
child: XMLElement? = nil) {
diff --git a/Swift/Core/XMPPModule.swift b/Swift/Core/XMPPModule.swift
index 901272bb86..e6b4a06009 100644
--- a/Swift/Core/XMPPModule.swift
+++ b/Swift/Core/XMPPModule.swift
@@ -7,6 +7,9 @@
//
import Foundation
+#if canImport(XMPPFramework)
+import XMPPFramework
+#endif
// MARK: - Multicast Delegate
public extension XMPPModule {
@@ -30,7 +33,7 @@ public extension XMPPModule {
* multicast.xmppBookmarks!(self, didNotRetrieveBookmarks: obj as? XMPPIQ)
* })
*/
- public var multicast: GCDMulticastDelegate {
+ var multicast: GCDMulticastDelegate {
return __multicastDelegate as! GCDMulticastDelegate
}
@@ -47,7 +50,7 @@ public extension XMPPModule {
* multicastDelegate.xmppBookmarks!(self, didRetrieve: bookmarks, responseIq: responseIq)
*
*/
- public var multicastDelegate: AnyObject {
+ var multicastDelegate: AnyObject {
return __multicastDelegate as AnyObject
}
}
@@ -66,7 +69,7 @@ public extension XMPPModule {
* else
* dispatch_sync(moduleQueue, block); (or dispatch_async)
*/
- public func performBlock(async: Bool = false, _ block: @escaping ()->()) {
+ func performBlock(async: Bool = false, _ block: @escaping ()->()) {
if async {
__performBlockAsync(block)
} else {
diff --git a/Swift/Core/XMPPPresence.swift b/Swift/Core/XMPPPresence.swift
index f0a8314173..08bdc297f9 100644
--- a/Swift/Core/XMPPPresence.swift
+++ b/Swift/Core/XMPPPresence.swift
@@ -7,10 +7,13 @@
//
import Foundation
+#if canImport(XMPPFramework)
+import XMPPFramework
+#endif
public extension XMPPPresence {
/// The 'type' attribute of a presence stanza is OPTIONAL. A presence stanza that does not possess a 'type' attribute is used to signal to the server that the sender is online and available for communication. If included, the 'type' attribute specifies a lack of availability, a request to manage a subscription to another entity's presence, a request for another entity's current presence, or an error related to a previously-sent presence stanza. If included, the 'type' attribute MUST have one of the following values
- public enum PresenceType: String {
+ enum PresenceType: String {
/// Signals that the entity is no longer available for communication.
case unavailable
/// The sender wishes to subscribe to the recipient's presence.
@@ -28,7 +31,7 @@ public extension XMPPPresence {
}
/// The OPTIONAL element contains non-human-readable XML character data that specifies the particular availability status of an entity or specific resource. A presence stanza MUST NOT contain more than one element. The element MUST NOT possess any attributes. If provided, the XML character data value MUST be one of the following (additional availability types could be defined through a properly-namespaced child element of the presence stanza):
- public enum ShowType: String {
+ enum ShowType: String {
/// The entity or resource is busy (dnd = "Do Not Disturb").
case dnd
/// The entity or resource is away for an extended period (xa = "eXtended Away").
@@ -53,21 +56,21 @@ public extension XMPPPresence {
}
}
- public var showType: ShowType? {
+ var showType: ShowType? {
guard let show = self.show else {
return nil
}
return ShowType(rawValue: show)
}
- public var presenceType: PresenceType? {
+ var presenceType: PresenceType? {
guard let type = self.type else {
return nil
}
return PresenceType(rawValue: type)
}
- public convenience init(type: PresenceType? = nil,
+ convenience init(type: PresenceType? = nil,
show: ShowType? = nil,
status: String? = nil,
to jid: XMPPJID? = nil) {
diff --git a/Swift/Utilities/GCDMulticastDelegate.swift b/Swift/Utilities/GCDMulticastDelegate.swift
index ab0345118f..a79295d9e1 100644
--- a/Swift/Utilities/GCDMulticastDelegate.swift
+++ b/Swift/Utilities/GCDMulticastDelegate.swift
@@ -7,6 +7,9 @@
//
import Foundation
+#if canImport(XMPPFramework)
+import XMPPFramework
+#endif
/**
* This helper makes it slightly easier to call the MulticastDelegate
@@ -21,7 +24,7 @@ import Foundation
*
* This will prevent your code from crashing during the forced cast.
*/
-extension GCDMulticastDelegate {
+public extension GCDMulticastDelegate {
/**
* This is a helper mainly to provide better code completion.
*
@@ -29,7 +32,7 @@ extension GCDMulticastDelegate {
* multicast.xmppBookmarks!(self, didNotRetrieveBookmarks: obj as? XMPPIQ)
* })
*/
- public func invoke(ofType: T.Type, _ invocation: (_ multicast: T) -> ()) {
+ func invoke(ofType: T.Type, _ invocation: (_ multicast: T) -> ()) {
// Crashing here? See the documentation above.
// You must implement a stub extension on GCDMulticastDelegate conforming to the
// delegate type you are attempting to downcast.
diff --git a/Swift/XEP-0048/XMPPBookmarksModule.swift b/Swift/XEP-0048/XMPPBookmarksModule.swift
index 095fb61188..67c1132da8 100644
--- a/Swift/XEP-0048/XMPPBookmarksModule.swift
+++ b/Swift/XEP-0048/XMPPBookmarksModule.swift
@@ -13,6 +13,10 @@ import Foundation
#else
import CocoaLumberjackSwift
#endif
+
+#if canImport(XMPPFramework)
+import XMPPFramework
+#endif
@objc public enum XMPPBookmarksMode: Int {
/// Private XML Storage (XEP-0049)
diff --git a/Swift/XEP-0082/Date+XEP_0082.swift b/Swift/XEP-0082/Date+XEP_0082.swift
index ce025d06f7..57e13b55d5 100644
--- a/Swift/XEP-0082/Date+XEP_0082.swift
+++ b/Swift/XEP-0082/Date+XEP_0082.swift
@@ -7,39 +7,42 @@
//
import Foundation
+#if canImport(XMPPFramework)
+import XMPPFramework
+#endif
public extension Date {
- public static func from(xmppDateString: String) -> Date? {
+ static func from(xmppDateString: String) -> Date? {
if let date = XMPPDateTimeProfiles.parseDate(xmppDateString) {
return date as Date
}
return nil
}
- public static func from(xmppTimeString: String) -> Date? {
+ static func from(xmppTimeString: String) -> Date? {
if let date = XMPPDateTimeProfiles.parseTime(xmppTimeString) {
return date as Date
}
return nil
}
- public static func from(xmppDateTimeString: String) -> Date? {
+ static func from(xmppDateTimeString: String) -> Date? {
if let date = XMPPDateTimeProfiles.parseDateTime(xmppDateTimeString) {
return date as Date
}
return nil
}
- public var xmppDateString: String {
+ var xmppDateString: String {
return (self as NSDate).xmppDateString
}
- public var xmppTimeString: String {
+ var xmppTimeString: String {
return (self as NSDate).xmppTimeString
}
- public var xmppDateTimeString: String {
+ var xmppDateTimeString: String {
return (self as NSDate).xmppDateTimeString
}
}
diff --git a/Swift/XEP-0085/XMPPMessage+XEP_0085.swift b/Swift/XEP-0085/XMPPMessage+XEP_0085.swift
index 82f9191a29..1fc22cc74f 100644
--- a/Swift/XEP-0085/XMPPMessage+XEP_0085.swift
+++ b/Swift/XEP-0085/XMPPMessage+XEP_0085.swift
@@ -7,11 +7,14 @@
//
import Foundation
+#if canImport(XMPPFramework)
+import XMPPFramework
+#endif
/// XEP-0085: Chat States
/// https://xmpp.org/extensions/xep-0085.html
public extension XMPPMessage {
- public enum ChatState: String {
+ enum ChatState: String {
case active
case composing
case paused
@@ -19,14 +22,14 @@ public extension XMPPMessage {
case gone
}
- public var chatState: ChatState? {
+ var chatState: ChatState? {
guard let chatState = self.chatStateValue else {
return nil
}
return ChatState(rawValue: chatState)
}
- public func addChatState(_ chatState: ChatState) {
+ func addChatState(_ chatState: ChatState) {
let element = XMLElement(name: chatState.rawValue, xmlns: ChatStatesXmlns)
addChild(element)
}
diff --git a/Swift/XEP-0319/XMPPPresence+XEP_0319.swift b/Swift/XEP-0319/XMPPPresence+XEP_0319.swift
index 07e8a12172..e793b15d23 100644
--- a/Swift/XEP-0319/XMPPPresence+XEP_0319.swift
+++ b/Swift/XEP-0319/XMPPPresence+XEP_0319.swift
@@ -7,15 +7,18 @@
//
import Foundation
+#if canImport(XMPPFramework)
+import XMPPFramework
+#endif
/// XEP-0319: Last User Interaction in Presence
/// This specification defines a way to communicate time of last user interaction with her system using XMPP presence notifications.
/// https://xmpp.org/extensions/xep-0319.html
public extension XMPPPresence {
/// 'urn:xmpp:idle:1'
- @objc public static let idleXmlns = "urn:xmpp:idle:1"
+ @objc static let idleXmlns = "urn:xmpp:idle:1"
- @objc public var idleSince: Date? {
+ @objc var idleSince: Date? {
guard let idleElement = element(forName: "idle", xmlns: XMPPPresence.idleXmlns),
let sinceString = idleElement.attributeStringValue(forName: "since"),
let since = Date.from(xmppDateTimeString: sinceString) else {
@@ -24,14 +27,14 @@ public extension XMPPPresence {
return since
}
- @objc public func addIdle(since: Date) {
+ @objc func addIdle(since: Date) {
let dateString = since.xmppDateTimeString
let idleElement = XMLElement(name: "idle", xmlns: XMPPPresence.idleXmlns)
idleElement.addAttribute(withName: "since", stringValue: dateString)
addChild(idleElement)
}
- public convenience init(type: PresenceType? = nil,
+ convenience init(type: PresenceType? = nil,
show: ShowType? = nil,
status: String? = nil,
idle since: Date? = nil,
diff --git a/Xcode/Testing-Shared/OMEMOElementTests.m b/Xcode/Testing-Shared/OMEMOElementTests.m
index ec0d8c7efc..ead7e9f23c 100644
--- a/Xcode/Testing-Shared/OMEMOElementTests.m
+++ b/Xcode/Testing-Shared/OMEMOElementTests.m
@@ -7,12 +7,7 @@
//
#import
-#import
-#import
-#import
-#import
-#import
-
+@import XMPPFramework;
@interface OMEMOElementTests : XCTestCase
@property (nonatomic, readonly) OMEMOModuleNamespace ns;
diff --git a/Xcode/Testing-Shared/OMEMOModuleTests.m b/Xcode/Testing-Shared/OMEMOModuleTests.m
index 0a09ef7c86..45609866b3 100644
--- a/Xcode/Testing-Shared/OMEMOModuleTests.m
+++ b/Xcode/Testing-Shared/OMEMOModuleTests.m
@@ -7,11 +7,8 @@
//
#import
-#import
-#import
-#import
-#import
-#import
+@import XMPPFramework;
+@import CocoaLumberjack;
#import "OMEMOTestStorage.h"
#import "XMPPMockStream.h"
diff --git a/Xcode/Testing-Shared/OMEMOServerTests.m b/Xcode/Testing-Shared/OMEMOServerTests.m
index 6eba86297d..b8031611cf 100644
--- a/Xcode/Testing-Shared/OMEMOServerTests.m
+++ b/Xcode/Testing-Shared/OMEMOServerTests.m
@@ -8,15 +8,8 @@
#import
#import "OMEMOTestStorage.h"
-#import
-
-#import
-#import
-#import
-#import
-#import
-
-#import
+@import XMPPFramework;
+@import CocoaLumberjack;
// These tests aren't suited for automated testing e.g. Travis.
// Uncomment the below line to test on your own machine.
diff --git a/Xcode/Testing-Shared/OMEMOTestStorage.h b/Xcode/Testing-Shared/OMEMOTestStorage.h
index 152f4cd56c..81f420d4ed 100644
--- a/Xcode/Testing-Shared/OMEMOTestStorage.h
+++ b/Xcode/Testing-Shared/OMEMOTestStorage.h
@@ -7,7 +7,7 @@
//
#import
-#import
+@import XMPPFramework;
NS_ASSUME_NONNULL_BEGIN
@interface OMEMOTestStorage : NSObject
diff --git a/Xcode/Testing-Shared/OMEMOTestStorage.m b/Xcode/Testing-Shared/OMEMOTestStorage.m
index 2f3c7be0fc..e76f8a6640 100644
--- a/Xcode/Testing-Shared/OMEMOTestStorage.m
+++ b/Xcode/Testing-Shared/OMEMOTestStorage.m
@@ -7,7 +7,7 @@
//
#import "OMEMOTestStorage.h"
-#import
+@import XMPPFramework;
@interface OMEMOTestStorage()
@property (nonatomic, strong, readonly) NSMutableDictionary *> *deviceIdStorage;
diff --git a/Xcode/Testing-Swift/XMPPBookmarksModuleTests.swift b/Xcode/Testing-Swift/XMPPBookmarksModuleTests.swift
index b591087662..70734ee049 100644
--- a/Xcode/Testing-Swift/XMPPBookmarksModuleTests.swift
+++ b/Xcode/Testing-Swift/XMPPBookmarksModuleTests.swift
@@ -9,6 +9,10 @@ import XCTest
#if COCOAPODS
import XMPPFramework
+#elseif SWIFT_PACKAGE
+ import XMPPFramework
+ import XMPPFrameworkSwift
+ import XMPPFrameworkTestsShared
#else
import XMPPFrameworkSwift
#endif
diff --git a/Xcode/Testing-Swift/XMPPPresenceTests.swift b/Xcode/Testing-Swift/XMPPPresenceTests.swift
index e8528a41cc..f6732afa32 100644
--- a/Xcode/Testing-Swift/XMPPPresenceTests.swift
+++ b/Xcode/Testing-Swift/XMPPPresenceTests.swift
@@ -6,6 +6,10 @@
//
import XCTest
+#if SWIFT_PACKAGE
+ import XMPPFramework
+ import XMPPFrameworkSwift
+#endif
class XMPPPresenceTests: XCTestCase {
diff --git a/Xcode/Testing-Swift/XMPPvCardTempTests.swift b/Xcode/Testing-Swift/XMPPvCardTempTests.swift
index 2c8bdfb61f..f2724c7b43 100644
--- a/Xcode/Testing-Swift/XMPPvCardTempTests.swift
+++ b/Xcode/Testing-Swift/XMPPvCardTempTests.swift
@@ -6,6 +6,10 @@
//
import XCTest
+#if SWIFT_PACKAGE
+ import XMPPFramework
+ import XMPPFrameworkSwift
+#endif
class XMPPvCardTempTests: XCTestCase {
var xmlString: String!
diff --git a/include/XMPPFramework/DDList.h b/include/XMPPFramework/DDList.h
new file mode 120000
index 0000000000..1cec4575de
--- /dev/null
+++ b/include/XMPPFramework/DDList.h
@@ -0,0 +1 @@
+../../Utilities/DDList.h
\ No newline at end of file
diff --git a/include/XMPPFramework/GCDMulticastDelegate.h b/include/XMPPFramework/GCDMulticastDelegate.h
new file mode 120000
index 0000000000..291d09b47a
--- /dev/null
+++ b/include/XMPPFramework/GCDMulticastDelegate.h
@@ -0,0 +1 @@
+../../Utilities/GCDMulticastDelegate.h
\ No newline at end of file
diff --git a/include/XMPPFramework/NSData+XMPP.h b/include/XMPPFramework/NSData+XMPP.h
new file mode 120000
index 0000000000..f1fe6326aa
--- /dev/null
+++ b/include/XMPPFramework/NSData+XMPP.h
@@ -0,0 +1 @@
+../../Categories/NSData+XMPP.h
\ No newline at end of file
diff --git a/include/XMPPFramework/NSDate+XMPPDateTimeProfiles.h b/include/XMPPFramework/NSDate+XMPPDateTimeProfiles.h
new file mode 120000
index 0000000000..6e08e89b67
--- /dev/null
+++ b/include/XMPPFramework/NSDate+XMPPDateTimeProfiles.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0082/NSDate+XMPPDateTimeProfiles.h
\ No newline at end of file
diff --git a/include/XMPPFramework/NSNumber+XMPP.h b/include/XMPPFramework/NSNumber+XMPP.h
new file mode 120000
index 0000000000..9acd5e2395
--- /dev/null
+++ b/include/XMPPFramework/NSNumber+XMPP.h
@@ -0,0 +1 @@
+../../Categories/NSNumber+XMPP.h
\ No newline at end of file
diff --git a/include/XMPPFramework/NSString+XEP_0106.h b/include/XMPPFramework/NSString+XEP_0106.h
new file mode 120000
index 0000000000..09b1b7d27c
--- /dev/null
+++ b/include/XMPPFramework/NSString+XEP_0106.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0106/NSString+XEP_0106.h
\ No newline at end of file
diff --git a/include/XMPPFramework/NSXMLElement+OMEMO.h b/include/XMPPFramework/NSXMLElement+OMEMO.h
new file mode 120000
index 0000000000..fd83607734
--- /dev/null
+++ b/include/XMPPFramework/NSXMLElement+OMEMO.h
@@ -0,0 +1 @@
+../../Extensions/OMEMO/NSXMLElement+OMEMO.h
\ No newline at end of file
diff --git a/include/XMPPFramework/NSXMLElement+XEP_0048.h b/include/XMPPFramework/NSXMLElement+XEP_0048.h
new file mode 120000
index 0000000000..336338a39e
--- /dev/null
+++ b/include/XMPPFramework/NSXMLElement+XEP_0048.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0048/NSXMLElement+XEP_0048.h
\ No newline at end of file
diff --git a/include/XMPPFramework/NSXMLElement+XEP_0059.h b/include/XMPPFramework/NSXMLElement+XEP_0059.h
new file mode 120000
index 0000000000..5febeda596
--- /dev/null
+++ b/include/XMPPFramework/NSXMLElement+XEP_0059.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0059/NSXMLElement+XEP_0059.h
\ No newline at end of file
diff --git a/include/XMPPFramework/NSXMLElement+XEP_0203.h b/include/XMPPFramework/NSXMLElement+XEP_0203.h
new file mode 120000
index 0000000000..eb8ddc9fc0
--- /dev/null
+++ b/include/XMPPFramework/NSXMLElement+XEP_0203.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0203/NSXMLElement+XEP_0203.h
\ No newline at end of file
diff --git a/include/XMPPFramework/NSXMLElement+XEP_0297.h b/include/XMPPFramework/NSXMLElement+XEP_0297.h
new file mode 120000
index 0000000000..9c31f631e1
--- /dev/null
+++ b/include/XMPPFramework/NSXMLElement+XEP_0297.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0297/NSXMLElement+XEP_0297.h
\ No newline at end of file
diff --git a/include/XMPPFramework/NSXMLElement+XEP_0335.h b/include/XMPPFramework/NSXMLElement+XEP_0335.h
new file mode 120000
index 0000000000..fd8c65017a
--- /dev/null
+++ b/include/XMPPFramework/NSXMLElement+XEP_0335.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0335/NSXMLElement+XEP_0335.h
\ No newline at end of file
diff --git a/include/XMPPFramework/NSXMLElement+XEP_0352.h b/include/XMPPFramework/NSXMLElement+XEP_0352.h
new file mode 120000
index 0000000000..5028fa9a99
--- /dev/null
+++ b/include/XMPPFramework/NSXMLElement+XEP_0352.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0352/NSXMLElement+XEP_0352.h
\ No newline at end of file
diff --git a/include/XMPPFramework/NSXMLElement+XEP_0359.h b/include/XMPPFramework/NSXMLElement+XEP_0359.h
new file mode 120000
index 0000000000..b4df8d7048
--- /dev/null
+++ b/include/XMPPFramework/NSXMLElement+XEP_0359.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0359/NSXMLElement+XEP_0359.h
\ No newline at end of file
diff --git a/include/XMPPFramework/NSXMLElement+XMPP.h b/include/XMPPFramework/NSXMLElement+XMPP.h
new file mode 120000
index 0000000000..cbec83a105
--- /dev/null
+++ b/include/XMPPFramework/NSXMLElement+XMPP.h
@@ -0,0 +1 @@
+../../Categories/NSXMLElement+XMPP.h
\ No newline at end of file
diff --git a/include/XMPPFramework/OMEMOBundle.h b/include/XMPPFramework/OMEMOBundle.h
new file mode 120000
index 0000000000..f93990301d
--- /dev/null
+++ b/include/XMPPFramework/OMEMOBundle.h
@@ -0,0 +1 @@
+../../Extensions/OMEMO/OMEMOBundle.h
\ No newline at end of file
diff --git a/include/XMPPFramework/OMEMOKeyData.h b/include/XMPPFramework/OMEMOKeyData.h
new file mode 120000
index 0000000000..d92e49adbf
--- /dev/null
+++ b/include/XMPPFramework/OMEMOKeyData.h
@@ -0,0 +1 @@
+../../Extensions/OMEMO/OMEMOKeyData.h
\ No newline at end of file
diff --git a/include/XMPPFramework/OMEMOModule.h b/include/XMPPFramework/OMEMOModule.h
new file mode 120000
index 0000000000..aace24fab9
--- /dev/null
+++ b/include/XMPPFramework/OMEMOModule.h
@@ -0,0 +1 @@
+../../Extensions/OMEMO/OMEMOModule.h
\ No newline at end of file
diff --git a/include/XMPPFramework/OMEMOPreKey.h b/include/XMPPFramework/OMEMOPreKey.h
new file mode 120000
index 0000000000..064a95cb84
--- /dev/null
+++ b/include/XMPPFramework/OMEMOPreKey.h
@@ -0,0 +1 @@
+../../Extensions/OMEMO/OMEMOPreKey.h
\ No newline at end of file
diff --git a/include/XMPPFramework/OMEMOSignedPreKey.h b/include/XMPPFramework/OMEMOSignedPreKey.h
new file mode 120000
index 0000000000..52bb40c6c8
--- /dev/null
+++ b/include/XMPPFramework/OMEMOSignedPreKey.h
@@ -0,0 +1 @@
+../../Extensions/OMEMO/OMEMOSignedPreKey.h
\ No newline at end of file
diff --git a/include/XMPPFramework/RFImageToDataTransformer.h b/include/XMPPFramework/RFImageToDataTransformer.h
new file mode 120000
index 0000000000..eba286222e
--- /dev/null
+++ b/include/XMPPFramework/RFImageToDataTransformer.h
@@ -0,0 +1 @@
+../../Utilities/RFImageToDataTransformer.h
\ No newline at end of file
diff --git a/include/XMPPFramework/TURNSocket.h b/include/XMPPFramework/TURNSocket.h
new file mode 120000
index 0000000000..1fdfbdda0f
--- /dev/null
+++ b/include/XMPPFramework/TURNSocket.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0065/TURNSocket.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XEP_0223.h b/include/XMPPFramework/XEP_0223.h
new file mode 120000
index 0000000000..3de7f1d9f2
--- /dev/null
+++ b/include/XMPPFramework/XEP_0223.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0223/XEP_0223.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPP.h b/include/XMPPFramework/XMPP.h
new file mode 120000
index 0000000000..7f2ff0a659
--- /dev/null
+++ b/include/XMPPFramework/XMPP.h
@@ -0,0 +1 @@
+../../Core/XMPP.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPAnonymousAuthentication.h b/include/XMPPFramework/XMPPAnonymousAuthentication.h
new file mode 120000
index 0000000000..5926fe3028
--- /dev/null
+++ b/include/XMPPFramework/XMPPAnonymousAuthentication.h
@@ -0,0 +1 @@
+../../Authentication/Anonymous/XMPPAnonymousAuthentication.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPAttentionModule.h b/include/XMPPFramework/XMPPAttentionModule.h
new file mode 120000
index 0000000000..f3283909f6
--- /dev/null
+++ b/include/XMPPFramework/XMPPAttentionModule.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0224/XMPPAttentionModule.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPAutoPing.h b/include/XMPPFramework/XMPPAutoPing.h
new file mode 120000
index 0000000000..09196d2fcf
--- /dev/null
+++ b/include/XMPPFramework/XMPPAutoPing.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0199/XMPPAutoPing.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPAutoTime.h b/include/XMPPFramework/XMPPAutoTime.h
new file mode 120000
index 0000000000..c0d6fbea50
--- /dev/null
+++ b/include/XMPPFramework/XMPPAutoTime.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0202/XMPPAutoTime.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPBandwidthMonitor.h b/include/XMPPFramework/XMPPBandwidthMonitor.h
new file mode 120000
index 0000000000..d9cb03b985
--- /dev/null
+++ b/include/XMPPFramework/XMPPBandwidthMonitor.h
@@ -0,0 +1 @@
+../../Extensions/BandwidthMonitor/XMPPBandwidthMonitor.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPBlocking.h b/include/XMPPFramework/XMPPBlocking.h
new file mode 120000
index 0000000000..c59b9764fb
--- /dev/null
+++ b/include/XMPPFramework/XMPPBlocking.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0191/XMPPBlocking.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPBookmark.h b/include/XMPPFramework/XMPPBookmark.h
new file mode 120000
index 0000000000..7ce6d65abe
--- /dev/null
+++ b/include/XMPPFramework/XMPPBookmark.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0048/XMPPBookmark.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPBookmarksStorageElement.h b/include/XMPPFramework/XMPPBookmarksStorageElement.h
new file mode 120000
index 0000000000..4ac8e5ff67
--- /dev/null
+++ b/include/XMPPFramework/XMPPBookmarksStorageElement.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0048/XMPPBookmarksStorageElement.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPCapabilities+XEP_0359.h b/include/XMPPFramework/XMPPCapabilities+XEP_0359.h
new file mode 120000
index 0000000000..bf303075e7
--- /dev/null
+++ b/include/XMPPFramework/XMPPCapabilities+XEP_0359.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0359/XMPPCapabilities+XEP_0359.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPCapabilities.h b/include/XMPPFramework/XMPPCapabilities.h
new file mode 120000
index 0000000000..f2f8aa299c
--- /dev/null
+++ b/include/XMPPFramework/XMPPCapabilities.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0115/XMPPCapabilities.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPCapabilitiesCoreDataStorage.h b/include/XMPPFramework/XMPPCapabilitiesCoreDataStorage.h
new file mode 120000
index 0000000000..45c2c7422b
--- /dev/null
+++ b/include/XMPPFramework/XMPPCapabilitiesCoreDataStorage.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0115/CoreDataStorage/XMPPCapabilitiesCoreDataStorage.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPCapsCoreDataStorageObject.h b/include/XMPPFramework/XMPPCapsCoreDataStorageObject.h
new file mode 120000
index 0000000000..8a36790a7c
--- /dev/null
+++ b/include/XMPPFramework/XMPPCapsCoreDataStorageObject.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0115/CoreDataStorage/XMPPCapsCoreDataStorageObject.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPCapsResourceCoreDataStorageObject.h b/include/XMPPFramework/XMPPCapsResourceCoreDataStorageObject.h
new file mode 120000
index 0000000000..adf6ac72f8
--- /dev/null
+++ b/include/XMPPFramework/XMPPCapsResourceCoreDataStorageObject.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0115/CoreDataStorage/XMPPCapsResourceCoreDataStorageObject.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPConstants.h b/include/XMPPFramework/XMPPConstants.h
new file mode 120000
index 0000000000..9e9f2bdc74
--- /dev/null
+++ b/include/XMPPFramework/XMPPConstants.h
@@ -0,0 +1 @@
+../../Core/XMPPConstants.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPCoreDataStorage.h b/include/XMPPFramework/XMPPCoreDataStorage.h
new file mode 120000
index 0000000000..8292ad443f
--- /dev/null
+++ b/include/XMPPFramework/XMPPCoreDataStorage.h
@@ -0,0 +1 @@
+../../Extensions/CoreDataStorage/XMPPCoreDataStorage.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPCoreDataStorageProtected.h b/include/XMPPFramework/XMPPCoreDataStorageProtected.h
new file mode 120000
index 0000000000..c5e8718dc4
--- /dev/null
+++ b/include/XMPPFramework/XMPPCoreDataStorageProtected.h
@@ -0,0 +1 @@
+../../Extensions/CoreDataStorage/XMPPCoreDataStorageProtected.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPCustomBinding.h b/include/XMPPFramework/XMPPCustomBinding.h
new file mode 120000
index 0000000000..1b7eee36c0
--- /dev/null
+++ b/include/XMPPFramework/XMPPCustomBinding.h
@@ -0,0 +1 @@
+../../Authentication/XMPPCustomBinding.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPDateTimeProfiles.h b/include/XMPPFramework/XMPPDateTimeProfiles.h
new file mode 120000
index 0000000000..bafff60ce2
--- /dev/null
+++ b/include/XMPPFramework/XMPPDateTimeProfiles.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0082/XMPPDateTimeProfiles.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPDelayedDelivery.h b/include/XMPPFramework/XMPPDelayedDelivery.h
new file mode 120000
index 0000000000..06e21b9bdb
--- /dev/null
+++ b/include/XMPPFramework/XMPPDelayedDelivery.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0203/XMPPDelayedDelivery.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPDeprecatedDigestAuthentication.h b/include/XMPPFramework/XMPPDeprecatedDigestAuthentication.h
new file mode 120000
index 0000000000..e87f7607f5
--- /dev/null
+++ b/include/XMPPFramework/XMPPDeprecatedDigestAuthentication.h
@@ -0,0 +1 @@
+../../Authentication/Deprecated-Digest/XMPPDeprecatedDigestAuthentication.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPDeprecatedPlainAuthentication.h b/include/XMPPFramework/XMPPDeprecatedPlainAuthentication.h
new file mode 120000
index 0000000000..cde35143ee
--- /dev/null
+++ b/include/XMPPFramework/XMPPDeprecatedPlainAuthentication.h
@@ -0,0 +1 @@
+../../Authentication/Deprecated-Plain/XMPPDeprecatedPlainAuthentication.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPDigestMD5Authentication.h b/include/XMPPFramework/XMPPDigestMD5Authentication.h
new file mode 120000
index 0000000000..750f6908e4
--- /dev/null
+++ b/include/XMPPFramework/XMPPDigestMD5Authentication.h
@@ -0,0 +1 @@
+../../Authentication/Digest-MD5/XMPPDigestMD5Authentication.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPElement.h b/include/XMPPFramework/XMPPElement.h
new file mode 120000
index 0000000000..7ab7848dd7
--- /dev/null
+++ b/include/XMPPFramework/XMPPElement.h
@@ -0,0 +1 @@
+../../Core/XMPPElement.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPFileTransfer.h b/include/XMPPFramework/XMPPFileTransfer.h
new file mode 120000
index 0000000000..4c8ac0b9bb
--- /dev/null
+++ b/include/XMPPFramework/XMPPFileTransfer.h
@@ -0,0 +1 @@
+../../Extensions/FileTransfer/XMPPFileTransfer.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPFramework.h b/include/XMPPFramework/XMPPFramework.h
new file mode 120000
index 0000000000..fab0703809
--- /dev/null
+++ b/include/XMPPFramework/XMPPFramework.h
@@ -0,0 +1 @@
+../../Core/XMPPFramework.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPGoogleSharedStatus.h b/include/XMPPFramework/XMPPGoogleSharedStatus.h
new file mode 120000
index 0000000000..b35ce99f97
--- /dev/null
+++ b/include/XMPPFramework/XMPPGoogleSharedStatus.h
@@ -0,0 +1 @@
+../../Extensions/GoogleSharedStatus/XMPPGoogleSharedStatus.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPGroupCoreDataStorageObject.h b/include/XMPPFramework/XMPPGroupCoreDataStorageObject.h
new file mode 120000
index 0000000000..443c234c4b
--- /dev/null
+++ b/include/XMPPFramework/XMPPGroupCoreDataStorageObject.h
@@ -0,0 +1 @@
+../../Extensions/Roster/CoreDataStorage/XMPPGroupCoreDataStorageObject.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPHTTPFileUpload.h b/include/XMPPFramework/XMPPHTTPFileUpload.h
new file mode 120000
index 0000000000..68dc92ed37
--- /dev/null
+++ b/include/XMPPFramework/XMPPHTTPFileUpload.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0363/XMPPHTTPFileUpload.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPIDTracker.h b/include/XMPPFramework/XMPPIDTracker.h
new file mode 120000
index 0000000000..db5c8cdf52
--- /dev/null
+++ b/include/XMPPFramework/XMPPIDTracker.h
@@ -0,0 +1 @@
+../../Utilities/XMPPIDTracker.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPIQ+JabberRPC.h b/include/XMPPFramework/XMPPIQ+JabberRPC.h
new file mode 120000
index 0000000000..8da55a9b77
--- /dev/null
+++ b/include/XMPPFramework/XMPPIQ+JabberRPC.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0009/XMPPIQ+JabberRPC.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPIQ+JabberRPCResonse.h b/include/XMPPFramework/XMPPIQ+JabberRPCResonse.h
new file mode 120000
index 0000000000..4c8015a057
--- /dev/null
+++ b/include/XMPPFramework/XMPPIQ+JabberRPCResonse.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0009/XMPPIQ+JabberRPCResonse.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPIQ+LastActivity.h b/include/XMPPFramework/XMPPIQ+LastActivity.h
new file mode 120000
index 0000000000..dba1820acf
--- /dev/null
+++ b/include/XMPPFramework/XMPPIQ+LastActivity.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0012/XMPPIQ+LastActivity.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPIQ+OMEMO.h b/include/XMPPFramework/XMPPIQ+OMEMO.h
new file mode 120000
index 0000000000..392f456768
--- /dev/null
+++ b/include/XMPPFramework/XMPPIQ+OMEMO.h
@@ -0,0 +1 @@
+../../Extensions/OMEMO/XMPPIQ+OMEMO.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPIQ+XEP_0060.h b/include/XMPPFramework/XMPPIQ+XEP_0060.h
new file mode 120000
index 0000000000..4a3b44f542
--- /dev/null
+++ b/include/XMPPFramework/XMPPIQ+XEP_0060.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0060/XMPPIQ+XEP_0060.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPIQ+XEP_0066.h b/include/XMPPFramework/XMPPIQ+XEP_0066.h
new file mode 120000
index 0000000000..30bb8d44a9
--- /dev/null
+++ b/include/XMPPFramework/XMPPIQ+XEP_0066.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0066/XMPPIQ+XEP_0066.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPIQ+XEP_0357.h b/include/XMPPFramework/XMPPIQ+XEP_0357.h
new file mode 120000
index 0000000000..960e8da091
--- /dev/null
+++ b/include/XMPPFramework/XMPPIQ+XEP_0357.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0357/XMPPIQ+XEP_0357.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPIQ.h b/include/XMPPFramework/XMPPIQ.h
new file mode 120000
index 0000000000..633b2abc5e
--- /dev/null
+++ b/include/XMPPFramework/XMPPIQ.h
@@ -0,0 +1 @@
+../../Core/XMPPIQ.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPIncomingFileTransfer.h b/include/XMPPFramework/XMPPIncomingFileTransfer.h
new file mode 120000
index 0000000000..ed5f7f005c
--- /dev/null
+++ b/include/XMPPFramework/XMPPIncomingFileTransfer.h
@@ -0,0 +1 @@
+../../Extensions/FileTransfer/XMPPIncomingFileTransfer.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPInternal.h b/include/XMPPFramework/XMPPInternal.h
new file mode 120000
index 0000000000..dada5da097
--- /dev/null
+++ b/include/XMPPFramework/XMPPInternal.h
@@ -0,0 +1 @@
+../../Core/XMPPInternal.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPJID.h b/include/XMPPFramework/XMPPJID.h
new file mode 120000
index 0000000000..ad20532173
--- /dev/null
+++ b/include/XMPPFramework/XMPPJID.h
@@ -0,0 +1 @@
+../../Core/XMPPJID.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPJabberRPCModule.h b/include/XMPPFramework/XMPPJabberRPCModule.h
new file mode 120000
index 0000000000..c8f41ca57c
--- /dev/null
+++ b/include/XMPPFramework/XMPPJabberRPCModule.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0009/XMPPJabberRPCModule.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPLastActivity.h b/include/XMPPFramework/XMPPLastActivity.h
new file mode 120000
index 0000000000..8a0f3bb3ae
--- /dev/null
+++ b/include/XMPPFramework/XMPPLastActivity.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0012/XMPPLastActivity.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPLogging.h b/include/XMPPFramework/XMPPLogging.h
new file mode 120000
index 0000000000..bde9c8a86d
--- /dev/null
+++ b/include/XMPPFramework/XMPPLogging.h
@@ -0,0 +1 @@
+../../Core/XMPPLogging.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPMUC.h b/include/XMPPFramework/XMPPMUC.h
new file mode 120000
index 0000000000..a3342da8c1
--- /dev/null
+++ b/include/XMPPFramework/XMPPMUC.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0045/XMPPMUC.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPMUCLight.h b/include/XMPPFramework/XMPPMUCLight.h
new file mode 120000
index 0000000000..85ad70830d
--- /dev/null
+++ b/include/XMPPFramework/XMPPMUCLight.h
@@ -0,0 +1 @@
+../../Extensions/XMPPMUCLight/XMPPMUCLight.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPManagedMessaging.h b/include/XMPPFramework/XMPPManagedMessaging.h
new file mode 120000
index 0000000000..866d5df67f
--- /dev/null
+++ b/include/XMPPFramework/XMPPManagedMessaging.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0198/Managed Messaging/XMPPManagedMessaging.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPMessage+OMEMO.h b/include/XMPPFramework/XMPPMessage+OMEMO.h
new file mode 120000
index 0000000000..32a10f9e6d
--- /dev/null
+++ b/include/XMPPFramework/XMPPMessage+OMEMO.h
@@ -0,0 +1 @@
+../../Extensions/OMEMO/XMPPMessage+OMEMO.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPMessage+XEP0045.h b/include/XMPPFramework/XMPPMessage+XEP0045.h
new file mode 120000
index 0000000000..e0c850d703
--- /dev/null
+++ b/include/XMPPFramework/XMPPMessage+XEP0045.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0045/XMPPMessage+XEP0045.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPMessage+XEP_0066.h b/include/XMPPFramework/XMPPMessage+XEP_0066.h
new file mode 120000
index 0000000000..32d93c27c1
--- /dev/null
+++ b/include/XMPPFramework/XMPPMessage+XEP_0066.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0066/XMPPMessage+XEP_0066.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPMessage+XEP_0085.h b/include/XMPPFramework/XMPPMessage+XEP_0085.h
new file mode 120000
index 0000000000..f87f132b5e
--- /dev/null
+++ b/include/XMPPFramework/XMPPMessage+XEP_0085.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0085/XMPPMessage+XEP_0085.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPMessage+XEP_0172.h b/include/XMPPFramework/XMPPMessage+XEP_0172.h
new file mode 120000
index 0000000000..8a9465b9eb
--- /dev/null
+++ b/include/XMPPFramework/XMPPMessage+XEP_0172.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0172/XMPPMessage+XEP_0172.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPMessage+XEP_0184.h b/include/XMPPFramework/XMPPMessage+XEP_0184.h
new file mode 120000
index 0000000000..c4f54d617d
--- /dev/null
+++ b/include/XMPPFramework/XMPPMessage+XEP_0184.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0184/XMPPMessage+XEP_0184.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPMessage+XEP_0224.h b/include/XMPPFramework/XMPPMessage+XEP_0224.h
new file mode 120000
index 0000000000..10d01bb56f
--- /dev/null
+++ b/include/XMPPFramework/XMPPMessage+XEP_0224.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0224/XMPPMessage+XEP_0224.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPMessage+XEP_0280.h b/include/XMPPFramework/XMPPMessage+XEP_0280.h
new file mode 120000
index 0000000000..850453ddd3
--- /dev/null
+++ b/include/XMPPFramework/XMPPMessage+XEP_0280.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0280/XMPPMessage+XEP_0280.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPMessage+XEP_0308.h b/include/XMPPFramework/XMPPMessage+XEP_0308.h
new file mode 120000
index 0000000000..b21d7b7bde
--- /dev/null
+++ b/include/XMPPFramework/XMPPMessage+XEP_0308.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0308/XMPPMessage+XEP_0308.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPMessage+XEP_0313.h b/include/XMPPFramework/XMPPMessage+XEP_0313.h
new file mode 120000
index 0000000000..b8e0ec9084
--- /dev/null
+++ b/include/XMPPFramework/XMPPMessage+XEP_0313.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0313/XMPPMessage+XEP_0313.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPMessage+XEP_0333.h b/include/XMPPFramework/XMPPMessage+XEP_0333.h
new file mode 120000
index 0000000000..a2e76d20a0
--- /dev/null
+++ b/include/XMPPFramework/XMPPMessage+XEP_0333.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0333/XMPPMessage+XEP_0333.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPMessage+XEP_0334.h b/include/XMPPFramework/XMPPMessage+XEP_0334.h
new file mode 120000
index 0000000000..c40a7fe03f
--- /dev/null
+++ b/include/XMPPFramework/XMPPMessage+XEP_0334.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0334/XMPPMessage+XEP_0334.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPMessage+XEP_0359.h b/include/XMPPFramework/XMPPMessage+XEP_0359.h
new file mode 120000
index 0000000000..64cf3dfb6f
--- /dev/null
+++ b/include/XMPPFramework/XMPPMessage+XEP_0359.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0359/XMPPMessage+XEP_0359.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPMessage.h b/include/XMPPFramework/XMPPMessage.h
new file mode 120000
index 0000000000..9ca9221eb9
--- /dev/null
+++ b/include/XMPPFramework/XMPPMessage.h
@@ -0,0 +1 @@
+../../Core/XMPPMessage.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPMessageArchiveManagement.h b/include/XMPPFramework/XMPPMessageArchiveManagement.h
new file mode 120000
index 0000000000..bac465e319
--- /dev/null
+++ b/include/XMPPFramework/XMPPMessageArchiveManagement.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0313/XMPPMessageArchiveManagement.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPMessageArchiving.h b/include/XMPPFramework/XMPPMessageArchiving.h
new file mode 120000
index 0000000000..467ef93abd
--- /dev/null
+++ b/include/XMPPFramework/XMPPMessageArchiving.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0136/XMPPMessageArchiving.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPMessageArchivingCoreDataStorage.h b/include/XMPPFramework/XMPPMessageArchivingCoreDataStorage.h
new file mode 120000
index 0000000000..2f40e7c0c5
--- /dev/null
+++ b/include/XMPPFramework/XMPPMessageArchivingCoreDataStorage.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0136/CoreDataStorage/XMPPMessageArchivingCoreDataStorage.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPMessageArchiving_Contact_CoreDataObject.h b/include/XMPPFramework/XMPPMessageArchiving_Contact_CoreDataObject.h
new file mode 120000
index 0000000000..191725151d
--- /dev/null
+++ b/include/XMPPFramework/XMPPMessageArchiving_Contact_CoreDataObject.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0136/CoreDataStorage/XMPPMessageArchiving_Contact_CoreDataObject.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPMessageArchiving_Message_CoreDataObject.h b/include/XMPPFramework/XMPPMessageArchiving_Message_CoreDataObject.h
new file mode 120000
index 0000000000..9f656b80cd
--- /dev/null
+++ b/include/XMPPFramework/XMPPMessageArchiving_Message_CoreDataObject.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0136/CoreDataStorage/XMPPMessageArchiving_Message_CoreDataObject.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPMessageCarbons.h b/include/XMPPFramework/XMPPMessageCarbons.h
new file mode 120000
index 0000000000..73954328b4
--- /dev/null
+++ b/include/XMPPFramework/XMPPMessageCarbons.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0280/XMPPMessageCarbons.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPMessageDeliveryReceipts.h b/include/XMPPFramework/XMPPMessageDeliveryReceipts.h
new file mode 120000
index 0000000000..46020b545b
--- /dev/null
+++ b/include/XMPPFramework/XMPPMessageDeliveryReceipts.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0184/XMPPMessageDeliveryReceipts.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPModule.h b/include/XMPPFramework/XMPPModule.h
new file mode 120000
index 0000000000..9e16cec51c
--- /dev/null
+++ b/include/XMPPFramework/XMPPModule.h
@@ -0,0 +1 @@
+../../Core/XMPPModule.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPOneToOneChat.h b/include/XMPPFramework/XMPPOneToOneChat.h
new file mode 120000
index 0000000000..a05f98c6e3
--- /dev/null
+++ b/include/XMPPFramework/XMPPOneToOneChat.h
@@ -0,0 +1 @@
+../../Extensions/OneToOneChat/XMPPOneToOneChat.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPOutOfBandResourceMessaging.h b/include/XMPPFramework/XMPPOutOfBandResourceMessaging.h
new file mode 120000
index 0000000000..e0c5c9f4e5
--- /dev/null
+++ b/include/XMPPFramework/XMPPOutOfBandResourceMessaging.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0066/XMPPOutOfBandResourceMessaging.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPOutgoingFileTransfer.h b/include/XMPPFramework/XMPPOutgoingFileTransfer.h
new file mode 120000
index 0000000000..b822698bdd
--- /dev/null
+++ b/include/XMPPFramework/XMPPOutgoingFileTransfer.h
@@ -0,0 +1 @@
+../../Extensions/FileTransfer/XMPPOutgoingFileTransfer.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPParser.h b/include/XMPPFramework/XMPPParser.h
new file mode 120000
index 0000000000..a2d89a4e3f
--- /dev/null
+++ b/include/XMPPFramework/XMPPParser.h
@@ -0,0 +1 @@
+../../Core/XMPPParser.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPPing.h b/include/XMPPFramework/XMPPPing.h
new file mode 120000
index 0000000000..f17fddcb1e
--- /dev/null
+++ b/include/XMPPFramework/XMPPPing.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0199/XMPPPing.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPPlainAuthentication.h b/include/XMPPFramework/XMPPPlainAuthentication.h
new file mode 120000
index 0000000000..6401896f10
--- /dev/null
+++ b/include/XMPPFramework/XMPPPlainAuthentication.h
@@ -0,0 +1 @@
+../../Authentication/Plain/XMPPPlainAuthentication.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPPresence+XEP_0172.h b/include/XMPPFramework/XMPPPresence+XEP_0172.h
new file mode 120000
index 0000000000..fce0cdd6f1
--- /dev/null
+++ b/include/XMPPFramework/XMPPPresence+XEP_0172.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0172/XMPPPresence+XEP_0172.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPPresence.h b/include/XMPPFramework/XMPPPresence.h
new file mode 120000
index 0000000000..4821bf5e4f
--- /dev/null
+++ b/include/XMPPFramework/XMPPPresence.h
@@ -0,0 +1 @@
+../../Core/XMPPPresence.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPPrivacy.h b/include/XMPPFramework/XMPPPrivacy.h
new file mode 120000
index 0000000000..6380cdf6f0
--- /dev/null
+++ b/include/XMPPFramework/XMPPPrivacy.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0016/XMPPPrivacy.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPProcessOne.h b/include/XMPPFramework/XMPPProcessOne.h
new file mode 120000
index 0000000000..c87b67297e
--- /dev/null
+++ b/include/XMPPFramework/XMPPProcessOne.h
@@ -0,0 +1 @@
+../../Extensions/ProcessOne/XMPPProcessOne.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPPubSub.h b/include/XMPPFramework/XMPPPubSub.h
new file mode 120000
index 0000000000..8a7981b548
--- /dev/null
+++ b/include/XMPPFramework/XMPPPubSub.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0060/XMPPPubSub.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPPushModule.h b/include/XMPPFramework/XMPPPushModule.h
new file mode 120000
index 0000000000..acc92b610f
--- /dev/null
+++ b/include/XMPPFramework/XMPPPushModule.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0357/XMPPPushModule.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPReconnect.h b/include/XMPPFramework/XMPPReconnect.h
new file mode 120000
index 0000000000..9d0e75424e
--- /dev/null
+++ b/include/XMPPFramework/XMPPReconnect.h
@@ -0,0 +1 @@
+../../Extensions/Reconnect/XMPPReconnect.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPRegistration.h b/include/XMPPFramework/XMPPRegistration.h
new file mode 120000
index 0000000000..58590ea2b8
--- /dev/null
+++ b/include/XMPPFramework/XMPPRegistration.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0077/XMPPRegistration.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPResource.h b/include/XMPPFramework/XMPPResource.h
new file mode 120000
index 0000000000..a67ad096bc
--- /dev/null
+++ b/include/XMPPFramework/XMPPResource.h
@@ -0,0 +1 @@
+../../Extensions/Roster/XMPPResource.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPResourceCoreDataStorageObject.h b/include/XMPPFramework/XMPPResourceCoreDataStorageObject.h
new file mode 120000
index 0000000000..2629207428
--- /dev/null
+++ b/include/XMPPFramework/XMPPResourceCoreDataStorageObject.h
@@ -0,0 +1 @@
+../../Extensions/Roster/CoreDataStorage/XMPPResourceCoreDataStorageObject.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPResourceMemoryStorageObject.h b/include/XMPPFramework/XMPPResourceMemoryStorageObject.h
new file mode 120000
index 0000000000..b126873513
--- /dev/null
+++ b/include/XMPPFramework/XMPPResourceMemoryStorageObject.h
@@ -0,0 +1 @@
+../../Extensions/Roster/MemoryStorage/XMPPResourceMemoryStorageObject.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPResultSet.h b/include/XMPPFramework/XMPPResultSet.h
new file mode 120000
index 0000000000..48f971e4c8
--- /dev/null
+++ b/include/XMPPFramework/XMPPResultSet.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0059/XMPPResultSet.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPRoom.h b/include/XMPPFramework/XMPPRoom.h
new file mode 120000
index 0000000000..df6b7d9ef5
--- /dev/null
+++ b/include/XMPPFramework/XMPPRoom.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0045/XMPPRoom.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPRoomCoreDataStorage.h b/include/XMPPFramework/XMPPRoomCoreDataStorage.h
new file mode 120000
index 0000000000..64b84b6a6c
--- /dev/null
+++ b/include/XMPPFramework/XMPPRoomCoreDataStorage.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0045/CoreDataStorage/XMPPRoomCoreDataStorage.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPRoomHybridStorage.h b/include/XMPPFramework/XMPPRoomHybridStorage.h
new file mode 120000
index 0000000000..eb51465dfc
--- /dev/null
+++ b/include/XMPPFramework/XMPPRoomHybridStorage.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0045/HybridStorage/XMPPRoomHybridStorage.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPRoomHybridStorageProtected.h b/include/XMPPFramework/XMPPRoomHybridStorageProtected.h
new file mode 120000
index 0000000000..dd0aefb360
--- /dev/null
+++ b/include/XMPPFramework/XMPPRoomHybridStorageProtected.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0045/HybridStorage/XMPPRoomHybridStorageProtected.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPRoomLight.h b/include/XMPPFramework/XMPPRoomLight.h
new file mode 120000
index 0000000000..ee4b89039d
--- /dev/null
+++ b/include/XMPPFramework/XMPPRoomLight.h
@@ -0,0 +1 @@
+../../Extensions/XMPPMUCLight/XMPPRoomLight.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPRoomLightCoreDataStorage+XEP_0313.h b/include/XMPPFramework/XMPPRoomLightCoreDataStorage+XEP_0313.h
new file mode 120000
index 0000000000..2d5949fe32
--- /dev/null
+++ b/include/XMPPFramework/XMPPRoomLightCoreDataStorage+XEP_0313.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0313/XMPPRoomLightCoreDataStorage+XEP_0313.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPRoomLightCoreDataStorage.h b/include/XMPPFramework/XMPPRoomLightCoreDataStorage.h
new file mode 120000
index 0000000000..83168f51c9
--- /dev/null
+++ b/include/XMPPFramework/XMPPRoomLightCoreDataStorage.h
@@ -0,0 +1 @@
+../../Extensions/XMPPMUCLight/CoreDataStorage/XMPPRoomLightCoreDataStorage.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPRoomLightCoreDataStorageProtected.h b/include/XMPPFramework/XMPPRoomLightCoreDataStorageProtected.h
new file mode 120000
index 0000000000..34ef22e00d
--- /dev/null
+++ b/include/XMPPFramework/XMPPRoomLightCoreDataStorageProtected.h
@@ -0,0 +1 @@
+../../Extensions/XMPPMUCLight/CoreDataStorage/XMPPRoomLightCoreDataStorageProtected.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPRoomLightMessageCoreDataStorageObject.h b/include/XMPPFramework/XMPPRoomLightMessageCoreDataStorageObject.h
new file mode 120000
index 0000000000..26d34bac0d
--- /dev/null
+++ b/include/XMPPFramework/XMPPRoomLightMessageCoreDataStorageObject.h
@@ -0,0 +1 @@
+../../Extensions/XMPPMUCLight/CoreDataStorage/XMPPRoomLightMessageCoreDataStorageObject.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPRoomMemoryStorage.h b/include/XMPPFramework/XMPPRoomMemoryStorage.h
new file mode 120000
index 0000000000..0452bd4d80
--- /dev/null
+++ b/include/XMPPFramework/XMPPRoomMemoryStorage.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0045/MemoryStorage/XMPPRoomMemoryStorage.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPRoomMessage.h b/include/XMPPFramework/XMPPRoomMessage.h
new file mode 120000
index 0000000000..aa641a2c1f
--- /dev/null
+++ b/include/XMPPFramework/XMPPRoomMessage.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0045/XMPPRoomMessage.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPRoomMessageCoreDataStorageObject.h b/include/XMPPFramework/XMPPRoomMessageCoreDataStorageObject.h
new file mode 120000
index 0000000000..f780b26155
--- /dev/null
+++ b/include/XMPPFramework/XMPPRoomMessageCoreDataStorageObject.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0045/CoreDataStorage/XMPPRoomMessageCoreDataStorageObject.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPRoomMessageHybridCoreDataStorageObject.h b/include/XMPPFramework/XMPPRoomMessageHybridCoreDataStorageObject.h
new file mode 120000
index 0000000000..c499cf7a15
--- /dev/null
+++ b/include/XMPPFramework/XMPPRoomMessageHybridCoreDataStorageObject.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0045/HybridStorage/XMPPRoomMessageHybridCoreDataStorageObject.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPRoomMessageMemoryStorageObject.h b/include/XMPPFramework/XMPPRoomMessageMemoryStorageObject.h
new file mode 120000
index 0000000000..1d83683fb2
--- /dev/null
+++ b/include/XMPPFramework/XMPPRoomMessageMemoryStorageObject.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0045/MemoryStorage/XMPPRoomMessageMemoryStorageObject.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPRoomOccupant.h b/include/XMPPFramework/XMPPRoomOccupant.h
new file mode 120000
index 0000000000..d260f22318
--- /dev/null
+++ b/include/XMPPFramework/XMPPRoomOccupant.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0045/XMPPRoomOccupant.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPRoomOccupantCoreDataStorageObject.h b/include/XMPPFramework/XMPPRoomOccupantCoreDataStorageObject.h
new file mode 120000
index 0000000000..8adbc2a398
--- /dev/null
+++ b/include/XMPPFramework/XMPPRoomOccupantCoreDataStorageObject.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0045/CoreDataStorage/XMPPRoomOccupantCoreDataStorageObject.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPRoomOccupantHybridMemoryStorageObject.h b/include/XMPPFramework/XMPPRoomOccupantHybridMemoryStorageObject.h
new file mode 120000
index 0000000000..de22a417bd
--- /dev/null
+++ b/include/XMPPFramework/XMPPRoomOccupantHybridMemoryStorageObject.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0045/HybridStorage/XMPPRoomOccupantHybridMemoryStorageObject.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPRoomOccupantMemoryStorageObject.h b/include/XMPPFramework/XMPPRoomOccupantMemoryStorageObject.h
new file mode 120000
index 0000000000..c02a97ada6
--- /dev/null
+++ b/include/XMPPFramework/XMPPRoomOccupantMemoryStorageObject.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0045/MemoryStorage/XMPPRoomOccupantMemoryStorageObject.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPRoomPrivate.h b/include/XMPPFramework/XMPPRoomPrivate.h
new file mode 120000
index 0000000000..8f5b89d75b
--- /dev/null
+++ b/include/XMPPFramework/XMPPRoomPrivate.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0045/XMPPRoomPrivate.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPRoster.h b/include/XMPPFramework/XMPPRoster.h
new file mode 120000
index 0000000000..74d4db0fc4
--- /dev/null
+++ b/include/XMPPFramework/XMPPRoster.h
@@ -0,0 +1 @@
+../../Extensions/Roster/XMPPRoster.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPRosterCoreDataStorage.h b/include/XMPPFramework/XMPPRosterCoreDataStorage.h
new file mode 120000
index 0000000000..4a2e43b934
--- /dev/null
+++ b/include/XMPPFramework/XMPPRosterCoreDataStorage.h
@@ -0,0 +1 @@
+../../Extensions/Roster/CoreDataStorage/XMPPRosterCoreDataStorage.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPRosterMemoryStorage.h b/include/XMPPFramework/XMPPRosterMemoryStorage.h
new file mode 120000
index 0000000000..b4dba7b74f
--- /dev/null
+++ b/include/XMPPFramework/XMPPRosterMemoryStorage.h
@@ -0,0 +1 @@
+../../Extensions/Roster/MemoryStorage/XMPPRosterMemoryStorage.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPRosterMemoryStoragePrivate.h b/include/XMPPFramework/XMPPRosterMemoryStoragePrivate.h
new file mode 120000
index 0000000000..b83bf0f2f0
--- /dev/null
+++ b/include/XMPPFramework/XMPPRosterMemoryStoragePrivate.h
@@ -0,0 +1 @@
+../../Extensions/Roster/MemoryStorage/XMPPRosterMemoryStoragePrivate.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPRosterPrivate.h b/include/XMPPFramework/XMPPRosterPrivate.h
new file mode 120000
index 0000000000..182f5808f8
--- /dev/null
+++ b/include/XMPPFramework/XMPPRosterPrivate.h
@@ -0,0 +1 @@
+../../Extensions/Roster/XMPPRosterPrivate.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPSASLAuthentication.h b/include/XMPPFramework/XMPPSASLAuthentication.h
new file mode 120000
index 0000000000..f7d7fe8416
--- /dev/null
+++ b/include/XMPPFramework/XMPPSASLAuthentication.h
@@ -0,0 +1 @@
+../../Authentication/XMPPSASLAuthentication.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPSCRAMSHA1Authentication.h b/include/XMPPFramework/XMPPSCRAMSHA1Authentication.h
new file mode 120000
index 0000000000..9bff699878
--- /dev/null
+++ b/include/XMPPFramework/XMPPSCRAMSHA1Authentication.h
@@ -0,0 +1 @@
+../../Authentication/SCRAM-SHA-1/XMPPSCRAMSHA1Authentication.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPSRVResolver.h b/include/XMPPFramework/XMPPSRVResolver.h
new file mode 120000
index 0000000000..b16722c74e
--- /dev/null
+++ b/include/XMPPFramework/XMPPSRVResolver.h
@@ -0,0 +1 @@
+../../Utilities/XMPPSRVResolver.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPSlot.h b/include/XMPPFramework/XMPPSlot.h
new file mode 120000
index 0000000000..a2e5645a90
--- /dev/null
+++ b/include/XMPPFramework/XMPPSlot.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0363/XMPPSlot.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPSoftwareVersion.h b/include/XMPPFramework/XMPPSoftwareVersion.h
new file mode 120000
index 0000000000..6dfb837166
--- /dev/null
+++ b/include/XMPPFramework/XMPPSoftwareVersion.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0092/XMPPSoftwareVersion.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPStanzaIdModule.h b/include/XMPPFramework/XMPPStanzaIdModule.h
new file mode 120000
index 0000000000..6fb7e29cb3
--- /dev/null
+++ b/include/XMPPFramework/XMPPStanzaIdModule.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0359/XMPPStanzaIdModule.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPStream.h b/include/XMPPFramework/XMPPStream.h
new file mode 120000
index 0000000000..000acf2a6c
--- /dev/null
+++ b/include/XMPPFramework/XMPPStream.h
@@ -0,0 +1 @@
+../../Core/XMPPStream.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPStreamManagement.h b/include/XMPPFramework/XMPPStreamManagement.h
new file mode 120000
index 0000000000..f152ca2f45
--- /dev/null
+++ b/include/XMPPFramework/XMPPStreamManagement.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0198/XMPPStreamManagement.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPStreamManagementMemoryStorage.h b/include/XMPPFramework/XMPPStreamManagementMemoryStorage.h
new file mode 120000
index 0000000000..d9c6c5684f
--- /dev/null
+++ b/include/XMPPFramework/XMPPStreamManagementMemoryStorage.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0198/Memory Storage/XMPPStreamManagementMemoryStorage.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPStreamManagementStanzas.h b/include/XMPPFramework/XMPPStreamManagementStanzas.h
new file mode 120000
index 0000000000..05778028e6
--- /dev/null
+++ b/include/XMPPFramework/XMPPStreamManagementStanzas.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0198/Private/XMPPStreamManagementStanzas.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPStringPrep.h b/include/XMPPFramework/XMPPStringPrep.h
new file mode 120000
index 0000000000..29f4d32018
--- /dev/null
+++ b/include/XMPPFramework/XMPPStringPrep.h
@@ -0,0 +1 @@
+../../Utilities/XMPPStringPrep.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPSystemInputActivityMonitor.h b/include/XMPPFramework/XMPPSystemInputActivityMonitor.h
new file mode 120000
index 0000000000..f205ba2e65
--- /dev/null
+++ b/include/XMPPFramework/XMPPSystemInputActivityMonitor.h
@@ -0,0 +1 @@
+../../Extensions/SystemInputActivityMonitor/XMPPSystemInputActivityMonitor.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPTime.h b/include/XMPPFramework/XMPPTime.h
new file mode 120000
index 0000000000..bb5cfa9e67
--- /dev/null
+++ b/include/XMPPFramework/XMPPTime.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0202/XMPPTime.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPTimer.h b/include/XMPPFramework/XMPPTimer.h
new file mode 120000
index 0000000000..d9705d39ea
--- /dev/null
+++ b/include/XMPPFramework/XMPPTimer.h
@@ -0,0 +1 @@
+../../Utilities/XMPPTimer.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPTransports.h b/include/XMPPFramework/XMPPTransports.h
new file mode 120000
index 0000000000..df0a179d34
--- /dev/null
+++ b/include/XMPPFramework/XMPPTransports.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0100/XMPPTransports.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPURI.h b/include/XMPPFramework/XMPPURI.h
new file mode 120000
index 0000000000..448844ad35
--- /dev/null
+++ b/include/XMPPFramework/XMPPURI.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0147/XMPPURI.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPUser.h b/include/XMPPFramework/XMPPUser.h
new file mode 120000
index 0000000000..7877c99433
--- /dev/null
+++ b/include/XMPPFramework/XMPPUser.h
@@ -0,0 +1 @@
+../../Extensions/Roster/XMPPUser.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPUserCoreDataStorageObject.h b/include/XMPPFramework/XMPPUserCoreDataStorageObject.h
new file mode 120000
index 0000000000..a17dc29c2b
--- /dev/null
+++ b/include/XMPPFramework/XMPPUserCoreDataStorageObject.h
@@ -0,0 +1 @@
+../../Extensions/Roster/CoreDataStorage/XMPPUserCoreDataStorageObject.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPUserMemoryStorageObject.h b/include/XMPPFramework/XMPPUserMemoryStorageObject.h
new file mode 120000
index 0000000000..b3c8ab83ed
--- /dev/null
+++ b/include/XMPPFramework/XMPPUserMemoryStorageObject.h
@@ -0,0 +1 @@
+../../Extensions/Roster/MemoryStorage/XMPPUserMemoryStorageObject.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPXOAuth2Google.h b/include/XMPPFramework/XMPPXOAuth2Google.h
new file mode 120000
index 0000000000..fa54eefa00
--- /dev/null
+++ b/include/XMPPFramework/XMPPXOAuth2Google.h
@@ -0,0 +1 @@
+../../Authentication/X-OAuth2-Google/XMPPXOAuth2Google.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPvCardAvatarCoreDataStorageObject.h b/include/XMPPFramework/XMPPvCardAvatarCoreDataStorageObject.h
new file mode 120000
index 0000000000..3620964a1c
--- /dev/null
+++ b/include/XMPPFramework/XMPPvCardAvatarCoreDataStorageObject.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0054/CoreDataStorage/XMPPvCardAvatarCoreDataStorageObject.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPvCardAvatarModule.h b/include/XMPPFramework/XMPPvCardAvatarModule.h
new file mode 120000
index 0000000000..6aed389aee
--- /dev/null
+++ b/include/XMPPFramework/XMPPvCardAvatarModule.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0153/XMPPvCardAvatarModule.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPvCardCoreDataStorage.h b/include/XMPPFramework/XMPPvCardCoreDataStorage.h
new file mode 120000
index 0000000000..95d428a529
--- /dev/null
+++ b/include/XMPPFramework/XMPPvCardCoreDataStorage.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0054/CoreDataStorage/XMPPvCardCoreDataStorage.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPvCardCoreDataStorageObject.h b/include/XMPPFramework/XMPPvCardCoreDataStorageObject.h
new file mode 120000
index 0000000000..095391e75e
--- /dev/null
+++ b/include/XMPPFramework/XMPPvCardCoreDataStorageObject.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0054/CoreDataStorage/XMPPvCardCoreDataStorageObject.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPvCardTemp.h b/include/XMPPFramework/XMPPvCardTemp.h
new file mode 120000
index 0000000000..196d462d41
--- /dev/null
+++ b/include/XMPPFramework/XMPPvCardTemp.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0054/XMPPvCardTemp.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPvCardTempAdr.h b/include/XMPPFramework/XMPPvCardTempAdr.h
new file mode 120000
index 0000000000..e6ee10d47a
--- /dev/null
+++ b/include/XMPPFramework/XMPPvCardTempAdr.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0054/XMPPvCardTempAdr.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPvCardTempAdrTypes.h b/include/XMPPFramework/XMPPvCardTempAdrTypes.h
new file mode 120000
index 0000000000..b186e2b300
--- /dev/null
+++ b/include/XMPPFramework/XMPPvCardTempAdrTypes.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0054/XMPPvCardTempAdrTypes.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPvCardTempBase.h b/include/XMPPFramework/XMPPvCardTempBase.h
new file mode 120000
index 0000000000..50436ae6fe
--- /dev/null
+++ b/include/XMPPFramework/XMPPvCardTempBase.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0054/XMPPvCardTempBase.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPvCardTempCoreDataStorageObject.h b/include/XMPPFramework/XMPPvCardTempCoreDataStorageObject.h
new file mode 120000
index 0000000000..b6b4f3522a
--- /dev/null
+++ b/include/XMPPFramework/XMPPvCardTempCoreDataStorageObject.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0054/CoreDataStorage/XMPPvCardTempCoreDataStorageObject.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPvCardTempEmail.h b/include/XMPPFramework/XMPPvCardTempEmail.h
new file mode 120000
index 0000000000..9c2a658d18
--- /dev/null
+++ b/include/XMPPFramework/XMPPvCardTempEmail.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0054/XMPPvCardTempEmail.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPvCardTempLabel.h b/include/XMPPFramework/XMPPvCardTempLabel.h
new file mode 120000
index 0000000000..e8617e1d46
--- /dev/null
+++ b/include/XMPPFramework/XMPPvCardTempLabel.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0054/XMPPvCardTempLabel.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPvCardTempModule.h b/include/XMPPFramework/XMPPvCardTempModule.h
new file mode 120000
index 0000000000..62be9814c5
--- /dev/null
+++ b/include/XMPPFramework/XMPPvCardTempModule.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0054/XMPPvCardTempModule.h
\ No newline at end of file
diff --git a/include/XMPPFramework/XMPPvCardTempTel.h b/include/XMPPFramework/XMPPvCardTempTel.h
new file mode 120000
index 0000000000..832d82db11
--- /dev/null
+++ b/include/XMPPFramework/XMPPvCardTempTel.h
@@ -0,0 +1 @@
+../../Extensions/XEP-0054/XMPPvCardTempTel.h
\ No newline at end of file