diff --git a/pages/test/test.vue b/pages/test/test.vue
index e6dcd419ef9015cb0954b3afad2f0957324468f8..1c4825d882b6dc4df8065e2378108f03c3d7924d 100644
--- a/pages/test/test.vue
+++ b/pages/test/test.vue
@@ -20,7 +20,8 @@
-
+
+
@@ -28,7 +29,13 @@
@@ -321,4 +385,4 @@
font-size: 36rpx;
color: #8f8f94;
}
-
\ No newline at end of file
+
diff --git a/uni_modules/uni-installApk/utssdk/app-ios/index.uts b/uni_modules/uni-createRequestPermissionListener/changelog.md
similarity index 100%
rename from uni_modules/uni-installApk/utssdk/app-ios/index.uts
rename to uni_modules/uni-createRequestPermissionListener/changelog.md
diff --git a/uni_modules/uni-createRequestPermissionListener/package.json b/uni_modules/uni-createRequestPermissionListener/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..af920451aabf44fe685aaab8faf11bf6bf9463da
--- /dev/null
+++ b/uni_modules/uni-createRequestPermissionListener/package.json
@@ -0,0 +1,94 @@
+{
+ "id": "uni-createRequestPermissionListener",
+ "displayName": "uni-createRequestPermissionListener",
+ "version": "1.0.0",
+ "description": "uni-createRequestPermissionListener",
+ "keywords": [
+ "uni-createRequestPermissionListener"
+],
+ "repository": "",
+ "engines": {
+ "HBuilderX": "^3.6.8"
+ },
+ "dcloudext": {
+ "type": "uts",
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "",
+ "data": "",
+ "permissions": ""
+ },
+ "npmurl": ""
+ },
+ "uni_modules": {
+ "uni-ext-api": {
+ "uni": {
+ "createRequestPermissionListener": {
+ "name": "createRequestPermissionListener",
+ "app": {
+ "js": true,
+ "kotlin": true,
+ "swift": false
+ }
+ }
+ }
+ },
+ "dependencies": [],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "u",
+ "aliyun": "u",
+ "alipay": "u"
+ },
+ "client": {
+ "Vue": {
+ "vue2": "u",
+ "vue3": "u"
+ },
+ "App": {
+ "app-android": "u",
+ "app-ios": "u"
+ },
+ "H5-mobile": {
+ "Safari": "u",
+ "Android Browser": "u",
+ "微信浏览器(Android)": "u",
+ "QQ浏览器(Android)": "u"
+ },
+ "H5-pc": {
+ "Chrome": "u",
+ "IE": "u",
+ "Edge": "u",
+ "Firefox": "u",
+ "Safari": "u"
+ },
+ "小程序": {
+ "微信": "u",
+ "阿里": "u",
+ "百度": "u",
+ "字节跳动": "u",
+ "QQ": "u",
+ "钉钉": "u",
+ "快手": "u",
+ "飞书": "u",
+ "京东": "u"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/uni_modules/uni-createRequestPermissionListener/readme.md b/uni_modules/uni-createRequestPermissionListener/readme.md
new file mode 100644
index 0000000000000000000000000000000000000000..2cdf10886ea6eaa8edbc7157391b40899a579bbb
--- /dev/null
+++ b/uni_modules/uni-createRequestPermissionListener/readme.md
@@ -0,0 +1,6 @@
+# uni-permissionRequestReason
+### 开发文档
+[UTS 语法](https://uniapp.dcloud.net.cn/tutorial/syntax-uts.html)
+[UTS API插件](https://uniapp.dcloud.net.cn/plugin/uts-plugin.html)
+[UTS 组件插件](https://uniapp.dcloud.net.cn/plugin/uts-component.html)
+[Hello UTS](https://gitcode.net/dcloud/hello-uts)
\ No newline at end of file
diff --git a/uni_modules/uni-createRequestPermissionListener/utssdk/app-android/config.json b/uni_modules/uni-createRequestPermissionListener/utssdk/app-android/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..7ed4299898bcce833a4b7b6de7c4ef4d4ac999da
--- /dev/null
+++ b/uni_modules/uni-createRequestPermissionListener/utssdk/app-android/config.json
@@ -0,0 +1,3 @@
+{
+ "minSdkVersion": "19"
+}
\ No newline at end of file
diff --git a/uni_modules/uni-createRequestPermissionListener/utssdk/app-android/index.uts b/uni_modules/uni-createRequestPermissionListener/utssdk/app-android/index.uts
new file mode 100644
index 0000000000000000000000000000000000000000..1693fd95b7b2456a3b3bd2c3ff74261905eee472
--- /dev/null
+++ b/uni_modules/uni-createRequestPermissionListener/utssdk/app-android/index.uts
@@ -0,0 +1,59 @@
+
+import { RequestPermissionListener, RequestPermissionListenerRequestCallback, RequestPermissionListenerConfirmCallback, RequestPermissionListenerCompleteCallback, CreateRequestPermissionListener } from '../interface.uts';
+
+export const createRequestPermissionListener : CreateRequestPermissionListener = function () : RequestPermissionListener {
+ return new AndroidPermissionRequestManager()
+}
+
+class AndroidPermissionRequestManager implements RequestPermissionListener {
+
+ requestCallback : RequestPermissionListenerRequestCallback | null = null
+ confirmCallback : RequestPermissionListenerConfirmCallback | null = null
+ completeCallback : RequestPermissionListenerCompleteCallback | null = null
+
+ onRequest(callback : RequestPermissionListenerRequestCallback) {
+ if (this.requestCallback == null) {
+ this.requestCallback = callback
+ } else {
+ UTSAndroid.offPermissionRequest(this.requestCallback!)
+ this.requestCallback = callback
+ }
+ UTSAndroid.onPermissionRequest(this.requestCallback!)
+ }
+
+ onConfirm(callback : RequestPermissionListenerConfirmCallback) {
+ if (this.confirmCallback == null) {
+ this.confirmCallback = callback
+ } else {
+ UTSAndroid.offPermissionConfirm(this.confirmCallback!)
+ this.confirmCallback = callback
+ }
+ UTSAndroid.onPermissionConfirm(this.confirmCallback!)
+ }
+
+ onComplete(callback : RequestPermissionListenerCompleteCallback) {
+ if (this.completeCallback == null) {
+ this.completeCallback = callback
+ } else {
+ UTSAndroid.offPermissionComplete(this.completeCallback!)
+ this.completeCallback = callback
+ }
+ UTSAndroid.onPermissionComplete(this.completeCallback!)
+ }
+
+ stop() {
+ if (this.completeCallback != null) {
+ UTSAndroid.offPermissionComplete(this.completeCallback!)
+ this.completeCallback = null
+ }
+ if (this.confirmCallback != null) {
+ UTSAndroid.offPermissionConfirm(this.confirmCallback!)
+ this.confirmCallback = null
+ }
+ if (this.requestCallback != null) {
+ UTSAndroid.offPermissionRequest(this.requestCallback!)
+ this.requestCallback = null
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/uni_modules/uni-createRequestPermissionListener/utssdk/interface.uts b/uni_modules/uni-createRequestPermissionListener/utssdk/interface.uts
new file mode 100644
index 0000000000000000000000000000000000000000..b288c53adcc98f83a40e6575d63f18c201105ff0
--- /dev/null
+++ b/uni_modules/uni-createRequestPermissionListener/utssdk/interface.uts
@@ -0,0 +1,44 @@
+export type RequestPermissionListenerRequestCallback = (permissions : Array) => void
+export type RequestPermissionListenerConfirmCallback = (permissions : Array) => void
+export type RequestPermissionListenerCompleteCallback = (permissions : Array) => void
+
+export interface RequestPermissionListener {
+ /**
+ * 监听申请系统权限
+ * @param {RequestPermissionListenerRequestCallback} callback 申请系统权限回调,permissions为触发权限申请的所有权限
+ */
+ onRequest(callback : RequestPermissionListenerRequestCallback) : void
+ /**
+ * 监听弹出系统权限授权框
+ * @param {RequestPermissionListenerConfirmCallback} callback 弹出系统权限授权框回调,permissions为触发弹出权限授权框的所有权限
+ */
+ onConfirm(callback : RequestPermissionListenerConfirmCallback) : void
+ /**
+ * 监听权限申请完成
+ * @param {RequestPermissionListenerCompleteCallback} callback 权限申请完成回调,permissions为申请完成的所有权限
+ */
+ onComplete(callback : RequestPermissionListenerCompleteCallback) : void
+ /**
+ * 取消所有监听
+ */
+ stop() : void
+}
+
+export type CreateRequestPermissionListener = () => RequestPermissionListener
+
+export interface Uni {
+ /**
+ * 创建一个监听权限申请的对象。
+ * @description 创建一个监听权限申请的对象。
+ * @uniPlatform {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "4.0+",
+ * "unixVer": "4.0+"
+ * }
+ * }
+ * }
+ */
+ createRequestPermissionListener : CreateRequestPermissionListener
+}
\ No newline at end of file
diff --git a/uni_modules/uni-createWebviewContext/changelog.md b/uni_modules/uni-createWebviewContext/changelog.md
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/uni_modules/uni-createWebviewContext/package.json b/uni_modules/uni-createWebviewContext/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..f54b50851695526aa7a84aaec330870d5724b1d2
--- /dev/null
+++ b/uni_modules/uni-createWebviewContext/package.json
@@ -0,0 +1,95 @@
+{
+ "id": "uni-createWebviewContext",
+ "displayName": "uni-createWebviewContext",
+ "version": "1.0.0",
+ "description": "uni-createWebviewContext",
+ "keywords": [
+ "uni-createWebviewContext"
+],
+ "repository": "",
+ "engines": {
+ "HBuilderX": "^3.6.8"
+ },
+ "dcloudext": {
+ "type": "uts",
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "",
+ "data": "",
+ "permissions": ""
+ },
+ "npmurl": ""
+ },
+ "uni_modules": {
+ "uni-ext-api": {
+ "uni": {
+ "createWebviewContext": {
+ "name": "createWebviewContext",
+ "app": {
+ "js": false,
+ "kotlin": true,
+ "swift": false
+ }
+ }
+ }
+ },
+ "dependencies": [
+ "uni-framework"
+ ],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "u",
+ "aliyun": "u"
+ },
+ "client": {
+ "Vue": {
+ "vue2": "u",
+ "vue3": "u"
+ },
+ "App": {
+ "app-android": "u",
+ "app-ios": "u"
+ },
+ "H5-mobile": {
+ "Safari": "u",
+ "Android Browser": "u",
+ "微信浏览器(Android)": "u",
+ "QQ浏览器(Android)": "u"
+ },
+ "H5-pc": {
+ "Chrome": "u",
+ "IE": "u",
+ "Edge": "u",
+ "Firefox": "u",
+ "Safari": "u"
+ },
+ "小程序": {
+ "微信": "u",
+ "阿里": "u",
+ "百度": "u",
+ "字节跳动": "u",
+ "QQ": "u",
+ "钉钉": "u",
+ "快手": "u",
+ "飞书": "u",
+ "京东": "u"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/uni_modules/uni-createWebviewContext/readme.md b/uni_modules/uni-createWebviewContext/readme.md
new file mode 100644
index 0000000000000000000000000000000000000000..7170c88fc840cdd8637849c167ecaa5ec51d9936
--- /dev/null
+++ b/uni_modules/uni-createWebviewContext/readme.md
@@ -0,0 +1,6 @@
+# uni-createWebviewContext
+### 开发文档
+[UTS 语法](https://uniapp.dcloud.net.cn/tutorial/syntax-uts.html)
+[UTS API插件](https://uniapp.dcloud.net.cn/plugin/uts-plugin.html)
+[UTS 组件插件](https://uniapp.dcloud.net.cn/plugin/uts-component.html)
+[Hello UTS](https://gitcode.net/dcloud/hello-uts)
\ No newline at end of file
diff --git a/uni_modules/uni-createWebviewContext/utssdk/app-android/index.uts b/uni_modules/uni-createWebviewContext/utssdk/app-android/index.uts
new file mode 100644
index 0000000000000000000000000000000000000000..56e03cd3a7fdd9b0622da8762140afb5073d78f3
--- /dev/null
+++ b/uni_modules/uni-createWebviewContext/utssdk/app-android/index.uts
@@ -0,0 +1,45 @@
+import { ComponentPublicInstance } from 'vue';
+import { CreateWebviewContext, WebviewContext } from '../interface.uts';
+
+export const createWebviewContext : CreateWebviewContext = function (webviewId : string.WebviewIdString, component ?: ComponentPublicInstance | null) : WebviewContext | null {
+ let webviewElement : UniElement | null = null;
+ if (component == null) {
+ const pages = getCurrentPages();
+ if (pages.length > 0) {
+ webviewElement = pages[pages.length - 1].$el?.parentNode?.querySelector('#' + webviewId);
+ }
+ } else {
+ webviewElement = component.$el?.parentNode?.querySelector('#' + webviewId);
+ }
+ if (webviewElement == null) return null;
+ return new WebviewContextImpl(webviewElement as UniWebViewElement);
+}
+
+class WebviewContextImpl implements WebviewContext {
+
+ private webviewElement : UniWebViewElement | null = null;
+
+ constructor(webviewElement : UniWebViewElement) {
+ this.webviewElement = webviewElement;
+ }
+
+ override back() {
+ this.webviewElement?.back();
+ }
+
+ override forward() {
+ this.webviewElement?.forward();
+ }
+
+ override reload() {
+ this.webviewElement?.reload();
+ }
+
+ override stop() {
+ this.webviewElement?.stop();
+ }
+
+ override evalJS(js : string) {
+ this.webviewElement?.evalJS(js);
+ }
+}
\ No newline at end of file
diff --git a/uni_modules/uni-createWebviewContext/utssdk/app-ios/index.uts b/uni_modules/uni-createWebviewContext/utssdk/app-ios/index.uts
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/uni_modules/uni-createWebviewContext/utssdk/interface.uts b/uni_modules/uni-createWebviewContext/utssdk/interface.uts
new file mode 100644
index 0000000000000000000000000000000000000000..ddd6f3447a7ac7b4d3be25eee88b71dca621d4c9
--- /dev/null
+++ b/uni_modules/uni-createWebviewContext/utssdk/interface.uts
@@ -0,0 +1,102 @@
+import { ComponentPublicInstance } from 'vue';
+
+export type CreateWebviewContext = (webviewId : string.WebviewIdString, component ?: ComponentPublicInstance | null) => WebviewContext | null;
+
+export interface WebviewContext {
+ /**
+ * @description 后退到 web-view 组件网页加载历史的上一页,如果不存在上一页则没有任何效果。
+ * @uniPlatform {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "x",
+ * "unixVer": "3.9.0"
+ * }
+ * }
+ * }
+ * @uniVueVersion 2,3
+ */
+ back() : void
+
+ /**
+ * @description 前进到 web-view 组件网页加载历史的下一页,如果不存在下一页则没有任何效果。
+ * @uniPlatform {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "x",
+ * "unixVer": "3.9.0"
+ * }
+ * }
+ * }
+ * @uniVueVersion 2,3
+ */
+ forward() : void
+
+ /**
+ * @description 重新加载 web-view 组件当前页面。
+ * @uniPlatform {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "x",
+ * "unixVer": "3.9.0"
+ * }
+ * }
+ * }
+ * @uniVueVersion 2,3
+ */
+ reload() : void
+
+ /**
+ * @description 停止加载 web-view 组件当前网页,该方法不能阻止已经加载的 html 文档,但是能够阻止未完成的图片及延迟加载的资源。
+ * @uniPlatform {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "x",
+ * "unixVer": "3.9.0"
+ * }
+ * }
+ * }
+ * @uniVueVersion 2,3
+ */
+ stop() : void
+
+ /**
+ * @description 在网页中执行指定的js脚本,在 uvue 页面中可通过此方法向 web-view 组件加载的页面发送数据
+ * @uniPlatform {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "x",
+ * "unixVer": "3.9.0"
+ * }
+ * }
+ * }
+ * @uniVueVersion 2,3
+ */
+ evalJS(js : string) : void
+}
+
+export interface Uni {
+ /**
+ * @description 创建 web-view 组件的上下文对象,用于操作 web-view 的行为。
+ * @uniPlatform {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "x",
+ * "unixVer": "3.9.0"
+ * }
+ * },
+ * "web": {
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * }
+ * }
+ * @uniVueVersion 2,3
+ * @return {WebviewContext} web-view组件上下文对象
+ */
+ createWebviewContext : CreateWebviewContext
+}
\ No newline at end of file
diff --git a/uni_modules/uni-exit/utssdk/app-android/PandoraEntry.uts b/uni_modules/uni-exit/utssdk/app-android/PandoraEntry.uts
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/uni_modules/uni-exit/utssdk/app-android/index@test.uts b/uni_modules/uni-exit/utssdk/app-android/index@test.uts
new file mode 100644
index 0000000000000000000000000000000000000000..17563b9e4ce434a58322e880f8b8f3d9ab5caae1
--- /dev/null
+++ b/uni_modules/uni-exit/utssdk/app-android/index@test.uts
@@ -0,0 +1,18 @@
+import { ExitOptions, ExitSuccess, Exit } from "../interface.uts"
+import { ExitFailImpl } from "../unierror.uts"
+
+
+/**
+ * 实现uni.exit
+ */
+export const exit : Exit = function (options: ExitOptions | null) {
+ let ret : ExitSuccess ={
+ errMsg: "exit:ok"
+ }
+ let err = new ExitFailImpl(12001);
+ options?.fail?.(err)
+ options?.success?.(ret)
+ options?.complete?.(ret)
+ // UTSAndroid.exit()
+}
+
diff --git a/uni_modules/uni-exit/utssdk/interface.uts b/uni_modules/uni-exit/utssdk/interface.uts
index 923b4ff3c45108b089c29ab768e1ac288f3e2226..aae2adc5b3ded0e2c7b1dfb4af8214ffdf03abb2 100644
--- a/uni_modules/uni-exit/utssdk/interface.uts
+++ b/uni_modules/uni-exit/utssdk/interface.uts
@@ -59,7 +59,7 @@ export interface Uni {
* @uniPlatform {
* "app": {
* "android": {
- * "osVer": "4.4.4",
+ * "osVer": "5.0",
* "uniVer": "3.8.15",
* "unixVer": "3.9.0"
* },
@@ -68,7 +68,11 @@ export interface Uni {
* "uniVer": "x",
* "unixVer": "x"
* }
- * }
+ * },
+ * "web": {
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * }
* }
* @uniVueVersion 2,3 //支持的vue版本
*/
diff --git a/uni_modules/uni-exit/utssdk/unierror.uts b/uni_modules/uni-exit/utssdk/unierror.uts
index 9b74feb0dce8a92485b9279bfd5c1e542d18d218..039fbe41ce7947cbba9b77963d7bb9b6dc9fe1d1 100644
--- a/uni_modules/uni-exit/utssdk/unierror.uts
+++ b/uni_modules/uni-exit/utssdk/unierror.uts
@@ -3,14 +3,14 @@ import { ExitErrorCode, IExitError } from "./interface.uts"
/**
* 错误主题
*/
-export const UniErrorSubject = 'uni-exit';
+export const ExitUniErrorSubject = 'uni-exit';
/**
* 错误码
* @UniError
*/
-export const UniErrors:Map = new Map([
+export const ExitUniErrors:Map = new Map([
/**
* 系统不支持
*/
@@ -25,13 +25,15 @@ export const UniErrors:Map = new Map([
* ExitFail的实现
*/
export class ExitFailImpl extends UniError implements IExitError {
+// #ifdef APP-ANDROID
override errCode: ExitErrorCode
+// #endif
constructor (
errCode: ExitErrorCode
) {
super()
- this.errSubject = UniErrorSubject
+ this.errSubject = ExitUniErrorSubject
this.errCode = errCode
- this.errMsg = UniErrors[errCode] ?? "";
+ this.errMsg = ExitUniErrors[errCode] ?? ''
}
}
diff --git a/uni_modules/uni-fileSystemManager/changelog.md b/uni_modules/uni-fileSystemManager/changelog.md
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/uni_modules/uni-fileSystemManager/package.json b/uni_modules/uni-fileSystemManager/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..e07d7c43708e3e6d062b115b1e235180c261476c
--- /dev/null
+++ b/uni_modules/uni-fileSystemManager/package.json
@@ -0,0 +1,93 @@
+{
+ "id": "uni-file-manager",
+ "displayName": "uni-file-manager",
+ "version": "1.0.0",
+ "description": "uni-file-manager",
+ "keywords": [
+ "uni-file-manager"
+],
+ "repository": "",
+ "engines": {
+ "HBuilderX": "^3.6.8"
+ },
+ "dcloudext": {
+ "type": "uts",
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "",
+ "data": "",
+ "permissions": ""
+ },
+ "npmurl": ""
+ },
+ "uni_modules": {
+ "dependencies": [],
+ "uni-ext-api": {
+ "uni": {
+ "getFileSystemManager": {
+ "name": "getFileSystemManager",
+ "app": {
+ "js": true,
+ "kotlin": true,
+ "swift": true
+ }
+ }
+ }
+ },
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "u",
+ "aliyun": "u"
+ },
+ "client": {
+ "Vue": {
+ "vue2": "u",
+ "vue3": "u"
+ },
+ "App": {
+ "app-android": "u",
+ "app-ios": "u"
+ },
+ "H5-mobile": {
+ "Safari": "u",
+ "Android Browser": "u",
+ "微信浏览器(Android)": "u",
+ "QQ浏览器(Android)": "u"
+ },
+ "H5-pc": {
+ "Chrome": "u",
+ "IE": "u",
+ "Edge": "u",
+ "Firefox": "u",
+ "Safari": "u"
+ },
+ "小程序": {
+ "微信": "u",
+ "阿里": "u",
+ "百度": "u",
+ "字节跳动": "u",
+ "QQ": "u",
+ "钉钉": "u",
+ "快手": "u",
+ "飞书": "u",
+ "京东": "u"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/uni_modules/uni-fileSystemManager/readme.md b/uni_modules/uni-fileSystemManager/readme.md
new file mode 100644
index 0000000000000000000000000000000000000000..3ac3d6f34497145abef4822e1f457ff6c068e74f
--- /dev/null
+++ b/uni_modules/uni-fileSystemManager/readme.md
@@ -0,0 +1,6 @@
+# uni-file-manager
+### 开发文档
+[UTS 语法](https://uniapp.dcloud.net.cn/tutorial/syntax-uts.html)
+[UTS API插件](https://uniapp.dcloud.net.cn/plugin/uts-plugin.html)
+[UTS 组件插件](https://uniapp.dcloud.net.cn/plugin/uts-component.html)
+[Hello UTS](https://gitcode.net/dcloud/hello-uts)
\ No newline at end of file
diff --git a/uni_modules/uni-fileSystemManager/utssdk/app-android/index.uts b/uni_modules/uni-fileSystemManager/utssdk/app-android/index.uts
new file mode 100644
index 0000000000000000000000000000000000000000..4e82b11fa74130d3a0dc2fd5f15ae225679de952
--- /dev/null
+++ b/uni_modules/uni-fileSystemManager/utssdk/app-android/index.uts
@@ -0,0 +1,1319 @@
+import { WriteFileOptions,ReadFileOptions, MkDirOptions,RmDirOptions,UnLinkOptions,ReadDirOptions,AccessOptions,RenameOptions,GetFileInfoOptions,CopyFileOptions,StatOptions } from "../interface.uts"
+import { ReadFileSuccessResult, FileManagerSuccessResult,ReadDirSuccessResult,AccessSuccessResult,GetFileInfoSuccessResult,StatSuccessResult,FileStats,Stats } from "../interface.uts"
+import { GetFileSystemManager,FileSystemManager} from "../interface.uts"
+import { UniErrorSubject, UniErrors } from "../unierror.uts"
+
+import File from "java.io.File"
+import Base64 from "android.util.Base64"
+import MessageDigest from 'java.security.MessageDigest';
+import FileInputStream from 'java.io.FileInputStream';
+import Charsets from "kotlin.text.Charsets"
+
+
+class AndroidFileSystemManager implements FileSystemManager{
+
+ public stat(options: StatOptions){
+ let currentDispatcher = UTSAndroid.getDispatcher()
+ UTSAndroid.getDispatcher('io').async(function(_){
+
+ currentDispatcher.async(function(_){
+
+ let filePath = UTSAndroid.convert2AbsFullPath(options.path)
+
+ let isSandyBox = isSandyBoxPath(filePath,true)
+ if (!isSandyBox) {
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300013, UniErrors.get(1300013)! + ":" + options.path);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+
+ let targetFile = new File(filePath)
+
+ if (!targetFile.exists()) {
+ /**
+ * 文件不存在
+ */
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300002, UniErrors.get(1300002)! + ":" + options.path);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+
+ if (options.recursive == true && targetFile.isDirectory()) {
+ // 如果当前是目录,并且设置 则需要遍历所有子目录
+ let res:Array = []
+ /**
+ * 与文件不同的是,需要迭代下属的文件
+ */
+ targetFile.walk()
+ .onEnter(function(file:File):boolean{
+ if(file.isDirectory()){
+ return true
+ }
+ return false
+ })
+ .iterator()
+ .forEach(function(file:File){
+ let mode = 0
+ let filesize = 0;
+
+ let perStats = wrapStats(file)
+ let perFileStats = new FileStats(file.getPath(),perStats)
+ res.add(perFileStats)
+ })
+
+
+ let success = new StatSuccessResult("stat:ok",res)
+ options.success?.(success)
+ options.complete?.(success)
+
+
+ }else{
+ // 默认是false,只读取当前一个文件
+ let mode = 0
+ let filesize = 0;
+
+ let rootStats = new wrapStats(targetFile)
+ let rootFileStats = new FileStats(targetFile.getPath(),rootStats)
+
+ let res:Array = [rootFileStats]
+ let success = new StatSuccessResult("stat:ok",res)
+ options.success?.(success)
+ options.complete?.(success)
+ }
+
+
+ })
+ },null)
+ }
+
+ public getFileInfo(options: GetFileInfoOptions){
+
+ let currentDispatcher = UTSAndroid.getDispatcher()
+ UTSAndroid.getDispatcher('io').async(function(_){
+
+ let filePath = UTSAndroid.convert2AbsFullPath(options.filePath)
+
+ let isSandyBox = isSandyBoxPath(filePath,true)
+ if (!isSandyBox) {
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300013, UniErrors.get(1300013)! + ":" + options.filePath);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+
+ let targetFile = new File(filePath)
+
+ if (!targetFile.exists()) {
+ /**
+ * 文件不存在
+ */
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300002, UniErrors.get(1300002)! + ":" + options.filePath);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+
+ if (targetFile.isDirectory()) {
+ /**
+ * 文件是个目录
+ */
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300021, UniErrors.get(1300021)! + ":" + options.filePath);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+
+ if(options.digestAlgorithm == null){
+ options.digestAlgorithm = "md5"
+ }
+ if (options.digestAlgorithm!.toLowerCase() != 'md5' && options.digestAlgorithm!.toLowerCase() != 'sha1') {
+ /**
+ * invalid digestAlgorithm
+ */
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300022, UniErrors.get(1300022)! + ":invalid digestAlgorithm " + options.digestAlgorithm);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+
+
+ let md5Digest = MessageDigest.getInstance(options.digestAlgorithm!)
+
+ let fileLen = targetFile.length()
+ // 使用缓冲区读取文件内容
+ let buffer = new ByteArray(8192)
+ let fis = new FileInputStream(targetFile)
+
+ let len = 0
+ while (len != -1) {
+ len = fis.read(buffer)
+ if(len != -1){
+ md5Digest.update(buffer, 0, len.toInt())
+ }
+ }
+ fis.close();
+ let digestByte = md5Digest.digest();
+ // byte to string
+ let strHexString = new StringBuffer();
+ // byte buffer
+ for (let i = 0; i < digestByte.size; i++) {
+ // 取0xff部分
+ let hex = Integer.toHexString(0xff & digestByte[i.toInt()].toInt());
+ if (hex.length == 1) {
+ strHexString.append('0');
+ }
+ strHexString.append(hex);
+ }
+ // 得到返回結果
+ let sign = strHexString.toString();
+
+ currentDispatcher.async(function(_){
+ let success = new GetFileInfoSuccessResult(sign,fileLen,"getFileInfo:ok")
+ options.success?.(success)
+ options.complete?.(success)
+ })
+ },null)
+
+ }
+
+
+ public copyFileSync(srcPath:string,destPath:string):number{
+
+ let filePath = UTSAndroid.convert2AbsFullPath(srcPath)
+ let isSandyBox = isSandyBoxPath(filePath,true)
+ if (!isSandyBox) {
+ return 1300013
+ }
+ let targetFile = new File(filePath)
+ if (!targetFile.exists()) {
+ /**
+ * 文件不存在
+ */
+ return 1300002
+ }
+ let newFilePath = UTSAndroid.convert2AbsFullPath(destPath)
+ isSandyBox = isSandyBoxPath(newFilePath,false)
+ if (!isSandyBox) {
+ return 1300013
+ }
+ let newFile = new File(newFilePath)
+ if (newFile.getParentFile() == null || !newFile.getParentFile()!.exists()) {
+ /**
+ * 父文件不存在
+ */
+ return 1300002
+ }
+ let copyRetFile = targetFile.copyTo(newFile,true)
+
+ if (!copyRetFile.exists()) {
+ // 调用系统api 失败
+ return 1300201
+ }
+ return 0
+ }
+
+
+ public copyFile(options: CopyFileOptions){
+
+ let currentDispatcher = UTSAndroid.getDispatcher()
+ UTSAndroid.getDispatcher('io').async(function(_){
+
+ // 检查来源文件
+ let filePath = UTSAndroid.convert2AbsFullPath(options.srcPath)
+
+ if(filePath.startsWith("/android_asset/")){
+ // 用户访问的是asset 路径,此时不是释放模式
+
+ let exceptionInfo:Exception|null = null
+ let byteArray = new ByteArray(0)
+ try {
+ let assetName = filePath.substring("/android_asset/".length)
+ let assetStream = UTSAndroid.getAppContext()!.getResources().getAssets().open(assetName);
+ let byteLen = assetStream.available();
+ byteArray = new ByteArray(byteLen)
+ assetStream.read(byteArray);
+ } catch (e:Exception) {
+ exceptionInfo = e
+ }
+
+ if(exceptionInfo != null){
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300201, UniErrors.get(1300201)! + ":" + exceptionInfo.message);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+
+
+ // 检查目标文件
+ let newFilePath = UTSAndroid.convert2AbsFullPath(options.destPath)
+ console.log("newFilePath",newFilePath)
+ let isSandyBox = isSandyBoxPath(newFilePath,false)
+ if (!isSandyBox) {
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300013, UniErrors.get(1300013)! + ":" + options.destPath);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+ let newFile = new File(newFilePath)
+ if (newFile.getParentFile()!=null && !newFile.getParentFile()!.exists()) {
+ /**
+ * 父文件不存在
+ */
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300002, UniErrors.get(1300002)! +":" + options.destPath);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+ newFile.writeBytes(byteArray)
+ if (!newFile.exists()) {
+ // 调用系统api 失败
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300201, UniErrors.get(1300201)!);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+
+ currentDispatcher.async(function(_){
+ let success = new FileManagerSuccessResult("copyFile:ok")
+ options.success?.(success)
+ options.complete?.(success)
+ })
+
+ }else{
+ let isSandyBox = isSandyBoxPath(filePath,true)
+ if (!isSandyBox) {
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300013, UniErrors.get(1300013)! + ":" + options.srcPath);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+ let targetFile = new File(filePath)
+ if (!targetFile.exists()) {
+ /**
+ * 文件不存在
+ */
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300002, UniErrors.get(1300002)! + ":" + options.srcPath);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+ // 检查目标文件
+ let newFilePath = UTSAndroid.convert2AbsFullPath(options.destPath)
+ isSandyBox = isSandyBoxPath(newFilePath,false)
+ if (!isSandyBox) {
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300013, UniErrors.get(1300013)! + ":" + options.destPath);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+ let newFile = new File(newFilePath)
+ if (newFile.getParentFile()!=null && !newFile.getParentFile()!.exists()) {
+ /**
+ * 父文件不存在
+ */
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300002, UniErrors.get(1300002)! +":" + options.destPath);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+
+ let copyRetFile = targetFile.copyTo(newFile,true)
+ if (!copyRetFile.exists()) {
+ // 调用系统api 失败
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300201, UniErrors.get(1300201)!);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+
+ currentDispatcher.async(function(_){
+ let success = new FileManagerSuccessResult("copyFile:ok")
+ options.success?.(success)
+ options.complete?.(success)
+ })
+ }
+
+ },null)
+
+ }
+
+
+ public renameSync(oldPath:string,newPath:string):number{
+
+ let filePath = UTSAndroid.convert2AbsFullPath(oldPath)
+ let isSandyBox = isSandyBoxPath(filePath,false)
+ if (!isSandyBox) {
+ return 1300013
+ }
+
+ let targetFile = new File(filePath)
+ if (!targetFile.exists()) {
+ /**
+ * 文件不存在
+ */
+ return 1300002
+ }
+ let newFilePath = UTSAndroid.convert2AbsFullPath(newPath)
+ isSandyBox = isSandyBoxPath(newFilePath,false)
+ if (!isSandyBox) {
+ return 1300013
+ }
+ let newFile = new File(newFilePath)
+ if (newFile.getParentFile() == null || !newFile.getParentFile()!.exists()) {
+ /**
+ * 父文件不存在
+ */
+ return 1300002
+ }
+ let renameRet = targetFile.renameTo(newFile)
+ if (!renameRet) {
+ // 调用系统api 失败
+ return 1300201
+ }
+ return 0
+ }
+
+ public rename(options: RenameOptions){
+
+ let currentDispatcher = UTSAndroid.getDispatcher()
+ UTSAndroid.getDispatcher('io').async(function(_){
+
+ let filePath = UTSAndroid.convert2AbsFullPath(options.oldPath)
+ let isSandyBox = isSandyBoxPath(filePath,false)
+ if (!isSandyBox) {
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300013, UniErrors.get(1300013)! +":" + options.oldPath);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+
+ let targetFile = new File(filePath)
+ if (!targetFile.exists()) {
+ /**
+ * 文件不存在
+ */
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300002, UniErrors.get(1300002)! +":" + options.oldPath);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+ let newFilePath = UTSAndroid.convert2AbsFullPath(options.newPath)
+ isSandyBox = isSandyBoxPath(newFilePath,false)
+ if (!isSandyBox) {
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300013, UniErrors.get(1300013)! +":" + options.newPath);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+ let newFile = new File(newFilePath)
+
+ if (newFile.getParentFile() == null || !newFile.getParentFile()!.exists()) {
+ /**
+ * 父文件不存在
+ */
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300002, UniErrors.get(1300002)! +":" + options.newPath);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+
+
+ let renameRet = targetFile.renameTo(newFile)
+ if (!renameRet) {
+ // 调用系统api 失败
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300201, UniErrors.get(1300201)!);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+
+ currentDispatcher.async(function(_){
+ let success = new FileManagerSuccessResult("rename:ok")
+ options.success?.(success)
+ options.complete?.(success)
+ })
+ },null)
+
+ }
+
+ public accessSync(path: string):number{
+
+ let filePath = UTSAndroid.convert2AbsFullPath(path)
+ let targetFile = new File(filePath)
+
+ let isSandyBox = isSandyBoxPath(filePath,true)
+ if (!isSandyBox) {
+ return 1300013
+ }
+
+ if (!targetFile.exists()) {
+ /**
+ * 文件不存在,或者不是文件夹,异常
+ */
+ return 1300002
+ }
+ return 0
+ }
+
+ public access(options: AccessOptions){
+
+ let currentDispatcher = UTSAndroid.getDispatcher()
+ UTSAndroid.getDispatcher('io').async(function(_){
+
+ let filePath = UTSAndroid.convert2AbsFullPath(options.path)
+ let targetFile = new File(filePath)
+
+ let isSandyBox = isSandyBoxPath(filePath,true)
+ if (!isSandyBox) {
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300013, UniErrors.get(1300013)! +":" + options.path);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+
+ if (!targetFile.exists()) {
+ /**
+ * 文件不存在,或者不是文件夹,异常
+ */
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300002, UniErrors.get(1300002)! +":" + options.path);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+
+ currentDispatcher.async(function(_){
+ // 成功
+ let success = new FileManagerSuccessResult("access:ok")
+ options.success?.(success)
+ options.complete?.(success)
+ })
+ },null)
+
+
+
+ }
+
+ readdirSync(dirPath: string): string[]|null{
+
+ let filePath = UTSAndroid.convert2AbsFullPath(dirPath)
+ let isSandyBox = isSandyBoxPath(filePath,true)
+ if (!isSandyBox) {
+ return null
+ }
+
+ let targetFile = new File(filePath)
+ if (!targetFile.exists() || !targetFile.isDirectory()) {
+ /**
+ * 文件不存在,或者不是文件夹,异常
+ */
+ return null
+ }
+ return UTSArray.fromNative(targetFile.list()!)
+ }
+
+ public readdir(options: ReadDirOptions){
+
+ let currentDispatcher = UTSAndroid.getDispatcher()
+ UTSAndroid.getDispatcher('io').async(function(_){
+ let filePath = UTSAndroid.convert2AbsFullPath(options.dirPath)
+ let isSandyBox = isSandyBoxPath(filePath,true)
+ if (!isSandyBox) {
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300013, UniErrors.get(1300013)! +":" + options.dirPath);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+
+ let targetFile = new File(filePath)
+ if (!targetFile.exists() || !targetFile.isDirectory()) {
+ /**
+ * 文件不存在,或者不是文件夹,异常
+ */
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300002, UniErrors.get(1300002)! +":" + options.dirPath);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+
+ let success = new ReadDirSuccessResult(UTSArray.fromNative(targetFile.list()))
+ currentDispatcher.async(function(_){
+ options.success?.(success)
+ options.complete?.(success)
+ })
+ },null)
+
+
+ }
+
+ public rmdirSync(dirPath: string,recursive:boolean): number {
+
+ /**
+ * 遗留问题,无法知道是否属于沙盒路径
+ */
+ let filePath = UTSAndroid.convert2AbsFullPath(dirPath)
+ let targetFile = new File(filePath)
+
+ let isSandyBox = isSandyBoxPath(filePath,false)
+ if (!isSandyBox) {
+ return 1300013
+ }
+
+
+ if (!targetFile.exists()) {
+ /**
+ * 文件不存在
+ */
+ return 1300002
+ }
+ if(!recursive){
+ // 没有设置递归,则需要检查是否保存子目录
+ if(targetFile.list().size > 0){
+ // 存在子目录
+ return 1300066
+ }
+ }else{
+ // 递归删除文件夹下全部内容,如果全部都是文件夹,则可以递归删除,否则返回错误
+ let hasFileFlag = false
+ targetFile.walk()
+ .onEnter(function(file:File):boolean{
+ if(file.isDirectory()){
+ return true
+ }
+ return false
+ })
+ .iterator()
+ .forEach(function(file:File){
+ if(file.isFile()){
+ hasFileFlag = true
+ }
+ })
+ if(hasFileFlag){
+ return 1300066
+ }
+ let delRet = targetFile.deleteRecursively()
+ if (!delRet) {
+ // 调用系统api 失败
+ return 1300201
+ }
+ }
+
+ return 0
+ }
+
+ public mkdirSync(dirPath: string,recursive:boolean): number {
+
+ /**
+ * 遗留问题,无法知道是否属于沙盒路径
+ */
+ let filePath = UTSAndroid.convert2AbsFullPath(dirPath)
+ let targetFile = new File(filePath)
+
+ let isSandyBox = isSandyBoxPath(filePath,false)
+ if (!isSandyBox) {
+ return 1300013
+ }
+
+ if (!targetFile.exists()) {
+ /**
+ * 文件不存在
+ */
+ return 1300002
+ }
+ if(!recursive){
+ // 没有设置递归,则需要检查是否保存子目录
+ let childList = targetFile.list()
+ if(childList != null && childList.size > 0){
+ // 存在子目录
+ return 1300066
+ }
+ }else{
+ // 递归删除文件夹下全部内容,如果全部都是文件夹,则可以递归删除,否则返回错误
+ let hasFileFlag = false
+ targetFile.walk()
+ .onEnter(function(file:File):boolean{
+ if(file.isDirectory()){
+ return true
+ }
+ return false
+ })
+ .iterator()
+ .forEach(function(file:File){
+ if(file.isFile()){
+ hasFileFlag = true
+ }
+ })
+ if(hasFileFlag){
+ // 存在不是目录的文件
+ return 1300066
+ }
+ let delRet = targetFile.deleteRecursively()
+ if (!delRet) {
+ // 调用系统api 失败
+ return 1300201
+ }
+ }
+ return 0
+ }
+
+ public rmdir(options : RmDirOptions) {
+
+ let filePath = UTSAndroid.convert2AbsFullPath(options.dirPath)
+ let targetFile = new File(filePath)
+
+ let currentDispatcher = UTSAndroid.getDispatcher()
+ UTSAndroid.getDispatcher('io').async(function(_){
+
+ let isSandyBox = isSandyBoxPath(filePath,false)
+ if (!isSandyBox) {
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300013, UniErrors.get(1300013)! +":" + options.dirPath);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+
+ if (!targetFile.exists() || !targetFile.isDirectory()) {
+ /**
+ * 文件不存在 或者 文件是不是文件夹
+ */
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300002, UniErrors.get(1300002)! +":" + options.dirPath);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+
+
+ if(!options.recursive){
+ // 没有设置递归,则需要检查是否保存子目录
+ let childList = targetFile.list()
+ if(childList != null && childList.size > 0){
+ // 存在子目录
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300066, UniErrors.get(1300066)! +":" + options.dirPath);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+
+ return
+ }
+ }else{
+ // 递归删除文件夹下全部内容,如果全部都是文件夹,则可以递归删除,否则返回错误
+ let hasFileFlag = false
+ targetFile.walk()
+ .onEnter(function(file:File):boolean{
+ if(file.isDirectory()){
+ return true
+ }
+ return false
+ })
+ .iterator()
+ .forEach(function(file:File){
+ if(file.isFile()){
+ hasFileFlag = true
+ }
+ })
+ if(hasFileFlag){
+ // 存在不是目录的文件
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300066, UniErrors.get(1300066)! +":" + options.dirPath);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+ let delRet = targetFile.deleteRecursively()
+ if (!delRet) {
+ // 调用系统api 失败
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300201, UniErrors.get(1300201)! +":" + options.dirPath);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+ }
+
+ let success = new FileManagerSuccessResult("rmdir:ok")
+ // 删除成功
+ currentDispatcher.async(function(_){
+ options.success?.(success)
+ options.complete?.(success)
+ })
+ },null)
+
+
+
+ }
+
+ public mkdir(options : MkDirOptions) {
+
+ let currentDispatcher = UTSAndroid.getDispatcher()
+ UTSAndroid.getDispatcher('io').async(function(_){
+
+ if(options.dirPath.isEmpty()){
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300066, UniErrors.get(1300066)!);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+
+ let filePath = UTSAndroid.convert2AbsFullPath(options.dirPath)
+ let isSandyBox = isSandyBoxPath(filePath,false)
+ if (!isSandyBox) {
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300013, UniErrors.get(1300013)! +":" + options.dirPath);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+
+ let targetFile = new File(filePath)
+ if (targetFile.exists()) {
+ /**
+ * 文件已经存在,则无法继续创建
+ */
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1301005, UniErrors.get(1301005)! +":" + options.dirPath);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+
+ if(!options.recursive){
+ // 没有设置递归创建
+ if(targetFile.getParentFile() == null || !targetFile.getParentFile()!.exists()){
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300002, UniErrors.get(1300002)! +":" + options.dirPath);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }else{
+ // 父文件夹存在,则继续创建
+ let mkRet = targetFile.mkdir()
+ if (!mkRet) {
+ // 调用系统api 失败
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300201, UniErrors.get(1300201)! +":" + options.dirPath);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+
+ return
+ }
+ }
+ }else{
+ // 设置了递归
+ let mkRet = targetFile.mkdirs()
+ if (!mkRet) {
+ // 调用系统api 失败
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300201, UniErrors.get(1300201)! +":" + options.dirPath);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+ }
+
+
+ currentDispatcher.async(function(_){
+ let success = new FileManagerSuccessResult("mkdir:ok")
+ // 删除成功
+ options.success?.(success)
+ options.complete?.(success)
+ })
+ },null)
+
+
+
+ }
+
+ unlinkSync(filePath: string): number {
+
+
+ let nextFilePath = UTSAndroid.convert2AbsFullPath(filePath)
+
+ let isSandyBox = isSandyBoxPath(nextFilePath,false)
+ if (!isSandyBox) {
+ return 1300013
+ }
+
+ let targetFile = new File(nextFilePath)
+ if (!targetFile.exists()) {
+ return 1300002
+ }
+ // 文件存在,则进行删除操作
+ let delRet = targetFile.delete()
+ if (!delRet) {
+ // 调用系统api 删除失败
+ return 1300201
+ }
+ return 0
+ }
+
+ public unlink(options : UnLinkOptions) {
+
+ /**
+ * 遗留问题,无法知道是否属于沙盒路径
+ */
+ let filePath = UTSAndroid.convert2AbsFullPath(options.filePath)
+
+
+ let currentDispatcher = UTSAndroid.getDispatcher()
+ UTSAndroid.getDispatcher('io').async(function(_){
+
+ let isSandyBox = isSandyBoxPath(filePath,false)
+ if (!isSandyBox) {
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300013, UniErrors.get(1300013)! + ":" +options.filePath);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+
+ let targetFile = new File(filePath)
+ if (!targetFile.exists()) {
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300002, UniErrors.get(1300002)! +":" + options.filePath);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+
+ // 文件存在,则进行删除操作
+ let delRet = targetFile.delete()
+ if (!delRet) {
+ // 调用系统api 删除失败
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300201, UniErrors.get(1300201)! +":" + options.filePath);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+
+ currentDispatcher.async(function(_){
+ let success = new FileManagerSuccessResult("unlink:ok")
+ // 删除成功
+ options.success?.(success)
+ options.complete?.(success)
+ })
+ },null)
+
+
+
+ }
+
+ public readFileSync(filePath: string,encoding:string): string|null{
+ // 判断type 是否合法
+ if(encoding.toLowerCase() != 'base64' && encoding.toLowerCase() != 'utf-8'){
+ return null
+ }
+ let nextFilePath = UTSAndroid.convert2AbsFullPath(filePath)
+ let isSandyBox = isSandyBoxPath(nextFilePath,true)
+ if (!isSandyBox) {
+ return null
+ }
+
+ let targetFile = new File(nextFilePath)
+ if (!targetFile.exists()) {
+ return null
+ }
+
+ if (targetFile.isDirectory()) {
+ return null
+ }
+
+ /**
+ * 文件超过100M,会超过应用内存
+ */
+ if (targetFile.length() > 100 * 1024 * 1024) {
+ return null
+ }
+
+ if(encoding == 'base64'){
+ // base64
+ let byteArray = targetFile.readBytes()
+ let base64Content = Base64.encodeToString(byteArray,Base64.NO_WRAP)
+ return base64Content
+ }else{
+ // text
+ let text = targetFile.readText()
+ return text
+ }
+
+
+ }
+
+ public readFile(options : ReadFileOptions) {
+
+ // 判断type 是否合法
+ if(options.encoding == null){
+ options.encoding = "utf-8"
+ }
+ if(options.encoding.toLowerCase() != 'base64' && options.encoding.toLowerCase() != 'utf-8' && options.encoding.toLowerCase() != 'ascii'){
+ let err = new UniError(UniErrorSubject, 1200002, UniErrors.get(1200002)!);
+ options.fail?.(err)
+ options.complete?.(err)
+ return
+ }
+
+
+
+ let currentDispatcher = UTSAndroid.getDispatcher()
+ /**
+ * 执行真正的加载行为,为了避免阻塞分发到 io任务序列
+ */
+ UTSAndroid.getDispatcher('io').async(function(_){
+
+ let filePath = UTSAndroid.convert2AbsFullPath(options.filePath)
+
+ if(filePath.startsWith("/android_asset/")){
+ // 用户访问的是asset 路径,此时不是释放模式
+
+ let exceptionInfo:Exception|null = null
+ let byteArray = new ByteArray(0)
+ try {
+ let assetName = filePath.substring("/android_asset/".length)
+ let assetStream = UTSAndroid.getAppContext()!.getResources().getAssets().open(assetName);
+ let byteLen = assetStream.available();
+ byteArray = new ByteArray(byteLen)
+ assetStream.read(byteArray);
+ } catch (e:Exception) {
+ exceptionInfo = e
+ }
+
+ if(exceptionInfo != null){
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300201, UniErrors.get(1300201)! + ":" + exceptionInfo.message);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+
+ let ret : ReadFileSuccessResult = {
+ data : ""
+ }
+
+ if(options.encoding.toLowerCase() == 'base64'){
+ // base64
+ let base64Content = Base64.encodeToString(byteArray,Base64.NO_WRAP)
+ ret.data = base64Content
+
+ }else if(options.encoding.toLowerCase() == "ascii"){
+ // ascii
+
+ let text = new String(byteArray,Charsets.US_ASCII)
+ ret.data = text
+ }
+ else{
+ // utf-8 兜底
+ let text = new String(byteArray,Charsets.UTF_8)
+ ret.data = text
+ }
+
+ currentDispatcher.async(function(_){
+ options.success?.(ret)
+ options.complete?.(ret)
+ })
+
+ }else{
+
+ let isSandyBox = isSandyBoxPath(filePath,true)
+ if (!isSandyBox) {
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300013, UniErrors.get(1300013)! +":" + options.filePath);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+
+ let targetFile = new File(filePath)
+ if (!targetFile.exists()) {
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject, 1300002, UniErrors.get(1300002)! +":" + options.filePath);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+
+ if (targetFile.isDirectory()) {
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject,1301003,UniErrors.get(1301003)!);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+
+ /**
+ * 文件超过100M,会超过应用内存
+ */
+ if (targetFile.length() > 100 * 1024 * 1024) {
+ currentDispatcher.async(function(_){
+ let err = new UniError(UniErrorSubject,1300202,UniErrors.get(1300202)!);
+ options.fail?.(err)
+ options.complete?.(err)
+ })
+ return
+ }
+
+ let ret : ReadFileSuccessResult = {
+ data : ""
+ }
+
+ if(options.encoding.toLowerCase() == 'base64'){
+ // base64
+ let byteArray = targetFile.readBytes()
+ let base64Content = Base64.encodeToString(byteArray,Base64.NO_WRAP)
+ ret.data = base64Content
+
+ }else if(options.encoding.toLowerCase() == "ascii"){
+ // ascii
+ let text = targetFile.readText(Charsets.US_ASCII)
+ ret.data = text
+ }
+ else{
+ // utf-8 兜底
+ let text = targetFile.readText(Charsets.UTF_8)
+ ret.data = text
+ }
+
+ currentDispatcher.async(function(_){
+ options.success?.(ret)
+ options.complete?.(ret)
+ })
+ }
+
+
+ },null)
+
+ }
+
+ public writeFileSync(filePath: string,data:string): number{
+ // 判断type 是否合法
+ let nextFilePath = UTSAndroid.convert2AbsFullPath(filePath)
+
+ let isSandyBox = isSandyBoxPath(nextFilePath,false)
+ if (!isSandyBox) {
+ return 1300013
+ }
+
+ let nextFile = new File(nextFilePath)
+
+ if(nextFile.exists() && nextFile.isDirectory()){
+ // 出错了,目标文件已存在,并且是个目录
+ return 1301003
+ }
+
+ /**
+ * 如果上一级目录不存在,创建之
+ */
+ if(!nextFile.parentFile!.exists()){
+ nextFile.parentFile!.mkdirs()
+ }
+
+ if(!nextFile.exists()){
+ nextFile.createNewFile()
+ }
+ // 写入文本,暂时只支持覆盖写入
+ nextFile.writeText(data)
+
+ return 0
+
+ }
+
+ public writeFile(options : WriteFileOptions) {
+
+ if(options.encoding == null){
+ options.encoding = "utf-8"
+ }
+ if(options.encoding.toLowerCase() != 'base64' && options.encoding.toLowerCase() != 'utf-8' && options.encoding.toLowerCase() != 'ascii'){
+ let err = new UniError(UniErrorSubject, 1200002, UniErrors.get(1200002)!);
+ options.fail?.(err)
+ options.complete?.(err)
+ return
+ }
+
+ // 判断type 是否合法
+ let filePath = UTSAndroid.convert2AbsFullPath(options.filePath)
+
+ let isSandyBox = isSandyBoxPath(filePath,false)
+ if (!isSandyBox) {
+ let err = new UniError(UniErrorSubject, 1300013, UniErrors.get(1300013)! +":" + options.filePath);
+ options.fail?.(err)
+ options.complete?.(err)
+ return
+ }
+
+ let nextFile = new File(filePath)
+
+ if(nextFile.exists() && nextFile.isDirectory()){
+ // 出错了,目标文件已存在,并且是个目录
+ let err = new UniError(UniErrorSubject,1301003,UniErrors.get(1301003)!);
+ options.fail?.(err)
+ options.complete?.(err)
+ return
+ }
+
+
+ let currentDispatcher = UTSAndroid.getDispatcher()
+ UTSAndroid.getDispatcher('io').async(function(_){
+
+ /**
+ * 如果上一级目录不存在,创建之
+ */
+ if(!nextFile.parentFile!.exists()){
+ nextFile.parentFile!.mkdirs()
+ }
+
+ if(!nextFile.exists()){
+ nextFile.createNewFile()
+ }
+ // 写入文本,根据不同的编码内容写入不同的数据
+ if(options.encoding.toLowerCase() == 'ascii'){
+ // 与微信保持一致,以UTF-16 BE首字节为ascii
+ let charArray = options.data.toCharArray()
+ let charNum = charArray.size
+ let byteArray = ByteArray(charNum)
+ let index = 0;
+ for(;index < charNum;index++){
+ let perByte = charArray[index.toInt()].toChar().toByte()
+ byteArray.set(index.toInt(),perByte)
+ }
+ nextFile.writeBytes(byteArray)
+ }else if(options.encoding.toLowerCase() == 'base64'){
+ // base64
+ nextFile.writeBytes(Base64.decode(options.data,Base64.NO_WRAP))
+ }else{
+ // utf-8 兜底
+ nextFile.writeText(options.data,Charsets.UTF_8)
+ }
+
+
+ let ret = FileManagerSuccessResult("writeFile:ok")
+ currentDispatcher.async(function(_){
+ options.success?.(ret)
+ options.complete?.(ret)
+ })
+ },null)
+ }
+}
+
+export const getFileSystemManager:GetFileSystemManager = function ():FileSystemManager {
+ return new AndroidFileSystemManager()
+};
+
+/**
+ * 判断传入的路径是否是沙盒路径,如果不是则不能继续操作
+ */
+function isSandyBoxPath(inputPath:string,onlyRead:boolean):boolean{
+ /**
+ * 第一条规则,判断是否操作的是应用资源目录。开发者具备该目录下读取的权限操作
+ */
+ let appResRoot = UTSAndroid.convert2AbsFullPath(uni.env.APP_RESOURCE_PATH)
+ if(inputPath.startsWith(appResRoot)){
+ // 路径是应用资源目录
+ if(onlyRead){
+ // 并且是读取操作,返回
+ return true
+ }else{
+ // 不是读取
+ return false
+ }
+ }
+ /**
+ * 第二条规则,是否属于应用根目录 SANDBOX_PATH
+ */
+ let sandyBoxRoot = UTSAndroid.convert2AbsFullPath(uni.env.SANDBOX_PATH)
+ if(inputPath.startsWith(sandyBoxRoot)){
+ // 是否是应用根目录
+ return true
+ }
+
+ /**
+ * 第三条规则,是否属于应用内置根目录 ANDROID_INTERNAL_SANDBOX_PATH
+ */
+ let innerSandyBoxRoot = UTSAndroid.convert2AbsFullPath(uni.env.ANDROID_INTERNAL_SANDBOX_PATH)
+ if(inputPath.startsWith(innerSandyBoxRoot)){
+ // 是否是应用根目录
+ return true
+ }
+
+
+ return false
+}
+
+
+function wrapStats(sourceFile:File):Stats{
+ let stats = new Stats()
+ stats.mIsFile = sourceFile.isFile()
+ stats.lastModifiedTime = sourceFile.lastModified()
+ if(sourceFile.isFile()){
+ stats.size = sourceFile.length()
+ }
+ return stats
+}
diff --git a/uni_modules/uni-fileSystemManager/utssdk/app-ios/index.uts b/uni_modules/uni-fileSystemManager/utssdk/app-ios/index.uts
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/uni_modules/uni-fileSystemManager/utssdk/interface.uts b/uni_modules/uni-fileSystemManager/utssdk/interface.uts
new file mode 100644
index 0000000000000000000000000000000000000000..54b228feef88e46661804fa9f6e9517af35f3ac4
--- /dev/null
+++ b/uni_modules/uni-fileSystemManager/utssdk/interface.uts
@@ -0,0 +1,423 @@
+
+export type ReadFileSuccessResult = {
+ data: string
+}
+
+
+/**
+ * 通用的正确返回结果
+ */
+export type FileManagerSuccessResult = {
+ errMsg: string,
+}
+/**
+ * 通用的正确返回结果回调
+ */
+export type FileManagerSuccessCallback = (res: FileManagerSuccessResult) => void
+/**
+ * 通用的错误返回结果回调
+ */
+export type FileManagerFailCallback = (res: UniError) => void
+/**
+ * 通用的结束返回结果回调
+ */
+export type FileManagerCompleteCallback = (res: any) => void
+
+
+
+export type ReadFileSuccessCallback = (res: ReadFileSuccessResult) => void
+
+
+
+export type ReadFileOptions = {
+ /**
+ * base64 / utf-8
+ */
+ encoding: "base64" | "utf-8",
+ /**
+ * 文件路径,支持相对地址和绝对地址
+ */
+ filePath: string.URIString,
+ /**
+ * 接口调用的回调函数
+ */
+ success?: ReadFileSuccessCallback | null,
+ /**
+ * 接口调用失败的回调函数
+ */
+ fail?: FileManagerFailCallback | null,
+ /**
+ * 接口调用结束的回调函数(调用成功、失败都会执行)
+ */
+ complete?: FileManagerCompleteCallback | null
+}
+
+
+
+
+
+export type WriteFileOptions = {
+ /**
+ * 文件路径,只支持绝对地址
+ */
+ filePath: string.URIString,
+ /**
+ * 指定写入文件的字符编码
+ * 支持:ascii base64 utf-8
+ */
+ encoding: "ascii" | "base64" | "utf-8",
+ /**
+ * 写入的文本内容
+ */
+ data: string,
+ /**
+ * 接口调用的回调函数
+ */
+ success?: FileManagerSuccessCallback | null,
+ /**
+ * 接口调用失败的回调函数
+ */
+ fail?: FileManagerFailCallback | null,
+ /**
+ * 接口调用结束的回调函数(调用成功、失败都会执行)
+ */
+ complete?: FileManagerCompleteCallback | null
+}
+
+
+
+export type UnLinkSuccessCallback = (res: FileManagerSuccessResult) => void
+
+
+
+export type UnLinkOptions = {
+ /**
+ * 文件路径,只支持绝对地址
+ */
+ filePath: string.URIString,
+ /**
+ * 接口调用的回调函数
+ */
+ success?: UnLinkSuccessCallback | null,
+ /**
+ * 接口调用失败的回调函数
+ */
+ fail?: FileManagerFailCallback | null,
+ /**
+ * 接口调用结束的回调函数(调用成功、失败都会执行)
+ */
+ complete?: FileManagerCompleteCallback | null
+}
+
+export type MkDirSuccessCallback = (res: FileManagerSuccessResult) => void
+
+
+
+
+export type MkDirOptions = {
+ /**
+ * 创建的目录路径 (本地路径)
+ */
+ dirPath: string.URIString,
+ /**
+ *是否在递归创建该目录的上级目录后再创建该目录。如果对应的上级目录已经存在,则不创建该上级目录。如 dirPath 为 a/b/c/d 且 recursive 为 true,将创建 a 目录,再在 a 目录下创建 b 目录,以此类推直至创建 a/b/c 目录下的 d 目录。
+ */
+ recursive: boolean,
+ /**
+ * 接口调用的回调函数
+ */
+ success?: MkDirSuccessCallback | null,
+ /**
+ * 接口调用失败的回调函数
+ */
+ fail?: FileManagerFailCallback | null,
+ /**
+ * 接口调用结束的回调函数(调用成功、失败都会执行)
+ */
+ complete?: FileManagerCompleteCallback | null
+}
+
+
+export type RmDirSuccessCallback = (res: FileManagerSuccessResult) => void
+
+
+
+
+export type RmDirOptions = {
+ /**
+ * 要删除的目录路径 (本地路径)
+ */
+ dirPath: string.URIString,
+ /**
+ *是否递归删除目录。如果为 true,则删除该目录和该目录下的所有子目录以及文件。
+ */
+ recursive: boolean,
+ /**
+ * 接口调用的回调函数
+ */
+ success?: MkDirSuccessCallback | null,
+ /**
+ * 接口调用失败的回调函数
+ */
+ fail?: FileManagerFailCallback | null,
+ /**
+ * 接口调用结束的回调函数(调用成功、失败都会执行)
+ */
+ complete?: FileManagerCompleteCallback | null
+}
+
+
+export type ReadDirSuccessResult = {
+ files: string[],
+}
+
+export type ReadDirSuccessCallback = (res: ReadDirSuccessResult) => void
+
+
+export type ReadDirOptions = {
+ /**
+ * 要读取的目录路径 (本地路径)
+ */
+ dirPath: string.URIString,
+
+ /**
+ * 接口调用的回调函数
+ */
+ success?: ReadDirSuccessCallback | null,
+ /**
+ * 接口调用失败的回调函数
+ */
+ fail?: FileManagerFailCallback | null,
+ /**
+ * 接口调用结束的回调函数(调用成功、失败都会执行)
+ */
+ complete?: FileManagerCompleteCallback | null
+}
+
+
+
+
+export type AccessOptions = {
+ /**
+ * 要删除的目录路径 (本地路径)
+ */
+ path: string.URIString,
+
+ /**
+ * 接口调用的回调函数
+ */
+ success?: FileManagerSuccessCallback | null,
+ /**
+ * 接口调用失败的回调函数
+ */
+ fail?: FileManagerFailCallback | null,
+ /**
+ * 接口调用结束的回调函数(调用成功、失败都会执行)
+ */
+ complete?: FileManagerCompleteCallback | null
+}
+
+export type RenameOptions = {
+ /**
+ * 源文件路径,支持本地路径
+ */
+ oldPath: string.URIString,
+ /**
+ * 新文件路径,支持本地路径
+ */
+ newPath: string.URIString,
+
+ /**
+ * 接口调用的回调函数
+ */
+ success?: FileManagerSuccessCallback | null,
+ /**
+ * 接口调用失败的回调函数
+ */
+ fail?: FileManagerFailCallback | null,
+ /**
+ * 接口调用结束的回调函数(调用成功、失败都会执行)
+ */
+ complete?: FileManagerCompleteCallback | null
+}
+
+export type CopyFileOptions = {
+ /**
+ * 源文件路径,支持本地路径
+ */
+ srcPath: string.URIString,
+ /**
+ * 新文件路径,支持本地路径
+ */
+ destPath: string.URIString,
+
+ /**
+ * 接口调用的回调函数
+ */
+ success?: FileManagerSuccessCallback | null,
+ /**
+ * 接口调用失败的回调函数
+ */
+ fail?: FileManagerFailCallback | null,
+ /**
+ * 接口调用结束的回调函数(调用成功、失败都会执行)
+ */
+ complete?: FileManagerCompleteCallback | null
+}
+
+
+export type GetFileInfoSuccessResult = {
+ digest: string,
+ size:number,
+ errMsg:string
+}
+
+export type GetFileInfoSuccessCallback = (res: GetFileInfoSuccessResult) => void
+
+export type GetFileInfoOptions = {
+ /**
+ * 要读取的文件路径 (本地路径)
+ */
+ filePath: string.URIString,
+ /**
+ * md5 / sha1
+ */
+ digestAlgorithm: "md5" | "sha1" | null,
+ /**
+ * 接口调用的回调函数
+ */
+ success?: GetFileInfoSuccessCallback | null,
+ /**
+ * 接口调用失败的回调函数
+ */
+ fail?: FileManagerFailCallback | null,
+ /**
+ * 接口调用结束的回调函数(调用成功、失败都会执行)
+ */
+ complete?: FileManagerCompleteCallback | null
+}
+
+
+export class Stats implements io.dcloud.uts.log.LogSelf,io.dcloud.uts.json.IJsonStringify{
+ mode: number = 0;
+ size: number = 0;
+ lastAccessedTime: number = 0;
+ lastModifiedTime: number = 0;
+
+ mIsFile:boolean = false
+ constructor(){
+ }
+
+ isDirectory():boolean{
+ return !this.mIsFile
+ }
+
+ isFile():boolean{
+ return this.mIsFile
+ }
+
+ override toLog():any|null{
+ return this.toJSON()
+ }
+ override toJSON():any|null{
+ let jsonRet = new UTSJSONObject()
+ jsonRet.set("mode",this.mode)
+ jsonRet.set("size",this.size)
+ jsonRet.set("lastAccessedTime",this.lastAccessedTime)
+ jsonRet.set("lastModifiedTime",this.lastModifiedTime)
+ return jsonRet
+ }
+}
+
+
+export type FileStats = {
+ path: string,
+ stats:Stats,
+}
+
+export type StatSuccessResult = {
+ errMsg: string,
+ stats:FileStats[]
+}
+
+
+export type StatSuccessCallback = (res: StatSuccessResult) => void
+
+
+export type StatOptions = {
+ /**
+ * 文件/目录路径 (本地路径)
+ */
+ path: string.URIString,
+ /**
+ * 是否递归获取目录下的每个文件的 Stats 信息
+ */
+ recursive: boolean,
+ /**
+ * 接口调用的回调函数
+ */
+ success?: StatSuccessCallback | null,
+ /**
+ * 接口调用失败的回调函数
+ */
+ fail?: FileManagerFailCallback | null,
+ /**
+ * 接口调用结束的回调函数(调用成功、失败都会执行)
+ */
+ complete?: FileManagerCompleteCallback | null
+}
+
+
+export interface FileSystemManager {
+ readFile(options: ReadFileOptions): void;
+ // readFileSync(filePath: string,encoding:string): string|null;
+ writeFile(options: WriteFileOptions): void;
+ // writeFileSync(filePath: string,data:string): number;
+ unlink(options: UnLinkOptions): void;
+ // unlinkSync(filePath: string): number;
+ mkdir(options: MkDirOptions): void;
+ // mkdirSync(dirPath: string,recursive:boolean): number;
+ rmdir(options: RmDirOptions): void;
+ // rmdirSync(dirPath: string,recursive:boolean): number;
+ readdir(options: ReadDirOptions): void;
+ // readdirSync(dirPath: string): string[] | null;
+ access(options: AccessOptions): void;
+ // accessSync(path: string): number;
+ rename(options: RenameOptions): void;
+ // renameSync(oldPath:string,newPath:string): number;
+ copyFile(options: CopyFileOptions): void;
+ // copyFileSync(srcPath:string,destPath:string): number;
+ getFileInfo(options: GetFileInfoOptions): void;
+ //获取文件 Stats 对象
+ stat(options: StatOptions): void;
+}
+
+
+export type GetFileSystemManager = () => FileSystemManager;
+
+
+export interface Uni {
+ /**
+ * 获取文件管理器
+ * @uniPlatform {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "x",
+ * "unixVer": "3.9.0"
+ * },
+ * "ios": {
+ * "osVer": "x",
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * }
+ * },
+ * "web": {
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * }
+ * }
+ * @uniVueVersion 2,3 //支持的vue版本
+ */
+ getFileSystemManager():FileSystemManager
+}
diff --git a/uni_modules/uni-fileSystemManager/utssdk/unierror.uts b/uni_modules/uni-fileSystemManager/utssdk/unierror.uts
new file mode 100644
index 0000000000000000000000000000000000000000..d0d2f1ce9f9cf7a94062b4ba5d347d4206d5a159
--- /dev/null
+++ b/uni_modules/uni-fileSystemManager/utssdk/unierror.uts
@@ -0,0 +1,24 @@
+/**
+ * 错误主题
+ */
+export const UniErrorSubject = 'uni-fileSystemManager';
+
+
+/**
+ * 错误码
+ * @UniError
+ */
+export const UniErrors:Map = new Map([
+
+ [1200002, 'type error. only support base64 / utf-8'],
+ [1300002, 'no such file or directory'],
+ [1300013, 'permission denied'],
+ [1300021, 'Is a directory'],
+ [1300022, 'Invalid argument'],
+ [1300066, 'directory not empty'],
+ [1301003, 'illegal operation on a directory'],
+ [1301005, 'file already exists'],
+ [1300201, 'system error'],
+ [1300202, 'the maximum size of the file storage limit is exceeded'],
+
+]);
diff --git a/uni_modules/uni-getAccessibilityInfo/changelog.md b/uni_modules/uni-getAccessibilityInfo/changelog.md
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/uni_modules/uni-getAccessibilityInfo/package.json b/uni_modules/uni-getAccessibilityInfo/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..a57c6a547c93d13da76dbb30a3c42d2b40c232cc
--- /dev/null
+++ b/uni_modules/uni-getAccessibilityInfo/package.json
@@ -0,0 +1,93 @@
+{
+ "id": "uni-getAccessibilityInfo",
+ "displayName": "uni-getAccessibilityInfo",
+ "version": "1.0.0",
+ "description": "uni-getAccessibilityInfo",
+ "keywords": [
+ "uni-getAccessibilityInfo"
+],
+ "repository": "",
+ "engines": {
+ "HBuilderX": "^3.6.8"
+ },
+ "dcloudext": {
+ "type": "uts",
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "",
+ "data": "",
+ "permissions": ""
+ },
+ "npmurl": ""
+ },
+ "uni_modules": {
+ "dependencies": [],
+ "uni-ext-api": {
+ "uni": {
+ "getAccessibilityInfo": {
+ "name": "getAccessibilityInfo",
+ "app": {
+ "js": false,
+ "kotlin": true,
+ "swift": true
+ }
+ }
+ }
+ },
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "u",
+ "aliyun": "u"
+ },
+ "client": {
+ "Vue": {
+ "vue2": "u",
+ "vue3": "u"
+ },
+ "App": {
+ "app-android": "u",
+ "app-ios": "u"
+ },
+ "H5-mobile": {
+ "Safari": "u",
+ "Android Browser": "u",
+ "微信浏览器(Android)": "u",
+ "QQ浏览器(Android)": "u"
+ },
+ "H5-pc": {
+ "Chrome": "u",
+ "IE": "u",
+ "Edge": "u",
+ "Firefox": "u",
+ "Safari": "u"
+ },
+ "小程序": {
+ "微信": "u",
+ "阿里": "u",
+ "百度": "u",
+ "字节跳动": "u",
+ "QQ": "u",
+ "钉钉": "u",
+ "快手": "u",
+ "飞书": "u",
+ "京东": "u"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/uni_modules/uni-getAccessibilityInfo/readme.md b/uni_modules/uni-getAccessibilityInfo/readme.md
new file mode 100644
index 0000000000000000000000000000000000000000..37b665909ef32c4ac09b525dd06d30079222ca19
--- /dev/null
+++ b/uni_modules/uni-getAccessibilityInfo/readme.md
@@ -0,0 +1,5 @@
+# uni-getAccessibilityInfo
+### 开发文档
+[UTS 语法](https://uniapp.dcloud.net.cn/tutorial/syntax-uts.html)
+[UTS 原生插件](https://uniapp.dcloud.net.cn/plugin/uts-plugin.html)
+[Hello UTS](https://gitcode.net/dcloud/hello-uts/-/tree/dev)
\ No newline at end of file
diff --git a/uni_modules/uni-getAccessibilityInfo/utssdk/app-android/index.uts b/uni_modules/uni-getAccessibilityInfo/utssdk/app-android/index.uts
new file mode 100644
index 0000000000000000000000000000000000000000..e2ec202737f7b678c8cacf1fe2daca94f18cc308
--- /dev/null
+++ b/uni_modules/uni-getAccessibilityInfo/utssdk/app-android/index.uts
@@ -0,0 +1,53 @@
+import Context from 'android.content.Context';
+import AccessibilityManager from 'android.view.accessibility.AccessibilityManager';
+import TextUtils from 'android.text.TextUtils';
+import Settings from 'android.provider.Settings';
+import ArrayList from 'java.util.ArrayList';
+import AccessibilityServiceInfo from 'android.accessibilityservice.AccessibilityServiceInfo';
+
+import { GetAccessibilityInfo } from '../interface.uts'
+
+
+export const getAccessibilityInfo: GetAccessibilityInfo = (): UTSJSONObject => {
+ let activity = UTSAndroid.getUniActivity();
+ let service = activity!!.getSystemService(Context.ACCESSIBILITY_SERVICE) as AccessibilityManager
+ let serviceList = service.getInstalledAccessibilityServiceList();
+ let services = new Array()
+ for (let i:Int = 0; i < serviceList.size as Int; i++) {
+ if (isAccessibilitySettingsOn(activity!, serviceList.get(i).id)) {
+ const tmp = serviceList.get(i) as AccessibilityServiceInfo;
+ let info = {
+ id: tmp.getId(),
+ packageNames: tmp.packageNames
+ }
+ services.add(info);
+ }
+ }
+
+
+ let result = {
+ enabled: service.isEnabled(),
+ services: services
+ };
+
+ return result;
+}
+
+function isAccessibilitySettingsOn(context: Context, service: string): boolean {
+ let split: Char = ":".get(0);
+ let mStringColonSplitter = new TextUtils.SimpleStringSplitter(split);
+ let settingValue = Settings.Secure.getString(
+ context.getApplicationContext().getContentResolver(),
+ Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES
+ );
+ if (settingValue != null) {
+ mStringColonSplitter.setString(settingValue);
+ while (mStringColonSplitter.hasNext()) {
+ var accessibilityService = mStringColonSplitter.next() as string;
+ if (accessibilityService == service) {
+ return true;
+ }
+ }
+ }
+ return false;
+}
\ No newline at end of file
diff --git a/uni_modules/uni-getAccessibilityInfo/utssdk/app-ios/index.uts b/uni_modules/uni-getAccessibilityInfo/utssdk/app-ios/index.uts
new file mode 100644
index 0000000000000000000000000000000000000000..8060af75892c70237a347d1965cb92c47490f419
--- /dev/null
+++ b/uni_modules/uni-getAccessibilityInfo/utssdk/app-ios/index.uts
@@ -0,0 +1,6 @@
+
+import { GetAccessibilityInfo } from '../interface.uts'
+
+export const getAccessibilityInfo : GetAccessibilityInfo = () : UTSJSONObject => {
+ return {};
+}
\ No newline at end of file
diff --git a/uni_modules/uni-getAccessibilityInfo/utssdk/interface.uts b/uni_modules/uni-getAccessibilityInfo/utssdk/interface.uts
new file mode 100644
index 0000000000000000000000000000000000000000..f71690fa7bbc7b5a1d97a2f63212cbc1658bfbb9
--- /dev/null
+++ b/uni_modules/uni-getAccessibilityInfo/utssdk/interface.uts
@@ -0,0 +1,32 @@
+
+
+export type GetAccessibilityInfo = () => UTSJSONObject;
+
+export interface Uni {
+ /**
+ * GetAccessibilityInfo()
+ * @description
+ * 获取app基本信息
+ * @return {object}
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "x",
+ * "unixVer": "3.9+"
+ * },
+ * "ios": {
+ * "osVer": "x",
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * }
+ * }
+ * }
+ * @example
+ ```typescript
+ uni.getAccessibilityInfo()
+ ```
+ */
+ getAccessibilityInfo(): UTSJSONObject;
+}
diff --git a/uni_modules/uni-getAppAuthorizeSetting/utssdk/app-android/index.uts b/uni_modules/uni-getAppAuthorizeSetting/utssdk/app-android/index.uts
index 0d246090d4548d1de33fd3452b4a586aeddd8e38..242777b3fd6605cedd6a2a2d792f87a59d7a66cf 100644
--- a/uni_modules/uni-getAppAuthorizeSetting/utssdk/app-android/index.uts
+++ b/uni_modules/uni-getAppAuthorizeSetting/utssdk/app-android/index.uts
@@ -1,5 +1,4 @@
import { GetAppAuthorizeSetting, GetAppAuthorizeSettingResult } from "../interface.uts";
-import UTSAndroid from 'io.dcloud.uts.UTSAndroid';
import PackageManager from 'android.content.pm.PackageManager';
import Manifest from 'android.Manifest';
import NotificationManagerCompat from 'androidx.core.app.NotificationManagerCompat';
diff --git a/uni_modules/uni-getAppAuthorizeSetting/utssdk/app-ios/index.uts b/uni_modules/uni-getAppAuthorizeSetting/utssdk/app-ios/index.uts
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..c725441608cb6d7100056bfacf5a336beec79289 100644
--- a/uni_modules/uni-getAppAuthorizeSetting/utssdk/app-ios/index.uts
+++ b/uni_modules/uni-getAppAuthorizeSetting/utssdk/app-ios/index.uts
@@ -0,0 +1,55 @@
+import { GetAppAuthorizeSetting, GetAppAuthorizeSettingResult } from "../interface.uts";
+import { UTSiOS } from "DCloudUTSFoundation";
+export const getAppAuthorizeSetting : GetAppAuthorizeSetting = function () : GetAppAuthorizeSettingResult {
+ let setting : Map = UTSiOS.getAppAuthorizeSetting();
+
+ let result : GetAppAuthorizeSettingResult = {
+ cameraAuthorized: "",
+ locationAuthorized: "",
+ locationAccuracy: null,
+ microphoneAuthorized: "",
+ notificationAuthorized: "",
+ albumAuthorized: "",
+ bluetoothAuthorized: "",
+ locationReducedAccuracy: false,
+ notificationAlertAuthorized: null,
+ notificationBadgeAuthorized: null,
+ notificationSoundAuthorized: null,
+ phoneCalendarAuthorized: null
+ }
+ if (setting.has("cameraAuthorized")) {
+ result.cameraAuthorized = setting.get("cameraAuthorized") as string;
+ }
+ if (setting.has("locationAuthorized")) {
+ result.locationAuthorized = setting.get("locationAuthorized") as string;
+ }
+ if (setting.has("locationAccuracy")) {
+ result.locationAccuracy = setting.get("locationAccuracy") as string;
+ }
+ if (setting.has("microphoneAuthorized")) {
+ result.microphoneAuthorized = setting.get("microphoneAuthorized") as string;
+ }
+ if (setting.has("notificationAuthorized")) {
+ result.notificationAuthorized = setting.get("notificationAuthorized") as string;
+ }
+ if (setting.has("albumAuthorized")) {
+ result.albumAuthorized = setting.get("albumAuthorized") as string;
+ }
+ if (setting.has("bluetoothAuthorized")) {
+ result.bluetoothAuthorized = setting.get("bluetoothAuthorized") as string;
+ }
+ if (setting.has("locationReducedAccuracy")) {
+ result.locationReducedAccuracy = setting.get("locationReducedAccuracy") as boolean;
+ }
+ if (setting.has("notificationAlertAuthorized")) {
+ result.notificationAlertAuthorized = setting.get("notificationAlertAuthorized") as string;
+ }
+ if (setting.has("notificationBadgeAuthorized")) {
+ result.notificationBadgeAuthorized = setting.get("notificationBadgeAuthorized") as string;
+ }
+ if (setting.has("notificationSoundAuthorized")) {
+ result.notificationSoundAuthorized = setting.get("notificationSoundAuthorized") as string;
+ }
+
+ return result
+}
diff --git a/uni_modules/uni-getAppAuthorizeSetting/utssdk/interface.uts b/uni_modules/uni-getAppAuthorizeSetting/utssdk/interface.uts
index 58d5a42d3b0c1c8f4cfa2ea3b40eb1eb4f96e24c..c50c9325a34a0c52894f6a3e2f9c1882a3cd6310 100644
--- a/uni_modules/uni-getAppAuthorizeSetting/utssdk/interface.uts
+++ b/uni_modules/uni-getAppAuthorizeSetting/utssdk/interface.uts
@@ -6,20 +6,21 @@ export interface Uni {
* @param {void}
* @return {GetAppAuthorizeSettingResult}
* @tutorial http://uniapp.dcloud.io/api/system/getappauthorizesetting
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "4.4",
- * "uniVer": "√",
- * "unixVer": "3.9+"
- * },
- * "ios": {
- * "osVer": "9.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * }
- * }
- * }
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "√",
+ * "unixVer": "3.9+"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * }
+ * }
* @example
```typescript
uni.getAppAuthorizeSetting()
@@ -37,22 +38,23 @@ export type GetAppAuthorizeSettingResult = {
* - denied: 请求授权被拒绝,无法再次请求授权;(此情况需要引导用户打开系统设置,在设置页中打开权限)
* - not determined: 尚未请求授权,会在App下一次调用系统相应权限时请求;(仅 iOS 会出现。此种情况下引导用户打开系统设置,不展示开关)
* @type 'authorized' | 'denied' | 'not determined'
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "x",
- * "uniVer": "x",
- * "unixVer": "x"
- * },
- * "ios": {
- * "osVer": "9.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * }
- * }
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "x",
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * }
* }
*/
- albumAuthorized: string | null,
+ albumAuthorized?: 'authorized' | 'denied' | 'not determined' | null,
/**
* 允许 App 使用蓝牙的开关(仅 iOS 支持)
* - authorized: 已经获得授权,无需再次请求授权
@@ -60,76 +62,78 @@ export type GetAppAuthorizeSettingResult = {
* - not determined: 尚未请求授权,会在App下一次调用系统相应权限时请求;(仅 iOS 会出现。此种情况下引导用户打开系统设置,不展示开关)
* - config error: Android平台没有该值;iOS平台:表示没有在 `manifest.json -> App模块配置` 中配置 `BlueTooth(低功耗蓝牙)` 模块
* @type 'authorized' | 'denied' | 'not determined' | 'config error'
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "x",
- * "uniVer": "x",
- * "unixVer": "x"
- * },
- * "ios": {
- * "osVer": "9.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * }
- * }
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "x",
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * }
* }
*/
- bluetoothAuthorized: string | null,
+ bluetoothAuthorized?: 'authorized' | 'denied' | 'not determined' | 'config error' | null,
/**
* 允许 App 使用摄像头的开关
* - authorized: 已经获得授权,无需再次请求授权
* - denied: 请求授权被拒绝,无法再次请求授权;(此情况需要引导用户打开系统设置,在设置页中打开权限)
* - not determined: 尚未请求授权,会在App下一次调用系统相应权限时请求;(仅 iOS 会出现。此种情况下引导用户打开系统设置,不展示开关)
- * - config error: Android平台:表示没有授予 `android.permission.CAMERA` 权限;iOS平台没有该值
+ * - config error: Android平台:表示没有配置 `android.permission.CAMERA` 权限,[权限配置详情](https://uniapp.dcloud.net.cn/tutorial/app-nativeresource-android.html#permissions);iOS平台没有该值
* @type 'authorized' | 'denied' | 'not determined' | 'config error'
*/
- cameraAuthorized: string,
+ cameraAuthorized: 'authorized' | 'denied' | 'not determined' | 'config error',
/**
* 允许 App 使用定位的开关
* - authorized: 已经获得授权,无需再次请求授权
* - denied: 请求授权被拒绝,无法再次请求授权;(此情况需要引导用户打开系统设置,在设置页中打开权限)
* - not determined: 尚未请求授权,会在App下一次调用系统相应权限时请求;(仅 iOS 会出现。此种情况下引导用户打开系统设置,不展示开关)
- * - config error: Android平台:表示没有授予 `android.permission.ACCESS_COARSE_LOCATION` 权限;iOS平台:表示没有在 `manifest.json -> App模块配置` 中配置 `Geolocation(定位)` 模块
+ * - config error: Android平台:表示没有配置 `android.permission.ACCESS_COARSE_LOCATION` 权限,[权限配置详情](https://uniapp.dcloud.net.cn/tutorial/app-nativeresource-android.html#permissions);iOS平台:表示没有在 `manifest.json -> App模块配置` 中配置 `Geolocation(定位)` 模块
* @type 'authorized' | 'denied' | 'not determined' | 'config error'
*/
- locationAuthorized: string,
+ locationAuthorized: 'authorized' | 'denied' | 'not determined' | 'config error',
/**
- * 定位准确度。true 表示模糊定位,false 表示精确定位
+ * 定位准确度。
* - reduced: 模糊定位
* - full: 精准定位
* - unsupported: 不支持(包括用户拒绝定位权限和没有在 `manifest.json -> App模块配置` 中配置 `Geolocation(定位)` 模块)
* @type 'reduced' | 'full' | 'unsupported'
*/
- locationAccuracy: string | null,
+ locationAccuracy?: 'reduced' | 'full' | 'unsupported' | null,
/**
* 定位准确度(推荐使用 locationAccuracy 属性)。true 表示模糊定位,false 表示精确定位(仅 iOS 支持)
* @type boolean
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "x",
- * "uniVer": "x",
- * "unixVer": "x"
- * },
- * "ios": {
- * "osVer": "9.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * }
- * }
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "x",
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * }
* }
*/
- locationReducedAccuracy: boolean | null,
+ locationReducedAccuracy?: boolean | null,
/**
* 允许 App 使用麦克风的开关
* - authorized: 已经获得授权,无需再次请求授权
* - denied: 请求授权被拒绝,无法再次请求授权;(此情况需要引导用户打开系统设置,在设置页中打开权限)
* - not determined: 尚未请求授权,会在App下一次调用系统相应权限时请求;(仅 iOS 会出现。此种情况下引导用户打开系统设置,不展示开关)
- * - config error: Android平台:表示没有授予 `android.permission.RECORD_AUDIO` 权限;iOS平台没有该值
+ * - config error: Android平台:表示没有配置 `android.permission.RECORD_AUDIO` 权限,[权限配置详情](https://uniapp.dcloud.net.cn/tutorial/app-nativeresource-android.html#permissions);iOS平台没有该值
* @type 'authorized' | 'denied' | 'not determined' | 'config error'
*/
- microphoneAuthorized: string,
+ microphoneAuthorized: 'authorized' | 'denied' | 'not determined' | 'config error',
/**
* 允许 App 通知的开关
* - authorized: 已经获得授权,无需再次请求授权
@@ -138,7 +142,7 @@ export type GetAppAuthorizeSettingResult = {
* - config error: Android平台没有该值;iOS平台:表示没有在 `manifest.json -> App模块配置` 中配置 `Push(推送)` 模块
* @type 'authorized' | 'denied' | 'not determined' | 'config error'
*/
- notificationAuthorized: string,
+ notificationAuthorized: 'authorized' | 'denied' | 'not determined' | 'config error',
/**
* 允许 App 通知带有提醒的开关(仅 iOS 10.0+ 支持)
* - authorized: 已经获得授权,无需再次请求授权
@@ -146,22 +150,23 @@ export type GetAppAuthorizeSettingResult = {
* - not determined: 尚未请求授权,会在App下一次调用系统相应权限时请求;(仅 iOS 会出现。此种情况下引导用户打开系统设置,不展示开关)
* - config error: 没有在 `manifest.json -> App模块配置` 中配置 `Push(推送)` 模块
* @type 'authorized' | 'denied' | 'not determined' | 'config error'
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "x",
- * "uniVer": "x",
- * "unixVer": "x"
- * },
- * "ios": {
- * "osVer": "10.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * }
- * }
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "x",
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * },
+ * "ios": {
+ * "osVer": "10.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * }
* }
*/
- notificationAlertAuthorized: string | null,
+ notificationAlertAuthorized?: 'authorized' | 'denied' | 'not determined' | 'config error' | null,
/**
* 允许 App 通知带有标记的开关(仅 iOS 10.0+ 支持)
* - authorized: 已经获得授权,无需再次请求授权
@@ -169,22 +174,23 @@ export type GetAppAuthorizeSettingResult = {
* - not determined: 尚未请求授权,会在App下一次调用系统相应权限时请求;(仅 iOS 会出现。此种情况下引导用户打开系统设置,不展示开关)
* - config error: 没有在 `manifest.json -> App模块配置` 中配置 `Push(推送)` 模块
* @type 'authorized' | 'denied' | 'not determined' | 'config error'
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "x",
- * "uniVer": "x",
- * "unixVer": "x"
- * },
- * "ios": {
- * "osVer": "10.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * }
- * }
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "x",
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * },
+ * "ios": {
+ * "osVer": "10.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * }
* }
*/
- notificationBadgeAuthorized: string | null,
+ notificationBadgeAuthorized?: 'authorized' | 'denied' | 'not determined' | 'config error' | null,
/**
* 允许 App 通知带有声音的开关(仅 iOS 10.0+ 支持)
* - authorized: 已经获得授权,无需再次请求授权
@@ -192,42 +198,44 @@ export type GetAppAuthorizeSettingResult = {
* - not determined: 尚未请求授权,会在App下一次调用系统相应权限时请求;(仅 iOS 会出现。此种情况下引导用户打开系统设置,不展示开关)
* - config error: 没有在 `manifest.json -> App模块配置` 中配置 `Push(推送)` 模块
* @type 'authorized' | 'denied' | 'not determined' | 'config error'
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "x",
- * "uniVer": "x",
- * "unixVer": "x"
- * },
- * "ios": {
- * "osVer": "10.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * }
- * }
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "x",
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * },
+ * "ios": {
+ * "osVer": "10.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * }
* }
*/
- notificationSoundAuthorized: string | null,
+ notificationSoundAuthorized?: 'authorized' | 'denied' | 'not determined' | 'config error' | null,
/**
* 允许读写日历的开关(仅微信小程序支持)
* - authorized: 已经获得授权,无需再次请求授权
* - denied: 请求授权被拒绝,无法再次请求授权;(此情况需要引导用户打开系统设置,在设置页中打开权限)
* - not determined: 尚未请求授权,会在App下一次调用系统相应权限时请求;(仅 iOS 会出现。此种情况下引导用户打开系统设置,不展示开关)
* @type 'authorized' | 'denied' | 'not determined'
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "x",
- * "uniVer": "x",
- * "unixVer": "x"
- * },
- * "ios": {
- * "osVer": "x",
- * "uniVer": "x",
- * "unixVer": "x"
- * }
- * }
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "x",
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * },
+ * "ios": {
+ * "osVer": "x",
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * }
+ * }
* }
*/
- phoneCalendarAuthorized: string | null
+ phoneCalendarAuthorized?: 'authorized' | 'denied' | 'not determined' | null
};
diff --git a/uni_modules/uni-getAppBaseInfo/utssdk/app-android/device/AppBaseInfoDeviceUtil.uts b/uni_modules/uni-getAppBaseInfo/utssdk/app-android/device/AppBaseInfoDeviceUtil.uts
index 3e54c93d53e0d895195aab1aa3ed9473a8040945..2be557b7ba7bdd68fadc424c95874e44157bf819 100644
--- a/uni_modules/uni-getAppBaseInfo/utssdk/app-android/device/AppBaseInfoDeviceUtil.uts
+++ b/uni_modules/uni-getAppBaseInfo/utssdk/app-android/device/AppBaseInfoDeviceUtil.uts
@@ -1,76 +1,111 @@
-
-import { UTSAndroid as Device} from "io.dcloud.uts";
-import PackageManager from 'android.content.pm.PackageManager';
-import Context from 'android.content.Context';
-import PackageInfo from 'android.content.pm.PackageInfo';
-import UiModeManager from 'android.app.UiModeManager';
+
+import PackageManager from 'android.content.pm.PackageManager';
+import Context from 'android.content.Context';
+import PackageInfo from 'android.content.pm.PackageInfo';
+import UiModeManager from 'android.app.UiModeManager';
import Activity from 'android.app.Activity';
-export class AppBaseInfoDeviceUtil{
-
- public static getAppID(): string {
- return Device.getAppId();
- }
-
- public static getAppName(context: Context): string {
- let packageManager = context.getPackageManager();
- return packageManager.getApplicationLabel(context.getApplicationInfo()).toString()
- }
-
- public static getPackageName(context: Context): string {
- return context.getPackageName();
- }
-
- public static getAppVersionName(): string {
- return Device.getAppVersion()["name"].toString();
- }
-
- public static getAppVersionCode(): string {
- return Device.getAppVersion()["code"].toString();
+import Signature from 'android.content.pm.Signature';
+import Exception from 'java.lang.Exception';
+import MessageDigest from 'java.security.MessageDigest';
+export class AppBaseInfoDeviceUtil {
+
+ public static getAppID() : string {
+ return UTSAndroid.getAppId();
+ }
+
+ public static getAppName(context : Context) : string {
+ let packageManager = context.getPackageManager();
+ return packageManager.getApplicationLabel(context.getApplicationInfo()).toString()
+ }
+
+ public static getPackageName(context : Context) : string {
+ return context.getPackageName();
+ }
+
+ public static getAppVersionName() : string {
+ return UTSAndroid.getAppVersion()["name"].toString();
+ }
+
+ public static getAppVersionCode() : string {
+ return UTSAndroid.getAppVersion()["code"].toString();
+ }
+
+ public static getHostVersion(context : Context) : string {
+ let packageManager = context.getPackageManager();
+ let applicationInfo = packageManager.getPackageInfo(context.getPackageName(), PackageManager.GET_ACTIVITIES);
+ return applicationInfo.versionName;
+ }
+
+ public static getHostCode(context : Context) : string {
+ let packageManager = context.getPackageManager();
+ let applicationInfo = packageManager.getPackageInfo(context.getPackageName(), PackageManager.GET_ACTIVITIES);
+ return applicationInfo.versionCode + "";
+ }
+
+ public static isSystemNightMode(activity : Activity) : boolean {
+ let uiModeManager = activity.getSystemService(Context.UI_MODE_SERVICE) as UiModeManager;
+ return uiModeManager.getNightMode() == UiModeManager.MODE_NIGHT_YES;
+ }
+
+ public static getOsLanguage(context : Context) : string {
+ return UTSAndroid.getLanguageInfo(context)["osLanguage"].toString();
+ }
+
+ public static getOsLanguageNormal(context : Context) : string {
+ const LOCALE_ZH_HANS = 'zh-Hans'
+ const LOCALE_ZH_HANT = 'zh-Hant'
+ let locale = UTSAndroid.getLanguageInfo(context)["appLanguage"].toString();
+ if (locale.indexOf('zh') === 0) {
+ if (locale.indexOf('-hans') > -1) {
+ return LOCALE_ZH_HANS;
+ }
+ if (locale.indexOf('-hant') > -1) {
+ return LOCALE_ZH_HANT;
+ }
+ if (locale.includes("-tw") || locale.includes("-hk") || locale.includes("-mo") || locale.includes("-cht")) {
+ return LOCALE_ZH_HANT;
+ }
+
+ return LOCALE_ZH_HANS;
+ } else {
+ return locale;
+ }
+ }
+
+ public static getAppInnerVersion() : string {
+ return UTSAndroid.getInnerVersion();
+ }
+
+ public static getAppSignatureSHA1(context : Context) : string {
+ try {
+ const packageManager = context.getPackageManager();
+ const info = packageManager.getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES) as PackageInfo;
+ let result = "";
+ info.signatures.forEach((value) => {
+ result = AppBaseInfoDeviceUtil.getSignatureString(value, "SHA1")
+ })
+ return result
+ } catch (e : Exception) {
+ return ""
+ }
}
- public static getHostVersion(context: Context): string {
- let packageManager = context.getPackageManager();
- let applicationInfo = packageManager.getPackageInfo(context.getPackageName(), PackageManager.GET_ACTIVITIES);
- return applicationInfo.versionName;
- }
-
- public static getHostCode(context: Context): string {
- let packageManager = context.getPackageManager();
- let applicationInfo = packageManager.getPackageInfo(context.getPackageName(), PackageManager.GET_ACTIVITIES);
- return applicationInfo.versionCode+"";
- }
-
- public static isSystemNightMode(activity: Activity): boolean {
- let uiModeManager = activity.getSystemService(Context.UI_MODE_SERVICE) as UiModeManager;
- return uiModeManager.getNightMode() == UiModeManager.MODE_NIGHT_YES;
- }
-
- public static getOsLanguage(context: Context): string {
- return Device.getLanguageInfo(context)["osLanguage"].toString();
- }
-
- public static getOsLanguageNormal(context: Context): string {
- const LOCALE_ZH_HANS = 'zh-Hans'
- const LOCALE_ZH_HANT = 'zh-Hant'
- let locale = Device.getLanguageInfo(context)["appLanguage"].toString();
- if (locale.indexOf('zh') === 0) {
- if (locale.indexOf('-hans') > -1) {
- return LOCALE_ZH_HANS;
- }
- if (locale.indexOf('-hant') > -1) {
- return LOCALE_ZH_HANT;
+ private static getSignatureString(sign: Signature, type : string):string {
+ const hexBytes = sign.toByteArray();
+ let fingerPrint = "error!";
+ try{
+ const digest = MessageDigest.getInstance(type);
+ if(digest != null){
+ const digestBytes = digest.digest(hexBytes);
+ const sb = new StringBuffer()
+ digestBytes.forEach((digestByte)=>{
+ sb.append((Integer.toHexString(((digestByte & 0xFF) | 0x100).toInt())).substring(1, 3));
+ })
+ fingerPrint = sb.toString();
}
- if (locale.includes("-tw") || locale.includes("-hk") || locale.includes("-mo") || locale.includes("-cht")) {
- return LOCALE_ZH_HANT;
- }
-
- return LOCALE_ZH_HANS;
- } else {
- return locale;
+
+ }catch(e : Exception){
}
- }
-
- public static getAppInnerVersion(): string {
- return Device.getInnerVersion();
- }
+ return fingerPrint;
+ }
}
\ No newline at end of file
diff --git a/uni_modules/uni-getAppBaseInfo/utssdk/app-android/index.uts b/uni_modules/uni-getAppBaseInfo/utssdk/app-android/index.uts
index ba6ea2cdeb4ecf4e2f40ed3e89ed1c9e27b343a1..8c2a05350a4cad510ab9a00ca07763d2c4acf757 100644
--- a/uni_modules/uni-getAppBaseInfo/utssdk/app-android/index.uts
+++ b/uni_modules/uni-getAppBaseInfo/utssdk/app-android/index.uts
@@ -1,4 +1,3 @@
-import UTSAndroid from 'io.dcloud.uts.UTSAndroid';
import { AppBaseInfoDeviceUtil } from './device/AppBaseInfoDeviceUtil.uts';
import {
@@ -33,10 +32,14 @@ export const getAppBaseInfo : GetAppBaseInfo = (config : GetAppBaseInfoOptions |
"hostTheme",
"isUniAppX",
"uniCompileVersion",
+ "uniCompilerVersion",
"uniPlatform",
"uniRuntimeVersion",
"uniCompileVersionCode",
- "uniRuntimeVersionCode"
+ "uniCompilerVersionCode",
+ "uniRuntimeVersionCode",
+ "packageName",
+ "signature"
];
filter = defaultFilter;
}
@@ -101,6 +104,10 @@ function getBaseInfo(filterArray : Array) : GetAppBaseInfoResult {
if (filterArray.indexOf("uniCompileVersion") != -1) {
result.uniCompileVersion = UTSAndroid.getUniCompileVersion();
}
+ if (filterArray.indexOf("uniCompilerVersion") != -1) {
+ result.uniCompilerVersion = UTSAndroid.getUniCompileVersion();
+ }
+
if (filterArray.indexOf("uniPlatform") != -1) {
result.uniPlatform = "app";
@@ -113,9 +120,20 @@ function getBaseInfo(filterArray : Array) : GetAppBaseInfoResult {
if (filterArray.indexOf("uniCompileVersionCode") != -1) {
result.uniCompileVersionCode = convertVersionCode(UTSAndroid.getUniCompileVersion());
}
+ if (filterArray.indexOf("uniCompilerVersionCode") != -1) {
+ result.uniCompilerVersionCode = convertVersionCode(UTSAndroid.getUniCompileVersion());
+ }
if (filterArray.indexOf("uniRuntimeVersionCode") != -1) {
result.uniRuntimeVersionCode = convertVersionCode(UTSAndroid.getUniRuntimeVersion());
+ }
+
+ if (filterArray.indexOf("packageName") != -1) {
+ result.packageName = AppBaseInfoDeviceUtil.getPackageName(activity);
+ }
+
+ if (filterArray.indexOf("signature") != -1) {
+ result.signature = AppBaseInfoDeviceUtil.getAppSignatureSHA1(activity);
}
return result;
diff --git a/uni_modules/uni-getAppBaseInfo/utssdk/app-ios/device/AppBaseInfoDeviceUtil.uts b/uni_modules/uni-getAppBaseInfo/utssdk/app-ios/device/AppBaseInfoDeviceUtil.uts
index 2ac9ffd4a5b51a5a00c6d9ef1f98f980a3dbd627..5f84c50e1be3f5b6c5057556e038b11ddfdcf5c7 100644
--- a/uni_modules/uni-getAppBaseInfo/utssdk/app-ios/device/AppBaseInfoDeviceUtil.uts
+++ b/uni_modules/uni-getAppBaseInfo/utssdk/app-ios/device/AppBaseInfoDeviceUtil.uts
@@ -1,4 +1,7 @@
import { UTSiOS } from "DCloudUTSFoundation";
+import { Bundle, FileManager } from 'Foundation';
+import { } from 'CommonCrypto';
+import { UnsafeBufferPointer, UnsafeRawBufferPointer } from 'Swift';
export class AppBaseInfoDeviceUtil {
@@ -71,4 +74,50 @@ export class AppBaseInfoDeviceUtil {
return UTSiOS.getInnerVersion();
}
+ public static getBundleId() : string {
+ return Bundle.main.bundleIdentifier!
+ }
+
+ public static getSignature() : string {
+ let bundleId = AppBaseInfoDeviceUtil.getBundleId()
+ const embeddedPath = Bundle.main.path(forResource = "embedded", ofType = "mobileprovision")
+ if (embeddedPath != null) {
+ if (FileManager.default.fileExists(atPath = embeddedPath!)) {
+ const embeddedProvisioning : string | null = UTSiOS.try(new String(contentsOfFile = embeddedPath!, encoding = String.Encoding.ascii), "?")
+ const embeddedProvisioningLines = embeddedProvisioning?.split("\n")
+ let target = ""
+ embeddedProvisioningLines?.forEach((line : string, index : number) => {
+ if (line.indexOf("application-identifier") != -1) {
+ if (index + 1 < embeddedProvisioningLines!.length) {
+ target = embeddedProvisioningLines![index + 1]
+ }
+ }
+ })
+ const leftStr = ""
+ const rightStr = ""
+ if (target != "") {
+ const start = target.indexOf(leftStr) + leftStr.length;
+ const end = target.indexOf(rightStr)
+ const fullIdentifier = target.slice(start, end)
+ const idStart = fullIdentifier.indexOf(".") + 1
+ const id = fullIdentifier.slice(idStart)
+ if(id.length > 0){
+ bundleId = id
+ }
+ }
+ }
+ }
+
+ const strData = bundleId.data(using = String.Encoding.utf8)!
+ let digest = new Array(repeating = 0, count = new Int(CC_MD5_DIGEST_LENGTH))
+ strData.withUnsafeBytes((body : UnsafeRawBufferPointer) => {
+ CC_MD5(body.baseAddress, new UInt32(strData.count), UTSiOS.getPointer(digest))
+ })
+ let md5String = ""
+ digest.forEach((byte : UInt8) => {
+ md5String += new String(format = "%02x", new UInt8(byte))
+ })
+
+ return md5String
+ }
}
\ No newline at end of file
diff --git a/uni_modules/uni-getAppBaseInfo/utssdk/app-ios/index.uts b/uni_modules/uni-getAppBaseInfo/utssdk/app-ios/index.uts
index 5f65682785e7c494d05cdb6446983eefa3b60fa6..42ea624092f653fa629e82db2aa9adf9836a4c6a 100644
--- a/uni_modules/uni-getAppBaseInfo/utssdk/app-ios/index.uts
+++ b/uni_modules/uni-getAppBaseInfo/utssdk/app-ios/index.uts
@@ -27,7 +27,15 @@ export const getAppBaseInfo : GetAppBaseInfo = (config : GetAppBaseInfoOptions |
"hostName",
"hostPackageName",
"hostSDKVersion",
- "hostTheme",
+ "hostTheme",
+ "bundleId",
+ "signature",
+ "isUniAppX",
+ "uniCompilerVersion",
+ "uniPlatform",
+ "uniRuntimeVersion",
+ "uniCompilerVersionCode",
+ "uniRuntimeVersionCode"
];
filter = defaultFilter;
}
@@ -78,7 +86,48 @@ function getBaseInfo(filterArray : Array) : GetAppBaseInfoResult {
}
if (filterArray.indexOf("appWgtVersion") != -1) {
result.appWgtVersion = AppBaseInfoDeviceUtil.getAppWgtVersion();
+ }
+ if (filterArray.indexOf("bundleId") != -1) {
+ result.bundleId = AppBaseInfoDeviceUtil.getBundleId();
+ }
+ if (filterArray.indexOf("signature") != -1) {
+ result.signature = AppBaseInfoDeviceUtil.getSignature();
+ }
+ if (filterArray.indexOf("isUniAppX") != -1) {
+ result.isUniAppX = UTSiOS.isUniAppX();
+ }
+
+ if (filterArray.indexOf("uniCompilerVersion") != -1) {
+ result.uniCompilerVersion = UTSiOS.getCompileVersion();
+ }
+
+ if (filterArray.indexOf("uniPlatform") != -1) {
+ result.uniPlatform = "app";
+ }
+
+ if (filterArray.indexOf("uniRuntimeVersion") != -1) {
+ result.uniRuntimeVersion = UTSiOS.getRuntimeVersion();
+ }
+
+ if (filterArray.indexOf("uniCompilerVersionCode") != -1) {
+ result.uniCompilerVersionCode = AppBaseInfoConvertVersionCode(UTSiOS.getCompileVersion());
+ }
+
+ if (filterArray.indexOf("uniRuntimeVersionCode") != -1) {
+ result.uniRuntimeVersionCode = AppBaseInfoConvertVersionCode(UTSiOS.getRuntimeVersion());
}
return result;
+}
+
+const AppBaseInfoConvertVersionCode = function(version: string): number {
+ if (version.length > 0){
+ const components = version.components(separatedBy= '.')
+ var resultString = ""
+ for (let i = 0; i < components.length; i++) {
+ resultString = (i == 0) ? (resultString + components[i] + '.') : (resultString + components[i])
+ }
+ return parseFloat(resultString)
+ }
+ return 0
}
\ No newline at end of file
diff --git a/uni_modules/uni-getAppBaseInfo/utssdk/interface.uts b/uni_modules/uni-getAppBaseInfo/utssdk/interface.uts
index ee92fecdf3bfc8006e9cae8b201420983006b6ac..6756f2c17c167556d809312f0aac71b1063e314a 100644
--- a/uni_modules/uni-getAppBaseInfo/utssdk/interface.uts
+++ b/uni_modules/uni-getAppBaseInfo/utssdk/interface.uts
@@ -38,133 +38,140 @@ export type GetAppBaseInfoResult = {
/**
* 应用资源(wgt)的版本名称。
*
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "5.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * },
- * "ios": {
- * "osVer": "9.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * }
- * }
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * }
* }
*/
appWgtVersion?: string,
/**
* 小程序宿主语言
*
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "5.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * },
- * "ios": {
- * "osVer": "9.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * }
- * }
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * }
* }
*/
hostLanguage?: string,
/**
* App、小程序宿主版本。
*
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "5.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * },
- * "ios": {
- * "osVer": "9.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * }
- * }
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * }
* }
*/
hostVersion?: string,
/**
* 小程序宿主名称
*
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "5.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * },
- * "ios": {
- * "osVer": "9.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * }
- * }
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * }
* }
*/
hostName?: string,
/**
* 小程序宿主包名
*
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "5.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * },
- * "ios": {
- * "osVer": "9.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * }
- * }
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * }
* }
*/
hostPackageName?: string,
/**
* uni小程序SDK版本、小程序客户端基础库版本
*
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "5.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * },
- * "ios": {
- * "osVer": "9.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * }
- * }
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * }
* }
*/
hostSDKVersion?: string,
/**
* 系统当前主题,取值为light或dark。微信小程序全局配置"darkmode":true时才能获取,否则为 undefined (不支持小游戏)
*
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "5.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * },
- * "ios": {
- * "osVer": "9.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * }
- * }
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * }
* }
*/
hostTheme?: string,
@@ -172,26 +179,131 @@ export type GetAppBaseInfoResult = {
* 是否uni-app x
*/
isUniAppX ?: boolean,
+
/**
* uni 编译器版本
+ * @deprecated 已废弃,仅为了向下兼容保留
*/
uniCompileVersion ?: string,
/**
- * uni-app 运行平台。如:`app`、`mp-weixin`、`web`
+ * uni 编译器版本
+ *
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "x",
+ * "unixVer": "4.0"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * }
+ * }
+ * }
+ */
+ uniCompilerVersion ?: string,
+ /**
+ * uni-app 运行平台。
*/
- uniPlatform ?: string,
+ uniPlatform ?: 'app' | 'web' | 'mp-weixin' | 'mp-alipay' | 'mp-baidu' | 'mp-toutiao' | 'mp-lark' | 'mp-qq' | 'mp-kuaishou' | 'mp-jd' | 'mp-360' | 'quickapp-webview' | 'quickapp-webview-union' | 'quickapp-webview-huawei',
/**
* uni 运行时版本
*/
uniRuntimeVersion ?: string,
/**
* uni 编译器版本号
+ * @deprecated 已废弃,仅为了向下兼容保留
*/
uniCompileVersionCode?: number,
+ /**
+ * uni 编译器版本号
+ *
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "x",
+ * "unixVer": "4.0"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * }
+ * }
+ * }
+ */
+ uniCompilerVersionCode?: number,
/**
* uni 运行时版本号
*/
uniRuntimeVersionCode?: number,
+ /**
+ * Android的包名
+ *
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "x",
+ * "unixVer": "3.97"
+ * },
+ * "ios": {
+ * "osVer": "x",
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * }
+ * }
+ * }
+ */
+ packageName?: string,
+ /**
+ * iOS的bundleId
+ *
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "x",
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * }
+ * }
+ * }
+ * @autodoc false
+ */
+ bundleId?: string,
+ /**
+ * Android: 应用签名证书的SHA1值(全部为小写,中间不包含“:”)。 为了保证应用的安全性,请使用自己生成的证书(不要使用公共测试证书)。
+ * iOS: 应用签名证书中绑定的Bundle ID(AppleID)的md5值(全部为小写)。
+ *
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "x",
+ * "unixVer": "3.97"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * }
+ * }
+ * }
+ */
+ signature?: string,
}
/**
@@ -208,20 +320,25 @@ export interface Uni {
* @param {GetAppBaseInfoOptions} options [options=包含所有字段的过滤对象] 过滤的字段对象, 不传参数默认为获取全部字段。
* @return {object}
* @tutorial https://uniapp.dcloud.net.cn/api/system/getAppBaseInfo.html
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "4.4",
- * "uniVer": "√",
- * "unixVer": "3.9+"
- * },
- * "ios": {
- * "osVer": "9.0",
- * "uniVer": "√",
- * "unixVer": "3.9+"
- * }
- * }
- * }
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "√",
+ * "unixVer": "3.9+"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * },
+ * "web": {
+ * "uniVer": "√",
+ * "unixVer": "4.0"
+ * }
+ * }
* @example
```typescript
uni.getAppBaseInfo({
diff --git a/uni_modules/uni-getDeviceInfo/utssdk/app-android/device/DeviceUtil.uts b/uni_modules/uni-getDeviceInfo/utssdk/app-android/device/DeviceUtil.uts
index 47bf8b49fa207eba8fbb63506fa294467b317b43..f490a1475803e0b9e6cf270977e86cd0a345b331 100644
--- a/uni_modules/uni-getDeviceInfo/utssdk/app-android/device/DeviceUtil.uts
+++ b/uni_modules/uni-getDeviceInfo/utssdk/app-android/device/DeviceUtil.uts
@@ -10,7 +10,6 @@ import File from 'java.io.File';
import { EmulatorCheckUtil } from './EmulatorCheckUtil.uts'
import TextUtils from 'android.text.TextUtils';
-import { UTSAndroid as Device } from "io.dcloud.uts";
import BufferedReader from 'java.io.BufferedReader';
import InputStreamReader from 'java.io.InputStreamReader';
import Exception from 'java.lang.Exception';
@@ -180,18 +179,18 @@ export class DeviceUtil {
public static getDeviceID(context: Context): string {
- return Device.getDeviceID(context);
+ return UTSAndroid.getDeviceID(context);
}
public static getOsLanguage(context: Context): string {
- return Device.getLanguageInfo(context)["osLanguage"].toString();
+ return UTSAndroid.getLanguageInfo(context)["osLanguage"].toString();
}
public static getOsLanguageNormal(context: Context): string {
const LOCALE_ZH_HANS = 'zh-Hans'
const LOCALE_ZH_HANT = 'zh-Hant'
- let locale = Device.getLanguageInfo(context)["appLanguage"].toString();
+ let locale = UTSAndroid.getLanguageInfo(context)["appLanguage"].toString();
if (locale.indexOf('zh') === 0) {
if (locale.indexOf('-hans') > -1) {
return LOCALE_ZH_HANS;
@@ -210,11 +209,11 @@ export class DeviceUtil {
}
public static getAppInnerVersion(): string {
- return Device.getInnerVersion();
+ return UTSAndroid.getInnerVersion();
}
public static getOaid(): string {
- return Device.getOAID();
+ return UTSAndroid.getOAID();
}
diff --git a/uni_modules/uni-getDeviceInfo/utssdk/app-android/index.uts b/uni_modules/uni-getDeviceInfo/utssdk/app-android/index.uts
index 89659c9915f27ff23a00e93c1d9be5d27b314bd0..a91acc5dc565b623d8ced1e7b7f05b435bbbac19 100644
--- a/uni_modules/uni-getDeviceInfo/utssdk/app-android/index.uts
+++ b/uni_modules/uni-getDeviceInfo/utssdk/app-android/index.uts
@@ -1,5 +1,4 @@
import Build from 'android.os.Build';
-import { UTSAndroid } from "io.dcloud.uts";
import { DeviceUtil } from './device/DeviceUtil.uts';
import { GetDeviceInfo, GetDeviceInfoOptions, GetDeviceInfoResult } from '../interface.uts'
@@ -23,7 +22,6 @@ export const getDeviceInfo : GetDeviceInfo = (config : GetDeviceInfoOptions | nu
"devicePixelRatio",
"system",
"platform",
- "oaid",
"isRoot",
"isSimulator",
"isUSBDebugging"
@@ -66,9 +64,6 @@ function getBaseInfo(filterArray : Array) : GetDeviceInfoResult {
if (filterArray.indexOf("platform") != -1) {
result.platform = "android";
}
- if (filterArray.indexOf("oaid") != -1) {
- result.oaid = DeviceUtil.getOaid();
- }
if (filterArray.indexOf("isRoot") != -1) {
result.isRoot = DeviceUtil.hasRootPrivilege();
}
diff --git a/uni_modules/uni-getDeviceInfo/utssdk/app-ios/device/DeviceUtil.uts b/uni_modules/uni-getDeviceInfo/utssdk/app-ios/device/DeviceUtil.uts
index 2d39d8c9ad70e9ada324e09450df6edd353e1790..8872959dcfd2ee81bde78030e229e013caf3ca6a 100644
--- a/uni_modules/uni-getDeviceInfo/utssdk/app-ios/device/DeviceUtil.uts
+++ b/uni_modules/uni-getDeviceInfo/utssdk/app-ios/device/DeviceUtil.uts
@@ -1,7 +1,5 @@
import { UIDevice, UIApplication, UIInterfaceOrientation, UIScreen } from 'UIKit';
import { NSLocale, URL, FileManager } from 'Foundation';
-import { ATTrackingManager } from 'AppTrackingTransparency';
-import { ASIdentifierManager } from 'AdSupport';
import { DispatchSemaphore, DispatchQueue } from 'Dispatch';
@@ -23,12 +21,10 @@ export class DeviceUtil {
public static getOrientation(): string {
let orientation = "portrait";
- DispatchQueue.main.sync(execute = () => {
- const orient = UIApplication.shared.statusBarOrientation;
- if (orient == UIInterfaceOrientation.landscapeLeft || orient == UIInterfaceOrientation.landscapeRight) {
- orientation = "landscape";
- }
- })
+ const orient = UIApplication.shared.statusBarOrientation;
+ if (orient == UIInterfaceOrientation.landscapeLeft || orient == UIInterfaceOrientation.landscapeRight) {
+ orientation = "landscape";
+ }
return orientation;
}
@@ -38,45 +34,10 @@ export class DeviceUtil {
public static getIdfa(): string {
- if (UTSiOS.available("iOS 14, *")) {
- if (ATTrackingManager.trackingAuthorizationStatus == ATTrackingManager.AuthorizationStatus.notDetermined) {
- ATTrackingManager.requestTrackingAuthorization(completionHandler = (status) => { });
- } else if (ATTrackingManager.trackingAuthorizationStatus == ATTrackingManager.AuthorizationStatus.authorized) {
- return ASIdentifierManager.shared().advertisingIdentifier.uuidString;
- }
- return "";
- }
-
- return ASIdentifierManager.shared().advertisingIdentifier.uuidString;
+ return UTSiOS.getGgbs()
}
public static hasRootPrivilege(): boolean {
- let url = new URL(string = "cydia://");
- let canOpenUrl = false;
- DispatchQueue.main.sync(execute = () => {
- canOpenUrl = UIApplication.shared.canOpenURL(url!)
- })
- if (canOpenUrl) {
- return true;
- }
-
- let jailbreakToolPaths = [
- "/Applications/Cydia.app",
- "/Library/MobileSubstrate/MobileSubstrate.dylib",
- "/bin/bash",
- "/usr/sbin/sshd",
- "/etc/apt"
- ];
-
- let i = 0;
- while (i < jailbreakToolPaths.length) {
- if (FileManager.default.fileExists(atPath = jailbreakToolPaths[i])) {
- return true;
- }
- i++;
- }
-
-
- return false;
+ return UTSiOS.isRoot()
}
}
\ No newline at end of file
diff --git a/uni_modules/uni-getDeviceInfo/utssdk/app-ios/index.uts b/uni_modules/uni-getDeviceInfo/utssdk/app-ios/index.uts
index bf6d6b31c2fb90b09ed968f2a814cbc4899e54ed..703e9ae31f518f0362d278dd2fd049e0b8034534 100644
--- a/uni_modules/uni-getDeviceInfo/utssdk/app-ios/index.uts
+++ b/uni_modules/uni-getDeviceInfo/utssdk/app-ios/index.uts
@@ -23,7 +23,6 @@ export const getDeviceInfo : GetDeviceInfo = (config : GetDeviceInfoOptions | nu
"devicePixelRatio",
"system",
"platform",
- "idfa",
"isRoot",
"isSimulator"
];
@@ -66,9 +65,6 @@ function getBaseInfo(filterArray : Array) : GetDeviceInfoResult {
if (filterArray.indexOf("platform") != -1) {
result.platform = "ios";
}
- if (filterArray.indexOf("idfa") != -1) {
- result.idfa = DeviceUtil.getIdfa();
- }
if (filterArray.indexOf("isRoot") != -1) {
result.isRoot = DeviceUtil.hasRootPrivilege();
}
diff --git a/uni_modules/uni-getDeviceInfo/utssdk/interface.uts b/uni_modules/uni-getDeviceInfo/utssdk/interface.uts
index 10f846a857d9b241cac3642a8d3a7d082128f07a..7b90e84ae364529854626174936634e71032bd85 100644
--- a/uni_modules/uni-getDeviceInfo/utssdk/interface.uts
+++ b/uni_modules/uni-getDeviceInfo/utssdk/interface.uts
@@ -46,25 +46,6 @@ export type GetDeviceInfoResult = {
* 客户端平台
*/
platform?: string,
- /**
- * oaid标识 Android专有
- *
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "5.0",
- * "uniVer": "√",
- * "unixVer": "√"
- * },
- * "ios": {
- * "osVer": "9.0",
- * "uniVer": "x",
- * "unixVer": "x"
- * }
- * }
- * }
- */
- oaid?: string,
/**
* 是否root
*/
@@ -76,44 +57,23 @@ export type GetDeviceInfoResult = {
/**
* adb是否开启
*
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "5.0",
- * "uniVer": "√",
- * "unixVer": "√"
- * },
- * "ios": {
- * "osVer": "9.0",
- * "uniVer": "x",
- * "unixVer": "x"
- * }
- * }
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "x",
+ * "unixVer": "√"
+ * },
+ * "ios": {
+ * "osVer": "x",
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * }
+ * }
* }
*/
isUSBDebugging?: boolean,
- /**
- * idfa标识 iOS专有
- *
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "5.0",
- * "uniVer": "x",
- * "unixVer": "x"
- * },
- * "ios": {
- * "osVer": "9.0",
- * "uniVer": "√",
- * "unixVer": "√"
- * }
- * }
- * }
- */
- idfa?: string,
- /**
- * 应用平台
- */
}
@@ -131,21 +91,26 @@ export interface Uni {
* @param {GetDeviceInfoOptions} options [options=包含所有字段的过滤对象] 过滤的字段对象, 不传参数默认为获取全部字段。
* @return {object}
* @tutorial https://uniapp.dcloud.net.cn/api/system/getDeviceInfo.html
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "4.4",
- * "uniVer": "√",
- * "unixVer": "3.9+"
- * },
- * "ios": {
- * "osVer": "9.0",
- * "uniVer": "√",
- * "unixVer": "3.9+"
- * }
- * }
- * }
- * @example
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "√",
+ * "unixVer": "3.9+"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * },
+ * "web": {
+ * "uniVer": "√",
+ * "unixVer": "4.0"
+ * }
+ * }
+ * @example
```typescript
uni.getDeviceInfo({
filter:[]
diff --git a/uni_modules/uni-getLocation-system/readme.md b/uni_modules/uni-getLocation-system/readme.md
index f2f72b39e0102c7ba3c7cb146ec929b3a17f1cf2..df5d5cde8b3e0021ee574d93682ab200fca5a4e4 100644
--- a/uni_modules/uni-getLocation-system/readme.md
+++ b/uni_modules/uni-getLocation-system/readme.md
@@ -3,4 +3,8 @@
[UTS 语法](https://uniapp.dcloud.net.cn/tutorial/syntax-uts.html)
[UTS API插件](https://uniapp.dcloud.net.cn/plugin/uts-plugin.html)
[UTS 组件插件](https://uniapp.dcloud.net.cn/plugin/uts-component.html)
-[Hello UTS](https://gitcode.net/dcloud/hello-uts)
\ No newline at end of file
+[Hello UTS](https://gitcode.net/dcloud/hello-uts)
+
+Notes:
+1. plist 文件中的YourPurposeKey、NSLocationWhenInUseUsageDescription、NSLocationAlwaysUsageDescription、NSLocationAlwaysAndWhenInUseUsageDescription需要按照自己项目需要配置不同的描述
+2. NSLocationTemporaryUsageDescriptionDictionary 这个Dictionary是在iOS14.0+上设置高精度必须配置的key,可以添加若干个YourPurposeKey,结合项目需求在不同的高精度权限申请授权的地方配置不同的PurposeKey和描述(和代码中的PurposeKey是一一对应的关系)
\ No newline at end of file
diff --git a/uni_modules/uni-getLocation-system/utssdk/app-android/index.uts b/uni_modules/uni-getLocation-system/utssdk/app-android/index.uts
index dde095a904545dfe086da146536be8f92662e04b..367c5ab96d66205e30c861f57718326f3a71767e 100644
--- a/uni_modules/uni-getLocation-system/utssdk/app-android/index.uts
+++ b/uni_modules/uni-getLocation-system/utssdk/app-android/index.uts
@@ -1,5 +1,5 @@
-import { GetLocation, GetLocationOptions, GetLocationSuccess,GetLocationFail } from "../interface.uts"
-import UTSAndroid from 'io.dcloud.uts.UTSAndroid';
+import { GetLocation, GetLocationOptions, GetLocationSuccess } from "../interface.uts"
+import { GetLocationFailImpl, getErrcode } from '../unierror';
import Context from 'android.content.Context';
import LocationManager from 'android.location.LocationManager';
import Criteria from 'android.location.Criteria';
@@ -16,15 +16,15 @@ export const getLocation : GetLocation = function (options : GetLocationOptions)
/**
* 准备权限
*/
- let permissionNeed : string[] = utsArrayOf("android.permission.ACCESS_FINE_LOCATION");
- UTSAndroid.requestSystemPermission(UTSAndroid.getUniActivity()!, permissionNeed, function (allRight:boolean,_grantedList:string[]) {
+ let permissionNeed = ["android.permission.ACCESS_FINE_LOCATION"]
+ UTSAndroid.requestSystemPermission(UTSAndroid.getUniActivity()!, permissionNeed, function (allRight:boolean,_:string[]) {
if (allRight) {
// 交给目前的location 引擎,真实执行
getLocationImpl(options)
}
- }, function (_doNotAskAgain:boolean,_grantedList:string[]) {
- console.log("用户拒绝了部分权限:")
- let err = new UniError("uni-getLocation-system",-10,"permission missed.");
+
+ }, function (_:boolean,_:string[]) {
+ let err = new GetLocationFailImpl(getErrcode(1505004));
options.fail?.(err)
options.complete?.(err)
})
@@ -32,26 +32,113 @@ export const getLocation : GetLocation = function (options : GetLocationOptions)
}
/****************************************内部功能实现****************************************************/
-/**
- * 全局信息处理
- */
-class Global {
- /**
- * 默认实现
- */
- static lastLocation : Location | null = null;
-}
-
/**
* 封装系统监听回调
*/
class CustomSystemLocationListener extends LocationListener {
+
+ hostRequest:LocationRequest
+ constructor(request:LocationRequest){
+ super()
+ this.hostRequest = request
+ }
+
override onLocationChanged(location : Location) : void {
- Global.lastLocation = location
+
+ this.hostRequest.hostLocationManager.removeUpdates(this)
+
+ if(this.hostRequest.hasSuccessDone == true){
+ /**
+ * 已经成功返回了,则不需要继续
+ */
+ return
+ }
+
+ let ret : GetLocationSuccess = {
+ latitude: location.getLatitude(),
+ longitude: location.getLongitude(),
+ speed: location.getSpeed(),
+ accuracy: location.getAccuracy(),
+ altitude: location.getAltitude(),
+ verticalAccuracy: 0,
+ horizontalAccuracy: location.getAccuracy(),
+ address: null
+ }
+ // 标记已经通过系统位置返回位置
+ this.hostRequest.hostOption.success?.(ret)
+ this.hostRequest.hostOption.complete?.(ret)
+ this.hostRequest.hasSuccessDone = true
}
}
+/**
+ * 延迟请求
+ */
+class LocationRequest{
+
+ /**
+ * 标记本次请求是否已经提前结束
+ */
+ hasSuccessDone:boolean = false
+ hostOption:GetLocationOptions
+ hostLocationManager:LocationManager
+
+ constructor(options:GetLocationOptions,locationManager:LocationManager){
+ this.hostOption = options
+ this.hostLocationManager = locationManager
+ }
+
+ /**
+ * 存在预期的缓存,直接返回
+ */
+ returnLastLocation(lastLocation:Location){
+ let ret : GetLocationSuccess = {
+ latitude: lastLocation.getLatitude(),
+ longitude: lastLocation.getLongitude(),
+ speed: lastLocation.getSpeed(),
+ accuracy: lastLocation.getAccuracy(),
+ altitude: lastLocation.getAltitude(),
+ verticalAccuracy: 0,
+ horizontalAccuracy: lastLocation.getAccuracy(),
+ address: null
+ }
+ this.hostOption.success?.(ret)
+ this.hostOption.complete?.(ret)
+ this.hasSuccessDone = true
+ }
+
+ /**
+ * 不存在预期的缓存,需要等待provider的位置更新
+ */
+ returnProviderUpdate(providerName:string,timeoutMill:number){
+ let systemListener = new CustomSystemLocationListener(this)
+ /**
+ * TODO
+ * 1 0.0/2000 是否合理
+ * 2 providerName
+ */
+ this.hostLocationManager.requestLocationUpdates(providerName, 2000, 0.0.toFloat(), systemListener)
+ /**
+ * 此状态下,需要同时开启一个超时检测
+ */
+ setTimeout(function () {
+ this.hostLocationManager.removeUpdates(systemListener)
+ if (!this.hasSuccessDone) {
+ // 超过6s/或者设定的超时时间,尚未成功返回,则需要返回错误
+ let err = new GetLocationFailImpl(getErrcode(-4));
+ this.hostOption.fail?.(err)
+ this.hostOption.complete?.(err)
+ }else{
+ // 已经成功返回了, 则不需要处理
+ }
+
+ }, timeoutMill);
+ }
+
+
+
+}
/**
* 真实的执行位置定位
@@ -71,7 +158,7 @@ function getLocationImpl(options : GetLocationOptions) {
if(options.type != 'wgs84'){
// 系统定位只支持wgs84,如果不是则报错
- let err = new UniError("uni-getLocation-system",-1,"system location support wgs84 only.");
+ let err = new GetLocationFailImpl(getErrcode(1505022));
options.fail?.(err)
options.complete?.(err)
return
@@ -79,7 +166,7 @@ function getLocationImpl(options : GetLocationOptions) {
if(options.geocode != null && options.geocode == true){
// 系统定位不支持逆地理编码
- let err = new UniError("uni-getLocation-system",-2,"system location not support geocode.");
+ let err = new GetLocationFailImpl(getErrcode(1505023));
options.fail?.(err)
options.complete?.(err)
return
@@ -114,16 +201,12 @@ function getLocationImpl(options : GetLocationOptions) {
if (providerName == null) {
// 没有找到合法的系统定位能力提供者,错误的逻辑 todo
- let err = new UniError("uni-getLocation-system",-3,"Provider is not find,Please ensure that the device location function is turned on");
+ let err = new GetLocationFailImpl(getErrcode(1505024));
options.fail?.(err)
options.complete?.(err)
return;
}
- // 兜底的逻辑是上次定位的信息
- Global.lastLocation = locationManager.getLastKnownLocation(providerName)
- let systemListener = new CustomSystemLocationListener()
- locationManager.requestLocationUpdates(providerName, 2000, 0.0.toFloat(), systemListener)
-
+
// 默认超时6000ms
let timeoutMill:number = 6000;
@@ -131,44 +214,24 @@ function getLocationImpl(options : GetLocationOptions) {
* 只有设置超出3000ms 才会认为有效
* https://uniapp.dcloud.net.cn/api/location/location.html#getlocation
*/
- if(options.highAccuracyExpireTime != null && options.highAccuracyExpireTime! >= 3000){
+ if(options.highAccuracyExpireTime != null && options.highAccuracyExpireTime! >= 3000 && options.isHighAccuracy == true){
timeoutMill = options.highAccuracyExpireTime!
}
- let taskId = 0
- let startTimeMill = (new Date()).getTime()
- // 不管返回结果如何,延迟2s 返回数据
- taskId = setInterval(function () {
- if (Global.lastLocation == null) {
- // 没有得到想要的位置,统计错误计数+1
-
- let currentTimeMill = (new Date()).getTime()
- let diffTimeNum = currentTimeMill - startTimeMill
-
- if (diffTimeNum > timeoutMill) {
- locationManager.removeUpdates(systemListener)
- // 超过6s了,返回错误
- clearInterval(taskId)
- let err = new UniError("uni-getLocation-system",-4,"location fail: timeout");
- options.fail?.(err)
- options.complete?.(err)
- }
- } else {
- locationManager.removeUpdates(systemListener)
- clearInterval(taskId)
- let ret : GetLocationSuccess = {
- latitude: Global.lastLocation!.getLatitude(),
- longitude: Global.lastLocation!.getLongitude(),
- speed: Global.lastLocation!.getSpeed(),
- accuracy: Global.lastLocation!.getAccuracy(),
- altitude: Global.lastLocation!.getAltitude(),
- verticalAccuracy: 0,
- horizontalAccuracy: Global.lastLocation!.getAccuracy(),
- address: null
- }
- options.success?.(ret)
- Global.lastLocation = null
- }
-
- }, 2000);
+ // 兜底的逻辑是上次定位的信息
+ /**
+ * todo 是否要考虑缓存过期时间elapsedRealtimeAgeMillis
+ */
+ let lastLocation = locationManager.getLastKnownLocation(providerName)
+ let locationRequest:LocationRequest = new LocationRequest(options,locationManager)
+ if (lastLocation != null) {
+
+ // 存在预期的缓存,直接返回,即使返回缓存,也要继续走位置更新
+ locationRequest.returnLastLocation(lastLocation)
+ }
+ /**
+ * 没有预期中的缓存,则等待位置更新
+ */
+ locationRequest.returnProviderUpdate(providerName,timeoutMill)
+
}
diff --git a/uni_modules/uni-getLocation-system/utssdk/app-ios/config.json b/uni_modules/uni-getLocation-system/utssdk/app-ios/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..d50230a8fcb6fbed4dd775d2f66f22dbd7d49a2c
--- /dev/null
+++ b/uni_modules/uni-getLocation-system/utssdk/app-ios/config.json
@@ -0,0 +1,5 @@
+{
+ "frameworks": [
+
+ ]
+}
\ No newline at end of file
diff --git a/uni_modules/uni-getLocation-system/utssdk/app-ios/index.uts b/uni_modules/uni-getLocation-system/utssdk/app-ios/index.uts
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..bbef8c74faf56f90916050ba339e08ff1d75e0ca 100644
--- a/uni_modules/uni-getLocation-system/utssdk/app-ios/index.uts
+++ b/uni_modules/uni-getLocation-system/utssdk/app-ios/index.uts
@@ -0,0 +1,334 @@
+import { CLLocationManager, CLAuthorizationStatus, CLLocationManagerDelegate, CLGeocoder, CLPlacemark, kCLLocationAccuracyBest, kCLLocationAccuracyHundredMeters, kCLLocationAccuracyKilometer, CLAccuracyAuthorization, CLLocation } from "CoreLocation"
+import { NSError, Int } from "Foundation"
+import { GetLocation, GetLocationOptions, GetLocationSuccess } from "../interface.uts"
+import { GetLocationFailImpl, getErrcode } from '../unierror'
+import { UTSiOS } from "DCloudUTSFoundation"
+
+/****************************************内部功能实现****************************************************/
+
+/**
+ * 定位 LBSLocation 类,封装定位相关方法
+ */
+class LBSLocation implements CLLocationManagerDelegate {
+
+ // 定义 locationManager 属性,类型为 CLLocationManager
+ locationManager! : CLLocationManager
+
+ locationOptions ?: GetLocationOptions
+
+ // private previousLocation ?: CLLocation
+
+ private previousResponse ?: GetLocationSuccess
+
+ private hasRequestLocationSuccess : boolean = false
+
+ configLocationManager() {
+ if (this.locationManager == null) {
+ this.locationManager = new CLLocationManager()
+ this.locationManager.delegate = this
+ }
+ }
+
+ requestLocationWithAuthorization() {
+ const status = this.getAuthorizationStatus()
+ // 如果未获取过定位权限,则发起权限请求
+ if (status == CLAuthorizationStatus.notDetermined) {
+ this.locationManager.requestWhenInUseAuthorization()
+ } else if (status == CLAuthorizationStatus.denied || status == CLAuthorizationStatus.restricted) {
+ this.failedAction(1505004)
+ } else if (status == CLAuthorizationStatus.authorizedAlways || status == CLAuthorizationStatus.authorizedWhenInUse) {
+ this.getLocation()
+ }
+ }
+
+ getAuthorizationStatus() : CLAuthorizationStatus {
+ if (UTSiOS.available("iOS 14.0, *")) {
+ return this.locationManager.authorizationStatus
+ } else {
+ return CLLocationManager.authorizationStatus()
+ }
+ }
+
+ // 获取单次位置信息
+ getLocationImpl(options : GetLocationOptions) {
+ this.configLocationManager()
+
+ this.locationOptions = options
+
+ if (options.type == null) {
+ this.locationOptions!.type = 'wgs84'
+ }
+
+ if (options.highAccuracyExpireTime == null) {
+ this.locationOptions!.highAccuracyExpireTime = 3000
+ }
+
+ if (options.type != 'wgs84') {
+ // 系统定位只支持wgs84,如果不是则报错
+ this.failedAction(1505022)
+ return
+ }
+
+ this.requestLocationWithAuthorization()
+ }
+
+ getLocation() {
+ if (UTSiOS.available("iOS 14.0, *")) {
+ /**
+ * Note:iOS14.0+ 版本适配
+ * 1. isHighAccuracy = true -----> accuracyAuthorization == .fullAccuracy && desiredAccuracy = kCLLocationAccuracyBest
+ * 2. altitude = true -----> accuracyAuthorization == .fullAccuracy (只有用户打开了高精度定位,才会返回海拔信息)
+ * 所以说,isHighAccuracy依赖于altitude, isHighAccuracy = true 的时候,一定altitude = true
+ */
+ if (this.locationOptions?.isHighAccuracy != null && this.locationOptions?.isHighAccuracy == true && this.locationManager.accuracyAuthorization == CLAccuracyAuthorization.reducedAccuracy) {
+ this.requestTemporaryFullAccuracyAuthorization()
+ } else {
+ if (this.locationOptions?.isHighAccuracy != null && this.locationOptions?.isHighAccuracy == true) {
+ this.locationManager.desiredAccuracy = kCLLocationAccuracyBest
+ } else {
+ this.locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters
+ }
+
+ this.requestLocation()
+ }
+ } else {
+ /**
+ * Note:iOS14.0- 版本适配
+ * 1. isHighAccuracy 和 altitude, isHighAccuracy的优先级高一点;
+ *
+ * 2. altitude = true ----> desiredAccuracy = kCLLocationAccuracyNearestTenMeters || kCLLocationAccuracyHundredMeters || kCLLocationAccuracyBest
+ * isHighAccuracy = true ----> desiredAccuracy = kCLLocationAccuracyBest
+ *
+ * 3. isHighAccuracy = false,altitude = true ----> desiredAccuracy = kCLLocationAccuracyNearestTenMeters || kCLLocationAccuracyHundredMeters
+ * isHighAccuracy = false,altitude = false ----> desiredAccuracy = kCLLocationAccuracyKilometer
+ *
+ * 4. 所以当isHighAccuracy = true的时候,altitude 一定是true,即使用户设置了false, 也是无效的;
+ */
+ //
+
+ if (this.locationOptions?.isHighAccuracy != null && this.locationOptions?.isHighAccuracy == true) {
+ this.locationManager.desiredAccuracy = kCLLocationAccuracyBest
+ } else {
+ if (this.locationOptions?.altitude != null && this.locationOptions?.altitude == true) {
+ this.locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters
+ } else {
+ this.locationManager.desiredAccuracy = kCLLocationAccuracyKilometer
+ }
+ }
+
+ this.requestLocation()
+ }
+ }
+
+ //执行CLLocationManager 中的单次请求方法
+ requestLocation() {
+ this.hasRequestLocationSuccess = false
+ this.locationManager.requestLocation()
+
+ //如果用户isHighAccuracy = true, 下列逻辑是在highAccuracyExpireTime时间范围内如果没有返回数据,则返回 errorCode:1505021 超时
+ if (this.locationOptions?.isHighAccuracy != null && this.locationOptions?.isHighAccuracy == true) {
+ const timeoutMill : Int = this.locationOptions?.highAccuracyExpireTime?.toInt() ?? 3000
+ setTimeout(function () {
+ this.clearWatch()
+ if (!this.hasRequestLocationSuccess) {
+ this.failedAction(1505021)
+ } else {
+ // 已经成功返回了, 则不需要处理
+ }
+
+ }, timeoutMill);
+ }
+ }
+
+ //在iOS14.0+上请求临时的高精度权限
+ requestTemporaryFullAccuracyAuthorization() {
+ if (UTSiOS.available("iOS 14.0, *")) {
+ //YourPurposeKey这个是在plist中自定义的,在NSLocationTemporaryUsageDescriptionDictionary这个字典下自定义添加
+ this.locationManager.requestTemporaryFullAccuracyAuthorization(withPurposeKey = "YourPurposeKey", completion = (err ?: NSError) : void => {
+ if (this.locationManager.accuracyAuthorization == CLAccuracyAuthorization.reducedAccuracy) {
+ //Note:如果用户isHighAccuracy == true,则accuracyAuthorization = fullAccuracy && desiredAccuracy = kCLLocationAccuracyBest, 但是用户点击未授权,
+ //TODO: 这时候返回errCode:1505005 ------> iOS特有的高精度权限缺失 (是否需要添加高精度缺失的不同的errorCode信息,待定?)
+ // errCode:1505004 ------> 定位权限缺失
+ this.failedAction(1505005)
+ }
+ })
+ }
+ }
+
+ // failed action
+ failedAction(errCode : number) {
+ let err = new GetLocationFailImpl(getErrcode(errCode));
+ this.locationOptions?.fail?.(err)
+ this.locationOptions?.complete?.(err)
+ // this.previousLocation = null
+ this.previousResponse = null
+ this.clearWatch()
+ }
+
+ // success action
+ successAction(response : GetLocationSuccess) {
+ this.locationOptions?.success?.(response)
+ this.locationOptions?.complete?.(response)
+ this.hasRequestLocationSuccess = true
+ this.previousResponse = response
+ this.clearWatch()
+ }
+
+ // 清除监听
+ clearWatch() {
+ this.locationManager.stopUpdatingLocation()
+ }
+
+ // 判断两个location是否一致,并加入了容错机制
+ isSameLocation(left : CLLocation, right : CLLocation) : boolean {
+ // 比较经纬度
+ if (left.coordinate.latitude == right.coordinate.latitude && left.coordinate.longitude == right.coordinate.longitude) {
+ return false
+ }
+
+ //比较海拔
+ if (left.altitude == right.altitude) {
+ return false
+ }
+
+ // 比较水平精度
+ const horizontalAccuracyTolerance = Math.max(Number(left.horizontalAccuracy), Number(right.horizontalAccuracy))
+ if (Number(left.distance(from = right)) > horizontalAccuracyTolerance) {
+ return false
+ }
+
+ // 比较垂直精度
+ const verticalAccuracyTolerance = Math.max(Number(left.verticalAccuracy), Number(right.verticalAccuracy))
+ if (Math.abs(Number(left.altitude - right.altitude)) > verticalAccuracyTolerance) {
+ return false
+ }
+
+ // //比较时间搓
+ let timeDiff = left.timestamp.timeIntervalSince(right.timestamp)
+ if (Math.abs(Number(timeDiff * 1000)) > 500) {
+ return false
+ }
+
+ return true
+ }
+
+ /****************************************CLLocationManagerDelegate 实现****************************************************/
+
+ /**
+ * Note:iOS14.0+ 引入的api
+ * iOS14.0+ 系统进入下面delegate方法, iOS14.0以下不进入
+ */
+ locationManagerDidChangeAuthorization(manager : CLLocationManager) {
+ const status = this.getAuthorizationStatus()
+ if (status == CLAuthorizationStatus.denied || status == CLAuthorizationStatus.restricted) {
+ this.failedAction(1505004)
+ } else if (status == CLAuthorizationStatus.authorizedAlways || status == CLAuthorizationStatus.authorizedWhenInUse) {
+ this.getLocation()
+ }
+ }
+
+ /**
+ * Note:iOS14.0+ 引入新的api,不建议下列api
+ * iOS14.0以下系统进入下面delegate方法,如果同时实现了上述api,则iOS14.0+优先使用上述api; 如果未实现上述api,则下列api也会调用
+ */
+ locationManager(manager : CLLocationManager, @argumentLabel("didChangeAuthorization") status : CLAuthorizationStatus) {
+ const status = this.getAuthorizationStatus()
+ if (status == CLAuthorizationStatus.denied || status == CLAuthorizationStatus.restricted) {
+ this.failedAction(1505004)
+ } else if (status == CLAuthorizationStatus.authorizedAlways || status == CLAuthorizationStatus.authorizedWhenInUse) {
+ this.getLocation()
+ }
+ }
+
+ // 实现定位出错的 delegate 方法
+ locationManager(manager : CLLocationManager, @argumentLabel("didFailWithError") error : NSError) {
+ this.failedAction(1505026)
+ }
+
+ // 实现位置更新的 delegate 方法
+ locationManager(manager : CLLocationManager, @argumentLabel("didUpdateLocations") locations : CLLocation[]) {
+
+ if (locations.length == 0) {
+ this.failedAction(1505026)
+ return
+ }
+ const location = locations[0]
+
+ // if (this.previousLocation != null && this.isSameLocation(location, this.previousLocation!) && !this.hasRequestLocationSuccess) {
+ // if (this.previousResponse != null) {
+ // this.successAction(this.previousResponse!)
+ // }
+ // return
+ // }
+
+ if (this.hasRequestLocationSuccess == true) {
+ if (this.previousResponse != null) {
+ this.successAction(this.previousResponse!)
+ }
+ return
+ }
+ // this.previousLocation = location
+
+ let altitude = 0.0
+ if (this.locationOptions?.altitude != null && this.locationOptions?.altitude == true) {
+ altitude = Number(location.altitude)
+ }
+
+ if (this.locationOptions?.geocode != null && this.locationOptions?.geocode == true) {
+ const geocoder = new CLGeocoder()
+ let address = ""
+
+ geocoder.reverseGeocodeLocation(location, completionHandler = (placemarks ?: CLPlacemark[], err ?: NSError) : void => {
+ if (err != null) {
+ console.log(err)
+ this.failedAction(1505025)
+ return
+ }
+
+ if (placemarks != null && placemarks!.length > 0) {
+ const placemark = placemarks![0]
+ const name = placemark.name ?? ''
+ const city = placemark.locality ?? ''
+ const country = placemark.country ?? ''
+ address = country + city + name
+ console.log(address)
+
+ let response : GetLocationSuccess = {
+ latitude: Number(location.coordinate.latitude),
+ longitude: Number(location.coordinate.longitude),
+ speed: Number(location.speed),
+ altitude: altitude,
+ accuracy: 0, //TODO: iOS api没有返回accuracy相关信息, 和Android有对应api不同
+ verticalAccuracy: Number(location.verticalAccuracy),
+ horizontalAccuracy: Number(location.horizontalAccuracy),
+ address: address
+ }
+ this.successAction(response)
+ }
+ })
+ } else {
+ let response : GetLocationSuccess = {
+ latitude: Number(location.coordinate.latitude),
+ longitude: Number(location.coordinate.longitude),
+ speed: Number(location.speed),
+ altitude: altitude,
+ accuracy: 0, //TODO: iOS api没有返回accuracy相关信息, 和Android有对应api不同
+ verticalAccuracy: Number(location.verticalAccuracy),
+ horizontalAccuracy: Number(location.horizontalAccuracy),
+ address: null
+ }
+ this.successAction(response)
+ }
+ }
+}
+
+
+/****************************************API 接口****************************************************/
+
+const locationTool : LBSLocation = new LBSLocation()
+/**
+ * 对外的函数接口
+ */
+export const getLocation : GetLocation = function (options : GetLocationOptions) {
+ locationTool.getLocationImpl(options)
+}
\ No newline at end of file
diff --git a/uni_modules/uni-getLocation-system/utssdk/app-ios/info.plist b/uni_modules/uni-getLocation-system/utssdk/app-ios/info.plist
new file mode 100644
index 0000000000000000000000000000000000000000..91a2a62cb5f434227a833896613b3865dec591e6
--- /dev/null
+++ b/uni_modules/uni-getLocation-system/utssdk/app-ios/info.plist
@@ -0,0 +1,17 @@
+
+
+
+
+ NSLocationAlwaysAndWhenInUseUsageDescription
+ 允许使用定位权限吗
+ NSLocationAlwaysUsageDescription
+ 允许一直使用定位权限
+ NSLocationWhenInUseUsageDescription
+ 允许仅在app运行期间使用定位权限
+ NSLocationTemporaryUsageDescriptionDictionary
+
+ YourPurposeKey
+ 这里需要您临时授权高精度定位权限,一次临时授权时效仅app一个周期内, 每次硬启动都需要临时授权
+
+
+
\ No newline at end of file
diff --git a/uni_modules/uni-getLocation-system/utssdk/interface.uts b/uni_modules/uni-getLocation-system/utssdk/interface.uts
index e9b70825dde2f506dd504fa3c35f3404d0ee1b5c..eed7570dcfaf3eb4fd4d360edf474165211eb59a 100644
--- a/uni_modules/uni-getLocation-system/utssdk/interface.uts
+++ b/uni_modules/uni-getLocation-system/utssdk/interface.uts
@@ -17,7 +17,7 @@ export interface Uni {
* @uniPlatform {
* "app": {
* "android": {
- * "osVer": "4.4.4",
+ * "osVer": "5.0",
* "uniVer": "√",
* "unixVer": "3.9.0"
* },
@@ -26,14 +26,40 @@ export interface Uni {
* "uniVer": "x",
* "unixVer": "x"
* }
+ * },
+ * "web": {
+ * "uniVer": "√",
+ * "unixVer": "4.0"
* }
- * }
+ * }9999
+ *
*/
getLocation(options: GetLocationOptions):void;
}
+/**
+ * 错误码
+ * - 1505004 缺失权限
+ * - 1505005 缺失高精度权限授权(iOS特有)
+ * - 1505021 超时
+ * - 1505022 不支持的定位类型
+ * - 1505023 不支持逆地理编码
+ * - 1505024 没有找到具体的定位引擎,请定位开关是否已打开
+ * - 1505025 逆地理编码捕获失败
+ * - 1505026 捕获定位失败
+ */
+export type LocationErrorCode = 1505004 | 1505005 | 1505021 | 1505022 | 1505023 | 1505024 | 1505025 | 1505026;
+/**
+ * 网络请求失败的错误回调参数
+ */
+export interface IGetLocationFail extends IUniError{
+ errCode: LocationErrorCode
+};
+
+export type GetLocationFail = IGetLocationFail
+
export type GetLocation = (options: GetLocationOptions) => void;
export type GetLocationSuccess = {
@@ -78,15 +104,15 @@ export type GetLocationSuccess = {
address: any | null
};
type GetLocationSuccessCallback = (result: GetLocationSuccess) => void;
-type GetLocationFailCallback = (result: UniError) => void;
+type GetLocationFailCallback = (result: GetLocationFail) => void;
type GetLocationComplete = any;
type GetLocationCompleteCallback = (result: GetLocationComplete) => void;
export type GetLocationOptions = {
/**
- * 默认为 wgs84 返回 gps 坐标,gcj02 返回可用于uni.openLocation的坐标
+ * 默认为 wgs84 返回 gps 坐标,gcj02 返回可用于uni.openLocation的坐标,web端需配置定位 SDK 信息才可支持 gcj02
* @defaultValue wgs84
*/
- type?: string | null,
+ type?: "wgs84" | "gcj02" | "gps" | null,
/**
* 传入 true 会返回高度信息,由于获取高度需要较高精确度,会减慢接口返回速度
* @type boolean
diff --git a/uni_modules/uni-getLocation-system/utssdk/unierror.uts b/uni_modules/uni-getLocation-system/utssdk/unierror.uts
new file mode 100644
index 0000000000000000000000000000000000000000..8ebadae56b31e5d6cead839395d0ab9334071129
--- /dev/null
+++ b/uni_modules/uni-getLocation-system/utssdk/unierror.uts
@@ -0,0 +1,64 @@
+import { LocationErrorCode, IGetLocationFail } from "./interface.uts"
+
+/**
+ * 错误主题
+ */
+export const UniErrorSubject = 'uni-location';
+/**
+ * 错误码
+ * @UniError
+ */
+export const UniErrors : Map = new Map([
+
+ /**
+ * 缺失权限
+ */
+ [1505004, 'maybe not obtain GPS Permission.'],
+ /**
+ * iOS特有的缺失高精度权限
+ */
+ [1505004, 'Unauthorized access to high-accuracy location services.'],
+ /**
+ * 超时
+ */
+ [1505021, 'location fail: timeout'],
+ /**
+ * 不支持的定位类型
+ */
+ [1505022, 'system location support wgs84 only.'],
+ /**
+ * 不支持逆地理编码
+ */
+ [1505023, 'system location not support geocode.'],
+ /**
+ * 没有找到具体的定位引擎,请定位开关是否已打开
+ */
+ [1505024, 'Provider is not find,Please ensure that the device location function is turned on'],
+ /**
+ * 逆地理编码捕获失败
+ */
+ [1505025, 'The system failed to retrieve geocode for the location.'],
+ /**
+ * 定位捕获失败
+ */
+ [1505026, 'location fail: request error'],
+
+]);
+
+
+export function getErrcode(errCode : number) : LocationErrorCode {
+ const res = UniErrors[errCode];
+ return res == null ? 1505021 : errCode;
+}
+
+
+export class GetLocationFailImpl extends UniError implements IGetLocationFail {
+ constructor(errCode : LocationErrorCode) {
+ super();
+ this.errSubject = UniErrorSubject;
+ this.errCode = errCode;
+ this.errMsg = UniErrors[errCode] ?? "";
+ }
+}
+
+
diff --git a/uni_modules/uni-getNetworkType/utssdk/app-android/index.uts b/uni_modules/uni-getNetworkType/utssdk/app-android/index.uts
index 5ecde35baad42a8ee9cf5f497f2c5c176d8db32f..aa7f644f305831279ad15163b054a39ace763092 100644
--- a/uni_modules/uni-getNetworkType/utssdk/app-android/index.uts
+++ b/uni_modules/uni-getNetworkType/utssdk/app-android/index.uts
@@ -1,5 +1,4 @@
import { GetNetworkTypeOptions, GetNetworkType, GetNetworkTypeSuccess } from "../interface.uts";
-import UTSAndroid from 'io.dcloud.uts.UTSAndroid';
import Context from 'android.content.Context';
import ConnectivityManager from 'android.net.ConnectivityManager';
import TelephonyManager from 'android.telephony.TelephonyManager';
@@ -69,7 +68,7 @@ export const getNetworkType : GetNetworkType = function (options : GetNetworkTyp
type = "5g";
break;
}
- default://对于case之外的反馈到js,js层收集之后回馈5+进行填补完善
+ default:
type = "" + subtype;
break;
}
diff --git a/uni_modules/uni-getNetworkType/utssdk/interface.uts b/uni_modules/uni-getNetworkType/utssdk/interface.uts
index 5b3fbe1db0ad2e138719433cc34b9df5bd1ce9d0..36f76c9f1ca852cf57bb5f435450bc6a71110f7e 100644
--- a/uni_modules/uni-getNetworkType/utssdk/interface.uts
+++ b/uni_modules/uni-getNetworkType/utssdk/interface.uts
@@ -6,20 +6,25 @@ export interface Uni {
* @param {GetNetworkTypeOptions} options
* @return {void}
* @tutorial http://uniapp.dcloud.io/api/system/network?id=getnetworktype
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "4.4",
- * "uniVer": "√",
- * "unixVer": "3.9+"
- * },
- * "ios": {
- * "osVer": "9.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * }
- * }
- * }
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "√",
+ * "unixVer": "3.9+"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * },
+ * "web": {
+ * "uniVer": "√",
+ * "unixVer": "4.0"
+ * }
+ * }
* @example
```typescript
uni.getNetworkType({
diff --git a/uni_modules/uni-getSystemInfo/utssdk/app-android/device/SystemInfoDeviceUtil.uts b/uni_modules/uni-getSystemInfo/utssdk/app-android/device/SystemInfoDeviceUtil.uts
index 6c4bc47645ae95bf5dcf77224719ac8520de67fc..56fe0770456e477cd348894804f752f5c89fcc0a 100644
--- a/uni_modules/uni-getSystemInfo/utssdk/app-android/device/SystemInfoDeviceUtil.uts
+++ b/uni_modules/uni-getSystemInfo/utssdk/app-android/device/SystemInfoDeviceUtil.uts
@@ -9,10 +9,8 @@ import File from 'java.io.File';
import TextUtils from 'android.text.TextUtils';
-import { UTSAndroid as Device } from "io.dcloud.uts";
import BufferedReader from 'java.io.BufferedReader';
import InputStreamReader from 'java.io.InputStreamReader';
-import UTSAndroid from 'io.dcloud.uts.UTSAndroid';
export class DeviceUtil {
@@ -181,7 +179,7 @@ export class DeviceUtil {
public static getOsLanguageNormal(context : Context) : string {
const LOCALE_ZH_HANS = 'zh-Hans'
const LOCALE_ZH_HANT = 'zh-Hant'
- let locale = Device.getLanguageInfo(context)["appLanguage"].toString();
+ let locale = UTSAndroid.getLanguageInfo(context)["appLanguage"].toString();
if (locale.indexOf('zh') === 0) {
if (locale.indexOf('-hans') > -1) {
return LOCALE_ZH_HANS;
diff --git a/uni_modules/uni-getSystemInfo/utssdk/app-android/index.uts b/uni_modules/uni-getSystemInfo/utssdk/app-android/index.uts
index 9ad2c57bc39f06d40bafa8968b3d5796b6a26760..b0f7d90d239e468f4acf5430cb0261416090e720 100644
--- a/uni_modules/uni-getSystemInfo/utssdk/app-android/index.uts
+++ b/uni_modules/uni-getSystemInfo/utssdk/app-android/index.uts
@@ -1,5 +1,4 @@
import { GetSystemInfoOptions, GetSystemInfo, GetSystemInfoResult, SafeArea, SafeAreaInsets, GetSystemInfoSync, GetWindowInfo, GetWindowInfoResult } from "../interface.uts";
-import UTSAndroid from 'io.dcloud.uts.UTSAndroid';
import PackageManager from 'android.content.pm.PackageManager';
import Build from 'android.os.Build';
import { DeviceUtil } from './device/SystemInfoDeviceUtil.uts'
@@ -19,7 +18,10 @@ export const getSystemInfo : GetSystemInfo = function (options : GetSystemInfoOp
export const getSystemInfoSync : GetSystemInfoSync = function () : GetSystemInfoResult {
const runnable = function(): GetSystemInfoResult | null{
try {
- const activity = UTSAndroid.getUniActivity()!!;
+ let activity = UTSAndroid.getTopPageActivity();
+ if(activity == null){
+ activity = UTSAndroid.getUniActivity()!!
+ }
const appId = UTSAndroid.getAppId();
const appLanguage = DeviceUtil.getOsLanguageNormal(activity);
@@ -46,10 +48,10 @@ export const getSystemInfoSync : GetSystemInfoSync = function () : GetSystemInfo
const statusBarHeight = DeviceUtil.getStatusBarHeight();
const system = "Android " + Build.VERSION.RELEASE;
const ua = UTSAndroid.getWebViewInfo(activity)["ua"].toString();
- const uniCompileVersion = UTSAndroid.getUniCompileVersion();
+ const uniCompilerVersion = UTSAndroid.getUniCompileVersion();
const uniPlatform = "app";
const uniRuntimeVersion = UTSAndroid.getUniRuntimeVersion();
- const uniCompileVersionCode = convertVersionCode(uniCompileVersion);
+ const uniCompilerVersionCode = convertVersionCode(uniCompilerVersion);
const uniRuntimeVersionCode = convertVersionCode(uniRuntimeVersion);
const version = UTSAndroid.getInnerVersion();
const romName = DeviceUtil.getRomName();
@@ -75,7 +77,6 @@ export const getSystemInfoSync : GetSystemInfoSync = function () : GetSystemInfo
height: windowHeight - safeAreaInsets.top - safeAreaInsets.bottom
}
const osAndroidAPILevel = Build.VERSION.SDK_INT;
- const oaid = UTSAndroid.getOAID();
const result = {
SDKVersion: "",
@@ -107,10 +108,12 @@ export const getSystemInfoSync : GetSystemInfoSync = function () : GetSystemInfo
statusBarHeight: statusBarHeight,
system: system,
ua: ua,
- uniCompileVersion: uniCompileVersion,
+ uniCompileVersion: uniCompilerVersion,
+ uniCompilerVersion: uniCompilerVersion,
uniPlatform: uniPlatform,
uniRuntimeVersion: uniRuntimeVersion,
- uniCompileVersionCode: uniCompileVersionCode,
+ uniCompileVersionCode: uniCompilerVersionCode,
+ uniCompilerVersionCode: uniCompilerVersionCode,
uniRuntimeVersionCode: uniRuntimeVersionCode,
version: version,
romName: romName,
@@ -121,7 +124,6 @@ export const getSystemInfoSync : GetSystemInfoSync = function () : GetSystemInfo
windowBottom: windowBottom,
safeAreaInsets: safeAreaInsets,
safeArea: safeArea,
- oaid: oaid,
osAndroidAPILevel: osAndroidAPILevel,
} as GetSystemInfoResult;
return result;
@@ -147,7 +149,10 @@ export const getSystemInfoSync : GetSystemInfoSync = function () : GetSystemInfo
export const getWindowInfo: GetWindowInfo = function(): GetWindowInfoResult {
- const activity = UTSAndroid.getUniActivity()!!;
+ let activity = UTSAndroid.getTopPageActivity();
+ if(activity == null){
+ activity = UTSAndroid.getUniActivity()!!
+ }
const pixelRatio = DeviceUtil.getScaledDensity(activity)
const screenWidth = DeviceUtil.getScreenWidth();
const screenHeight = DeviceUtil.getScreenHeight();
diff --git a/uni_modules/uni-getSystemInfo/utssdk/app-ios/index.uts b/uni_modules/uni-getSystemInfo/utssdk/app-ios/index.uts
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..6c05edcde9531a5e1ae9d5e85cb2ef2111d3a1bf 100644
--- a/uni_modules/uni-getSystemInfo/utssdk/app-ios/index.uts
+++ b/uni_modules/uni-getSystemInfo/utssdk/app-ios/index.uts
@@ -0,0 +1,156 @@
+import { GetSystemInfoOptions, GetSystemInfo, GetSystemInfoResult, SafeArea, SafeAreaInsets, GetSystemInfoSync, GetWindowInfo, GetWindowInfoResult } from "../interface.uts";
+import { UTSiOS } from "DCloudUTSFoundation";
+import { UIScreen , UIDevice ,UIApplication } from 'UIKit';
+export const getSystemInfo : GetSystemInfo = function (options : GetSystemInfoOptions) {
+ const result = getSystemInfoSync();
+ const success = options.success;
+ const complete = options.complete;
+ success?.(result);
+ complete?.(result);
+}
+
+export const getSystemInfoSync : GetSystemInfoSync = function () : GetSystemInfoResult {
+ const windowInfo : GetWindowInfoResult = getWindowInfoResult()
+
+ const deviceType = UIDevice.current.userInterfaceIdiom == UIUserInterfaceIdiom.pad ? "pad" : "phone"
+
+ const osVersion = UIDevice.current.systemVersion
+
+ let osTheme = 'light'
+ if(UTSiOS.available("iOS 13, *")){
+ let currentTraitCollection = UIApplication.shared.keyWindow?.traitCollection
+ osTheme = currentTraitCollection?.userInterfaceStyle == UIUserInterfaceStyle.dark ? "dark" : "light"
+ }
+
+ let deviceOrientation = 'portrait'
+ const orient = UIApplication.shared.statusBarOrientation;
+ if (orient == UIInterfaceOrientation.landscapeLeft || orient == UIInterfaceOrientation.landscapeRight) {
+ deviceOrientation = "landscape";
+ }
+
+ const result : GetSystemInfoResult = {
+ SDKVersion: "",
+ appId: UTSiOS.getAppId(),
+ appLanguage: UTSiOS.getOsLanguage(),
+ appName: UTSiOS.getAppName(),
+ appVersion: UTSiOS.getAppVersion(),
+ appVersionCode: UTSiOS.getAppVersionCode(),
+ appWgtVersion: UTSiOS.getAppWgtVersion(),
+ brand: "apple",
+ browserName: "wkwebview",
+ browserVersion: osVersion,
+ deviceId: UTSiOS.getDeviceId(),
+ deviceBrand: "apple",
+ deviceModel: UTSiOS.getModel(),
+ deviceType: deviceType,
+ devicePixelRatio: Number.from(UIScreen.main.scale),
+ deviceOrientation: deviceOrientation,
+ language: UTSiOS.getOsLanguage(),
+ model: UTSiOS.getModel(),
+ osName: 'ios',
+ osVersion: osVersion,
+ osLanguage: UTSiOS.getOsLanguage(),
+ osTheme: osTheme,
+ pixelRatio: windowInfo.pixelRatio,
+ platform: 'ios',
+ screenWidth: windowInfo.screenWidth,
+ screenHeight: windowInfo.screenHeight,
+ statusBarHeight: windowInfo.statusBarHeight,
+ system: String(format = "iOS %@", osVersion),
+ ua: UTSiOS.getUserAgent(),
+ uniCompileVersion: UTSiOS.getCompileVersion(),
+ uniCompilerVersion: UTSiOS.getCompileVersion(),
+ uniPlatform: "app",
+ uniRuntimeVersion: UTSiOS.getRuntimeVersion(),
+ uniCompileVersionCode: systemInfoConvertVersionCode(UTSiOS.getCompileVersion()),
+ uniCompilerVersionCode: systemInfoConvertVersionCode(UTSiOS.getCompileVersion()),
+ uniRuntimeVersionCode: systemInfoConvertVersionCode(UTSiOS.getRuntimeVersion()),
+ version: UTSiOS.getInnerVersion(),
+ romName: "ios",
+ romVersion: osVersion,
+ windowWidth: windowInfo.windowWidth,
+ windowHeight: windowInfo.windowHeight,
+ windowTop: windowInfo.windowTop,
+ windowBottom: windowInfo.windowBottom,
+ safeAreaInsets: windowInfo.safeAreaInsets,
+ safeArea: windowInfo.safeArea,
+ };
+ return result;
+}
+
+const systemInfoConvertVersionCode = function(version: string): number {
+ if (version.length > 0){
+ const components = version.components(separatedBy= '.')
+ var resultString = ""
+ for (let i = 0; i < components.length; i++) {
+ resultString = (i == 0) ? (resultString + components[i] + '.') : (resultString + components[i])
+ }
+ return parseFloat(resultString)
+ }
+ return 0
+}
+
+function getWindowInfoResult() : GetWindowInfoResult {
+ let insets : Map = UTSiOS.getSafeAreaInsets()
+ let window : Map = UTSiOS.getWindowInfo()
+
+ const windowWidth = window.get("windowWidth") as number
+ const windowHeight = window.get("windowHeight") as number
+ const windowTop = window.get("windowTop") as number
+ const windowBottom = window.get("windowBottom") as number
+
+
+ const screenWidth = Number.from(UIScreen.main.bounds.width)
+ const screenHeight = Number.from(UIScreen.main.bounds.height)
+
+ const insetLeft = insets.get("left") as number
+ const insetRight = insets.get("right") as number
+ const insetTop = insets.get("top") as number
+ const insetBottom = insets.get("bottom") as number
+
+ const safeAreaInsets : SafeAreaInsets = {
+ left: insetLeft,
+ top: insetTop,
+ right: insetRight,
+ bottom: insetBottom
+ }
+
+ const safeAreaLeft = insetLeft
+ const safeAreaRight = windowWidth - insetRight
+ const safeAreaTop = insetTop
+ const safeAreaBottom = windowHeight - insetBottom
+ const safeAreaWidth = windowWidth - insetLeft - insetRight
+ const safeAreaHeight = windowHeight - insetTop - insetBottom
+
+ const safeArea : SafeArea = {
+ left: safeAreaLeft,
+ top: safeAreaTop,
+ right: safeAreaRight,
+ bottom: safeAreaBottom,
+ width: safeAreaWidth,
+ height: safeAreaHeight
+ }
+
+ const screenTop = screenHeight - windowHeight
+
+ const result : GetWindowInfoResult = {
+ pixelRatio: Number.from(UIScreen.main.scale),
+ screenWidth: screenWidth,
+ screenHeight: screenHeight,
+ windowWidth: windowWidth,
+ windowHeight: windowHeight,
+ statusBarHeight: UTSiOS.getStatusBarHeight(),
+ windowTop: windowTop,
+ windowBottom: windowBottom,
+ safeArea: safeArea,
+ safeAreaInsets: safeAreaInsets,
+ screenTop: screenTop
+ };
+
+ return result;
+}
+
+export const getWindowInfo: GetWindowInfo = function(): GetWindowInfoResult {
+
+ return getWindowInfoResult();
+}
\ No newline at end of file
diff --git a/uni_modules/uni-getSystemInfo/utssdk/interface.uts b/uni_modules/uni-getSystemInfo/utssdk/interface.uts
index 2ec4dba25098ad8699e96e46d03a767f2bdb1395..e92fec3872ad2a024966f302f27b962c82502495 100644
--- a/uni_modules/uni-getSystemInfo/utssdk/interface.uts
+++ b/uni_modules/uni-getSystemInfo/utssdk/interface.uts
@@ -6,20 +6,25 @@ export interface Uni {
* @param {GetSystemInfoOptions} options
* @return {void}
* @tutorial http://uniapp.dcloud.io/api/system/info?id=getsysteminfo
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "4.4",
- * "uniVer": "√",
- * "unixVer": "3.9+"
- * },
- * "ios": {
- * "osVer": "9.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * }
- * }
- * }
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "√",
+ * "unixVer": "3.9+"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * },
+ * "web": {
+ * "uniVer": "√",
+ * "unixVer": "4.0"
+ * }
+ * }
* @example
```typescript
uni.getSystemInfo({
@@ -41,20 +46,25 @@ export interface Uni {
* @param {void}
* @return {GetSystemInfoResult}
* @tutorial http://uniapp.dcloud.io/api/system/info?id=getsysteminfosync
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "4.4",
- * "uniVer": "√",
- * "unixVer": "3.9+"
- * },
- * "ios": {
- * "osVer": "9.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * }
- * }
- * }
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "√",
+ * "unixVer": "3.9+"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * },
+ * "web": {
+ * "uniVer": "√",
+ * "unixVer": "4.0"
+ * }
+ * }
* @example
```typescript
uni.getSystemInfoSync()
@@ -69,20 +79,25 @@ export interface Uni {
* @param {void}
* @return {GetWindowInfoResult} result
* @tutorial http://uniapp.dcloud.io/api/system/getWindowInfo.html
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "4.4",
- * "uniVer": "√",
- * "unixVer": "3.9+"
- * },
- * "ios": {
- * "osVer": "9.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * }
- * }
- * }
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "√",
+ * "unixVer": "3.9+"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * },
+ * "web": {
+ * "uniVer": "√",
+ * "unixVer": "4.0"
+ * }
+ * }
* @example
```typescript
uni.getWindowInfo()
@@ -166,22 +181,23 @@ export type GetSystemInfoResult = {
/**
* 应用资源(wgt)的版本名称。
*
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "4.4",
- * "uniVer": "√",
- * "unixVer": "x"
- * },
- * "ios": {
- * "osVer": "9.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * }
- * }
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * }
* }
*/
- appWgtVersion: string | null,
+ appWgtVersion?: string | null,
/**
* 手机品牌。
*/
@@ -207,20 +223,18 @@ export type GetSystemInfoResult = {
*/
deviceModel: string,
/**
- * 设备类型。`phone`、`pad`、`pc`
+ * 设备类型。
*/
- deviceType: string,
+ deviceType: 'phone' | 'pad' | 'tv' | 'watch' | 'pc' | 'undefined' | 'car' | 'vr' | 'appliance',
/**
* 设备像素比
*/
devicePixelRatio: number,
/**
- * 设备方向。如:`竖屏 portrait`、`横屏 landscape`
- * - portrait: 竖屏
- * - landscape: 横屏
+ * 设备方向。
* @type 'portrait' | 'landscape'
*/
- deviceOrientation: string,
+ deviceOrientation: 'portrait' | 'landscape',
/**
* 程序设置的语言
*/
@@ -230,9 +244,9 @@ export type GetSystemInfoResult = {
*/
model: string,
/**
- * ios、android、windows、mac、linux
+ * 系统名称
*/
- osName: string,
+ osName: 'ios' | 'android' | 'mac' | 'windows' | 'linux',
/**
* 操作系统版本。如 ios 版本,andriod 版本
*/
@@ -242,24 +256,25 @@ export type GetSystemInfoResult = {
*/
osLanguage: string,
/**
- * 操作系统主题 light、dark。
+ * 操作系统主题
*
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "4.4",
- * "uniVer": "√",
- * "unixVer": "x"
- * },
- * "ios": {
- * "osVer": "9.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * }
- * }
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "√",
+ * "unixVer": "√"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * }
* }
*/
- osTheme: string | null,
+ osTheme?: 'light' | 'dark' | null,
/**
* 设备像素比
*/
@@ -267,7 +282,7 @@ export type GetSystemInfoResult = {
/**
* 客户端平台
*/
- platform: string,
+ platform: 'ios' | 'android' | 'mac' | 'windows' | 'linux',
/**
* 屏幕宽度
*/
@@ -298,20 +313,30 @@ export type GetSystemInfoResult = {
ua: string,
/**
* uni 编译器版本
+ * @deprecated 已废弃,仅为了向下兼容保留
*/
uniCompileVersion: string,
/**
- * uni-app 运行平台。如:`app`、`mp-weixin`、`web`
+ * uni 编译器版本
+ */
+ uniCompilerVersion: string,
+ /**
+ * uni-app 运行平台。
*/
- uniPlatform: string,
+ uniPlatform: 'app' | 'web' | 'mp-weixin' | 'mp-alipay' | 'mp-baidu' | 'mp-toutiao' | 'mp-lark' | 'mp-qq' | 'mp-kuaishou' | 'mp-jd' | 'mp-360' | 'quickapp-webview' | 'quickapp-webview-union' | 'quickapp-webview-huawei',
/**
* uni 运行时版本
*/
uniRuntimeVersion: string,
/**
* uni 编译器版本号
+ * @deprecated 已废弃,仅为了向下兼容保留
*/
uniCompileVersionCode: number,
+ /**
+ * uni 编译器版本号
+ */
+ uniCompilerVersionCode: number,
/**
* uni 运行时版本号
*/
@@ -345,44 +370,26 @@ export type GetSystemInfoResult = {
* 可使用窗口的底部位置
*/
windowBottom: number,
- /**
- * oaid
- *
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "4.4",
- * "uniVer": "√",
- * "unixVer": "√"
- * },
- * "ios": {
- * "osVer": "x",
- * "uniVer": "x",
- * "unixVer": "x"
- * }
- * }
- * }
- */
- oaid: string | null
/**
* Android 系统API库的版本。
*
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "4.4",
- * "uniVer": "√",
- * "unixVer": "√"
- * },
- * "ios": {
- * "osVer": "x",
- * "uniVer": "x",
- * "unixVer": "x"
- * }
- * }
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "√",
+ * "unixVer": "√"
+ * },
+ * "ios": {
+ * "osVer": "x",
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * }
+ * }
* }
*/
- osAndroidAPILevel: number | null
+ osAndroidAPILevel?: number | null
};
export type GetSystemInfoSuccessCallback = (result: GetSystemInfoResult) => void;
type GetSystemInfoFail = UniError;
diff --git a/uni_modules/uni-getSystemSetting/utssdk/app-android/index.uts b/uni_modules/uni-getSystemSetting/utssdk/app-android/index.uts
index d5f51de28df435bafdb07121b32dc7f0043c529f..827bb875a73cf2164bc55a0bed292768b9fabaf7 100644
--- a/uni_modules/uni-getSystemSetting/utssdk/app-android/index.uts
+++ b/uni_modules/uni-getSystemSetting/utssdk/app-android/index.uts
@@ -1,4 +1,3 @@
-import { UTSAndroid } from "io.dcloud.uts";
import { DeviceUtil } from './device/DeviceUtil.uts';
import { GetSystemSetting, GetSystemSettingResult } from '../interface.uts'
diff --git a/uni_modules/uni-getSystemSetting/utssdk/interface.uts b/uni_modules/uni-getSystemSetting/utssdk/interface.uts
index 954e4cba0409af160293de3b0f5a9ef944fc9670..56eaeab18abb0ab1aac3eb400fb46cfc7b311253 100644
--- a/uni_modules/uni-getSystemSetting/utssdk/interface.uts
+++ b/uni_modules/uni-getSystemSetting/utssdk/interface.uts
@@ -24,7 +24,7 @@ export type GetSystemSettingResult = {
/**
* 设备方向
*/
- deviceOrientation : string
+ deviceOrientation : 'portrait' | 'landscape',
}
@@ -38,20 +38,21 @@ export interface Uni {
* 获取系统设置
* @return {object}
* @tutorial https://uniapp.dcloud.net.cn/api/system/getsystemsetting.html
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "4.4",
- * "uniVer": "√",
- * "unixVer": "3.9+"
- * },
- * "ios": {
- * "osVer": "9.0",
- * "uniVer": "√",
- * "unixVer": "3.9+"
- * }
- * }
- * }
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "√",
+ * "unixVer": "3.9+"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * }
+ * }
* @example
```typescript
uni.getSystemSetting()
diff --git a/uni_modules/uni-getbatteryinfo/utssdk/interface.uts b/uni_modules/uni-getbatteryinfo/utssdk/interface.uts
index 214180b1fd9c777eafd021fba91cea0351a48950..79130b5dac27150d68fbf533ab06186612d70975 100644
--- a/uni_modules/uni-getbatteryinfo/utssdk/interface.uts
+++ b/uni_modules/uni-getbatteryinfo/utssdk/interface.uts
@@ -91,7 +91,7 @@ interface Uni {
* "ios": {
* "osVer": "9.0",
* "uniVer": "3.6.11",
- * "unixVer": "3.9.0"
+ * "unixVer": "x"
* }
* }
* }
@@ -118,7 +118,7 @@ interface Uni {
* "ios": {
* "osVer": "9.0",
* "uniVer": "3.6.11",
- * "unixVer": "3.9.0"
+ * "unixVer": "x"
* }
* }
* }
diff --git a/uni_modules/uni-installApk/changelog.md b/uni_modules/uni-installApk/changelog.md
index f6c958315f645b5da63f7296755c1493e57d5c20..d67eb701ef976498949ebb5d5eec4b9531e0834e 100644
--- a/uni_modules/uni-installApk/changelog.md
+++ b/uni_modules/uni-installApk/changelog.md
@@ -1,3 +1,5 @@
+## 1.0.4(2023-12-08)
+兼容asset目录文件的处理
## 1.0.3(2023-10-27)
遵循UniError规范
## 1.0.2(2023-10-27)
diff --git a/uni_modules/uni-installApk/package.json b/uni_modules/uni-installApk/package.json
index c3889207923f11964792eb3bd7659e39427e6ab8..2270fe2ab7e79516176a637fa9536ccfc1a60111 100644
--- a/uni_modules/uni-installApk/package.json
+++ b/uni_modules/uni-installApk/package.json
@@ -1,7 +1,7 @@
{
"id": "uni-installApk",
"displayName": "uni-installApk",
- "version": "1.0.3",
+ "version": "1.0.4",
"description": "uni-installApk",
"keywords": [
"uni-installApk"
diff --git a/uni_modules/uni-installApk/utssdk/app-android/index.uts b/uni_modules/uni-installApk/utssdk/app-android/index.uts
index cfdef2ed5ce2368b42ad73e9152d2dadf2ddc9cb..64e7b6bdc7698fee1d7ddce32329aede1e619ed7 100644
--- a/uni_modules/uni-installApk/utssdk/app-android/index.uts
+++ b/uni_modules/uni-installApk/utssdk/app-android/index.uts
@@ -1,4 +1,4 @@
-import { InstallApkOptions, InstallApkSuccess } from "../interface.uts"
+import { InstallApkOptions, InstallApkSuccess } from "../interface.uts"
import { InstallApkFailImpl } from "../unierror.uts"
import Intent from 'android.content.Intent';
import Build from 'android.os.Build';
@@ -6,34 +6,78 @@ import File from 'java.io.File';
import FileProvider from 'androidx.core.content.FileProvider';
import Context from 'android.content.Context';
import Uri from 'android.net.Uri';
+import FileOutputStream from 'java.io.FileOutputStream';
export function installApk(options : InstallApkOptions) : void {
- const context = UTSAndroid.getAppContext() as Context
- const filePath = UTSAndroid.convert2AbsFullPath(options.filePath)
- const apkFile = new File(filePath)
- if (!apkFile.exists() && !apkFile.isFile()) {
- let error = new InstallApkFailImpl(1300002);
- options.fail?.(error)
- options.complete?.(error)
- return
- }
- const intent = new Intent()
- intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
- intent.setAction(Intent.ACTION_VIEW)
-
- if (Build.VERSION.SDK_INT >= 24) {
- const authority = context.getPackageName() + ".dc.fileprovider"
- const apkUri = FileProvider.getUriForFile(context, authority, apkFile)
- intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
- intent.setDataAndType(apkUri, "application/vnd.android.package-archive");
- } else {
- intent.setDataAndType(Uri.fromFile(apkFile), "application/vnd.android.package-archive");
- }
-
- context.startActivity(intent)
- const success : InstallApkSuccess = {
- errMsg: "success"
- }
- options.success?.(success)
- options.complete?.(success)
-}
\ No newline at end of file
+ const context = UTSAndroid.getAppContext() as Context
+ var filePath = UTSAndroid.convert2AbsFullPath(options.filePath)
+ var apkFile : File | null = null;
+ if (filePath.startsWith("/android_asset/")) {
+ filePath = filePath.replace("/android_asset/", "")
+ apkFile = copyAssetFileToPrivateDir(context, filePath)
+ } else {
+ apkFile = new File(filePath)
+ }
+
+ if (apkFile != null && !apkFile.exists() && !apkFile.isFile()) {
+ let error = new InstallApkFailImpl(1300002);
+ options.fail?.(error)
+ options.complete?.(error)
+ return
+ }
+ const intent = new Intent()
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+ intent.setAction(Intent.ACTION_VIEW)
+
+ if (Build.VERSION.SDK_INT >= 24) {
+ const authority = context.getPackageName() + ".dc.fileprovider"
+ const apkUri = FileProvider.getUriForFile(context, authority, apkFile!!)
+ intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
+ intent.setDataAndType(apkUri, "application/vnd.android.package-archive");
+ } else {
+ intent.setDataAndType(Uri.fromFile(apkFile!!), "application/vnd.android.package-archive");
+ }
+
+ context.startActivity(intent)
+ const success : InstallApkSuccess = {
+ errMsg: "success"
+ }
+ options.success?.(success)
+ options.complete?.(success)
+}
+
+
+function copyAssetFileToPrivateDir(context : Context, fileName : string) : File | null {
+ try {
+ const destPath = context.getCacheDir().getPath() + "/apks/" + fileName
+ const outFile = new File(destPath)
+ const parentFile = outFile.getParentFile()
+ if (parentFile != null) {
+ if (!parentFile.exists()) {
+ parentFile.mkdirs()
+ }
+ }
+ if (!outFile.exists()) {
+ outFile.createNewFile()
+ }
+ const inputStream = context.getAssets().open(fileName)
+ const outputStream = new FileOutputStream(outFile)
+ let buffer = new ByteArray(1024);
+ do {
+ let len = inputStream.read(buffer);
+ if (len == -1) {
+ break;
+ }
+ outputStream.write(buffer, 0, len)
+ } while (true)
+
+ inputStream.close()
+ outputStream.close()
+
+ return outFile
+ } catch (e : Exception) {
+ e.printStackTrace()
+ }
+
+ return null
+}
diff --git a/uni_modules/uni-installApk/utssdk/index.d.ts b/uni_modules/uni-installApk/utssdk/index.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..f506a856af10358c3cb5beba5b17accfe2a2e08b
--- /dev/null
+++ b/uni_modules/uni-installApk/utssdk/index.d.ts
@@ -0,0 +1,78 @@
+declare namespace UniNamespace {
+
+interface InstallApkSuccess {
+ /**
+ * 安装成功消息
+ */
+ errMsg : string
+}
+
+type InstallApkErrorCode = 1300002
+interface InstallApkFail {
+ errCode : InstallApkErrorCode
+}
+
+type InstallApkComplete = any
+
+type InstallApkSuccessCallback = (res : InstallApkSuccess) => void
+type InstallApkFailCallback = (err : InstallApkFail) => void
+type InstallApkCompleteCallback = (res : InstallApkComplete) => void
+
+interface InstallApkOptions {
+ /**
+ * apk文件地址
+ */
+ filePath : string,
+ /**
+ * 接口调用成功的回调函数
+ * @defaultValue null
+ */
+ success ?: InstallApkSuccessCallback | null,
+ /**
+ * 接口调用失败的回调函数
+ * @defaultValue null
+ */
+ fail ?: InstallApkFailCallback | null,
+ /**
+ * 接口调用结束的回调函数(调用成功、失败都会执行)
+ * @defaultValue null
+ */
+ complete ?: InstallApkCompleteCallback | null
+}
+
+}
+
+
+declare interface Uni {
+ /**
+ * installApk()
+ * @description
+ * 安装apk
+ * @param {InstallApkOptions}
+ * @return {void}
+ * @uniPlatform {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "3.94+",
+ * "unixVer": "3.94+"
+ * },
+ * "ios": {
+ * "osVer": "x",
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * }
+ * }
+ * }
+ * @example
+ ```typescript
+ uni.installApk({
+ filePath: "/xx/xx/xx.apk",
+ complete: (res: any) => {
+ console.log("complete => " + JSON.stringify(res));
+ }
+ });
+ ```
+ */
+ installApk(options : UniNamespace.InstallApkOptions) : void
+}
diff --git a/uni_modules/uni-installApk/utssdk/interface.uts b/uni_modules/uni-installApk/utssdk/interface.uts
index 35edfcd7eaeddfd4f192803385829389bac78689..d16d5e075ea9f2fc26fb07b75d23fb58f8fb9d92 100644
--- a/uni_modules/uni-installApk/utssdk/interface.uts
+++ b/uni_modules/uni-installApk/utssdk/interface.uts
@@ -8,7 +8,7 @@ export interface Uni {
* @uniPlatform {
* "app": {
* "android": {
- * "osVer": "4.4",
+ * "osVer": "5.0",
* "uniVer": "3.94+",
* "unixVer": "3.94+"
* },
@@ -17,7 +17,11 @@ export interface Uni {
* "uniVer": "x",
* "unixVer": "x"
* }
- * }
+ * },
+ * "web": {
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * }
* }
* @example
```typescript
diff --git a/uni_modules/uni-media/utssdk/ChooseImageUtils.uts b/uni_modules/uni-media/utssdk/ChooseImageUtils.uts
index acd0aa10d2f549b68e8e28d154e9559fee7e4d99..89c248bf3d04b1ab156d7f013ed92dd25df8c836 100644
--- a/uni_modules/uni-media/utssdk/ChooseImageUtils.uts
+++ b/uni_modules/uni-media/utssdk/ChooseImageUtils.uts
@@ -1,7 +1,6 @@
import { ChooseImageOptions, ChooseVideoOptions } from "./interface.uts"
import {
- UniError_ChooseImage, UniError_ChooseVideo, UniError_SaveImageToPhotosAlbum, UniError_SaveVideoToPhotosAlbum,
- UniErrors
+ UniError_ChooseImage, UniError_ChooseVideo, MediaErrorImpl
} from "./unierror.uts"
export const CODE_CAMERA_ERROR = 11;
export const CODE_GALLERY_ERROR = 12;
@@ -19,9 +18,9 @@ export function uniChooseImage(options : ChooseImageOptions, onSourceTypeSelect
let itemList = ["拍摄", "从相册选择"]
if (sourceType.length == 1) {
if (sourceType.indexOf("album") >= 0) {
- onSourceTypeSelect?.(count!, compressed, 1)
+ onSourceTypeSelect(count!, compressed, 1)
} else if (sourceType.indexOf("camera") >= 0) {
- onSourceTypeSelect?.(count!, compressed, 0)
+ onSourceTypeSelect(count!, compressed, 0)
}
return
}
@@ -29,10 +28,10 @@ export function uniChooseImage(options : ChooseImageOptions, onSourceTypeSelect
uni.showActionSheet({
itemList: itemList,
success: (e) => {
- onSourceTypeSelect?.(count!, compressed, e.tapIndex!)
+ onSourceTypeSelect(count!, compressed, e.tapIndex!)
},
fail: (e) => {
- let error : UniError = { "errSubject": UniError_ChooseImage, "errCode": 1101001, "errMsg": UniErrors[1101001]! }
+ let error = new MediaErrorImpl(1101001, UniError_ChooseImage);
options.fail?.(error)
options.complete?.(error)
}
@@ -50,9 +49,9 @@ export function uniChooseVideo(options : ChooseVideoOptions, onSourceTypeSelect
let itemList = ["拍摄", "从相册选择"]
if (sourceType.length == 1) {
if (sourceType.indexOf("album") >= 0) {
- onSourceTypeSelect?.(count!, compressed, 1)
+ onSourceTypeSelect(count!, compressed, 1)
} else if (sourceType.indexOf("camera") >= 0) {
- onSourceTypeSelect?.(count!, compressed, 0)
+ onSourceTypeSelect(count!, compressed, 0)
}
return
}
@@ -61,10 +60,10 @@ export function uniChooseVideo(options : ChooseVideoOptions, onSourceTypeSelect
uni.showActionSheet({
itemList: itemList,
success: (e) => {
- onSourceTypeSelect?.(count!, compressed, e.tapIndex!)
+ onSourceTypeSelect(count!, compressed, e.tapIndex!)
},
fail: (e) => {
- let error : UniError = { "errSubject": UniError_ChooseVideo, "errCode": 1101001, "errMsg": UniErrors[1101001]! }
+ let error = new MediaErrorImpl(1101001, UniError_ChooseVideo);
options.fail?.(error)
options.complete?.(error)
}
diff --git a/uni_modules/uni-media/utssdk/app-android/index.uts b/uni_modules/uni-media/utssdk/app-android/index.uts
index f325d99588f6ef35f8e0493cbeb63d07c70eac92..9b945e37dd1bf579312568fac8d0069723ac9618 100644
--- a/uni_modules/uni-media/utssdk/app-android/index.uts
+++ b/uni_modules/uni-media/utssdk/app-android/index.uts
@@ -1,26 +1,24 @@
import { getUniActivity } from "io.dcloud.uts.android";
import {
- ChooseImageOptions, ChooseImage, ChooseImageSuccessCallback,
- PreviewImageOptions, PreviewImage, LongPressActionsOptions, PreviewImageSuccessCallback, LongPressActionsSuccessData,
- ClosePreviewImage, ClosePreviewImageSuccessCallback, ClosePreviewImageOptions,
- GetImageInfo, GetImageInfoOptions, GetImageInfoSuccessCallback,
- SaveImageToPhotosAlbum, SaveImageToPhotosAlbumOptions, SaveImageToPhotosAlbumSuccessCallback,
- CompressImage, CompressImageSuccessCallback, CompressImageFailCallback, CompressImageOptions,
- ChooseVideo, ChooseVideoOptions, ChooseVideoFailCallback, ChooseVideoSuccessCallback,
- GetVideoInfo, GetVideoInfoOptions, GetVideoInfoSuccessCallback,
- SaveVideoToPhotosAlbum, SaveVideoToPhotosAlbumOptions, SaveVideoToPhotosAlbumSuccessCallback,
- CompressVideo, CompressVideoOptions, CompressVideoFailCallback, CompressVideoSuccessCallback
+ ChooseImageOptions, ChooseImage,
+ PreviewImageOptions, PreviewImage, PreviewImageSuccess,
+ ClosePreviewImage, ClosePreviewImageSuccess, ClosePreviewImageOptions,
+ GetImageInfo, GetImageInfoOptions, GetImageInfoSuccess,
+ SaveImageToPhotosAlbum, SaveImageToPhotosAlbumOptions, SaveImageToPhotosAlbumSuccess,
+ CompressImage, CompressImageOptions,
+ ChooseVideo, ChooseVideoOptions,
+ GetVideoInfo, GetVideoInfoOptions, GetVideoInfoSuccess,
+ SaveVideoToPhotosAlbum, SaveVideoToPhotosAlbumOptions, SaveVideoToPhotosAlbumSuccess,
+ CompressVideo, CompressVideoOptions,
} from "../interface.uts"
import {
UniError_PreviewImage, UniError_GetImageInfo, UniError_SaveImageToPhotosAlbum, UniError_SaveVideoToPhotosAlbum,
- UniErrors
+ MediaErrorImpl
} from "../unierror.uts"
-import { CODE_CAMERA_ERROR, CODE_GALLERY_ERROR, CODE_GET_IMAGE_INFO_CODE } from "../ChooseImageUtils.uts"
import { chooseMediaImage, chooseMediaVideo } from "./utils/ChooseMediaUtils.uts"
import { transcodeImage, transcodeVideo } from './utils/CompressUtils.uts'
import { getVideoMetadata } from "./utils/MediaUtils.uts"
import Intent from 'android.content.Intent';
-import UTSAndroid from 'io.dcloud.uts.UTSAndroid';
import Manifest from 'android.Manifest';
import Build from 'android.os.Build';
import File from 'java.io.File';
@@ -44,11 +42,14 @@ import MediaMetadataRetriever from 'android.media.MediaMetadataRetriever';
import MediaStore from 'android.provider.MediaStore';
import ContentValues from 'android.content.ContentValues';
import Exception from 'java.lang.Exception';
-import BufferedOutputStream from 'java.io.BufferedOutputStream';
-import ByteArrayInputStream from 'java.io.ByteArrayInputStream';
+import InputStream from 'java.io.InputStream';
+import BufferedInputStream from 'java.io.BufferedInputStream';
// import { actionSheetImpl, ShowActionSheetOptions, closeActionSheet } from "./showActionSheet.uts";
+const mediaCachePath = UTSAndroid.getAppCachePath() + "uni-media/"
+
+const ASSETS_PATH = '/android_asset/'
/**
* 图片压缩目前采用原java代码压缩方式
*/
@@ -67,6 +68,10 @@ export const previewImage : PreviewImage = function (options : PreviewImageOptio
if (!localPath.startsWith("data:image") && !isNetPath(localPath)) {
localPath = UTSAndroid.convert2AbsFullPath(localPath)
}
+ if (localPath.startsWith(ASSETS_PATH)) {
+ localPath = localPath.replace(ASSETS_PATH, "")
+ }
+
values.add(localPath)
oroginalValues.add(original)
})
@@ -96,11 +101,11 @@ export const previewImage : PreviewImage = function (options : PreviewImageOptio
// uts目前无法支持嵌套方法,长按事件暂时不支持
// LongClickEventManager.getInstance().addOnlongClickListener(callbackId, new LongClick(options))
getUniActivity()!.startActivity(intent)
- let success : PreviewImageSuccessCallback = { errMsg: 'ok', "errSubject": UniError_PreviewImage }
+ let success : PreviewImageSuccess = { errMsg: 'ok', "errSubject": UniError_PreviewImage }
options.success?.(success)
options.complete?.(success)
} else {
- let error : UniError = { "errCode": 1101002, "errMsg": UniErrors[1101002]!, "errSubject": UniError_PreviewImage }
+ let error = new MediaErrorImpl(1101002, UniError_PreviewImage);
options.fail?.(error)
options.complete?.(error)
}
@@ -186,7 +191,7 @@ export const closePreviewImage : ClosePreviewImage = function (options : ClosePr
if (activity != null) {
activity.onBackPressed()
}
- let callback : ClosePreviewImageSuccessCallback = {
+ let callback : ClosePreviewImageSuccess = {
errMsg: "ok"
}
options.success?.(callback)
@@ -202,7 +207,7 @@ export const getImageInfo : GetImageInfo = function (options : GetImageInfoOptio
path = UTSAndroid.convert2AbsFullPath(options.src)
getExif(path, options, null)
} else {
- let imageInfoCallback : UniError = { "errCode": 1101003, "errMsg": UniErrors[1101003]!, "errSubject": UniError_GetImageInfo }
+ let imageInfoCallback = new MediaErrorImpl(1101003, UniError_GetImageInfo);
options.fail?.(imageInfoCallback)
options.complete?.(imageInfoCallback)
}
@@ -226,7 +231,7 @@ class ImageInfoTarget extends CustomTarget {
mimeType = mimeType.substring(mimeType.indexOf("/") + 1)
}
// 拼接保存路径
- let path = UTSAndroid.getAppTempPath()! + "imageInfo/" + System.currentTimeMillis()
+ let path = mediaCachePath + System.currentTimeMillis()
if (!TextUtils.isEmpty(mimeType)) {
path += "." + mimeType
} else {
@@ -235,7 +240,7 @@ class ImageInfoTarget extends CustomTarget {
if (copyFile(resource.getPath(), path)) {
getExif(path, this.options, bitmapOption)
} else {
- let imageInfoCallback : UniError = { "errCode": 1101004, "errMsg": UniErrors[1101004]!, "errSubject": UniError_GetImageInfo }
+ let imageInfoCallback = new MediaErrorImpl(1101004, UniError_GetImageInfo);
this.options.fail?.(imageInfoCallback)
this.options.complete?.(imageInfoCallback)
}
@@ -245,21 +250,25 @@ class ImageInfoTarget extends CustomTarget {
}
override onLoadFailed(errorDrawable : Drawable | null) {
- let imageInfoCallback : UniError = { "errCode": 1101004, "errMsg": UniErrors[1101004]!, "errSubject": UniError_GetImageInfo }
+ let imageInfoCallback = new MediaErrorImpl(1101004, UniError_GetImageInfo);
this.options.fail?.(imageInfoCallback)
this.options.complete?.(imageInfoCallback)
}
}
function getExif(src : string, options : GetImageInfoOptions, bitmapOption : BitmapFactory.Options | null) {
- if (!new File(src).exists()) {
- let imageInfoCallback : UniError = { "errCode": 1101003, "errMsg": UniErrors[1101003]!, "errSubject": UniError_GetImageInfo }
+ var exifInfo : ExifInterface | null = null
+ if (src.startsWith(ASSETS_PATH)) {
+ exifInfo = new ExifInterface(UTSAndroid.getUniActivity()!.getAssets().open(src.replace(ASSETS_PATH, "")));
+ } else if (new File(src).exists()) {
+ exifInfo = new ExifInterface(src)
+ } else {
+ let imageInfoCallback = new MediaErrorImpl(1101003, UniError_GetImageInfo);
options.fail?.(imageInfoCallback)
options.complete?.(imageInfoCallback)
return
}
try {
- let exifInfo = new ExifInterface(src);
if (bitmapOption == null) {
bitmapOption = new BitmapFactory.Options();
bitmapOption.inJustDecodeBounds = true;
@@ -301,7 +310,7 @@ function getExif(src : string, options : GetImageInfoOptions, bitmapOption : Bit
orientationStr = "up";
break;
}
- let imageInfoCallback : GetImageInfoSuccessCallback = {
+ let imageInfoCallback : GetImageInfoSuccess = {
"width": width,
"height": height,
"path": "file://" + src,
@@ -310,8 +319,8 @@ function getExif(src : string, options : GetImageInfoOptions, bitmapOption : Bit
}
options.success?.(imageInfoCallback)
options.complete?.(imageInfoCallback)
- } catch (e:Exception) {
- let imageInfoCallback : UniError = { "errCode": 1101010, "errMsg": UniErrors[1101010]!+e.toString(), "errSubject": UniError_GetImageInfo }
+ } catch (e : Exception) {
+ let imageInfoCallback = new MediaErrorImpl(1101010, UniError_GetImageInfo);
options.fail?.(imageInfoCallback)
options.complete?.(imageInfoCallback)
}
@@ -319,14 +328,26 @@ function getExif(src : string, options : GetImageInfoOptions, bitmapOption : Bit
function copyFile(fromFilePath : string, toFilePath : string) : boolean {
- let fromFile = new File(fromFilePath)
- if (!fromFile.exists()) {
- return false;
- }
- if (!fromFile.isFile()) {
- return false
- }
- if (!fromFile.canRead()) {
+ var fis : InputStream | null = null
+ try {
+ if (fromFilePath.startsWith(ASSETS_PATH)) {
+ fis = UTSAndroid.getUniActivity()!.getAssets().open(fromFilePath.replace(ASSETS_PATH, ""));
+ } else {
+ let fromFile = new File(fromFilePath)
+ if (!fromFile.exists()) {
+ return false;
+ }
+ if (!fromFile.isFile()) {
+ return false
+ }
+ if (!fromFile.canRead()) {
+ return false;
+ }
+ }
+ if (fis == null) {
+ return false
+ }
+ } catch (e) {
return false;
}
let toFile = new File(toFilePath)
@@ -337,15 +358,15 @@ function copyFile(fromFilePath : string, toFilePath : string) : boolean {
toFile.createNewFile()
}
try {
- let fis = new FileInputStream(fromFile)
+ // let fis = new FileInputStream(fromFile)
let fos = new FileOutputStream(toFile)
let byteArrays = ByteArray(1024)
- var c = fis.read(byteArrays)
+ var c = fis!!.read(byteArrays)
while (c > 0) {
fos.write(byteArrays, 0, c)
- c = fis.read(byteArrays)
+ c = fis!!.read(byteArrays)
}
- fis.close()
+ fis!!.close()
fos.close()
return true
} catch (e) {
@@ -358,11 +379,7 @@ export const saveImageToPhotosAlbum : SaveImageToPhotosAlbum = function (options
UTSAndroid.requestSystemPermission(UTSAndroid.getUniActivity()!, requestPermissionList, (a : boolean, b : string[]) => {
loadFile(options, true)
}, (a : boolean, b : string[]) => {
- let error : UniError = {
- "errCode": 1101005,
- "errMsg": UniErrors[1101005]!,
- "errSubject": UniError_SaveImageToPhotosAlbum
- }
+ let error = new MediaErrorImpl(1101005, UniError_SaveImageToPhotosAlbum);
options.fail?.(error)
options.complete?.(error)
})
@@ -376,22 +393,14 @@ function loadFile(options : SaveImageToPhotosAlbumOptions, saveToAlbum : boolean
Glide.with(getUniActivity()!).asFile().load(options.filePath).into(new SaveToAlbumTarget(options, saveToAlbum))
} else {
if (TextUtils.isEmpty(options.filePath)) {
- let error : UniError = {
- "errCode": 1101003,
- "errMsg": UniErrors[1101003]!,
- "errSubject": UniError_SaveImageToPhotosAlbum
- }
+ let error = new MediaErrorImpl(1101003, UniError_SaveImageToPhotosAlbum);
options.fail?.(error)
options.complete?.(error)
return
}
let originalPath = UTSAndroid.convert2AbsFullPath(options.filePath)
- if (!new File(originalPath).exists()) {
- let error : UniError = {
- "errCode": 1101003,
- "errMsg": UniErrors[1101003]!,
- "errSubject": UniError_SaveImageToPhotosAlbum
- }
+ if (originalPath.startsWith(ASSETS_PATH)) { } else if (!new File(originalPath).exists()) {
+ let error = new MediaErrorImpl(1101003, UniError_SaveImageToPhotosAlbum);
options.fail?.(error)
options.complete?.(error)
return
@@ -401,23 +410,33 @@ function loadFile(options : SaveImageToPhotosAlbumOptions, saveToAlbum : boolean
if (saveToAlbum) {
sendSaveToAlbumBroad(path)
}
- let success : SaveImageToPhotosAlbumSuccessCallback = {
+ let success : SaveImageToPhotosAlbumSuccess = {
"path": path
}
options.success?.(success)
options.complete?.(success)
} else {
- let error : UniError = {
- "errCode": 1101006,
- "errMsg": UniErrors[1101006]!,
- "errSubject": UniError_SaveImageToPhotosAlbum
- }
+ let error = new MediaErrorImpl(1101006, UniError_SaveImageToPhotosAlbum);
options.fail?.(error)
options.complete?.(error)
}
}
}
+function getInputStream(fromFilePath:string):InputStream|null {
+ var fis : InputStream | null = null
+ try {
+ if (fromFilePath.startsWith(ASSETS_PATH)) {
+ fis = UTSAndroid.getUniActivity()!.getAssets().open(fromFilePath.replace(ASSETS_PATH, ""));
+ } else {
+ fis = new FileInputStream(fromFilePath)
+ }
+ } catch(e){
+
+ }
+ return fis
+}
+
function copyFileToPublicPath(fromFilePath : string, toFilePath : string, isVideo : boolean) : boolean {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
try {
@@ -428,7 +447,7 @@ function copyFileToPublicPath(fromFilePath : string, toFilePath : string, isVide
}
if ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && UTSAndroid.getUniActivity()!.getApplicationInfo().targetSdkVersion >= 29) || (Build.VERSION.SDK_INT >= 30)) {
try {
- var fis = new FileInputStream(fromFilePath)
+ var fis = getInputStream(fromFilePath)
if (fis == null) {
return false
}
@@ -440,8 +459,9 @@ function copyFileToPublicPath(fromFilePath : string, toFilePath : string, isVide
} else {
let opt = new BitmapFactory.Options();
opt.inJustDecodeBounds = true;
- BitmapFactory.decodeFile(fromFilePath, opt)
+ BitmapFactory.decodeStream(fis, null, opt)
mimeType = opt.outMimeType;
+ fis.close()
}
if (mimeType == null) {
return false
@@ -469,14 +489,18 @@ function copyFileToPublicPath(fromFilePath : string, toFilePath : string, isVide
if (fos == null) {
return false
}
+ fis = getInputStream(fromFilePath)
+ if(fis == null) {
+ return false
+ }
var byteArrays = ByteArray(102400 * 2)
- var c = fis.read(byteArrays)
+ var c = fis!.read(byteArrays)
while (c > 0) {
fos!.write(byteArrays, 0, c)
- c = fis.read(byteArrays)
+ c = fis!.read(byteArrays)
}
fos!.close()
- fis.close()
+ fis!.close()
return true
} catch (e : Exception) {
e.printStackTrace();
@@ -526,13 +550,13 @@ class SaveToAlbumTarget extends CustomTarget {
if (this.saveToAlbum) {
sendSaveToAlbumBroad(path)
}
- let success : SaveImageToPhotosAlbumSuccessCallback = {
+ let success : SaveImageToPhotosAlbumSuccess = {
"path": path
}
this.options.success?.(success)
this.options.complete?.(success)
} else {
- let imageInfoCallback : UniError = { "errCode": 1101004, "errMsg": UniErrors[1101004]!, "errSubject": UniError_SaveImageToPhotosAlbum }
+ let imageInfoCallback = new MediaErrorImpl(1101004, UniError_SaveImageToPhotosAlbum);
this.options.fail?.(imageInfoCallback)
this.options.complete?.(imageInfoCallback)
}
@@ -542,7 +566,7 @@ class SaveToAlbumTarget extends CustomTarget {
}
override onLoadFailed(errorDrawable : Drawable | null) {
- let imageInfoCallback : UniError = { "errCode": 1101004, "errMsg": UniErrors[1101004]!, "errSubject": UniError_SaveImageToPhotosAlbum }
+ let imageInfoCallback = new MediaErrorImpl(1101004, UniError_SaveImageToPhotosAlbum);
this.options.fail?.(imageInfoCallback)
this.options.complete?.(imageInfoCallback)
}
@@ -559,32 +583,27 @@ export const chooseVideo : ChooseVideo = function (options : ChooseVideoOptions)
export const getVideoInfo : GetVideoInfo = function (options : GetVideoInfoOptions) {
let result = getVideoMetadata(options.src)
- if (result instanceof GetVideoInfoSuccessCallback) {
- options.success?.(result as GetVideoInfoSuccessCallback)
- } else if (result instanceof UniError)
- options.fail?.(result as UniError)
+ if (result instanceof GetVideoInfoSuccess) {
+ options.success?.(result as GetVideoInfoSuccess)
+ } else if (result instanceof MediaErrorImpl)
+ options.fail?.(result as MediaErrorImpl)
options.complete?.(result)
}
export const saveVideoToPhotosAlbum : SaveVideoToPhotosAlbum = function (options : SaveVideoToPhotosAlbumOptions) {
if (TextUtils.isEmpty(options.filePath)) {
- let error : UniError = {
- "errCode": 1101003,
- "errMsg": UniErrors[1101003]!,
- "errSubject": UniError_SaveVideoToPhotosAlbum
- }
+ let error = new MediaErrorImpl(1101003, UniError_SaveVideoToPhotosAlbum);
options.fail?.(error)
options.complete?.(error)
return
}
let originalPath = UTSAndroid.convert2AbsFullPath(options.filePath)
+ if (originalPath.startsWith(ASSETS_PATH)) {
+ originalPath = originalPath.replace(ASSETS_PATH, "")
+ }
if (!new File(originalPath).exists()) {
- let error : UniError = {
- "errCode": 1101003,
- "errMsg": UniErrors[1101003]!,
- "errSubject": UniError_SaveVideoToPhotosAlbum
- }
+ let error = new MediaErrorImpl(1101003, UniError_SaveVideoToPhotosAlbum);
options.fail?.(error)
options.complete?.(error)
return
@@ -592,17 +611,13 @@ export const saveVideoToPhotosAlbum : SaveVideoToPhotosAlbum = function (options
let path = DCIM_PATH + originalPath.substring(originalPath.lastIndexOf("/") + 1)
if (copyFileToPublicPath(originalPath, path, true)) {
sendSaveToAlbumBroad(path)
- let success : SaveVideoToPhotosAlbumSuccessCallback = {
+ let success : SaveVideoToPhotosAlbumSuccess = {
// "path": path
}
options.success?.(success)
options.complete?.(success)
} else {
- let error : UniError = {
- "errCode": 1101006,
- "errMsg": UniErrors[1101006]!,
- "errSubject": UniError_SaveVideoToPhotosAlbum
- }
+ let error = new MediaErrorImpl(1101006, UniError_SaveVideoToPhotosAlbum);
options.fail?.(error)
options.complete?.(error)
}
diff --git a/uni_modules/uni-media/utssdk/app-android/libs/nativeobj-preview-release.aar b/uni_modules/uni-media/utssdk/app-android/libs/nativeobj-preview-release.aar
index 50b20482c6092006bd2913eaeef07f2b4e6de7d3..ac13c9feef2a3ae23c4a32e593244c0b305a59a3 100644
Binary files a/uni_modules/uni-media/utssdk/app-android/libs/nativeobj-preview-release.aar and b/uni_modules/uni-media/utssdk/app-android/libs/nativeobj-preview-release.aar differ
diff --git a/uni_modules/uni-media/utssdk/app-android/res/anim/slide_in_bottom.xml b/uni_modules/uni-media/utssdk/app-android/res/anim/uni_media_slide_in_bottom.xml
similarity index 100%
rename from uni_modules/uni-media/utssdk/app-android/res/anim/slide_in_bottom.xml
rename to uni_modules/uni-media/utssdk/app-android/res/anim/uni_media_slide_in_bottom.xml
diff --git a/uni_modules/uni-media/utssdk/app-android/res/anim/slide_out_top.xml b/uni_modules/uni-media/utssdk/app-android/res/anim/uni_media_slide_out_top.xml
similarity index 100%
rename from uni_modules/uni-media/utssdk/app-android/res/anim/slide_out_top.xml
rename to uni_modules/uni-media/utssdk/app-android/res/anim/uni_media_slide_out_top.xml
diff --git a/uni_modules/uni-media/utssdk/app-android/res/drawable/dialog_bg_rounded.xml b/uni_modules/uni-media/utssdk/app-android/res/drawable/uni_media_dialog_bg_rounded.xml
similarity index 100%
rename from uni_modules/uni-media/utssdk/app-android/res/drawable/dialog_bg_rounded.xml
rename to uni_modules/uni-media/utssdk/app-android/res/drawable/uni_media_dialog_bg_rounded.xml
diff --git a/uni_modules/uni-media/utssdk/app-android/res/drawable/dialog_bg_rounded_night.xml b/uni_modules/uni-media/utssdk/app-android/res/drawable/uni_media_dialog_bg_rounded_night.xml
similarity index 70%
rename from uni_modules/uni-media/utssdk/app-android/res/drawable/dialog_bg_rounded_night.xml
rename to uni_modules/uni-media/utssdk/app-android/res/drawable/uni_media_dialog_bg_rounded_night.xml
index b976cd2923ce13c6dcc30b33023325175c964e0a..66614aad3a176f7efce4df7db7aacbf50661534a 100644
--- a/uni_modules/uni-media/utssdk/app-android/res/drawable/dialog_bg_rounded_night.xml
+++ b/uni_modules/uni-media/utssdk/app-android/res/drawable/uni_media_dialog_bg_rounded_night.xml
@@ -1,9 +1,9 @@
-
+
+ android:color="@color/uni_media_night_bg_main" />
@@ -10,7 +10,7 @@
android:id="@+id/line_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:background="@drawable/dialog_bg_rounded"
+ android:background="@drawable/uni_media_dialog_bg_rounded"
android:orientation="vertical">
@@ -44,7 +44,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
- android:background="@color/light_bg_main"
+ android:background="@color/uni_media_light_bg_main"
android:orientation="vertical">
diff --git a/uni_modules/uni-media/utssdk/app-android/res/layout/action_sheet_night.xml b/uni_modules/uni-media/utssdk/app-android/res/layout/uni_media_action_sheet_night.xml
similarity index 79%
rename from uni_modules/uni-media/utssdk/app-android/res/layout/action_sheet_night.xml
rename to uni_modules/uni-media/utssdk/app-android/res/layout/uni_media_action_sheet_night.xml
index 87c48b77f5d956250b9f0986fd1bfc222a51f045..60c742c27f1b066bc36b675e75d069df80bee74b 100644
--- a/uni_modules/uni-media/utssdk/app-android/res/layout/action_sheet_night.xml
+++ b/uni_modules/uni-media/utssdk/app-android/res/layout/uni_media_action_sheet_night.xml
@@ -2,7 +2,7 @@
@@ -10,7 +10,7 @@
android:id="@+id/line_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:background="@drawable/dialog_bg_rounded_night"
+ android:background="@drawable/uni_media_dialog_bg_rounded_night"
android:orientation="vertical">
@@ -35,7 +35,7 @@
android:id="@+id/myRecyclerview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:background="@color/night_bg_main" />
+ android:background="@color/uni_media_night_bg_main" />
@@ -44,7 +44,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
- android:background="@color/night_bg_main"
+ android:background="@color/uni_media_night_bg_main"
android:orientation="vertical">
diff --git a/uni_modules/uni-media/utssdk/app-android/res/layout/recyclerview_layout.xml b/uni_modules/uni-media/utssdk/app-android/res/layout/uni_media_recyclerview_layout.xml
similarity index 82%
rename from uni_modules/uni-media/utssdk/app-android/res/layout/recyclerview_layout.xml
rename to uni_modules/uni-media/utssdk/app-android/res/layout/uni_media_recyclerview_layout.xml
index cdbeeed3400ced711663dfd3e8a2967fd2dbc778..43a7e5c4792344a67cd0527121b12b13a9465288 100644
--- a/uni_modules/uni-media/utssdk/app-android/res/layout/recyclerview_layout.xml
+++ b/uni_modules/uni-media/utssdk/app-android/res/layout/uni_media_recyclerview_layout.xml
@@ -9,7 +9,7 @@
android:id="@+id/line_bottom"
android:layout_width="match_parent"
android:layout_height="1dp"
- android:background="@color/night_bg_hair_line"
+ android:background="@color/uni_media_night_bg_hair_line"
android:orientation="vertical" />
diff --git a/uni_modules/uni-media/utssdk/app-android/res/layout/recyclerview_layout_night.xml b/uni_modules/uni-media/utssdk/app-android/res/layout/uni_media_recyclerview_layout_night.xml
similarity index 81%
rename from uni_modules/uni-media/utssdk/app-android/res/layout/recyclerview_layout_night.xml
rename to uni_modules/uni-media/utssdk/app-android/res/layout/uni_media_recyclerview_layout_night.xml
index 43751b2cca080ac7f0fb206224c299c881791bb8..d4d8a13c7f16d2bf82be48e15c26adec405e9e87 100644
--- a/uni_modules/uni-media/utssdk/app-android/res/layout/recyclerview_layout_night.xml
+++ b/uni_modules/uni-media/utssdk/app-android/res/layout/uni_media_recyclerview_layout_night.xml
@@ -8,7 +8,7 @@
android:id="@+id/line_bottom"
android:layout_width="match_parent"
android:layout_height="1dp"
- android:background="@color/night_bg_hair_line_night"
+ android:background="@color/uni_media_night_bg_hair_line_night"
android:orientation="vertical" />
diff --git a/uni_modules/uni-media/utssdk/app-android/res/values-zh/strings.xml b/uni_modules/uni-media/utssdk/app-android/res/values-zh/strings.xml
index 18aeb020f5ef279466bfd634a100580f32dcd936..a410b07981c0c51b85c1403a893063c64375926e 100644
--- a/uni_modules/uni-media/utssdk/app-android/res/values-zh/strings.xml
+++ b/uni_modules/uni-media/utssdk/app-android/res/values-zh/strings.xml
@@ -1,4 +1,4 @@
- Configuration
- 取消
+ Configuration
+ 取消
diff --git a/uni_modules/uni-media/utssdk/app-android/res/values/colors.xml b/uni_modules/uni-media/utssdk/app-android/res/values/colors.xml
index a206cb7cdda0ef6b5b967e9e886a96033cfe460b..861edbc94d44ce43a3d83ffc53becacff7e87625 100644
--- a/uni_modules/uni-media/utssdk/app-android/res/values/colors.xml
+++ b/uni_modules/uni-media/utssdk/app-android/res/values/colors.xml
@@ -1,46 +1,46 @@
- #FFFFFF
- #efefef
+ #FFFFFF
+ #efefef
- #DEDEDE
- #FFFFFF
+ #DEDEDE
+ #FFFFFF
- #1C1C1C
- #272727
+ #1C1C1C
+ #272727
- #000000
- #F6F6F6
+ #000000
+ #F6F6F6
- #696969
- #D8D8D8
+ #696969
+ #D8D8D8
- #F6F6F6
- #1c1c1c
+ #F6F6F6
+ #1c1c1c
- #000000
- #CFCFCF
+ #000000
+ #CFCFCF
- #808080
- #CFCFCF
+ #808080
+ #CFCFCF
- #E0E0E0
- #303030
+ #E0E0E0
+ #303030
- #E3E3E3
- #303030
+ #E3E3E3
+ #303030
- #4A5E86
- #7388a2
+ #4A5E86
+ #7388a2
- #a5a5a5
- #a5a5a5
+ #a5a5a5
+ #a5a5a5
\ No newline at end of file
diff --git a/uni_modules/uni-media/utssdk/app-android/res/values/strings.xml b/uni_modules/uni-media/utssdk/app-android/res/values/strings.xml
index 9d84d4991016f203d38ec63a724ab959ce899c2d..a0c4c014e80791ca2ce22a81ae4c7322ed229018 100644
--- a/uni_modules/uni-media/utssdk/app-android/res/values/strings.xml
+++ b/uni_modules/uni-media/utssdk/app-android/res/values/strings.xml
@@ -1,5 +1,5 @@
- Configuration
- Cancel
+ Configuration
+ Cancel
\ No newline at end of file
diff --git a/uni_modules/uni-media/utssdk/app-android/res/values/styles.xml b/uni_modules/uni-media/utssdk/app-android/res/values/styles.xml
index 8fd963b14853d9dacaa9e1b838666f3026e9a9dd..00da0872198e02671fe63c38e957f2d656871e88 100644
--- a/uni_modules/uni-media/utssdk/app-android/res/values/styles.xml
+++ b/uni_modules/uni-media/utssdk/app-android/res/values/styles.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/uni_modules/uni-media/utssdk/app-android/utils/ChooseMediaUtils.uts b/uni_modules/uni-media/utssdk/app-android/utils/ChooseMediaUtils.uts
index 723b1e0e474dd2242b5badfb2742e28f3a60d091..c2ea2c1b2ba031b6d65e8632abb453a972f36d1b 100644
--- a/uni_modules/uni-media/utssdk/app-android/utils/ChooseMediaUtils.uts
+++ b/uni_modules/uni-media/utssdk/app-android/utils/ChooseMediaUtils.uts
@@ -1,17 +1,16 @@
import {
- ChooseImageOptions, ChooseImageSuccessCallback, ChooseImageCropOptions,
- ChooseVideoOptions, ChooseVideoSuccessCallback,
- GetVideoInfoSuccessCallback,
+ ChooseImageOptions, ChooseImageSuccess, ChooseImageCropOptions,
+ ChooseVideoOptions, ChooseVideoSuccess,
+ GetVideoInfoSuccess,
} from "../../interface.uts"
import {
UniError_ChooseImage, UniError_ChooseVideo,
- UniErrors
+ MediaErrorImpl
} from "../../unierror.uts"
import { getVideoMetadata } from "./MediaUtils.uts"
-import { uniChooseImage, CODE_CAMERA_ERROR, CODE_GALLERY_ERROR, CODE_GET_IMAGE_INFO_CODE, uniChooseVideo } from "../../ChooseImageUtils.uts"
+import { uniChooseImage, uniChooseVideo } from "../../ChooseImageUtils.uts"
import { getUniActivity } from "io.dcloud.uts.android";
import Intent from 'android.content.Intent';
-import UTSAndroid from 'io.dcloud.uts.UTSAndroid';
import File from 'java.io.File';
import MediaStore from 'android.provider.MediaStore';
import IMGEditActivity from "io.dcloud.uts.gallery.imageedit.IMGEditActivity";
@@ -28,6 +27,8 @@ import CompressUtil from 'io.dcloud.uts.util.CompressUtil';
const GALLERY_MEDIA_PICKER_RESULT = 1004;
+const mediaCachePath = UTSAndroid.getAppCachePath()+"uni-media/"
+
export function chooseMediaImage(option : ChooseImageOptions) {
uniChooseImage(option, function (count : number, compressed : boolean, index : number) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
@@ -46,7 +47,7 @@ export function chooseMediaImage(option : ChooseImageOptions) {
}
}, (a : boolean, b : string[]) => {
// 失败回调
- let error : UniError = { "errSubject": UniError_ChooseImage, "errCode": 1101005, "errMsg": UniErrors[1101005]! }
+ let error = new MediaErrorImpl(1101005, UniError_ChooseImage);
option.fail?.(error)
option.complete?.(error)
})
@@ -72,7 +73,7 @@ function openCameraForImage(option : ChooseImageOptions, compressed : boolean) {
if (takeCameraFunction != null) {
UTSAndroid.offAppActivityResult(takeCameraFunction!)
}
- let cameraPath = (UTSAndroid.getAppTempPath()! + "camera/" + System.currentTimeMillis() + ".jpg") // .jpg为默认配置
+ let cameraPath = (mediaCachePath + System.currentTimeMillis() + ".jpg") // .jpg为默认配置
try {
let picFile = new File(cameraPath);
if (!picFile.getParentFile().exists()) {
@@ -83,7 +84,7 @@ function openCameraForImage(option : ChooseImageOptions, compressed : boolean) {
if (requestCode == IMAGE_CAPTURE_EDIT) {
UTSAndroid.offAppActivityResult(cropFunction!)
if (resultCode == -1) {
- let success : ChooseImageSuccessCallback = {
+ let success : ChooseImageSuccess = {
"errSubject": "uni-chooseImage",
"tempFilePaths": ["file://" + cameraPath],
"errMsg": "chooseImage:ok",
@@ -92,7 +93,7 @@ function openCameraForImage(option : ChooseImageOptions, compressed : boolean) {
option.success?.(success)
option.complete?.(success)
} else {
- let error : UniError = { "errSubject": UniError_ChooseImage, "errCode": 1101007, "errMsg": UniErrors[1101007]! }
+ let error = new MediaErrorImpl(1101007, UniError_ChooseImage);
option.fail?.(error)
option.complete?.(error)
}
@@ -128,7 +129,7 @@ function openCameraForImage(option : ChooseImageOptions, compressed : boolean) {
cameraPath = CompressUtil.compressImage(cameraPath, cameraPath, false, getUniActivity()!!)
picFile = new File(cameraPath)
}
- let success : ChooseImageSuccessCallback = {
+ let success : ChooseImageSuccess = {
"errSubject": "uni-chooseImage",
"tempFilePaths": ["file://" + cameraPath],
"errMsg": "chooseImage:ok",
@@ -138,12 +139,12 @@ function openCameraForImage(option : ChooseImageOptions, compressed : boolean) {
option.complete?.(success)
}
} else {
- let error : UniError = { "errSubject": UniError_ChooseImage, "errCode": 1101008, "errMsg": UniErrors[1101008]! }
+ let error = new MediaErrorImpl(1101008, UniError_ChooseImage);
option.fail?.(error)
option.complete?.(error)
}
} else {
- let error : UniError = { "errSubject": UniError_ChooseImage, "errCode": 1101008, "errMsg": UniErrors[1101008]! }
+ let error = new MediaErrorImpl(1101008, UniError_ChooseImage);
option.fail?.(error)
option.complete?.(error)
}
@@ -190,7 +191,7 @@ function openAlbumForImage(option : ChooseImageOptions, count : number, type : n
}
}
if (picPaths.length > 0) {
- let success : ChooseImageSuccessCallback = {
+ let success : ChooseImageSuccess = {
"errSubject": "uni-chooseImage",
"tempFilePaths": picPaths,
"errMsg": "chooseImage:ok",
@@ -199,7 +200,7 @@ function openAlbumForImage(option : ChooseImageOptions, count : number, type : n
option.success?.(success)
option.complete?.(success)
} else {
- let error : UniError = { "errSubject": UniError_ChooseImage, "errCode": 1101001, "errMsg": UniErrors[1101001]! }
+ let error = new MediaErrorImpl(1101001, UniError_ChooseImage);
option.fail?.(error)
option.complete?.(error)
}
@@ -228,11 +229,11 @@ export function chooseMediaVideo(options : ChooseVideoOptions) {
}, (a : boolean, b : string[]) => {
// 失败回调
if (index == 0) {
- let error : UniError = { "errSubject": UniError_ChooseVideo, "errCode": 1101005, "errMsg": UniErrors[1101005]! }
+ let error = new MediaErrorImpl(1101005, UniError_ChooseVideo);
options.fail?.(error)
options.complete?.(error)
} else {
- let error : UniError = { "errSubject": UniError_ChooseVideo, "errCode": 1101005, "errMsg": UniErrors[1101005]! }
+ let error = new MediaErrorImpl(1101005, UniError_ChooseVideo);
options.fail?.(error)
options.complete?.(error)
}
@@ -255,7 +256,7 @@ function openCameraForVideo(option : ChooseVideoOptions, compressed : boolean) {
if (takeVideoFunction != null) {
UTSAndroid.offAppActivityResult(takeVideoFunction!)
}
- let cameraPath = (UTSAndroid.getAppTempPath()! + "camera/" + System.currentTimeMillis() + ".mp4") // .mp4为默认配置
+ let cameraPath = (mediaCachePath + System.currentTimeMillis() + ".mp4") // .mp4为默认配置
try {
let picFile = new File(cameraPath);
if (!picFile.getParentFile().exists()) {
@@ -269,15 +270,15 @@ function openCameraForVideo(option : ChooseVideoOptions, compressed : boolean) {
if (compressed) {
// cameraPath = CompressUtil.compressImage(cameraPath, cameraPath, false, getUniActivity()!!)
// picFile = new File(cameraPath)
- let outPath = (UTSAndroid.getAppTempPath()! + "camera/" + System.currentTimeMillis() + ".mp4")
+ let outPath = (mediaCachePath + System.currentTimeMillis() + ".mp4")
MediaTranscoder.getInstance().transcodeVideo(cameraPath, outPath, MediaFormatStrategyPresets.createAndroid720pStrategy(2, 1.0), new MediaTranscoderListener(option, cameraPath, outPath))
} else {
- var metadata : GetVideoInfoSuccessCallback | null = null
+ var metadata : GetVideoInfoSuccess | null = null
let result = getVideoMetadata(cameraPath)
- if (result instanceof GetVideoInfoSuccessCallback) {
- metadata = result as GetVideoInfoSuccessCallback
+ if (result instanceof GetVideoInfoSuccess) {
+ metadata = result as GetVideoInfoSuccess
}
- let success : ChooseVideoSuccessCallback = {
+ let success : ChooseVideoSuccess = {
tempFilePath: "file://" + cameraPath,
width: metadata == null ? 0 : metadata!.width,
height: metadata == null ? 0 : metadata!.height,
@@ -288,12 +289,12 @@ function openCameraForVideo(option : ChooseVideoOptions, compressed : boolean) {
option.complete?.(success)
}
} else {
- let error : UniError = { "errSubject": UniError_ChooseVideo, "errCode": 1101008, "errMsg": UniErrors[1101008]! }
+ let error = new MediaErrorImpl(1101008, UniError_ChooseVideo);
option.fail?.(error)
option.complete?.(error)
}
} else {
- let error : UniError = { "errSubject": UniError_ChooseVideo, "errCode": 1101008, "errMsg": UniErrors[1101008]! }
+ let error = new MediaErrorImpl(1101008, UniError_ChooseVideo);
option.fail?.(error)
option.complete?.(error)
}
@@ -330,12 +331,12 @@ class MediaTranscoderListener implements Listener {
override onTranscodeCompleted() {
this.deleteInPath()
- var metadata : GetVideoInfoSuccessCallback | null = null
+ var metadata : GetVideoInfoSuccess | null = null
let result = getVideoMetadata(this.outPath)
- if (result instanceof GetVideoInfoSuccessCallback) {
- metadata = result as GetVideoInfoSuccessCallback
+ if (result instanceof GetVideoInfoSuccess) {
+ metadata = result as GetVideoInfoSuccess
}
- let success : ChooseVideoSuccessCallback = {
+ let success : ChooseVideoSuccess = {
tempFilePath: "file://" + this.outPath,
width: metadata == null ? 0 : metadata!.width,
height: metadata == null ? 0 : metadata!.height,
@@ -348,14 +349,14 @@ class MediaTranscoderListener implements Listener {
override onTranscodeCanceled() {
this.deleteInPath()
- let error : UniError = { "errSubject": UniError_ChooseVideo, "errCode": 1101004, "errMsg": UniErrors[1101004]! }
+ let error = new MediaErrorImpl(1101004, UniError_ChooseVideo);
this.option.fail?.(error)
this.option.complete?.(error)
}
override onTranscodeFailed(exception : Exception) {
this.deleteInPath()
- let error : UniError = { "errSubject": UniError_ChooseVideo, "errCode": 1101010, "errMsg": UniErrors[1101010]! + exception.toString() }
+ let error = new MediaErrorImpl(1101010, UniError_ChooseVideo);
this.option.fail?.(error)
this.option.complete?.(error)
}
@@ -385,16 +386,16 @@ function openAlbumForVideo(option : ChooseVideoOptions, count : number, type : n
}
}
if (picPaths.isEmpty()) {
- let error : UniError = { "errSubject": UniError_ChooseVideo, "errCode": 1101001, "errMsg": UniErrors[1101001]! }
+ let error = new MediaErrorImpl(1101001, UniError_ChooseVideo);
option.fail?.(error)
option.complete?.(error)
} else {
- var metadata : GetVideoInfoSuccessCallback | null = null
+ var metadata : GetVideoInfoSuccess | null = null
let result = getVideoMetadata(picPaths)
- if (result instanceof GetVideoInfoSuccessCallback) {
- metadata = result as GetVideoInfoSuccessCallback
+ if (result instanceof GetVideoInfoSuccess) {
+ metadata = result as GetVideoInfoSuccess
}
- let success : ChooseVideoSuccessCallback = {
+ let success : ChooseVideoSuccess = {
tempFilePath: "file://" + picPaths,
width: metadata == null ? 0 : metadata!.width,
height: metadata == null ? 0 : metadata!.height,
@@ -410,7 +411,7 @@ function openAlbumForVideo(option : ChooseVideoOptions, count : number, type : n
openGalleryActivity(count, type, compressed, null, null);
}
-function openGalleryActivity(count : number, type : number, compressed : boolean, sizeType : (string[]) | null, crop : ChooseImageCropOptions | null) {
+function openGalleryActivity(count : number, type : number, compressed : boolean, sizeType ?: (string[]) | null, crop ?: ChooseImageCropOptions | null) {
let selected : Array = [];// 已选中的图片
let maximum = -1;
let editable = true; // 是否可编辑,对应editable
@@ -429,7 +430,7 @@ function openGalleryActivity(count : number, type : number, compressed : boolean
if (sizeType != null) {
albumIntent.putExtra(/* PickerConfig.SIZE_TYPE */"size_type", JSON.stringify(sizeType!))
}
- albumIntent.putExtra(/* DOC_PATH = */"doc_path", UTSAndroid.getAppTempPath()! + "gallery/")
+ albumIntent.putExtra(/* DOC_PATH = */"doc_path", mediaCachePath)
albumIntent.putExtra(/* IMAGE_EDITABLE = */"image_editable", true);
if (crop != null && crop!.height != null && crop!.width != null && crop!.height! > 0 && crop!.width > 0) {
albumIntent.putExtra(/* IMAGE_CROP = */"image_crop", JSON.stringify(crop))
diff --git a/uni_modules/uni-media/utssdk/app-android/utils/CompressUtils.uts b/uni_modules/uni-media/utssdk/app-android/utils/CompressUtils.uts
index 496eeba8cd0845073e9d19a46b57ee1df3f5e86d..41157c6cbc7d69b63a737b300815201027d3d462 100644
--- a/uni_modules/uni-media/utssdk/app-android/utils/CompressUtils.uts
+++ b/uni_modules/uni-media/utssdk/app-android/utils/CompressUtils.uts
@@ -1,14 +1,12 @@
import {
- CompressImageSuccessCallback, CompressImageOptions,
- CompressVideoOptions, CompressVideoSuccessCallback
+ CompressImageSuccess, CompressImageOptions,
+ CompressVideoOptions, CompressVideoSuccess
} from "../../interface.uts"
import {
- UniError_ChooseImage, UniError_ChooseVideo, UniError_CompressVideo,UniError_CompressImage,
- UniErrors
+ UniError_CompressVideo,UniError_CompressImage,
+ MediaErrorImpl
} from "../../unierror.uts"
-import { uniChooseImage, CODE_CAMERA_ERROR, CODE_GALLERY_ERROR, CODE_GET_IMAGE_INFO_CODE } from "../../ChooseImageUtils.uts"
import TextUtils from 'android.text.TextUtils';
-import UTSAndroid from 'io.dcloud.uts.UTSAndroid';
import File from 'java.io.File';
import BitmapFactory from 'android.graphics.BitmapFactory';
import Bitmap from 'android.graphics.Bitmap';
@@ -20,22 +18,23 @@ import MediaTranscoder from 'io.dcloud.uts.androidtranscoder.MediaTranscoder';
import MediaFormatStrategyPresets from 'io.dcloud.uts.androidtranscoder.format.MediaFormatStrategyPresets';
import Listener from 'io.dcloud.uts.androidtranscoder.MediaTranscoder.Listener';
+const mediaCachePath = UTSAndroid.getAppCachePath()+"uni-media/"
// export function threadCompress() {
// }
export function transcodeImage(options : CompressImageOptions) {
if (options.src.length == 0) {
- let fail : UniError = { "errCode": 1101003, "errMsg": UniErrors[1101003]!, "errSubject": UniError_CompressImage }
- options.fail?.(fail)
- options.complete?.(fail)
+ let error = new MediaErrorImpl(1101003, UniError_CompressImage);
+ options.fail?.(error)
+ options.complete?.(error)
return
}
let compressOption = new CompressOptions()
compressOption.src = UTSAndroid.convert2AbsFullPath(options.src)
let srcFile = new File(compressOption.src)
if (!srcFile.exists()) {
- let fail : UniError = { "errCode": 1101003, "errMsg": UniErrors[1101003]!, "errSubject": UniError_CompressImage }
- options.fail?.(fail)
- options.complete?.(fail)
+ let error = new MediaErrorImpl(1101003, UniError_CompressImage);
+ options.fail?.(error)
+ options.complete?.(error)
return
}
if (options.quality != null && options.quality! > 0) {
@@ -72,9 +71,9 @@ export function transcodeImage(options : CompressImageOptions) {
} catch (e) {
}
if (srcBitmap == null) {
- let fail : UniError = { "errCode": 1101009, "errMsg": UniErrors[1101009]!, "errSubject": UniError_CompressImage }
- options.fail?.(fail)
- options.complete?.(fail)
+ let error = new MediaErrorImpl(1101009, UniError_CompressImage);
+ options.fail?.(error)
+ options.complete?.(error)
return
}
@@ -91,7 +90,7 @@ export function transcodeImage(options : CompressImageOptions) {
srcBitmap = Bitmap.createBitmap(srcBitmap!, 0, 0, srcBitmap.getWidth(), srcBitmap.getHeight(), matrix, false)
}
// 保存
- let destPath = UTSAndroid.getAppTempPath()! + "compress/" + System.currentTimeMillis() + ".jpg"
+ let destPath = mediaCachePath + System.currentTimeMillis() + ".jpg"
let destFile = new File(destPath)
if (!destFile.getParentFile().exists()) {
destFile.getParentFile().mkdirs()
@@ -104,13 +103,13 @@ export function transcodeImage(options : CompressImageOptions) {
srcBitmap!.recycle()
}
saveExif(options.src, destPath)
- let success : CompressImageSuccessCallback = { "tempFilePath": "file://" + destPath }
+ let success : CompressImageSuccess = { "tempFilePath": "file://" + destPath }
options.success?.(success)
options.complete?.(success)
} catch (ex) {
- let fail : UniError = { "errCode": 1101009, "errMsg": UniErrors[1101009]!, "errSubject": UniError_CompressImage }
- options.fail?.(fail)
- options.complete?.(fail)
+ let error = new MediaErrorImpl(1101009, UniError_CompressImage);
+ options.fail?.(error)
+ options.complete?.(error)
}
}
@@ -207,9 +206,9 @@ export function transcodeVideo(options : CompressVideoOptions) {
let inPath = UTSAndroid.convert2AbsFullPath(options.src)
let inFile = new File(inPath)
if (!inFile.exists()) {
- let fail : UniError = { "errCode": 1101003, "errMsg": UniErrors[1101003]!, "errSubject": UniError_CompressVideo }
- options.fail?.(fail)
- options.complete?.(fail)
+ let error = new MediaErrorImpl(1101003, UniError_CompressVideo);
+ options.fail?.(error)
+ options.complete?.(error)
return
}
var compressLevel = 1
@@ -233,7 +232,7 @@ export function transcodeVideo(options : CompressVideoOptions) {
resolution = 1.0
}
let fileName = getFileName(inPath);
- let outPath = UTSAndroid.getAppTempPath()! + "compress/" + (fileName == "" ? (System.currentTimeMillis() + ".mp4") : fileName)
+ let outPath = mediaCachePath + (fileName == "" ? (System.currentTimeMillis() + ".mp4") : fileName)
let outFile = new File(outPath)
if (!outFile.getParentFile().exists()) {
outFile.getParentFile().mkdirs()
@@ -266,33 +265,27 @@ class MediaTranscoderListener implements Listener {
override onTranscodeCompleted() {
let outFile = new File(this.outPath)
if (outFile.exists()) {
- let success : CompressVideoSuccessCallback = {
+ let success : CompressVideoSuccess = {
tempFilePath: "file://" + this.outPath,
size: outFile.length()
}
this.options.success?.(success)
this.options.complete?.(success)
} else {
- let error : UniError = {
- "errSubject": UniError_CompressVideo, "errCode": 1101004, "errMsg": UniErrors[1101004]!
- }
+ let error = new MediaErrorImpl(1101004, UniError_CompressVideo);
this.options.fail?.(error)
this.options.complete?.(error)
}
}
override onTranscodeCanceled() {
- let error : UniError = {
- "errSubject": UniError_CompressVideo, "errCode": 1101004, "errMsg": UniErrors[1101004]!
- }
+ let error = new MediaErrorImpl(1101004, UniError_CompressVideo);
this.options.fail?.(error)
this.options.complete?.(error)
}
override onTranscodeFailed(exception : Exception) {
- let error : UniError = {
- "errSubject": UniError_CompressVideo, "errCode": 1101010, "errMsg": UniErrors[1101010]! + exception.toString()
- }
+ let error = new MediaErrorImpl(1101010, UniError_CompressVideo);
this.options.fail?.(error)
this.options.complete?.(error)
}
diff --git a/uni_modules/uni-media/utssdk/app-android/utils/MediaUtils.uts b/uni_modules/uni-media/utssdk/app-android/utils/MediaUtils.uts
index 4822b2d5685e602efe3569105a1c49735fcd8e60..57bad6f4908a8c566e7ee5844b80b165abfae166 100644
--- a/uni_modules/uni-media/utssdk/app-android/utils/MediaUtils.uts
+++ b/uni_modules/uni-media/utssdk/app-android/utils/MediaUtils.uts
@@ -1,14 +1,10 @@
import {
- ChooseImageOptions, ChooseImageSuccessCallback,
- ChooseVideoOptions, ChooseVideoSuccessCallback,
- GetVideoInfoOptions, GetVideoInfoSuccessCallback,
+ GetVideoInfoSuccess,
} from "../../interface.uts"
import {
UniError_GetVideoInfo,
- UniErrors
+ MediaErrorImpl
} from "../../unierror.uts"
-import { uniChooseImage, CODE_CAMERA_ERROR, CODE_GALLERY_ERROR, CODE_GET_IMAGE_INFO_CODE, uniChooseVideo } from "../../ChooseImageUtils.uts"
-import UTSAndroid from 'io.dcloud.uts.UTSAndroid';
import File from 'java.io.File';
import MediaMetadataRetriever from 'android.media.MediaMetadataRetriever';
import BigDecimal from 'java.math.BigDecimal';
@@ -17,7 +13,7 @@ import MediaFormat from 'android.media.MediaFormat';
import TextUtils from 'android.text.TextUtils';
export function getVideoMetadata(src : string) : any {
- let videoInfo : GetVideoInfoSuccessCallback = {
+ let videoInfo : GetVideoInfoSuccess = {
duration: 0,
size: 0,
height: 0,
@@ -26,7 +22,7 @@ export function getVideoMetadata(src : string) : any {
let path = UTSAndroid.convert2AbsFullPath(src)
let videoFile = new File(path)
if (!videoFile.exists()) {
- let error : UniError = { "errSubject": UniError_GetVideoInfo, "errCode": 1101003, "errMsg": UniErrors[1101003]! }
+ let error = new MediaErrorImpl(1101003, UniError_GetVideoInfo);
return error
}
videoInfo.size = videoFile.length()
@@ -98,7 +94,7 @@ export function getVideoMetadata(src : string) : any {
videoInfo.fps = fpsNum
return videoInfo
} catch (e) {
- let error : UniError = { "errSubject": UniError_GetVideoInfo, "errCode": 1101010, "errMsg": UniErrors[1101010]! + e.toString() }
+ let error = new MediaErrorImpl(1101010, UniError_GetVideoInfo);
return error
}
}
\ No newline at end of file
diff --git a/uni_modules/uni-media/utssdk/app-android/utils/showActionSheet.uts b/uni_modules/uni-media/utssdk/app-android/utils/showActionSheet.uts
index 00cc519907412a46e43eb26301b5c8913eee1134..32a53804210d49c9d42574d0b4987c56961bd75a 100644
--- a/uni_modules/uni-media/utssdk/app-android/utils/showActionSheet.uts
+++ b/uni_modules/uni-media/utssdk/app-android/utils/showActionSheet.uts
@@ -138,9 +138,9 @@ export class UniActionSheet {
let v : View
if (UTSAndroid.getAppDarkMode()) {
- v = LayoutInflater.from(this.hostActivity).inflate(R.layout.action_sheet_night, null)
+ v = LayoutInflater.from(this.hostActivity).inflate(R.layout.uni_media_action_sheet_night, null)
} else {
- v = LayoutInflater.from(this.hostActivity).inflate(R.layout.action_sheet, null)
+ v = LayoutInflater.from(this.hostActivity).inflate(R.layout.uni_media_action_sheet, null)
}
@@ -172,7 +172,7 @@ export class UniActionSheet {
* 弹出actionsheet
*/
show() {
- this.alertDialog.window!.attributes.windowAnimations = R.style.DialogAnimations_SmileWindow
+ // this.alertDialog.window!.attributes.windowAnimations = R.style.DialogAnimations_SmileWindow
this.alertDialog.setCancelable(true)
this.alertDialog.window!.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM)
this.alertDialog.window!.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
@@ -283,10 +283,10 @@ class ItemAdapter extends RecyclerView.Adapter{
let view : View
if (UTSAndroid.getAppDarkMode()) {
view =
- LayoutInflater.from(parent.context).inflate(R.layout.recyclerview_layout_night, parent, false)
+ LayoutInflater.from(parent.context).inflate(R.layout.uni_media_recyclerview_layout_night, parent, false)
} else {
view =
- LayoutInflater.from(parent.context).inflate(R.layout.recyclerview_layout, parent, false)
+ LayoutInflater.from(parent.context).inflate(R.layout.uni_media_recyclerview_layout, parent, false)
}
return ViewHolder(view)
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/AlbumCommentLine@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/AlbumCommentLine@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..b889ba4df8e9e93ba76d3e0225cb876d29717206
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/AlbumCommentLine@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/AudioTrack/EditImageAddBtn@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/AudioTrack/EditImageAddBtn@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..983a2acc1f11c3c60a0d2060297955d689600928
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/AudioTrack/EditImageAddBtn@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/AudioTrack/EditImageAddBtn_HL@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/AudioTrack/EditImageAddBtn_HL@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..62d74267606c757fe393f00ca0b501526789dc29
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/AudioTrack/EditImageAddBtn_HL@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/AudioTrack/EditImageAllSelect@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/AudioTrack/EditImageAllSelect@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..831b7c69201aba9734abe178f23e030b4ecc6515
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/AudioTrack/EditImageAllSelect@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/AudioTrack/EditImageAllSelect_HL@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/AudioTrack/EditImageAllSelect_HL@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..82b78140cdc14014dcd5295ed24fe60c76d393e1
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/AudioTrack/EditImageAllSelect_HL@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/AudioTrack/EditImageInverseSelect@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/AudioTrack/EditImageInverseSelect@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..4e43f44a2f573dd3c41925066fcf45862f7024a9
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/AudioTrack/EditImageInverseSelect@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/AudioTrack/EditImageInverseSelect_HL@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/AudioTrack/EditImageInverseSelect_HL@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..9fe9bac5eb611073011bea3516a223f4bff94745
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/AudioTrack/EditImageInverseSelect_HL@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/AudioTrack/EditImageNoSelect@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/AudioTrack/EditImageNoSelect@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..1f57fbf7169ddd338c5adf246ea9b0e92565505f
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/AudioTrack/EditImageNoSelect@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/AudioTrack/EditImageSelectd@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/AudioTrack/EditImageSelectd@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..77e008610b82654c4f0491d01e18f4d18c36c671
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/AudioTrack/EditImageSelectd@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/AudioTrack/EditImageUnSelect@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/AudioTrack/EditImageUnSelect@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..68514c19768ca53afaa475efb75d47995192b5fb
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/AudioTrack/EditImageUnSelect@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/AudioTrack/EditImageUnSelect_HL@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/AudioTrack/EditImageUnSelect_HL@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..9f10bc0b5754853640df63f01a59b864d67f26b2
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/AudioTrack/EditImageUnSelect_HL@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageAudioToolBtn@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageAudioToolBtn@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..335168a744f1c8f0dc7ff245428f251d4c8e0b14
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageAudioToolBtn@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageAudioToolBtn_HL@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageAudioToolBtn_HL@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..f7d3b62da0de46e6fedec6cfc019fe7a01ace7ae
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageAudioToolBtn_HL@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageBrushBlurryBtn@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageBrushBlurryBtn@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..88af8f8e12a2a21c9853a5b0e6ddb0036d53be9b
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageBrushBlurryBtn@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageBrushBlurryBtn_HL@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageBrushBlurryBtn_HL@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..47371348fc601f46c0a986d72e60f9d87cbe1742
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageBrushBlurryBtn_HL@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageBrushMosaicBtn@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageBrushMosaicBtn@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..b7728be80c0611a023c47eed54d3aba4607f6adc
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageBrushMosaicBtn@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageBrushMosaicBtn_HL@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageBrushMosaicBtn_HL@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..cd6e0bcf4b6311a10c0ea50966de6c6299d0df4c
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageBrushMosaicBtn_HL@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageCancelBtn@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageCancelBtn@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..f54e4bd135bde2f89d7f3b43c63b38574320fa99
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageCancelBtn@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageCancelBtn_HL@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageCancelBtn_HL@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..df58e7970dc6396d4632b5806e5bb70bfd131764
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageCancelBtn_HL@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageConfirmBtn@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageConfirmBtn@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..5bb2f51f01bf7ebee51000f219b375c19cd7609c
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageConfirmBtn@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageConfirmBtn_HL@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageConfirmBtn_HL@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..c9b805c4265f4a427640baa0181f1e7afc4fff2a
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageConfirmBtn_HL@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageCropToolBtn@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageCropToolBtn@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..96c45f7a9da569aee1875b0bc71c4bc0686bc5a8
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageCropToolBtn@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageCropToolBtn_HL@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageCropToolBtn_HL@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..ee5cf36298f1ce6bdd2ae2a83b2a9204e317e371
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageCropToolBtn_HL@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageEmotionToolBtn@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageEmotionToolBtn@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..039790f30b36d38ffc46391596f95d2d34bbe6f2
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageEmotionToolBtn@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageEmotionToolBtn_HL@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageEmotionToolBtn_HL@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..a8d76e9ec569728aeb5fa410dee8bf78554e63f9
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageEmotionToolBtn_HL@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageFilterToolBtn@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageFilterToolBtn@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..4e7a9c940e355b1519e0e000b7a3bc663b98c2fb
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageFilterToolBtn@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageFilterToolBtn_HL@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageFilterToolBtn_HL@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..61c43a00c501487b44faa5701a600c5c1fe854fa
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageFilterToolBtn_HL@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageMosaicToolBtn@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageMosaicToolBtn@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..6d1375398f1a9266acade8bbc774ab408031f764
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageMosaicToolBtn@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageMosaicToolBtn_HL@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageMosaicToolBtn_HL@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..41c0ee82afb0814b32967b6abd96397d83ebb6fd
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageMosaicToolBtn_HL@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenToolBtn@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenToolBtn@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..96f7da30e5da6d1a4ab3c3dac7028c698401e85e
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenToolBtn@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenToolBtn_HL@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenToolBtn_HL@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..08217b82c8f134794f4bb9b7a3e95ea29e890288
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenToolBtn_HL@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Chalk@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Chalk@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..cbcb96db8fe15622eb201bab8437ac353352eb78
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Chalk@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Chalk_HL@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Chalk_HL@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..8dba59d5f6308b34441e39467e032d26eeead60e
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Chalk_HL@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Eraser@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Eraser@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..dd4aaf706622cec131c6889546fc8ac0d2e43ad2
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Eraser@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Eraser_HL@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Eraser_HL@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..544a2216b29606ed6b31d00ce4445bf347444701
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Eraser_HL@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Fluorescent@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Fluorescent@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..ae9c48e5304526f137947162826fee4c9215d883
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Fluorescent@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Fluorescent_HL@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Fluorescent_HL@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..015f44d24d2666262b464e2d586ce74dee347923
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Fluorescent_HL@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Highlight@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Highlight@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..70dab38147b95c61b57c1e8b4f45c5f1e603d5e7
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Highlight@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Highlight_HL@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Highlight_HL@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..fa02eeed81f8bd78b5262dbe01fa4c56a015c99a
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Highlight_HL@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Paint@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Paint@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..cd8c3cf09a1e3cb22ca0971ab599b9c24fed75e1
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Paint@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Paint_HL@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Paint_HL@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..6842c3e21d273654a02a8d445ccc3fde3274283d
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Paint_HL@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Stamp@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Stamp@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..fa7f33493e97522f535e766fc9bfa86bf7e2b82a
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Stamp@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Stamp_HL@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Stamp_HL@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..a95ee8a05a908eb0accec7ccd23180159aeaf92f
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImagePenTool_Stamp_HL@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageRateToolBtn@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageRateToolBtn@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..025be4356b41517a092741c7a9d178e56d428dc6
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageRateToolBtn@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageRateToolBtn_HL@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageRateToolBtn_HL@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..0a7b6aae9ad39097d8ae729808f6bb40f2ab25a8
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageRateToolBtn_HL@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageRevokeBtn@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageRevokeBtn@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..686ebfb111d5cab537bc9e0471534dc9779bc542
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageRevokeBtn@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageRevokeBtn_HL@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageRevokeBtn_HL@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..d4764a014b9a40163f989e014793366aa48ed813
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageRevokeBtn_HL@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageStickRemove@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageStickRemove@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..9c79974f137a2477eb3ca31279c4a10e2effe12b
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageStickRemove@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageStickRemove_HL@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageStickRemove_HL@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..455e451b7204b69142139b2a07afa402d4a12541
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageStickRemove_HL@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextAlignmentCenter@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextAlignmentCenter@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..5b1a80e4fffbfe6436e07f41adb9bce4c57b358c
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextAlignmentCenter@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextAlignmentCenter_HL@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextAlignmentCenter_HL@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..295e2381d183daefe89e26269f08d71e1c273685
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextAlignmentCenter_HL@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextAlignmentLeft@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextAlignmentLeft@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..a9ff059d8ad7571e91dd789e04809ff73990ca26
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextAlignmentLeft@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextAlignmentLeft_HL@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextAlignmentLeft_HL@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..e6e8bcdebc0da7c0f6bdcd6fbd8e49bf3dfb6cff
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextAlignmentLeft_HL@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextAlignmentRight@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextAlignmentRight@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..f44688f0d8040500a455ecfadd795e2c957eba48
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextAlignmentRight@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextAlignmentRight_HL@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextAlignmentRight_HL@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..9e336c6dcf8c319802152f099ebf7f25b7df11e3
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextAlignmentRight_HL@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextBG@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextBG@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..d566ca1e717a8cad07a2b3642b2ac0239e8db137
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextBG@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextBG_HL@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextBG_HL@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..72a9d34361f6ed828840a9d043540e6cb60c50e0
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextBG_HL@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextFont@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextFont@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..32ca3637d4a54e0f8470aec508673fdf7b5ca469
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextFont@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextFont_HL@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextFont_HL@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..7577f76998cf91ba27115390613b121f94a6b193
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextFont_HL@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextStyle@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextStyle@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..a0843265e71537c766d186e733d901a2ad9b7e30
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextStyle@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextStyle_HL@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextStyle_HL@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..d6bedeb4e7c1a81ce567697469ca87945ab1f54c
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextStyle_HL@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextToolBtn@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextToolBtn@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..89164ba25fedd4f583659591ae6ae95a7c0873e6
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextToolBtn@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextToolBtn_HL@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextToolBtn_HL@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..52497b31a9ef2f4843dc9f87175b9603d23ec58f
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTextToolBtn_HL@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTraditionalMosaicBtn@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTraditionalMosaicBtn@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..787c84f6402f737019af719f96c75d6647aad465
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTraditionalMosaicBtn@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTraditionalMosaicBtn_HL@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTraditionalMosaicBtn_HL@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..6cc8657a4bde0a674b6f9d4d3dc438f39b91b15a
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageTraditionalMosaicBtn_HL@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageWaterDrop@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageWaterDrop@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..7ee8df4be4b457dadea5f30371db06e0f9a96c63
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditImageWaterDrop@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditVideoCropToolBtn@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditVideoCropToolBtn@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..616668a36103f156fd371aaa9cbba587b7a650d1
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditVideoCropToolBtn@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditVideoCropToolBtn_HL@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditVideoCropToolBtn_HL@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..af5a80f22a7f2ca8193463d4210487797d30462b
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/EditVideoCropToolBtn_HL@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/StickerDisplayFail@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/StickerDisplayFail@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..20903c8f9ba4a5eba34a52d8e015cebc0ac20ef5
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/StickerDisplayFail@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/StickerDisplayPlaceholder@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/StickerDisplayPlaceholder@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..b627e6b63a6b345a69f26269c814a6653bdc1af4
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/StickerDisplayPlaceholder@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/StickerZoomingViewCircle@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/StickerZoomingViewCircle@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..18e14230c2a0974e099285d1667fbb9ab3135f39
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/StickerZoomingViewCircle@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/StickerZoomingViewDelete@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/StickerZoomingViewDelete@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..0b5e1d2c1cd6e04e04e077ef22583c56d26b2e09
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/StickerZoomingViewDelete@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/EditImageChalkBrush@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/EditImageChalkBrush@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..f6542b6b7380ea4396849867db80e1e6207eb0b3
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/EditImageChalkBrush@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/EditImageSmearBrush@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/EditImageSmearBrush@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..a5b8b22dbeb210695276701866dea44ffeb7b330
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/EditImageSmearBrush@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/EditImageStampBrushAnimal@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/EditImageStampBrushAnimal@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..127d201494fadcc34a814c4941e8614b30af499e
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/EditImageStampBrushAnimal@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/EditImageStampBrushFruit@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/EditImageStampBrushFruit@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..3b0aa6655b8fe9f809e1acd9cb19cab7333427f1
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/EditImageStampBrushFruit@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/EditImageStampBrushHeart@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/EditImageStampBrushHeart@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..2233b75cee0880fed4f345b4ac6f1113aa8712e1
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/EditImageStampBrushHeart@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/animal/1@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/animal/1@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..283eefee92323c106cb3dccdd74eab313f6b3aa2
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/animal/1@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/animal/2@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/animal/2@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..9e328962bc520db05e9867ac1a42a41bfed75191
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/animal/2@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/animal/3@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/animal/3@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..adde389d85d310bbeb5d730ffcd3cdc7e7628854
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/animal/3@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/animal/4@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/animal/4@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..bd3061cb85a72bc51168454a4b0a4cbe6dfa1b35
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/animal/4@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/animal/5@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/animal/5@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..57288d9e3daf212964970ecbc143a9b8fa7e44fd
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/animal/5@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/fruit/1@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/fruit/1@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..650686207d9ba7fa809ff37a01f42dfd5390afab
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/fruit/1@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/fruit/2@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/fruit/2@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..6b79764a0e9fcb970f3912c239b88ee43e7bbb91
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/fruit/2@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/fruit/3@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/fruit/3@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..9c418ee47deade7a58aa4af963c5074ec7a63d5d
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/fruit/3@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/fruit/4@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/fruit/4@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..a111504627d77a96c57a0828edc9af95d34739f7
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/fruit/4@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/fruit/5@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/fruit/5@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..4efbf5cfafc4333a2fa6c4eadd8ca512d5fc7d54
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/fruit/5@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/fruit/6@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/fruit/6@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..805c7e7f710f3fb1af391dc0eecf3317a61112ce
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/fruit/6@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/heart/1@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/heart/1@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..69d744fc3863c86ab220abd839891fc8b41bcf07
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/heart/1@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/heart/2@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/heart/2@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..816011ee246ae36ef1ce238bea51bffd5fa6008e
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/heart/2@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/heart/3@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/heart/3@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..4e8cded9f87208c4514c086f92e946703dce424f
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/heart/3@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/heart/4@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/heart/4@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..5837e6add8bf2bf5722ae8681813c3577eefbcf7
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/heart/4@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/heart/5@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/heart/5@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..4f136a80669c4afe11aa93efc760536c23cfa1ab
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/brush/heart/5@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/error@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/error@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..99979922b7b2ddd3c4c15601cc007a8003a13d6b
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/error@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/info@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/info@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..63641e3bb00be04ab1b871d52f458808c9c9105d
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/info@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/left_down@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/left_down@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..c40158fb11643b671fff12d396c1d6c98b16d756
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/left_down@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/left_top@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/left_top@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..d6063902688434d82b65dfe3c32069dcb5b24965
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/left_top@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/okBtn@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/okBtn@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..86788ac906441d76bcd7ebf6c979b7c1044eb6e9
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/okBtn@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/right_down@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/right_down@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..2092093b0b321c57f7ddde827d1ee147db30c191
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/right_down@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/right_top@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/right_top@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..4d0a6f70098cc87192b273b574c8ced35a261802
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/right_top@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/001.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/001.png
new file mode 100644
index 0000000000000000000000000000000000000000..17d3d86106f496a76aa738edf41b0603ca45d5e2
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/001.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/002.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/002.png
new file mode 100644
index 0000000000000000000000000000000000000000..4ce9bb154bd0a9f1a84c68a47361ae7011b97bfa
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/002.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/003.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/003.png
new file mode 100644
index 0000000000000000000000000000000000000000..c83feb2f2e68a9326827622b0a9955e8fa7a39ac
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/003.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/004.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/004.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce14ffbc33f1e4bc13987428ebd5a344a802641c
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/004.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/005.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/005.png
new file mode 100644
index 0000000000000000000000000000000000000000..a85e7fe2390308f27aa5745dce6171e22a16bd81
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/005.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/006.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/006.png
new file mode 100644
index 0000000000000000000000000000000000000000..28924efa5e7f14187d8761e7c1c2bf382c3b316e
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/006.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/007.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/007.png
new file mode 100644
index 0000000000000000000000000000000000000000..c14ce50c111576a7490dc4494f851bc6dda7f270
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/007.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/008.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/008.png
new file mode 100644
index 0000000000000000000000000000000000000000..5c683e9373e08c874e6a9a19f42b085ca0942d51
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/008.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/009.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/009.png
new file mode 100644
index 0000000000000000000000000000000000000000..6807ea41b065e9f1d3d9c7e27c49793ffe00ddc9
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/009.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/010.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/010.png
new file mode 100644
index 0000000000000000000000000000000000000000..c999c5b64dca0e4ba1650f7ce3a40ac7305835a5
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/010.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/011.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/011.png
new file mode 100644
index 0000000000000000000000000000000000000000..6c11cffeea7beae353a0fca2cf8ef6797b906733
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/011.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/012.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/012.png
new file mode 100644
index 0000000000000000000000000000000000000000..d153866780ceb1bcb2c926b21f296493d3fe16ef
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/012.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/013.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/013.png
new file mode 100644
index 0000000000000000000000000000000000000000..9ce056b9e035e25d9294912087781fbf08b6eada
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/013.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/014.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/014.png
new file mode 100644
index 0000000000000000000000000000000000000000..09eca8a4b58cb8956bcb9dcf5fccb98113b6b186
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/014.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/015.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/015.png
new file mode 100644
index 0000000000000000000000000000000000000000..0ebd5314f736110c4e966f1d8f7629562fbf06b9
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/015.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/016.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/016.png
new file mode 100644
index 0000000000000000000000000000000000000000..37f53383e0a54ae9c9d852d2051ec9f42fdbfe96
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/016.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/017.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/017.png
new file mode 100644
index 0000000000000000000000000000000000000000..6675c7d03900ac0808a57a186f5f5edece0459f6
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/017.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/018.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/018.png
new file mode 100644
index 0000000000000000000000000000000000000000..37478b4ebf0794c7778c61b6b66550d2a29db97f
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/018.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/019.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/019.png
new file mode 100644
index 0000000000000000000000000000000000000000..38c209acaa128a4d5164ffb24638471a299702dd
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/019.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/020.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/020.png
new file mode 100644
index 0000000000000000000000000000000000000000..ca815a7891faa6d254bb42e49ff6db7a24ec850a
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/020.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/021.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/021.png
new file mode 100644
index 0000000000000000000000000000000000000000..3c6d39fb4acf22253caa14f06867dd5e6c3a0dbb
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/021.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/022.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/022.png
new file mode 100644
index 0000000000000000000000000000000000000000..21928f480f5992ab49c241c801d017148f8d5b35
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/022.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/023.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/023.png
new file mode 100644
index 0000000000000000000000000000000000000000..8bda885ba99242d120aa8d1df60ad89c52a6793e
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/023.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/024.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/024.png
new file mode 100644
index 0000000000000000000000000000000000000000..d5cd48d17aa10af94b61841a4008e697eb12be02
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/024.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/025.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/025.png
new file mode 100644
index 0000000000000000000000000000000000000000..eaaa2052b14c9da7e4e29949a20c831fea15a214
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/025.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/026.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/026.png
new file mode 100644
index 0000000000000000000000000000000000000000..32e1475bd4e39dbeff39c460c9efe5e41bb0eb95
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/026.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/027.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/027.png
new file mode 100644
index 0000000000000000000000000000000000000000..8cf9f8a8674b3c959d308ee7d815f10639219534
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/027.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/028.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/028.png
new file mode 100644
index 0000000000000000000000000000000000000000..93c5256cae70c49f8a7928fb99cee5c6302c82a5
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/028.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/029.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/029.png
new file mode 100644
index 0000000000000000000000000000000000000000..2d5bf3a8814c000a7115ecd5a4db1e712392e0cf
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/029.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/030.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/030.png
new file mode 100644
index 0000000000000000000000000000000000000000..3e19aa8b48d33c1777d70fa23de3ba4a7c17391e
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/030.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/031.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/031.png
new file mode 100644
index 0000000000000000000000000000000000000000..d16e44c387499ea6865f13647c79d6bb6955e023
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/031.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/032.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/032.png
new file mode 100644
index 0000000000000000000000000000000000000000..60cf26463b962a884269f1e2028b6e3f8989f283
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/032.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/033.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/033.png
new file mode 100644
index 0000000000000000000000000000000000000000..d3ed3ac491e661541efb3ca0a11f226899a76b71
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/033.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/034.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/034.png
new file mode 100644
index 0000000000000000000000000000000000000000..8e96b0ddf4b7bac389c8d1a520a91441613e36cc
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/034.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/035.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/035.png
new file mode 100644
index 0000000000000000000000000000000000000000..37f53383e0a54ae9c9d852d2051ec9f42fdbfe96
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/035.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/036.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/036.png
new file mode 100644
index 0000000000000000000000000000000000000000..5e46e18e0859a64948861806711dd3ab723d4aad
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/036.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/037.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/037.png
new file mode 100644
index 0000000000000000000000000000000000000000..bf2ffbd4ea9719d298b8bc475aa35f93a51d6a74
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/037.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/038.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/038.png
new file mode 100644
index 0000000000000000000000000000000000000000..ea04cd105390062a1a3f710924773d09b7cdeb7b
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/038.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/039.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/039.png
new file mode 100644
index 0000000000000000000000000000000000000000..76d00713cc3fd614234664ad3ab23b39e42f0430
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/039.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/040.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/040.png
new file mode 100644
index 0000000000000000000000000000000000000000..2c04bab95766d7f57e0a464ce41cbc989cee319d
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/040.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/041.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/041.png
new file mode 100644
index 0000000000000000000000000000000000000000..3dedbb60de594a1585090a5844ff5e9e65ece541
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/041.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/042.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/042.png
new file mode 100644
index 0000000000000000000000000000000000000000..35c4c3ac4654fc51f68e64c5523719a2f080f3d2
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/042.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/043.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/043.png
new file mode 100644
index 0000000000000000000000000000000000000000..701333bfaba9da0bf5d74246d2665c7eae4dec04
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/043.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/044.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/044.png
new file mode 100644
index 0000000000000000000000000000000000000000..e4e1d59d1525d0e4474cd0a034d2b724c1604eb1
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/044.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/045.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/045.png
new file mode 100644
index 0000000000000000000000000000000000000000..58d25f01efc9505539c7d98d3bea31a795cf1c88
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/045.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/046.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/046.png
new file mode 100644
index 0000000000000000000000000000000000000000..b9f8ad5e341b8cc4e2ef9de893343ae37a8b8cb7
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/046.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/047.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/047.png
new file mode 100644
index 0000000000000000000000000000000000000000..2ff24d895f351f493210240e98e09c4ffb15bb8f
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/047.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/048.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/048.png
new file mode 100644
index 0000000000000000000000000000000000000000..0e9c8215ba8aec64f88124b4f2fc62fa7b1d2417
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/stickers/048.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/success@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/success@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..45a1fe66ac999818afad74b7fc4a2c8c990f01fe
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/success@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/warning@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/warning@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..c1cfee61a74a116210c5e8cfec90f029bd6d9f1d
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/warning@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/whiteMask2@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/whiteMask2@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..2db14e1bc93fcc36949d5d377bd35ace3c5e6e60
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/whiteMask2@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/whiteMask@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/whiteMask@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..acb4c876b7b14f0adeaaedc0c3b1fe36743800f1
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCMediaEditingController.bundle/whiteMask@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/MMVideoPreviewPlay@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/MMVideoPreviewPlay@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..7a51372a60e3f90de4ae96fc260bb323e79d4867
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/MMVideoPreviewPlay@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/MMVideoPreviewPlayHL@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/MMVideoPreviewPlayHL@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..ffcadc1b1e504082b5c99d006b99fcf34518c1fe
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/MMVideoPreviewPlayHL@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/Root.plist b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/Root.plist
new file mode 100644
index 0000000000000000000000000000000000000000..b1b6fea5d704be74c3475fcb06f2291f37768f44
--- /dev/null
+++ b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/Root.plist
@@ -0,0 +1,61 @@
+
+
+
+
+ StringsTable
+ Root
+ PreferenceSpecifiers
+
+
+ Type
+ PSGroupSpecifier
+ Title
+ Group
+
+
+ Type
+ PSTextFieldSpecifier
+ Title
+ Name
+ Key
+ name_preference
+ DefaultValue
+
+ IsSecure
+
+ KeyboardType
+ Alphabet
+ AutocapitalizationType
+ None
+ AutocorrectionType
+ No
+
+
+ Type
+ PSToggleSwitchSpecifier
+ Title
+ Enabled
+ Key
+ enabled_preference
+ DefaultValue
+
+
+
+ Type
+ PSSliderSpecifier
+ Key
+ slider_preference
+ DefaultValue
+ 0.5
+ MinimumValue
+ 0
+ MaximumValue
+ 1
+ MinimumValueImage
+
+ MaximumValueImage
+
+
+
+
+
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/VideoSendIcon@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/VideoSendIcon@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..110543a5cf1f0b18c93233202081025d8edf9655
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/VideoSendIcon@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/limit_add_icon@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/limit_add_icon@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..83a976d4d4a1b2237ff29bd22eea757ce5557bb7
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/limit_add_icon@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/navi_back@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/navi_back@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..7c9490455c743621b404ce02fa1dfd75db62335c
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/navi_back@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/new_origin_selected@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/new_origin_selected@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..5760e7aa02ae7715cbc4129c9a0d544f7dbb2046
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/new_origin_selected@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/new_origin_unselected@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/new_origin_unselected@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..4d690afb208273ea6866cbb9508876974a36fb6a
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/new_origin_unselected@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/new_preview_unselected@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/new_preview_unselected@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..249d0de8f886ae4499e07ce7aa9ed67e66025c5c
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/new_preview_unselected@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/photo_arrow_down@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/photo_arrow_down@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..09d6321efd40af2c331b5919a2dc06b636b0dab4
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/photo_arrow_down@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/photo_arrow_up@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/photo_arrow_up@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..3465943ede83945c4edf3c6a2a2c0ed6a920dcc0
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/photo_arrow_up@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/photo_def_photoPickerVc@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/photo_def_photoPickerVc@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..1415caedf7f7062c72056f8100b546b1e05d10ed
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/photo_def_photoPickerVc@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/photo_def_previewVc@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/photo_def_previewVc@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..dae2fc4f7a64bcab82cbe8b7dceb3667908522b8
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/photo_def_previewVc@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/photo_number_icon@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/photo_number_icon@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..c20c662ad7170664b2331cc4b132aa8fc034c555
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/photo_number_icon@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/photo_original_def@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/photo_original_def@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..79ce7b98888a4fadd203898f7447e2a005462f9f
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/photo_original_def@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/photo_original_sel@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/photo_original_sel@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..8889b1311fc3a260f566af262376f9cfd7ebab75
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/photo_original_sel@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/photo_sel_photoPickerVc@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/photo_sel_photoPickerVc@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..23ded244505e05512aafa62aecb823185425dc6e
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/photo_sel_photoPickerVc@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/photo_sel_previewVc@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/photo_sel_previewVc@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..827c79427f9e19da022051b70678af9ea8bd30d7
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/photo_sel_previewVc@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/preview_number_icon@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/preview_number_icon@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..789335b4f32e24f4e883eb8ad782e5294375d359
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/preview_number_icon@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/preview_original_def@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/preview_original_def@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..9476d15e0c6e589a308875272dc47dcda112c7aa
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/preview_original_def@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/takePicture80@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/takePicture80@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..5d06636504c407862886e212d65557fd4594d104
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/takePicture80@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/takePicture@2x.png b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/takePicture@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..e115003aac9155e74729b88acbb058189cfcac51
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCTZImagePickerController.bundle/takePicture@2x.png differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCloudMediaPicker b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCloudMediaPicker
new file mode 100644
index 0000000000000000000000000000000000000000..a9e12a984e62c7d7c6c002576d17d057eb5ec52a
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/DCloudMediaPicker differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/Headers/DCloudCamera.h b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/Headers/DCloudCamera.h
new file mode 100644
index 0000000000000000000000000000000000000000..6a94e5c55f0ef66bad66d1bf627b1738236d1ec6
--- /dev/null
+++ b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/Headers/DCloudCamera.h
@@ -0,0 +1,19 @@
+//
+// DCloudCameraPhoto.h
+// DCloudMediaPicker
+//
+// Created by dcloud on 2023/12/21.
+//
+
+#import
+#import
+NS_ASSUME_NONNULL_BEGIN
+
+
+
+@interface DCloudCamera : NSObject
+- (void)startCamera:(NSDictionary *)option success:(void (^)(NSDictionary *result))successBlock fail:(void (^)(NSError *error))failBlock;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/Headers/DCloudMediaAlbum.h b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/Headers/DCloudMediaAlbum.h
new file mode 100644
index 0000000000000000000000000000000000000000..74b1509a7f8ea170b5daa6e69ec090bbb4cdfc01
--- /dev/null
+++ b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/Headers/DCloudMediaAlbum.h
@@ -0,0 +1,16 @@
+//
+// DCloudAlbum.h
+// DCloudMediaPicker
+//
+// Created by dcloud on 2023/12/29.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface DCloudMediaAlbum : NSObject
+- (void)startAlbum:(NSDictionary *)option success:(void (^)(NSDictionary *result))successBlock fail:(void (^)(NSError *error))failBlock;
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/Headers/DCloudMediaCamera.h b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/Headers/DCloudMediaCamera.h
new file mode 100644
index 0000000000000000000000000000000000000000..538c4b4ccc526c246545bdf5b06f6bddf7e9bf43
--- /dev/null
+++ b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/Headers/DCloudMediaCamera.h
@@ -0,0 +1,17 @@
+//
+// DCloudCameraPhoto.h
+// DCloudMediaPicker
+//
+// Created by dcloud on 2023/12/21.
+//
+
+#import
+#import
+NS_ASSUME_NONNULL_BEGIN
+
+@interface DCloudMediaCamera : NSObject
+- (void)startCamera:(NSDictionary *)option success:(void (^)(NSDictionary *result))successBlock fail:(void (^)(NSError *error))failBlock;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/Headers/DCloudMediaPicker.h b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/Headers/DCloudMediaPicker.h
new file mode 100644
index 0000000000000000000000000000000000000000..b448b4a31cad43f5bb90ef3519eaad5cd2156769
--- /dev/null
+++ b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/Headers/DCloudMediaPicker.h
@@ -0,0 +1,19 @@
+//
+// DCloudMediaPicker.h
+// DCloudMediaPicker
+//
+// Created by dcloud on 2023/12/21.
+//
+
+#import
+#import
+#import
+//! Project version number for DCloudMediaPicker.
+FOUNDATION_EXPORT double DCloudMediaPickerVersionNumber;
+
+//! Project version string for DCloudMediaPicker.
+FOUNDATION_EXPORT const unsigned char DCloudMediaPickerVersionString[];
+
+// In this header, you should import all the public headers of your framework using statements like #import
+
+
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/Info.plist b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/Info.plist
new file mode 100644
index 0000000000000000000000000000000000000000..d65457fa645c5bcd76e9e56bef9b98823a735e67
Binary files /dev/null and b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/Info.plist differ
diff --git a/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/Modules/module.modulemap b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/Modules/module.modulemap
new file mode 100644
index 0000000000000000000000000000000000000000..9e8055926ed1dd96e2127d3c81f24c797b33570a
--- /dev/null
+++ b/uni_modules/uni-media/utssdk/app-ios/Frameworks/DCloudMediaPicker.framework/Modules/module.modulemap
@@ -0,0 +1,6 @@
+framework module DCloudMediaPicker {
+ umbrella header "DCloudMediaPicker.h"
+ export *
+
+ module * { export * }
+}
diff --git a/uni_modules/uni-media/utssdk/app-ios/index.uts b/uni_modules/uni-media/utssdk/app-ios/index.uts
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..a2f31decbc391283cd3b608935cc8bb7ec3a3759 100644
--- a/uni_modules/uni-media/utssdk/app-ios/index.uts
+++ b/uni_modules/uni-media/utssdk/app-ios/index.uts
@@ -0,0 +1,243 @@
+import {
+ ChooseImageOptions, ChooseImage, ChooseImageSuccess,
+ PreviewImageOptions, PreviewImage, PreviewImageSuccess,
+ ClosePreviewImage, ClosePreviewImageSuccess, ClosePreviewImageOptions,
+ SaveImageToPhotosAlbum, SaveImageToPhotosAlbumOptions, SaveImageToPhotosAlbumSuccess,
+} from "../interface.uts";
+import {
+ UniError_ChooseImage, UniError_SaveImageToPhotosAlbum,
+ MediaErrorImpl
+} from "../unierror.uts"
+import { uniChooseImage, uniChooseVideo } from "../ChooseImageUtils.uts";
+
+import { UTSiOS } from "DCloudUTSFoundation";
+import { DCloudMediaCamera, DCloudMediaAlbum } from "DCloudMediaPicker"
+import { NSFileManager } from "Foundation";
+import { AVCaptureDevice, AVMediaType } from "AVFoundation";
+import { PHPhotoLibrary, PhotosTypes, PHAccessLevel } from "Photos";
+
+const mediaCachePath = UTSiOS.getMediaCacheDir() + "/"
+
+let mediaCamera : DCloudMediaCamera = new DCloudMediaCamera();
+let mediaAlbum : DCloudMediaAlbum = new DCloudMediaAlbum();
+
+export const chooseImage : ChooseImage = function (option : ChooseImageOptions) {
+ uniChooseImage(option, function (count : number, compressed : boolean, index : number) {
+ if (index == 0) {
+ requestCameraPermission(function (status : number) {
+ if (status == 1) {
+ openCameraForImage(option, compressed)
+ } else {
+ let error = new MediaErrorImpl(1101005, UniError_ChooseImage);
+ option.fail?.(error)
+ option.complete?.(error)
+ }
+ })
+
+ } else if (index == 1) {
+ requestAlbumPermission("readWrite", function (status : number) {
+ if (status == 1) {
+ openAlbumForImage(option, count, 101)
+ } else {
+ let error = new MediaErrorImpl(1101005, UniError_ChooseImage);
+ option.fail?.(error)
+ option.complete?.(error)
+ }
+ })
+ }
+ });
+}
+
+function openCameraForImage(option : ChooseImageOptions, compressed : boolean) {
+ const fileManager = FileManager.default
+ if (fileManager.fileExists(atPath = mediaCachePath) == false) {
+ try {
+ UTSiOS.try(fileManager.createDirectory(atPath = mediaCachePath, withIntermediateDirectories = true, attributes = null))
+ } catch (e) {
+ console.log(e)
+ }
+ }
+
+ const currentTime = Int(Date().timeIntervalSince1970)
+ const cameraPath = (mediaCachePath + currentTime.toString() + ".jpg")
+
+ let options : Map = new Map();
+ options.set('resolution', "high");
+ options.set('sizeType', option.sizeType);
+ options.set('filePath', cameraPath);
+ if (option.crop != null) {
+ let crop : Map = new Map();
+ if (option.crop!.width != nil) {
+ crop.set('width', option.crop?.width);
+ }
+ if (option.crop!.height != nil) {
+ crop.set('height', option.crop?.height);
+ }
+ if (option.crop!.resize != nil) {
+ crop.set('resize', option.crop?.resize);
+ }
+ if (option.crop!.quality != nil) {
+ crop.set('quality', option.crop?.quality);
+ }
+ options.set('crop', crop);
+ }
+ DispatchQueue.main.async(execute = () : void => {
+ mediaCamera.start(options, success = (response : Map) : void => {
+ let success : ChooseImageSuccess = {
+ "errSubject": "uni-chooseImage",
+ "tempFilePaths": ["file://" + cameraPath],
+ "errMsg": "chooseImage:ok",
+ "tempFiles": response.get('tempFiles')
+ }
+ option.success?.(success)
+ option.complete?.(success)
+ }, fail = (error : NSError) : void => {
+ console.log(error);
+ let mediaError = new MediaErrorImpl(1101007, UniError_ChooseImage);
+ option.fail?.(mediaError)
+ option.complete?.(mediaError)
+ })
+ })
+
+}
+
+function openAlbumForImage(option : ChooseImageOptions, count : number, type : number) {
+ let fileManager = FileManager.default
+ if (fileManager.fileExists(atPath = mediaCachePath) == false) {
+ try {
+ UTSiOS.try(fileManager.createDirectory(atPath = mediaCachePath, withIntermediateDirectories = true, attributes = null))
+ } catch (e) {
+ console.log(e)
+ }
+ }
+ let options : Map = new Map();
+ options.set('resolution', "high");
+ options.set('sizeType', option.sizeType);
+ options.set('filename', mediaCachePath);
+ if (count > 0) {
+ options.set('maximum', count);
+ }
+ if (option.crop != null) {
+ let crop : Map = new Map();
+ if (option.crop!.width != nil) {
+ crop.set('width', option.crop?.width);
+ }
+ if (option.crop!.height != nil) {
+ crop.set('height', option.crop?.height);
+ }
+ if (option.crop!.resize != nil) {
+ crop.set('resize', option.crop?.resize);
+ }
+ if (option.crop!.quality != nil) {
+ crop.set('quality', option.crop?.quality);
+ }
+ options.set('crop', crop);
+ }
+ DispatchQueue.main.async(execute = () : void => {
+ mediaAlbum.start(options, success = (response : Map) : void => {
+ let success : ChooseImageSuccess = {
+ "errSubject": "uni-chooseImage",
+ "tempFilePaths": response.get('tempFilePaths'),
+ "errMsg": "chooseImage:ok",
+ "tempFiles": response.get('tempFiles')
+ }
+ option.success?.(success)
+ option.complete?.(success)
+ }, fail = (error : NSError) : void => {
+ console.log(error);
+ let mediaError = new MediaErrorImpl(1101007, UniError_ChooseImage);
+ option.fail?.(mediaError)
+ option.complete?.(mediaError)
+ })
+ })
+
+}
+
+function requestCameraPermission(completion : (status : number) => void) {
+ let setting : Map = UTSiOS.getAppAuthorizeSetting();
+ const cameraAuthorized = setting.get("cameraAuthorized") as string;
+ if (cameraAuthorized == "authorized") {
+ completion(1)
+ } else if (cameraAuthorized == "not determined") {
+ AVCaptureDevice.requestAccess(AVMediaType.video, completionHandler = (result : Bool) : void => {
+ if (result) {
+ completion(1)
+ } else {
+ completion(0)
+ }
+ })
+ } else {
+ completion(0)
+ }
+}
+
+function requestAlbumPermission(level : string, completion : (status : number) => void) {
+ let setting : Map = UTSiOS.getAppAuthorizeSetting();
+ const albumAuthorized = setting.get("albumAuthorized") as string;
+ if (albumAuthorized == "authorized") {
+ completion(1)
+ } else if (albumAuthorized == "not determined") {
+ if (UTSiOS.available("iOS 14, *")) {
+ const accessLevel = (level == "readWrite") ? PHAccessLevel.readWrite : PHAccessLevel.addOnly
+ PHPhotoLibrary.requestAuthorization(accessLevel, handler = (result : PHAuthorizationStatus) : void => {
+ if (result == 3 || result == 4) {
+ completion(1)
+ } else {
+ completion(0)
+ }
+ })
+ } else {
+ PHPhotoLibrary.requestAuthorization((result : PHAuthorizationStatus) : void => {
+ if (result == 3 || result == 4) {
+ completion(1)
+ } else {
+ completion(0)
+ }
+ })
+ }
+ } else {
+ completion(0)
+ }
+}
+
+
+export const previewImage : PreviewImage = function (options : PreviewImageOptions) {
+
+}
+
+export const closePreviewImage : ClosePreviewImage = function (options : ClosePreviewImageOptions) {
+
+}
+
+export const saveImageToPhotosAlbum : SaveImageToPhotosAlbum = function (options : SaveImageToPhotosAlbumOptions) {
+ const path = UTSiOS.getResourceAbsolutePath(options.filePath,null)
+ let url = new URL(string = path)
+ if (url == null) {
+ let error = new MediaErrorImpl(1101003, UniError_SaveImageToPhotosAlbum);
+ options.fail?.(error)
+ options.complete?.(error)
+ return
+ }
+ requestAlbumPermission("addOnly", function (status : number) {
+ if (status == 1) {
+ try {
+ UTSiOS.try(PHPhotoLibrary.shared().performChangesAndWait(() : void => {
+ PHAssetCreationRequest.creationRequestForAssetFromImage(atFileURL = url!)
+ }))
+ let success : SaveImageToPhotosAlbumSuccess = {
+ "path": path
+ }
+ options.success?.(success)
+ options.complete?.(success)
+ } catch (e) {
+ let error = new MediaErrorImpl(1101006, UniError_SaveImageToPhotosAlbum);
+ options.fail?.(error)
+ options.complete?.(error)
+ }
+ } else {
+ let error = new MediaErrorImpl(1101005, UniError_SaveImageToPhotosAlbum);
+ options.fail?.(error)
+ options.complete?.(error)
+ }
+ })
+}
\ No newline at end of file
diff --git a/uni_modules/uni-media/utssdk/interface.uts b/uni_modules/uni-media/utssdk/interface.uts
index 80a348f790d845abed1935c72255a766c797cdbb..41d646ad7901bcd5a740f47b9b7794179b651ca0 100644
--- a/uni_modules/uni-media/utssdk/interface.uts
+++ b/uni_modules/uni-media/utssdk/interface.uts
@@ -1,15 +1,53 @@
+/**
+ * 错误码
+ * - 1101001 用户取消
+ * - 1101002 urls至少包含一张图片地址
+ * - 1101003 文件不存在
+ * - 1101004 图片加载失败
+ * - 1101005 未获取权限
+ * - 1101006 图片或视频保存失败
+ * - 1101007 图片裁剪失败
+ * - 1101008 拍照或录像失败
+ * - 1101009 图片压缩失败
+ * - 1101010 其他错误
+ */
-export type ChooseImageSuccessCallback = {
+export type MediaErrorCode = 1101001 | 1101002 | 1101003 | 1101004 | 1101005 | 1101006 | 1101007 | 1101008 | 1101009 | 1101010;
+
+/**
+ * 图片或视频操作失败的错误回调
+ */
+export interface IMediaError extends IUniError {
+ errCode : MediaErrorCode
+};
+
+
+export type ChooseImageSuccess = {
/**
* 调用API的名称
*/
errSubject : string,
+ /**
+ * 描述信息
+ */
errMsg : string,
+ /**
+ * 图片的本地文件路径列表
+ * @type string | string []
+ */
tempFilePaths : Array,
+ /**
+ * 图片的本地文件列表
+ */
tempFiles : any
}
+export type ChooseImageFail = IMediaError;
+export type ChooseImageSuccessCallback = (callback : ChooseImageSuccess) => void
+export type ChooseImageFailCallback = (callback : ChooseImageFail) => void
+export type ChooseImageCompleteCallback = (callback : any) => void
+
export type ChooseImageCropOptions = {
/**
* 裁剪的宽度,单位为px,用于计算裁剪宽高比。
@@ -50,6 +88,15 @@ export type ChooseImageOptions = {
sourceType ?: (string[]) | null,
/**
* 根据文件拓展名过滤,每一项都不能是空字符串。默认不过滤。仅H5支持
+ * @uniPlatform {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * }
+ * }
*/
extension ?: (string[]) | null,
/**
@@ -59,21 +106,27 @@ export type ChooseImageOptions = {
/**
* 成功则返回图片的本地文件路径列表 tempFilePaths
*/
- success ?: ((callback : ChooseImageSuccessCallback) => void) | null,
+ success ?: (ChooseImageSuccessCallback) | null,
/**
* 接口调用失败的回调函数
*/
- fail ?: ((callback : UniError) => void) | null,
+ fail ?: (ChooseImageFailCallback) | null,
/**
* 接口调用结束的回调函数(调用成功、失败都会执行)
*/
- complete ?: ((callback : any) => void) | null
+ complete ?: (ChooseImageCompleteCallback) | null
}
export type ChooseImage = (options : ChooseImageOptions) => void
-export type PreviewImageSuccessCallback = {
+export type PreviewImageSuccess = {
+ /**
+ * 调用API的名称
+ */
errSubject : string,
+ /**
+ * 描述信息
+ */
errMsg : string
}
@@ -110,20 +163,22 @@ export type LongPressActionsOptions = {
complete : ((result : any) => void) | null
};
+
+export type PreviewImageFail = IMediaError;
+export type PreviewImageSuccessCallback = (callback : PreviewImageSuccess) => void
+export type PreviewImageFailCallback = (callback : PreviewImageFail) => void
+export type PreviewImageCompleteCallback = ChooseImageCompleteCallback
+
export type PreviewImageOptions = {
/**
- * 当前显示图片的链接,不填则默认为 urls 的第一张
- */
- count ?: string | null,
- /**
- * current 为当前显示图片的链接/索引值,不填或填写的值无效则为 urls 的第一张。App平台在 1.9.5至1.9.8之间,current为必填。不填会报错
+ * current 为当前显示图片的链接/索引值,不填或填写的值无效则为 urls 的第一张。
* @type string | number
*/
current ?: any | null,
/**
* 需要预览的图片链接列表
*/
- urls : string[],
+ urls : Array,
/**
* 图片指示器样式
* - default: 底部圆点指示器
@@ -138,50 +193,64 @@ export type PreviewImageOptions = {
*/
loop ?: boolean | null,
/**
- * 长按图片显示操作菜单,如不填默认为保存相册,1.9.5 起支持。
+ * 长按图片显示操作菜单,如不填默认为保存相册。
+ * @uniPlatform {
+ * "app": {
+ * "android": {
+ * "osVer": "4.4",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * }
+ * }
*/
longPressActions ?: LongPressActionsOptions | null,
/**
* 接口调用成功的回调函数
*/
- success ?: ((result : PreviewImageSuccessCallback) => void) | null,
+ success ?: (PreviewImageSuccessCallback) | null,
/**
* 接口调用失败的回调函数
*/
- fail ?: ((result : UniError) => void) | null,
+ fail ?: (PreviewImageFailCallback) | null,
/**
* 接口调用结束的回调函数(调用成功、失败都会执行)
*/
- complete ?: ((result : any) => void) | null
+ complete ?: (PreviewImageCompleteCallback) | null
};
export type PreviewImage = (options : PreviewImageOptions) => void;
export type ClosePreviewImage = (options : ClosePreviewImageOptions) => void;
-export type ClosePreviewImageSuccessCallback = {
+export type ClosePreviewImageSuccess = {
/**
* 错误信息
*/
errMsg : string
};
+export type ClosePreviewImageFail = IMediaError;
+export type ClosePreviewImageSuccessCallback = (callback : ClosePreviewImageSuccess) => void
+export type ClosePreviewImageFailCallback = (callback : ClosePreviewImageFail) => void
+export type ClosePreviewImageCompleteCallback = ChooseImageCompleteCallback
+
export type ClosePreviewImageOptions = {
/**
* 接口调用成功的回调函数
*/
- success ?: ((result : ClosePreviewImageSuccessCallback) => void) | null,
+ success ?: (ClosePreviewImageSuccessCallback) | null,
/**
* 接口调用失败的回调函数
*/
- fail ?: ((result : UniError) => void) | null,
+ fail ?: (ClosePreviewImageFailCallback) | null,
/**
* 接口调用结束的回调函数(调用成功、失败都会执行)
*/
- complete ?: ((result : any) => void) | null
+ complete ?: (ClosePreviewImageCompleteCallback) | null
};
export type GetImageInfo = (options : GetImageInfoOptions) => void;
-export type GetImageInfoSuccessCallback = {
+export type GetImageInfoSuccess = {
/**
* 图片宽度,单位px
*/
@@ -204,64 +273,80 @@ export type GetImageInfoSuccessCallback = {
type : string | null
};
+export type GetImageInfoFail = IMediaError;
+export type GetImageInfoSuccessCallback = (callback : GetImageInfoSuccess) => void
+export type GetImageInfoFailCallback = (callback : GetImageInfoFail) => void
+export type GetImageInfoCompleteCallback = ChooseImageCompleteCallback
+
export type GetImageInfoOptions = {
/**
* 图片的路径,可以是相对路径,临时文件路径,存储文件路径,网络图片路径
*/
- src : string,
+ src : string.ImageURIString,
/**
* 接口调用成功的回调函数
*/
- success ?: ((result : GetImageInfoSuccessCallback) => void) | null,
+ success ?: (GetImageInfoSuccessCallback) | null,
/**
* 接口调用失败的回调函数
*/
- fail ?: ((result : UniError) => void) | null,
+ fail ?: (GetImageInfoFailCallback) | null,
/**
* 接口调用结束的回调函数(调用成功、失败都会执行)
*/
- complete ?: ((result : any) => void) | null
+ complete ?: (GetImageInfoCompleteCallback) | null
};
export type SaveImageToPhotosAlbum = (options : SaveImageToPhotosAlbumOptions) => void;
-export type SaveImageToPhotosAlbumSuccessCallback = {
+export type SaveImageToPhotosAlbumSuccess = {
/**
* 保存到相册的图片路径
*/
path : string
};
+export type SaveImageToPhotosAlbumFail = IMediaError;
+export type SaveImageToPhotosAlbumSuccessCallback = (callback : SaveImageToPhotosAlbumSuccess) => void
+export type SaveImageToPhotosAlbumFailCallback = (callback : SaveImageToPhotosAlbumFail) => void
+export type SaveImageToPhotosAlbumCompleteCallback = ChooseImageCompleteCallback
+
export type SaveImageToPhotosAlbumOptions = {
/**
* 图片文件路径,可以是临时文件路径也可以是永久文件路径,不支持网络图片路径
*/
- filePath : string,
+ filePath : string.ImageURIString,
/**
* 接口调用成功的回调函数
*/
- success ?: ((result : SaveImageToPhotosAlbumSuccessCallback) => void) | null,
+ success ?: (SaveImageToPhotosAlbumSuccessCallback) | null,
/**
* 接口调用失败的回调函数
*/
- fail ?: ((result : UniError) => void) | null,
+ fail ?: (SaveImageToPhotosAlbumFailCallback) | null,
/**
* 接口调用结束的回调函数(调用成功、失败都会执行)
*/
- complete ?: ((result : any) => void) | null
+ complete ?: (SaveImageToPhotosAlbumCompleteCallback) | null
};
export type CompressImage = (options : CompressImageOptions) => void;
-export type CompressImageSuccessCallback = {
+export type CompressImageSuccess = {
/**
* 压缩后图片的临时文件路径
*/
tempFilePath : string
};
+
+export type CompressImageFail = IMediaError;
+export type CompressImageSuccessCallback = (callback : CompressImageSuccess) => void
+export type CompressImageFailCallback = (callback : CompressImageFail) => void
+export type CompressImageCompleteCallback = ChooseImageCompleteCallback
+
export type CompressImageOptions = {
/**
* 图片路径,图片的路径,可以是相对路径、临时文件路径、存储文件路径
*/
- src : string,
+ src : string.ImageURIString,
/**
* 压缩质量,范围0~100,数值越小,质量越低,压缩率越高(仅对jpg有效)
*/
@@ -289,18 +374,18 @@ export type CompressImageOptions = {
/**
* 接口调用成功的回调函数
*/
- success ?: ((result : CompressImageSuccessCallback) => void) | null,
+ success ?: (CompressImageSuccessCallback) | null,
/**
* 接口调用失败的回调函数
*/
- fail ?: ((result : UniError) => void) | null,
+ fail ?: (CompressImageFailCallback) | null,
/**
* 接口调用结束的回调函数(调用成功、失败都会执行)
*/
- complete ?: ((result : any) => void) | null
+ complete ?: (CompressImageCompleteCallback) | null
};
-export type ChooseVideoSuccessCallback = {
+export type ChooseVideoSuccess = {
/**
* 选定视频的临时文件路径
*/
@@ -331,6 +416,11 @@ export type ChooseVideoSuccessCallback = {
// name: string | null
};
+export type ChooseVideoFail = IMediaError;
+export type ChooseVideoSuccessCallback = (callback : ChooseVideoSuccess) => void
+export type ChooseVideoFailCallback = (callback : ChooseVideoFail) => void
+export type ChooseVideoCompleteCallback = ChooseImageCompleteCallback
+
export type ChooseVideoOptions = {
/**
* album 从相册选视频,camera 使用相机拍摄,默认为:['album', 'camera']
@@ -359,20 +449,20 @@ export type ChooseVideoOptions = {
/**
* 接口调用成功,返回视频文件的临时文件路径,详见返回参数说明
*/
- success ?: ((result : ChooseVideoSuccessCallback) => void) | null,
+ success ?: (ChooseVideoSuccessCallback) | null,
/**
* 接口调用失败的回调函数
*/
- fail ?: ((result : UniError) => void) | null,
+ fail ?: (ChooseVideoFailCallback) | null,
/**
* 接口调用结束的回调函数(调用成功、失败都会执行)
*/
- complete ?: ((result : any) => void) | null
+ complete ?: (ChooseVideoCompleteCallback) | null
};
export type ChooseVideo = (options : ChooseVideoOptions) => void;
-export type GetVideoInfoSuccessCallback = {
+export type GetVideoInfoSuccess = {
/**
* 画面方向
*/
@@ -407,51 +497,61 @@ export type GetVideoInfoSuccessCallback = {
bitrate : number | null
};
+export type GetVideoInfoFail = IMediaError;
+export type GetVideoInfoSuccessCallback = (callback : GetVideoInfoSuccess) => void
+export type GetVideoInfoFailCallback = (callback : GetVideoInfoFail) => void
+export type GetVideoInfoCompleteCallback = ChooseImageCompleteCallback
+
export type GetVideoInfoOptions = {
/**
* 视频文件路径,可以是临时文件路径也可以是永久文件路径
*/
- src : string,
+ src : string.VideoURIString,
/**
* 接口调用成功的回调函数
*/
- success ?: ((result : GetVideoInfoSuccessCallback) => void) | null,
+ success ?: (GetVideoInfoSuccessCallback) | null,
/**
* 接口调用失败的回调函数
*/
- fail ?: ((result : UniError) => void) | null,
+ fail ?: (GetVideoInfoFailCallback) | null,
/**
* 接口调用结束的回调函数(调用成功、失败都会执行)
*/
- complete ?: ((result : any) => void) | null
+ complete ?: (GetVideoInfoCompleteCallback) | null
};
export type GetVideoInfo = (options : GetVideoInfoOptions) => void;
-export type SaveVideoToPhotosAlbumSuccessCallback = {};
+export type SaveVideoToPhotosAlbumSuccess = {};
+
+export type SaveVideoToPhotosAlbumFail = IMediaError;
+export type SaveVideoToPhotosAlbumSuccessCallback = (callback : SaveVideoToPhotosAlbumSuccess) => void
+export type SaveVideoToPhotosAlbumFailCallback = (callback : SaveVideoToPhotosAlbumFail) => void
+export type SaveVideoToPhotosAlbumCompleteCallback = ChooseImageCompleteCallback
export type SaveVideoToPhotosAlbumOptions = {
/**
* 视频文件路径,可以是临时文件路径也可以是永久文件路径
*/
- filePath : string,
+ filePath : string.VideoURIString,
/**
* 接口调用成功的回调函数
*/
- success ?: ((result : SaveVideoToPhotosAlbumSuccessCallback) => void) | null,
+ success ?: (SaveVideoToPhotosAlbumSuccessCallback) | null,
/**
* 接口调用失败的回调函数
*/
- fail ?: ((result : UniError) => void) | null,
+ fail ?: (SaveVideoToPhotosAlbumFailCallback) | null,
/**
* 接口调用结束的回调函数(调用成功、失败都会执行)
*/
- complete ?: ((result : any) => void) | null
+ complete ?: (SaveVideoToPhotosAlbumCompleteCallback) | null
};
export type SaveVideoToPhotosAlbum = (options : SaveVideoToPhotosAlbumOptions) => void;
-export type CompressVideoSuccessCallback = {
+export type CompressVideoSuccess = {
/**
* 压缩后的临时文件地址
*/
@@ -462,11 +562,16 @@ export type CompressVideoSuccessCallback = {
size : number
};
+export type CompressVideoFail = IMediaError;
+export type CompressVideoSuccessCallback = (callback : CompressVideoSuccess) => void
+export type CompressVideoFailCallback = (callback : CompressVideoFail) => void
+export type CompressVideoCompleteCallback = ChooseImageCompleteCallback
+
export type CompressVideoOptions = {
/**
* 视频文件路径,可以是临时文件路径也可以是永久文件路径
*/
- src : string,
+ src : string.VideoURIString,
/**
* 压缩质量
* - low: 低
@@ -490,15 +595,15 @@ export type CompressVideoOptions = {
/**
* 接口调用成功的回调函数
*/
- success ?: ((result : CompressVideoSuccessCallback) => void) | null,
+ success ?: (CompressVideoSuccessCallback) | null,
/**
* 接口调用失败的回调函数
*/
- fail ?: ((result : UniError) => void) | null,
+ fail ?: (CompressVideoFailCallback) | null,
/**
* 接口调用结束的回调函数(调用成功、失败都会执行)
*/
- complete ?: ((result : any) => void) | null
+ complete ?: (CompressVideoCompleteCallback) | null
};
export type CompressVideo = (options : CompressVideoOptions) => void;
@@ -514,7 +619,11 @@ export interface Uni {
* "uniVer": "√",
* "unixVer": "3.9+"
* }
- * }
+ * },
+ * "web": {
+ * "uniVer": "√",
+ * "unixVer": "4.0"
+ * }
* }
* @uniVueVersion 2,3
* @example
@@ -542,7 +651,11 @@ export interface Uni {
* "uniVer": "√",
* "unixVer": "3.9+"
* }
- * }
+ * },
+ * "web": {
+ * "uniVer": "√",
+ * "unixVer": "4.0"
+ * }
* }
* @uniVueVersion 2,3
* @example
diff --git a/uni_modules/uni-media/utssdk/unierror.uts b/uni_modules/uni-media/utssdk/unierror.uts
index 24ddb6bc3c3eed4ad158a9e514bef97cb4dd6c89..5c5d458f69f1d6fffce8eca78c30860b71fbbef7 100644
--- a/uni_modules/uni-media/utssdk/unierror.uts
+++ b/uni_modules/uni-media/utssdk/unierror.uts
@@ -1,3 +1,5 @@
+import { IMediaError, MediaErrorCode } from "./interface.uts";
+
/**
* 错误主题
*/
@@ -14,7 +16,7 @@ export const UniError_GetVideoInfo = "uni-getVideoInfo"
* 错误码
* @UniError
*/
-export const UniErrors : Map = new Map([
+export const MediaUniErrors : Map = new Map([
/**
* 用户取消
*/
@@ -55,4 +57,16 @@ export const UniErrors : Map = new Map([
* 其他错误
*/
[1101010, "unexpect error:"]
-]);
\ No newline at end of file
+]);
+
+export class MediaErrorImpl extends UniError implements IMediaError {
+ // #ifdef APP-ANDROID
+ override errCode : MediaErrorCode
+ // #endif
+ constructor(errCode : MediaErrorCode, uniErrorSubject : string) {
+ super()
+ this.errSubject = uniErrorSubject
+ this.errCode = errCode
+ this.errMsg = MediaUniErrors[errCode] ?? "";
+ }
+}
\ No newline at end of file
diff --git a/uni_modules/uni-memorywarning/utssdk/app-android/index.uts b/uni_modules/uni-memorywarning/utssdk/app-android/index.uts
index 28bf366a9359e188f6f53ea5bba905746b8a192c..ec4a9106ec63f5468ba459e4566fe23449865f03 100644
--- a/uni_modules/uni-memorywarning/utssdk/app-android/index.uts
+++ b/uni_modules/uni-memorywarning/utssdk/app-android/index.uts
@@ -1,20 +1,20 @@
import { UTSAndroid } from "io.dcloud.uts"
-import { OnMemoryWarning, OffMemoryWarning } from "../interface.uts"
+import { OnMemoryWarning, OffMemoryWarning, MemoryWarningCallback, MemoryWarningCallbackResult } from "../interface.uts"
-let listeners: UTSCallback[] = []
+let listeners: MemoryWarningCallback[] = []
const onAppTrimMemoryListener = (ret: number) => {
listeners.forEach(listener => {
- let res = {
- level:ret
- }
- listener(res)
+ let res: MemoryWarningCallbackResult = {
+ level:ret
+ }
+ listener(res)
})
}
@Suppress("DEPRECATION")
-export const onMemoryWarning : OnMemoryWarning = function (callback: UTSCallback) {
+export const onMemoryWarning : OnMemoryWarning = function (callback: MemoryWarningCallback) {
if (listeners.length == 0) {
// 仅首次执行底层的实际监听
UTSAndroid.onAppTrimMemory(onAppTrimMemoryListener)
@@ -28,7 +28,7 @@ export const onMemoryWarning : OnMemoryWarning = function (callback: UTSCallbac
@Suppress("DEPRECATION")
-export const offMemoryWarning : OffMemoryWarning = function (callback: UTSCallback | null) {
+export const offMemoryWarning : OffMemoryWarning = function (callback: MemoryWarningCallback | null) {
if(callback == null){
// 清除全部回调
diff --git a/uni_modules/uni-memorywarning/utssdk/app-ios/index.uts b/uni_modules/uni-memorywarning/utssdk/app-ios/index.uts
index 60ee47f5749bf69643f221b9d3ac18f7badaa9f1..5f4f37bfdc3f0e3bf20a5c98d9a90852b1b0171b 100644
--- a/uni_modules/uni-memorywarning/utssdk/app-ios/index.uts
+++ b/uni_modules/uni-memorywarning/utssdk/app-ios/index.uts
@@ -1,58 +1,47 @@
import { NotificationCenter } from 'Foundation';
import { UIApplication } from "UIKit"
import { Selector } from "ObjectiveC"
-import { OnMemoryWarning, OffMemoryWarning } from "../interface.uts"
+import { OnMemoryWarning, OffMemoryWarning, MemoryWarningCallback, MemoryWarningCallbackResult } from "../interface.uts"
class MemoryWarningTool {
- static listeners: UTSCallback[] = []
-
+ static listener: MemoryWarningCallback | null = null
// 监听内存警告
- static listenMemoryWarning(callback: UTSCallback) {
-
+ static listenMemoryWarning(callback: MemoryWarningCallback) {
+
// 只有首次才需要注册监听事件
- if (this.listeners.length == 0) {
+ if (this.listener == null) {
// 注册监听内存警告通知事件及设置回调方法
// target-action 回调方法需要通过 Selector("方法名") 构建
const method = Selector("receiveMemoryWarning")
NotificationCenter.default.addObserver(this, selector = method, name = UIApplication.didReceiveMemoryWarningNotification, object = null)
}
- this.listeners.push(callback)
+ this.listener = callback
}
-
+
// 内存警告回调的方法
// target-action 的方法前需要添加 @objc 前缀
@objc static receiveMemoryWarning() {
// 触发回调
- this.listeners.forEach(listener => {
- listener({})
- })
+ let res: MemoryWarningCallbackResult = {
+ level: 0
+ };
+ this.listener?.(res);
}
-
+
// 移除监听事件
- static removeListen(callback: UTSCallback | null) {
- // 移除所有监听
- if (callback == null) {
- this.listeners = []
- // 移除监听事件
- NotificationCenter.default.removeObserver(this)
- return
- }
-
- // 清除指定回调
- const index = this.listeners.indexOf(callback!)
- if (index > -1) {
- this.listeners.splice(index, 1)
- }
+ static removeListen(callback: MemoryWarningCallback | null) {
+ this.listener = null;
+ NotificationCenter.default.removeObserver(this)
}
}
// 开启监听内存警告
-export const onMemoryWarning : OnMemoryWarning = function (callback: UTSCallback) {
+export const onMemoryWarning : OnMemoryWarning = function (callback: MemoryWarningCallback) {
MemoryWarningTool.listenMemoryWarning(callback)
}
// 关闭监听内存警告
-export const offMemoryWarning : OffMemoryWarning = function (callback: UTSCallback | null) {
+export const offMemoryWarning : OffMemoryWarning = function (callback: MemoryWarningCallback | null) {
MemoryWarningTool.removeListen(callback)
-}
\ No newline at end of file
+}
diff --git a/uni_modules/uni-memorywarning/utssdk/index.d.ts b/uni_modules/uni-memorywarning/utssdk/index.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..fbad2381541932af0d66eb7abc0bfb22bbdb1d36
--- /dev/null
+++ b/uni_modules/uni-memorywarning/utssdk/index.d.ts
@@ -0,0 +1,71 @@
+declare namespace UniNamespace {
+
+interface MemoryWarningCallbackResult {
+ /**
+ * 内存警告等级(仅安卓平台有效,iOS始终是0)
+ */
+ level: number
+}
+
+/**
+ * uni.onMemoryWarning/uni.offMemoryWarning回调函数定义
+ */
+type MemoryWarningCallback = (res: MemoryWarningCallbackResult) => void
+
+type OnMemoryWarning = (callback: MemoryWarningCallback) => void
+
+type OffMemoryWarning = (callback : MemoryWarningCallback | null) => void
+
+}
+
+
+declare interface Uni {
+ /**
+ * 开启监听内存警告
+ *
+ * @param {MemoryWarningCallback} callback
+ * @tutorial https://uniapp.dcloud.net.cn/api/system/memory.html#onmemorywarning
+ * @uniPlatform {
+ * "app": {
+ * "android": {
+ * "osVer": "4.4.4",
+ * "uniVer": "3.7.7",
+ * "unixVer": "3.9.0"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "3.7.7",
+ * "unixVer": "3.9.0"
+ * }
+ * }
+ * }
+ * @uniVersion 3.7.7
+ * @uniVueVersion 2,3 //支持的vue版本
+ * @autotest { expectCallback: true }
+ */
+ onMemoryWarning(callback: UniNamespace.MemoryWarningCallback) : void,
+ /**
+ * 取消监听内存不足告警事件
+ *
+ * @param {MemoryWarningCallback} callback
+ * @tutorial https://uniapp.dcloud.net.cn/api/system/memory.html#offmemorywarning
+ * @uniPlatform {
+ * "app": {
+ * "android": {
+ * "osVer": "4.4.4",
+ * "uniVer": "3.7.7",
+ * "unixVer": "3.9.0"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "3.7.7",
+ * "unixVer": "3.9.0"
+ * }
+ * }
+ * }
+ * @uniVersion 3.7.7
+ * @uniVueVersion 2,3 //支持的vue版本
+ * @autotest { expectCallback: true }
+ */
+ offMemoryWarning(callback : UniNamespace.MemoryWarningCallback | null) : void
+}
diff --git a/uni_modules/uni-memorywarning/utssdk/interface.uts b/uni_modules/uni-memorywarning/utssdk/interface.uts
index 5e11ec45b24fb0ba56d204fc2a9eab50d255b807..1e3250e8dbf5da28517666206eae16748871dd28 100644
--- a/uni_modules/uni-memorywarning/utssdk/interface.uts
+++ b/uni_modules/uni-memorywarning/utssdk/interface.uts
@@ -1,13 +1,27 @@
+/**
+ * uni.onMemoryWarning/uni.offMemoryWarning回调参数
+ */
+export type MemoryWarningCallbackResult = {
+ /**
+ * 内存警告等级(仅安卓平台有效,iOS始终是0)
+ */
+ level: number
+}
-export type OnMemoryWarning = (callback: UTSCallback) => void
+/**
+ * uni.onMemoryWarning/uni.offMemoryWarning回调函数定义
+ */
+export type MemoryWarningCallback = (res: MemoryWarningCallbackResult) => void
+
+export type OnMemoryWarning = (callback: MemoryWarningCallback) => void
-export type OffMemoryWarning = (callback : UTSCallback | null) => void
+export type OffMemoryWarning = (callback : MemoryWarningCallback | null) => void
export interface Uni {
/**
* 开启监听内存警告
- *
- * @param {UTSCallback} callback
+ *
+ * @param {MemoryWarningCallback} callback
* @tutorial https://uniapp.dcloud.net.cn/api/system/memory.html#onmemorywarning
* @uniPlatform {
* "app": {
@@ -19,7 +33,7 @@ export interface Uni {
* "ios": {
* "osVer": "9.0",
* "uniVer": "3.7.7",
- * "unixVer": "3.9.0"
+ * "unixVer": "x"
* }
* }
* }
@@ -27,11 +41,11 @@ export interface Uni {
* @uniVueVersion 2,3 //支持的vue版本
* @autotest { expectCallback: true }
*/
- onMemoryWarning(callback: UTSCallback) : void,
+ onMemoryWarning(callback: MemoryWarningCallback) : void,
/**
* 取消监听内存不足告警事件
- *
- * @param {UTSCallback} callback
+ *
+ * @param {MemoryWarningCallback} callback
* @tutorial https://uniapp.dcloud.net.cn/api/system/memory.html#offmemorywarning
* @uniPlatform {
* "app": {
@@ -43,7 +57,7 @@ export interface Uni {
* "ios": {
* "osVer": "9.0",
* "uniVer": "3.7.7",
- * "unixVer": "3.9.0"
+ * "unixVer": "x"
* }
* }
* }
@@ -51,5 +65,5 @@ export interface Uni {
* @uniVueVersion 2,3 //支持的vue版本
* @autotest { expectCallback: true }
*/
- offMemoryWarning(callback : UTSCallback | null) : void
-}
\ No newline at end of file
+ offMemoryWarning(callback : MemoryWarningCallback | null) : void
+}
diff --git a/uni_modules/uni-network/utssdk/app-android/index.uts b/uni_modules/uni-network/utssdk/app-android/index.uts
index 7fe4a4602dc1eb9bae576bc6900be9f037790343..91aa93b5471518e7c013681ebda1eeaded10d65f 100644
--- a/uni_modules/uni-network/utssdk/app-android/index.uts
+++ b/uni_modules/uni-network/utssdk/app-android/index.uts
@@ -11,12 +11,11 @@ import ArrayList from 'java.util.ArrayList';
import ProgressListener from 'android.os.RecoverySystem.ProgressListener';
import Handler from 'android.os.Handler';
import Looper from 'android.os.Looper';
-import UTSAndroid from 'io.dcloud.uts.UTSAndroid';
import Class from 'java.lang.Class';
-import Type from 'java.lang.reflect.Type';
+import Type from 'java.lang.reflect.Type';
let charsetPattern = Pattern.compile('charset=([a-z0-9-]+)')
-
+
class RunnableTask extends Runnable {
private callback : () => void | null;
private looper : Looper | null = null;
@@ -90,8 +89,6 @@ class RequestNetworkListener extends NetworkRequestListener {
let result = {};
if (kParam != null) {
if (option == null || '-1' == option['statusCode']) {
- // result['statusText'] = 'ERR_CONNECT_FAILED';
- // result['errMsg'] = option['errorMsg'];
if (this.headers != null) {
result['header'] = this.headers;
}
@@ -99,7 +96,7 @@ class RequestNetworkListener extends NetworkRequestListener {
let cause = exception.cause.toString();
let errMsg = option['errorMsg']! as string;
let errCode = (option['errorCode']! as string).toInt();
- if (errMsg.contains("timeout")) {
+ if (errMsg.indexOf("timeout") != -1) {
errCode = 5;
errMsg = "time out";
} else if (cause.contains("Connection refused")) {
@@ -117,7 +114,7 @@ class RequestNetworkListener extends NetworkRequestListener {
}
let failResult = new RequestFailImpl(getErrcode(errCode));
- failResult.cause = new Error(cause);
+ failResult.cause = new SourceError(cause);
new RunnableTask(this.looper, () => {
if (kParam != null) {
let fail = kParam.fail;
@@ -220,7 +217,7 @@ class RequestNetworkListener extends NetworkRequestListener {
data: result['data'] as T,
statusCode: (result['statusCode'] as string).toInt(),
header: result['header']!,
- cookies: []
+ cookies: this.parseCookie(this.headers)
};
new RunnableTask(this.looper, () => {
if (kParam != null) {
@@ -257,7 +254,7 @@ class RequestNetworkListener extends NetworkRequestListener {
private parseData(data : string, type : string) : any | null {
if ("java.lang.Object".equals(this.clzName, true)) {
- if (type.contains("json")) {
+ if (type.indexOf("json") != -1) {
return JSON.parse(data);
} else if (type == 'jsonp') {
if (TextUtils.isEmpty(data)) {
@@ -277,6 +274,36 @@ class RequestNetworkListener extends NetworkRequestListener {
return JSON.parse(data, this.type);
}
}
+
+ private parseCookie(header : UTSJSONObject | null) : string[] {
+ if (header == null) {
+ return []
+ }
+ let cookiesStr = header.getString('Set-Cookie')
+ if (cookiesStr == null) {
+ cookiesStr = header.getString('set-cookie')
+ }
+ if (cookiesStr == null) {
+ return []
+ }
+ let cookiesArr = new Array()
+ if (cookiesStr.charAt(0) == "[" && cookiesStr.charAt(cookiesStr.length - 1) == "]") {
+ cookiesStr = cookiesStr.slice(1, -1)
+ }
+
+ const handleCookiesArr = cookiesStr.split(';')
+ for (let i = 0; i < handleCookiesArr.length; i++) {
+ if (handleCookiesArr[i].indexOf('Expires=') != -1 || handleCookiesArr[i].indexOf('expires=') != -1) {
+ cookiesArr.push(handleCookiesArr[i].replace(',', ''))
+ } else {
+ cookiesArr.push(handleCookiesArr[i])
+ }
+ }
+ cookiesArr = cookiesArr.join(';').split(',')
+
+ return cookiesArr
+ }
+
}
@@ -307,6 +334,10 @@ class UploadNetworkListener implements NetworkUploadFileListener {
let errCode = (option['statusCode']! as string).toInt();
if (errorMsg != null) {
let failResult = new UploadFileFailImpl(getErrcode(errCode));
+ let cause = option['cause'];
+ if (cause != null) {
+ failResult.cause = cause as SourceError;
+ }
new RunnableTask(this.looper, () => {
if (kParam != null) {
@@ -369,18 +400,17 @@ class DownloadNetworkListener implements NetworkDownloadFileListener {
}
onComplete(option : UTSJSONObject) {
let kParam = this.param;
- if (kParam != null) {
- let statusCode = (option['statusCode']! as string).toInt();
+ if (kParam != null) {
+ let statusCode = (option['statusCode']! as string).toInt();
let errMsg = option['errorMsg'];
if (errMsg != null) {
let errCode = (option['errorCode']! as string).toInt();
- let failResult = new DownloadFileFailImpl(getErrcode(errCode));
- failResult.errMsg = errMsg as string;
- let exception = option['cause'];
- if(exception != null){
- let cause = (exception as Exception).cause.toString();
- failResult.cause = new Error(cause);
- }
+ let failResult = new DownloadFileFailImpl(getErrcode(errCode));
+ failResult.errMsg = errMsg as string;
+ let cause = option['cause'];
+ if (cause != null) {
+ failResult.cause = cause as SourceError;
+ }
new RunnableTask(this.looper, () => {
if (kParam != null) {
@@ -425,16 +455,16 @@ class DownloadNetworkListener implements NetworkDownloadFileListener {
@UTSAndroid.keyword("inline")
@UTSAndroid.keyword('reified')
-export function request(options : RequestOptions) : RequestTask | null {
+export function request(options : RequestOptions) : RequestTask {
const type = UTSAndroid.getGenericType();
const clzName = UTSAndroid.getGenericClassName();
return NetworkManager.getInstance().request(options, new RequestNetworkListener(options, type, clzName));
}
-export const uploadFile : UploadFile = (options : UploadFileOptions) : UploadTask | null => {
+export const uploadFile : UploadFile = (options : UploadFileOptions) : UploadTask => {
return NetworkManager.getInstance().uploadFile(options, new UploadNetworkListener(options));
}
-export const downloadFile : DownloadFile = (options : DownloadFileOptions) : DownloadTask | null => {
+export const downloadFile : DownloadFile = (options : DownloadFileOptions) : DownloadTask => {
return NetworkManager.getInstance().downloadFile(options, new DownloadNetworkListener(options));
}
\ No newline at end of file
diff --git a/uni_modules/uni-network/utssdk/app-android/network/NetworkManager.uts b/uni_modules/uni-network/utssdk/app-android/network/NetworkManager.uts
index 9cc016af9a4e9f3a88840e456abbcad41126913a..d1f5c5d10c901f2b75fbcb39b31ba19542965389 100644
--- a/uni_modules/uni-network/utssdk/app-android/network/NetworkManager.uts
+++ b/uni_modules/uni-network/utssdk/app-android/network/NetworkManager.uts
@@ -26,7 +26,6 @@ import OkHostnameVerifier from 'okhttp3.internal.tls.OkHostnameVerifier';
import { SSLFactoryManager } from './tls/SSLFactoryManager.uts';
import { SSLConfig } from './tls/SSLConfig.uts';
import { CookieInterceptor } from './interceptor/CookieInterceptor.uts'
-import UTSAndroid from 'io.dcloud.uts.UTSAndroid';
import MultipartBody from 'okhttp3.MultipartBody';
import JSONObject from 'com.alibaba.fastjson.JSONObject';
import { UploadController } from './upload/UploadController.uts';
@@ -58,7 +57,7 @@ interface NetworkDownloadFileListener {
class NetworkRequestTaskImpl implements RequestTask {
private call: Call | null = null;
- constructor(call: Call) {
+ constructor(call: Call | null) {
this.call = call;
}
@@ -92,14 +91,14 @@ class NetworkManager {
- public request(param: RequestOptions, listener: NetworkRequestListener): RequestTask | null {
+ public request(param: RequestOptions, listener: NetworkRequestListener): RequestTask {
if (listener != null) {
listener.onStart();
}
let client = this.createRequestClient(param!);
let request = this.createRequest(param!, listener!);
if (request == null) {
- return null;
+ return new NetworkRequestTaskImpl(null);
}
let call: Call = client.newCall(request);
@@ -296,10 +295,14 @@ class NetworkManager {
});
const dataMap: Map = data.toMap();
dataMap.forEach((value, key)=>{
+ if(value == null){
+ value = "";
+ }
+ let encodeKey = encodeURIComponent(key)!
if (value instanceof UTSJSONObject || value instanceof Array){
- queryMap[key] = JSON.stringify(value);
+ queryMap[encodeKey] = encodeURIComponent(JSON.stringify(value))!
}else{
- queryMap[key] = "" + value;
+ queryMap[encodeKey] = encodeURIComponent("" + value)!;
}
})
let queryStr = "";
@@ -317,11 +320,11 @@ class NetworkManager {
}
- public uploadFile(options: UploadFileOptions, listener: NetworkUploadFileListener): UploadTask | null {
+ public uploadFile(options: UploadFileOptions, listener: NetworkUploadFileListener): UploadTask {
return UploadController.getInstance().uploadFile(options, listener);
}
- public downloadFile(options: DownloadFileOptions, listener: NetworkDownloadFileListener): DownloadTask | null {
+ public downloadFile(options: DownloadFileOptions, listener: NetworkDownloadFileListener): DownloadTask {
return DownloadController.getInstance().downloadFile(options, listener);
}
diff --git a/uni_modules/uni-network/utssdk/app-android/network/download/DownloadController.uts b/uni_modules/uni-network/utssdk/app-android/network/download/DownloadController.uts
index 5b64c7016710f754f7c2e1f0262dc176bea30905..926cb1ef96d79edcf6813a21f76bbd31b878c7fc 100644
--- a/uni_modules/uni-network/utssdk/app-android/network/download/DownloadController.uts
+++ b/uni_modules/uni-network/utssdk/app-android/network/download/DownloadController.uts
@@ -8,7 +8,6 @@ import Dispatcher from 'okhttp3.Dispatcher';
import Callback from 'okhttp3.Callback';
import Response from 'okhttp3.Response';
import Request from 'okhttp3.Request';
-import UTSAndroid from 'io.dcloud.uts.UTSAndroid';
import Call from 'okhttp3.Call';
import IOException from 'java.io.IOException';
import ResponseBody from 'okhttp3.ResponseBody';
@@ -23,12 +22,13 @@ import URLDecoder from 'java.net.URLDecoder';
import CookieManager from 'android.webkit.CookieManager';
import KotlinArray from 'kotlin.Array';
import Context from 'android.content.Context';
-import Environment from 'android.os.Environment';
+import Environment from 'android.os.Environment';
+import { CookieInterceptor } from '../interceptor/CookieInterceptor.uts'
class NetworkDownloadTaskImpl implements DownloadTask {
private call : Call | null = null;
private listener : NetworkDownloadFileListener | null = null;
- constructor(call : Call, listener : NetworkDownloadFileListener) {
+ constructor(call : Call | null, listener : NetworkDownloadFileListener) {
this.call = call;
this.listener = listener;
}
@@ -64,11 +64,11 @@ export class DownloadController {
return this.instance!;
}
- public downloadFile(options : DownloadFileOptions, listener : NetworkDownloadFileListener) : DownloadTask | null {
+ public downloadFile(options : DownloadFileOptions, listener : NetworkDownloadFileListener) : DownloadTask {
const client = this.createDownloadClient(options);
let request = this.createDownloadRequest(options, listener);
if (request == null) {
- return null;
+ return new NetworkDownloadTaskImpl(null, listener);
}
let call : Call = client.newCall(request);
call.enqueue(new SimpleDownloadCallback(listener, options.filePath ?? ""));
@@ -80,7 +80,6 @@ export class DownloadController {
-
private createDownloadClient(option : DownloadFileOptions) : OkHttpClient {
let clientBuilder = OkHttpClient.Builder();
@@ -88,7 +87,8 @@ export class DownloadController {
clientBuilder.connectTimeout(timeout, TimeUnit.MILLISECONDS);
clientBuilder.readTimeout(timeout, TimeUnit.MILLISECONDS);
clientBuilder.writeTimeout(timeout, TimeUnit.MILLISECONDS);
- clientBuilder.callTimeout(timeout, TimeUnit.MILLISECONDS);
+ clientBuilder.callTimeout(timeout, TimeUnit.MILLISECONDS);
+ clientBuilder.addInterceptor(new CookieInterceptor());
if (this.downloadExecutorService == null) {
this.downloadExecutorService = Executors.newFixedThreadPool(10);
@@ -103,12 +103,13 @@ export class DownloadController {
let requestBilder = new Request.Builder();
try {
requestBilder.url(options.url);
- } catch (e : Exception) {
- let option = {};
+ } catch (exception : Exception) {
+ let option: UTSJSONObject = {};
option['statusCode'] = '-1';
option['errorCode'] = '-1';
- option['errorMsg'] = "invalid URL";
- option['cause'] = e;
+ option['errorMsg'] = "invalid URL";
+ let cause = exception.cause.toString();
+ option['cause'] = new SourceError(cause);
if (listener != null) {
listener.onComplete(option);
}
@@ -138,28 +139,32 @@ export class DownloadController {
}
class SimpleDownloadCallback implements Callback {
- private downloadFilePath = "/download/";
+ private downloadFilePath = "/uni-download/";
private listener : NetworkDownloadFileListener | null = null;
private specifyPath = "";
constructor(listener : NetworkDownloadFileListener, specifyPath : string) {
this.listener = listener;
- this.specifyPath = specifyPath;
+ if(specifyPath.startsWith("unifile://")){
+ this.specifyPath = UTSAndroid.convert2AbsFullPath(specifyPath);
+ }else{
+ this.specifyPath = specifyPath
+ }
}
override onFailure(call : Call, exception : IOException) {
- let option = {};
+ let option: UTSJSONObject = {};
option['statusCode'] = '-1';
option['errorCode'] = '-1';
option['errorMsg'] = exception.message;
- option['cause'] = exception;
- this.listener?.onComplete(option);
+ let cause = exception.cause.toString();
+ option['cause'] = new SourceError(cause);
+ this.listener?.onComplete(option);
}
override onResponse(call : Call, response : Response) {
if (response.isSuccessful()) {
const source = response.body()?.source()
if (source != null) {
- this.setCookie(response);
const tempFile = this.getTempFile()
let tempSink : BufferedSink | null = null;
let tempSource : BufferedSource | null = null;
@@ -214,21 +219,16 @@ class SimpleDownloadCallback implements Callback {
}
} else {
- let option = {};
+ let option: UTSJSONObject = {};
const code = response.code() + "";
const errorMsg = response.body()?.string();
option['statusCode'] = code;
option['errorCode'] = code;
- option['errorMsg'] = errorMsg;
- option['cause'] = null;
- this.listener?.onComplete(option);
- }
- }
-
- setCookie(response : Response) {
- const setCookie = response.header("Set-Cookie")
- if (!TextUtils.isEmpty(setCookie)) {
- CookieManager.getInstance().setCookie(response.request().url().toString(), setCookie);
+ option['errorMsg'] = errorMsg;
+ const sourceError = new SourceError(errorMsg ?? "");
+ sourceError.code = response.code();
+ option['cause'] = sourceError;
+ this.listener?.onComplete(option);
}
}
@@ -245,7 +245,7 @@ class SimpleDownloadCallback implements Callback {
getFile(response : Response) : File {
let targetPath = "";
if (this.specifyPath != "") {
- const sourcePath = UTSAndroid.convert2AbsFullPath("/");
+ const sourcePath = UTSAndroid.convert2AbsFullPath("/");
const sourceFileDir = new File(sourcePath);
if (this.isDescendant(sourceFileDir, new File(this.specifyPath))) {
let option = {};
@@ -296,8 +296,9 @@ class SimpleDownloadCallback implements Callback {
let option = {};
option['statusCode'] = '-1';
option['errorCode'] = '602001';
- option['errorMsg'] = exception.message;
- option['cause'] = exception;
+ option['errorMsg'] = exception.message;
+ let cause = exception.cause.toString();
+ option['cause'] = new SourceError(cause);
this.listener?.onComplete(option);
}
}
@@ -404,11 +405,12 @@ class SimpleDownloadCallback implements Callback {
try {
file.createNewFile()
} catch (exception : Exception) {
- let option = {};
+ let option: UTSJSONObject = {};
option['statusCode'] = '-1';
option['errorCode'] = '602001';
- option['errorMsg'] = exception.message;
- option['cause'] = exception;
+ option['errorMsg'] = exception.message;
+ let cause = exception.cause.toString();
+ option['cause'] = new SourceError(cause);
this.listener?.onComplete(option);
}
}
@@ -432,7 +434,7 @@ class SimpleDownloadCallback implements Callback {
/**
* 判断两个文件的上下级关系
*/
- isDescendant(parent : File, child : File) : boolean {
+ isDescendant(parent : File, child : File) : boolean {
//有可能开发者传入的是/sdcard 或者/storage/emulated/ 这样的文件路径, 所以要用软连接的实际文件路径进行对比.
if (child.getCanonicalPath() == parent.getCanonicalPath()) {
return true;
diff --git a/uni_modules/uni-network/utssdk/app-android/network/upload/UploadController.uts b/uni_modules/uni-network/utssdk/app-android/network/upload/UploadController.uts
index 22c366779781b323b3f2adfb8924682af8d7a16c..81d69897fc9f6b692a4b356c76c356d34a06a9e2 100644
--- a/uni_modules/uni-network/utssdk/app-android/network/upload/UploadController.uts
+++ b/uni_modules/uni-network/utssdk/app-android/network/upload/UploadController.uts
@@ -6,7 +6,6 @@ import ExecutorService from 'java.util.concurrent.ExecutorService';
import Executors from 'java.util.concurrent.Executors';
import RequestBody from 'okhttp3.RequestBody';
import MediaType from 'okhttp3.MediaType';
-import UTSAndroid from 'io.dcloud.uts.UTSAndroid';
import MultipartBody from 'okhttp3.MultipartBody';
import Call from 'okhttp3.Call';
import Dispatcher from 'okhttp3.Dispatcher';
@@ -27,7 +26,10 @@ import Retention from 'java.lang.annotation.Retention';
import URI from 'java.net.URI';
import Build from 'android.os.Build';
import Environment from 'android.os.Environment';
-import UUID from 'java.util.UUID';
+import UUID from 'java.util.UUID';
+import Context from 'android.content.Context';
+import FileOutputStream from 'java.io.FileOutputStream';
+import { CookieInterceptor } from '../interceptor/CookieInterceptor.uts'
class FileInformation {
@@ -40,7 +42,7 @@ class FileInformation {
class NetworkUploadTaskImpl implements UploadTask {
private call : Call | null = null;
private listener : NetworkUploadFileListener | null = null;
- constructor(call : Call, listener : NetworkUploadFileListener) {
+ constructor(call : Call | null, listener : NetworkUploadFileListener) {
this.call = call;
this.listener = listener;
}
@@ -92,12 +94,12 @@ class UploadController {
return this.instance!;
}
- public uploadFile(options : UploadFileOptions, listener : NetworkUploadFileListener) : UploadTask | null {
+ public uploadFile(options : UploadFileOptions, listener : NetworkUploadFileListener) : UploadTask {
const client = this.createUploadClient(options);
let request = this.createUploadRequest(options, listener);
if (request == null) {
- return null;
+ return new NetworkUploadTaskImpl(null, listener);;
}
let call : Call = client.newCall(request);
call.enqueue(new SimpleUploadCallback(listener));
@@ -114,7 +116,8 @@ class UploadController {
clientBuilder.connectTimeout(timeout, TimeUnit.MILLISECONDS);
clientBuilder.readTimeout(timeout, TimeUnit.MILLISECONDS);
clientBuilder.writeTimeout(timeout, TimeUnit.MILLISECONDS);
- clientBuilder.callTimeout(timeout, TimeUnit.MILLISECONDS);
+ clientBuilder.callTimeout(timeout, TimeUnit.MILLISECONDS);
+ clientBuilder.addInterceptor(new CookieInterceptor());
if (this.uploadExecutorService == null) {
this.uploadExecutorService = Executors.newFixedThreadPool(10);
@@ -130,12 +133,13 @@ class UploadController {
let requestBilder = new Request.Builder();
try {
requestBilder.url(options.url);
- } catch (e : Exception) {
+ } catch (exception : Exception) {
let option = {};
option['statusCode'] = '-1';
option['errorCode'] = '-1';
- option['errorMsg'] = "invalid URL";
- option['cause'] = "invalid URL";
+ option['errorMsg'] = "invalid URL";
+ let cause = exception.cause.toString();
+ option['cause'] = new SourceError(cause);
if (listener != null) {
listener.onComplete(option);
}
@@ -175,7 +179,7 @@ class UploadController {
option['statusCode'] = '-1';
option['errorCode'] = '-1';
option['errorMsg'] = "Illegal file";
- option['cause'] = "Illegal file";
+ option['cause'] = null;
if (listener != null) {
listener.onComplete(option);
}
@@ -189,7 +193,7 @@ class UploadController {
option['statusCode'] = '-1';
option['errorCode'] = '-1';
option['errorMsg'] = "filePath is null";
- option['cause'] = "filePath is null";
+ option['cause'] = null;
if (listener != null) {
listener.onComplete(option);
}
@@ -208,7 +212,7 @@ class UploadController {
option['statusCode'] = '-1';
option['errorCode'] = '-1';
option['errorMsg'] = "Illegal file";
- option['cause'] = "Illegal file";
+ option['cause'] = null;
if (listener != null) {
listener.onComplete(option);
}
@@ -259,14 +263,25 @@ class UploadController {
result = fileInformation;
cursor.close()
}
- } else {
- if (!uri.startsWith("file://")) {
- // 如果不是file://开头的,就说明是相对路径。
- uri = UTSAndroid.convert2AbsFullPath(uri)
- } else {
- uri = uri.substring("file://".length)
+ } else {
+ if (uri.startsWith("file://")) {
+ uri = uri.substring("file://".length)
+ } else if(uri.startsWith("unifile://")){
+ uri = UTSAndroid.convert2AbsFullPath(uri)
+ }else {
+ // 如果不是file://开头的,就说明是相对路径。
+ uri = UTSAndroid.convert2AbsFullPath(uri)
+ if(uri.startsWith("/android_asset/")){
+ const filePath = uri.replace("/android_asset/", "")
+ const context = UTSAndroid.getAppContext();
+ const apkFile = this.copyAssetFileToPrivateDir(context!!, filePath)
+ if(apkFile != null){
+ uri = apkFile.getPath()
+ }
+ }
}
-
+
+
let file = new File(uri);
let fileInputStream = new FileInputStream(file);
let size = file.length();
@@ -283,6 +298,43 @@ class UploadController {
return result;
}
+
+
+ private copyAssetFileToPrivateDir(context: Context, fileName: string): File| null {
+ try {
+ const destPath = context.getCacheDir().getPath() + "/uploadFiles/" + fileName
+ const outFile = new File(destPath)
+ const parentFile = outFile.getParentFile()
+ if (parentFile != null) {
+ if (!parentFile.exists()) {
+ parentFile.mkdirs()
+ }
+ }
+ if(!outFile.exists()){
+ outFile.createNewFile()
+ }
+ const inputStream = context.getAssets().open(fileName)
+ const outputStream = new FileOutputStream(outFile)
+ let buffer = new ByteArray(1024);
+ do {
+ let len = inputStream.read(buffer);
+ if (len == -1) {
+ break;
+ }
+ outputStream.write(buffer, 0, len)
+ } while (true)
+
+ inputStream.close()
+ outputStream.close()
+
+ return outFile
+ } catch (e: Exception) {
+ e.printStackTrace()
+ }
+
+ return null
+ }
+
private checkPrivatePath(path : string) : boolean {
if (Build.VERSION.SDK_INT > 29 && Environment.isExternalStorageManager()) {
@@ -361,8 +413,9 @@ class SimpleUploadCallback implements Callback {
let option = {};
option['statusCode'] = '-1';
option['errorCode'] = '-1';
- option['errorMsg'] = exception.message;
- option['cause'] = exception.message;
+ option['errorMsg'] = exception.message;
+ let cause = exception.cause.toString();
+ option['cause'] = new SourceError(cause);
this.listener?.onComplete(option);
}
override onResponse(call : Call, response : Response) {
diff --git a/uni_modules/uni-network/utssdk/app-ios/index.uts b/uni_modules/uni-network/utssdk/app-ios/index.uts
index e3eeb48d02ec3bada413fbb3aa16cfc18ce30ff3..7edb38f11bec0b786ef8bc136b3511bbf29c4d8a 100644
--- a/uni_modules/uni-network/utssdk/app-ios/index.uts
+++ b/uni_modules/uni-network/utssdk/app-ios/index.uts
@@ -1,15 +1,15 @@
import { Request, RequestOptions, RequestSuccess, RequestFail, RequestTask } from './interface';
import { NetworkManager, NetworkRequestListener } from './network/NetworkManager.uts'
-import { Data, HTTPURLResponse, NSError, NSNumber , ComparisonResult } from 'Foundation';
-import { StatusCode } from './network/StatusCode.uts';
+import { Data, HTTPURLResponse, NSError, NSNumber , ComparisonResult , RunLoop , Thread } from 'Foundation';
+import { StatusCode } from './network/StatusCode.uts';
class SimpleNetworkListener extends NetworkRequestListener {
private param : RequestOptions | null = null;
private headers : Map | null = null;
private received : number = 0;
- private data : Data = new Data();
+ private data : Data = new Data();
constructor(param : RequestOptions) {
- this.param = param;
+ this.param = param;
super();
}
@@ -20,7 +20,7 @@ class SimpleNetworkListener extends NetworkRequestListener {
this.headers = headers;
}
public override onDataReceived(data : Data) : void {
- this.received += data.count;
+ this.received += Number.from(data.count);
this.data.append(data);
}
@@ -56,13 +56,12 @@ class SimpleNetworkListener extends NetworkRequestListener {
data: result['data']!,
statusCode: (new NSNumber(value = response.statusCode)),
header: result['header'] ?? "",
- cookies: []
+ cookies: this.parseCookie(this.headers)
};
let success = kParam?.success;
let complete = kParam?.complete;
success?.(tmp);
- complete?.(tmp);
-
+ complete?.(tmp);
} catch (e) {
}
}
@@ -166,10 +165,38 @@ class SimpleNetworkListener extends NetworkRequestListener {
private parseJson(str : string) : any | null{
return JSON.parse(str);
+ }
+
+ private parseCookie(header : Map | null) : string[] {
+ if (header == null) {
+ return []
+ }
+ let cookiesStr = header!.get('Set-Cookie') as string | null
+ if (cookiesStr == null) {
+ cookiesStr = header!.get('set-cookie') as string | null
+ }
+ if (cookiesStr == null) {
+ return []
+ }
+ let cookiesArr = new Array()
+ if (cookiesStr!.charAt(0) == "[" && cookiesStr!.charAt(cookiesStr!.length - 1) == "]") {
+ cookiesStr = cookiesStr!.slice(1, -1)
+ }
+
+ const handleCookiesArr = cookiesStr!.split(';')
+ for (let i = 0; i < handleCookiesArr.length; i++) {
+ if (handleCookiesArr[i].indexOf('Expires=') != -1 || handleCookiesArr[i].indexOf('expires=') != -1) {
+ cookiesArr.push(handleCookiesArr[i].replace(',', ''))
+ } else {
+ cookiesArr.push(handleCookiesArr[i])
+ }
+ }
+ cookiesArr = cookiesArr.join(';').split(',')
+
+ return cookiesArr
}
}
-
-export const request : Request = (param : RequestOptions) : RequestTask | null => {
+export const request : Request = (param : RequestOptions) : RequestTask => {
return NetworkManager.getInstance().request(param, new SimpleNetworkListener(param));
}
\ No newline at end of file
diff --git a/uni_modules/uni-network/utssdk/app-ios/interface.uts b/uni_modules/uni-network/utssdk/app-ios/interface.uts
index 334a16790ae5d752dec4ce9d5b8581638bef6808..ebb457c1cbf8cac234df352b0965336348e8e9a7 100644
--- a/uni_modules/uni-network/utssdk/app-ios/interface.uts
+++ b/uni_modules/uni-network/utssdk/app-ios/interface.uts
@@ -1,5 +1,5 @@
-export type Request = (param: RequestOptions) => RequestTask | null;
+export type Request = (param: RequestOptions) => RequestTask;
/**
* 网络请求参数
@@ -157,7 +157,7 @@ export interface RequestTask {
//===============================上传==================================
-export type UploadFile = (options: UploadFileOptions) => UploadTask | null;
+export type UploadFile = (options: UploadFileOptions) => UploadTask;
export type UploadFileOptionFiles = {
/**
* multipart 提交时,表单的项目名,默认为 file,如果 name 不填或填的值相同,可能导致服务端读取文件时只能读取到一个文件。
@@ -327,7 +327,7 @@ export interface UploadTask {
//===============================下载==================================
-export type DownloadFile = (options: DownloadFileOptions) => DownloadTask | null;
+export type DownloadFile = (options: DownloadFileOptions) => DownloadTask;
export type DownloadFileSuccess = {
/**
* 临时文件路径,下载后的文件会存储到一个临时文件
@@ -456,7 +456,7 @@ export interface Uni {
* @description
* 发起网络请求。
* @param {RequestOptions} options
- * @return {RequestTask | null}
+ * @return {RequestTask}
* @tutorial https://uniapp.dcloud.net.cn/api/request/request.html
* @uniPlatform {
* "app": {
@@ -507,7 +507,7 @@ export interface Uni {
* @description
* 将本地资源上传到开发者服务器。
* @param {UploadFileOptions} options
- * @return {UploadTask | null}
+ * @return {UploadTask}
* @tutorial https://uniapp.dcloud.net.cn/api/request/network-file.html#uploadfile
* @uniPlatform {
* "app": {
@@ -544,7 +544,7 @@ export interface Uni {
* @description
* 下载文件资源到本地,客户端直接发起一个 HTTP GET 请求,返回文件的本地临时路径。
* @param {DownloadFileOptions} options
- * @return {DownloadTask | null}
+ * @return {DownloadTask}
* @tutorial https://uniapp.dcloud.net.cn/api/request/network-file.html#downloadfile
* @uniPlatform {
* "app": {
diff --git a/uni_modules/uni-network/utssdk/app-ios/network/NetworkManager.uts b/uni_modules/uni-network/utssdk/app-ios/network/NetworkManager.uts
index b8ced5bbb5d72fe14ec116581c382a5ea3185d0f..f0f70dc810766de45ba9f0127885338aa7fc8cfe 100644
--- a/uni_modules/uni-network/utssdk/app-ios/network/NetworkManager.uts
+++ b/uni_modules/uni-network/utssdk/app-ios/network/NetworkManager.uts
@@ -1,6 +1,6 @@
import { RequestOptions, RequestTask } from '../interface.uts'
import { UTSiOS } from "DCloudUTSFoundation";
-import { URLSessionDataDelegate, URL, CharacterSet, URLSession, URLSessionConfiguration, OperationQueue, URLSessionTask, URLResponse, URLSessionDataTask, URLAuthenticationChallengeSender, URLAuthenticationChallenge, URLCredential, URLSessionTaskMetrics, Data, HTTPURLResponse, NSError, URLRequest, ComparisonResult } from 'Foundation';
+import { URLSessionDataDelegate, URL, CharacterSet, URLSession, URLSessionConfiguration, OperationQueue, URLSessionTask, URLResponse, URLSessionDataTask, URLAuthenticationChallengeSender, URLAuthenticationChallenge, URLCredential, URLSessionTaskMetrics, Data, HTTPURLResponse, NSError, URLRequest, ComparisonResult } from 'Foundation';
class NetworkRequestListener {
public onStart() : void { }
@@ -41,18 +41,18 @@ class NetworkManager implements URLSessionDataDelegate {
}
- public request(param : RequestOptions, listener : NetworkRequestListener) : RequestTask | null {
+ public request(param : RequestOptions, listener : NetworkRequestListener) : RequestTask {
let request = this.createRequest(param);
if (request == null) {
let error = new NSError(domain = "invalid URL", code = 600009);
listener.onFail(error);
- return null;
+ return new NetworkRequestTaskImpl(null);
}
if (this.session == null) {
let urlSessionConfig = URLSessionConfiguration.default;
- this.session = new URLSession(configuration = urlSessionConfig, delegate = this, delegateQueue = OperationQueue.main);
+ this.session = new URLSession(configuration = urlSessionConfig, delegate = this, delegateQueue = OperationQueue.current);
}
let task = this.session?.dataTask(with = request!);
task?.resume();
@@ -73,7 +73,6 @@ class NetworkManager implements URLSessionDataDelegate {
let timeout = param.timeout == null ? 60000 : param.timeout;
let timeoutInterval = new Double(timeout!) / 1000;
-
let request = new URLRequest(url = url!, cachePolicy = URLRequest.CachePolicy.useProtocolCachePolicy, timeoutInterval = timeoutInterval);
request.httpShouldHandleCookies = true;
let method = param.method;
@@ -97,9 +96,9 @@ class NetworkManager implements URLSessionDataDelegate {
let key = entry.key;
if (key.caseInsensitiveCompare("Content-Type") == ComparisonResult.orderedSame) {
hasContentType = true;
- }
- if (typeof(entry.value) == 'string') {
- request.setValue((entry.value) as string, forHTTPHeaderField = key);
+ }
+ if (typeof (entry.value) == 'string') {
+ request.setValue((entry.value) as string, forHTTPHeaderField = key);
}
}
}
@@ -109,25 +108,105 @@ class NetworkManager implements URLSessionDataDelegate {
request.setValue("application/json", forHTTPHeaderField = "Content-Type");
}
}
-
-
- if (param.data != null) {
- let body : Data | null = null;
- if (typeof(param.data) == 'string') {
- body = (param.data as string).data(using = String.Encoding.utf8);
- } else {
- body = JSON.stringify(param.data)?.data(using = String.Encoding.utf8);
+ if ("GET" == param.method) {
+ const data = param.data;
+ if (data != null) {
+ let json : UTSJSONObject | null = null;
+ if (typeof (data) == 'string') {
+ json = JSON.parseObject(data as string);
+ } else if (data instanceof UTSJSONObject) {
+ json = data as UTSJSONObject;
+ }
+ if (json != null) {
+ let urlStr = param.url;
+ let url = new URL(string = this.stringifyQuery(urlStr!, json!));
+ request.url = url;
+ }
+ }
+ } else if (param.data != null) {
+ let bodyData : Data | null = null;
+ if (typeof (param.data) == 'string') {
+ bodyData = (param.data as string).data(using = String.Encoding.utf8);
+ } else if (param.data instanceof UTSJSONObject) {
+ let body : string | null = "";
+ const contentType = request.value(forHTTPHeaderField = "Content-Type")
+ if (contentType != null) {
+ if (contentType!.indexOf("application/x-www-form-urlencoded") == 0) {
+ const data = param.data as UTSJSONObject;
+ const map : Map = data.toMap();
+ const bodyArray = new Array();
+ map.forEach((value, key) => {
+ bodyArray.push(key + "=" + `${value ?? "null"}`);
+ })
+ body = bodyArray.join("&");
+ } else {
+ body = JSON.stringify(param.data);
+ }
+ bodyData = body?.data(using = String.Encoding.utf8);
+ }
}
- if (body == null) {
+ if (bodyData == null) {
return null;
}
- request.httpBody = body;
+ request.httpBody = bodyData;
}
return request;
}
+ /**
+ * data拼接到url上
+ */
+ private stringifyQuery(url : string, data : UTSJSONObject) : string {
+ let newUrl = url;
+ //http:xxx/xxx?a=b&c=d#123
+ let str = url.split('#')
+ let hash = ''
+ if (str.length > 1) {
+ hash = str[1] //123
+ }
+ str = str[0].split('?')
+ let query = ''
+ if (str.length > 1) {
+ query = str[1] //a=b&c=d
+ }
+ newUrl = str[0] // http:xxx/xxx
+ const pairs = query.split('&')
+ const queryMap = new Map();
+ pairs.forEach((item: string, index: number) => {
+ const temp = item.split('=')
+ if (temp.length > 1) {
+ queryMap[temp[0]] = temp[1]
+ }
+ });
+ const dataMap : Map = data.toMap();
+ dataMap.forEach((value, key) => {
+ if(value == null){
+ value = "";
+ }
+ let encodeKey = encodeURIComponent(key)!
+ if (value instanceof UTSJSONObject || value instanceof Array){
+ queryMap[encodeKey] = encodeURIComponent(JSON.stringify(value)!)!
+ }else{
+ queryMap[encodeKey] = encodeURIComponent(`${value!}`)!;
+ }
+ })
+ let queryStr = "";
+ queryMap.forEach((value, key) => {
+ queryStr += key + "=" + value + "&"
+ });
+
+ queryStr = queryStr.slice(0, -1);
+ if (queryStr.length > 0) {
+ newUrl += "?" + queryStr;
+ }
+ if (hash.length > 0) {
+ newUrl += "#" + hash;
+ }
+ return newUrl;
+ }
+
//mark --- URLSessionDataDelegate
diff --git a/uni_modules/uni-network/utssdk/interface.uts b/uni_modules/uni-network/utssdk/interface.uts
index 8aa400b813e6a110083012e5496a5ce675834608..446cd92e5c8d91203bbeae045d04078d8fb64e6e 100644
--- a/uni_modules/uni-network/utssdk/interface.uts
+++ b/uni_modules/uni-network/utssdk/interface.uts
@@ -1,4 +1,4 @@
-export type Request = (param: RequestOptions) => RequestTask | null;
+export type Request = (param: RequestOptions) => RequestTask;
/**
* 网络请求参数
@@ -34,42 +34,42 @@ export type RequestOptions = {
/**
* 如果设为 json,会对返回的数据进行一次 JSON.parse,非 json 不会进行 JSON.parse
* @defaultValue "json"
- * @deprecated 不支持
+ * @deprecated 不支持
* @autodoc false
*/
dataType?: string | null,
/**
* 设置响应的数据类型。
*
- * @deprecated 不支持
+ * @deprecated 不支持
* @autodoc false
*/
responseType?: string | null,
/**
* 验证 ssl 证书
*
- * @deprecated 不支持
+ * @deprecated 不支持
* @autodoc false
*/
sslVerify?: boolean | null,
/**
* 跨域请求时是否携带凭证(cookies)
*
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "4.4",
- * "uniVer": "√",
- * "unixVer": "x"
- * },
- * "ios": {
- * "osVer": "9.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * }
- * }
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "4.4",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * }
* }
- *
*/
withCredentials?: boolean | null,
/**
@@ -132,13 +132,11 @@ export type RequestMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "HEAD"
* - 1000 服务端系统错误
* - 100001 json数据解析错误
* - 100002 错误信息json解析失败
- * - 600000 未知的网络错误
* - 600003 网络中断
* - 600009 URL格式不合法
- * - 600010 请求的 data 序列化失败
* - 602001 request系统错误
*/
-export type RequestErrorCode = 5 | 1000 | 100001 | 100002 | 600000 | 600003 | 600009 | 600010 | 602001;
+export type RequestErrorCode = 5 | 1000 | 100001 | 100002 | 600003 | 600009 | 602001;
/**
* 网络请求失败的错误回调参数
*/
@@ -158,20 +156,25 @@ export interface RequestTask {
* @param {void}
* @return {void}
* @tutorial https://uniapp.dcloud.net.cn/api/request/request.html#request
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "4.4",
- * "uniVer": "√",
- * "unixVer": "3.9+"
- * },
- * "ios": {
- * "osVer": "9.0",
- * "uniVer": "√",
- * "unixVer": "3.9+"
- * }
- * }
- * }
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "4.4",
+ * "uniVer": "√",
+ * "unixVer": "3.9+"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * },
+ * "web": {
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * }
+ * }
* @example
```typescript
var requestTask = uni.request({
@@ -187,35 +190,36 @@ export interface RequestTask {
//===============================上传==================================
-export type UploadFile = (options: UploadFileOptions) => UploadTask | null;
+export type UploadFile = (options: UploadFileOptions) => UploadTask;
export type UploadFileOptionFiles = {
/**
* multipart 提交时,表单的项目名,默认为 file,如果 name 不填或填的值相同,可能导致服务端读取文件时只能读取到一个文件。
* @defaultValue "file"
*/
- name: string | null,
+ name?: string | null,
/**
* 要上传文件资源的路径
*/
uri: string,
/**
* 要上传的文件对象
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "4.4",
- * "uniVer": "√",
- * "unixVer": "x"
- * },
- * "ios": {
- * "osVer": "9.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * }
- * }
- * }
- */
- file: any | null
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "4.4",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * }
+ * }
+ */
+ file?: any | null
};
export type UploadFileSuccess = {
/**
@@ -312,20 +316,25 @@ export interface UploadTask {
* @param {void}
* @return {void}
* @tutorial https://uniapp.dcloud.net.cn/api/request/network-file.html#uploadfile
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "4.4",
- * "uniVer": "√",
- * "unixVer": "3.9+"
- * },
- * "ios": {
- * "osVer": "9.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * }
- * }
- * }
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "4.4",
+ * "uniVer": "√",
+ * "unixVer": "3.9+"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * },
+ * "web": {
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * }
+ * }
* @example
```typescript
var uploadTask = uni.uploadFile({
@@ -343,20 +352,21 @@ export interface UploadTask {
* @param {UploadFileProgressUpdateCallback} callback
* @return {void}
* @tutorial https://uniapp.dcloud.net.cn/api/request/network-file.html#uploadfile
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "4.4",
- * "uniVer": "√",
- * "unixVer": "3.9+"
- * },
- * "ios": {
- * "osVer": "9.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * }
- * }
- * }
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "4.4",
+ * "uniVer": "√",
+ * "unixVer": "3.9+"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * }
+ * }
* @example
```typescript
uploadTask.onProgressUpdate((res) => {
@@ -371,7 +381,7 @@ export interface UploadTask {
//===============================下载==================================
-export type DownloadFile = (options: DownloadFileOptions) => DownloadTask | null;
+export type DownloadFile = (options: DownloadFileOptions) => DownloadTask;
export type DownloadFileSuccess = {
/**
* 临时文件路径,下载后的文件会存储到一个临时文件
@@ -401,15 +411,15 @@ export type DownloadFileOptions = {
* HTTP 请求 Header,header 中不能设置 Referer
* @defaultValue null
*/
- header?: UTSJSONObject | null,
- /**
- * 指定文件下载路径
- * 支持相对路径与绝对路径,例:
- * `/imgs/pic.png`、`/storage/emulated/0/Android/data/io.dcloud.HBuilder/apps/HBuilder/temp/imgs/pic.png`
- * 并且支持指定下载目录,例:
- * `/imgs/`
- * @defaultValue null
- */
+ header?: UTSJSONObject | null,
+ /**
+ * 指定文件下载路径
+ * 支持相对路径与绝对路径,例:
+ * `/imgs/pic.png`、`/storage/emulated/0/Android/data/io.dcloud.HBuilder/apps/HBuilder/temp/imgs/pic.png`
+ * 并且支持指定下载目录,例:
+ * `/imgs/`
+ * @defaultValue null
+ */
filePath?: string | null,
/**
* 超时时间,单位 ms
@@ -455,20 +465,25 @@ export interface DownloadTask {
* @param {void}
* @return {void}
* @tutorial https://uniapp.dcloud.net.cn/api/request/network-file.html#downloadfile
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "4.4",
- * "uniVer": "√",
- * "unixVer": "3.9+"
- * },
- * "ios": {
- * "osVer": "9.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * }
- * }
- * }
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "4.4",
+ * "uniVer": "√",
+ * "unixVer": "3.9+"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * },
+ * "web": {
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * }
+ * }
* @example
```typescript
var downloadTask = uni.downloadFile({
@@ -486,20 +501,21 @@ export interface DownloadTask {
* @param {DownloadFileProgressUpdateCallback} callback
* @return {void}
* @tutorial https://uniapp.dcloud.net.cn/api/request/network-file.html#downloadfile
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "4.4",
- * "uniVer": "√",
- * "unixVer": "3.9+"
- * },
- * "ios": {
- * "osVer": "9.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * }
- * }
- * }
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "4.4",
+ * "uniVer": "√",
+ * "unixVer": "3.9+"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * }
+ * }
* @example
```typescript
downloadTask.onProgressUpdate((res) => {
@@ -519,22 +535,27 @@ export interface Uni {
* @description
* 发起网络请求。
* @param {RequestOptions} options
- * @return {RequestTask | null}
+ * @return {RequestTask}
* @tutorial https://uniapp.dcloud.net.cn/api/request/request.html
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "4.4",
- * "uniVer": "√",
- * "unixVer": "3.9+"
- * },
- * "ios": {
- * "osVer": "9.0",
- * "uniVer": "√",
- * "unixVer": "3.9+"
- * }
- * }
- * }
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "4.4",
+ * "uniVer": "√",
+ * "unixVer": "3.9+"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * },
+ * "web": {
+ * "uniVer": "√",
+ * "unixVer": "4.0"
+ * }
+ * }
* @example
```typescript
uni.request({
@@ -564,28 +585,33 @@ export interface Uni {
});
```
*/
- request(param: RequestOptions): RequestTask | null;
+ request(param: RequestOptions): RequestTask;
/**
* UploadFile()
* @description
* 将本地资源上传到开发者服务器。
* @param {UploadFileOptions} options
- * @return {UploadTask | null}
+ * @return {UploadTask}
* @tutorial https://uniapp.dcloud.net.cn/api/request/network-file.html#uploadfile
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "4.4",
- * "uniVer": "√",
- * "unixVer": "3.9+"
- * },
- * "ios": {
- * "osVer": "9.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * }
- * }
- * }
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "4.4",
+ * "uniVer": "√",
+ * "unixVer": "3.9+"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * },
+ * "web": {
+ * "uniVer": "√",
+ * "unixVer": "4.0"
+ * }
+ * }
* @example
```typescript
uni.uploadFile({
@@ -601,28 +627,33 @@ export interface Uni {
});
```
*/
- uploadFile(options: UploadFileOptions): UploadTask | null;
+ uploadFile(options: UploadFileOptions): UploadTask;
/**
* DownloadFile()
* @description
* 下载文件资源到本地,客户端直接发起一个 HTTP GET 请求,返回文件的本地临时路径。
* @param {DownloadFileOptions} options
- * @return {DownloadTask | null}
+ * @return {DownloadTask}
* @tutorial https://uniapp.dcloud.net.cn/api/request/network-file.html#downloadfile
- * @uniPlatform {
- * "app": {
- * "android": {
- * "osVer": "4.4",
- * "uniVer": "√",
- * "unixVer": "3.9+"
- * },
- * "ios": {
- * "osVer": "9.0",
- * "uniVer": "√",
- * "unixVer": "x"
- * }
- * }
- * }
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "4.4",
+ * "uniVer": "√",
+ * "unixVer": "3.9+"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * },
+ * "web": {
+ * "uniVer": "√",
+ * "unixVer": "4.0"
+ * }
+ * }
* @example
```typescript
uni.downloadFile({
@@ -633,5 +664,5 @@ export interface Uni {
});
```
*/
- downloadFile(options: DownloadFileOptions): DownloadTask | null;
+ downloadFile(options: DownloadFileOptions): DownloadTask;
}
diff --git a/uni_modules/uni-network/utssdk/unierror.uts b/uni_modules/uni-network/utssdk/unierror.uts
index b1df42bc05295367d4ca377c2d0ce3ddbae58a55..9e4dc3b385e1a3845f8f43e3565ee2bcc9a448ec 100644
--- a/uni_modules/uni-network/utssdk/unierror.uts
+++ b/uni_modules/uni-network/utssdk/unierror.uts
@@ -26,10 +26,6 @@ export const UniErrors : Map = new Map([
* 错误信息json解析失败
*/
[100002, 'error message invalid json'],
- /**
- * 未知的网络错误
- */
- [600000, 'unknown network error'],
/**
* 网络中断
*/
@@ -38,11 +34,6 @@ export const UniErrors : Map = new Map([
* URL 格式不合法
*/
[600009, 'invalid URL'],
- /**
- * 请求的 data 序列化失败
- */
- [600010, 'invalid request data'],
-
/**
* request系统错误
*/
@@ -56,7 +47,10 @@ export function getErrcode(errCode : number) : RequestErrorCode {
}
-export class RequestFailImpl extends UniError implements RequestFail {
+export class RequestFailImpl extends UniError implements RequestFail {
+// #ifdef APP-ANDROID
+ override errCode: RequestErrorCode
+// #endif
constructor(errCode : RequestErrorCode) {
super();
this.errSubject = UniErrorSubject;
@@ -66,7 +60,10 @@ export class RequestFailImpl extends UniError implements RequestFail {
}
-export class UploadFileFailImpl extends UniError implements UploadFileFail {
+export class UploadFileFailImpl extends UniError implements UploadFileFail {
+// #ifdef APP-ANDROID
+ override errCode: RequestErrorCode
+// #endif
constructor(errCode : RequestErrorCode) {
super();
this.errSubject = "uni-uploadFile";
@@ -76,7 +73,10 @@ export class UploadFileFailImpl extends UniError implements UploadFileFail {
}
-export class DownloadFileFailImpl extends UniError implements DownloadFileFail {
+export class DownloadFileFailImpl extends UniError implements DownloadFileFail {
+// #ifdef APP-ANDROID
+ override errCode: RequestErrorCode
+// #endif
constructor(errCode : RequestErrorCode) {
super();
this.errSubject = "uni-downloadFile";
diff --git a/uni_modules/uni-openAppAuthorizeSetting/changelog.md b/uni_modules/uni-openAppAuthorizeSetting/changelog.md
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/uni_modules/uni-openAppAuthorizeSetting/package.json b/uni_modules/uni-openAppAuthorizeSetting/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..c688456430b1ae986ff3f4c7c22a548aba457998
--- /dev/null
+++ b/uni_modules/uni-openAppAuthorizeSetting/package.json
@@ -0,0 +1,93 @@
+{
+ "id": "uni-openAppAuthorizeSetting",
+ "displayName": "uni-openAppAuthorizeSetting",
+ "version": "1.0.0",
+ "description": "uni-openAppAuthorizeSetting",
+ "keywords": [
+ "uni-openAppAuthorizeSetting"
+],
+ "repository": "",
+ "engines": {
+ "HBuilderX": "^3.6.8"
+ },
+ "dcloudext": {
+ "type": "uts",
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "",
+ "data": "",
+ "permissions": ""
+ },
+ "npmurl": ""
+ },
+ "uni_modules": {
+ "dependencies": [],
+ "uni-ext-api": {
+ "uni": {
+ "openAppAuthorizeSetting": {
+ "name": "openAppAuthorizeSetting",
+ "app": {
+ "js": false,
+ "kotlin": true,
+ "swift": false
+ }
+ }
+ }
+ },
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "u",
+ "aliyun": "u"
+ },
+ "client": {
+ "Vue": {
+ "vue2": "u",
+ "vue3": "u"
+ },
+ "App": {
+ "app-android": "u",
+ "app-ios": "u"
+ },
+ "H5-mobile": {
+ "Safari": "u",
+ "Android Browser": "u",
+ "微信浏览器(Android)": "u",
+ "QQ浏览器(Android)": "u"
+ },
+ "H5-pc": {
+ "Chrome": "u",
+ "IE": "u",
+ "Edge": "u",
+ "Firefox": "u",
+ "Safari": "u"
+ },
+ "小程序": {
+ "微信": "u",
+ "阿里": "u",
+ "百度": "u",
+ "字节跳动": "u",
+ "QQ": "u",
+ "钉钉": "u",
+ "快手": "u",
+ "飞书": "u",
+ "京东": "u"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/uni_modules/uni-openAppAuthorizeSetting/readme.md b/uni_modules/uni-openAppAuthorizeSetting/readme.md
new file mode 100644
index 0000000000000000000000000000000000000000..9e5597cd1775adea3ba23f0e4e25b45366cb851c
--- /dev/null
+++ b/uni_modules/uni-openAppAuthorizeSetting/readme.md
@@ -0,0 +1,6 @@
+# uni-openAppAuthorizeSetting
+### 开发文档
+[UTS 语法](https://uniapp.dcloud.net.cn/tutorial/syntax-uts.html)
+[UTS API插件](https://uniapp.dcloud.net.cn/plugin/uts-plugin.html)
+[UTS 组件插件](https://uniapp.dcloud.net.cn/plugin/uts-component.html)
+[Hello UTS](https://gitcode.net/dcloud/hello-uts)
\ No newline at end of file
diff --git a/uni_modules/uni-openAppAuthorizeSetting/utssdk/app-android/index.uts b/uni_modules/uni-openAppAuthorizeSetting/utssdk/app-android/index.uts
new file mode 100644
index 0000000000000000000000000000000000000000..7c6499ef103392bbfaf21f36b0921fb7b93aff4b
--- /dev/null
+++ b/uni_modules/uni-openAppAuthorizeSetting/utssdk/app-android/index.uts
@@ -0,0 +1,31 @@
+import { OpenAppAuthorizeSettingOptions, OpenAppAuthorizeSetting, OpenAppAuthorizeSettingSuccess, OpenAppAuthorizeSettingFail, OpenAppAuthorizeSettingComplete } from "../interface.uts";
+import Intent from 'android.content.Intent';
+import Settings from 'android.provider.Settings';
+import Uri from 'android.net.Uri';
+
+export const openAppAuthorizeSetting: OpenAppAuthorizeSetting = function(options: OpenAppAuthorizeSettingOptions) {
+ try{
+ const context = UTSAndroid.getUniActivity()!!;
+ const intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
+ const uri = Uri.fromParts("package", context.getPackageName(), null);
+ intent.setData(uri);
+ context.startActivity(intent);
+ let result : OpenAppAuthorizeSettingSuccess = {
+ errMsg:""
+ }
+ const completeResult : OpenAppAuthorizeSettingComplete = {
+ errMsg:""
+ }
+ options?.success?.(result);
+ options?.complete?.(completeResult);
+ }catch(e){
+ let result : OpenAppAuthorizeSettingFail = {
+ errMsg: e.message ?? ""
+ };
+ const completeResult : OpenAppAuthorizeSettingComplete = {
+ errMsg: e.message ?? ""
+ }
+ options?.fail?.(result);
+ options?.complete?.(completeResult);
+ }
+};
diff --git a/uni_modules/uni-openAppAuthorizeSetting/utssdk/app-ios/index.uts b/uni_modules/uni-openAppAuthorizeSetting/utssdk/app-ios/index.uts
new file mode 100644
index 0000000000000000000000000000000000000000..d26dafeadbc453d51a1f130efacb1bf203e37c3c
--- /dev/null
+++ b/uni_modules/uni-openAppAuthorizeSetting/utssdk/app-ios/index.uts
@@ -0,0 +1,30 @@
+import { OpenAppAuthorizeSettingOptions, OpenAppAuthorizeSetting, OpenAppAuthorizeSettingSuccess, OpenAppAuthorizeSettingFail, OpenAppAuthorizeSettingComplete } from "../interface.uts";
+import { UTSiOS } from "DCloudUTSFoundation";
+import { UIApplication } from 'UIKit';
+
+export const openAppAuthorizeSetting: OpenAppAuthorizeSetting = function(settingOptions: OpenAppAuthorizeSettingOptions) {
+ const url = URL(string = UIApplication.openSettingsURLString)!
+ if (UIApplication.shared.canOpenURL(url)){
+ let op = new Map()
+ if (UTSiOS.available("iOS 10, *")) {
+ UIApplication.shared.open(url,options=op,completionHandler=(result: Boolean):void => {
+ if(result){
+ const success : OpenAppAuthorizeSettingSuccess = { errMsg:"" }
+ const complete : OpenAppAuthorizeSettingComplete = { errMsg:"" }
+ settingOptions.success?.(success);
+ settingOptions.complete?.(complete);
+ }else{
+ const fail : OpenAppAuthorizeSettingFail = { errMsg: "unknown error"};
+ const complete : OpenAppAuthorizeSettingComplete = { errMsg: "unknown error"}
+ settingOptions.fail?.(fail);
+ settingOptions.complete?.(complete);
+ }
+ })
+ }
+ }else{
+ const fail : OpenAppAuthorizeSettingFail = { errMsg: "unknown error" };
+ const complete : OpenAppAuthorizeSettingComplete = { errMsg: "unknown error" }
+ settingOptions.fail?.(fail);
+ settingOptions.complete?.(complete);
+ }
+}
\ No newline at end of file
diff --git a/uni_modules/uni-openAppAuthorizeSetting/utssdk/interface.uts b/uni_modules/uni-openAppAuthorizeSetting/utssdk/interface.uts
new file mode 100644
index 0000000000000000000000000000000000000000..f6ffbbe0d8a7eb6d787c4c9bba666188597e9b05
--- /dev/null
+++ b/uni_modules/uni-openAppAuthorizeSetting/utssdk/interface.uts
@@ -0,0 +1,71 @@
+export interface Uni {
+
+ /**
+ * openAppAuthorizeSetting()
+ * @description
+ * 跳转系统授权管理页
+ * @param {OpenAppAuthorizeSettingOptions} options
+ * @return {void}
+ * @tutorial http://uniapp.dcloud.io/api/system/openappauthorizesetting
+ * @uniPlatform
+ * {
+ * "app": {
+ * "android": {
+ * "osVer": "4.4",
+ * "uniVer": "√",
+ * "unixVer": "3.9+"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * }
+ * }
+ * @example
+ ```typescript
+ uni.openAppAuthorizeSetting({});
+ ```
+ */
+ openAppAuthorizeSetting(options: OpenAppAuthorizeSettingOptions): void;
+}
+
+export type OpenAppAuthorizeSetting = (options: OpenAppAuthorizeSettingOptions) => void;
+export type OpenAppAuthorizeSettingSuccess = {
+ /**
+ * 错误信息
+ */
+ errMsg: string
+};
+export type OpenAppAuthorizeSettingSuccessCallback = (result: OpenAppAuthorizeSettingSuccess) => void;
+export type OpenAppAuthorizeSettingFail = {
+ /**
+ * 错误信息
+ */
+ errMsg: string
+};
+export type OpenAppAuthorizeSettingFailCallback = (result: OpenAppAuthorizeSettingFail) => void;
+export type OpenAppAuthorizeSettingComplete = {
+ /**
+ * 错误信息
+ */
+ errMsg: string
+};
+export type OpenAppAuthorizeSettingCompleteCallback = (result: OpenAppAuthorizeSettingComplete) => void;
+export type OpenAppAuthorizeSettingOptions = {
+ /**
+ * 接口调用成功的回调函数
+ * @defaultValue null
+ */
+ success?: OpenAppAuthorizeSettingSuccessCallback | null,
+ /**
+ * 接口调用失败的回调函数
+ * @defaultValue null
+ */
+ fail?: OpenAppAuthorizeSettingFailCallback | null,
+ /**
+ * 接口调用结束的回调函数(调用成功、失败都会执行)
+ * @defaultValue null
+ */
+ complete?: OpenAppAuthorizeSettingCompleteCallback | null
+};
diff --git a/uni_modules/uni-prompt/package.json b/uni_modules/uni-prompt/package.json
index 15dae6d655d11f595123c6bd5522c694273ef96f..18b5837d6d10f0d6fd5ab3d2ddaae22be048755a 100644
--- a/uni_modules/uni-prompt/package.json
+++ b/uni_modules/uni-prompt/package.json
@@ -32,58 +32,60 @@
},
"uni_modules": {
"uni-ext-api": {
- "uni": {
- "showToast": {
- "name": "showToast",
- "app": {
- "js": false,
- "kotlin": true,
- "swift": true
- }
- },
- "hideToast": {
- "name": "hideToast",
- "app": {
- "js": false,
- "kotlin": true,
- "swift": true
- }
- },
- "showLoading": {
- "name": "showLoading",
- "app": {
- "js": false,
- "kotlin": true,
- "swift": true
- }
- },
- "hideLoading": {
- "name": "hideLoading",
- "app": {
- "js": false,
- "kotlin": true,
- "swift": true
- }
- },
- "showModal": {
- "name": "showModal",
- "app": {
- "js": false,
- "kotlin": true,
- "swift": true
- }
- },
- "showActionSheet": {
- "name": "showActionSheet",
- "app": {
- "js": false,
- "kotlin": true,
- "swift": true
- }
- }
+ "uni": {
+ "showToast": {
+ "name": "showToast",
+ "app": {
+ "js": false,
+ "kotlin": true,
+ "swift": true
+ }
+ },
+ "hideToast": {
+ "name": "hideToast",
+ "app": {
+ "js": false,
+ "kotlin": true,
+ "swift": true
+ }
+ },
+ "showLoading": {
+ "name": "showLoading",
+ "app": {
+ "js": false,
+ "kotlin": true,
+ "swift": true
+ }
+ },
+ "hideLoading": {
+ "name": "hideLoading",
+ "app": {
+ "js": false,
+ "kotlin": true,
+ "swift": true
+ }
+ },
+ "showModal": {
+ "name": "showModal",
+ "app": {
+ "js": false,
+ "kotlin": true,
+ "swift": true
+ }
+ },
+ "showActionSheet": {
+ "name": "showActionSheet",
+ "app": {
+ "js": false,
+ "kotlin": true,
+ "swift": true
+ }
+ }
}
},
- "dependencies": [],
+ "dependencies": [
+ "uni-framework"
+ ],
"encrypt": [],
"platforms": {
"cloud": {
@@ -130,5 +132,4 @@
}
}
}
-}
-
+}
\ No newline at end of file
diff --git a/uni_modules/uni-prompt/utssdk/app-android/WaitingView.uts b/uni_modules/uni-prompt/utssdk/app-android/WaitingView.uts
index 2378944ab7ace4d26632e0e2af286f8fb3b9c776..1ab8ed82c045c4d8615146762525b152dd148fad 100644
--- a/uni_modules/uni-prompt/utssdk/app-android/WaitingView.uts
+++ b/uni_modules/uni-prompt/utssdk/app-android/WaitingView.uts
@@ -1,4 +1,3 @@
-// import Context from 'android.content.Context';
import LayoutInflater from 'android.view.LayoutInflater';
import R from 'io.dcloud.uts.prompt.R';
import ViewGroup from 'android.view.ViewGroup';
@@ -20,7 +19,6 @@ import BitmapFactory from 'android.graphics.BitmapFactory';
import bool from 'android.R.bool';
import Bitmap from 'android.graphics.Bitmap';
import ImageView from 'android.widget.ImageView';
-import { UTSAndroid } from "io.dcloud.uts";
import FileInputStream from 'java.io.FileInputStream';
import File from 'java.io.File';
import ByteArrayOutputStream from 'java.io.ByteArrayOutputStream';
@@ -28,7 +26,8 @@ import InputStream from 'java.io.InputStream';
import array from 'android.R.array';
import Dialog from 'android.app.Dialog';
-export class WaitingView extends Dialog{
+
+export class WaitingView{
private context?: Activity
private style: JSONObject
@@ -58,18 +57,23 @@ export class WaitingView extends Dialog{
private loadingHeight = 0
private LoadingIcon: string = ""
private mBitmap: Bitmap | null = null;
+
+
+ private mpopWindow?: PopupWindow = null
+
+ private currentHandler: Handler
+
+ //{"back":"transmit","height":"112px","loading":{"display":"block","height":"55px","icon":"__uniapperror.png","jSONArray":false},"padding":"10px","size":"16px","width":"140px"}
constructor(context?: Activity, style: UTSJSONObject) {
- super(context!,R.style.loadingDialog);
-
this.context = context;
this.style = style.toJSONObject() as JSONObject
this.screenWidth = context?.getResources()?.getDisplayMetrics()!.widthPixels
this.ScreenHeight = context?.getResources()?.getDisplayMetrics()!.heightPixels
this.density = context?.getResources()?.getDisplayMetrics()!.density
- this.waitingView = LayoutInflater.from(context).inflate(R.layout.dcloud_loadingview, null, false) as ViewGroup
+ this.waitingView = LayoutInflater.from(context).inflate(R.layout.uni_prompt_loadingview, null, false) as ViewGroup
this.waitingRootView = this.waitingView.findViewById(R.id.dcloud_pd_root)
this.mProgressBar = this.waitingView.findViewById(R.id.dcloud_pb_loading)
this.textView = this.waitingView.findViewById(R.id.dcloud_tv_loading)
@@ -85,10 +89,10 @@ export class WaitingView extends Dialog{
llp.height = -2
this.waitingRootView.setLayoutParams(llp)
+ this.currentHandler = new Handler(Looper.getMainLooper())
this.initView()
this.makeBitmap()
- setContentView(waitingView)
}
handlerArguments() {
@@ -139,7 +143,7 @@ export class WaitingView extends Dialog{
this.waitingRootView.setPadding((10 * this.density).toInt(), (20 * this.density).toInt(), (10 * this.density).toInt(), (20 * this.density).toInt())
}
- let drawable = this.context?.getResources()!!.getDrawable(R.drawable.uts_dcloud_circle_white_progress)
+ let drawable = this.context?.getResources()!!.getDrawable(R.drawable.uni_prompt_circle_white_progress)
if (this.loadingHeight > 0) {
this.mProgressBar.setLayoutParams(new LinearLayout.LayoutParams((this.loadingHeight * this.density).toInt(), (this.loadingHeight * this.density).toInt()))
} else {
@@ -153,20 +157,6 @@ export class WaitingView extends Dialog{
}
- override onTouchEvent(ev: MotionEvent): Boolean{
- if(this.mask){
- /**
- * 明确说明了要遮罩 拦截
- */
- return super.onTouchEvent(ev)
- }
-
- let event=MotionEvent.obtain(ev.downTime, ev.eventTime, ev.action,
- ev.rawX, ev.rawY,
- ev.pressure, ev.size, ev.metaState, ev.xPrecision, ev.yPrecision, ev.deviceId, ev.edgeFlags)
-
- return passThrough(event)
- }
/**
* 决定是否要透传点击事件
*/
@@ -179,12 +169,27 @@ export class WaitingView extends Dialog{
showWaiting() {
- this.setCanceledOnTouchOutside(false)
- this.show()
+ if(this.context != null && !this.context!.isFinishing()){
+ let width = -2;
+ let height = -2
+ if (Build.VERSION.SDK_INT >= 23 && this.mask) {
+ this.mask = false
+ width = -1
+ height = -1
+ }
+ let mpop = new PopupWindow(this.waitingView, width.toInt(), height.toInt(), this.mask)
+ this.mpopWindow = mpop
+ mpop.showAtLocation((this.context?.findViewById(android.R.id.content))?.getChildAt(0), Gravity.CENTER, 0, 0)
+ mpop.setOutsideTouchable(true)
+ mpop.setOnDismissListener(new WaitingDismissListener())
+ mpop.setTouchInterceptor(new TouchInterceptorListener(this.mask))
+ }
}
close() {
- this.dismiss()
+ if (this.mpopWindow != null && (this.mpopWindow as PopupWindow).isShowing()) {
+ this.currentHandler.post(new MainThreadRunnable((this.mpopWindow as PopupWindow)))
+ }
if (this.mBitmap != null) {
this.mBitmap = null;
}
@@ -195,9 +200,9 @@ export class WaitingView extends Dialog{
// let mBitmap: Bitmap | null = null;
let imageBytes: ByteArray | null = null
if (this.LoadingIcon == "successIcon") {
- imageBytes = this.inputStreamToArray(this.context?.getResources()!!.getAssets().open("uniappsuccess_icon.png"))
+ imageBytes = this.inputStreamToArray(this.context?.getResources()!!.getAssets().open("uni-uts/uni-prompt/toast_success.png"))
} else if (this.LoadingIcon == "errorIcon") {
- imageBytes = this.inputStreamToArray(this.context?.getResources()!!.getAssets().open("uniapperror_icon.png"))
+ imageBytes = this.inputStreamToArray(this.context?.getResources()!!.getAssets().open("uni-uts/uni-prompt/toast_error.png"))
} else if (this.LoadingIcon.length > 0) {
let path: string = ""
if (this.LoadingIcon.startsWith("file://")) {
diff --git a/uni_modules/uni-prompt/utssdk/app-android/assets/uniapperror_icon.png b/uni_modules/uni-prompt/utssdk/app-android/assets/uni-uts/uni-prompt/toast_error.png
similarity index 100%
rename from uni_modules/uni-prompt/utssdk/app-android/assets/uniapperror_icon.png
rename to uni_modules/uni-prompt/utssdk/app-android/assets/uni-uts/uni-prompt/toast_error.png
diff --git a/uni_modules/uni-prompt/utssdk/app-android/assets/uniappsuccess_icon.png b/uni_modules/uni-prompt/utssdk/app-android/assets/uni-uts/uni-prompt/toast_success.png
similarity index 100%
rename from uni_modules/uni-prompt/utssdk/app-android/assets/uniappsuccess_icon.png
rename to uni_modules/uni-prompt/utssdk/app-android/assets/uni-uts/uni-prompt/toast_success.png
diff --git a/uni_modules/uni-prompt/utssdk/app-android/index.uts b/uni_modules/uni-prompt/utssdk/app-android/index.uts
index 819c790b20041c8b1d071ccd9dff296ca1481058..faa380c4b0fcbe654f3eac5a0e8fd0b0906d49b1 100644
--- a/uni_modules/uni-prompt/utssdk/app-android/index.uts
+++ b/uni_modules/uni-prompt/utssdk/app-android/index.uts
@@ -7,7 +7,6 @@ import * as ToastModule from "./showToast.uts"
import * as ModalModule from "./showModal.uts"
import * as ActionSheetModule from "./showActionSheet.uts"
-import UTSAndroid from 'io.dcloud.uts.UTSAndroid';
export const showToast : ShowToast = function (options : ShowToastOptions) {
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/anim/uts_as_slide_in_bottom.xml b/uni_modules/uni-prompt/utssdk/app-android/res/anim/uni_prompt_anim_slide_in_bottom.xml
similarity index 100%
rename from uni_modules/uni-prompt/utssdk/app-android/res/anim/uts_as_slide_in_bottom.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/anim/uni_prompt_anim_slide_in_bottom.xml
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/anim/uts_as_slide_out_top.xml b/uni_modules/uni-prompt/utssdk/app-android/res/anim/uni_prompt_anim_slide_out_top.xml
similarity index 100%
rename from uni_modules/uni-prompt/utssdk/app-android/res/anim/uts_as_slide_out_top.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/anim/uni_prompt_anim_slide_out_top.xml
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/dialog_button_select_total.xml b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/dialog_button_select_total.xml
deleted file mode 100644
index b3130c6fe04347756a576aa2672ddb6660ac4699..0000000000000000000000000000000000000000
--- a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/dialog_button_select_total.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/dialog_button_select_total_night.xml b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/dialog_button_select_total_night.xml
deleted file mode 100644
index 5aee277a142635ec402568d5ae972609cf53b630..0000000000000000000000000000000000000000
--- a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/dialog_button_select_total_night.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/actionsheet_bg_rounded.xml b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_actionsheet_bg_rounded.xml
similarity index 100%
rename from uni_modules/uni-prompt/utssdk/app-android/res/drawable/actionsheet_bg_rounded.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_actionsheet_bg_rounded.xml
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/actionsheet_bg_rounded_night.xml b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_actionsheet_bg_rounded_night.xml
similarity index 100%
rename from uni_modules/uni-prompt/utssdk/app-android/res/drawable/actionsheet_bg_rounded_night.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_actionsheet_bg_rounded_night.xml
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/actionsheet_button_select_total.xml b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_actionsheet_button_select_total.xml
similarity index 100%
rename from uni_modules/uni-prompt/utssdk/app-android/res/drawable/actionsheet_button_select_total.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_actionsheet_button_select_total.xml
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/actionsheet_button_select_total_night.xml b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_actionsheet_button_select_total_night.xml
similarity index 100%
rename from uni_modules/uni-prompt/utssdk/app-android/res/drawable/actionsheet_button_select_total_night.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_actionsheet_button_select_total_night.xml
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/actionsheet_button_select_total_night_top.xml b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_actionsheet_button_select_total_night_top.xml
similarity index 100%
rename from uni_modules/uni-prompt/utssdk/app-android/res/drawable/actionsheet_button_select_total_night_top.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_actionsheet_button_select_total_night_top.xml
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/actionsheet_button_select_total_top.xml b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_actionsheet_button_select_total_top.xml
similarity index 100%
rename from uni_modules/uni-prompt/utssdk/app-android/res/drawable/actionsheet_button_select_total_top.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_actionsheet_button_select_total_top.xml
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uts_dcloud_circle_white_progress.xml b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_circle_white_progress.xml
similarity index 100%
rename from uni_modules/uni-prompt/utssdk/app-android/res/drawable/uts_dcloud_circle_white_progress.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_circle_white_progress.xml
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/dialog_bg_rounded.xml b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_dialog_bg_rounded.xml
similarity index 100%
rename from uni_modules/uni-prompt/utssdk/app-android/res/drawable/dialog_bg_rounded.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_dialog_bg_rounded.xml
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/dialog_bg_rounded_night.xml b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_dialog_bg_rounded_night.xml
similarity index 100%
rename from uni_modules/uni-prompt/utssdk/app-android/res/drawable/dialog_bg_rounded_night.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_dialog_bg_rounded_night.xml
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/dialog_button_select_right_night.xml b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_dialog_button_select_left.xml
similarity index 57%
rename from uni_modules/uni-prompt/utssdk/app-android/res/drawable/dialog_button_select_right_night.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_dialog_button_select_left.xml
index fdea82037dce20627a44ce5c0f8c13d6e5dd359b..3c758159542af01bda4952061caa30c4ce76c482 100644
--- a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/dialog_button_select_right_night.xml
+++ b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_dialog_button_select_left.xml
@@ -1,6 +1,6 @@
-
-
-
+
+
+
\ No newline at end of file
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/dialog_button_select_left.xml b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_dialog_button_select_left_night.xml
similarity index 55%
rename from uni_modules/uni-prompt/utssdk/app-android/res/drawable/dialog_button_select_left.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_dialog_button_select_left_night.xml
index b9c13c9a7e47cfcd44a39903e33612d26d772582..1a4f116479a968da02890149a65db80554bb2db5 100644
--- a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/dialog_button_select_left.xml
+++ b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_dialog_button_select_left_night.xml
@@ -1,6 +1,6 @@
-
-
-
+
+
+
\ No newline at end of file
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/dialog_button_select_right.xml b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_dialog_button_select_right.xml
similarity index 57%
rename from uni_modules/uni-prompt/utssdk/app-android/res/drawable/dialog_button_select_right.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_dialog_button_select_right.xml
index 7a06814e78e5ba43b9622805933fdfee27324c33..079a828adcfd361677853bc9c3c219b17c3b6fce 100644
--- a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/dialog_button_select_right.xml
+++ b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_dialog_button_select_right.xml
@@ -1,6 +1,6 @@
-
-
-
+
+
+
\ No newline at end of file
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_dialog_button_select_right_night.xml b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_dialog_button_select_right_night.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8363745c6d786ef489e4c4931b8134fbc2fd84c9
--- /dev/null
+++ b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_dialog_button_select_right_night.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/dialog_button_select_left_night.xml b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_dialog_button_select_total.xml
similarity index 57%
rename from uni_modules/uni-prompt/utssdk/app-android/res/drawable/dialog_button_select_left_night.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_dialog_button_select_total.xml
index 8fec64c5946fad8a562a103cfc32407da9ec36ad..f17a8d0e3b4dd048f190ce4f5b05b5c9f3aeffd2 100644
--- a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/dialog_button_select_left_night.xml
+++ b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_dialog_button_select_total.xml
@@ -1,6 +1,6 @@
-
-
-
+
+
+
\ No newline at end of file
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_dialog_button_select_total_night.xml b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_dialog_button_select_total_night.xml
new file mode 100644
index 0000000000000000000000000000000000000000..058a8a9f62aec39dca9b3e7022fa029f32b3b39f
--- /dev/null
+++ b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_dialog_button_select_total_night.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/dcloud_loading_bg.xml b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_loading_bg.xml
similarity index 100%
rename from uni_modules/uni-prompt/utssdk/app-android/res/drawable/dcloud_loading_bg.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_loading_bg.xml
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/shape_btn_bg_normal_left.xml b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_shape_btn_bg_normal_left.xml
similarity index 100%
rename from uni_modules/uni-prompt/utssdk/app-android/res/drawable/shape_btn_bg_normal_left.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_shape_btn_bg_normal_left.xml
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/shape_btn_bg_normal_left_night.xml b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_shape_btn_bg_normal_left_night.xml
similarity index 100%
rename from uni_modules/uni-prompt/utssdk/app-android/res/drawable/shape_btn_bg_normal_left_night.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_shape_btn_bg_normal_left_night.xml
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/shape_btn_bg_normal_right.xml b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_shape_btn_bg_normal_right.xml
similarity index 100%
rename from uni_modules/uni-prompt/utssdk/app-android/res/drawable/shape_btn_bg_normal_right.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_shape_btn_bg_normal_right.xml
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/shape_btn_bg_normal_right_night.xml b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_shape_btn_bg_normal_right_night.xml
similarity index 100%
rename from uni_modules/uni-prompt/utssdk/app-android/res/drawable/shape_btn_bg_normal_right_night.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_shape_btn_bg_normal_right_night.xml
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/shape_btn_bg_normal_total.xml b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_shape_btn_bg_normal_total.xml
similarity index 100%
rename from uni_modules/uni-prompt/utssdk/app-android/res/drawable/shape_btn_bg_normal_total.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_shape_btn_bg_normal_total.xml
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/shape_btn_bg_normal_total_night.xml b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_shape_btn_bg_normal_total_night.xml
similarity index 100%
rename from uni_modules/uni-prompt/utssdk/app-android/res/drawable/shape_btn_bg_normal_total_night.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_shape_btn_bg_normal_total_night.xml
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/shape_btn_bg_select_left.xml b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_shape_btn_bg_select_left.xml
similarity index 100%
rename from uni_modules/uni-prompt/utssdk/app-android/res/drawable/shape_btn_bg_select_left.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_shape_btn_bg_select_left.xml
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/shape_btn_bg_select_left_night.xml b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_shape_btn_bg_select_left_night.xml
similarity index 100%
rename from uni_modules/uni-prompt/utssdk/app-android/res/drawable/shape_btn_bg_select_left_night.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_shape_btn_bg_select_left_night.xml
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/shape_btn_bg_select_right.xml b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_shape_btn_bg_select_right.xml
similarity index 100%
rename from uni_modules/uni-prompt/utssdk/app-android/res/drawable/shape_btn_bg_select_right.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_shape_btn_bg_select_right.xml
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/shape_btn_bg_select_right_night.xml b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_shape_btn_bg_select_right_night.xml
similarity index 100%
rename from uni_modules/uni-prompt/utssdk/app-android/res/drawable/shape_btn_bg_select_right_night.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_shape_btn_bg_select_right_night.xml
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/shape_btn_bg_select_total.xml b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_shape_btn_bg_select_total.xml
similarity index 100%
rename from uni_modules/uni-prompt/utssdk/app-android/res/drawable/shape_btn_bg_select_total.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_shape_btn_bg_select_total.xml
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/drawable/shape_btn_bg_select_total_night.xml b/uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_shape_btn_bg_select_total_night.xml
similarity index 100%
rename from uni_modules/uni-prompt/utssdk/app-android/res/drawable/shape_btn_bg_select_total_night.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/drawable/uni_prompt_shape_btn_bg_select_total_night.xml
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/layout/ac_recyclerview_layout.xml b/uni_modules/uni-prompt/utssdk/app-android/res/layout/uni_prompt_ac_recyclerview_layout.xml
similarity index 75%
rename from uni_modules/uni-prompt/utssdk/app-android/res/layout/ac_recyclerview_layout.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/layout/uni_prompt_ac_recyclerview_layout.xml
index edd670a89286e3fe554c9bbdb5566298547f5b51..58b96a6f2a3274bf7444d1042b6c70ba661a4f5f 100644
--- a/uni_modules/uni-prompt/utssdk/app-android/res/layout/ac_recyclerview_layout.xml
+++ b/uni_modules/uni-prompt/utssdk/app-android/res/layout/uni_prompt_ac_recyclerview_layout.xml
@@ -9,7 +9,7 @@
android:id="@+id/line_bottom"
android:layout_width="match_parent"
android:layout_height="0.5dp"
- android:background="@color/night_bg_hair_line"
+ android:background="@color/uni_prompt_night_bg_hair_line"
android:orientation="vertical" />
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/layout/ac_recyclerview_layout_night.xml b/uni_modules/uni-prompt/utssdk/app-android/res/layout/uni_prompt_ac_recyclerview_layout_night.xml
similarity index 73%
rename from uni_modules/uni-prompt/utssdk/app-android/res/layout/ac_recyclerview_layout_night.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/layout/uni_prompt_ac_recyclerview_layout_night.xml
index fe192318ba2df67f369ccca87fe63f0aac5b7d0b..4ffaddb329f50e25b5d48c4cd981db4369890ffd 100644
--- a/uni_modules/uni-prompt/utssdk/app-android/res/layout/ac_recyclerview_layout_night.xml
+++ b/uni_modules/uni-prompt/utssdk/app-android/res/layout/uni_prompt_ac_recyclerview_layout_night.xml
@@ -9,7 +9,7 @@
android:id="@+id/line_bottom"
android:layout_width="match_parent"
android:layout_height="0.5dp"
- android:background="@color/night_bg_hair_line_night"
+ android:background="@color/uni_prompt_night_bg_hair_line_night"
android:orientation="vertical" />
\ No newline at end of file
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/layout/ac_recyclerview_layout_top_night.xml b/uni_modules/uni-prompt/utssdk/app-android/res/layout/uni_prompt_ac_recyclerview_layout_top.xml
similarity index 78%
rename from uni_modules/uni-prompt/utssdk/app-android/res/layout/ac_recyclerview_layout_top_night.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/layout/uni_prompt_ac_recyclerview_layout_top.xml
index dd9d78da101fc8fff8e57e2e043ae6f9514f2320..47e9e85ba465929fb401914fbfeffcd4443e3c58 100644
--- a/uni_modules/uni-prompt/utssdk/app-android/res/layout/ac_recyclerview_layout_top_night.xml
+++ b/uni_modules/uni-prompt/utssdk/app-android/res/layout/uni_prompt_ac_recyclerview_layout_top.xml
@@ -9,17 +9,17 @@
android:id="@+id/line_bottom"
android:layout_width="match_parent"
android:layout_height="0dp"
- android:background="@color/night_bg_hair_line_night"
+ android:background="@color/uni_prompt_night_bg_hair_line"
android:orientation="vertical" />
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/layout/ac_recyclerview_layout_top.xml b/uni_modules/uni-prompt/utssdk/app-android/res/layout/uni_prompt_ac_recyclerview_layout_top_night.xml
similarity index 77%
rename from uni_modules/uni-prompt/utssdk/app-android/res/layout/ac_recyclerview_layout_top.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/layout/uni_prompt_ac_recyclerview_layout_top_night.xml
index dd275f61de0ac01130af5b262806cd797f9323b3..ddcb2253f5d38d89cd7464439e6b6cf7013223fe 100644
--- a/uni_modules/uni-prompt/utssdk/app-android/res/layout/ac_recyclerview_layout_top.xml
+++ b/uni_modules/uni-prompt/utssdk/app-android/res/layout/uni_prompt_ac_recyclerview_layout_top_night.xml
@@ -9,17 +9,17 @@
android:id="@+id/line_bottom"
android:layout_width="match_parent"
android:layout_height="0dp"
- android:background="@color/night_bg_hair_line"
+ android:background="@color/uni_prompt_night_bg_hair_line_night"
android:orientation="vertical" />
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/layout/dcloud_loadingview.xml b/uni_modules/uni-prompt/utssdk/app-android/res/layout/uni_prompt_loadingview.xml
similarity index 94%
rename from uni_modules/uni-prompt/utssdk/app-android/res/layout/dcloud_loadingview.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/layout/uni_prompt_loadingview.xml
index e54f6e5960831f4e04ca75d91b43535cf6dee908..49ab322171da736d44f9b7fdb2cdda41015df6b6 100644
--- a/uni_modules/uni-prompt/utssdk/app-android/res/layout/dcloud_loadingview.xml
+++ b/uni_modules/uni-prompt/utssdk/app-android/res/layout/uni_prompt_loadingview.xml
@@ -7,7 +7,7 @@
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/layout/modal_dialog_night.xml b/uni_modules/uni-prompt/utssdk/app-android/res/layout/uni_prompt_modal_dialog.xml
similarity index 74%
rename from uni_modules/uni-prompt/utssdk/app-android/res/layout/modal_dialog_night.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/layout/uni_prompt_modal_dialog.xml
index 5505c45fbe2b06ec8b1f0ca22f968e88e2012727..ffd232affcf77754167512e9c814a7430a12f703 100644
--- a/uni_modules/uni-prompt/utssdk/app-android/res/layout/modal_dialog_night.xml
+++ b/uni_modules/uni-prompt/utssdk/app-android/res/layout/uni_prompt_modal_dialog.xml
@@ -3,7 +3,7 @@
android:layout_width="300dp"
android:layout_height="wrap_content"
android:paddingTop="30dp"
- android:background="@drawable/dialog_bg_rounded_night"
+ android:background="@drawable/uni_prompt_dialog_bg_rounded"
android:orientation="vertical">
@@ -16,7 +16,7 @@
android:id="@+id/tv_title"
android:textSize="16sp"
android:textStyle="bold"
- android:textColor="@color/dialog_title_text_night"
+ android:textColor="@color/uni_prompt_dialog_title_text"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:layout_marginBottom="20dp"
@@ -34,7 +34,7 @@
android:layout_marginBottom="30dp"
android:layout_height="wrap_content"
android:layout_width="match_parent"
- android:textColor="@color/dialog_sub_text_night"
+ android:textColor="@color/uni_prompt_dialog_sub_text"
android:gravity="center"
android:textSize="16sp"
/>
@@ -50,21 +50,21 @@
android:maxLines="2"
android:padding="6dp"
android:visibility="gone"
- android:background="@color/dialog_edit_text_bg_night"
+ android:background="@color/uni_prompt_dialog_edit_text_bg"
android:layout_width="match_parent"
- android:textColor="@color/dialog_edit_text_color_night"
- android:textColorHint="@color/dialog_edit_text_hint_night"
+ android:textColor="@color/uni_prompt_dialog_edit_text_color"
+ android:textColorHint="@color/uni_prompt_dialog_edit_text_hint"
android:gravity="left|center_vertical"
android:textSize="16sp"
/>
-
+
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/layout/modal_dialog.xml b/uni_modules/uni-prompt/utssdk/app-android/res/layout/uni_prompt_modal_dialog_night.xml
similarity index 73%
rename from uni_modules/uni-prompt/utssdk/app-android/res/layout/modal_dialog.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/layout/uni_prompt_modal_dialog_night.xml
index 57ad33d537e7dcc846c80dc99560bdbc137da6bb..28a7486707eda7cd8cd3b564a03f4ed90be57346 100644
--- a/uni_modules/uni-prompt/utssdk/app-android/res/layout/modal_dialog.xml
+++ b/uni_modules/uni-prompt/utssdk/app-android/res/layout/uni_prompt_modal_dialog_night.xml
@@ -3,7 +3,7 @@
android:layout_width="300dp"
android:layout_height="wrap_content"
android:paddingTop="30dp"
- android:background="@drawable/dialog_bg_rounded"
+ android:background="@drawable/uni_prompt_dialog_bg_rounded_night"
android:orientation="vertical">
@@ -16,7 +16,7 @@
android:id="@+id/tv_title"
android:textSize="16sp"
android:textStyle="bold"
- android:textColor="@color/dialog_title_text"
+ android:textColor="@color/uni_prompt_dialog_title_text_night"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:layout_marginBottom="20dp"
@@ -34,7 +34,7 @@
android:layout_marginBottom="30dp"
android:layout_height="wrap_content"
android:layout_width="match_parent"
- android:textColor="@color/dialog_sub_text"
+ android:textColor="@color/uni_prompt_dialog_sub_text_night"
android:gravity="center"
android:textSize="16sp"
/>
@@ -50,21 +50,21 @@
android:maxLines="2"
android:padding="6dp"
android:visibility="gone"
- android:background="@color/dialog_edit_text_bg"
+ android:background="@color/uni_prompt_dialog_edit_text_bg_night"
android:layout_width="match_parent"
- android:textColor="@color/dialog_edit_text_color"
- android:textColorHint="@color/dialog_edit_text_hint"
+ android:textColor="@color/uni_prompt_dialog_edit_text_color_night"
+ android:textColorHint="@color/uni_prompt_dialog_edit_text_hint_night"
android:gravity="left|center_vertical"
android:textSize="16sp"
/>
-
+
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/layout/uts_action_sheet.xml b/uni_modules/uni-prompt/utssdk/app-android/res/layout/uni_prompt_uts_action_sheet.xml
similarity index 82%
rename from uni_modules/uni-prompt/utssdk/app-android/res/layout/uts_action_sheet.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/layout/uni_prompt_uts_action_sheet.xml
index 4f3e1fef307aa38499f0a7c2fc87264a0fa842aa..440d89286b43c6cca8a3592b3406df199463dabd 100644
--- a/uni_modules/uni-prompt/utssdk/app-android/res/layout/uts_action_sheet.xml
+++ b/uni_modules/uni-prompt/utssdk/app-android/res/layout/uni_prompt_uts_action_sheet.xml
@@ -9,7 +9,7 @@
android:id="@+id/line_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:background="@drawable/actionsheet_bg_rounded"
+ android:background="@drawable/uni_prompt_actionsheet_bg_rounded"
android:orientation="vertical"
android:visibility="gone">
@@ -21,7 +21,7 @@
android:gravity="center"
android:ellipsize="middle"
android:singleLine="true"
- android:textColor="@color/dialog_sub_text"
+ android:textColor="@color/uni_prompt_dialog_sub_text"
android:textSize="14dp" />
@@ -41,7 +41,7 @@
android:id="@+id/line_cancel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:background="@color/light_bg_main"
+ android:background="@color/uni_prompt_light_bg_main"
android:orientation="vertical">
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/layout/uts_action_sheet_night.xml b/uni_modules/uni-prompt/utssdk/app-android/res/layout/uni_prompt_uts_action_sheet_night.xml
similarity index 79%
rename from uni_modules/uni-prompt/utssdk/app-android/res/layout/uts_action_sheet_night.xml
rename to uni_modules/uni-prompt/utssdk/app-android/res/layout/uni_prompt_uts_action_sheet_night.xml
index e3545f9be96b4b250362adfdf4c5ab9c0d8efb7a..3b00b7d205d4b3d0abf7f94944c251cfe0cd0255 100644
--- a/uni_modules/uni-prompt/utssdk/app-android/res/layout/uts_action_sheet_night.xml
+++ b/uni_modules/uni-prompt/utssdk/app-android/res/layout/uni_prompt_uts_action_sheet_night.xml
@@ -10,7 +10,7 @@
android:id="@+id/line_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:background="@drawable/actionsheet_bg_rounded_night"
+ android:background="@drawable/uni_prompt_actionsheet_bg_rounded_night"
android:orientation="vertical"
android:visibility="gone">
@@ -22,7 +22,7 @@
android:gravity="center"
android:ellipsize="middle"
android:singleLine="true"
- android:textColor="@color/dialog_sub_text_night"
+ android:textColor="@color/uni_prompt_dialog_sub_text_night"
android:textSize="14dp" />
@@ -43,7 +43,7 @@
android:id="@+id/line_cancel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:background="@color/night_bg_main"
+ android:background="@color/uni_prompt_night_bg_main"
android:orientation="vertical">
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/values-zh/strings.xml b/uni_modules/uni-prompt/utssdk/app-android/res/values-zh/strings.xml
index 33774bb3d8ea1c8ff98bb30e5f7384410727b714..7053d33d0f495c74f5eed557312502b677ec9f18 100644
--- a/uni_modules/uni-prompt/utssdk/app-android/res/values-zh/strings.xml
+++ b/uni_modules/uni-prompt/utssdk/app-android/res/values-zh/strings.xml
@@ -1,6 +1,6 @@
- Configuration
- 取消
- 确定
- 取消
+ Configuration
+ 取消
+ 确定
+ 取消
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/values/colors.xml b/uni_modules/uni-prompt/utssdk/app-android/res/values/colors.xml
index cc485743802f56356e941b313c420b6ba744050b..0004e1c7a299d021270361a7915765371e211f48 100644
--- a/uni_modules/uni-prompt/utssdk/app-android/res/values/colors.xml
+++ b/uni_modules/uni-prompt/utssdk/app-android/res/values/colors.xml
@@ -1,46 +1,46 @@
- #FFFFFF
- #efefef
+ #FFFFFF
+ #efefef
- #DEDEDE
- #FFFFFF
+ #DEDEDE
+ #FFFFFF
- #1C1C1C
- #272727
+ #1C1C1C
+ #272727
- #000000
- #CFCFCF
+ #000000
+ #CFCFCF
- #747474
- #909090
+ #747474
+ #909090
- #F6F6F6
- #3d3d3d
+ #F6F6F6
+ #3d3d3d
- #000000
- #CFCFCF
+ #000000
+ #CFCFCF
- #808080
- #CFCFCF
+ #808080
+ #CFCFCF
- #E0E0E0
- #303030
+ #E0E0E0
+ #303030
- #E3E3E3
- #303030
+ #E3E3E3
+ #303030
- #4A5E86
- #7388a2
+ #4A5E86
+ #7388a2
- #000000
- #a5a5a5
+ #000000
+ #a5a5a5
\ No newline at end of file
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/values/strings.xml b/uni_modules/uni-prompt/utssdk/app-android/res/values/strings.xml
index 8ab0ce6cddc5e9e0ced7ffcd520ea94f11648dec..b03256824887ca57afe80f2a2adce72a043d08cf 100644
--- a/uni_modules/uni-prompt/utssdk/app-android/res/values/strings.xml
+++ b/uni_modules/uni-prompt/utssdk/app-android/res/values/strings.xml
@@ -1,7 +1,7 @@
- Configuration
- Cancel
- Sure
- Cancel
+ Configuration
+ Cancel
+ OK
+ Cancel
\ No newline at end of file
diff --git a/uni_modules/uni-prompt/utssdk/app-android/res/values/styles.xml b/uni_modules/uni-prompt/utssdk/app-android/res/values/styles.xml
index 3ef3d9d3475345e81bd960eb65f880439bf9de6a..fb3aca423aac3dc533f625a7f07fc2bdfa87fadc 100644
--- a/uni_modules/uni-prompt/utssdk/app-android/res/values/styles.xml
+++ b/uni_modules/uni-prompt/utssdk/app-android/res/values/styles.xml
@@ -1,23 +1,22 @@
-
-
+
+
-
-
diff --git a/uni_modules/uni-prompt/utssdk/app-android/showActionSheet.uts b/uni_modules/uni-prompt/utssdk/app-android/showActionSheet.uts
index bc3a7161be0991ca07ca925bb9edbc2b03c10a02..65680eddee4c1a8254de76c9684505d5bfa18a38 100644
--- a/uni_modules/uni-prompt/utssdk/app-android/showActionSheet.uts
+++ b/uni_modules/uni-prompt/utssdk/app-android/showActionSheet.uts
@@ -1,13 +1,10 @@
-import AlertDialog from 'android.app.AlertDialog';
import Dialog from 'android.app.Dialog';
import Activity from 'android.app.Activity';
import Gravity from 'android.view.Gravity';
-import { UTSAndroid } from "io.dcloud.uts";
import ViewGroup from 'android.view.ViewGroup';
import View from 'android.view.View';
import Color from 'android.graphics.Color';
-import ColorDrawable from 'android.graphics.drawable.ColorDrawable';
import R from 'io.dcloud.uts.prompt.R';
import TextView from 'android.widget.TextView';
@@ -18,12 +15,16 @@ import LinearLayoutCompat from 'androidx.appcompat.widget.LinearLayoutCompat';
import LinearLayoutManager from 'androidx.recyclerview.widget.LinearLayoutManager';
import RecyclerView from 'androidx.recyclerview.widget.RecyclerView';
+import WindowManager from 'android.view.WindowManager';
+import { ShowActionSheetOptions, ShowActionSheetSuccess} from '../interface.uts'
+// #ifdef UNI-APP-X
+import getCurrentPages from 'io.dcloud.uniapp.framework.getCurrentPages';
+import onReady from 'io.dcloud.uniapp.framework.onReady';
+import onUnload from 'io.dcloud.uniapp.framework.onUnload';
+// #endif
-import { ShowActionSheetOptions, ShowActionSheetSuccess,ShowActionSheetFail} from '../interface.uts'
-import string from 'android.R.string';
-import WindowManager from 'android.view.WindowManager';
let uniActionSheet:UniActionSheet|null = null
@@ -59,14 +60,67 @@ export function actionSheetImpl(style: ShowActionSheetOptions) {
if(uniActionSheet != null){
uniActionSheet?.dismiss()
+ uniActionSheet = null
}
- uniActionSheet = new UniActionSheet(UTSAndroid.getUniActivity()!, style)
- uniActionSheet?.show()
- UTSAndroid.onAppActivityDestroy(function(){
- uniActionSheet?.dismiss()
- uniActionSheet = null
- })
+
+ // #ifndef UNI-APP-X
+ /**
+ * uni-app
+ */
+ if(UTSAndroid.getTopPageActivity() == null){
+ return
+ }
+ if(UTSAndroid.getTopPageActivity()!.isFinishing()){
+ return
+ }
+ uniActionSheet = new UniActionSheet(UTSAndroid.getTopPageActivity()!, style)
+ uniActionSheet?.show()
+ UTSAndroid.onAppActivityDestroy(function(){
+ uniActionSheet?.dismiss()
+ uniActionSheet = null
+ })
+
+ // #endif
+ // #ifdef UNI-APP-X
+ /**
+ * uni-app x
+ * 需要特殊处理生命周期
+ */
+ const pages = getCurrentPages();
+ if (pages.length > 0) {
+ const page = pages[pages.length - 1]
+ const instance = page.$
+ if (page.$isReady) {
+ if(UTSAndroid.getTopPageActivity() == null){
+ return
+ }
+ if(UTSAndroid.getTopPageActivity()!.isFinishing()){
+ return
+ }
+ uniActionSheet = new UniActionSheet(UTSAndroid.getTopPageActivity()!, style)
+ uniActionSheet?.show()
+ } else {
+ onReady(() => {
+ if(UTSAndroid.getTopPageActivity() == null){
+ return
+ }
+ if(UTSAndroid.getTopPageActivity()!.isFinishing()){
+ return
+ }
+ uniActionSheet = new UniActionSheet(UTSAndroid.getTopPageActivity()!, style)
+ uniActionSheet?.show()
+ }, instance)
+ }
+
+ onUnload(() => {
+ uniActionSheet?.dismiss()
+ uniActionSheet = null
+ }, instance)
+
+ }
+ // #endif
+
}
@@ -111,10 +165,22 @@ export class UniActionSheet extends Dialog{
*/
lineCancel: LinearLayoutCompat
+
+ override dismiss():void {
+ let res = new UniError("uni-prompt",1002,"showActionSheet:fail cancel");
+ this.hostStyle.fail?.(res)
+ this.hostStyle.fail = null
+ // 为了确保complete只调用一次,执行后手动置空
+ this.hostStyle.complete?.(res)
+ this.hostStyle.complete = null
+
+ super.dismiss()
+ }
+
constructor(activity: Activity, style: ShowActionSheetOptions) {
- super(activity,R.style.actionsheetDialog);
+ super(activity,R.style.uni_prompt_ActionsheetDialog);
this.hostActivity = activity
this.hostStyle = style
@@ -123,9 +189,9 @@ export class UniActionSheet extends Dialog{
* 适配暗黑模式,配置不同的布局文件
*/
if(UTSAndroid.getAppDarkMode()){
- setContentView(R.layout.uts_action_sheet_night)
+ setContentView(R.layout.uni_prompt_uts_action_sheet_night)
}else{
- setContentView(R.layout.uts_action_sheet)
+ setContentView(R.layout.uni_prompt_uts_action_sheet)
}
@@ -151,7 +217,7 @@ export class UniActionSheet extends Dialog{
this.window!.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT)
this.window!.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM);
if(this.window!.attributes != null){
- this.window!.attributes!.windowAnimations = R.style.DialogAnimations_utsSmileWindow;
+ this.window!.attributes!.windowAnimations = R.style.uni_prompt_DialogAnimations_slideWindow;
}
}
@@ -183,8 +249,11 @@ class ItemClickListener extends View.OnClickListener{
}
this.hostStyle.success?.(res)
+ this.hostStyle.success = null
this.hostStyle.complete?.(res)
-
+ this.hostStyle.complete = null
+ // 点击触发成功后,去掉fail
+ this.hostStyle.fail = null
this.host.dismiss()
}
@@ -209,8 +278,9 @@ class CancelClickListener extends View.OnClickListener{
let res = new UniError("uni-prompt",1002,"showActionSheet:fail cancel");
this.hostStyle.fail?.(res)
+ this.hostStyle.fail = null
this.hostStyle.complete?.(res)
-
+ this.hostStyle.complete = null
this.host.dismiss()
}
@@ -270,18 +340,18 @@ class ItemAdapter extends RecyclerView.Adapter{
if(viewType == 1002){
if(UTSAndroid.getAppDarkMode()){
view =
- LayoutInflater.from(parent.context).inflate(R.layout.ac_recyclerview_layout_night, parent, false)
+ LayoutInflater.from(parent.context).inflate(R.layout.uni_prompt_ac_recyclerview_layout_night, parent, false)
}else{
view =
- LayoutInflater.from(parent.context).inflate(R.layout.ac_recyclerview_layout, parent, false)
+ LayoutInflater.from(parent.context).inflate(R.layout.uni_prompt_ac_recyclerview_layout, parent, false)
}
}else{
if(UTSAndroid.getAppDarkMode()){
view =
- LayoutInflater.from(parent.context).inflate(R.layout.ac_recyclerview_layout_top_night, parent, false)
+ LayoutInflater.from(parent.context).inflate(R.layout.uni_prompt_ac_recyclerview_layout_top_night, parent, false)
}else{
view =
- LayoutInflater.from(parent.context).inflate(R.layout.ac_recyclerview_layout_top, parent, false)
+ LayoutInflater.from(parent.context).inflate(R.layout.uni_prompt_ac_recyclerview_layout_top, parent, false)
}
}
diff --git a/uni_modules/uni-prompt/utssdk/app-android/showModal.uts b/uni_modules/uni-prompt/utssdk/app-android/showModal.uts
index 53510829b53487cf95e316b74d2564ae1cd1d963..a7159e78c418ab4bcbfc621f515a1c6f88e39d81 100644
--- a/uni_modules/uni-prompt/utssdk/app-android/showModal.uts
+++ b/uni_modules/uni-prompt/utssdk/app-android/showModal.uts
@@ -5,13 +5,17 @@ import TextView from 'android.widget.TextView';
import EditText from 'android.widget.EditText';
import View from 'android.view.View';
import Color from 'android.graphics.Color';
-import UTSAndroid from 'io.dcloud.uts.UTSAndroid';
-import Typeface from 'android.graphics.Typeface';
import { ShowModalOptions,ShowModalSuccess,ShowModalFail} from '../interface.uts'
import TextUtils from 'android.text.TextUtils';
+// #ifdef UNI-APP-X
+import getCurrentPages from 'io.dcloud.uniapp.framework.getCurrentPages';
+import onReady from 'io.dcloud.uniapp.framework.onReady';
+import onUnload from 'io.dcloud.uniapp.framework.onUnload';
+// #endif
+
class UTSDialog extends Dialog implements View.OnClickListener {
@@ -26,9 +30,9 @@ class UTSDialog extends Dialog implements View.OnClickListener {
super(context);
if(UTSAndroid.getAppDarkMode()){
- this.setContentView(R.layout.modal_dialog_night);
+ this.setContentView(R.layout.uni_prompt_modal_dialog_night);
}else{
- this.setContentView(R.layout.modal_dialog);
+ this.setContentView(R.layout.uni_prompt_modal_dialog);
}
this.getWindow()?.setBackgroundDrawableResource(android.R.color.transparent);
@@ -44,6 +48,24 @@ class UTSDialog extends Dialog implements View.OnClickListener {
hostStyle:ShowModalOptions|null = null
+ override dismiss():void {
+ /**
+ * 对齐微信,dismiss中的调用都是 cancel
+ */
+ const res: ShowModalSuccess = {
+ confirm: false,
+ cancel: true,
+ }
+ // 为了确保complete只调用一次,执行后手动置空
+ this.hostStyle?.complete?.(res)
+ if(this.hostStyle != null){
+ this.hostStyle!.complete = null
+ }
+
+ super.dismiss()
+
+ }
+
initStyle(style:ShowModalOptions){
this.hostStyle = style
this.setCanceledOnTouchOutside(false)
@@ -54,9 +76,9 @@ class UTSDialog extends Dialog implements View.OnClickListener {
this.tvSureAction.setVisibility(View.VISIBLE)
if(UTSAndroid.getAppDarkMode()){
- this.tvSureAction.setBackgroundResource(R.drawable.dialog_button_select_right_night)
+ this.tvSureAction.setBackgroundResource(R.drawable.uni_prompt_dialog_button_select_right_night)
}else{
- this.tvSureAction.setBackgroundResource(R.drawable.dialog_button_select_right)
+ this.tvSureAction.setBackgroundResource(R.drawable.uni_prompt_dialog_button_select_right)
}
}else{
this.tvCancelAction.setVisibility(View.GONE)
@@ -64,9 +86,9 @@ class UTSDialog extends Dialog implements View.OnClickListener {
this.tvSureAction.setVisibility(View.VISIBLE)
if(UTSAndroid.getAppDarkMode()){
- this.tvSureAction.setBackgroundResource(R.drawable.dialog_button_select_total_night)
+ this.tvSureAction.setBackgroundResource(R.drawable.uni_prompt_dialog_button_select_total_night)
}else{
- this.tvSureAction.setBackgroundResource(R.drawable.dialog_button_select_total)
+ this.tvSureAction.setBackgroundResource(R.drawable.uni_prompt_dialog_button_select_total)
}
}
@@ -116,9 +138,9 @@ class UTSDialog extends Dialog implements View.OnClickListener {
if(TextUtils.isEmpty(style.title)){
// 如果此时title 为空,需要修改文本颜色
if(UTSAndroid.getAppDarkMode()){
- this.tv_content.setTextColor(UTSAndroid.getAppContext()!.getResources().getColor(R.color.dialog_title_text_night))
+ this.tv_content.setTextColor(UTSAndroid.getAppContext()!.getResources().getColor(R.color.uni_prompt_dialog_title_text_night))
}else{
- this.tv_content.setTextColor(UTSAndroid.getAppContext()!.getResources().getColor(R.color.dialog_title_text))
+ this.tv_content.setTextColor(UTSAndroid.getAppContext()!.getResources().getColor(R.color.uni_prompt_dialog_title_text))
}
}
}else{
@@ -128,9 +150,9 @@ class UTSDialog extends Dialog implements View.OnClickListener {
this.tv_content.setVisibility(View.VISIBLE)
this.tv_content.setText(style.title)
if(UTSAndroid.getAppDarkMode()){
- this.tv_content.setTextColor(UTSAndroid.getAppContext()!.getResources().getColor(R.color.dialog_title_text_night))
+ this.tv_content.setTextColor(UTSAndroid.getAppContext()!.getResources().getColor(R.color.uni_prompt_dialog_title_text_night))
}else{
- this.tv_content.setTextColor(UTSAndroid.getAppContext()!.getResources().getColor(R.color.dialog_title_text))
+ this.tv_content.setTextColor(UTSAndroid.getAppContext()!.getResources().getColor(R.color.uni_prompt_dialog_title_text))
}
}else{
this.tv_content.setVisibility(View.GONE)
@@ -189,8 +211,11 @@ class UTSDialog extends Dialog implements View.OnClickListener {
}
this.hostStyle?.success?.(res)
+ // 为了确保complete只调用一次,执行后手动置空
this.hostStyle?.complete?.(res)
-
+ if(this.hostStyle != null){
+ this.hostStyle!.complete = null
+ }
this.dismiss()
}
}
@@ -202,14 +227,73 @@ let utsDialog:UTSDialog|null = null
export function showModalImpl(style:ShowModalOptions){
if(utsDialog != null){
utsDialog?.dismiss()
+ utsDialog = null
}
- utsDialog = new UTSDialog(UTSAndroid.getUniActivity()!);
- utsDialog?.initStyle(style)
- utsDialog?.show();
- UTSAndroid.onAppActivityDestroy(function(){
- utsDialog?.dismiss()
- utsDialog = null
- })
+
+
+ // #ifndef UNI-APP-X
+ /**
+ * uni-app
+ */
+ if(UTSAndroid.getTopPageActivity() == null){
+ return
+ }
+ if(UTSAndroid.getTopPageActivity()!.isFinishing()){
+ return
+ }
+ utsDialog = new UTSDialog(UTSAndroid.getTopPageActivity()!);
+ utsDialog?.initStyle(style)
+ utsDialog?.show();
+
+ UTSAndroid.onAppActivityDestroy(function(){
+ utsDialog?.dismiss()
+ utsDialog = null
+ })
+
+ // #endif
+ // #ifdef UNI-APP-X
+ /**
+ * uni-app x
+ * 需要特殊处理生命周期
+ */
+ const pages = getCurrentPages();
+ if (pages.length > 0) {
+ const page = pages[pages.length - 1]
+ const instance = page.$
+ if (page.$isReady) {
+ if(UTSAndroid.getTopPageActivity() == null){
+ return
+ }
+ if(UTSAndroid.getTopPageActivity()!.isFinishing()){
+ return
+ }
+ utsDialog = new UTSDialog(UTSAndroid.getTopPageActivity()!);
+ utsDialog?.initStyle(style)
+ utsDialog?.show();
+ } else {
+ onReady(() => {
+ if(UTSAndroid.getTopPageActivity() == null){
+ return
+ }
+ if(UTSAndroid.getTopPageActivity()!.isFinishing()){
+ return
+ }
+ utsDialog = new UTSDialog(UTSAndroid.getTopPageActivity()!);
+ utsDialog?.initStyle(style)
+ utsDialog?.show();
+ }, instance)
+ }
+
+ onUnload(() => {
+ utsDialog?.dismiss()
+ utsDialog = null
+ }, instance)
+
+
+ }
+ // #endif
+
+
}
\ No newline at end of file
diff --git a/uni_modules/uni-prompt/utssdk/app-android/showToast.uts b/uni_modules/uni-prompt/utssdk/app-android/showToast.uts
index bdbbfc8da6de400a22b6241084fe64ec4504fcd5..41aa97e48fda161819450533a9d3ee32cfa0adec 100644
--- a/uni_modules/uni-prompt/utssdk/app-android/showToast.uts
+++ b/uni_modules/uni-prompt/utssdk/app-android/showToast.uts
@@ -1,8 +1,14 @@
-import { getUniActivity } from "io.dcloud.uts.android";
+
import Gravity from 'android.view.Gravity';
import Toast from "android.widget.Toast";
import { WaitingView } from "./WaitingView.uts"
-import { ShowToastOptions, ShowLoadingOptions, ShowToastFail,ShowToastSuccess, ShowLoadingFail,ShowLoadingSuccess } from '../interface.uts'
+import { ShowToastOptions, ShowLoadingOptions, ShowToastSuccess, ShowLoadingSuccess } from '../interface.uts'
+
+// #ifdef UNI-APP-X
+import getCurrentPages from 'io.dcloud.uniapp.framework.getCurrentPages';
+import onReady from 'io.dcloud.uniapp.framework.onReady';
+import onUnload from 'io.dcloud.uniapp.framework.onUnload';
+// #endif
type ToastStyle = {
@@ -88,10 +94,51 @@ function makeLoading(style : ShowLoadingOptions, type : string, errMsg : string)
options["width"] = "140"
options["height"] = "112"
- const alert = new WaitingView(getUniActivity(), options)
- toast = alert
- alert.showWaiting()
-
+
+
+ // #ifndef UNI-APP-X
+ /**
+ * uni-app
+ */
+ const alert = new WaitingView(UTSAndroid.getTopPageActivity(), options)
+ toast = alert
+ alert?.showWaiting();
+
+ UTSAndroid.onAppActivityDestroy(function(){
+ toast?.close()
+ toast = null
+ })
+
+ // #endif
+ // #ifdef UNI-APP-X
+ /**
+ * uni-app x
+ * 需要特殊处理生命周期
+ */
+ const pages = getCurrentPages();
+ if (pages.length > 0) {
+ const page = pages[pages.length - 1]
+ const instance = page.$
+ if (page.$isReady) {
+ const alert = new WaitingView(UTSAndroid.getTopPageActivity(), options)
+ toast = alert
+ alert?.showWaiting();
+ } else {
+ onReady(() => {
+ const alert = new WaitingView(UTSAndroid.getTopPageActivity(), options)
+ toast = alert
+ alert?.showWaiting();
+ }, instance)
+ }
+
+ onUnload(() => {
+ toast?.close()
+ toast = null
+ }, instance)
+ }
+ // #endif
+
+
const res : ShowLoadingSuccess = {
}
style.success?.(res)
@@ -114,7 +161,7 @@ function makeToast(style : ShowToastOptions, type : string, errMsg : string) {
toastType = type
if (["top", "center", "bottom"].indexOf(style.position) >= 0) {
- androidToast = Toast.makeText(getUniActivity(), style.title, Toast.LENGTH_SHORT);
+ androidToast = Toast.makeText(UTSAndroid.getTopPageActivity(), style.title, Toast.LENGTH_SHORT);
switch (style.position) {
case "top": {
// 修复bottom/top 与 前端api位置不一致的问题
@@ -173,16 +220,58 @@ function makeToast(style : ShowToastOptions, type : string, errMsg : string) {
}
}
- const alert = new WaitingView(getUniActivity(), options)
- toast = alert
- alert.showWaiting()
+
+
+ // #ifndef UNI-APP-X
+ /**
+ * uni-app
+ */
+ const alert = new WaitingView(UTSAndroid.getTopPageActivity(), options)
+ toast = alert
+ alert?.showWaiting();
+
+ UTSAndroid.onAppActivityDestroy(function(){
+ toast?.close()
+ toast = null
+ })
+
+ // #endif
+ // #ifdef UNI-APP-X
+ /**
+ * uni-app x
+ * 需要特殊处理生命周期
+ */
+ const pages = getCurrentPages();
+ if (pages.length > 0) {
+ const page = pages[pages.length - 1]
+ const instance = page.$
+ if (page.$isReady) {
+ const alert = new WaitingView(UTSAndroid.getTopPageActivity(), options)
+ toast = alert
+ alert?.showWaiting();
+ } else {
+ onReady(() => {
+ const alert = new WaitingView(UTSAndroid.getTopPageActivity(), options)
+ toast = alert
+ alert?.showWaiting();
+ }, instance)
+ }
+
+ onUnload(() => {
+ toast?.close()
+ toast = null
+ }, instance)
+ }
+ // #endif
+
+
let duration : number | null = style.duration
if (duration == null || duration <= 0) {
duration = 1500
}
if (type !== "loading") {
timeout = setTimeout(() => {
- alert.close()
+ toast?.close()
}, duration)
}
diff --git a/uni_modules/uni-prompt/utssdk/interface.uts b/uni_modules/uni-prompt/utssdk/interface.uts
index f5e91ab0e8163ad8393424866bfca2c26ef6a18f..73e14e26c9bc849cca0255d9d250db165c51d175 100644
--- a/uni_modules/uni-prompt/utssdk/interface.uts
+++ b/uni_modules/uni-prompt/utssdk/interface.uts
@@ -29,11 +29,11 @@ export type ShowToastOptions = {
* 图标,有效值详见下方说明,默认:success。
* @description icon值说明 success: 显示成功图标,error: 显示错误图标; fail: 显示错误图标,此时title文本无长度显示; exception: 显示异常图标,此时title文本无长度显示; loading: 显示加载图标;none: 不显示图标。
*/
- icon?: string | null,
+ icon?: "success" | "error" | "fail" | "exception" | "loading" | "none" | null,
/**
* 自定义图标的本地路径(app端暂不支持gif)
*/
- image?: string | null,
+ image?: string.ImageURIString | null,
/**
* 是否显示透明蒙层,防止触摸穿透,默认:false
*/
@@ -46,7 +46,7 @@ export type ShowToastOptions = {
* 纯文本轻提示显示位置,填写有效值后只有 title 属性生效,且不支持通过 uni.hideToast 隐藏。
* @description position值说明(仅App生效) top: 居上显示; center: 居中显示;bottom: 居底显示
*/
- position?: string | null,
+ position?: "top" | "center" | "bottom" | null,
/**
* 接口调用成功的回调函数
*/
@@ -70,7 +70,7 @@ export type ShowToastOptions = {
* @uniPlatform {
* "app": {
* "android": {
- * "osVer": "4.4.4",
+ * "osVer": "5.0",
* "uniVer": "√",
* "unixVer": "3.9.0"
* },
@@ -79,6 +79,10 @@ export type ShowToastOptions = {
* "uniVer": "√",
* "unixVer": "3.9.0"
* }
+ * },
+ * "web": {
+ * "uniVer": "√",
+ * "unixVer": "4.0"
* }
* }
*/
@@ -92,7 +96,7 @@ export type ShowToast = (options: ShowToastOptions) => void
* @uniPlatform {
* "app": {
* "android": {
- * "osVer": "4.4.4",
+ * "osVer": "5.0",
* "uniVer": "√",
* "unixVer": "3.9.0"
* },
@@ -101,6 +105,10 @@ export type ShowToast = (options: ShowToastOptions) => void
* "uniVer": "√",
* "unixVer": "3.9.0"
* }
+ * },
+ * "web": {
+ * "uniVer": "√",
+ * "unixVer": "4.0"
* }
* }
*/
@@ -161,7 +169,7 @@ export type ShowLoadingOptions = {
* @uniPlatform {
* "app": {
* "android": {
- * "osVer": "4.4.4",
+ * "osVer": "5.0",
* "uniVer": "√",
* "unixVer": "3.9.0"
* },
@@ -170,6 +178,10 @@ export type ShowLoadingOptions = {
* "uniVer": "√",
* "unixVer": "3.9.0"
* }
+ * },
+ * "web": {
+ * "uniVer": "√",
+ * "unixVer": "4.0"
* }
* }
*/
@@ -183,7 +195,7 @@ export type ShowLoading = (options: ShowLoadingOptions) => void
* @uniPlatform {
* "app": {
* "android": {
- * "osVer": "4.4.4",
+ * "osVer": "5.0",
* "uniVer": "√",
* "unixVer": "3.9.0"
* },
@@ -192,6 +204,10 @@ export type ShowLoading = (options: ShowLoadingOptions) => void
* "uniVer": "√",
* "unixVer": "3.9.0"
* }
+ * },
+ * "web": {
+ * "uniVer": "√",
+ * "unixVer": "4.0"
* }
* }
*
@@ -252,7 +268,7 @@ export type ShowModalOptions = {
/**
* 取消按钮的文字颜色,默认为"#000000"
*/
- cancelColor?: string | null,
+ cancelColor?: string.ColorString | null,
/**
* 确定按钮的文字,默认为"确定"
*/
@@ -260,7 +276,7 @@ export type ShowModalOptions = {
/**
* 确定按钮的文字颜色
*/
- confirmColor?: string | null,
+ confirmColor?: string.ColorString | null,
/**
* @default false
* 是否显示输入框
@@ -294,7 +310,7 @@ export type ShowModalOptions = {
* @uniPlatform {
* "app": {
* "android": {
- * "osVer": "4.4.4",
+ * "osVer": "5.0",
* "uniVer": "√",
* "unixVer": "3.9.0"
* },
@@ -303,6 +319,10 @@ export type ShowModalOptions = {
* "uniVer": "√",
* "unixVer": "3.9.0"
* }
+ * },
+ * "web": {
+ * "uniVer": "√",
+ * "unixVer": "4.0"
* }
* }
*/
@@ -369,7 +389,7 @@ export type ShowActionSheetOptions = {
/**
* 按钮的文字颜色,字符串格式(iOS默认为系统控件颜色)
*/
- itemColor?: string | null,
+ itemColor?: string.ColorString | null,
/**
* 大屏设备弹出原生选择按钮框的指示区域,默认居中显示
*/
@@ -398,7 +418,7 @@ export type ShowActionSheetOptions = {
* @uniPlatform {
* "app": {
* "android": {
- * "osVer": "4.4.4",
+ * "osVer": "5.0",
* "uniVer": "√",
* "unixVer": "3.9.0"
* },
@@ -407,6 +427,10 @@ export type ShowActionSheetOptions = {
* "uniVer": "√",
* "unixVer": "3.9.0"
* }
+ * },
+* "web": {
+ * "uniVer": "√",
+ * "unixVer": "4.0"
* }
* }
*/
@@ -431,7 +455,7 @@ export interface Uni {
* @uniPlatform {
* "app": {
* "android": {
- * "osVer": "4.4.4",
+ * "osVer": "5.0",
* "uniVer": "√",
* "unixVer": "3.9.0"
* },
@@ -440,6 +464,10 @@ export interface Uni {
* "uniVer": "√",
* "unixVer": "3.9.0"
* }
+ * },
+ * "web": {
+ * "uniVer": "√",
+ * "unixVer": "4.0"
* }
* }
*/
@@ -454,7 +482,7 @@ export interface Uni {
* @uniPlatform {
* "app": {
* "android": {
- * "osVer": "4.4.4",
+ * "osVer": "5.0",
* "uniVer": "√",
* "unixVer": "3.9.0"
* },
@@ -463,6 +491,10 @@ export interface Uni {
* "uniVer": "√",
* "unixVer": "3.9.0"
* }
+ * },
+ * "web": {
+ * "uniVer": "√",
+ * "unixVer": "4.0"
* }
* }
*/
@@ -483,7 +515,7 @@ export interface Uni {
* @uniPlatform {
* "app": {
* "android": {
- * "osVer": "4.4.4",
+ * "osVer": "5.0",
* "uniVer": "√",
* "unixVer": "3.9.0"
* },
@@ -492,6 +524,10 @@ export interface Uni {
* "uniVer": "√",
* "unixVer": "3.9.0"
* }
+ * },
+ * "web": {
+ * "uniVer": "√",
+ * "unixVer": "4.0"
* }
* }
*/
@@ -513,7 +549,7 @@ export interface Uni {
* @uniPlatform {
* "app": {
* "android": {
- * "osVer": "4.4.4",
+ * "osVer": "5.0",
* "uniVer": "√",
* "unixVer": "3.9.0"
* },
@@ -522,6 +558,10 @@ export interface Uni {
* "uniVer": "√",
* "unixVer": "3.9.0"
* }
+ * },
+ * "web": {
+ * "uniVer": "√",
+ * "unixVer": "4.0"
* }
* }
*/
@@ -549,7 +589,7 @@ export interface Uni {
* @uniPlatform {
* "app": {
* "android": {
- * "osVer": "4.4.4",
+ * "osVer": "5.0",
* "uniVer": "√",
* "unixVer": "3.9.0"
* },
@@ -558,6 +598,10 @@ export interface Uni {
* "uniVer": "√",
* "unixVer": "3.9.0"
* }
+ * },
+ * "web": {
+ * "uniVer": "√",
+ * "unixVer": "4.0"
* }
* }
*/
@@ -581,7 +625,7 @@ export interface Uni {
* @uniPlatform {
* "app": {
* "android": {
- * "osVer": "4.4.4",
+ * "osVer": "5.0",
* "uniVer": "√",
* "unixVer": "3.9.0"
* },
@@ -590,6 +634,10 @@ export interface Uni {
* "uniVer": "√",
* "unixVer": "3.9.0"
* }
+ * },
+ * "web": {
+ * "uniVer": "√",
+ * "unixVer": "4.0"
* }
* }
*/
diff --git a/uni_modules/uni-push/changelog.md b/uni_modules/uni-push/changelog.md
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/uni_modules/uni-push/package.json b/uni_modules/uni-push/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..7674d4c16b2f4a8e848dafab5f70dddf0f1e2cf3
--- /dev/null
+++ b/uni_modules/uni-push/package.json
@@ -0,0 +1,125 @@
+{
+ "id": "uni-push",
+ "displayName": "uni-push",
+ "version": "1.0.0",
+ "description": "uni-push",
+ "keywords": [
+ "uni-push"
+ ],
+ "repository": "",
+ "engines": {
+ "HBuilderX": "^3.6.8"
+ },
+ "dcloudext": {
+ "type": "uts",
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "",
+ "data": "",
+ "permissions": ""
+ },
+ "npmurl": ""
+ },
+ "uni_modules": {
+ "dependencies": [],
+ "uni-ext-api": {
+ "uni": {
+ "getPushClientId": {
+ "name": "getPushClientId",
+ "app": {
+ "js": false,
+ "kotlin": true,
+ "swift": false
+ }
+ },
+ "onPushMessage": {
+ "name": "onPushMessage",
+ "app": {
+ "js": false,
+ "kotlin": true,
+ "swift": false
+ }
+ },
+ "offPushMessage": {
+ "name": "offPushMessage",
+ "app": {
+ "js": false,
+ "kotlin": true,
+ "swift": false
+ }
+ },
+ "getChannelManager": {
+ "name": "getChannelManager",
+ "app": {
+ "js": false,
+ "kotlin": true,
+ "swift": false
+ }
+ },
+ "createPushMessage": {
+ "name": "createPushMessage",
+ "app": {
+ "js": false,
+ "kotlin": true,
+ "swift": false
+ }
+ }
+ }
+ },
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "u",
+ "aliyun": "u"
+ },
+ "client": {
+ "Vue": {
+ "vue2": "u",
+ "vue3": "u"
+ },
+ "App": {
+ "app-android": "u",
+ "app-ios": "u"
+ },
+ "H5-mobile": {
+ "Safari": "u",
+ "Android Browser": "u",
+ "微信浏览器(Android)": "u",
+ "QQ浏览器(Android)": "u"
+ },
+ "H5-pc": {
+ "Chrome": "u",
+ "IE": "u",
+ "Edge": "u",
+ "Firefox": "u",
+ "Safari": "u"
+ },
+ "小程序": {
+ "微信": "u",
+ "阿里": "u",
+ "百度": "u",
+ "字节跳动": "u",
+ "QQ": "u",
+ "钉钉": "u",
+ "快手": "u",
+ "飞书": "u",
+ "京东": "u"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/uni_modules/uni-push/readme.md b/uni_modules/uni-push/readme.md
new file mode 100644
index 0000000000000000000000000000000000000000..c5dde5d47b0ebff0c34cf361d7140765c1893b44
--- /dev/null
+++ b/uni_modules/uni-push/readme.md
@@ -0,0 +1,142 @@
+# uni-push
+
+`uni-push` 工程,是基于 DCloud-UTS 架构之上的封装个推消息推送 `SDK` 的插件工程,使用此模块可轻松实现服务端向客户端推送通知和透传消息的功能。
+
+### 插件使用说明
+
+#### 导入插件
+```uts
+import * as GTPlugin from "../../uni_modules/uni-push"
+```
+
+#### 初始化
+
+```typescript
+//初始化个推推送
+GTPlugin.initPush();
+```
+
+#### 推送消息事件
+
+> 添加透传消息回调,对应的GTPlugin.offPushMessage()可移除对应监听callback(传入null,可移除所有监听callback)
+
+```typescript
+GTPlugin.onPushMessage((res) => {
+ console.log("onPushMessage => " + JSON.stringify(res))
+})
+```
+
+| 名称 | 类型 | 描述 |
+| ---- | ------------- | ----------------------------------------------------------- |
+| type | String | 事件类型,"click"-从系统推送服务点击消息启动应用事件;"receive"-应用从推送服务器接收到推送消息事件。 |
+| data | String、Object | 消息内容 |
+
+
+
+#### 日志
+
+开发阶段,需要使用到日志辅助。
+
+```typescript
+//设置日志回调,可以在控制台看到[GT-PUSH]的日志
+GTPlugin.setDebugLogger(function(res) {
+ console.log(res)
+});
+```
+
+当插件正常初始化会出现以下日志:
+
+```uts
+16:47:53.254 [GT-PUSH] [LogController] Sdk version = 3.3.0.0 at pages/index/index.vue:25
+16:47:54.052 [GT-PUSH] [ServiceManager] ServiceManager start from initialize... at pages/index/index.vue:25
+16:47:54.073 [GT-PUSH] PushCore started at pages/index/index.vue:25
+16:47:54.274 [GT-PUSH] onHandleIntent() = get sdk service pid at pages/index/index.vue:25
+16:47:54.292 [GT-PUSH] onHandleIntent() areNotificationsEnabled at pages/index/index.vue:25
+16:47:54.353 [GT-PUSH] [LoginInteractor] Start login appid = nU*******wzf at pages/index/index.vue:25
+16:47:54.571 收到 cid onReceiveClientId : 3061f********ce7578eb24 at pages/index/index.vue:29
+16:47:54.592 [GT-PUSH] onHandleIntent() = received client id at pages/index/index.vue:25
+16:47:54.593 [GT-PUSH] [LoginResult] Login successed with cid = 3061f********ce7578eb24 at pages/index/index.vue:25
+```
+
+#### 推送相关动作
+
+> 设置推送相关动作回调,更多可查看`app-android/index.uts`下面的 `UserPushAction`类
+
+```typescript
+GTPlugin.setPushAction({
+ onReceiveClientId: function(cid) {
+ console.log("收到 cid onReceiveClientId : " + cid)
+ }
+});
+```
+
+
+
+#### 唯一的推送标识
+
+获取客户端唯一的推送标识
+
+```typescript
+GTPlugin.getPushClientId({
+ success: (res) => {
+ console.log("getPushClientId success => " + JSON.stringify(res));
+ },
+ fail: (res) => {
+ console.log("getPushClientId fail => " + JSON.stringify(res));
+ },
+ complete: (res) => {
+ console.log("getPushClientId complete => " + JSON.stringify(res));
+ }
+});
+```
+
+**OBJECT 参数说明**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | --- | ------------------------ |
+| success | Function | 是 | 接口调用的回调函数,详见返回参数说明 |
+| fail | Function | 否 | 接口调用失败的回调函数 |
+| complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
+
+**success 返回参数说明**
+
+| 参数 | 类型 | 说明 |
+| ------ | ------ | ---------------------------------------- |
+| cid | String | 个推客户端推送id,对应uni-id-device表的push_clientid |
+| errMsg | String | 错误描述 |
+
+**fail 返回参数说明**
+
+| 参数 | 类型 | 说明 |
+| ------ | ------ | ---- |
+| errMsg | String | 错误描述 |
+
+
+
+### APP_ID申请
+
+可登录[个推官网](https://dev.getui.com/)注册申请应用,获取APP相关信息。
+
+
+
+### 多厂商
+
+多厂商渠道可以参考[[厂商应用开通指南-个推文档中心](https://docs.getui.com/getui/mobile/vendor/vendor_open/) 和 [厂商 SDK 集成指南-个推文档中心](https://docs.getui.com/getui/mobile/vendor/androidstudio/)
+
+> 注意:华为厂商需要把`agconnect-services.json` 放到${工程根目录}/nativeResources/android/ 目录下
+
+### 开发文档
+
+[个推推送SDK](https://docs.getui.com/getui/start/accessGuide/)
+[多厂商接入](https://docs.getui.com/getui/mobile/vendor/vendor_open/)
+
+
+
+### 注意事项
+
+在`AndroidManifest.xml`中,必须声明插件`flag`
+
+```xml
+
+
+```
diff --git a/uni_modules/uni-push/utssdk/app-android/AndroidManifest.xml b/uni_modules/uni-push/utssdk/app-android/AndroidManifest.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0272d5637496aceebc0a71a2908eb3d5eb81cfaf
--- /dev/null
+++ b/uni_modules/uni-push/utssdk/app-android/AndroidManifest.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/uni_modules/uni-push/utssdk/app-android/config.json b/uni_modules/uni-push/utssdk/app-android/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..82b9613f2c85c6060d2af8bb064882b2b5003711
--- /dev/null
+++ b/uni_modules/uni-push/utssdk/app-android/config.json
@@ -0,0 +1,42 @@
+{
+ "parameters": {
+ "appid": {
+ "placeholder": "GETUI_APPID"
+ },
+ "mipush_appid": {
+ "placeholder": "MIPUSH_APPID"
+ },
+ "mipush_appkey": {
+ "placeholder": "MIPUSH_APPKEY"
+ },
+ "meizupush_appid": {
+ "placeholder": "MEIZUPUSH_APPID"
+ },
+ "meizupush_appkey": {
+ "placeholder": "MEIZUPUSH_APPKEY"
+ },
+ "oppopush_appkey": {
+ "placeholder": "OPPOPUSH_APPKEY"
+ },
+ "oppopush_appsecret": {
+ "placeholder": "OPPOPUSH_APPSECRET"
+ },
+ "huaweipush_appid": {
+ "placeholder": "com.huawei.hms.client.appid"
+ },
+ "vivopush_appid": {
+ "placeholder": "com.vivo.push.app_id"
+ },
+ "vivopush_appkey": {
+ "placeholder": "com.vivo.push.api_key"
+ },
+ "dcloud_unipush_auto_notification": {
+ "placeholder": "dcloud_unipush_auto_notification"
+ }
+ },
+ "files": [{
+ "source": "push_unipush_huaweipush_agconnect-services.json",
+ "target": "agconnect-services.json",
+ "des": "HMS配置文件"
+ }]
+}
\ No newline at end of file
diff --git a/uni_modules/uni-push/utssdk/app-android/gt-sdk/GTPush.uts b/uni_modules/uni-push/utssdk/app-android/gt-sdk/GTPush.uts
new file mode 100644
index 0000000000000000000000000000000000000000..0ebb25a3c9b0bf9ddb234557ce6e4f506ff2db3c
--- /dev/null
+++ b/uni_modules/uni-push/utssdk/app-android/gt-sdk/GTPush.uts
@@ -0,0 +1,144 @@
+import Context from "android.content.Context";
+import GTPlugin from "com.getui.sdk.GTPlugin";
+import IPushAction from "com.getui.sdk.IPushAction";
+import GTCmdMessage from "com.igexin.sdk.message.GTCmdMessage";
+import GTNotificationMessage from "com.igexin.sdk.message.GTNotificationMessage";
+import GTTransmitMessage from "com.igexin.sdk.message.GTTransmitMessage";
+import IUserLoggerInterface from "com.igexin.sdk.IUserLoggerInterface";
+
+export function gtInit(context : Context) : void {
+ GTPlugin.initialize(context);
+}
+
+export function getClientId(context : Context) : string {
+ return GTPlugin.getClientId(context);
+}
+
+export function setPushAction(action : UserPushAction) : void {
+ GTPlugin.setPushAction(action);
+}
+
+
+export type GTPushActionOptions = {
+
+ onReceiveServicePid ?: (res : number) => void
+
+ /**
+ * 接收clientId(cid)
+ */
+ onReceiveClientId ?: (res : string) => void
+
+ /**
+ * 此方法用于接收和处理透传消息。透传消息个推只传递数据,不做任何处理,客户端接收到透传消息后需要自己去做后续动作处理,如通知栏展示、弹框等。
+ * 如果开发者在客户端将透传消息创建了通知栏展示,建议将展示和点击回执上报给个推。
+ */
+ onReceiveMessageData ?: (res : string) => void
+
+ /**
+ * cid 离线上线通知
+ */
+ onReceiveOnlineState ?: (res : boolean) => void
+
+ /**
+ * 各种事件处理回执
+ */
+ onReceiveCommandResult ?: (res : GTCmdMessage) => void
+
+ /**
+ * 通知点击,只有个推通道下发的通知会回调此方法
+ */
+ onNotificationMessageClicked ?: (res : string) => void
+
+ /**
+ * 通知到达,只有个推通道下发的通知会回调此方法
+ */
+ onNotificationMessageArrived ?: (res : GTNotificationMessage) => void
+}
+
+
+
+export class UserPushAction implements IPushAction {
+
+ constructor(
+ private options : GTPushActionOptions) {
+ }
+
+ override onReceiveServicePid(ctx : Context, pid : Int) {
+ this.options.onReceiveServicePid?.(pid)
+ }
+
+ /**
+ * 接收clientId(cid)
+ */
+ override onReceiveClientId(ctx : Context, cid : string) {
+ this.options.onReceiveClientId?.(cid)
+ }
+
+ /**
+ * 此方法用于接收和处理透传消息。透传消息个推只传递数据,不做任何处理,客户端接收到透传消息后需要自己去做后续动作处理,如通知栏展示、弹框等。
+ * 如果开发者在客户端将透传消息创建了通知栏展示,建议将展示和点击回执上报给个推。
+ *
+ * class GTTransmitMessage {
+ * private String taskId;
+ * private String messageId;
+ * private String payloadId;
+ * private byte[] payload;
+ * }
+ */
+ override onReceiveMessageData(ctx : Context, message : GTTransmitMessage) {
+ this.options.onReceiveMessageData?.(new String(message.getPayload()))
+ }
+
+ /**
+ * cid 离线/上线通知
+ */
+ override onReceiveOnlineState(ctx : Context, state : boolean) {
+ this.options.onReceiveOnlineState?.(state)
+ }
+
+ /**
+ * 各种事件处理回执
+ */
+ override onReceiveCommandResult(ctx : Context, message : GTCmdMessage) {
+ this.options.onReceiveCommandResult?.(message)
+ }
+
+ /**
+ * 通知点击,只有个推通道下发的通知会回调此方法
+ */
+ override onNotificationMessageClicked(ctx : Context, message : GTNotificationMessage) {
+ const params = {
+ "title": message.getTitle(),
+ "content": message.getContent()
+ };
+ this.options.onNotificationMessageClicked?.(JSON.stringify(params))
+ }
+
+ /**
+ * 通知到达,只有个推通道下发的通知会回调此方法
+ */
+ override onNotificationMessageArrived(ctx : Context, message : GTNotificationMessage) {
+ this.options.onNotificationMessageArrived?.(message)
+ }
+}
+
+
+class UserLoggerInterface implements IUserLoggerInterface {
+ constructor(private callback : (log : string) => void) {
+ }
+
+ override log(s : string) {
+ this.callback?.(s)
+ }
+}
+
+/**
+ * 个推推送sdk调试日志信息
+ * setDebugLogger 接口仅限调试的时候使用,切勿发布到线上版本,重复调用仅以第一次为准。
+ */
+export function setDebugLogger(callback : (log : string) => void) {
+ const ctx = UTSAndroid.getAppContext();
+ if (ctx != null) {
+ GTPlugin.setDebugLogger(ctx, new UserLoggerInterface(callback))
+ }
+}
\ No newline at end of file
diff --git a/uni_modules/uni-push/utssdk/app-android/index.uts b/uni_modules/uni-push/utssdk/app-android/index.uts
new file mode 100644
index 0000000000000000000000000000000000000000..34379f2b9c0c8aaba15f09e095b767966c947f8c
--- /dev/null
+++ b/uni_modules/uni-push/utssdk/app-android/index.uts
@@ -0,0 +1,364 @@
+
+import { GetPushClientIdOptions, GetPushClientIdSuccess, GetPushClientIdFail, OnPushMessageCallback, OnPushMessageCallbackResult, OnPushMessageType, CreatePushMessageOptions, ChannelManager } from '../interface.uts'
+
+import { gtInit, GTPushActionOptions, UserPushAction, setPushAction } from './gt-sdk/GTPush.uts'
+import Context from 'android.content.Context';
+import { PushMessage } from './push/PushMessage.uts';
+import PackageManager from 'android.content.pm.PackageManager';
+import ApplicationInfo from 'android.content.pm.ApplicationInfo';
+import Activity from 'android.app.Activity';
+import TextUtils from 'android.text.TextUtils';
+import { PushState } from './push/PushState.uts';
+import { PushManager } from './push/PushManager.uts';
+import { StringUtil } from './push/utils/StringUtil.uts';
+import SharedPreferences from 'android.content.SharedPreferences';
+import Handler from 'android.os.Handler';
+import { PushChannelManager } from './push/PushChannelManager.uts';
+import Bundle from 'android.os.Bundle';
+import Intent from 'android.content.Intent';
+import Uri from 'android.net.Uri';
+import { globalPushMessageCallbacks, sendEvent } from './push/PushManager.uts'
+export { PushActionService } from './push/PushActionService.uts';
+
+const SP_NAME = "clientid_unipush";
+const SP_KEY_CLIENT_ID = "clientid";
+
+
+let gtCallBack : UserPushAction | null = null;
+let gtPushInitialize = false
+
+/**
+ * 个推推送sdk初始化
+ */
+function initPush() {
+ const ctx = UTSAndroid.getAppContext();
+ if (ctx != null && !gtPushInitialize) {
+ gtPushInitialize = true;
+ gtInit(ctx);
+ setPushAction(getGTCallBack());
+ }
+}
+
+/**
+ * 获取客户端唯一的推送标识(注意:这是一个异步的方法)
+ */
+export function getPushClientId(options : GetPushClientIdOptions) {
+ initPush()
+ const ctx = UTSAndroid.getAppContext() as Context;
+ const sp = ctx.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE) as SharedPreferences;
+ const clientId = sp.getString(SP_KEY_CLIENT_ID, "")
+ if (TextUtils.isEmpty(clientId)) {
+ const handler = new Handler()
+ const changeListener = new (class implements SharedPreferences.OnSharedPreferenceChangeListener {
+ override onSharedPreferenceChanged(sharedPreferences : SharedPreferences, key : string) : void {
+ if (key != SP_KEY_CLIENT_ID) {
+ return
+ }
+ handler.removeCallbacksAndMessages(null)
+ sharedPreferences.unregisterOnSharedPreferenceChangeListener(this)
+ const cid = sharedPreferences.getString(SP_KEY_CLIENT_ID, "")
+ const res : GetPushClientIdSuccess = { errMsg: "success", cid: cid!! }
+ options.success?.(res)
+ options.complete?.(res)
+ }
+ })
+ sp.registerOnSharedPreferenceChangeListener(changeListener)
+
+ const runnable = new (class implements Runnable {
+ override run() {
+ const clientId = sp.getString(SP_KEY_CLIENT_ID, "")
+ if (!TextUtils.isEmpty(clientId)) {
+ const res : GetPushClientIdSuccess = { errMsg: "success", cid: clientId!! }
+ options.success?.(res)
+ options.complete?.(res)
+ } else {
+ const res : GetPushClientIdFail = {
+ errSubject: "uni-push",
+ errCode: -1,
+ errMsg: "failed,check appkey or appid",
+ }
+ options.fail?.(res)
+ options.complete?.(res)
+ }
+ }
+ })
+ handler.postDelayed(runnable, 15000)
+ } else {
+ const res : GetPushClientIdSuccess = { errMsg: "success", cid: clientId!! }
+ options.success?.(res)
+ options.complete?.(res)
+ }
+}
+
+/**
+ * 增加监听推送消息事件(应用在线的时候没有通知栏消息,全部是透传。), 注意: 使用时,开发者需要注册写到第一个activity的周期内 , 即首页.
+ */
+export function onPushMessage(callback : OnPushMessageCallback | null) {
+ initPush()
+ if (callback == null) {
+ return;
+ }
+ if (globalPushMessageCallbacks.indexOf(callback) == -1) {
+ globalPushMessageCallbacks.push(callback)
+ }
+
+ processOfflineMessage()
+ // 处理没有注册监听时,已经接到的消息,此时从缓存里取
+ PushManager.getInstance().comsumeMessages("click", (msgs : PushMessage[]) => {
+ msgs.forEach((msg) => {
+ sendEvent("click", msg)
+ })
+ })
+ PushManager.getInstance().comsumeMessages("receive", (msgs : PushMessage[]) => {
+ msgs.forEach((msg) => {
+ sendEvent("receive", msg)
+ })
+ })
+}
+
+/**
+ * 移除推送消息监听事件(没有传入参数,则移除App级别的所有事件监听器。)
+ */
+export function offPushMessage(callback : OnPushMessageCallback | null) {
+ if (callback == null) {
+ const len = globalPushMessageCallbacks.length;
+ globalPushMessageCallbacks.splice(0, len)
+ return;
+ }
+
+ let index = globalPushMessageCallbacks.indexOf(callback)
+ if (index == -1) {
+ return;
+ }
+ globalPushMessageCallbacks.splice(index, 1)
+}
+
+export function getChannelManager() : ChannelManager {
+ return PushChannelManager.getInstance()
+}
+
+export function createPushMessage(options : CreatePushMessageOptions) : void {
+ const context = UTSAndroid.getAppContext() as Context
+ const appId = UTSAndroid.getAppId()
+ const pushMessage = new PushMessage(JSON.stringify(options), getApplicationName(), false)
+
+ const min = 0
+ if (pushMessage.mDelay == min.toLong()) {
+ PushManager.getInstance().addPushMessage(appId, pushMessage)
+ PushManager.getInstance().createNotification(context, pushMessage)
+ } else {
+ new Handler().postDelayed(new (class implements Runnable {
+ override run() {
+ PushManager.getInstance().addPushMessage(appId, pushMessage)
+ PushManager.getInstance().createNotification(context, pushMessage)
+ }
+ }), pushMessage.mDelay * 1000)
+ }
+}
+
+
+function getGTCallBack() : UserPushAction {
+ if (gtCallBack == null) {
+ const options = {
+ onReceiveClientId(cid : string) {
+ const context = UTSAndroid.getAppContext() as Context;
+ const sp = context.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE);
+ const editor = sp.edit();
+ editor.putString(SP_KEY_CLIENT_ID, cid);
+ editor.commit();
+ },
+ onNotificationMessageClicked(res : string) {
+ const pushMessage = new PushMessage(res, getApplicationName(), false)
+ if (!sendEvent("click", pushMessage)) {
+ PushManager.getInstance().addNeedExecClickMessage(pushMessage)
+ }
+ },
+ onReceiveMessageData(res : string) {
+ if (!TextUtils.isEmpty(res)) {
+ let isUniPush2 = false
+ const jsonObject = JSON.parseObject(res)
+ const unipushVersionStr = jsonObject?.getString("unipush_version")
+ if (!TextUtils.isEmpty(unipushVersionStr)) {
+ const unipushVersion = parseFloat(unipushVersionStr!!)
+ if (unipushVersion == 2.0) {
+ isUniPush2 = true;
+ }
+ }
+ if (isUniPush2) {
+ processForUniPush2(res);
+ } else {
+ processForUniPush(res);
+ }
+ }
+ },
+ } as GTPushActionOptions;
+ gtCallBack = new UserPushAction(options);
+ }
+
+ return gtCallBack!!;
+}
+
+/**
+ * 处理离线消息
+ */
+function processOfflineMessage() {
+ const activity = UTSAndroid.getUniActivity() as Activity
+ const intent = activity.getIntent()
+
+ // const testStr = "intent://io.dcloud.unipush/?#Intent;scheme=unipush;launchFlags=0x4000000;package=uni.UNI8CD4C4C;component=uni.UNI8CD4C4C/io.dcloud.uniapp.UniAppActivity;S.UP-OL-SU=true;S.unipush_version=2.0;S.payload={\"cccccforceNotification\":\"xxx\",\"path\":\"XXX\"};S.title=xxx;S.content=xxx;S.unipush_data={\"forceNotification\":\"xxx\",\"path\":\"XXX\"};end"
+ // const intent = Intent.parseUri(testStr , 0)
+
+ if (intent.hasExtra("UP-OL-SU")) {
+ let isUniPush2 = false;
+ const unipushVersionStr = intent.getStringExtra("unipush_version");
+ if (!TextUtils.isEmpty(unipushVersionStr)) {
+ const unipushVersion = parseFloat(unipushVersionStr!!)
+ if (unipushVersion == 2.0) {
+ isUniPush2 = true;
+ }
+ }
+
+ const params = {}
+
+ if (isUniPush2) {
+ try {
+ params["title"] = intent.getStringExtra("title")
+ params["content"] = intent.getStringExtra("content")
+ params["unipush_version"] = intent.getStringExtra("unipush_version")
+
+ const channelId = intent.getStringExtra("channelId");
+ const category = intent.getStringExtra("category");
+ if (!TextUtils.isEmpty(channelId)) {
+ params["channelId"] = channelId
+ }
+ if (!TextUtils.isEmpty(category)) {
+ params["category"] = category
+ }
+
+ let payload = intent.getStringExtra("payload");
+ const payloadJsonObject = JSON.parseObject(payload ?? "")
+ if (payloadJsonObject == null) {
+ if (payload != null) {
+ //如果后端传的不是json,而是纯字符串,就需要单独处理,去掉多余的引号,并且枚举一下类型.
+ //双引号套双引号,就说明是传的字符串.
+ if (payload.startsWith("\"")) {
+ payload = StringUtil.trimString(payload, '"');
+ params["payload"] = payload
+ } else {
+ const payloadInt = StringUtil.getInt(payload);
+ const payloadDouble = StringUtil.getDouble(payload);
+ if (payloadInt != null) {
+ params["payload"] = payloadInt
+ } else if (payloadDouble != null) {
+ params["payload"] = payloadDouble
+ } else if (payload == "true" || payload == "false") {
+ params["payload"] = payload.toBoolean()
+ } else {
+ params["payload"] = payload
+ }
+ }
+ }
+ } else {
+ params["payload"] = payloadJsonObject
+ }
+
+ const unipush_data = intent.getStringExtra("unipush_data");
+ const unipushDataJsonObject = JSON.parseObject(unipush_data ?? "");
+ if (unipushDataJsonObject != null) {
+ unipushDataJsonObject.toMap().forEach((value, key) => {
+ params[key] = value
+ })
+ }
+
+ intent.removeExtra("UP-OL-SU");
+ intent.removeExtra("title");
+ intent.removeExtra("content");
+ intent.removeExtra("payload");
+ intent.removeExtra("unipush_version");
+ intent.removeExtra("unipush_data");
+ intent.removeExtra("channelId");
+ intent.removeExtra("category");
+
+ const data = JSON.stringify(params)
+ const pushMessage = new PushMessage(data, getApplicationName(), true);
+ if (!sendEvent("click", pushMessage)) {
+ PushManager.getInstance().addNeedExecClickMessage(pushMessage)
+ }
+ } catch (e : Exception) {
+ e.printStackTrace();
+ }
+ } else {
+ try {
+ params["title"] = intent.getStringExtra("title")
+ params["content"] = intent.getStringExtra("content")
+ params["payload"] = intent.getStringExtra("payload")
+ const channelId = intent.getStringExtra("channelId");
+ const category = intent.getStringExtra("category");
+ if (!TextUtils.isEmpty(channelId)) {
+ params["channelId"] = channelId
+ }
+ if (!TextUtils.isEmpty(category)) {
+ params["category"] = category
+ }
+ intent.removeExtra("UP-OL-SU");
+ intent.removeExtra("title");
+ intent.removeExtra("content");
+ intent.removeExtra("payload");
+ intent.removeExtra("channelId");
+ intent.removeExtra("category");
+ const data = JSON.stringify(params)
+ const pushMessage = new PushMessage(data, getApplicationName(), true);
+ if (!sendEvent("click", pushMessage)) {
+ PushManager.getInstance().addNeedExecClickMessage(pushMessage)
+ }
+ } catch (e : Exception) {
+ e.printStackTrace();
+ }
+ }
+ }
+}
+
+
+function processForUniPush(data : string) : void {
+ const context = UTSAndroid.getAppContext() as Context
+ const pushMessage = new PushMessage(data, getApplicationName(), false)
+ const needPush = PushState.getAutoNotification()
+ if (needPush && pushMessage.getNeedCreateNotification()) {
+ PushManager.getInstance().createNotification(context, pushMessage)
+ } else if (!sendEvent("receive", pushMessage)) {
+ PushManager.getInstance().addNeedExecReceiveMessage(pushMessage);
+
+ }
+ PushManager.getInstance().addPushMessage(UTSAndroid.getAppId(), pushMessage);
+}
+
+function processForUniPush2(data : string) : void {
+ const context = UTSAndroid.getAppContext() as Context
+ const jsonObject = JSON.parseObject(data)
+ if (jsonObject != null) {
+ const forceNotification = jsonObject.getBoolean("force_notification")
+ const pushMessage = new PushMessage(data, getApplicationName(), true)
+ if (forceNotification != null && forceNotification) {
+ PushManager.getInstance().createNotification(context, pushMessage)
+ } else if (!sendEvent("receive", pushMessage)) {
+ PushManager.getInstance().addNeedExecReceiveMessage(pushMessage);
+ }
+ PushManager.getInstance().addPushMessage(UTSAndroid.getAppId(), pushMessage);
+ }
+}
+
+function getApplicationName() : string {
+ let packageManager : PackageManager | null = null
+ let applicationInfo : ApplicationInfo | null = null
+ const context = UTSAndroid.getAppContext() as Context;
+ try {
+ packageManager = context.getApplicationContext().getPackageManager()
+ applicationInfo = packageManager.getApplicationInfo(context.getPackageName(), 0)
+ } catch (_ : Exception) {
+ }
+ if (applicationInfo == null) {
+ return ""
+ }
+
+ return packageManager?.getApplicationLabel(applicationInfo).toString() ?? ""
+}
\ No newline at end of file
diff --git a/uni_modules/uni-push/utssdk/app-android/libs/getui-uts-android-release-20230928135005.aar b/uni_modules/uni-push/utssdk/app-android/libs/getui-uts-android-release-20230928135005.aar
new file mode 100644
index 0000000000000000000000000000000000000000..93354738c7fef06d3cd9a7d1d48aecd68204616a
Binary files /dev/null and b/uni_modules/uni-push/utssdk/app-android/libs/getui-uts-android-release-20230928135005.aar differ
diff --git a/uni_modules/uni-push/utssdk/app-android/push/PushActionService.uts b/uni_modules/uni-push/utssdk/app-android/push/PushActionService.uts
new file mode 100644
index 0000000000000000000000000000000000000000..886709c8f29ca335d70fff3c7ad886df655d2790
--- /dev/null
+++ b/uni_modules/uni-push/utssdk/app-android/push/PushActionService.uts
@@ -0,0 +1,21 @@
+import Service from 'android.app.Service';
+import Intent from 'android.content.Intent';
+import IBinder from 'android.os.IBinder';
+import { PushManager } from './PushManager.uts';
+export class PushActionService extends Service {
+
+ constructor(){
+ super();
+ }
+
+ override onBind(intent : Intent) : IBinder | null {
+ return null
+ }
+
+ override onStartCommand(intent : Intent | null, flag : Int, startId : Int) : Int {
+ if (intent != null) {
+ PushManager.getInstance().processAction(this.getBaseContext(), intent)
+ }
+ return super.onStartCommand(intent, flag, startId)
+ }
+}
\ No newline at end of file
diff --git a/uni_modules/uni-push/utssdk/app-android/push/PushChannelManager.uts b/uni_modules/uni-push/utssdk/app-android/push/PushChannelManager.uts
new file mode 100644
index 0000000000000000000000000000000000000000..07f55431709507f1a2b50c6d6ffe946b8266bf3c
--- /dev/null
+++ b/uni_modules/uni-push/utssdk/app-android/push/PushChannelManager.uts
@@ -0,0 +1,98 @@
+import { ChannelManager, SetPushChannelOptions } from "../../interface.uts";
+import Context from 'android.content.Context';
+import Build from 'android.os.Build';
+import NotificationManager from 'android.app.NotificationManager';
+import NotificationChannelGroup from 'android.app.NotificationChannelGroup';
+import NotificationChannel from 'android.app.NotificationChannel';
+import TextUtils from 'android.text.TextUtils';
+import ContentResolver from 'android.content.ContentResolver';
+import Uri from 'android.net.Uri';
+import RingtoneManager from 'android.media.RingtoneManager';
+
+export class PushChannelManager implements ChannelManager {
+
+ static LOCAL_PUSH_CHANNEL_ID = "DcloudChannelID";
+ static LOCAL_PUSH_GROUP_ID = "DcloudGroupID";
+
+ private static INSTANCE : PushChannelManager | null = null
+
+ static getInstance() : PushChannelManager {
+ if (this.INSTANCE == null) {
+ this.INSTANCE = new PushChannelManager()
+ }
+ return this.INSTANCE!!
+ }
+
+ createDefaultChannel(context : Context) {
+ if (Build.VERSION.SDK_INT >= 26) {
+ const notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
+ const pChannelId = PushChannelManager.LOCAL_PUSH_CHANNEL_ID
+ const pChannelName = context.getResources().getString(R.string.dcloud_feature_aps_notification_channel)
+ if (notificationManager.getNotificationChannel(pChannelId) == null) {
+ notificationManager.createNotificationChannelGroup(new NotificationChannelGroup(PushChannelManager.LOCAL_PUSH_GROUP_ID, context.getResources().getString(R.string.dcloud_feature_aps_notification_group)))
+ const channel = new NotificationChannel(pChannelId, pChannelName, NotificationManager.IMPORTANCE_DEFAULT)
+ channel.enableLights(true)
+ channel.setShowBadge(true)
+ notificationManager.createNotificationChannel(channel)
+ }
+ }
+ }
+
+ /**
+ * 设置推送渠道
+ */
+ setPushChannel(options : SetPushChannelOptions) : void {
+ if (Build.VERSION.SDK_INT >= 26) {
+ const context = UTSAndroid.getAppContext() as Context
+ const notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager;
+ if (notificationManager.getNotificationChannel(options.channelId) == null) {
+ const notificationChannel = new NotificationChannel(options.channelId, options.channelDesc, NotificationManager.IMPORTANCE_DEFAULT);
+ notificationChannel.setShowBadge(true);
+ let sound = 0;
+ if (!TextUtils.isEmpty(options.soundName)) {
+ const packName = context.getApplicationInfo().packageName
+ sound = context.getResources().getIdentifier(options.soundName!!, "raw", packName)
+ }
+ let uriStr = "";
+ if (sound != 0) {
+ uriStr = ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + context.getPackageName() + "/raw/" + sound;
+ }
+
+ if (!TextUtils.isEmpty(uriStr)) {
+ notificationChannel.setSound(Uri.parse(uriStr), null);
+ } else {
+ const uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);//默认铃音
+ notificationChannel.setSound(uri, null);
+ }
+
+ if (options.importance != null) {
+ notificationChannel.setImportance(options.importance!!.toInt());
+ }
+ if (options.lockscreenVisibility != null) {
+ notificationChannel.setLockscreenVisibility(options.lockscreenVisibility!!.toInt());
+ }
+ notificationChannel.enableLights(options.enableLights ?? false);
+ notificationChannel.enableVibration(options.enableVibration ?? false);
+ notificationManager.createNotificationChannel(notificationChannel);
+ }
+ }
+ }
+ /**
+ * 获取当前应用注册的所有的通知渠道。
+ */
+ getAllChannels() : string[] {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ const context = UTSAndroid.getAppContext() as Context
+ const nm = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
+ const channels : string[] = []
+ const list = nm.getNotificationChannels()
+ for (let i:Int = 0; i < list.size; i++) {
+ channels.push(list.get(i).toString())
+ }
+ return channels
+ }else{
+ return [] as string[]
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/uni_modules/uni-push/utssdk/app-android/push/PushManager.uts b/uni_modules/uni-push/utssdk/app-android/push/PushManager.uts
new file mode 100644
index 0000000000000000000000000000000000000000..bbc8b88effc02986f81d65de0df74742033baff3
--- /dev/null
+++ b/uni_modules/uni-push/utssdk/app-android/push/PushManager.uts
@@ -0,0 +1,320 @@
+import Context from 'android.content.Context';
+import Intent from 'android.content.Intent';
+import { PushChannelManager } from './PushChannelManager.uts';
+import { PushMessage } from './PushMessage.uts';
+import NotificationManager from 'android.app.NotificationManager';
+import ComponentName from 'android.content.ComponentName';
+import PendingIntent from 'android.app.PendingIntent';
+import Build from 'android.os.Build';
+import TextUtils from 'android.text.TextUtils';
+import Notification from 'android.app.Notification';
+import Bitmap from 'android.graphics.Bitmap';
+import BitmapFactory from 'android.graphics.BitmapFactory';
+import File from 'java.io.File';
+import { OnPushMessageCallback, OnPushMessageType, OnPushMessageCallbackResult } from '../../interface.uts'
+
+export const globalPushMessageCallbacks : OnPushMessageCallback[] = []
+
+export function sendEvent(type : OnPushMessageType, pushMessage : PushMessage) : boolean {
+ const data = pushMessage.getJsonObject()
+ const result : OnPushMessageCallbackResult = {
+ type: type,
+ data: data
+ }
+ if (globalPushMessageCallbacks.length == 0) {
+ return false
+ } else {
+ globalPushMessageCallbacks.forEach((cb : OnPushMessageCallback) => {
+ cb(result)
+ })
+ return true
+ }
+}
+
+export class PushManager {
+ private static INSTANCE : PushManager | null = null
+
+ private ACTION_TYPE_CREATE = "ACTION_TYPE_CREATE"
+ private ACTION_TYPE_REMOVE = "ACTION_TYPE_REMOVE"
+ private ACTION_TYPE_CLEAR = "ACTION_TYPE_CLEAR"
+ private ACTION_TYPE_CLICK = "ACTION_TYPE_CLICK"
+
+ private mAppMessages : Map> = new Map()
+ private mNeedExecClickMessages : PushMessage[] = []
+ private mNeedExecReceiveMessages : PushMessage[] = []
+
+ static getInstance() : PushManager {
+ if (this.INSTANCE == null) {
+ this.INSTANCE = new PushManager()
+ }
+ return this.INSTANCE!!
+ }
+
+
+
+
+
+ createNotification(context : Context, message : PushMessage) {
+ PushChannelManager.getInstance().createDefaultChannel(context)
+ const intent = new Intent(this.ACTION_TYPE_CREATE)
+ intent.putExtras(message.toBundle())
+ this.processAction(context, intent)
+ }
+
+ addPushMessage(pAppid : string, pMsg : PushMessage) {
+ let _arr = this.mAppMessages.get(pAppid);
+ if (_arr == null) {
+ _arr = new Array();
+ this.mAppMessages.set(pAppid, _arr);
+ }
+ _arr.push(pMsg);
+ }
+
+
+ addNeedExecClickMessage(pushMessage : PushMessage) {
+ if (this.mNeedExecClickMessages.length > 0) {
+ this.mNeedExecClickMessages = []
+ }
+ this.mNeedExecClickMessages.push(pushMessage)
+ }
+
+ addNeedExecReceiveMessage(pushMessage : PushMessage) {
+ this.mNeedExecReceiveMessages.push(pushMessage)
+ }
+
+ removePushMessage(pAppid : String, pPushMsg : PushMessage) {
+ const _arr = this.mAppMessages.get(pAppid);
+ if (_arr != null && _arr.indexOf(pPushMsg) > 0) {
+ _arr.splice(_arr.indexOf(pPushMsg), 1);
+ }
+ }
+
+ /**
+ * 消费缓存的消息
+ */
+ comsumeMessages(type : string, cb : (msgs : PushMessage[]) => void) {
+ if (type == "click") {
+ cb(this.mNeedExecClickMessages)
+ this.mNeedExecClickMessages.splice(0)
+ } else if (type == "receive") {
+ cb(this.mNeedExecReceiveMessages)
+ this.mNeedExecReceiveMessages.splice(0)
+ }
+ }
+
+
+ processAction(context : Context, intent : Intent) {
+ const notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
+ const action = intent.getAction()
+ switch (action) {
+ case this.ACTION_TYPE_CREATE:
+ {
+ const title = intent.getStringExtra("title");
+ const message = intent.getStringExtra("content");
+ const nId = intent.getIntExtra("nId", 0);
+ const when = intent.getLongExtra("when", 0);
+ const appid = intent.getStringExtra("appid");
+ const icon = intent.getStringExtra("icon");
+ const sound = intent.getStringExtra("sound");
+ const category = intent.getStringExtra("category");
+ let channelId = intent.getStringExtra("channelId");
+ const i = new Intent(this.ACTION_TYPE_CLICK);
+ i.setComponent(new ComponentName(context.getPackageName(), "uts.sdk.modules.DCloudUniPush.PushActionService"));
+ i.putExtras(intent.getExtras()!!);
+ let flags = PendingIntent.FLAG_ONE_SHOT;
+ if (Build.VERSION.SDK_INT >= 23) {
+ flags = PendingIntent.FLAG_ONE_SHOT | PendingIntent.FLAG_IMMUTABLE;
+ }
+ const contentIntent = PendingIntent.getService(context, nId, i, flags);
+
+ let builder : Notification.Builder | null = null;
+ if (Build.VERSION.SDK_INT >= 26) {
+ if (TextUtils.isEmpty(channelId)) {
+ channelId = PushChannelManager.LOCAL_PUSH_CHANNEL_ID;
+ }
+ builder = new Notification.Builder(context, channelId);
+ } else {
+ builder = new Notification.Builder(context);
+ }
+
+ let bitmap : Bitmap | null = null;
+ try {
+ if (!TextUtils.isEmpty(icon) && this.fileIsExist(icon!!)) {
+ bitmap = BitmapFactory.decodeFile(icon!!);
+ }
+ } catch (e : Exception) {
+ e.printStackTrace();
+ }
+ if (bitmap != null) {
+ builder.setLargeIcon(bitmap);
+ }
+
+ const id_small = context.getResources().getIdentifier("push_small", "drawable", context.getPackageName())
+ if (id_small <= 0) {
+ builder.setSmallIcon(context.getApplicationInfo().icon); //设置图标
+ } else {
+ builder.setSmallIcon(id_small); //设置图标
+ }
+
+ const id = context.getResources().getIdentifier("push", "drawable", context.getPackageName())
+ if (bitmap == null) {
+ let largeBitmap : Bitmap | null = null;
+ if (id <= 0) {
+ largeBitmap = BitmapFactory.decodeResource(context.getResources(), context.getApplicationInfo().icon);
+ } else {
+ largeBitmap = BitmapFactory.decodeResource(context.getResources(), id);
+ }
+ if (null != largeBitmap) {
+ builder.setLargeIcon(largeBitmap);
+ }
+ }
+ builder.setContentTitle(title); //设置标题
+ builder.setContentText(message); //消息内容
+ if (Build.VERSION.SDK_INT >= 24) {
+ builder.setShowWhen(true);
+ }
+ builder.setWhen(when); //发送时间
+
+ // 添加声音提示
+ if ("system" == sound) {
+ builder.setDefaults(Notification.DEFAULT_SOUND); //设置默认的提示音,振动方式,灯光
+ }
+ builder.setAutoCancel(true);//打开程序后图标消失
+ builder.setContentIntent(contentIntent);
+ builder.setCategory(category);
+ const notification = builder.build();
+ try {
+ notificationManager.notify(nId, notification);
+ } catch (e : Exception) {
+ e.printStackTrace();
+ }
+ }
+
+ break;
+ case this.ACTION_TYPE_REMOVE:
+ {
+ const _id = intent.getIntExtra("id", 0);
+ if (_id != null) {
+ notificationManager.cancel(_id);
+ }
+ }
+ break;
+ case this.ACTION_TYPE_CLEAR:
+ {
+ notificationManager.cancelAll();
+ const _appid = intent.getStringExtra("_appId");
+ if (_appid != null) {
+ const appMsg = PushManager.getInstance().mAppMessages;
+ appMsg.delete(_appid);
+ }
+ }
+ break;
+ case this.ACTION_TYPE_CLICK:
+ {
+ this.clickHandle(intent, notificationManager);
+ const packagename = context.getPackageName();// 启动类所在包名
+ const pm = context.getPackageManager();
+ const _intent = pm.getLaunchIntentForPackage(packagename);
+ const appid = intent.getStringExtra("appid");
+ _intent?.putExtra("appid", appid);
+ const isStartWeb = intent?.getBooleanExtra("__start_first_web__", false) ?? false;
+ if (isStartWeb) {
+ _intent?.putExtra("__start_first_web__", isStartWeb);
+ _intent?.putExtra("__first_web_url__", intent?.getStringExtra("__first_web_url__"));
+ }
+ _intent?.putExtra("__start_from__", 3);
+ _intent?.putExtra("__payload__", intent?.getStringExtra("payload"));
+ _intent?.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
+ context.startActivity(_intent);
+ }
+ break;
+ }
+
+ }
+
+ clickHandle(intent : Intent, _notificationManager : NotificationManager) {
+ const _bundle = intent.getExtras()!!;
+ const appid = _bundle.getString("appid");
+ const uuid = _bundle.getString("uuid");
+ if (_notificationManager != null) {//作为插件时,手助负责创建通知栏消息
+ const _id = intent.getIntExtra("id", 0);
+ _notificationManager.cancel(_id);
+ }
+ let _pushMessage : PushMessage | null = null
+ if (appid != null && uuid != null) {
+ _pushMessage = this.findPushMessage(appid!!, uuid!!);
+ }
+ if (_pushMessage != null) {
+ let isStartWeb = false;
+ if (!TextUtils.isEmpty(_pushMessage.mPayload)) {
+ try {
+ const payLoadJson = JSON.parseObject(_pushMessage.mPayload ?? "")
+ const url = payLoadJson?.getString("__adurl")
+ if (!TextUtils.isEmpty(url)) {
+ intent.putExtra("__start_first_web__", true);
+ intent.putExtra("__first_web_url__", url);
+ isStartWeb = true;
+ }
+ } catch (e : Exception) {
+ e.printStackTrace();
+ }
+ }
+
+ if (!isStartWeb && !sendEvent("click", _pushMessage)) {
+ this.addNeedExecClickMessage(_pushMessage);
+ }
+ // 点击后的消息,需要移除消息记录,避免getAllMessage时不正确
+ if (appid != null) {
+ this.removePushMessage(appid, _pushMessage);
+ }
+ } else {
+ _pushMessage = new PushMessage(_bundle);
+ if (!TextUtils.isEmpty(_pushMessage.mPayload)) {
+ try {
+ const payLoadJson = JSON.parseObject(_pushMessage.mPayload!!)
+ const url = payLoadJson?.getString("__adurl")
+ if (!TextUtils.isEmpty(url)) {
+ intent.putExtra("__start_first_web__", true);
+ intent.putExtra("__first_web_url__", url);
+ }
+ } catch (e : Exception) {
+ e.printStackTrace();
+ }
+ }
+ this.addNeedExecClickMessage(_pushMessage);
+ }
+ _bundle.clear();
+ }
+
+
+
+ findPushMessage(pAppid : String, pUuid : String) : PushMessage | null {
+ let _ret : PushMessage | null = null;
+ const _arr = this.mAppMessages.get(pAppid);
+ if (_arr == null) {//若没有通过appid获取到消息集合,则通过uuid遍历所有消息
+ this.mAppMessages.forEach((value : PushMessage[], key : string) => {
+ if (value != null) {
+ value.forEach((value : PushMessage) => {
+ if (pUuid == value.getMessageUUID()) {
+ _ret = value
+ }
+ })
+ }
+ })
+ } else if (_arr != null) {
+ _arr.forEach((value : PushMessage) => {
+ if (pUuid == value.getMessageUUID()) {
+ _ret = value
+ }
+ })
+ }
+ return _ret;
+ }
+
+
+ fileIsExist(path : string) : boolean {
+ const realPath = UTSAndroid.convert2AbsFullPath(path)
+ const file = new File(realPath)
+ return file.exists()
+ }
+}
\ No newline at end of file
diff --git a/uni_modules/uni-push/utssdk/app-android/push/PushMessage.uts b/uni_modules/uni-push/utssdk/app-android/push/PushMessage.uts
new file mode 100644
index 0000000000000000000000000000000000000000..ef84878939440a73a869e785081e1ea50f74b66c
--- /dev/null
+++ b/uni_modules/uni-push/utssdk/app-android/push/PushMessage.uts
@@ -0,0 +1,275 @@
+import TextUtils from 'android.text.TextUtils'
+import Bundle from 'android.os.Bundle';
+
+export class PushMessage {
+ private mTitle : string | null = null
+ private contentJson : string | null = null
+ private mContent : string | null = null
+
+ mPayloadJSON : UTSJSONObject | null = null
+ mPayload : string | null = null
+
+ private mWhen : Long = 0
+ mDelay : Long = 0
+ private mPath : string | null = null
+ private mForceNotification : string | null = null
+ private channelId = ""
+ private category = ""
+ private mMessageAppid : string | null = null
+ private mIconPath : string | null = null
+
+ private mUUID : string | null = null
+ private nID : number = 0
+ private isCover = false
+ private sound = "system"
+ private static mNotificationId = 1
+ private needCreateNotification = true
+
+ private pushVersion : Float = 1.0.toFloat()
+ private extJSON : UTSJSONObject | null = null
+
+ constructor(data : string, defaultTitle : string, isUniPush2 : boolean) {
+ if (!isUniPush2) {
+ this.contentJson = data
+ this.parseJson(data, UTSAndroid.getAppId(), defaultTitle)
+ } else {
+ this.extJSON = JSON.parseObject(data)
+ this.mMessageAppid = UTSAndroid.getAppId()
+ this.pushVersion = 2.0.toFloat()
+ if (this.extJSON != null) {
+ this.channelId = this.extJSON!!.getString("channelId") ?? ""
+ this.category = this.extJSON!!.getString("category") ?? ""
+ }
+ }
+ this.setMessageUUID()
+ this.setNotificationID()
+ }
+
+ $constructor(b : Bundle) {
+ this.mTitle = b.getString("title");
+ this.mContent = b.getString("content");
+ this.nID = b.getInt("nId");
+ this.mWhen = b.getLong("when");
+ this.sound = b.getString("sound") ?? "system";
+ this.mMessageAppid = b.getString("appid");
+ this.mUUID = b.getString("uuid");
+ this.mPayload = b.getString("payload");
+ this.mIconPath = b.getString("icon");
+ this.channelId = b.getString("channelId", "");
+ this.category = b.getString("category", "");
+ }
+
+
+
+ getNeedCreateNotification() : boolean {
+ return this.needCreateNotification;//payload为空串时需要创建
+ }
+
+ getMessageUUID() : string | null {
+ return this.mUUID
+ }
+
+ getJsonObject() : UTSJSONObject {
+ if (this.extJSON != null) {
+ if (this.pushVersion == (2.0.toFloat())) {
+ try {
+ this.extJSON!!["__UUID__"] = this.mUUID
+ this.extJSON!!["appid"] = this.mMessageAppid
+ } catch (e : Exception) {
+ e.printStackTrace()
+ return {};
+ }
+ }
+ return this.extJSON!!
+ } else {
+ const result = {} as UTSJSONObject;
+ result["__UUID__"] = this.mUUID
+ result["title"] = this.mTitle
+ result["appid"] = this.mMessageAppid
+ result["content"] = this.mContent
+ if (this.mPayloadJSON != null) {
+ result["payload"] = this.cleanNullValue(this.mPayloadJSON!!)
+ } else {
+ let payLoadObj : UTSJSONObject | null = null
+ if (this.mPayload != null) {
+ payLoadObj = JSON.parseObject(this.mPayload!!)
+ }
+
+ if (payLoadObj != null) {
+ result["payload"] = this.cleanNullValue(payLoadObj)
+ } else {
+ result["payload"] = this.mPayload
+ }
+ }
+ if (!TextUtils.isEmpty(this.mPath)) {
+ result["path"] = this.mPath
+ }
+ if (!TextUtils.isEmpty(this.mForceNotification)) {
+ result["force_notification"] = this.mForceNotification
+ }
+ if (!TextUtils.isEmpty(this.channelId)) {
+ result["channelId"] = this.channelId
+ }
+ if (!TextUtils.isEmpty(this.category)) {
+ result["category"] = this.category
+ }
+ return result
+ }
+ }
+
+ cleanNullValue(json : UTSJSONObject) : UTSJSONObject {
+ const result = {}
+ json.toMap().forEach((value, key) => {
+ if (value != null) {
+ result[key] = value
+ }
+ })
+ return result
+ }
+
+
+ toBundle() : Bundle {
+ const bundle = new Bundle()
+ if (this.extJSON != null && this.pushVersion == (2.0.toFloat())) {
+ bundle.putInt("nId", this.nID.toInt());
+ bundle.putLong("when", this.mWhen);
+ bundle.putString("sound", this.sound);
+ bundle.putString("appid", this.mMessageAppid);
+ bundle.putString("uuid", this.mUUID);
+ bundle.putString("icon", this.mIconPath);
+
+ const map = this.extJSON!!.toMap()
+ map.forEach((value, key) => {
+ if (value != null) {
+ if (typeof value == 'string') {
+ bundle.putString(key, value as string);
+ } else if (value instanceof Integer) {
+ bundle.putInt(key, value as Int);
+ } else if (value instanceof Double) {
+ bundle.putDouble(key, value);
+ } else if (typeof value == 'boolean') {
+ bundle.putBoolean(key, value as boolean);
+ } else if (value instanceof UTSJSONObject) {
+ bundle.putString(key, (value as UTSJSONObject).toJSONString());
+ }
+ }
+ })
+ return bundle
+ }
+
+ bundle.putString("title", this.mTitle);
+ bundle.putString("content", this.mContent);
+ bundle.putInt("nId", this.nID.toInt());
+ bundle.putLong("when", this.mWhen);
+ bundle.putString("sound", this.sound);
+ bundle.putString("appid", this.mMessageAppid);
+ bundle.putString("uuid", this.mUUID);
+ if (this.mPayloadJSON != null) {
+ bundle.putString("payload", this.mPayloadJSON!!.toJSONString());
+ } else {
+ bundle.putString("payload", this.mPayload);
+ }
+ bundle.putString("icon", this.mIconPath);
+ bundle.putString("channelId", this.channelId);
+ bundle.putString("category", this.category);
+
+ return bundle
+ }
+
+
+
+ private setMessageUUID() : void {
+ this.mUUID = "androidPushMsg" + this.hashCode()
+ }
+
+ private setNotificationID() : void {
+ if (!this.isCover) {
+ PushMessage.mNotificationId++
+ }
+ this.nID = PushMessage.mNotificationId
+ }
+
+
+ /**
+ * 解析消息的数据
+ * @param defaultAppid 通过appid 查询到icon资源 , 1.0强需求, 2.0 不需求
+ */
+ private parseJson(data : string, defaultAppid : string, defaultTitle : string) : void {
+ const json = JSON.parseObject(data)
+ if (json != null) {
+ let t_appid = json.getString("appid")
+ const content = json.getString("content")
+ if (content != null) {
+ this.mContent = content
+ } else {
+ const message = json.getString("message")
+ if (message != null) {
+ this.mContent = message
+ } else {
+ this.needCreateNotification = true
+ this.mContent = data
+ }
+ }
+
+ if (this.hasOwnProperty(json, "payload")) {
+ const payloadJson = json.getJSON("payload")
+ if (payloadJson != null) {
+ this.mPayloadJSON = payloadJson
+ } else {
+ this.mPayload = json.getString("payload")
+ }
+ } else {
+ if (this.hasOwnProperty(json, "Payload")) {
+ const payloadJson = json.getJSON("Payload")
+ if (payloadJson != null) {
+ this.mPayloadJSON = payloadJson
+ } else {
+ this.mPayload = json.getString("Payload")
+ }
+ } else {
+ this.needCreateNotification = false
+ this.mPayload = data
+ }
+ }
+
+ if (this.hasOwnProperty(json, "title")) {
+ this.mTitle = json.getString("title")
+ } else {
+ this.needCreateNotification = false
+ this.mTitle = defaultTitle
+ }
+
+ this.isCover = json.getBoolean("cover") ?? false
+ if ("none" == json.getString("sound")) {
+ this.sound = "none"
+ }
+ this.mWhen = (json.getNumber("when") ?? 0).toLong()
+ this.mDelay = (json.getNumber("delay") ?? 0).toLong()
+
+ this.mPath = json.getString("path")
+ this.mForceNotification = json.getString("force_notification")
+ this.channelId = json.getString("channelId") ?? ""
+ this.category = json.getString("category") ?? ""
+
+ if (TextUtils.isEmpty(t_appid)) {
+ t_appid = defaultAppid
+ }
+ this.mMessageAppid = t_appid
+ const iconPath = json.getString("icon") ?? ""
+ this.mIconPath = UTSAndroid.convert2AbsFullPath(iconPath)
+ } else {
+ this.needCreateNotification = false
+ this.mContent = data
+ this.mPayload = data
+ this.mTitle = defaultTitle
+ }
+ }
+
+
+ private hasOwnProperty(jsonObject : UTSJSONObject, key : string) : boolean {
+ return jsonObject.getAny(key) != null
+ }
+
+
+
+}
\ No newline at end of file
diff --git a/uni_modules/uni-push/utssdk/app-android/push/PushState.uts b/uni_modules/uni-push/utssdk/app-android/push/PushState.uts
new file mode 100644
index 0000000000000000000000000000000000000000..c80852d5c975a9af825366fe6c71a6d723f0adf1
--- /dev/null
+++ b/uni_modules/uni-push/utssdk/app-android/push/PushState.uts
@@ -0,0 +1,42 @@
+import Context from 'android.content.Context';
+import PackageManager from 'android.content.pm.PackageManager';
+import Bundle from 'android.os.Bundle';
+import TextUtils from 'android.text.TextUtils';
+export class PushState {
+
+ private static sMetaDatas : Bundle | null = null
+
+
+ static getAutoNotification() : boolean {
+ const context = UTSAndroid.getAppContext() as Context
+ const sp = context.getSharedPreferences("push_db_name", Context.MODE_PRIVATE)
+ const autoNotification = this.getMetaValue(context, "dcloud_unipush_auto_notification")
+ let needPush = true
+ if (autoNotification != null) {
+ if (!autoNotification.equals("ture", true)) {
+ needPush = false;
+ }
+ }
+ needPush = sp.getBoolean("auto_notification", needPush);
+ return needPush
+ }
+
+
+ private static getMetaValue(context : Context, metaKey : string) : string | null {
+ if (this.sMetaDatas == null) {
+ try {
+ this.sMetaDatas = context.getPackageManager().getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA).metaData;
+ } catch (e : Exception) {
+ e.printStackTrace();
+ return null;
+ }
+ }
+ if (this.sMetaDatas != null) {
+ const value = this.sMetaDatas!!.get(metaKey)
+ if (value != null && !TextUtils.isEmpty(value as string)) {
+ return value as string;
+ }
+ }
+ return null;
+ }
+}
\ No newline at end of file
diff --git a/uni_modules/uni-push/utssdk/app-android/push/utils/StringUtil.uts b/uni_modules/uni-push/utssdk/app-android/push/utils/StringUtil.uts
new file mode 100644
index 0000000000000000000000000000000000000000..97bc29a1408d4a5be16314cd31c4e18751147513
--- /dev/null
+++ b/uni_modules/uni-push/utssdk/app-android/push/utils/StringUtil.uts
@@ -0,0 +1,31 @@
+export class StringUtil {
+ static trimString(pSrc : string, removed : string) : string {
+ const pTrimChar = removed.charAt(0)
+ let _ret = pSrc;
+ if (_ret != null && _ret != "") {
+ const _startPosi = _ret.charAt(0) == pTrimChar ? 1 : 0;
+ const _count = _ret.length;
+ const _endPosi = _ret.charAt(_count - 1) == pTrimChar ? _count - 1 : _count;
+ _ret = _ret.substring(_startPosi, _endPosi);
+ }
+ return _ret;
+ }
+
+ static getInt(content : string) : number | null {
+ try {
+ return content.toInt();
+ } catch (e : Exception) {
+ return null;
+ }
+ }
+
+
+ static getDouble(content : string) : number | null {
+ try {
+ return content.toDouble()
+ } catch (e : Exception) {
+ return null;
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/uni_modules/uni-push/utssdk/app-android/res/drawable-xxhdpi/push.png b/uni_modules/uni-push/utssdk/app-android/res/drawable-xxhdpi/push.png
new file mode 100755
index 0000000000000000000000000000000000000000..ed3d29bd26d2b611a328fba26aac73b44e916a10
Binary files /dev/null and b/uni_modules/uni-push/utssdk/app-android/res/drawable-xxhdpi/push.png differ
diff --git a/uni_modules/uni-push/utssdk/app-android/res/drawable-xxhdpi/push_small.png b/uni_modules/uni-push/utssdk/app-android/res/drawable-xxhdpi/push_small.png
new file mode 100755
index 0000000000000000000000000000000000000000..800dbd4a677f3c838095d7f31a4bc60ef85e75ed
Binary files /dev/null and b/uni_modules/uni-push/utssdk/app-android/res/drawable-xxhdpi/push_small.png differ
diff --git a/uni_modules/uni-push/utssdk/app-android/res/raw/keep.xml b/uni_modules/uni-push/utssdk/app-android/res/raw/keep.xml
new file mode 100644
index 0000000000000000000000000000000000000000..35edb41154a913b6042713dad4b709968f2b9970
--- /dev/null
+++ b/uni_modules/uni-push/utssdk/app-android/res/raw/keep.xml
@@ -0,0 +1,7 @@
+
+
+
+ 消息推送
+ 推送消息
+
+
\ No newline at end of file
diff --git a/uni_modules/uni-push/utssdk/app-android/res/values/values.xml b/uni_modules/uni-push/utssdk/app-android/res/values/values.xml
new file mode 100644
index 0000000000000000000000000000000000000000..012adb5e607f5fee15fbdd8653591adaedf7a808
--- /dev/null
+++ b/uni_modules/uni-push/utssdk/app-android/res/values/values.xml
@@ -0,0 +1,6 @@
+
+
+ unipush
+ message push
+
+
\ No newline at end of file
diff --git a/uni_modules/uni-push/utssdk/app-ios/index.uts b/uni_modules/uni-push/utssdk/app-ios/index.uts
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/uni_modules/uni-push/utssdk/interface.uts b/uni_modules/uni-push/utssdk/interface.uts
new file mode 100644
index 0000000000000000000000000000000000000000..84490f8ac43178f6aa5003271af83a36dff8e0d6
--- /dev/null
+++ b/uni_modules/uni-push/utssdk/interface.uts
@@ -0,0 +1,396 @@
+export interface Uni {
+ /**
+ * getPushClientId()
+ * @description
+ * 获取客户端唯一的推送标识
+ * @param {GetPushClientIdOptions}
+ * @return {void}
+ * @tutorial http://uniapp.dcloud.io/api/plugins/push.html#getpushclientid
+ * @uniPlatform {
+ * "app": {
+ * "android": {
+ * "osVer": "4.4",
+ * "uniVer": "√",
+ * "unixVer": "3.97"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * }
+ * }
+ * }
+ * @example
+ ```typescript
+ uni.getPushClientId({
+ complete: (res: any) => {
+ console.log("getPushClientId complete => " + JSON.stringify(res));
+ }
+ });
+ ```
+ */
+ getPushClientId(options : GetPushClientIdOptions) : void;
+ /**
+ * onPushMessage()
+ * @description
+ * 启动监听推送消息事件
+ * @param {OnPushMessageCallback}
+ * @return {void}
+ * @tutorial http://uniapp.dcloud.io/api/plugins/push.html#onpushmessage
+ * @uniPlatform {
+ * "app": {
+ * "android": {
+ * "osVer": "4.4",
+ * "uniVer": "√",
+ * "unixVer": "3.97"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * }
+ * }
+ * }
+ * @example
+ ```typescript
+ uni.onPushMessage((res : OnPushMessageCallbackResult) => {
+ console.log("onPushMessage => " + JSON.stringify(res))
+ });
+ ```
+ */
+ onPushMessage(callback : OnPushMessageCallback) : void;
+ /**
+ * offPushMessage()
+ * @description
+ * 关闭推送消息监听事件
+ * @param {OnPushMessageCallback}
+ * @return {void}
+ * @tutorial http://uniapp.dcloud.io/api/plugins/push.html#offpushmessage
+ * @uniPlatform {
+ * "app": {
+ * "android": {
+ * "osVer": "4.4",
+ * "uniVer": "√",
+ * "unixVer": "3.97"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * }
+ * }
+ * }
+ * @example
+ ```typescript
+ const cb = (res : OnPushMessageCallbackResult) => {
+ console.log("onPushMessage => " + JSON.stringify(res))
+ }
+ uni.offPushMessage(cb);
+ ```
+ */
+ offPushMessage(callback : OnPushMessageCallback) : void;
+ /**
+ * getChannelManager()
+ * @description
+ * 获取通知渠道管理器,Android 8系统以上才可以设置通知渠道,Android 8系统以下返回null。
+ * @param {void}
+ * @return {ChannelManager}
+ * @uniPlatform {
+ * "app": {
+ * "android": {
+ * "osVer": "4.4",
+ * "uniVer": "3.97",
+ * "unixVer": "3.97"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * }
+ * }
+ * }
+ * @example
+ ```typescript
+ const channelManager = uni.getChannelManager();
+ channelManager.setPushChannel({
+ channelId: "test1",
+ channelDesc: "test1 desc",
+ soundName: "pushsound"
+ })
+ const channels = channelManager.getAllChannels() as string[]
+ console.log("channels : " + channels);
+ ```
+ */
+ getChannelManager() : ChannelManager;
+
+ /**
+ * createPushMessage()
+ * @description
+ * 创建本地通知栏消息
+ * @param {CreatePushMessageOptions}
+ * @return {void}
+ * @tutorial http://uniapp.dcloud.io/api/plugins/push.html#createpushmessage
+ * @uniPlatform {
+ * "app": {
+ * "android": {
+ * "osVer": "4.4",
+ * "uniVer": "√",
+ * "unixVer": "3.97"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * }
+ * }
+ * }
+ * @example
+ ```typescript
+ uni.createPushMessage({
+ title:"hello",
+ content: "content"
+ });
+ ```
+ */
+ createPushMessage(options : CreatePushMessageOptions) : void;
+}
+
+export type GetPushClientId = (options : GetPushClientIdOptions) => void;
+export type GetPushClientIdSuccess = {
+ /**
+ * 个推客户端推送id,对应uni-id-device表的push_clientid
+ */
+ cid : string,
+ /**
+ * 错误描述
+ */
+ errMsg : string
+};
+export type GetPushClientIdSuccessCallback = (result : GetPushClientIdSuccess) => void;
+export type GetPushClientIdFail = UniError;
+export type GetPushClientIdFailCallback = (result : GetPushClientIdFail) => void;
+export type GetPushClientIdComplete = any;
+export type GetPushClientIdCompleteCallback = (result : GetPushClientIdComplete) => void;
+export type GetPushClientIdOptions = {
+ /**
+ * 接口调用成功的回调函数
+ * @defaultValue null
+ */
+ success : GetPushClientIdSuccessCallback | null,
+ /**
+ * 接口调用失败的回调函数
+ * @defaultValue null
+ */
+ fail : GetPushClientIdFailCallback | null,
+ /**
+ * 接口调用结束的回调函数(调用成功、失败都会执行)
+ * @defaultValue null
+ */
+ complete : GetPushClientIdCompleteCallback | null
+};
+/**
+ * 事件类型
+ * - click 从系统推送服务点击消息启动应用事件
+ * - receive 应用从推送服务器接收到推送消息事件
+ */
+export type OnPushMessageType = "click" | "receive";
+
+export type OnPushMessageCallbackResult = {
+ /**
+ * 事件类型
+ * @type{OnPushMessageType}
+ */
+ type : OnPushMessageType,
+ /**
+ * 消息内容
+ */
+ data : UTSJSONObject
+};
+
+export type OnPushMessageCallback = (result : OnPushMessageCallbackResult) => void;
+export type OnPushMessage = (callback : OnPushMessageCallback) => void;
+export type OffPushMessage = (callback : OnPushMessageCallback) => void;
+
+
+export type GetChannelManager = () => ChannelManager;
+export type SetPushChannelOptions = {
+ /**
+ * 添加的声音文件,注意raw目录下必须要有 ,不传此字段将使用默认铃音。
+ * @defaultValue null
+ */
+ soundName? : string | null,
+ /**
+ * 通知渠道id
+ */
+ channelId : string,
+ /**
+ * 通知渠道描述
+ */
+ channelDesc : string,
+ /**
+ * 呼吸灯闪烁
+ * @defaultValue false
+ */
+ enableLights? : boolean | null,
+ /**
+ * 震动
+ * @defaultValue false
+ */
+ enableVibration? : boolean | null,
+ /**
+ * 通知的重要性级别,可选范围IMPORTANCE_LOW:2、IMPORTANCE_DEFAULT:3、IMPORTANCE_HIGH:4 。
+ * @defaultValue 3
+ */
+ importance? : number | null,
+ /**
+ * 锁屏可见性,可选范围VISIBILITY_PRIVATE:0、VISIBILITY_PUBLIC:1、VISIBILITY_SECRET:-1、VISIBILITY_NO_OVERRIDE:-1000。
+ * @defaultValue -1000
+ */
+ lockscreenVisibility? : number | null
+}
+export interface ChannelManager {
+ /**
+ * 设置推送渠道
+ *
+ * @uniPlatform {
+ * "app": {
+ * "android": {
+ * "osVer": "4.4",
+ * "uniVer": "√",
+ * "unixVer": "3.97"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * }
+ * }
+ * }
+ */
+ setPushChannel(options : SetPushChannelOptions) : void;
+ /**
+ * 获取当前应用注册的所有的通知渠道。
+ *
+ * @uniPlatform {
+ * "app": {
+ * "android": {
+ * "osVer": "4.4",
+ * "uniVer": "√",
+ * "unixVer": "3.97"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * }
+ * }
+ * }
+ */
+ getAllChannels() : Array;
+}
+
+export type CreatePushMessage = (options : CreatePushMessageOptions) => void;
+export type CreatePushMessageSuccess = {};
+export type CreatePushMessageSuccessCallback = (result : CreatePushMessageSuccess) => void;
+export type CreatePushMessageFail = UniError;
+export type CreatePushMessageFailCallback = (result : CreatePushMessageFail) => void;
+export type CreatePushMessageComplete = any;
+export type CreatePushMessageCompleteCallback = (result : CreatePushMessageComplete) => void;
+export type CreatePushMessageOptions = {
+ /**
+ * 是否覆盖上一次提示的消息
+ * @type boolean
+ * @defaultValue false
+ */
+ cover? : boolean | null,
+ /**
+ * 提示消息延迟显示的时间,单位为s
+ * @defaultValue 0
+ */
+ delay? : number | null,
+ /**
+ * 推送消息的图标
+ * @defaultValue null
+ */
+ icon? : string | null,
+ /**
+ * 推送消息的提示音
+ * - system: 使用系统通知提示音(默认值)
+ * - none: 不使用提示音
+ * @type 'system' | 'none'
+ * @defaultValue "system"
+ */
+ sound? : string | null,
+ /**
+ * 推送消息的标题
+ * @defaultValue ""
+ */
+ title? : string | null,
+ /**
+ * 消息显示的内容,在系统通知中心中显示的文本内容
+ */
+ content : string,
+ /**
+ * 消息承载的数据,可根据业务逻辑自定义数据格式
+ * @defaultValue null
+ */
+ payload? : any | null,
+ /**
+ * 消息上显示的提示时间
+ * @defaultValue 当前时间
+ */
+ when? : number | null,
+ /**
+ * 渠道id
+ * @defaultValue "DcloudChannelID"
+ * @uniPlatform {
+ * "app": {
+ * "android": {
+ * "osVer": "4.4",
+ * "uniVer": "√",
+ * "unixVer": "3.97"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * }
+ * }
+ * }
+ */
+ channelId? : string | null,
+ /**
+ * 通知类别
+ * @defaultValue null
+ * @uniPlatform {
+ * "app": {
+ * "android": {
+ * "osVer": "4.4",
+ * "uniVer": "√",
+ * "unixVer": "3.97"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * }
+ * }
+ * }
+ */
+ category? : string | null,
+ /**
+ * 接口调用成功的回调函数
+ * @defaultValue null
+ */
+ success : CreatePushMessageSuccessCallback | null,
+ /**
+ * 接口调用失败的回调函数
+ * @defaultValue null
+ */
+ fail : CreatePushMessageFailCallback | null,
+ /**
+ * 接口调用结束的回调函数(调用成功、失败都会执行)
+ * @defaultValue null
+ */
+ complete : CreatePushMessageCompleteCallback | null
+};
diff --git a/uni_modules/uni-requestPayment-alipay/changelog.md b/uni_modules/uni-requestPayment-alipay/changelog.md
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/uni_modules/uni-requestPayment-alipay/package.json b/uni_modules/uni-requestPayment-alipay/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..b42a495659cefa02f8372b3a97e1acca348bc755
--- /dev/null
+++ b/uni_modules/uni-requestPayment-alipay/package.json
@@ -0,0 +1,93 @@
+{
+ "id": "uni-requestPayment-alipay",
+ "displayName": "uni-requestPayment-alipay",
+ "version": "1.0.0",
+ "description": "uni-requestPayment-alipay",
+ "keywords": [
+ "uni-requestPayment-alipay"
+ ],
+ "repository": "",
+ "engines": {
+ "HBuilderX": "^3.6.8"
+ },
+ "dcloudext": {
+ "type": "uts",
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "",
+ "data": "",
+ "permissions": ""
+ },
+ "npmurl": ""
+ },
+ "uni_modules": {
+ "uni-ext-api": {
+ "uni": {
+ "requestPayment": {
+ "name": "requestPayment",
+ "app": {
+ "js": false,
+ "kotlin": true,
+ "swift": false
+ }
+ }
+ }
+ },
+ "encrypt": [],
+ "dependencies": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "u",
+ "aliyun": "u"
+ },
+ "client": {
+ "Vue": {
+ "vue2": "u",
+ "vue3": "u"
+ },
+ "App": {
+ "app-android": "u",
+ "app-ios": "u"
+ },
+ "H5-mobile": {
+ "Safari": "u",
+ "Android Browser": "u",
+ "微信浏览器(Android)": "u",
+ "QQ浏览器(Android)": "u"
+ },
+ "H5-pc": {
+ "Chrome": "u",
+ "IE": "u",
+ "Edge": "u",
+ "Firefox": "u",
+ "Safari": "u"
+ },
+ "小程序": {
+ "微信": "u",
+ "阿里": "u",
+ "百度": "u",
+ "字节跳动": "u",
+ "QQ": "u",
+ "钉钉": "u",
+ "快手": "u",
+ "飞书": "u",
+ "京东": "u"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/uni_modules/uni-requestPayment-alipay/readme.md b/uni_modules/uni-requestPayment-alipay/readme.md
new file mode 100644
index 0000000000000000000000000000000000000000..f2f72b39e0102c7ba3c7cb146ec929b3a17f1cf2
--- /dev/null
+++ b/uni_modules/uni-requestPayment-alipay/readme.md
@@ -0,0 +1,6 @@
+# uts-location
+### 开发文档
+[UTS 语法](https://uniapp.dcloud.net.cn/tutorial/syntax-uts.html)
+[UTS API插件](https://uniapp.dcloud.net.cn/plugin/uts-plugin.html)
+[UTS 组件插件](https://uniapp.dcloud.net.cn/plugin/uts-component.html)
+[Hello UTS](https://gitcode.net/dcloud/hello-uts)
\ No newline at end of file
diff --git a/uni_modules/uni-requestPayment-alipay/utssdk/app-android/Alipay.uts b/uni_modules/uni-requestPayment-alipay/utssdk/app-android/Alipay.uts
new file mode 100644
index 0000000000000000000000000000000000000000..646f562d745be4cf9a96dc9f0b213f3657a12555
--- /dev/null
+++ b/uni_modules/uni-requestPayment-alipay/utssdk/app-android/Alipay.uts
@@ -0,0 +1,41 @@
+import {
+ RequestPaymentOptions, RequestPaymentSuccess, RequestPaymentComplete
+} from "../interface.uts";
+import { RequestPaymentFailImpl, getErrcode, UniErrors } from '../unierror.uts';
+import PayTask from 'com.alipay.sdk.app.PayTask';
+const defaultErrorCode : number = 700716
+const errorCodeMap : Map = new Map([
+ [8000, 700710],
+ [4000, 700711],
+ [5000, 700712],
+ [6001, 700713],
+ [6002, 700714],
+ [6004, 700715]
+])
+export class Alipay {
+ public requestPayment(options : RequestPaymentOptions) {
+ UTSAndroid.getDispatcher("io").async(function (_) {
+ let alipay = new PayTask(UTSAndroid.getTopPageActivity());
+ let result = alipay.payV2(options.orderInfo, true);
+ UTSAndroid.getDispatcher("main").async(function (_) {
+ let resultStatus : string = result.get("resultStatus") as string
+ if (resultStatus == "9000") {
+ let res : RequestPaymentSuccess = {
+ data: result
+ }
+ options.success?.(res)
+ options.complete?.(res)
+ } else {
+ let code = errorCodeMap[resultStatus.toInt()];
+ if (code == null) {
+ code = defaultErrorCode
+ }
+ let err = new RequestPaymentFailImpl(getErrcode(code));
+ options.fail?.(err)
+ options.complete?.(err)
+ }
+ }, null)
+ }, null)
+
+ }
+};
\ No newline at end of file
diff --git a/uni_modules/uni-requestPayment-alipay/utssdk/app-android/AndroidManifest.xml b/uni_modules/uni-requestPayment-alipay/utssdk/app-android/AndroidManifest.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a78a8c5abfc952081e9ee3900aac5e3a441ea321
--- /dev/null
+++ b/uni_modules/uni-requestPayment-alipay/utssdk/app-android/AndroidManifest.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/uni_modules/uni-requestPayment-alipay/utssdk/app-android/config.json b/uni_modules/uni-requestPayment-alipay/utssdk/app-android/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..4b5f1e5f89a21a7253645d87619a73575d216654
--- /dev/null
+++ b/uni_modules/uni-requestPayment-alipay/utssdk/app-android/config.json
@@ -0,0 +1,5 @@
+{
+ "dependencies": [
+ "com.alipay.sdk:alipaysdk-android:15.8.17"
+ ]
+}
\ No newline at end of file
diff --git a/uni_modules/uni-requestPayment-alipay/utssdk/app-android/index.uts b/uni_modules/uni-requestPayment-alipay/utssdk/app-android/index.uts
new file mode 100644
index 0000000000000000000000000000000000000000..b0722506fcd32e604c4a42c704a4ac53952e1d96
--- /dev/null
+++ b/uni_modules/uni-requestPayment-alipay/utssdk/app-android/index.uts
@@ -0,0 +1,6 @@
+import { RequestPaymentOptions, RequestPayment, RequestPaymentSuccessCallback } from "../interface.uts";
+import { Alipay } from "./Alipay.uts"
+
+export const requestPayment : RequestPayment = function (options : RequestPaymentOptions) {
+ new Alipay().requestPayment(options)
+};
\ No newline at end of file
diff --git a/uni_modules/uni-requestPayment-alipay/utssdk/app-ios/index.uts b/uni_modules/uni-requestPayment-alipay/utssdk/app-ios/index.uts
new file mode 100644
index 0000000000000000000000000000000000000000..0d4cc6e915182ac71fc19e0a1d038193a1bf73b9
--- /dev/null
+++ b/uni_modules/uni-requestPayment-alipay/utssdk/app-ios/index.uts
@@ -0,0 +1,5 @@
+import { RequestPaymentOptions, RequestPayment } from "../interface.uts";
+
+export const requestPayment: RequestPayment = function(options: RequestPaymentOptions) {
+ // TODO
+};
\ No newline at end of file
diff --git a/uni_modules/uni-requestPayment-alipay/utssdk/interface.uts b/uni_modules/uni-requestPayment-alipay/utssdk/interface.uts
new file mode 100644
index 0000000000000000000000000000000000000000..0683c4a0426a99c7bf96fbb8452126748768f1c7
--- /dev/null
+++ b/uni_modules/uni-requestPayment-alipay/utssdk/interface.uts
@@ -0,0 +1,82 @@
+export interface Uni {
+ /**
+ * @description 请求支付
+ * @param {RequestPaymentOptions} options
+ * @example
+ * ```typescript
+ * uni.requestPayment({
+ * provider: "alipay",
+ * orderInfo: "",
+ * success: function (res) {
+ * console.log("支付成功"+JSON.stringify(res))
+ * }
+ * });
+ * ```
+ * @tutorial [](https://uniapp.dcloud.net.cn/api/plugins/payment.html)
+ * @uniPlatform {
+ * "app": {
+ * "android": {
+ * "osVer": "5.0",
+ * "uniVer": "√",
+ * "unixVer": "4.02"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "√",
+ * "unixVer": "x"
+ * }
+ * },
+ * "web": {
+ * "uniVer": "x",
+ * "unixVer": "x"
+ * }
+ * }
+ */
+ requestPayment : RequestPayment;
+}
+/**
+ * 错误码
+ * - 700710 正在处理中,支付结果未知(有可能已经支付成功),请查询商家订单列表中订单的支付状态
+ * - 700711 订单支付失败。
+ * - 700712 重复请求。
+ * - 700713 用户中途取消。
+ * - 700714 网络连接出错。
+ * - 700715 支付结果未知(有可能已经支付成功),请查询商家订单列表中订单的支付状态。
+ * - 700716 其它支付错误。
+ */
+export type RequestPaymentErrorCode = 700710 | 700711 | 700712 | 700713 | 700714 | 700715 | 700716;
+
+export type RequestPayment = (options : RequestPaymentOptions) => void;
+export type RequestPaymentSuccess = {
+ data : object | null
+};
+export type RequestPaymentSuccessCallback = (result : RequestPaymentSuccess) => void;
+export type RequestPaymentFail = IRequestPaymentFail;
+export type RequestPaymentFailCallback = (result : RequestPaymentFail) => void;
+export type RequestPaymentComplete = any
+export interface IRequestPaymentFail extends IUniError {
+ errCode : RequestPaymentErrorCode
+};
+export type RequestPaymentCompleteCallback = (result : RequestPaymentComplete) => void;
+export type RequestPaymentOptions = {
+ /**
+ * 支付服务提供商,目前仅支持支付宝(alipay)
+ */
+ provider : string,
+ /**
+ * 订单数据
+ */
+ orderInfo : string,
+ /**
+ * 接口调用成功的回调函数
+ */
+ success : RequestPaymentSuccessCallback | null,
+ /**
+ * 接口调用失败的回调函数
+ */
+ fail : RequestPaymentFailCallback | null,
+ /**
+ * 接口调用结束的回调函数(调用成功、失败都会执行)
+ */
+ complete ?: RequestPaymentCompleteCallback | null
+};
\ No newline at end of file
diff --git a/uni_modules/uni-requestPayment-alipay/utssdk/unierror.uts b/uni_modules/uni-requestPayment-alipay/utssdk/unierror.uts
new file mode 100644
index 0000000000000000000000000000000000000000..48cd5ee14fe2f9245b8e2b1ffe4c010ff4ba31a4
--- /dev/null
+++ b/uni_modules/uni-requestPayment-alipay/utssdk/unierror.uts
@@ -0,0 +1,60 @@
+import { RequestPaymentErrorCode, IRequestPaymentFail,errorCode } from "./interface.uts"
+
+/**
+ * 错误主题
+ */
+export const UniErrorSubject = 'uni-requestPayment';
+/**
+ * 错误码
+ * @UniError
+ */
+export const UniErrors : Map = new Map([
+ /**
+ * 正在处理中,支付结果未知(有可能已经支付成功),请查询商家订单列表中订单的支付状态。
+ */
+ [700710, 'The payment result is unknown (it may have been successfully paid). Please check the payment status of the order in the merchant order list.'],
+ /**
+ * 订单支付失败。
+ */
+ [700711, 'Order payment failure.'],
+ /**
+ * 重复请求。
+ */
+ [700712, 'Repeat the request.'],
+ /**
+ * 用户中途取消。
+ */
+ [700713, 'The user canceled midway.'],
+ /**
+ * 网络连接出错。
+ */
+ [700714, 'Network connection error.'],
+ /**
+ * 支付结果未知(有可能已经支付成功),请查询商家订单列表中订单的支付状态。
+ */
+ [700715, 'Payment result unknown (may have been successfully paid), please check the payment status of the order in the merchant order list.'],
+
+ /**
+ * 其它支付错误。
+ */
+ [700716, 'Other payment errors.']
+
+]);
+
+
+export function getErrcode(errCode : number) : RequestPaymentErrorCode {
+ const res = UniErrors[errCode];
+ return res == null ? 700716 : errCode;
+}
+
+
+export class RequestPaymentFailImpl extends UniError implements IRequestPaymentFail {
+ constructor(errCode : RequestPaymentErrorCode) {
+ super();
+ this.errSubject = UniErrorSubject;
+ this.errCode = errCode;
+ this.errMsg = UniErrors[errCode] ?? "";
+ }
+}
+
+
diff --git a/uni_modules/uni-storage/utssdk/app-android/index.uts b/uni_modules/uni-storage/utssdk/app-android/index.uts
index f77c411580cab2819cf70636eb60a413ac974e53..7e68f8fe83ed8425e7d543c9d4961ccfdf9b09d7 100644
--- a/uni_modules/uni-storage/utssdk/app-android/index.uts
+++ b/uni_modules/uni-storage/utssdk/app-android/index.uts
@@ -64,10 +64,6 @@ export const setStorageSync: SetStorageSync = function (key: string, data: any)
}
uni_setStorageSync(key, data, (itemKey: string, itemValue: string) => {
let dataString = itemValue
- if (typeof data == "string") {
- // string 类型不进行序列化
- dataString = data as string
- }
dcStorage.performSetItem(UTSAndroid.getUniActivity(), UTSAndroid.getAppId(), itemKey, dataString);
}, (itemKey: string) => {
dcStorage.performRemoveItem(UTSAndroid.getUniActivity(), UTSAndroid.getAppId(), itemKey);
@@ -83,7 +79,6 @@ export const setStorageSync: SetStorageSync = function (key: string, data: any)
function includeKey(key: string): boolean {
let info = DCStorage.getDCStorage(UTSAndroid.getUniActivity()!).performGetAllKeys(UTSAndroid.getAppId())
- console.log(info)
if (info.v != null && info.code == DCStorage.SUCCESS) {
//&& info.v instanceof java.util.List
// @ts-expect-error
diff --git a/uni_modules/uni-storage/utssdk/app-ios/index.uts b/uni_modules/uni-storage/utssdk/app-ios/index.uts
index cf73d4602297a060aceaf3f2e72f3a3183f01ed8..ba552e45535ae39d127d10b5c07c19ad143b2b0e 100644
--- a/uni_modules/uni-storage/utssdk/app-ios/index.uts
+++ b/uni_modules/uni-storage/utssdk/app-ios/index.uts
@@ -27,7 +27,8 @@ class StorageTool {
const path = new URL(fileURLWithPath = dataPath).appendingPathComponent(dc_storage_path_component).absoluteString
let inputData = NSData.init(contentsOfFile = path)
if ( inputData != null ) {
- let data = UTSiOS.dc_AESDecrypt(data = inputData!, key = dc_storage_aes_key)
+ let input = inputData! as Data
+ let data = UTSiOS.dc_AESDecrypt(data = input, key = dc_storage_aes_key)
if (data != null) {
content = NSKeyedUnarchiver.unarchiveObject(with = data!)
}
diff --git a/uni_modules/uni-storage/utssdk/interface.uts b/uni_modules/uni-storage/utssdk/interface.uts
index 68f6b0774d95150d310575bb0f54940f63d2a16f..33562223ce877163548b3fc57fb2909f8092db12 100644
--- a/uni_modules/uni-storage/utssdk/interface.uts
+++ b/uni_modules/uni-storage/utssdk/interface.uts
@@ -251,7 +251,7 @@ export interface Uni {
* @uniPlatform {
* "app": {
* "android": {
- * "osVer": "4.4.4",
+ * "osVer": "5.0",
* "uniVer": "2.0.3",
* "unixVer": "3.9.0"
* },
@@ -260,6 +260,10 @@ export interface Uni {
* "uniVer": "2.0.3",
* "unixVer": "3.9.0"
* }
+ * },
+ * "web": {
+ * "uniVer": "√",
+ * "unixVer": "4.0"
* }
* }
* @uniVersion 2.0.3
@@ -276,7 +280,7 @@ export interface Uni {
* @uniPlatform {
* "app": {
* "android": {
- * "osVer": "4.4.4",
+ * "osVer": "5.0",
* "uniVer": "2.0.3",
* "unixVer": "3.9.0"
* },
@@ -285,6 +289,10 @@ export interface Uni {
* "uniVer": "2.0.3",
* "unixVer": "3.9.0"
* }
+ * },
+ * "web": {
+ * "uniVer": "√",
+ * "unixVer": "4.0"
* }
* }
* @uniVersion 2.0.3
@@ -300,7 +308,7 @@ export interface Uni {
* @uniPlatform {
* "app": {
* "android": {
- * "osVer": "4.4.4",
+ * "osVer": "5.0",
* "uniVer": "2.0.3",
* "unixVer": "3.9.0"
* },
@@ -309,6 +317,10 @@ export interface Uni {
* "uniVer": "2.0.3",
* "unixVer": "3.9.0"
* }
+ * },
+ * "web": {
+ * "uniVer": "√",
+ * "unixVer": "4.0"
* }
* }
* @uniVersion 2.0.3
@@ -324,7 +336,7 @@ export interface Uni {
* @uniPlatform {
* "app": {
* "android": {
- * "osVer": "4.4.4",
+ * "osVer": "5.0",
* "uniVer": "2.0.3",
* "unixVer": "3.9.0"
* },
@@ -333,6 +345,10 @@ export interface Uni {
* "uniVer": "2.0.3",
* "unixVer": "3.9.0"
* }
+ * },
+ * "web": {
+ * "uniVer": "√",
+ * "unixVer": "4.0"
* }
* }
* @uniVersion 2.0.3
@@ -348,7 +364,7 @@ export interface Uni {
* @uniPlatform {
* "app": {
* "android": {
- * "osVer": "4.4.4",
+ * "osVer": "5.0",
* "uniVer": "2.0.3",
* "unixVer": "3.9.0"
* },
@@ -357,6 +373,10 @@ export interface Uni {
* "uniVer": "2.0.3",
* "unixVer": "3.9.0"
* }
+ * },
+ * "web": {
+ * "uniVer": "√",
+ * "unixVer": "4.0"
* }
* }
* @uniVersion 2.0.3
@@ -373,7 +393,7 @@ export interface Uni {
* @uniPlatform {
* "app": {
* "android": {
- * "osVer": "4.4.4",
+ * "osVer": "5.0",
* "uniVer": "2.0.3",
* "unixVer": "3.9.0"
* },
@@ -382,6 +402,10 @@ export interface Uni {
* "uniVer": "2.0.3",
* "unixVer": "3.9.0"
* }
+ * },
+ * "web": {
+ * "uniVer": "√",
+ * "unixVer": "4.0"
* }
* }
* @uniVersion 2.0.3
@@ -399,7 +423,7 @@ export interface Uni {
* @uniPlatform {
* "app": {
* "android": {
- * "osVer": "4.4.4",
+ * "osVer": "5.0",
* "uniVer": "2.0.3",
* "unixVer": "3.9.0"
* },
@@ -408,6 +432,10 @@ export interface Uni {
* "uniVer": "2.0.3",
* "unixVer": "3.9.0"
* }
+ * },
+ * "web": {
+ * "uniVer": "√",
+ * "unixVer": "4.0"
* }
* }
* @uniVersion 2.0.3
@@ -425,7 +453,7 @@ export interface Uni {
* @uniPlatform {
* "app": {
* "android": {
- * "osVer": "4.4.4",
+ * "osVer": "5.0",
* "uniVer": "2.0.3",
* "unixVer": "3.9.0"
* },
@@ -434,6 +462,10 @@ export interface Uni {
* "uniVer": "2.0.3",
* "unixVer": "3.9.0"
* }
+ * },
+ * "web": {
+ * "uniVer": "√",
+ * "unixVer": "4.0"
* }
* }
* @uniVersion 2.0.3
@@ -449,7 +481,7 @@ export interface Uni {
* @uniPlatform {
* "app": {
* "android": {
- * "osVer": "4.4.4",
+ * "osVer": "5.0",
* "uniVer": "2.0.3",
* "unixVer": "3.9.0"
* },
@@ -458,6 +490,10 @@ export interface Uni {
* "uniVer": "2.0.3",
* "unixVer": "3.9.0"
* }
+ * },
+ * "web": {
+ * "uniVer": "√",
+ * "unixVer": "4.0"
* }
* }
* @uniVersion 2.0.3
@@ -473,7 +509,7 @@ export interface Uni {
* @uniPlatform {
* "app": {
* "android": {
- * "osVer": "4.4.4",
+ * "osVer": "5.0",
* "uniVer": "2.0.3",
* "unixVer": "3.9.0"
* },
@@ -481,7 +517,11 @@ export interface Uni {
* "osVer": "9.0",
* "uniVer": "2.0.3",
* "unixVer": "3.9.0"
- * }
+ * }
+ * },
+ * "web": {
+ * "uniVer": "√",
+ * "unixVer": "4.0"
* }
* }
* @uniVersion 2.0.3
diff --git a/uni_modules/uni-storage/utssdk/uniStorageTool.uts b/uni_modules/uni-storage/utssdk/uniStorageTool.uts
index 11b054e059672db2ab708b8978fa54ac9ead17a4..9dc86b95a46ef2dd51697e90af564808f4dcbaaa 100644
--- a/uni_modules/uni-storage/utssdk/uniStorageTool.uts
+++ b/uni_modules/uni-storage/utssdk/uniStorageTool.uts
@@ -68,7 +68,7 @@ function praseGetStorage(type: string, value: string): any | null {
const result = parseValue(object)
if (result != null) {
data = result
- } else if (type != null){
+ } else if (type != null && type != ""){
// 兼容App端历史格式
data = object
if (typeof object == 'string') {
diff --git a/uni_modules/uni-usercapturescreen/index.d.ts b/uni_modules/uni-usercapturescreen/index.d.ts
index debf1a1d781a14f5ef58dec089a42786b7ad837a..dbb3f929122ab33841008ec9774259e70987cdb0 100644
--- a/uni_modules/uni-usercapturescreen/index.d.ts
+++ b/uni_modules/uni-usercapturescreen/index.d.ts
@@ -1,18 +1,157 @@
declare namespace UniNamespace {
- type OnUserCaptureScreenCallback = (res?: { errMsg: string }) => void
+ /**
+ * uni.onUserCaptureScreen/uni.offUserCaptureScreen回调参数
+ */
+ type OnUserCaptureScreenCallbackResult = {
+ /**
+ * 截屏文件路径(仅Android返回)
+ */
+ path ?: string
+ }
+
+ /**
+ * uni.onUserCaptureScreen/uni.offUserCaptureScreen回调函数定义
+ */
+ type UserCaptureScreenCallback = (res : OnUserCaptureScreenCallbackResult) => void
+
+ type OnUserCaptureScreen = (callback : UserCaptureScreenCallback | null) => void
+
+ type OffUserCaptureScreen = (callback : UserCaptureScreenCallback | null) => void
+
+ /**
+ * uni.setUserCaptureScreen成功回调参数
+ */
+ type SetUserCaptureScreenSuccess = {
+
+ }
+
+ /**
+ * uni.setUserCaptureScreen成功回调函数定义
+ */
+ type SetUserCaptureScreenSuccessCallback = (res : SetUserCaptureScreenSuccess) => void
+
+ /**
+ * 错误码
+ * - 12001 "setUserCaptureScreen:system not support"
+ * - 12010 "setUserCaptureScreen:system internal error"
+ */
+ type SetUserCaptureScreenErrorCode = 12001 | 12010;
+
+ /**
+ * SetUserCaptureScreen 的错误回调参数
+ */
+ interface SetUserCaptureScreenFail {
+ errCode : SetUserCaptureScreenErrorCode
+ }
+
+ /**
+ * uni.setUserCaptureScreen失败回调函数定义
+ */
+ type SetUserCaptureScreenFailCallback = (res : SetUserCaptureScreenFail) => void
+
+ /**
+ * uni.setUserCaptureScreen完成回调函数定义
+ */
+ type SetUserCaptureScreenCompleteCallback = (res : any) => void
+
+ /**
+ * uni.setUserCaptureScreen参数
+ */
+ type SetUserCaptureScreenOptions = {
+ /**
+ * true: 允许用户截屏 false: 不允许用户截屏,防止用户截屏到应用页面内容
+ */
+ enable : boolean;
+ /**
+ * 接口调用成功的回调函数
+ */
+ // success : SetUserCaptureScreenSuccessCallback | null,
+ success ?: SetUserCaptureScreenSuccessCallback,
+ /**
+ * 接口调用失败的回调函数
+ */
+ // fail : SetUserCaptureScreenFailCallback | null,
+ fail ?: SetUserCaptureScreenFailCallback,
+ /**
+ * 接口调用结束的回调函数(调用成功、失败都会执行)
+ */
+ // complete : SetUserCaptureScreenSuccessCallback | SetUserCaptureScreenFailCallback | null
+ complete ?: SetUserCaptureScreenCompleteCallback
+ }
+
+ type SetUserCaptureScreen = (options : SetUserCaptureScreenOptions) => void
}
declare interface Uni {
/**
- * 监听用户主动截屏事件,用户使用系统截屏按键截屏时触发此事件。
+ * 开启截屏监听
+ *
+ * @param {UserCaptureScreenCallback} callback
+ * @tutorial https://uniapp.dcloud.net.cn/api/system/capture-screen.html#onusercapturescreen
+ * @uniPlatform {
+ * "app": {
+ * "android": {
+ * "osVer": "4.4.4",
+ * "uniVer": "3.7.7",
+ * "unixVer": "3.9.0"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "3.7.7",
+ * "unixVer": "x"
+ * }
+ * }
+ * }
+ * @uniVersion 3.7.7
+ * @uniVueVersion 2,3 //支持的vue版本
+ * @autotest { expectCallback: true }
+ */
+ onUserCaptureScreen(callback : UniNamespace.UserCaptureScreenCallback | null) : void,
+ /**
+ * 关闭截屏监听
*
- * 文档: [https://uniapp.dcloud.net.cn/api/system/capture-screen.html#onusercapturescreen](https://uniapp.dcloud.net.cn/api/system/capture-screen.html#onusercapturescreen)
+ * @param {UserCaptureScreenCallback} callback
+ * @tutorial https://uniapp.dcloud.net.cn/api/system/capture-screen.html#offusercapturescreen
+ * @uniPlatform {
+ * "app": {
+ * "android": {
+ * "osVer": "4.4.4",
+ * "uniVer": "3.7.7",
+ * "unixVer": "3.9.0"
+ * },
+ * "ios": {
+ * "osVer": "9.0",
+ * "uniVer": "3.7.7",
+ * "unixVer": "x"
+ * }
+ * }
+ * }
+ * @uniVersion 3.7.7
+ * @uniVueVersion 2,3 //支持的vue版本
+ * @autotest { expectCallback: true }
*/
- onUserCaptureScreen(callback: UniNamespace.OnUserCaptureScreenCallback): void;
+ offUserCaptureScreen(callback : UniNamespace.UserCaptureScreenCallback | null) : void,
/**
- * 用户主动截屏事件。取消事件监听。
+ * 设置防截屏
*
- * 文档: [https://uniapp.dcloud.net.cn/api/system/capture-screen.html#offusercapturescreen](https://uniapp.dcloud.net.cn/api/system/capture-screen.html#offusercapturescreen)
+ * @param {SetUserCaptureScreenOptions} options
+ * @tutorial https://uniapp.dcloud.net.cn/api/system/capture-screen.html#setusercapturescreen
+ * @uniPlatform {
+ * "app": {
+ * "android": {
+ * "osVer": "4.4.4",
+ * "uniVer": "3.7.7",
+ * "unixVer": "3.9.0"
+ * },
+ * "ios": {
+ * "osVer": "13.0",
+ * "uniVer": "3.7.7",
+ * "unixVer": "x"
+ * }
+ * }
+ * }
+ * @uniVersion 3.7.7
+ * @uniVueVersion 2,3 //支持的vue版本
*/
- offUserCaptureScreen(callback: UniNamespace.OnUserCaptureScreenCallback): void;
+ setUserCaptureScreen(options : UniNamespace.SetUserCaptureScreenOptions) : void
}
diff --git a/uni_modules/uni-usercapturescreen/package.json b/uni_modules/uni-usercapturescreen/package.json
index 6b099cfa62b02781730789c0102b698f2305ddd3..c55c0f8c8fa27f63b93a7d4cc1e19c67ae22795a 100644
--- a/uni_modules/uni-usercapturescreen/package.json
+++ b/uni_modules/uni-usercapturescreen/package.json
@@ -54,7 +54,7 @@
},
"client": {
"Vue": {
- "vue2": "n",
+ "vue2": "y",
"vue3": "y"
},
"App": {
diff --git a/uni_modules/uni-websocket/utssdk/app-android/index.uts b/uni_modules/uni-websocket/utssdk/app-android/index.uts
index 82c2a9450a449aadf253d4b22b79e8da8077524f..5411aa58f7465034732438ed76074bd5deeafbc0 100644
--- a/uni_modules/uni-websocket/utssdk/app-android/index.uts
+++ b/uni_modules/uni-websocket/utssdk/app-android/index.uts
@@ -14,18 +14,18 @@ export const closeSocket : CloseSocket = (options : CloseSocketOptions) : void =
return WebSocketManager.getInstance().closeSocket(options);
}
-export const onSocketOpen : OnSocketOpen = (callback : OnSocketOpenCallback) : void => {
+export function onSocketOpen(callback : OnSocketOpenCallback) : void {
return WebSocketManager.getInstance().onSocketOpen(callback);
}
-export const onSocketMessage : OnSocketMessage = (callback : OnSocketMessageCallback) : void => {
+export function onSocketMessage(callback : OnSocketMessageCallback) : void {
return WebSocketManager.getInstance().onSocketMessage(callback);
}
-export const onSocketClose : OnSocketClose = (callback : OnSocketCloseCallback) : void => {
+export function onSocketClose(callback : OnSocketCloseCallback) : void {
return WebSocketManager.getInstance().onSocketClose(callback);
}
-export const onSocketError : OnSocketError = (callback : OnSocketErrorCallback) : void => {
+export function onSocketError(callback : OnSocketErrorCallback) : void {
return WebSocketManager.getInstance().onSocketError(callback);
}
\ No newline at end of file
diff --git a/uni_modules/uni-websocket/utssdk/app-android/websocket/WebSocketManager.uts b/uni_modules/uni-websocket/utssdk/app-android/websocket/WebSocketManager.uts
index 6d3982a17b8e7baf4d5f880cf4432ac2b8a3f96c..24cf0c6edf59c3451f7a10325e50581ebca1df3b 100644
--- a/uni_modules/uni-websocket/utssdk/app-android/websocket/WebSocketManager.uts
+++ b/uni_modules/uni-websocket/utssdk/app-android/websocket/WebSocketManager.uts
@@ -1,6 +1,6 @@
import { ConnectSocket, ConnectSocketOptions, SocketTask, SendSocketMessageOptions, CloseSocketOptions, OnSocketOpenCallbackResult, GeneralCallbackResult, OnSocketMessageCallbackResult, OnSocketOpenCallback, OnSocketMessageCallback, OnSocketCloseCallback, OnSocketErrorCallback, OnSocketCloseCallbackResult, OnSocketErrorCallbackResult, ConnectSocketSuccess } from "../../interface";
-import { WebsockerClient } from "./WebsockerClient"
-import UTSAndroid from 'io.dcloud.uts.UTSAndroid';
+import { WebsockerClient } from "./WebsockerClient"
+import { SendSocketMessageFailImpl } from "../../unierror.uts";
class SimpleSocketTask implements SocketTask {
private client : WebsockerClient | null = null;
@@ -46,10 +46,8 @@ class SimpleSocketTask implements SocketTask {
send(options : SendSocketMessageOptions) : void {
if (this.client == null) {
const fail = options.fail;
- const complete = options.complete;
- let result : GeneralCallbackResult = {
- errMsg: "sendSocketMessage:fail WebSocket is not connected"
- }
+ const complete = options.complete;
+ let result = new SendSocketMessageFailImpl(10002);
fail?.(result);
complete?.(result);
return
@@ -158,10 +156,8 @@ export class WebSocketManager implements WebSocketManagerListener {
task.send(options);
} else {
const fail = options.fail;
- const complete = options.complete;
- let result : GeneralCallbackResult = {
- errMsg: "sendSocketMessage:fail WebSocket is not connected"
- }
+ const complete = options.complete;
+ let result = new SendSocketMessageFailImpl(10002);
fail?.(result);
complete?.(result);
}
diff --git a/uni_modules/uni-websocket/utssdk/app-android/websocket/WebsockerClient.uts b/uni_modules/uni-websocket/utssdk/app-android/websocket/WebsockerClient.uts
index fa9d99ff639d0eac3035ff0c736178cd00d8afa2..1095626bbd69b7073d4c29ed3aef5c2c88d0a38c 100644
--- a/uni_modules/uni-websocket/utssdk/app-android/websocket/WebsockerClient.uts
+++ b/uni_modules/uni-websocket/utssdk/app-android/websocket/WebsockerClient.uts
@@ -1,6 +1,6 @@
import { WebSocketManagerListener } from "./WebSocketManager";
import { ConnectSocketOptions, SendSocketMessageOptions, CloseSocketOptions, GeneralCallbackResult } from "../../interface";
-import { ConnectSocketFailImpl } from "../../unierror.uts";
+import { ConnectSocketFailImpl, SendSocketMessageFailImpl } from "../../unierror.uts";
import OkHttpClient from 'okhttp3.OkHttpClient';
import TimeUnit from 'java.util.concurrent.TimeUnit';
import ConnectionPool from 'okhttp3.ConnectionPool';
@@ -10,7 +10,6 @@ import WebSocket from 'okhttp3.WebSocket';
import Response from 'okhttp3.Response';
import Okio from 'okio.Okio';
import ByteString from 'okio.ByteString';
-import UTSAndroid from 'io.dcloud.uts.UTSAndroid';
import Base64 from 'android.util.Base64';
import JSONObject from 'com.alibaba.fastjson.JSONObject';
import Handler from 'android.os.Handler';
@@ -53,25 +52,31 @@ export class WebsockerClient {
const fail = options.fail;
const complete = options.complete;
if (this.websocketDelegate.websocket == null) {
- let result : GeneralCallbackResult = {
- errMsg: "sendSocketMessage:fail WebSocket is not connected"
- }
+ let result = new SendSocketMessageFailImpl(10002);
fail?.(result);
complete?.(result);
return
}
try {
- this.websocketDelegate.websocket?.send(options.data as string);
+ const sendResult = this.websocketDelegate.websocket?.send(options.data as string);
+ if(sendResult != null && !sendResult){
+ let result = new SendSocketMessageFailImpl(10001);
+ fail?.(result);
+ complete?.(result);
+ this.listener?.onError(this, "The queue memory exceeds 16 MiB and the connection will be closed");
+ return
+ }
+
let result : GeneralCallbackResult = {
errMsg: "sendSocketMessage:ok"
}
success?.(result);
complete?.(result);
} catch (e : Exception) {
- let result : GeneralCallbackResult = {
- errMsg: e.message ?? ""
- }
+ let result = new SendSocketMessageFailImpl(602001);
+ const utsError = new UTSError(e.message ?? "")
+ result.cause = utsError
fail?.(result);
complete?.(result);
this.listener?.onError(this, e.message ?? "");
@@ -175,7 +180,7 @@ class WebsocketDelegate {
}
class RunnableTask extends Runnable {
- private callback : () => void | null;
+ private callback : (() => void) | null;
private looper : Looper | null = null;
constructor(looper : Looper | null, callback : () => void) {
super();
diff --git a/uni_modules/uni-websocket/utssdk/app-ios/config.json b/uni_modules/uni-websocket/utssdk/app-ios/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..a1eb6ee72f7b009e826e8a1c57874fc2b30b67fa
--- /dev/null
+++ b/uni_modules/uni-websocket/utssdk/app-ios/config.json
@@ -0,0 +1,3 @@
+{
+ "deploymentTarget": "11.0"
+}
\ No newline at end of file
diff --git a/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/Info.plist b/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/Info.plist
new file mode 100644
index 0000000000000000000000000000000000000000..2627129b6a56a0cf569791e9f2948c35942df832
--- /dev/null
+++ b/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/Info.plist
@@ -0,0 +1,40 @@
+
+
+
+
+ AvailableLibraries
+
+
+ LibraryIdentifier
+ ios-arm64
+ LibraryPath
+ Starscream.framework
+ SupportedArchitectures
+
+ arm64
+
+ SupportedPlatform
+ ios
+
+
+ LibraryIdentifier
+ ios-arm64_x86_64-simulator
+ LibraryPath
+ Starscream.framework
+ SupportedArchitectures
+
+ arm64
+ x86_64
+
+ SupportedPlatform
+ ios
+ SupportedPlatformVariant
+ simulator
+
+
+ CFBundlePackageType
+ XFWK
+ XCFrameworkFormatVersion
+ 1.0
+
+
diff --git a/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64/Starscream.framework/Headers/Starscream-Swift.h b/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64/Starscream.framework/Headers/Starscream-Swift.h
new file mode 100644
index 0000000000000000000000000000000000000000..dd9198c88ec0538f028559f306989f1b2c36b13d
--- /dev/null
+++ b/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64/Starscream.framework/Headers/Starscream-Swift.h
@@ -0,0 +1,289 @@
+#if 0
+#elif defined(__arm64__) && __arm64__
+// Generated by Apple Swift version 5.7.2 (swiftlang-5.7.2.135.5 clang-1400.0.29.51)
+#ifndef STARSCREAM_SWIFT_H
+#define STARSCREAM_SWIFT_H
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wgcc-compat"
+
+#if !defined(__has_include)
+# define __has_include(x) 0
+#endif
+#if !defined(__has_attribute)
+# define __has_attribute(x) 0
+#endif
+#if !defined(__has_feature)
+# define __has_feature(x) 0
+#endif
+#if !defined(__has_warning)
+# define __has_warning(x) 0
+#endif
+
+#if __has_include()
+# include
+#endif
+
+#pragma clang diagnostic ignored "-Wduplicate-method-match"
+#pragma clang diagnostic ignored "-Wauto-import"
+#if defined(__OBJC__)
+#include
+#endif
+#if defined(__cplusplus)
+#include
+#include
+#include
+#else
+#include
+#include
+#include
+#endif
+
+#if !defined(SWIFT_TYPEDEFS)
+# define SWIFT_TYPEDEFS 1
+# if __has_include()
+# include
+# elif !defined(__cplusplus)
+typedef uint_least16_t char16_t;
+typedef uint_least32_t char32_t;
+# endif
+typedef float swift_float2 __attribute__((__ext_vector_type__(2)));
+typedef float swift_float3 __attribute__((__ext_vector_type__(3)));
+typedef float swift_float4 __attribute__((__ext_vector_type__(4)));
+typedef double swift_double2 __attribute__((__ext_vector_type__(2)));
+typedef double swift_double3 __attribute__((__ext_vector_type__(3)));
+typedef double swift_double4 __attribute__((__ext_vector_type__(4)));
+typedef int swift_int2 __attribute__((__ext_vector_type__(2)));
+typedef int swift_int3 __attribute__((__ext_vector_type__(3)));
+typedef int swift_int4 __attribute__((__ext_vector_type__(4)));
+typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2)));
+typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3)));
+typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4)));
+#endif
+
+#if !defined(SWIFT_PASTE)
+# define SWIFT_PASTE_HELPER(x, y) x##y
+# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y)
+#endif
+#if !defined(SWIFT_METATYPE)
+# define SWIFT_METATYPE(X) Class
+#endif
+#if !defined(SWIFT_CLASS_PROPERTY)
+# if __has_feature(objc_class_property)
+# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__
+# else
+# define SWIFT_CLASS_PROPERTY(...)
+# endif
+#endif
+
+#if __has_attribute(objc_runtime_name)
+# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
+#else
+# define SWIFT_RUNTIME_NAME(X)
+#endif
+#if __has_attribute(swift_name)
+# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X)))
+#else
+# define SWIFT_COMPILE_NAME(X)
+#endif
+#if __has_attribute(objc_method_family)
+# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X)))
+#else
+# define SWIFT_METHOD_FAMILY(X)
+#endif
+#if __has_attribute(noescape)
+# define SWIFT_NOESCAPE __attribute__((noescape))
+#else
+# define SWIFT_NOESCAPE
+#endif
+#if __has_attribute(ns_consumed)
+# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed))
+#else
+# define SWIFT_RELEASES_ARGUMENT
+#endif
+#if __has_attribute(warn_unused_result)
+# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
+#else
+# define SWIFT_WARN_UNUSED_RESULT
+#endif
+#if __has_attribute(noreturn)
+# define SWIFT_NORETURN __attribute__((noreturn))
+#else
+# define SWIFT_NORETURN
+#endif
+#if !defined(SWIFT_CLASS_EXTRA)
+# define SWIFT_CLASS_EXTRA
+#endif
+#if !defined(SWIFT_PROTOCOL_EXTRA)
+# define SWIFT_PROTOCOL_EXTRA
+#endif
+#if !defined(SWIFT_ENUM_EXTRA)
+# define SWIFT_ENUM_EXTRA
+#endif
+#if !defined(SWIFT_CLASS)
+# if __has_attribute(objc_subclassing_restricted)
+# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA
+# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
+# else
+# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
+# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
+# endif
+#endif
+#if !defined(SWIFT_RESILIENT_CLASS)
+# if __has_attribute(objc_class_stub)
+# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub))
+# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME)
+# else
+# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME)
+# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME)
+# endif
+#endif
+
+#if !defined(SWIFT_PROTOCOL)
+# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
+# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
+#endif
+
+#if !defined(SWIFT_EXTENSION)
+# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__)
+#endif
+
+#if !defined(OBJC_DESIGNATED_INITIALIZER)
+# if __has_attribute(objc_designated_initializer)
+# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
+# else
+# define OBJC_DESIGNATED_INITIALIZER
+# endif
+#endif
+#if !defined(SWIFT_ENUM_ATTR)
+# if defined(__has_attribute) && __has_attribute(enum_extensibility)
+# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility)))
+# else
+# define SWIFT_ENUM_ATTR(_extensibility)
+# endif
+#endif
+#if !defined(SWIFT_ENUM)
+# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
+# if __has_feature(generalized_swift_name)
+# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
+# else
+# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility)
+# endif
+#endif
+#if !defined(SWIFT_UNAVAILABLE)
+# define SWIFT_UNAVAILABLE __attribute__((unavailable))
+#endif
+#if !defined(SWIFT_UNAVAILABLE_MSG)
+# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg)))
+#endif
+#if !defined(SWIFT_AVAILABILITY)
+# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__)))
+#endif
+#if !defined(SWIFT_WEAK_IMPORT)
+# define SWIFT_WEAK_IMPORT __attribute__((weak_import))
+#endif
+#if !defined(SWIFT_DEPRECATED)
+# define SWIFT_DEPRECATED __attribute__((deprecated))
+#endif
+#if !defined(SWIFT_DEPRECATED_MSG)
+# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__)))
+#endif
+#if __has_feature(attribute_diagnose_if_objc)
+# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning")))
+#else
+# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg)
+#endif
+#if defined(__OBJC__)
+#if !defined(IBSegueAction)
+# define IBSegueAction
+#endif
+#endif
+#if !defined(SWIFT_EXTERN)
+# if defined(__cplusplus)
+# define SWIFT_EXTERN extern "C"
+# else
+# define SWIFT_EXTERN extern
+# endif
+#endif
+#if !defined(SWIFT_CALL)
+# define SWIFT_CALL __attribute__((swiftcall))
+#endif
+#if defined(__cplusplus)
+#if !defined(SWIFT_NOEXCEPT)
+# define SWIFT_NOEXCEPT noexcept
+#endif
+#else
+#if !defined(SWIFT_NOEXCEPT)
+# define SWIFT_NOEXCEPT
+#endif
+#endif
+#if defined(__cplusplus)
+#if !defined(SWIFT_CXX_INT_DEFINED)
+#define SWIFT_CXX_INT_DEFINED
+namespace swift {
+using Int = ptrdiff_t;
+using UInt = size_t;
+}
+#endif
+#endif
+#if defined(__OBJC__)
+#if __has_feature(modules)
+#if __has_warning("-Watimport-in-framework-header")
+#pragma clang diagnostic ignored "-Watimport-in-framework-header"
+#endif
+@import Foundation;
+@import ObjectiveC;
+#endif
+
+#endif
+#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch"
+#pragma clang diagnostic ignored "-Wduplicate-method-arg"
+#if __has_warning("-Wpragma-clang-attribute")
+# pragma clang diagnostic ignored "-Wpragma-clang-attribute"
+#endif
+#pragma clang diagnostic ignored "-Wunknown-pragmas"
+#pragma clang diagnostic ignored "-Wnullability"
+#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension"
+
+#if __has_attribute(external_source_symbol)
+# pragma push_macro("any")
+# undef any
+# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="Starscream",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol))
+# pragma pop_macro("any")
+#endif
+
+#if defined(__OBJC__)
+@class NSStream;
+
+SWIFT_CLASS("_TtC10Starscream19FoundationTransport")
+@interface FoundationTransport : NSObject
+- (void)stream:(NSStream * _Nonnull)aStream handleEvent:(NSStreamEvent)eventCode;
+- (nonnull instancetype)init SWIFT_UNAVAILABLE;
++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
+@end
+
+@class NSURLSession;
+@class NSURLSessionWebSocketTask;
+@class NSString;
+@class NSData;
+@class NSURLSessionTask;
+
+SWIFT_CLASS("_TtC10Starscream12NativeEngine") SWIFT_AVAILABILITY(tvos,introduced=13.0) SWIFT_AVAILABILITY(watchos,introduced=6.0) SWIFT_AVAILABILITY(ios,introduced=13.0) SWIFT_AVAILABILITY(macos,introduced=10.15)
+@interface NativeEngine : NSObject
+- (void)URLSession:(NSURLSession * _Nonnull)session webSocketTask:(NSURLSessionWebSocketTask * _Nonnull)webSocketTask didOpenWithProtocol:(NSString * _Nullable)protocol;
+- (void)URLSession:(NSURLSession * _Nonnull)session webSocketTask:(NSURLSessionWebSocketTask * _Nonnull)webSocketTask didCloseWithCode:(NSURLSessionWebSocketCloseCode)closeCode reason:(NSData * _Nullable)reason;
+- (void)URLSession:(NSURLSession * _Nonnull)session task:(NSURLSessionTask * _Nonnull)task didCompleteWithError:(NSError * _Nullable)error;
+- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
+@end
+
+#endif
+#if defined(__cplusplus)
+#endif
+#if __has_attribute(external_source_symbol)
+# pragma clang attribute pop
+#endif
+#pragma clang diagnostic pop
+#endif
+
+#else
+#error unsupported Swift architecture
+#endif
diff --git a/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64/Starscream.framework/Headers/Starscream-umbrella.h b/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64/Starscream.framework/Headers/Starscream-umbrella.h
new file mode 100644
index 0000000000000000000000000000000000000000..7bffee0b3cb27f3f8e6f321138357f1a21addc47
--- /dev/null
+++ b/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64/Starscream.framework/Headers/Starscream-umbrella.h
@@ -0,0 +1,16 @@
+#ifdef __OBJC__
+#import
+#else
+#ifndef FOUNDATION_EXPORT
+#if defined(__cplusplus)
+#define FOUNDATION_EXPORT extern "C"
+#else
+#define FOUNDATION_EXPORT extern
+#endif
+#endif
+#endif
+
+
+FOUNDATION_EXPORT double StarscreamVersionNumber;
+FOUNDATION_EXPORT const unsigned char StarscreamVersionString[];
+
diff --git a/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64/Starscream.framework/Info.plist b/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64/Starscream.framework/Info.plist
new file mode 100644
index 0000000000000000000000000000000000000000..a70a2ba904c0044bd20d5d7445f9caf11138f4d6
Binary files /dev/null and b/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64/Starscream.framework/Info.plist differ
diff --git a/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64/Starscream.framework/Modules/Starscream.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo b/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64/Starscream.framework/Modules/Starscream.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo
new file mode 100644
index 0000000000000000000000000000000000000000..42b9eda5de35ee349e4a0591ad1dcfe84c4c4b03
Binary files /dev/null and b/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64/Starscream.framework/Modules/Starscream.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo differ
diff --git a/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-ios.abi.json b/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-ios.abi.json
new file mode 100644
index 0000000000000000000000000000000000000000..b1b05261d91771e184394a9c78c77a6c88d8d469
--- /dev/null
+++ b/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-ios.abi.json
@@ -0,0 +1,13868 @@
+{
+ "ABIRoot": {
+ "kind": "Root",
+ "name": "TopLevel",
+ "printedName": "TopLevel",
+ "children": [
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "CompressionHandler",
+ "printedName": "CompressionHandler",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "load",
+ "printedName": "load(headers:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Dictionary",
+ "printedName": "[Swift.String : Swift.String]",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "usr": "s:SD"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream18CompressionHandlerP4load7headersySDyS2SG_tF",
+ "mangledName": "$s10Starscream18CompressionHandlerP4load7headersySDyS2SG_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.CompressionHandler>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "decompress",
+ "printedName": "decompress(data:isFinal:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Foundation.Data?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "usr": "s:Sq"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream18CompressionHandlerP10decompress4data7isFinal10Foundation4DataVSgAI_SbtF",
+ "mangledName": "$s10Starscream18CompressionHandlerP10decompress4data7isFinal10Foundation4DataVSgAI_SbtF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.CompressionHandler>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "compress",
+ "printedName": "compress(data:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Foundation.Data?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "usr": "s:Sq"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream18CompressionHandlerP8compress4data10Foundation4DataVSgAH_tF",
+ "mangledName": "$s10Starscream18CompressionHandlerP8compress4data10Foundation4DataVSgAH_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.CompressionHandler>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream18CompressionHandlerP",
+ "mangledName": "$s10Starscream18CompressionHandlerP",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "EngineDelegate",
+ "printedName": "EngineDelegate",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "didReceive",
+ "printedName": "didReceive(event:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocketEvent",
+ "printedName": "Starscream.WebSocketEvent",
+ "usr": "s:10Starscream14WebSocketEventO"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream14EngineDelegateP10didReceive5eventyAA14WebSocketEventO_tF",
+ "mangledName": "$s10Starscream14EngineDelegateP10didReceive5eventyAA14WebSocketEventO_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.EngineDelegate>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream14EngineDelegateP",
+ "mangledName": "$s10Starscream14EngineDelegateP",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 : AnyObject>",
+ "sugared_genericSig": "",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "Engine",
+ "printedName": "Engine",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "register",
+ "printedName": "register(delegate:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "EngineDelegate",
+ "printedName": "Starscream.EngineDelegate",
+ "usr": "s:10Starscream14EngineDelegateP"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream6EngineP8register8delegateyAA0B8Delegate_p_tF",
+ "mangledName": "$s10Starscream6EngineP8register8delegateyAA0B8Delegate_p_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Engine>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "start",
+ "printedName": "start(request:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "URLRequest",
+ "printedName": "Foundation.URLRequest",
+ "usr": "s:10Foundation10URLRequestV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream6EngineP5start7requesty10Foundation10URLRequestV_tF",
+ "mangledName": "$s10Starscream6EngineP5start7requesty10Foundation10URLRequestV_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Engine>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "stop",
+ "printedName": "stop(closeCode:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream6EngineP4stop9closeCodeys6UInt16V_tF",
+ "mangledName": "$s10Starscream6EngineP4stop9closeCodeys6UInt16V_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Engine>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "forceStop",
+ "printedName": "forceStop()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream6EngineP9forceStopyyF",
+ "mangledName": "$s10Starscream6EngineP9forceStopyyF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Engine>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "write",
+ "printedName": "write(data:opcode:completion:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "(() -> ())?",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "() -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream6EngineP5write4data6opcode10completiony10Foundation4DataV_AA11FrameOpCodeOyycSgtF",
+ "mangledName": "$s10Starscream6EngineP5write4data6opcode10completiony10Foundation4DataV_AA11FrameOpCodeOyycSgtF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Engine>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "write",
+ "printedName": "write(string:completion:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "(() -> ())?",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "() -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream6EngineP5write6string10completionySS_yycSgtF",
+ "mangledName": "$s10Starscream6EngineP5write6string10completionySS_yycSgtF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Engine>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream6EngineP",
+ "mangledName": "$s10Starscream6EngineP",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "FoundationHTTPHandler",
+ "printedName": "FoundationHTTPHandler",
+ "children": [
+ {
+ "kind": "Constructor",
+ "name": "init",
+ "printedName": "init()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FoundationHTTPHandler",
+ "printedName": "Starscream.FoundationHTTPHandler",
+ "usr": "s:10Starscream21FoundationHTTPHandlerC"
+ }
+ ],
+ "declKind": "Constructor",
+ "usr": "s:10Starscream21FoundationHTTPHandlerCACycfc",
+ "mangledName": "$s10Starscream21FoundationHTTPHandlerCACycfc",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "init_kind": "Designated"
+ },
+ {
+ "kind": "Function",
+ "name": "convert",
+ "printedName": "convert(request:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "URLRequest",
+ "printedName": "Foundation.URLRequest",
+ "usr": "s:10Foundation10URLRequestV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream21FoundationHTTPHandlerC7convert7request0B04DataVAF10URLRequestV_tF",
+ "mangledName": "$s10Starscream21FoundationHTTPHandlerC7convert7request0B04DataVAF10URLRequestV_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "parse",
+ "printedName": "parse(data:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream21FoundationHTTPHandlerC5parse4dataSi0B04DataV_tF",
+ "mangledName": "$s10Starscream21FoundationHTTPHandlerC5parse4dataSi0B04DataV_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "register",
+ "printedName": "register(delegate:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "HTTPHandlerDelegate",
+ "printedName": "Starscream.HTTPHandlerDelegate",
+ "usr": "s:10Starscream19HTTPHandlerDelegateP"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream21FoundationHTTPHandlerC8register8delegateyAA0C8Delegate_p_tF",
+ "mangledName": "$s10Starscream21FoundationHTTPHandlerC8register8delegateyAA0C8Delegate_p_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Class",
+ "usr": "s:10Starscream21FoundationHTTPHandlerC",
+ "mangledName": "$s10Starscream21FoundationHTTPHandlerC",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "HTTPHandler",
+ "printedName": "HTTPHandler",
+ "usr": "s:10Starscream11HTTPHandlerP",
+ "mangledName": "$s10Starscream11HTTPHandlerP"
+ }
+ ]
+ },
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "FoundationHTTPServerHandler",
+ "printedName": "FoundationHTTPServerHandler",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "register",
+ "printedName": "register(delegate:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "HTTPServerDelegate",
+ "printedName": "Starscream.HTTPServerDelegate",
+ "usr": "s:10Starscream18HTTPServerDelegateP"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream27FoundationHTTPServerHandlerC8register8delegateyAA0C8Delegate_p_tF",
+ "mangledName": "$s10Starscream27FoundationHTTPServerHandlerC8register8delegateyAA0C8Delegate_p_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "createResponse",
+ "printedName": "createResponse(headers:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Dictionary",
+ "printedName": "[Swift.String : Swift.String]",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "usr": "s:SD"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream27FoundationHTTPServerHandlerC14createResponse7headers0B04DataVSDyS2SG_tF",
+ "mangledName": "$s10Starscream27FoundationHTTPServerHandlerC14createResponse7headers0B04DataVSDyS2SG_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "parse",
+ "printedName": "parse(data:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream27FoundationHTTPServerHandlerC5parse4datay0B04DataV_tF",
+ "mangledName": "$s10Starscream27FoundationHTTPServerHandlerC5parse4datay0B04DataV_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Class",
+ "usr": "s:10Starscream27FoundationHTTPServerHandlerC",
+ "mangledName": "$s10Starscream27FoundationHTTPServerHandlerC",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "hasMissingDesignatedInitializers": true,
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "HTTPServerHandler",
+ "printedName": "HTTPServerHandler",
+ "usr": "s:10Starscream17HTTPServerHandlerP",
+ "mangledName": "$s10Starscream17HTTPServerHandlerP"
+ }
+ ]
+ },
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "Import",
+ "name": "CommonCrypto",
+ "printedName": "CommonCrypto",
+ "declKind": "Import",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "FoundationSecurityError",
+ "printedName": "FoundationSecurityError",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "invalidRequest",
+ "printedName": "invalidRequest",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FoundationSecurityError.Type) -> Starscream.FoundationSecurityError",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FoundationSecurityError",
+ "printedName": "Starscream.FoundationSecurityError",
+ "usr": "s:10Starscream23FoundationSecurityErrorO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FoundationSecurityError.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FoundationSecurityError",
+ "printedName": "Starscream.FoundationSecurityError",
+ "usr": "s:10Starscream23FoundationSecurityErrorO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream23FoundationSecurityErrorO14invalidRequestyA2CmF",
+ "mangledName": "$s10Starscream23FoundationSecurityErrorO14invalidRequestyA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Function",
+ "name": "==",
+ "printedName": "==(_:_:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "FoundationSecurityError",
+ "printedName": "Starscream.FoundationSecurityError",
+ "usr": "s:10Starscream23FoundationSecurityErrorO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "FoundationSecurityError",
+ "printedName": "Starscream.FoundationSecurityError",
+ "usr": "s:10Starscream23FoundationSecurityErrorO"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream23FoundationSecurityErrorO2eeoiySbAC_ACtFZ",
+ "mangledName": "$s10Starscream23FoundationSecurityErrorO2eeoiySbAC_ACtFZ",
+ "moduleName": "Starscream",
+ "static": true,
+ "implicit": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Var",
+ "name": "hashValue",
+ "printedName": "hashValue",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ }
+ ],
+ "declKind": "Var",
+ "usr": "s:10Starscream23FoundationSecurityErrorO9hashValueSivp",
+ "mangledName": "$s10Starscream23FoundationSecurityErrorO9hashValueSivp",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessors": [
+ {
+ "kind": "Accessor",
+ "name": "Get",
+ "printedName": "Get()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream23FoundationSecurityErrorO9hashValueSivg",
+ "mangledName": "$s10Starscream23FoundationSecurityErrorO9hashValueSivg",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "get"
+ }
+ ]
+ },
+ {
+ "kind": "Function",
+ "name": "hash",
+ "printedName": "hash(into:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Hasher",
+ "printedName": "Swift.Hasher",
+ "paramValueOwnership": "InOut",
+ "usr": "s:s6HasherV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream23FoundationSecurityErrorO4hash4intoys6HasherVz_tF",
+ "mangledName": "$s10Starscream23FoundationSecurityErrorO4hash4intoys6HasherVz_tF",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Enum",
+ "usr": "s:10Starscream23FoundationSecurityErrorO",
+ "mangledName": "$s10Starscream23FoundationSecurityErrorO",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "Equatable",
+ "printedName": "Equatable",
+ "usr": "s:SQ",
+ "mangledName": "$sSQ"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Hashable",
+ "printedName": "Hashable",
+ "usr": "s:SH",
+ "mangledName": "$sSH"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Error",
+ "printedName": "Error",
+ "usr": "s:s5ErrorP",
+ "mangledName": "$ss5ErrorP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Sendable",
+ "printedName": "Sendable",
+ "usr": "s:s8SendableP",
+ "mangledName": "$ss8SendableP"
+ }
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "FoundationSecurity",
+ "printedName": "FoundationSecurity",
+ "children": [
+ {
+ "kind": "Constructor",
+ "name": "init",
+ "printedName": "init(allowSelfSigned:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FoundationSecurity",
+ "printedName": "Starscream.FoundationSecurity",
+ "usr": "s:10Starscream18FoundationSecurityC"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "hasDefaultArg": true,
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Constructor",
+ "usr": "s:10Starscream18FoundationSecurityC15allowSelfSignedACSb_tcfc",
+ "mangledName": "$s10Starscream18FoundationSecurityC15allowSelfSignedACSb_tcfc",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "init_kind": "Designated"
+ },
+ {
+ "kind": "Function",
+ "name": "evaluateTrust",
+ "printedName": "evaluateTrust(trust:domain:completion:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "SecTrust",
+ "printedName": "Security.SecTrust",
+ "usr": "c:@T@SecTrustRef"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Swift.String?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "usr": "s:Sq"
+ },
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.PinningState) -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "PinningState",
+ "printedName": "Starscream.PinningState",
+ "usr": "s:10Starscream12PinningStateO"
+ }
+ ],
+ "typeAttributes": [
+ "noescape"
+ ]
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream18FoundationSecurityC13evaluateTrust5trust6domain10completionySo03SecE3Refa_SSSgyAA12PinningStateOXEtF",
+ "mangledName": "$s10Starscream18FoundationSecurityC13evaluateTrust5trust6domain10completionySo03SecE3Refa_SSSgyAA12PinningStateOXEtF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "isFromExtension": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "validate",
+ "printedName": "validate(headers:key:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Swift.Error?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Error",
+ "printedName": "Swift.Error",
+ "usr": "s:s5ErrorP"
+ }
+ ],
+ "usr": "s:Sq"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Dictionary",
+ "printedName": "[Swift.String : Swift.String]",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "usr": "s:SD"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream18FoundationSecurityC8validate7headers3keys5Error_pSgSDyS2SG_SStF",
+ "mangledName": "$s10Starscream18FoundationSecurityC8validate7headers3keys5Error_pSgSDyS2SG_SStF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "isFromExtension": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Class",
+ "usr": "s:10Starscream18FoundationSecurityC",
+ "mangledName": "$s10Starscream18FoundationSecurityC",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "CertificatePinning",
+ "printedName": "CertificatePinning",
+ "usr": "s:10Starscream18CertificatePinningP",
+ "mangledName": "$s10Starscream18CertificatePinningP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "HeaderValidator",
+ "printedName": "HeaderValidator",
+ "usr": "s:10Starscream15HeaderValidatorP",
+ "mangledName": "$s10Starscream15HeaderValidatorP"
+ }
+ ]
+ },
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "FoundationTransportError",
+ "printedName": "FoundationTransportError",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "invalidRequest",
+ "printedName": "invalidRequest",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FoundationTransportError.Type) -> Starscream.FoundationTransportError",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FoundationTransportError",
+ "printedName": "Starscream.FoundationTransportError",
+ "usr": "s:10Starscream24FoundationTransportErrorO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FoundationTransportError.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FoundationTransportError",
+ "printedName": "Starscream.FoundationTransportError",
+ "usr": "s:10Starscream24FoundationTransportErrorO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream24FoundationTransportErrorO14invalidRequestyA2CmF",
+ "mangledName": "$s10Starscream24FoundationTransportErrorO14invalidRequestyA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "invalidOutputStream",
+ "printedName": "invalidOutputStream",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FoundationTransportError.Type) -> Starscream.FoundationTransportError",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FoundationTransportError",
+ "printedName": "Starscream.FoundationTransportError",
+ "usr": "s:10Starscream24FoundationTransportErrorO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FoundationTransportError.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FoundationTransportError",
+ "printedName": "Starscream.FoundationTransportError",
+ "usr": "s:10Starscream24FoundationTransportErrorO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream24FoundationTransportErrorO19invalidOutputStreamyA2CmF",
+ "mangledName": "$s10Starscream24FoundationTransportErrorO19invalidOutputStreamyA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "timeout",
+ "printedName": "timeout",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FoundationTransportError.Type) -> Starscream.FoundationTransportError",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FoundationTransportError",
+ "printedName": "Starscream.FoundationTransportError",
+ "usr": "s:10Starscream24FoundationTransportErrorO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FoundationTransportError.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FoundationTransportError",
+ "printedName": "Starscream.FoundationTransportError",
+ "usr": "s:10Starscream24FoundationTransportErrorO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream24FoundationTransportErrorO7timeoutyA2CmF",
+ "mangledName": "$s10Starscream24FoundationTransportErrorO7timeoutyA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Function",
+ "name": "==",
+ "printedName": "==(_:_:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "FoundationTransportError",
+ "printedName": "Starscream.FoundationTransportError",
+ "usr": "s:10Starscream24FoundationTransportErrorO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "FoundationTransportError",
+ "printedName": "Starscream.FoundationTransportError",
+ "usr": "s:10Starscream24FoundationTransportErrorO"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream24FoundationTransportErrorO2eeoiySbAC_ACtFZ",
+ "mangledName": "$s10Starscream24FoundationTransportErrorO2eeoiySbAC_ACtFZ",
+ "moduleName": "Starscream",
+ "static": true,
+ "implicit": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Var",
+ "name": "hashValue",
+ "printedName": "hashValue",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ }
+ ],
+ "declKind": "Var",
+ "usr": "s:10Starscream24FoundationTransportErrorO9hashValueSivp",
+ "mangledName": "$s10Starscream24FoundationTransportErrorO9hashValueSivp",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessors": [
+ {
+ "kind": "Accessor",
+ "name": "Get",
+ "printedName": "Get()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream24FoundationTransportErrorO9hashValueSivg",
+ "mangledName": "$s10Starscream24FoundationTransportErrorO9hashValueSivg",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "get"
+ }
+ ]
+ },
+ {
+ "kind": "Function",
+ "name": "hash",
+ "printedName": "hash(into:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Hasher",
+ "printedName": "Swift.Hasher",
+ "paramValueOwnership": "InOut",
+ "usr": "s:s6HasherV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream24FoundationTransportErrorO4hash4intoys6HasherVz_tF",
+ "mangledName": "$s10Starscream24FoundationTransportErrorO4hash4intoys6HasherVz_tF",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Enum",
+ "usr": "s:10Starscream24FoundationTransportErrorO",
+ "mangledName": "$s10Starscream24FoundationTransportErrorO",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "Equatable",
+ "printedName": "Equatable",
+ "usr": "s:SQ",
+ "mangledName": "$sSQ"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Hashable",
+ "printedName": "Hashable",
+ "usr": "s:SH",
+ "mangledName": "$sSH"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Error",
+ "printedName": "Error",
+ "usr": "s:s5ErrorP",
+ "mangledName": "$ss5ErrorP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Sendable",
+ "printedName": "Sendable",
+ "usr": "s:s8SendableP",
+ "mangledName": "$ss8SendableP"
+ }
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "FoundationTransport",
+ "printedName": "FoundationTransport",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "usingTLS",
+ "printedName": "usingTLS",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Var",
+ "usr": "s:10Starscream19FoundationTransportC8usingTLSSbvp",
+ "mangledName": "$s10Starscream19FoundationTransportC8usingTLSSbvp",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "accessors": [
+ {
+ "kind": "Accessor",
+ "name": "Get",
+ "printedName": "Get()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream19FoundationTransportC8usingTLSSbvg",
+ "mangledName": "$s10Starscream19FoundationTransportC8usingTLSSbvg",
+ "moduleName": "Starscream",
+ "accessorKind": "get"
+ }
+ ]
+ },
+ {
+ "kind": "Constructor",
+ "name": "init",
+ "printedName": "init(streamConfiguration:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FoundationTransport",
+ "printedName": "Starscream.FoundationTransport",
+ "usr": "c:@M@Starscream@objc(cs)FoundationTransport"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "((Foundation.InputStream, Foundation.OutputStream) -> ())?",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Foundation.InputStream, Foundation.OutputStream) -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Tuple",
+ "printedName": "(Foundation.InputStream, Foundation.OutputStream)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "InputStream",
+ "printedName": "Foundation.InputStream",
+ "usr": "c:objc(cs)NSInputStream"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "OutputStream",
+ "printedName": "Foundation.OutputStream",
+ "usr": "c:objc(cs)NSOutputStream"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "hasDefaultArg": true,
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Constructor",
+ "usr": "s:10Starscream19FoundationTransportC19streamConfigurationACySo13NSInputStreamC_So08NSOutputG0CtcSg_tcfc",
+ "mangledName": "$s10Starscream19FoundationTransportC19streamConfigurationACySo13NSInputStreamC_So08NSOutputG0CtcSg_tcfc",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "init_kind": "Designated"
+ },
+ {
+ "kind": "Function",
+ "name": "connect",
+ "printedName": "connect(url:timeout:certificatePinning:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "URL",
+ "printedName": "Foundation.URL",
+ "usr": "s:10Foundation3URLV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Double",
+ "printedName": "Swift.Double",
+ "hasDefaultArg": true,
+ "usr": "s:Sd"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Starscream.CertificatePinning?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CertificatePinning",
+ "printedName": "Starscream.CertificatePinning",
+ "usr": "s:10Starscream18CertificatePinningP"
+ }
+ ],
+ "hasDefaultArg": true,
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream19FoundationTransportC7connect3url7timeout18certificatePinningy0B03URLV_SdAA011CertificateH0_pSgtF",
+ "mangledName": "$s10Starscream19FoundationTransportC7connect3url7timeout18certificatePinningy0B03URLV_SdAA011CertificateH0_pSgtF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "disconnect",
+ "printedName": "disconnect()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream19FoundationTransportC10disconnectyyF",
+ "mangledName": "$s10Starscream19FoundationTransportC10disconnectyyF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "register",
+ "printedName": "register(delegate:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "TransportEventClient",
+ "printedName": "Starscream.TransportEventClient",
+ "usr": "s:10Starscream20TransportEventClientP"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream19FoundationTransportC8register8delegateyAA0C11EventClient_p_tF",
+ "mangledName": "$s10Starscream19FoundationTransportC8register8delegateyAA0C11EventClient_p_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "write",
+ "printedName": "write(data:completion:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.Error?) -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Swift.Error?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Error",
+ "printedName": "Swift.Error",
+ "usr": "s:s5ErrorP"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ]
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream19FoundationTransportC5write4data10completiony0B04DataV_ys5Error_pSgctF",
+ "mangledName": "$s10Starscream19FoundationTransportC5write4data10completiony0B04DataV_ys5Error_pSgctF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "stream",
+ "printedName": "stream(_:handle:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Stream",
+ "printedName": "Foundation.Stream",
+ "usr": "c:objc(cs)NSStream"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Event",
+ "printedName": "Foundation.Stream.Event",
+ "usr": "c:@E@NSStreamEvent"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "c:@M@Starscream@objc(cs)FoundationTransport(im)stream:handleEvent:",
+ "mangledName": "$s10Starscream19FoundationTransportC6stream_6handleySo8NSStreamC_So0F5EventVtF",
+ "moduleName": "Starscream",
+ "objc_name": "stream:handleEvent:",
+ "declAttributes": [
+ "ObjC",
+ "AccessControl",
+ "RawDocComment"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Constructor",
+ "name": "init",
+ "printedName": "init()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FoundationTransport",
+ "printedName": "Starscream.FoundationTransport",
+ "usr": "c:@M@Starscream@objc(cs)FoundationTransport"
+ }
+ ],
+ "declKind": "Constructor",
+ "usr": "c:@M@Starscream@objc(cs)FoundationTransport(im)init",
+ "mangledName": "$s10Starscream19FoundationTransportCACycfc",
+ "moduleName": "Starscream",
+ "overriding": true,
+ "implicit": true,
+ "objc_name": "init",
+ "declAttributes": [
+ "Dynamic",
+ "ObjC",
+ "Override"
+ ],
+ "init_kind": "Designated"
+ }
+ ],
+ "declKind": "Class",
+ "usr": "c:@M@Starscream@objc(cs)FoundationTransport",
+ "mangledName": "$s10Starscream19FoundationTransportC",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl",
+ "ObjC"
+ ],
+ "superclassUsr": "c:objc(cs)NSObject",
+ "superclassNames": [
+ "ObjectiveC.NSObject"
+ ],
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "Transport",
+ "printedName": "Transport",
+ "usr": "s:10Starscream9TransportP",
+ "mangledName": "$s10Starscream9TransportP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Equatable",
+ "printedName": "Equatable",
+ "usr": "s:SQ",
+ "mangledName": "$sSQ"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Hashable",
+ "printedName": "Hashable",
+ "usr": "s:SH",
+ "mangledName": "$sSH"
+ },
+ {
+ "kind": "Conformance",
+ "name": "CVarArg",
+ "printedName": "CVarArg",
+ "usr": "s:s7CVarArgP",
+ "mangledName": "$ss7CVarArgP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "_KeyValueCodingAndObservingPublishing",
+ "printedName": "_KeyValueCodingAndObservingPublishing",
+ "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP",
+ "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "_KeyValueCodingAndObserving",
+ "printedName": "_KeyValueCodingAndObserving",
+ "usr": "s:10Foundation27_KeyValueCodingAndObservingP",
+ "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "CustomStringConvertible",
+ "printedName": "CustomStringConvertible",
+ "usr": "s:s23CustomStringConvertibleP",
+ "mangledName": "$ss23CustomStringConvertibleP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "CustomDebugStringConvertible",
+ "printedName": "CustomDebugStringConvertible",
+ "usr": "s:s28CustomDebugStringConvertibleP",
+ "mangledName": "$ss28CustomDebugStringConvertibleP"
+ }
+ ]
+ },
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "FrameCollectorDelegate",
+ "printedName": "FrameCollectorDelegate",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "didForm",
+ "printedName": "didForm(event:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Event",
+ "printedName": "Starscream.FrameCollector.Event",
+ "usr": "s:10Starscream14FrameCollectorC5EventO"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream22FrameCollectorDelegateP7didForm5eventyAA0bC0C5EventO_tF",
+ "mangledName": "$s10Starscream22FrameCollectorDelegateP7didForm5eventyAA0bC0C5EventO_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.FrameCollectorDelegate>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "decompress",
+ "printedName": "decompress(data:isFinal:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Foundation.Data?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "usr": "s:Sq"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream22FrameCollectorDelegateP10decompress4data7isFinal10Foundation4DataVSgAI_SbtF",
+ "mangledName": "$s10Starscream22FrameCollectorDelegateP10decompress4data7isFinal10Foundation4DataVSgAI_SbtF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.FrameCollectorDelegate>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream22FrameCollectorDelegateP",
+ "mangledName": "$s10Starscream22FrameCollectorDelegateP",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 : AnyObject>",
+ "sugared_genericSig": "",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "FrameCollector",
+ "printedName": "FrameCollector",
+ "children": [
+ {
+ "kind": "TypeDecl",
+ "name": "Event",
+ "printedName": "Event",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "text",
+ "printedName": "text",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FrameCollector.Event.Type) -> (Swift.String) -> Starscream.FrameCollector.Event",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.String) -> Starscream.FrameCollector.Event",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Event",
+ "printedName": "Starscream.FrameCollector.Event",
+ "usr": "s:10Starscream14FrameCollectorC5EventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FrameCollector.Event.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Event",
+ "printedName": "Starscream.FrameCollector.Event",
+ "usr": "s:10Starscream14FrameCollectorC5EventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream14FrameCollectorC5EventO4textyAESScAEmF",
+ "mangledName": "$s10Starscream14FrameCollectorC5EventO4textyAESScAEmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "binary",
+ "printedName": "binary",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FrameCollector.Event.Type) -> (Foundation.Data) -> Starscream.FrameCollector.Event",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Foundation.Data) -> Starscream.FrameCollector.Event",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Event",
+ "printedName": "Starscream.FrameCollector.Event",
+ "usr": "s:10Starscream14FrameCollectorC5EventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FrameCollector.Event.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Event",
+ "printedName": "Starscream.FrameCollector.Event",
+ "usr": "s:10Starscream14FrameCollectorC5EventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream14FrameCollectorC5EventO6binaryyAE10Foundation4DataVcAEmF",
+ "mangledName": "$s10Starscream14FrameCollectorC5EventO6binaryyAE10Foundation4DataVcAEmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "pong",
+ "printedName": "pong",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FrameCollector.Event.Type) -> (Foundation.Data?) -> Starscream.FrameCollector.Event",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Foundation.Data?) -> Starscream.FrameCollector.Event",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Event",
+ "printedName": "Starscream.FrameCollector.Event",
+ "usr": "s:10Starscream14FrameCollectorC5EventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Foundation.Data?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FrameCollector.Event.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Event",
+ "printedName": "Starscream.FrameCollector.Event",
+ "usr": "s:10Starscream14FrameCollectorC5EventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream14FrameCollectorC5EventO4pongyAE10Foundation4DataVSgcAEmF",
+ "mangledName": "$s10Starscream14FrameCollectorC5EventO4pongyAE10Foundation4DataVSgcAEmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "ping",
+ "printedName": "ping",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FrameCollector.Event.Type) -> (Foundation.Data?) -> Starscream.FrameCollector.Event",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Foundation.Data?) -> Starscream.FrameCollector.Event",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Event",
+ "printedName": "Starscream.FrameCollector.Event",
+ "usr": "s:10Starscream14FrameCollectorC5EventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Foundation.Data?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FrameCollector.Event.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Event",
+ "printedName": "Starscream.FrameCollector.Event",
+ "usr": "s:10Starscream14FrameCollectorC5EventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream14FrameCollectorC5EventO4pingyAE10Foundation4DataVSgcAEmF",
+ "mangledName": "$s10Starscream14FrameCollectorC5EventO4pingyAE10Foundation4DataVSgcAEmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "error",
+ "printedName": "error",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FrameCollector.Event.Type) -> (Swift.Error) -> Starscream.FrameCollector.Event",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.Error) -> Starscream.FrameCollector.Event",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Event",
+ "printedName": "Starscream.FrameCollector.Event",
+ "usr": "s:10Starscream14FrameCollectorC5EventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Error",
+ "printedName": "Swift.Error",
+ "usr": "s:s5ErrorP"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FrameCollector.Event.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Event",
+ "printedName": "Starscream.FrameCollector.Event",
+ "usr": "s:10Starscream14FrameCollectorC5EventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream14FrameCollectorC5EventO5erroryAEs5Error_pcAEmF",
+ "mangledName": "$s10Starscream14FrameCollectorC5EventO5erroryAEs5Error_pcAEmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "closed",
+ "printedName": "closed",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FrameCollector.Event.Type) -> (Swift.String, Swift.UInt16) -> Starscream.FrameCollector.Event",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.String, Swift.UInt16) -> Starscream.FrameCollector.Event",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Event",
+ "printedName": "Starscream.FrameCollector.Event",
+ "usr": "s:10Starscream14FrameCollectorC5EventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Tuple",
+ "printedName": "(Swift.String, Swift.UInt16)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FrameCollector.Event.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Event",
+ "printedName": "Starscream.FrameCollector.Event",
+ "usr": "s:10Starscream14FrameCollectorC5EventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream14FrameCollectorC5EventO6closedyAESS_s6UInt16VtcAEmF",
+ "mangledName": "$s10Starscream14FrameCollectorC5EventO6closedyAESS_s6UInt16VtcAEmF",
+ "moduleName": "Starscream"
+ }
+ ],
+ "declKind": "Enum",
+ "usr": "s:10Starscream14FrameCollectorC5EventO",
+ "mangledName": "$s10Starscream14FrameCollectorC5EventO",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "Function",
+ "name": "add",
+ "printedName": "add(frame:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Frame",
+ "printedName": "Starscream.Frame",
+ "usr": "s:10Starscream5FrameV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream14FrameCollectorC3add5frameyAA0B0V_tF",
+ "mangledName": "$s10Starscream14FrameCollectorC3add5frameyAA0B0V_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Class",
+ "usr": "s:10Starscream14FrameCollectorC",
+ "mangledName": "$s10Starscream14FrameCollectorC",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "hasMissingDesignatedInitializers": true
+ },
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "CloseCode",
+ "printedName": "CloseCode",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "normal",
+ "printedName": "normal",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.CloseCode.Type) -> Starscream.CloseCode",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Starscream.CloseCode",
+ "usr": "s:10Starscream9CloseCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.CloseCode.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Starscream.CloseCode",
+ "usr": "s:10Starscream9CloseCodeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream9CloseCodeO6normalyA2CmF",
+ "mangledName": "$s10Starscream9CloseCodeO6normalyA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "goingAway",
+ "printedName": "goingAway",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.CloseCode.Type) -> Starscream.CloseCode",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Starscream.CloseCode",
+ "usr": "s:10Starscream9CloseCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.CloseCode.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Starscream.CloseCode",
+ "usr": "s:10Starscream9CloseCodeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream9CloseCodeO9goingAwayyA2CmF",
+ "mangledName": "$s10Starscream9CloseCodeO9goingAwayyA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "protocolError",
+ "printedName": "protocolError",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.CloseCode.Type) -> Starscream.CloseCode",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Starscream.CloseCode",
+ "usr": "s:10Starscream9CloseCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.CloseCode.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Starscream.CloseCode",
+ "usr": "s:10Starscream9CloseCodeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream9CloseCodeO13protocolErroryA2CmF",
+ "mangledName": "$s10Starscream9CloseCodeO13protocolErroryA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "protocolUnhandledType",
+ "printedName": "protocolUnhandledType",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.CloseCode.Type) -> Starscream.CloseCode",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Starscream.CloseCode",
+ "usr": "s:10Starscream9CloseCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.CloseCode.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Starscream.CloseCode",
+ "usr": "s:10Starscream9CloseCodeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream9CloseCodeO21protocolUnhandledTypeyA2CmF",
+ "mangledName": "$s10Starscream9CloseCodeO21protocolUnhandledTypeyA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "noStatusReceived",
+ "printedName": "noStatusReceived",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.CloseCode.Type) -> Starscream.CloseCode",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Starscream.CloseCode",
+ "usr": "s:10Starscream9CloseCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.CloseCode.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Starscream.CloseCode",
+ "usr": "s:10Starscream9CloseCodeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream9CloseCodeO16noStatusReceivedyA2CmF",
+ "mangledName": "$s10Starscream9CloseCodeO16noStatusReceivedyA2CmF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "Var",
+ "name": "encoding",
+ "printedName": "encoding",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.CloseCode.Type) -> Starscream.CloseCode",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Starscream.CloseCode",
+ "usr": "s:10Starscream9CloseCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.CloseCode.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Starscream.CloseCode",
+ "usr": "s:10Starscream9CloseCodeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream9CloseCodeO8encodingyA2CmF",
+ "mangledName": "$s10Starscream9CloseCodeO8encodingyA2CmF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "Var",
+ "name": "policyViolated",
+ "printedName": "policyViolated",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.CloseCode.Type) -> Starscream.CloseCode",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Starscream.CloseCode",
+ "usr": "s:10Starscream9CloseCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.CloseCode.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Starscream.CloseCode",
+ "usr": "s:10Starscream9CloseCodeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream9CloseCodeO14policyViolatedyA2CmF",
+ "mangledName": "$s10Starscream9CloseCodeO14policyViolatedyA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "messageTooBig",
+ "printedName": "messageTooBig",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.CloseCode.Type) -> Starscream.CloseCode",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Starscream.CloseCode",
+ "usr": "s:10Starscream9CloseCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.CloseCode.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Starscream.CloseCode",
+ "usr": "s:10Starscream9CloseCodeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream9CloseCodeO13messageTooBigyA2CmF",
+ "mangledName": "$s10Starscream9CloseCodeO13messageTooBigyA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Constructor",
+ "name": "init",
+ "printedName": "init(rawValue:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Starscream.CloseCode?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Starscream.CloseCode",
+ "usr": "s:10Starscream9CloseCodeO"
+ }
+ ],
+ "usr": "s:Sq"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ],
+ "declKind": "Constructor",
+ "usr": "s:10Starscream9CloseCodeO8rawValueACSgs6UInt16V_tcfc",
+ "mangledName": "$s10Starscream9CloseCodeO8rawValueACSgs6UInt16V_tcfc",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "init_kind": "Designated"
+ },
+ {
+ "kind": "Var",
+ "name": "rawValue",
+ "printedName": "rawValue",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ],
+ "declKind": "Var",
+ "usr": "s:10Starscream9CloseCodeO8rawValues6UInt16Vvp",
+ "mangledName": "$s10Starscream9CloseCodeO8rawValues6UInt16Vvp",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessors": [
+ {
+ "kind": "Accessor",
+ "name": "Get",
+ "printedName": "Get()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream9CloseCodeO8rawValues6UInt16Vvg",
+ "mangledName": "$s10Starscream9CloseCodeO8rawValues6UInt16Vvg",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "get"
+ }
+ ]
+ }
+ ],
+ "declKind": "Enum",
+ "usr": "s:10Starscream9CloseCodeO",
+ "mangledName": "$s10Starscream9CloseCodeO",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl",
+ "RawDocComment"
+ ],
+ "enumRawTypeName": "UInt16",
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "Equatable",
+ "printedName": "Equatable",
+ "usr": "s:SQ",
+ "mangledName": "$sSQ"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Hashable",
+ "printedName": "Hashable",
+ "usr": "s:SH",
+ "mangledName": "$sSH"
+ },
+ {
+ "kind": "Conformance",
+ "name": "RawRepresentable",
+ "printedName": "RawRepresentable",
+ "children": [
+ {
+ "kind": "TypeWitness",
+ "name": "RawValue",
+ "printedName": "RawValue",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ]
+ }
+ ],
+ "usr": "s:SY",
+ "mangledName": "$sSY"
+ }
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "FrameOpCode",
+ "printedName": "FrameOpCode",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "continueFrame",
+ "printedName": "continueFrame",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FrameOpCode.Type) -> Starscream.FrameOpCode",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FrameOpCode.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream11FrameOpCodeO08continueB0yA2CmF",
+ "mangledName": "$s10Starscream11FrameOpCodeO08continueB0yA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "textFrame",
+ "printedName": "textFrame",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FrameOpCode.Type) -> Starscream.FrameOpCode",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FrameOpCode.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream11FrameOpCodeO04textB0yA2CmF",
+ "mangledName": "$s10Starscream11FrameOpCodeO04textB0yA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "binaryFrame",
+ "printedName": "binaryFrame",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FrameOpCode.Type) -> Starscream.FrameOpCode",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FrameOpCode.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream11FrameOpCodeO06binaryB0yA2CmF",
+ "mangledName": "$s10Starscream11FrameOpCodeO06binaryB0yA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "connectionClose",
+ "printedName": "connectionClose",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FrameOpCode.Type) -> Starscream.FrameOpCode",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FrameOpCode.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream11FrameOpCodeO15connectionCloseyA2CmF",
+ "mangledName": "$s10Starscream11FrameOpCodeO15connectionCloseyA2CmF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "Var",
+ "name": "ping",
+ "printedName": "ping",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FrameOpCode.Type) -> Starscream.FrameOpCode",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FrameOpCode.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream11FrameOpCodeO4pingyA2CmF",
+ "mangledName": "$s10Starscream11FrameOpCodeO4pingyA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "pong",
+ "printedName": "pong",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FrameOpCode.Type) -> Starscream.FrameOpCode",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FrameOpCode.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream11FrameOpCodeO4pongyA2CmF",
+ "mangledName": "$s10Starscream11FrameOpCodeO4pongyA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "unknown",
+ "printedName": "unknown",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FrameOpCode.Type) -> Starscream.FrameOpCode",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FrameOpCode.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream11FrameOpCodeO7unknownyA2CmF",
+ "mangledName": "$s10Starscream11FrameOpCodeO7unknownyA2CmF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "Constructor",
+ "name": "init",
+ "printedName": "init(rawValue:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Starscream.FrameOpCode?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ }
+ ],
+ "usr": "s:Sq"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "UInt8",
+ "printedName": "Swift.UInt8",
+ "usr": "s:s5UInt8V"
+ }
+ ],
+ "declKind": "Constructor",
+ "usr": "s:10Starscream11FrameOpCodeO8rawValueACSgs5UInt8V_tcfc",
+ "mangledName": "$s10Starscream11FrameOpCodeO8rawValueACSgs5UInt8V_tcfc",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "init_kind": "Designated"
+ },
+ {
+ "kind": "Var",
+ "name": "rawValue",
+ "printedName": "rawValue",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "UInt8",
+ "printedName": "Swift.UInt8",
+ "usr": "s:s5UInt8V"
+ }
+ ],
+ "declKind": "Var",
+ "usr": "s:10Starscream11FrameOpCodeO8rawValues5UInt8Vvp",
+ "mangledName": "$s10Starscream11FrameOpCodeO8rawValues5UInt8Vvp",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessors": [
+ {
+ "kind": "Accessor",
+ "name": "Get",
+ "printedName": "Get()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "UInt8",
+ "printedName": "Swift.UInt8",
+ "usr": "s:s5UInt8V"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream11FrameOpCodeO8rawValues5UInt8Vvg",
+ "mangledName": "$s10Starscream11FrameOpCodeO8rawValues5UInt8Vvg",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "get"
+ }
+ ]
+ }
+ ],
+ "declKind": "Enum",
+ "usr": "s:10Starscream11FrameOpCodeO",
+ "mangledName": "$s10Starscream11FrameOpCodeO",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "enumRawTypeName": "UInt8",
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "Equatable",
+ "printedName": "Equatable",
+ "usr": "s:SQ",
+ "mangledName": "$sSQ"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Hashable",
+ "printedName": "Hashable",
+ "usr": "s:SH",
+ "mangledName": "$sSH"
+ },
+ {
+ "kind": "Conformance",
+ "name": "RawRepresentable",
+ "printedName": "RawRepresentable",
+ "children": [
+ {
+ "kind": "TypeWitness",
+ "name": "RawValue",
+ "printedName": "RawValue",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "UInt8",
+ "printedName": "Swift.UInt8",
+ "usr": "s:s5UInt8V"
+ }
+ ]
+ }
+ ],
+ "usr": "s:SY",
+ "mangledName": "$sSY"
+ }
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "Frame",
+ "printedName": "Frame",
+ "declKind": "Struct",
+ "usr": "s:10Starscream5FrameV",
+ "mangledName": "$s10Starscream5FrameV",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "FrameEvent",
+ "printedName": "FrameEvent",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "frame",
+ "printedName": "frame",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FrameEvent.Type) -> (Starscream.Frame) -> Starscream.FrameEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.Frame) -> Starscream.FrameEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameEvent",
+ "printedName": "Starscream.FrameEvent",
+ "usr": "s:10Starscream10FrameEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Frame",
+ "printedName": "Starscream.Frame",
+ "usr": "s:10Starscream5FrameV"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FrameEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameEvent",
+ "printedName": "Starscream.FrameEvent",
+ "usr": "s:10Starscream10FrameEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream10FrameEventO5frameyAcA0B0VcACmF",
+ "mangledName": "$s10Starscream10FrameEventO5frameyAcA0B0VcACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "error",
+ "printedName": "error",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FrameEvent.Type) -> (Swift.Error) -> Starscream.FrameEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.Error) -> Starscream.FrameEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameEvent",
+ "printedName": "Starscream.FrameEvent",
+ "usr": "s:10Starscream10FrameEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Error",
+ "printedName": "Swift.Error",
+ "usr": "s:s5ErrorP"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FrameEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameEvent",
+ "printedName": "Starscream.FrameEvent",
+ "usr": "s:10Starscream10FrameEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream10FrameEventO5erroryACs5Error_pcACmF",
+ "mangledName": "$s10Starscream10FrameEventO5erroryACs5Error_pcACmF",
+ "moduleName": "Starscream"
+ }
+ ],
+ "declKind": "Enum",
+ "usr": "s:10Starscream10FrameEventO",
+ "mangledName": "$s10Starscream10FrameEventO",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "FramerEventClient",
+ "printedName": "FramerEventClient",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "frameProcessed",
+ "printedName": "frameProcessed(event:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "FrameEvent",
+ "printedName": "Starscream.FrameEvent",
+ "usr": "s:10Starscream10FrameEventO"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream17FramerEventClientP14frameProcessed5eventyAA05FrameC0O_tF",
+ "mangledName": "$s10Starscream17FramerEventClientP14frameProcessed5eventyAA05FrameC0O_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.FramerEventClient>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream17FramerEventClientP",
+ "mangledName": "$s10Starscream17FramerEventClientP",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 : AnyObject>",
+ "sugared_genericSig": "",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "Framer",
+ "printedName": "Framer",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "add",
+ "printedName": "add(data:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream6FramerP3add4datay10Foundation4DataV_tF",
+ "mangledName": "$s10Starscream6FramerP3add4datay10Foundation4DataV_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Framer>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "register",
+ "printedName": "register(delegate:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "FramerEventClient",
+ "printedName": "Starscream.FramerEventClient",
+ "usr": "s:10Starscream17FramerEventClientP"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream6FramerP8register8delegateyAA0B11EventClient_p_tF",
+ "mangledName": "$s10Starscream6FramerP8register8delegateyAA0B11EventClient_p_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Framer>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "createWriteFrame",
+ "printedName": "createWriteFrame(opcode:payload:isCompressed:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream6FramerP16createWriteFrame6opcode7payload12isCompressed10Foundation4DataVAA0E6OpCodeO_AJSbtF",
+ "mangledName": "$s10Starscream6FramerP16createWriteFrame6opcode7payload12isCompressed10Foundation4DataVAA0E6OpCodeO_AJSbtF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Framer>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "updateCompression",
+ "printedName": "updateCompression(supports:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream6FramerP17updateCompression8supportsySb_tF",
+ "mangledName": "$s10Starscream6FramerP17updateCompression8supportsySb_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Framer>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "supportsCompression",
+ "printedName": "supportsCompression()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream6FramerP19supportsCompressionSbyF",
+ "mangledName": "$s10Starscream6FramerP19supportsCompressionSbyF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Framer>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream6FramerP",
+ "mangledName": "$s10Starscream6FramerP",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "WSFramer",
+ "printedName": "WSFramer",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "compressionEnabled",
+ "printedName": "compressionEnabled",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Var",
+ "usr": "s:10Starscream8WSFramerC18compressionEnabledSbvp",
+ "mangledName": "$s10Starscream8WSFramerC18compressionEnabledSbvp",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "HasInitialValue",
+ "HasStorage",
+ "AccessControl"
+ ],
+ "hasStorage": true,
+ "accessors": [
+ {
+ "kind": "Accessor",
+ "name": "Get",
+ "printedName": "Get()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream8WSFramerC18compressionEnabledSbvg",
+ "mangledName": "$s10Starscream8WSFramerC18compressionEnabledSbvg",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "get"
+ },
+ {
+ "kind": "Accessor",
+ "name": "Set",
+ "printedName": "Set()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream8WSFramerC18compressionEnabledSbvs",
+ "mangledName": "$s10Starscream8WSFramerC18compressionEnabledSbvs",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "set"
+ },
+ {
+ "kind": "Accessor",
+ "name": "Modify",
+ "printedName": "Modify()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream8WSFramerC18compressionEnabledSbvM",
+ "mangledName": "$s10Starscream8WSFramerC18compressionEnabledSbvM",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "_modify"
+ }
+ ]
+ },
+ {
+ "kind": "Constructor",
+ "name": "init",
+ "printedName": "init(isServer:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "WSFramer",
+ "printedName": "Starscream.WSFramer",
+ "usr": "s:10Starscream8WSFramerC"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "hasDefaultArg": true,
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Constructor",
+ "usr": "s:10Starscream8WSFramerC8isServerACSb_tcfc",
+ "mangledName": "$s10Starscream8WSFramerC8isServerACSb_tcfc",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "init_kind": "Designated"
+ },
+ {
+ "kind": "Function",
+ "name": "updateCompression",
+ "printedName": "updateCompression(supports:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream8WSFramerC17updateCompression8supportsySb_tF",
+ "mangledName": "$s10Starscream8WSFramerC17updateCompression8supportsySb_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "supportsCompression",
+ "printedName": "supportsCompression()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream8WSFramerC19supportsCompressionSbyF",
+ "mangledName": "$s10Starscream8WSFramerC19supportsCompressionSbyF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "add",
+ "printedName": "add(data:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream8WSFramerC3add4datay10Foundation4DataV_tF",
+ "mangledName": "$s10Starscream8WSFramerC3add4datay10Foundation4DataV_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "register",
+ "printedName": "register(delegate:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "FramerEventClient",
+ "printedName": "Starscream.FramerEventClient",
+ "usr": "s:10Starscream17FramerEventClientP"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream8WSFramerC8register8delegateyAA17FramerEventClient_p_tF",
+ "mangledName": "$s10Starscream8WSFramerC8register8delegateyAA17FramerEventClient_p_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "createWriteFrame",
+ "printedName": "createWriteFrame(opcode:payload:isCompressed:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream8WSFramerC16createWriteFrame6opcode7payload12isCompressed10Foundation4DataVAA0E6OpCodeO_AJSbtF",
+ "mangledName": "$s10Starscream8WSFramerC16createWriteFrame6opcode7payload12isCompressed10Foundation4DataVAA0E6OpCodeO_AJSbtF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Class",
+ "usr": "s:10Starscream8WSFramerC",
+ "mangledName": "$s10Starscream8WSFramerC",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "Framer",
+ "printedName": "Framer",
+ "usr": "s:10Starscream6FramerP",
+ "mangledName": "$s10Starscream6FramerP"
+ }
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "MyWSArrayType",
+ "printedName": "MyWSArrayType",
+ "declKind": "Protocol",
+ "usr": "s:10Starscream13MyWSArrayTypeP",
+ "mangledName": "$s10Starscream13MyWSArrayTypeP",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl",
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "Function",
+ "name": "writeUint16",
+ "printedName": "writeUint16(_:offset:value:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Array",
+ "printedName": "[Swift.UInt8]",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "UInt8",
+ "printedName": "Swift.UInt8",
+ "usr": "s:s5UInt8V"
+ }
+ ],
+ "paramValueOwnership": "InOut",
+ "usr": "s:Sa"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream11writeUint16_6offset5valueySays5UInt8VGz_Sis6UInt16VtF",
+ "mangledName": "$s10Starscream11writeUint16_6offset5valueySays5UInt8VGz_Sis6UInt16VtF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl",
+ "RawDocComment"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "writeUint32",
+ "printedName": "writeUint32(_:offset:value:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Array",
+ "printedName": "[Swift.UInt8]",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "UInt8",
+ "printedName": "Swift.UInt8",
+ "usr": "s:s5UInt8V"
+ }
+ ],
+ "paramValueOwnership": "InOut",
+ "usr": "s:Sa"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "UInt32",
+ "printedName": "Swift.UInt32",
+ "usr": "s:s6UInt32V"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream11writeUint32_6offset5valueySays5UInt8VGz_Sis6UInt32VtF",
+ "mangledName": "$s10Starscream11writeUint32_6offset5valueySays5UInt8VGz_Sis6UInt32VtF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl",
+ "RawDocComment"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "writeUint64",
+ "printedName": "writeUint64(_:offset:value:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Array",
+ "printedName": "[Swift.UInt8]",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "UInt8",
+ "printedName": "Swift.UInt8",
+ "usr": "s:s5UInt8V"
+ }
+ ],
+ "paramValueOwnership": "InOut",
+ "usr": "s:Sa"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "UInt64",
+ "printedName": "Swift.UInt64",
+ "usr": "s:s6UInt64V"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream11writeUint64_6offset5valueySays5UInt8VGz_Sis6UInt64VtF",
+ "mangledName": "$s10Starscream11writeUint64_6offset5valueySays5UInt8VGz_Sis6UInt64VtF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl",
+ "RawDocComment"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "HTTPUpgradeError",
+ "printedName": "HTTPUpgradeError",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "notAnUpgrade",
+ "printedName": "notAnUpgrade",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.HTTPUpgradeError.Type) -> (Swift.Int, [Swift.String : Swift.String]) -> Starscream.HTTPUpgradeError",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.Int, [Swift.String : Swift.String]) -> Starscream.HTTPUpgradeError",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "HTTPUpgradeError",
+ "printedName": "Starscream.HTTPUpgradeError",
+ "usr": "s:10Starscream16HTTPUpgradeErrorO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Tuple",
+ "printedName": "(Swift.Int, [Swift.String : Swift.String])",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Dictionary",
+ "printedName": "[Swift.String : Swift.String]",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "usr": "s:SD"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.HTTPUpgradeError.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "HTTPUpgradeError",
+ "printedName": "Starscream.HTTPUpgradeError",
+ "usr": "s:10Starscream16HTTPUpgradeErrorO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream16HTTPUpgradeErrorO12notAnUpgradeyACSi_SDyS2SGtcACmF",
+ "mangledName": "$s10Starscream16HTTPUpgradeErrorO12notAnUpgradeyACSi_SDyS2SGtcACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "invalidData",
+ "printedName": "invalidData",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.HTTPUpgradeError.Type) -> Starscream.HTTPUpgradeError",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "HTTPUpgradeError",
+ "printedName": "Starscream.HTTPUpgradeError",
+ "usr": "s:10Starscream16HTTPUpgradeErrorO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.HTTPUpgradeError.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "HTTPUpgradeError",
+ "printedName": "Starscream.HTTPUpgradeError",
+ "usr": "s:10Starscream16HTTPUpgradeErrorO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream16HTTPUpgradeErrorO11invalidDatayA2CmF",
+ "mangledName": "$s10Starscream16HTTPUpgradeErrorO11invalidDatayA2CmF",
+ "moduleName": "Starscream"
+ }
+ ],
+ "declKind": "Enum",
+ "usr": "s:10Starscream16HTTPUpgradeErrorO",
+ "mangledName": "$s10Starscream16HTTPUpgradeErrorO",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "Error",
+ "printedName": "Error",
+ "usr": "s:s5ErrorP",
+ "mangledName": "$ss5ErrorP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Sendable",
+ "printedName": "Sendable",
+ "usr": "s:s8SendableP",
+ "mangledName": "$ss8SendableP"
+ }
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "HTTPWSHeader",
+ "printedName": "HTTPWSHeader",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "createUpgrade",
+ "printedName": "createUpgrade(request:supportsCompression:secKeyValue:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "URLRequest",
+ "printedName": "Foundation.URLRequest",
+ "usr": "s:10Foundation10URLRequestV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "URLRequest",
+ "printedName": "Foundation.URLRequest",
+ "usr": "s:10Foundation10URLRequestV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream12HTTPWSHeaderV13createUpgrade7request19supportsCompression11secKeyValue10Foundation10URLRequestVAJ_SbSStFZ",
+ "mangledName": "$s10Starscream12HTTPWSHeaderV13createUpgrade7request19supportsCompression11secKeyValue10Foundation10URLRequestVAJ_SbSStFZ",
+ "moduleName": "Starscream",
+ "static": true,
+ "declAttributes": [
+ "AccessControl",
+ "RawDocComment"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "generateWebSocketKey",
+ "printedName": "generateWebSocketKey()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream12HTTPWSHeaderV20generateWebSocketKeySSyFZ",
+ "mangledName": "$s10Starscream12HTTPWSHeaderV20generateWebSocketKeySSyFZ",
+ "moduleName": "Starscream",
+ "static": true,
+ "declAttributes": [
+ "AccessControl",
+ "RawDocComment"
+ ],
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Struct",
+ "usr": "s:10Starscream12HTTPWSHeaderV",
+ "mangledName": "$s10Starscream12HTTPWSHeaderV",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "HTTPEvent",
+ "printedName": "HTTPEvent",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "success",
+ "printedName": "success",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.HTTPEvent.Type) -> ([Swift.String : Swift.String]) -> Starscream.HTTPEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "([Swift.String : Swift.String]) -> Starscream.HTTPEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "HTTPEvent",
+ "printedName": "Starscream.HTTPEvent",
+ "usr": "s:10Starscream9HTTPEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Dictionary",
+ "printedName": "[Swift.String : Swift.String]",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "usr": "s:SD"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.HTTPEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "HTTPEvent",
+ "printedName": "Starscream.HTTPEvent",
+ "usr": "s:10Starscream9HTTPEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream9HTTPEventO7successyACSDyS2SGcACmF",
+ "mangledName": "$s10Starscream9HTTPEventO7successyACSDyS2SGcACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "failure",
+ "printedName": "failure",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.HTTPEvent.Type) -> (Swift.Error) -> Starscream.HTTPEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.Error) -> Starscream.HTTPEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "HTTPEvent",
+ "printedName": "Starscream.HTTPEvent",
+ "usr": "s:10Starscream9HTTPEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Error",
+ "printedName": "Swift.Error",
+ "usr": "s:s5ErrorP"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.HTTPEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "HTTPEvent",
+ "printedName": "Starscream.HTTPEvent",
+ "usr": "s:10Starscream9HTTPEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream9HTTPEventO7failureyACs5Error_pcACmF",
+ "mangledName": "$s10Starscream9HTTPEventO7failureyACs5Error_pcACmF",
+ "moduleName": "Starscream"
+ }
+ ],
+ "declKind": "Enum",
+ "usr": "s:10Starscream9HTTPEventO",
+ "mangledName": "$s10Starscream9HTTPEventO",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "HTTPHandlerDelegate",
+ "printedName": "HTTPHandlerDelegate",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "didReceiveHTTP",
+ "printedName": "didReceiveHTTP(event:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "HTTPEvent",
+ "printedName": "Starscream.HTTPEvent",
+ "usr": "s:10Starscream9HTTPEventO"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream19HTTPHandlerDelegateP14didReceiveHTTP5eventyAA9HTTPEventO_tF",
+ "mangledName": "$s10Starscream19HTTPHandlerDelegateP14didReceiveHTTP5eventyAA9HTTPEventO_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.HTTPHandlerDelegate>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream19HTTPHandlerDelegateP",
+ "mangledName": "$s10Starscream19HTTPHandlerDelegateP",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 : AnyObject>",
+ "sugared_genericSig": "",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "HTTPHandler",
+ "printedName": "HTTPHandler",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "register",
+ "printedName": "register(delegate:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "HTTPHandlerDelegate",
+ "printedName": "Starscream.HTTPHandlerDelegate",
+ "usr": "s:10Starscream19HTTPHandlerDelegateP"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream11HTTPHandlerP8register8delegateyAA0B8Delegate_p_tF",
+ "mangledName": "$s10Starscream11HTTPHandlerP8register8delegateyAA0B8Delegate_p_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.HTTPHandler>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "convert",
+ "printedName": "convert(request:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "URLRequest",
+ "printedName": "Foundation.URLRequest",
+ "usr": "s:10Foundation10URLRequestV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream11HTTPHandlerP7convert7request10Foundation4DataVAF10URLRequestV_tF",
+ "mangledName": "$s10Starscream11HTTPHandlerP7convert7request10Foundation4DataVAF10URLRequestV_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.HTTPHandler>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "parse",
+ "printedName": "parse(data:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream11HTTPHandlerP5parse4dataSi10Foundation4DataV_tF",
+ "mangledName": "$s10Starscream11HTTPHandlerP5parse4dataSi10Foundation4DataV_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.HTTPHandler>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream11HTTPHandlerP",
+ "mangledName": "$s10Starscream11HTTPHandlerP",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "HTTPServerDelegate",
+ "printedName": "HTTPServerDelegate",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "didReceive",
+ "printedName": "didReceive(event:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "HTTPEvent",
+ "printedName": "Starscream.HTTPEvent",
+ "usr": "s:10Starscream9HTTPEventO"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream18HTTPServerDelegateP10didReceive5eventyAA9HTTPEventO_tF",
+ "mangledName": "$s10Starscream18HTTPServerDelegateP10didReceive5eventyAA9HTTPEventO_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.HTTPServerDelegate>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream18HTTPServerDelegateP",
+ "mangledName": "$s10Starscream18HTTPServerDelegateP",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 : AnyObject>",
+ "sugared_genericSig": "",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "HTTPServerHandler",
+ "printedName": "HTTPServerHandler",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "register",
+ "printedName": "register(delegate:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "HTTPServerDelegate",
+ "printedName": "Starscream.HTTPServerDelegate",
+ "usr": "s:10Starscream18HTTPServerDelegateP"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream17HTTPServerHandlerP8register8delegateyAA0B8Delegate_p_tF",
+ "mangledName": "$s10Starscream17HTTPServerHandlerP8register8delegateyAA0B8Delegate_p_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.HTTPServerHandler>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "parse",
+ "printedName": "parse(data:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream17HTTPServerHandlerP5parse4datay10Foundation4DataV_tF",
+ "mangledName": "$s10Starscream17HTTPServerHandlerP5parse4datay10Foundation4DataV_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.HTTPServerHandler>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "createResponse",
+ "printedName": "createResponse(headers:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Dictionary",
+ "printedName": "[Swift.String : Swift.String]",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "usr": "s:SD"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream17HTTPServerHandlerP14createResponse7headers10Foundation4DataVSDyS2SG_tF",
+ "mangledName": "$s10Starscream17HTTPServerHandlerP14createResponse7headers10Foundation4DataVSDyS2SG_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.HTTPServerHandler>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream17HTTPServerHandlerP",
+ "mangledName": "$s10Starscream17HTTPServerHandlerP",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "URLParts",
+ "printedName": "URLParts",
+ "declKind": "Struct",
+ "usr": "s:10Starscream8URLPartsV",
+ "mangledName": "$s10Starscream8URLPartsV",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "NativeEngine",
+ "printedName": "NativeEngine",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "register",
+ "printedName": "register(delegate:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "EngineDelegate",
+ "printedName": "Starscream.EngineDelegate",
+ "usr": "s:10Starscream14EngineDelegateP"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream12NativeEngineC8register8delegateyAA0C8Delegate_p_tF",
+ "mangledName": "$s10Starscream12NativeEngineC8register8delegateyAA0C8Delegate_p_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "start",
+ "printedName": "start(request:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "URLRequest",
+ "printedName": "Foundation.URLRequest",
+ "usr": "s:10Foundation10URLRequestV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream12NativeEngineC5start7requesty10Foundation10URLRequestV_tF",
+ "mangledName": "$s10Starscream12NativeEngineC5start7requesty10Foundation10URLRequestV_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "stop",
+ "printedName": "stop(closeCode:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream12NativeEngineC4stop9closeCodeys6UInt16V_tF",
+ "mangledName": "$s10Starscream12NativeEngineC4stop9closeCodeys6UInt16V_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "forceStop",
+ "printedName": "forceStop()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream12NativeEngineC9forceStopyyF",
+ "mangledName": "$s10Starscream12NativeEngineC9forceStopyyF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "write",
+ "printedName": "write(string:completion:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "(() -> ())?",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "() -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream12NativeEngineC5write6string10completionySS_yycSgtF",
+ "mangledName": "$s10Starscream12NativeEngineC5write6string10completionySS_yycSgtF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "write",
+ "printedName": "write(data:opcode:completion:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "(() -> ())?",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "() -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream12NativeEngineC5write4data6opcode10completiony10Foundation4DataV_AA11FrameOpCodeOyycSgtF",
+ "mangledName": "$s10Starscream12NativeEngineC5write4data6opcode10completiony10Foundation4DataV_AA11FrameOpCodeOyycSgtF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "urlSession",
+ "printedName": "urlSession(_:webSocketTask:didOpenWithProtocol:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "URLSession",
+ "printedName": "Foundation.URLSession",
+ "usr": "c:objc(cs)NSURLSession"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "URLSessionWebSocketTask",
+ "printedName": "Foundation.URLSessionWebSocketTask",
+ "usr": "c:objc(cs)NSURLSessionWebSocketTask"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Swift.String?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "c:@M@Starscream@objc(cs)NativeEngine(im)URLSession:webSocketTask:didOpenWithProtocol:",
+ "mangledName": "$s10Starscream12NativeEngineC10urlSession_13webSocketTask19didOpenWithProtocolySo12NSURLSessionC_So0m3WebgH0CSSSgtF",
+ "moduleName": "Starscream",
+ "objc_name": "URLSession:webSocketTask:didOpenWithProtocol:",
+ "declAttributes": [
+ "ObjC",
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "urlSession",
+ "printedName": "urlSession(_:webSocketTask:didCloseWith:reason:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "URLSession",
+ "printedName": "Foundation.URLSession",
+ "usr": "c:objc(cs)NSURLSession"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "URLSessionWebSocketTask",
+ "printedName": "Foundation.URLSessionWebSocketTask",
+ "usr": "c:objc(cs)NSURLSessionWebSocketTask"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Foundation.URLSessionWebSocketTask.CloseCode",
+ "usr": "c:@E@NSURLSessionWebSocketCloseCode"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Foundation.Data?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "c:@M@Starscream@objc(cs)NativeEngine(im)URLSession:webSocketTask:didCloseWithCode:reason:",
+ "mangledName": "$s10Starscream12NativeEngineC10urlSession_13webSocketTask12didCloseWith6reasonySo12NSURLSessionC_So0m3WebgH0CSo0mngJ4CodeV10Foundation4DataVSgtF",
+ "moduleName": "Starscream",
+ "objc_name": "URLSession:webSocketTask:didCloseWithCode:reason:",
+ "declAttributes": [
+ "ObjC",
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "urlSession",
+ "printedName": "urlSession(_:task:didCompleteWithError:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "URLSession",
+ "printedName": "Foundation.URLSession",
+ "usr": "c:objc(cs)NSURLSession"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "URLSessionTask",
+ "printedName": "Foundation.URLSessionTask",
+ "usr": "c:objc(cs)NSURLSessionTask"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Swift.Error?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Error",
+ "printedName": "Swift.Error",
+ "usr": "s:s5ErrorP"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "c:@M@Starscream@objc(cs)NativeEngine(im)URLSession:task:didCompleteWithError:",
+ "mangledName": "$s10Starscream12NativeEngineC10urlSession_4task20didCompleteWithErrorySo12NSURLSessionC_So0K4TaskCs0J0_pSgtF",
+ "moduleName": "Starscream",
+ "objc_name": "URLSession:task:didCompleteWithError:",
+ "declAttributes": [
+ "ObjC",
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Constructor",
+ "name": "init",
+ "printedName": "init()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "NativeEngine",
+ "printedName": "Starscream.NativeEngine",
+ "usr": "c:@M@Starscream@objc(cs)NativeEngine"
+ }
+ ],
+ "declKind": "Constructor",
+ "usr": "c:@M@Starscream@objc(cs)NativeEngine(im)init",
+ "mangledName": "$s10Starscream12NativeEngineCACycfc",
+ "moduleName": "Starscream",
+ "overriding": true,
+ "implicit": true,
+ "objc_name": "init",
+ "declAttributes": [
+ "Dynamic",
+ "ObjC",
+ "Override"
+ ],
+ "init_kind": "Designated"
+ }
+ ],
+ "declKind": "Class",
+ "usr": "c:@M@Starscream@objc(cs)NativeEngine",
+ "mangledName": "$s10Starscream12NativeEngineC",
+ "moduleName": "Starscream",
+ "intro_Macosx": "10.15",
+ "intro_iOS": "13.0",
+ "intro_tvOS": "13.0",
+ "intro_watchOS": "6.0",
+ "declAttributes": [
+ "AccessControl",
+ "Available",
+ "Available",
+ "Available",
+ "Available",
+ "ObjC"
+ ],
+ "superclassUsr": "c:objc(cs)NSObject",
+ "inheritsConvenienceInitializers": true,
+ "superclassNames": [
+ "ObjectiveC.NSObject"
+ ],
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "Engine",
+ "printedName": "Engine",
+ "usr": "s:10Starscream6EngineP",
+ "mangledName": "$s10Starscream6EngineP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Equatable",
+ "printedName": "Equatable",
+ "usr": "s:SQ",
+ "mangledName": "$sSQ"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Hashable",
+ "printedName": "Hashable",
+ "usr": "s:SH",
+ "mangledName": "$sSH"
+ },
+ {
+ "kind": "Conformance",
+ "name": "CVarArg",
+ "printedName": "CVarArg",
+ "usr": "s:s7CVarArgP",
+ "mangledName": "$ss7CVarArgP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "_KeyValueCodingAndObservingPublishing",
+ "printedName": "_KeyValueCodingAndObservingPublishing",
+ "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP",
+ "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "_KeyValueCodingAndObserving",
+ "printedName": "_KeyValueCodingAndObserving",
+ "usr": "s:10Foundation27_KeyValueCodingAndObservingP",
+ "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "CustomStringConvertible",
+ "printedName": "CustomStringConvertible",
+ "usr": "s:s23CustomStringConvertibleP",
+ "mangledName": "$ss23CustomStringConvertibleP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "CustomDebugStringConvertible",
+ "printedName": "CustomDebugStringConvertible",
+ "usr": "s:s28CustomDebugStringConvertibleP",
+ "mangledName": "$ss28CustomDebugStringConvertibleP"
+ }
+ ]
+ },
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "SecurityErrorCode",
+ "printedName": "SecurityErrorCode",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "acceptFailed",
+ "printedName": "acceptFailed",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.SecurityErrorCode.Type) -> Starscream.SecurityErrorCode",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "SecurityErrorCode",
+ "printedName": "Starscream.SecurityErrorCode",
+ "usr": "s:10Starscream17SecurityErrorCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.SecurityErrorCode.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "SecurityErrorCode",
+ "printedName": "Starscream.SecurityErrorCode",
+ "usr": "s:10Starscream17SecurityErrorCodeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream17SecurityErrorCodeO12acceptFailedyA2CmF",
+ "mangledName": "$s10Starscream17SecurityErrorCodeO12acceptFailedyA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "pinningFailed",
+ "printedName": "pinningFailed",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.SecurityErrorCode.Type) -> Starscream.SecurityErrorCode",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "SecurityErrorCode",
+ "printedName": "Starscream.SecurityErrorCode",
+ "usr": "s:10Starscream17SecurityErrorCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.SecurityErrorCode.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "SecurityErrorCode",
+ "printedName": "Starscream.SecurityErrorCode",
+ "usr": "s:10Starscream17SecurityErrorCodeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream17SecurityErrorCodeO13pinningFailedyA2CmF",
+ "mangledName": "$s10Starscream17SecurityErrorCodeO13pinningFailedyA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Constructor",
+ "name": "init",
+ "printedName": "init(rawValue:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Starscream.SecurityErrorCode?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "SecurityErrorCode",
+ "printedName": "Starscream.SecurityErrorCode",
+ "usr": "s:10Starscream17SecurityErrorCodeO"
+ }
+ ],
+ "usr": "s:Sq"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ],
+ "declKind": "Constructor",
+ "usr": "s:10Starscream17SecurityErrorCodeO8rawValueACSgs6UInt16V_tcfc",
+ "mangledName": "$s10Starscream17SecurityErrorCodeO8rawValueACSgs6UInt16V_tcfc",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "init_kind": "Designated"
+ },
+ {
+ "kind": "Var",
+ "name": "rawValue",
+ "printedName": "rawValue",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ],
+ "declKind": "Var",
+ "usr": "s:10Starscream17SecurityErrorCodeO8rawValues6UInt16Vvp",
+ "mangledName": "$s10Starscream17SecurityErrorCodeO8rawValues6UInt16Vvp",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessors": [
+ {
+ "kind": "Accessor",
+ "name": "Get",
+ "printedName": "Get()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream17SecurityErrorCodeO8rawValues6UInt16Vvg",
+ "mangledName": "$s10Starscream17SecurityErrorCodeO8rawValues6UInt16Vvg",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "get"
+ }
+ ]
+ }
+ ],
+ "declKind": "Enum",
+ "usr": "s:10Starscream17SecurityErrorCodeO",
+ "mangledName": "$s10Starscream17SecurityErrorCodeO",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "enumRawTypeName": "UInt16",
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "Equatable",
+ "printedName": "Equatable",
+ "usr": "s:SQ",
+ "mangledName": "$sSQ"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Hashable",
+ "printedName": "Hashable",
+ "usr": "s:SH",
+ "mangledName": "$sSH"
+ },
+ {
+ "kind": "Conformance",
+ "name": "RawRepresentable",
+ "printedName": "RawRepresentable",
+ "children": [
+ {
+ "kind": "TypeWitness",
+ "name": "RawValue",
+ "printedName": "RawValue",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ]
+ }
+ ],
+ "usr": "s:SY",
+ "mangledName": "$sSY"
+ }
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "PinningState",
+ "printedName": "PinningState",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "success",
+ "printedName": "success",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.PinningState.Type) -> Starscream.PinningState",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "PinningState",
+ "printedName": "Starscream.PinningState",
+ "usr": "s:10Starscream12PinningStateO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.PinningState.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "PinningState",
+ "printedName": "Starscream.PinningState",
+ "usr": "s:10Starscream12PinningStateO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream12PinningStateO7successyA2CmF",
+ "mangledName": "$s10Starscream12PinningStateO7successyA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "failed",
+ "printedName": "failed",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.PinningState.Type) -> (CoreFoundation.CFError?) -> Starscream.PinningState",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(CoreFoundation.CFError?) -> Starscream.PinningState",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "PinningState",
+ "printedName": "Starscream.PinningState",
+ "usr": "s:10Starscream12PinningStateO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "CoreFoundation.CFError?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CFError",
+ "printedName": "CoreFoundation.CFError",
+ "usr": "c:@T@CFErrorRef"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.PinningState.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "PinningState",
+ "printedName": "Starscream.PinningState",
+ "usr": "s:10Starscream12PinningStateO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream12PinningStateO6failedyACSo10CFErrorRefaSgcACmF",
+ "mangledName": "$s10Starscream12PinningStateO6failedyACSo10CFErrorRefaSgcACmF",
+ "moduleName": "Starscream"
+ }
+ ],
+ "declKind": "Enum",
+ "usr": "s:10Starscream12PinningStateO",
+ "mangledName": "$s10Starscream12PinningStateO",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "CertificatePinning",
+ "printedName": "CertificatePinning",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "evaluateTrust",
+ "printedName": "evaluateTrust(trust:domain:completion:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "SecTrust",
+ "printedName": "Security.SecTrust",
+ "usr": "c:@T@SecTrustRef"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Swift.String?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "usr": "s:Sq"
+ },
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.PinningState) -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "PinningState",
+ "printedName": "Starscream.PinningState",
+ "usr": "s:10Starscream12PinningStateO"
+ }
+ ],
+ "typeAttributes": [
+ "noescape"
+ ]
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream18CertificatePinningP13evaluateTrust5trust6domain10completionySo03SecE3Refa_SSSgyAA0C5StateOXEtF",
+ "mangledName": "$s10Starscream18CertificatePinningP13evaluateTrust5trust6domain10completionySo03SecE3Refa_SSSgyAA0C5StateOXEtF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.CertificatePinning>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream18CertificatePinningP",
+ "mangledName": "$s10Starscream18CertificatePinningP",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 : AnyObject>",
+ "sugared_genericSig": "",
+ "declAttributes": [
+ "AccessControl",
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "HeaderValidator",
+ "printedName": "HeaderValidator",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "validate",
+ "printedName": "validate(headers:key:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Swift.Error?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Error",
+ "printedName": "Swift.Error",
+ "usr": "s:s5ErrorP"
+ }
+ ],
+ "usr": "s:Sq"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Dictionary",
+ "printedName": "[Swift.String : Swift.String]",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "usr": "s:SD"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream15HeaderValidatorP8validate7headers3keys5Error_pSgSDyS2SG_SStF",
+ "mangledName": "$s10Starscream15HeaderValidatorP8validate7headers3keys5Error_pSgSDyS2SG_SStF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.HeaderValidator>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream15HeaderValidatorP",
+ "mangledName": "$s10Starscream15HeaderValidatorP",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 : AnyObject>",
+ "sugared_genericSig": "",
+ "declAttributes": [
+ "AccessControl",
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "ConnectionEvent",
+ "printedName": "ConnectionEvent",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "connected",
+ "printedName": "connected",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ConnectionEvent.Type) -> ([Swift.String : Swift.String]) -> Starscream.ConnectionEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "([Swift.String : Swift.String]) -> Starscream.ConnectionEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionEvent",
+ "printedName": "Starscream.ConnectionEvent",
+ "usr": "s:10Starscream15ConnectionEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Dictionary",
+ "printedName": "[Swift.String : Swift.String]",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "usr": "s:SD"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ConnectionEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionEvent",
+ "printedName": "Starscream.ConnectionEvent",
+ "usr": "s:10Starscream15ConnectionEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream15ConnectionEventO9connectedyACSDyS2SGcACmF",
+ "mangledName": "$s10Starscream15ConnectionEventO9connectedyACSDyS2SGcACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "disconnected",
+ "printedName": "disconnected",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ConnectionEvent.Type) -> (Swift.String, Swift.UInt16) -> Starscream.ConnectionEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.String, Swift.UInt16) -> Starscream.ConnectionEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionEvent",
+ "printedName": "Starscream.ConnectionEvent",
+ "usr": "s:10Starscream15ConnectionEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Tuple",
+ "printedName": "(Swift.String, Swift.UInt16)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ConnectionEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionEvent",
+ "printedName": "Starscream.ConnectionEvent",
+ "usr": "s:10Starscream15ConnectionEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream15ConnectionEventO12disconnectedyACSS_s6UInt16VtcACmF",
+ "mangledName": "$s10Starscream15ConnectionEventO12disconnectedyACSS_s6UInt16VtcACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "text",
+ "printedName": "text",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ConnectionEvent.Type) -> (Swift.String) -> Starscream.ConnectionEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.String) -> Starscream.ConnectionEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionEvent",
+ "printedName": "Starscream.ConnectionEvent",
+ "usr": "s:10Starscream15ConnectionEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ConnectionEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionEvent",
+ "printedName": "Starscream.ConnectionEvent",
+ "usr": "s:10Starscream15ConnectionEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream15ConnectionEventO4textyACSScACmF",
+ "mangledName": "$s10Starscream15ConnectionEventO4textyACSScACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "binary",
+ "printedName": "binary",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ConnectionEvent.Type) -> (Foundation.Data) -> Starscream.ConnectionEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Foundation.Data) -> Starscream.ConnectionEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionEvent",
+ "printedName": "Starscream.ConnectionEvent",
+ "usr": "s:10Starscream15ConnectionEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ConnectionEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionEvent",
+ "printedName": "Starscream.ConnectionEvent",
+ "usr": "s:10Starscream15ConnectionEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream15ConnectionEventO6binaryyAC10Foundation4DataVcACmF",
+ "mangledName": "$s10Starscream15ConnectionEventO6binaryyAC10Foundation4DataVcACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "pong",
+ "printedName": "pong",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ConnectionEvent.Type) -> (Foundation.Data?) -> Starscream.ConnectionEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Foundation.Data?) -> Starscream.ConnectionEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionEvent",
+ "printedName": "Starscream.ConnectionEvent",
+ "usr": "s:10Starscream15ConnectionEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Foundation.Data?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ConnectionEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionEvent",
+ "printedName": "Starscream.ConnectionEvent",
+ "usr": "s:10Starscream15ConnectionEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream15ConnectionEventO4pongyAC10Foundation4DataVSgcACmF",
+ "mangledName": "$s10Starscream15ConnectionEventO4pongyAC10Foundation4DataVSgcACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "ping",
+ "printedName": "ping",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ConnectionEvent.Type) -> (Foundation.Data?) -> Starscream.ConnectionEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Foundation.Data?) -> Starscream.ConnectionEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionEvent",
+ "printedName": "Starscream.ConnectionEvent",
+ "usr": "s:10Starscream15ConnectionEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Foundation.Data?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ConnectionEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionEvent",
+ "printedName": "Starscream.ConnectionEvent",
+ "usr": "s:10Starscream15ConnectionEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream15ConnectionEventO4pingyAC10Foundation4DataVSgcACmF",
+ "mangledName": "$s10Starscream15ConnectionEventO4pingyAC10Foundation4DataVSgcACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "error",
+ "printedName": "error",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ConnectionEvent.Type) -> (Swift.Error) -> Starscream.ConnectionEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.Error) -> Starscream.ConnectionEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionEvent",
+ "printedName": "Starscream.ConnectionEvent",
+ "usr": "s:10Starscream15ConnectionEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Error",
+ "printedName": "Swift.Error",
+ "usr": "s:s5ErrorP"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ConnectionEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionEvent",
+ "printedName": "Starscream.ConnectionEvent",
+ "usr": "s:10Starscream15ConnectionEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream15ConnectionEventO5erroryACs5Error_pcACmF",
+ "mangledName": "$s10Starscream15ConnectionEventO5erroryACs5Error_pcACmF",
+ "moduleName": "Starscream"
+ }
+ ],
+ "declKind": "Enum",
+ "usr": "s:10Starscream15ConnectionEventO",
+ "mangledName": "$s10Starscream15ConnectionEventO",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "Connection",
+ "printedName": "Connection",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "write",
+ "printedName": "write(data:opcode:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream10ConnectionP5write4data6opcodey10Foundation4DataV_AA11FrameOpCodeOtF",
+ "mangledName": "$s10Starscream10ConnectionP5write4data6opcodey10Foundation4DataV_AA11FrameOpCodeOtF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Connection>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream10ConnectionP",
+ "mangledName": "$s10Starscream10ConnectionP",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "ConnectionDelegate",
+ "printedName": "ConnectionDelegate",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "didReceive",
+ "printedName": "didReceive(event:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "ServerEvent",
+ "printedName": "Starscream.ServerEvent",
+ "usr": "s:10Starscream11ServerEventO"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream18ConnectionDelegateP10didReceive5eventyAA11ServerEventO_tF",
+ "mangledName": "$s10Starscream18ConnectionDelegateP10didReceive5eventyAA11ServerEventO_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.ConnectionDelegate>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream18ConnectionDelegateP",
+ "mangledName": "$s10Starscream18ConnectionDelegateP",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 : AnyObject>",
+ "sugared_genericSig": "",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "ServerEvent",
+ "printedName": "ServerEvent",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "connected",
+ "printedName": "connected",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ServerEvent.Type) -> (Starscream.Connection, [Swift.String : Swift.String]) -> Starscream.ServerEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.Connection, [Swift.String : Swift.String]) -> Starscream.ServerEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ServerEvent",
+ "printedName": "Starscream.ServerEvent",
+ "usr": "s:10Starscream11ServerEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Tuple",
+ "printedName": "(Starscream.Connection, [Swift.String : Swift.String])",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Connection",
+ "printedName": "Starscream.Connection",
+ "usr": "s:10Starscream10ConnectionP"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Dictionary",
+ "printedName": "[Swift.String : Swift.String]",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "usr": "s:SD"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ServerEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ServerEvent",
+ "printedName": "Starscream.ServerEvent",
+ "usr": "s:10Starscream11ServerEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream11ServerEventO9connectedyAcA10Connection_p_SDyS2SGtcACmF",
+ "mangledName": "$s10Starscream11ServerEventO9connectedyAcA10Connection_p_SDyS2SGtcACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "disconnected",
+ "printedName": "disconnected",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ServerEvent.Type) -> (Starscream.Connection, Swift.String, Swift.UInt16) -> Starscream.ServerEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.Connection, Swift.String, Swift.UInt16) -> Starscream.ServerEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ServerEvent",
+ "printedName": "Starscream.ServerEvent",
+ "usr": "s:10Starscream11ServerEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Tuple",
+ "printedName": "(Starscream.Connection, Swift.String, Swift.UInt16)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Connection",
+ "printedName": "Starscream.Connection",
+ "usr": "s:10Starscream10ConnectionP"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ServerEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ServerEvent",
+ "printedName": "Starscream.ServerEvent",
+ "usr": "s:10Starscream11ServerEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream11ServerEventO12disconnectedyAcA10Connection_p_SSs6UInt16VtcACmF",
+ "mangledName": "$s10Starscream11ServerEventO12disconnectedyAcA10Connection_p_SSs6UInt16VtcACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "text",
+ "printedName": "text",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ServerEvent.Type) -> (Starscream.Connection, Swift.String) -> Starscream.ServerEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.Connection, Swift.String) -> Starscream.ServerEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ServerEvent",
+ "printedName": "Starscream.ServerEvent",
+ "usr": "s:10Starscream11ServerEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Tuple",
+ "printedName": "(Starscream.Connection, Swift.String)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Connection",
+ "printedName": "Starscream.Connection",
+ "usr": "s:10Starscream10ConnectionP"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ServerEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ServerEvent",
+ "printedName": "Starscream.ServerEvent",
+ "usr": "s:10Starscream11ServerEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream11ServerEventO4textyAcA10Connection_p_SStcACmF",
+ "mangledName": "$s10Starscream11ServerEventO4textyAcA10Connection_p_SStcACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "binary",
+ "printedName": "binary",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ServerEvent.Type) -> (Starscream.Connection, Foundation.Data) -> Starscream.ServerEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.Connection, Foundation.Data) -> Starscream.ServerEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ServerEvent",
+ "printedName": "Starscream.ServerEvent",
+ "usr": "s:10Starscream11ServerEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Tuple",
+ "printedName": "(Starscream.Connection, Foundation.Data)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Connection",
+ "printedName": "Starscream.Connection",
+ "usr": "s:10Starscream10ConnectionP"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ServerEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ServerEvent",
+ "printedName": "Starscream.ServerEvent",
+ "usr": "s:10Starscream11ServerEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream11ServerEventO6binaryyAcA10Connection_p_10Foundation4DataVtcACmF",
+ "mangledName": "$s10Starscream11ServerEventO6binaryyAcA10Connection_p_10Foundation4DataVtcACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "pong",
+ "printedName": "pong",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ServerEvent.Type) -> (Starscream.Connection, Foundation.Data?) -> Starscream.ServerEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.Connection, Foundation.Data?) -> Starscream.ServerEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ServerEvent",
+ "printedName": "Starscream.ServerEvent",
+ "usr": "s:10Starscream11ServerEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Tuple",
+ "printedName": "(Starscream.Connection, Foundation.Data?)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Connection",
+ "printedName": "Starscream.Connection",
+ "usr": "s:10Starscream10ConnectionP"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Foundation.Data?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ServerEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ServerEvent",
+ "printedName": "Starscream.ServerEvent",
+ "usr": "s:10Starscream11ServerEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream11ServerEventO4pongyAcA10Connection_p_10Foundation4DataVSgtcACmF",
+ "mangledName": "$s10Starscream11ServerEventO4pongyAcA10Connection_p_10Foundation4DataVSgtcACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "ping",
+ "printedName": "ping",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ServerEvent.Type) -> (Starscream.Connection, Foundation.Data?) -> Starscream.ServerEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.Connection, Foundation.Data?) -> Starscream.ServerEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ServerEvent",
+ "printedName": "Starscream.ServerEvent",
+ "usr": "s:10Starscream11ServerEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Tuple",
+ "printedName": "(Starscream.Connection, Foundation.Data?)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Connection",
+ "printedName": "Starscream.Connection",
+ "usr": "s:10Starscream10ConnectionP"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Foundation.Data?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ServerEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ServerEvent",
+ "printedName": "Starscream.ServerEvent",
+ "usr": "s:10Starscream11ServerEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream11ServerEventO4pingyAcA10Connection_p_10Foundation4DataVSgtcACmF",
+ "mangledName": "$s10Starscream11ServerEventO4pingyAcA10Connection_p_10Foundation4DataVSgtcACmF",
+ "moduleName": "Starscream"
+ }
+ ],
+ "declKind": "Enum",
+ "usr": "s:10Starscream11ServerEventO",
+ "mangledName": "$s10Starscream11ServerEventO",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "Server",
+ "printedName": "Server",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "start",
+ "printedName": "start(address:port:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Swift.Error?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Error",
+ "printedName": "Swift.Error",
+ "usr": "s:s5ErrorP"
+ }
+ ],
+ "usr": "s:Sq"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream6ServerP5start7address4ports5Error_pSgSS_s6UInt16VtF",
+ "mangledName": "$s10Starscream6ServerP5start7address4ports5Error_pSgSS_s6UInt16VtF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Server>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream6ServerP",
+ "mangledName": "$s10Starscream6ServerP",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "StringHTTPHandler",
+ "printedName": "StringHTTPHandler",
+ "children": [
+ {
+ "kind": "Constructor",
+ "name": "init",
+ "printedName": "init()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "StringHTTPHandler",
+ "printedName": "Starscream.StringHTTPHandler",
+ "usr": "s:10Starscream17StringHTTPHandlerC"
+ }
+ ],
+ "declKind": "Constructor",
+ "usr": "s:10Starscream17StringHTTPHandlerCACycfc",
+ "mangledName": "$s10Starscream17StringHTTPHandlerCACycfc",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "init_kind": "Designated"
+ },
+ {
+ "kind": "Function",
+ "name": "convert",
+ "printedName": "convert(request:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "URLRequest",
+ "printedName": "Foundation.URLRequest",
+ "usr": "s:10Foundation10URLRequestV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream17StringHTTPHandlerC7convert7request10Foundation4DataVAF10URLRequestV_tF",
+ "mangledName": "$s10Starscream17StringHTTPHandlerC7convert7request10Foundation4DataVAF10URLRequestV_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "parse",
+ "printedName": "parse(data:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream17StringHTTPHandlerC5parse4dataSi10Foundation4DataV_tF",
+ "mangledName": "$s10Starscream17StringHTTPHandlerC5parse4dataSi10Foundation4DataV_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "register",
+ "printedName": "register(delegate:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "HTTPHandlerDelegate",
+ "printedName": "Starscream.HTTPHandlerDelegate",
+ "usr": "s:10Starscream19HTTPHandlerDelegateP"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream17StringHTTPHandlerC8register8delegateyAA0C8Delegate_p_tF",
+ "mangledName": "$s10Starscream17StringHTTPHandlerC8register8delegateyAA0C8Delegate_p_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Class",
+ "usr": "s:10Starscream17StringHTTPHandlerC",
+ "mangledName": "$s10Starscream17StringHTTPHandlerC",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "HTTPHandler",
+ "printedName": "HTTPHandler",
+ "usr": "s:10Starscream11HTTPHandlerP",
+ "mangledName": "$s10Starscream11HTTPHandlerP"
+ }
+ ]
+ },
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Import",
+ "name": "Network",
+ "printedName": "Network",
+ "declKind": "Import",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "TCPTransportError",
+ "printedName": "TCPTransportError",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "invalidRequest",
+ "printedName": "invalidRequest",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.TCPTransportError.Type) -> Starscream.TCPTransportError",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "TCPTransportError",
+ "printedName": "Starscream.TCPTransportError",
+ "usr": "s:10Starscream17TCPTransportErrorO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.TCPTransportError.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "TCPTransportError",
+ "printedName": "Starscream.TCPTransportError",
+ "usr": "s:10Starscream17TCPTransportErrorO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream17TCPTransportErrorO14invalidRequestyA2CmF",
+ "mangledName": "$s10Starscream17TCPTransportErrorO14invalidRequestyA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Function",
+ "name": "==",
+ "printedName": "==(_:_:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "TCPTransportError",
+ "printedName": "Starscream.TCPTransportError",
+ "usr": "s:10Starscream17TCPTransportErrorO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "TCPTransportError",
+ "printedName": "Starscream.TCPTransportError",
+ "usr": "s:10Starscream17TCPTransportErrorO"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream17TCPTransportErrorO2eeoiySbAC_ACtFZ",
+ "mangledName": "$s10Starscream17TCPTransportErrorO2eeoiySbAC_ACtFZ",
+ "moduleName": "Starscream",
+ "static": true,
+ "implicit": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Var",
+ "name": "hashValue",
+ "printedName": "hashValue",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ }
+ ],
+ "declKind": "Var",
+ "usr": "s:10Starscream17TCPTransportErrorO9hashValueSivp",
+ "mangledName": "$s10Starscream17TCPTransportErrorO9hashValueSivp",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessors": [
+ {
+ "kind": "Accessor",
+ "name": "Get",
+ "printedName": "Get()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream17TCPTransportErrorO9hashValueSivg",
+ "mangledName": "$s10Starscream17TCPTransportErrorO9hashValueSivg",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "get"
+ }
+ ]
+ },
+ {
+ "kind": "Function",
+ "name": "hash",
+ "printedName": "hash(into:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Hasher",
+ "printedName": "Swift.Hasher",
+ "paramValueOwnership": "InOut",
+ "usr": "s:s6HasherV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream17TCPTransportErrorO4hash4intoys6HasherVz_tF",
+ "mangledName": "$s10Starscream17TCPTransportErrorO4hash4intoys6HasherVz_tF",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Enum",
+ "usr": "s:10Starscream17TCPTransportErrorO",
+ "mangledName": "$s10Starscream17TCPTransportErrorO",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "Equatable",
+ "printedName": "Equatable",
+ "usr": "s:SQ",
+ "mangledName": "$sSQ"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Hashable",
+ "printedName": "Hashable",
+ "usr": "s:SH",
+ "mangledName": "$sSH"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Error",
+ "printedName": "Error",
+ "usr": "s:s5ErrorP",
+ "mangledName": "$ss5ErrorP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Sendable",
+ "printedName": "Sendable",
+ "usr": "s:s8SendableP",
+ "mangledName": "$ss8SendableP"
+ }
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "TCPTransport",
+ "printedName": "TCPTransport",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "usingTLS",
+ "printedName": "usingTLS",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Var",
+ "usr": "s:10Starscream12TCPTransportC8usingTLSSbvp",
+ "mangledName": "$s10Starscream12TCPTransportC8usingTLSSbvp",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "accessors": [
+ {
+ "kind": "Accessor",
+ "name": "Get",
+ "printedName": "Get()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream12TCPTransportC8usingTLSSbvg",
+ "mangledName": "$s10Starscream12TCPTransportC8usingTLSSbvg",
+ "moduleName": "Starscream",
+ "accessorKind": "get"
+ }
+ ]
+ },
+ {
+ "kind": "Constructor",
+ "name": "init",
+ "printedName": "init(connection:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "TCPTransport",
+ "printedName": "Starscream.TCPTransport",
+ "usr": "s:10Starscream12TCPTransportC"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "NWConnection",
+ "printedName": "Network.NWConnection",
+ "usr": "s:7Network12NWConnectionC"
+ }
+ ],
+ "declKind": "Constructor",
+ "usr": "s:10Starscream12TCPTransportC10connectionAC7Network12NWConnectionC_tcfc",
+ "mangledName": "$s10Starscream12TCPTransportC10connectionAC7Network12NWConnectionC_tcfc",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "init_kind": "Designated"
+ },
+ {
+ "kind": "Constructor",
+ "name": "init",
+ "printedName": "init()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "TCPTransport",
+ "printedName": "Starscream.TCPTransport",
+ "usr": "s:10Starscream12TCPTransportC"
+ }
+ ],
+ "declKind": "Constructor",
+ "usr": "s:10Starscream12TCPTransportCACycfc",
+ "mangledName": "$s10Starscream12TCPTransportCACycfc",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "init_kind": "Designated"
+ },
+ {
+ "kind": "Function",
+ "name": "connect",
+ "printedName": "connect(url:timeout:certificatePinning:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "URL",
+ "printedName": "Foundation.URL",
+ "usr": "s:10Foundation3URLV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Double",
+ "printedName": "Swift.Double",
+ "hasDefaultArg": true,
+ "usr": "s:Sd"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Starscream.CertificatePinning?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CertificatePinning",
+ "printedName": "Starscream.CertificatePinning",
+ "usr": "s:10Starscream18CertificatePinningP"
+ }
+ ],
+ "hasDefaultArg": true,
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream12TCPTransportC7connect3url7timeout18certificatePinningy10Foundation3URLV_SdAA011CertificateG0_pSgtF",
+ "mangledName": "$s10Starscream12TCPTransportC7connect3url7timeout18certificatePinningy10Foundation3URLV_SdAA011CertificateG0_pSgtF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "disconnect",
+ "printedName": "disconnect()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream12TCPTransportC10disconnectyyF",
+ "mangledName": "$s10Starscream12TCPTransportC10disconnectyyF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "register",
+ "printedName": "register(delegate:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "TransportEventClient",
+ "printedName": "Starscream.TransportEventClient",
+ "usr": "s:10Starscream20TransportEventClientP"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream12TCPTransportC8register8delegateyAA20TransportEventClient_p_tF",
+ "mangledName": "$s10Starscream12TCPTransportC8register8delegateyAA20TransportEventClient_p_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "write",
+ "printedName": "write(data:completion:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.Error?) -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Swift.Error?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Error",
+ "printedName": "Swift.Error",
+ "usr": "s:s5ErrorP"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ]
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream12TCPTransportC5write4data10completiony10Foundation4DataV_ys5Error_pSgctF",
+ "mangledName": "$s10Starscream12TCPTransportC5write4data10completiony10Foundation4DataV_ys5Error_pSgctF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Class",
+ "usr": "s:10Starscream12TCPTransportC",
+ "mangledName": "$s10Starscream12TCPTransportC",
+ "moduleName": "Starscream",
+ "intro_Macosx": "10.14",
+ "intro_iOS": "12.0",
+ "intro_tvOS": "12.0",
+ "intro_watchOS": "5.0",
+ "declAttributes": [
+ "AccessControl",
+ "Available",
+ "Available",
+ "Available",
+ "Available"
+ ],
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "Transport",
+ "printedName": "Transport",
+ "usr": "s:10Starscream9TransportP",
+ "mangledName": "$s10Starscream9TransportP"
+ }
+ ]
+ },
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "ConnectionState",
+ "printedName": "ConnectionState",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "connected",
+ "printedName": "connected",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ConnectionState.Type) -> Starscream.ConnectionState",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ConnectionState.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream15ConnectionStateO9connectedyA2CmF",
+ "mangledName": "$s10Starscream15ConnectionStateO9connectedyA2CmF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "Var",
+ "name": "waiting",
+ "printedName": "waiting",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ConnectionState.Type) -> Starscream.ConnectionState",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ConnectionState.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream15ConnectionStateO7waitingyA2CmF",
+ "mangledName": "$s10Starscream15ConnectionStateO7waitingyA2CmF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "Var",
+ "name": "cancelled",
+ "printedName": "cancelled",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ConnectionState.Type) -> Starscream.ConnectionState",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ConnectionState.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream15ConnectionStateO9cancelledyA2CmF",
+ "mangledName": "$s10Starscream15ConnectionStateO9cancelledyA2CmF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "Var",
+ "name": "failed",
+ "printedName": "failed",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ConnectionState.Type) -> (Swift.Error?) -> Starscream.ConnectionState",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.Error?) -> Starscream.ConnectionState",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Swift.Error?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Error",
+ "printedName": "Swift.Error",
+ "usr": "s:s5ErrorP"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ConnectionState.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream15ConnectionStateO6failedyACs5Error_pSgcACmF",
+ "mangledName": "$s10Starscream15ConnectionStateO6failedyACs5Error_pSgcACmF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "Var",
+ "name": "viability",
+ "printedName": "viability",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ConnectionState.Type) -> (Swift.Bool) -> Starscream.ConnectionState",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.Bool) -> Starscream.ConnectionState",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ConnectionState.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream15ConnectionStateO9viabilityyACSbcACmF",
+ "mangledName": "$s10Starscream15ConnectionStateO9viabilityyACSbcACmF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "Var",
+ "name": "shouldReconnect",
+ "printedName": "shouldReconnect",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ConnectionState.Type) -> (Swift.Bool) -> Starscream.ConnectionState",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.Bool) -> Starscream.ConnectionState",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ConnectionState.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream15ConnectionStateO15shouldReconnectyACSbcACmF",
+ "mangledName": "$s10Starscream15ConnectionStateO15shouldReconnectyACSbcACmF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "Var",
+ "name": "receive",
+ "printedName": "receive",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ConnectionState.Type) -> (Foundation.Data) -> Starscream.ConnectionState",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Foundation.Data) -> Starscream.ConnectionState",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ConnectionState.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream15ConnectionStateO7receiveyAC10Foundation4DataVcACmF",
+ "mangledName": "$s10Starscream15ConnectionStateO7receiveyAC10Foundation4DataVcACmF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "Var",
+ "name": "peerClosed",
+ "printedName": "peerClosed",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ConnectionState.Type) -> Starscream.ConnectionState",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ConnectionState.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream15ConnectionStateO10peerClosedyA2CmF",
+ "mangledName": "$s10Starscream15ConnectionStateO10peerClosedyA2CmF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ }
+ ],
+ "declKind": "Enum",
+ "usr": "s:10Starscream15ConnectionStateO",
+ "mangledName": "$s10Starscream15ConnectionStateO",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "TransportEventClient",
+ "printedName": "TransportEventClient",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "connectionChanged",
+ "printedName": "connectionChanged(state:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream20TransportEventClientP17connectionChanged5stateyAA15ConnectionStateO_tF",
+ "mangledName": "$s10Starscream20TransportEventClientP17connectionChanged5stateyAA15ConnectionStateO_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.TransportEventClient>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream20TransportEventClientP",
+ "mangledName": "$s10Starscream20TransportEventClientP",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 : AnyObject>",
+ "sugared_genericSig": "",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "Transport",
+ "printedName": "Transport",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "register",
+ "printedName": "register(delegate:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "TransportEventClient",
+ "printedName": "Starscream.TransportEventClient",
+ "usr": "s:10Starscream20TransportEventClientP"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream9TransportP8register8delegateyAA0B11EventClient_p_tF",
+ "mangledName": "$s10Starscream9TransportP8register8delegateyAA0B11EventClient_p_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Transport>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "connect",
+ "printedName": "connect(url:timeout:certificatePinning:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "URL",
+ "printedName": "Foundation.URL",
+ "usr": "s:10Foundation3URLV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Double",
+ "printedName": "Swift.Double",
+ "usr": "s:Sd"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Starscream.CertificatePinning?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CertificatePinning",
+ "printedName": "Starscream.CertificatePinning",
+ "usr": "s:10Starscream18CertificatePinningP"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream9TransportP7connect3url7timeout18certificatePinningy10Foundation3URLV_SdAA011CertificateG0_pSgtF",
+ "mangledName": "$s10Starscream9TransportP7connect3url7timeout18certificatePinningy10Foundation3URLV_SdAA011CertificateG0_pSgtF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Transport>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "disconnect",
+ "printedName": "disconnect()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream9TransportP10disconnectyyF",
+ "mangledName": "$s10Starscream9TransportP10disconnectyyF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Transport>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "write",
+ "printedName": "write(data:completion:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.Error?) -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Swift.Error?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Error",
+ "printedName": "Swift.Error",
+ "usr": "s:s5ErrorP"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ]
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream9TransportP5write4data10completiony10Foundation4DataV_ys5Error_pSgctF",
+ "mangledName": "$s10Starscream9TransportP5write4data10completiony10Foundation4DataV_ys5Error_pSgctF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Transport>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Var",
+ "name": "usingTLS",
+ "printedName": "usingTLS",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Var",
+ "usr": "s:10Starscream9TransportP8usingTLSSbvp",
+ "mangledName": "$s10Starscream9TransportP8usingTLSSbvp",
+ "moduleName": "Starscream",
+ "protocolReq": true,
+ "accessors": [
+ {
+ "kind": "Accessor",
+ "name": "Get",
+ "printedName": "Get()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream9TransportP8usingTLSSbvg",
+ "mangledName": "$s10Starscream9TransportP8usingTLSSbvg",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Transport>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "accessorKind": "get"
+ }
+ ]
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream9TransportP",
+ "mangledName": "$s10Starscream9TransportP",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 : AnyObject>",
+ "sugared_genericSig": "",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "ErrorType",
+ "printedName": "ErrorType",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "compressionError",
+ "printedName": "compressionError",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ErrorType.Type) -> Starscream.ErrorType",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ErrorType",
+ "printedName": "Starscream.ErrorType",
+ "usr": "s:10Starscream9ErrorTypeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ErrorType.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ErrorType",
+ "printedName": "Starscream.ErrorType",
+ "usr": "s:10Starscream9ErrorTypeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream9ErrorTypeO011compressionB0yA2CmF",
+ "mangledName": "$s10Starscream9ErrorTypeO011compressionB0yA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "securityError",
+ "printedName": "securityError",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ErrorType.Type) -> Starscream.ErrorType",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ErrorType",
+ "printedName": "Starscream.ErrorType",
+ "usr": "s:10Starscream9ErrorTypeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ErrorType.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ErrorType",
+ "printedName": "Starscream.ErrorType",
+ "usr": "s:10Starscream9ErrorTypeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream9ErrorTypeO08securityB0yA2CmF",
+ "mangledName": "$s10Starscream9ErrorTypeO08securityB0yA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "protocolError",
+ "printedName": "protocolError",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ErrorType.Type) -> Starscream.ErrorType",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ErrorType",
+ "printedName": "Starscream.ErrorType",
+ "usr": "s:10Starscream9ErrorTypeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ErrorType.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ErrorType",
+ "printedName": "Starscream.ErrorType",
+ "usr": "s:10Starscream9ErrorTypeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream9ErrorTypeO08protocolB0yA2CmF",
+ "mangledName": "$s10Starscream9ErrorTypeO08protocolB0yA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "serverError",
+ "printedName": "serverError",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ErrorType.Type) -> Starscream.ErrorType",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ErrorType",
+ "printedName": "Starscream.ErrorType",
+ "usr": "s:10Starscream9ErrorTypeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ErrorType.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ErrorType",
+ "printedName": "Starscream.ErrorType",
+ "usr": "s:10Starscream9ErrorTypeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream9ErrorTypeO06serverB0yA2CmF",
+ "mangledName": "$s10Starscream9ErrorTypeO06serverB0yA2CmF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "Function",
+ "name": "==",
+ "printedName": "==(_:_:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "ErrorType",
+ "printedName": "Starscream.ErrorType",
+ "usr": "s:10Starscream9ErrorTypeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "ErrorType",
+ "printedName": "Starscream.ErrorType",
+ "usr": "s:10Starscream9ErrorTypeO"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream9ErrorTypeO2eeoiySbAC_ACtFZ",
+ "mangledName": "$s10Starscream9ErrorTypeO2eeoiySbAC_ACtFZ",
+ "moduleName": "Starscream",
+ "static": true,
+ "implicit": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Var",
+ "name": "hashValue",
+ "printedName": "hashValue",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ }
+ ],
+ "declKind": "Var",
+ "usr": "s:10Starscream9ErrorTypeO9hashValueSivp",
+ "mangledName": "$s10Starscream9ErrorTypeO9hashValueSivp",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessors": [
+ {
+ "kind": "Accessor",
+ "name": "Get",
+ "printedName": "Get()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream9ErrorTypeO9hashValueSivg",
+ "mangledName": "$s10Starscream9ErrorTypeO9hashValueSivg",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "get"
+ }
+ ]
+ },
+ {
+ "kind": "Function",
+ "name": "hash",
+ "printedName": "hash(into:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Hasher",
+ "printedName": "Swift.Hasher",
+ "paramValueOwnership": "InOut",
+ "usr": "s:s6HasherV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream9ErrorTypeO4hash4intoys6HasherVz_tF",
+ "mangledName": "$s10Starscream9ErrorTypeO4hash4intoys6HasherVz_tF",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Enum",
+ "usr": "s:10Starscream9ErrorTypeO",
+ "mangledName": "$s10Starscream9ErrorTypeO",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "Equatable",
+ "printedName": "Equatable",
+ "usr": "s:SQ",
+ "mangledName": "$sSQ"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Hashable",
+ "printedName": "Hashable",
+ "usr": "s:SH",
+ "mangledName": "$sSH"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Error",
+ "printedName": "Error",
+ "usr": "s:s5ErrorP",
+ "mangledName": "$ss5ErrorP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Sendable",
+ "printedName": "Sendable",
+ "usr": "s:s8SendableP",
+ "mangledName": "$ss8SendableP"
+ }
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "WSError",
+ "printedName": "WSError",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "type",
+ "printedName": "type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ErrorType",
+ "printedName": "Starscream.ErrorType",
+ "usr": "s:10Starscream9ErrorTypeO"
+ }
+ ],
+ "declKind": "Var",
+ "usr": "s:10Starscream7WSErrorV4typeAA9ErrorTypeOvp",
+ "mangledName": "$s10Starscream7WSErrorV4typeAA9ErrorTypeOvp",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "HasStorage",
+ "AccessControl"
+ ],
+ "isLet": true,
+ "hasStorage": true,
+ "accessors": [
+ {
+ "kind": "Accessor",
+ "name": "Get",
+ "printedName": "Get()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ErrorType",
+ "printedName": "Starscream.ErrorType",
+ "usr": "s:10Starscream9ErrorTypeO"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream7WSErrorV4typeAA9ErrorTypeOvg",
+ "mangledName": "$s10Starscream7WSErrorV4typeAA9ErrorTypeOvg",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "get"
+ }
+ ]
+ },
+ {
+ "kind": "Var",
+ "name": "message",
+ "printedName": "message",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "declKind": "Var",
+ "usr": "s:10Starscream7WSErrorV7messageSSvp",
+ "mangledName": "$s10Starscream7WSErrorV7messageSSvp",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "HasStorage",
+ "AccessControl"
+ ],
+ "isLet": true,
+ "hasStorage": true,
+ "accessors": [
+ {
+ "kind": "Accessor",
+ "name": "Get",
+ "printedName": "Get()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream7WSErrorV7messageSSvg",
+ "mangledName": "$s10Starscream7WSErrorV7messageSSvg",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "get"
+ }
+ ]
+ },
+ {
+ "kind": "Var",
+ "name": "code",
+ "printedName": "code",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ],
+ "declKind": "Var",
+ "usr": "s:10Starscream7WSErrorV4codes6UInt16Vvp",
+ "mangledName": "$s10Starscream7WSErrorV4codes6UInt16Vvp",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "HasStorage",
+ "AccessControl"
+ ],
+ "isLet": true,
+ "hasStorage": true,
+ "accessors": [
+ {
+ "kind": "Accessor",
+ "name": "Get",
+ "printedName": "Get()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream7WSErrorV4codes6UInt16Vvg",
+ "mangledName": "$s10Starscream7WSErrorV4codes6UInt16Vvg",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "get"
+ }
+ ]
+ },
+ {
+ "kind": "Constructor",
+ "name": "init",
+ "printedName": "init(type:message:code:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "WSError",
+ "printedName": "Starscream.WSError",
+ "usr": "s:10Starscream7WSErrorV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "ErrorType",
+ "printedName": "Starscream.ErrorType",
+ "usr": "s:10Starscream9ErrorTypeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ],
+ "declKind": "Constructor",
+ "usr": "s:10Starscream7WSErrorV4type7message4codeAcA9ErrorTypeO_SSs6UInt16Vtcfc",
+ "mangledName": "$s10Starscream7WSErrorV4type7message4codeAcA9ErrorTypeO_SSs6UInt16Vtcfc",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "init_kind": "Designated"
+ }
+ ],
+ "declKind": "Struct",
+ "usr": "s:10Starscream7WSErrorV",
+ "mangledName": "$s10Starscream7WSErrorV",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "Error",
+ "printedName": "Error",
+ "usr": "s:s5ErrorP",
+ "mangledName": "$ss5ErrorP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Sendable",
+ "printedName": "Sendable",
+ "usr": "s:s8SendableP",
+ "mangledName": "$ss8SendableP"
+ }
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "WebSocketClient",
+ "printedName": "WebSocketClient",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "connect",
+ "printedName": "connect()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream15WebSocketClientP7connectyyF",
+ "mangledName": "$s10Starscream15WebSocketClientP7connectyyF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.WebSocketClient>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "disconnect",
+ "printedName": "disconnect(closeCode:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream15WebSocketClientP10disconnect9closeCodeys6UInt16V_tF",
+ "mangledName": "$s10Starscream15WebSocketClientP10disconnect9closeCodeys6UInt16V_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.WebSocketClient>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "write",
+ "printedName": "write(string:completion:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "(() -> ())?",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "() -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream15WebSocketClientP5write6string10completionySS_yycSgtF",
+ "mangledName": "$s10Starscream15WebSocketClientP5write6string10completionySS_yycSgtF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.WebSocketClient>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "write",
+ "printedName": "write(stringData:completion:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "(() -> ())?",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "() -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream15WebSocketClientP5write10stringData10completiony10Foundation0G0V_yycSgtF",
+ "mangledName": "$s10Starscream15WebSocketClientP5write10stringData10completiony10Foundation0G0V_yycSgtF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.WebSocketClient>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "write",
+ "printedName": "write(data:completion:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "(() -> ())?",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "() -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream15WebSocketClientP5write4data10completiony10Foundation4DataV_yycSgtF",
+ "mangledName": "$s10Starscream15WebSocketClientP5write4data10completiony10Foundation4DataV_yycSgtF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.WebSocketClient>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "write",
+ "printedName": "write(ping:completion:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "(() -> ())?",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "() -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream15WebSocketClientP5write4ping10completiony10Foundation4DataV_yycSgtF",
+ "mangledName": "$s10Starscream15WebSocketClientP5write4ping10completiony10Foundation4DataV_yycSgtF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.WebSocketClient>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "write",
+ "printedName": "write(pong:completion:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "(() -> ())?",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "() -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream15WebSocketClientP5write4pong10completiony10Foundation4DataV_yycSgtF",
+ "mangledName": "$s10Starscream15WebSocketClientP5write4pong10completiony10Foundation4DataV_yycSgtF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.WebSocketClient>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "write",
+ "printedName": "write(string:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream15WebSocketClientPAAE5write6stringySS_tF",
+ "mangledName": "$s10Starscream15WebSocketClientPAAE5write6stringySS_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.WebSocketClient>",
+ "sugared_genericSig": "",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "isFromExtension": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "write",
+ "printedName": "write(data:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream15WebSocketClientPAAE5write4datay10Foundation4DataV_tF",
+ "mangledName": "$s10Starscream15WebSocketClientPAAE5write4datay10Foundation4DataV_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.WebSocketClient>",
+ "sugared_genericSig": "",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "isFromExtension": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "write",
+ "printedName": "write(ping:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream15WebSocketClientPAAE5write4pingy10Foundation4DataV_tF",
+ "mangledName": "$s10Starscream15WebSocketClientPAAE5write4pingy10Foundation4DataV_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.WebSocketClient>",
+ "sugared_genericSig": "",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "isFromExtension": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "write",
+ "printedName": "write(pong:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream15WebSocketClientPAAE5write4pongy10Foundation4DataV_tF",
+ "mangledName": "$s10Starscream15WebSocketClientPAAE5write4pongy10Foundation4DataV_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.WebSocketClient>",
+ "sugared_genericSig": "",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "isFromExtension": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "disconnect",
+ "printedName": "disconnect()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream15WebSocketClientPAAE10disconnectyyF",
+ "mangledName": "$s10Starscream15WebSocketClientPAAE10disconnectyyF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.WebSocketClient>",
+ "sugared_genericSig": "",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "isFromExtension": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream15WebSocketClientP",
+ "mangledName": "$s10Starscream15WebSocketClientP",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 : AnyObject>",
+ "sugared_genericSig": "",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "WebSocketEvent",
+ "printedName": "WebSocketEvent",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "connected",
+ "printedName": "connected",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.WebSocketEvent.Type) -> ([Swift.String : Swift.String]) -> Starscream.WebSocketEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "([Swift.String : Swift.String]) -> Starscream.WebSocketEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocketEvent",
+ "printedName": "Starscream.WebSocketEvent",
+ "usr": "s:10Starscream14WebSocketEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Dictionary",
+ "printedName": "[Swift.String : Swift.String]",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "usr": "s:SD"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.WebSocketEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocketEvent",
+ "printedName": "Starscream.WebSocketEvent",
+ "usr": "s:10Starscream14WebSocketEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream14WebSocketEventO9connectedyACSDyS2SGcACmF",
+ "mangledName": "$s10Starscream14WebSocketEventO9connectedyACSDyS2SGcACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "disconnected",
+ "printedName": "disconnected",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.WebSocketEvent.Type) -> (Swift.String, Swift.UInt16) -> Starscream.WebSocketEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.String, Swift.UInt16) -> Starscream.WebSocketEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocketEvent",
+ "printedName": "Starscream.WebSocketEvent",
+ "usr": "s:10Starscream14WebSocketEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Tuple",
+ "printedName": "(Swift.String, Swift.UInt16)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.WebSocketEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocketEvent",
+ "printedName": "Starscream.WebSocketEvent",
+ "usr": "s:10Starscream14WebSocketEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream14WebSocketEventO12disconnectedyACSS_s6UInt16VtcACmF",
+ "mangledName": "$s10Starscream14WebSocketEventO12disconnectedyACSS_s6UInt16VtcACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "text",
+ "printedName": "text",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.WebSocketEvent.Type) -> (Swift.String) -> Starscream.WebSocketEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.String) -> Starscream.WebSocketEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocketEvent",
+ "printedName": "Starscream.WebSocketEvent",
+ "usr": "s:10Starscream14WebSocketEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.WebSocketEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocketEvent",
+ "printedName": "Starscream.WebSocketEvent",
+ "usr": "s:10Starscream14WebSocketEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream14WebSocketEventO4textyACSScACmF",
+ "mangledName": "$s10Starscream14WebSocketEventO4textyACSScACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "binary",
+ "printedName": "binary",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.WebSocketEvent.Type) -> (Foundation.Data) -> Starscream.WebSocketEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Foundation.Data) -> Starscream.WebSocketEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocketEvent",
+ "printedName": "Starscream.WebSocketEvent",
+ "usr": "s:10Starscream14WebSocketEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.WebSocketEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocketEvent",
+ "printedName": "Starscream.WebSocketEvent",
+ "usr": "s:10Starscream14WebSocketEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream14WebSocketEventO6binaryyAC10Foundation4DataVcACmF",
+ "mangledName": "$s10Starscream14WebSocketEventO6binaryyAC10Foundation4DataVcACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "pong",
+ "printedName": "pong",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.WebSocketEvent.Type) -> (Foundation.Data?) -> Starscream.WebSocketEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Foundation.Data?) -> Starscream.WebSocketEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocketEvent",
+ "printedName": "Starscream.WebSocketEvent",
+ "usr": "s:10Starscream14WebSocketEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Foundation.Data?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.WebSocketEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocketEvent",
+ "printedName": "Starscream.WebSocketEvent",
+ "usr": "s:10Starscream14WebSocketEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream14WebSocketEventO4pongyAC10Foundation4DataVSgcACmF",
+ "mangledName": "$s10Starscream14WebSocketEventO4pongyAC10Foundation4DataVSgcACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "ping",
+ "printedName": "ping",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.WebSocketEvent.Type) -> (Foundation.Data?) -> Starscream.WebSocketEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Foundation.Data?) -> Starscream.WebSocketEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocketEvent",
+ "printedName": "Starscream.WebSocketEvent",
+ "usr": "s:10Starscream14WebSocketEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Foundation.Data?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.WebSocketEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocketEvent",
+ "printedName": "Starscream.WebSocketEvent",
+ "usr": "s:10Starscream14WebSocketEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream14WebSocketEventO4pingyAC10Foundation4DataVSgcACmF",
+ "mangledName": "$s10Starscream14WebSocketEventO4pingyAC10Foundation4DataVSgcACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "error",
+ "printedName": "error",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.WebSocketEvent.Type) -> (Swift.Error?) -> Starscream.WebSocketEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.Error?) -> Starscream.WebSocketEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocketEvent",
+ "printedName": "Starscream.WebSocketEvent",
+ "usr": "s:10Starscream14WebSocketEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Swift.Error?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Error",
+ "printedName": "Swift.Error",
+ "usr": "s:s5ErrorP"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.WebSocketEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocketEvent",
+ "printedName": "Starscream.WebSocketEvent",
+ "usr": "s:10Starscream14WebSocketEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream14WebSocketEventO5erroryACs5Error_pSgcACmF",
+ "mangledName": "$s10Starscream14WebSocketEventO5erroryACs5Error_pSgcACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "viabilityChanged",
+ "printedName": "viabilityChanged",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.WebSocketEvent.Type) -> (Swift.Bool) -> Starscream.WebSocketEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.Bool) -> Starscream.WebSocketEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocketEvent",
+ "printedName": "Starscream.WebSocketEvent",
+ "usr": "s:10Starscream14WebSocketEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.WebSocketEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocketEvent",
+ "printedName": "Starscream.WebSocketEvent",
+ "usr": "s:10Starscream14WebSocketEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream14WebSocketEventO16viabilityChangedyACSbcACmF",
+ "mangledName": "$s10Starscream14WebSocketEventO16viabilityChangedyACSbcACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "reconnectSuggested",
+ "printedName": "reconnectSuggested",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.WebSocketEvent.Type) -> (Swift.Bool) -> Starscream.WebSocketEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.Bool) -> Starscream.WebSocketEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocketEvent",
+ "printedName": "Starscream.WebSocketEvent",
+ "usr": "s:10Starscream14WebSocketEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.WebSocketEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocketEvent",
+ "printedName": "Starscream.WebSocketEvent",
+ "usr": "s:10Starscream14WebSocketEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream14WebSocketEventO18reconnectSuggestedyACSbcACmF",
+ "mangledName": "$s10Starscream14WebSocketEventO18reconnectSuggestedyACSbcACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "cancelled",
+ "printedName": "cancelled",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.WebSocketEvent.Type) -> Starscream.WebSocketEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocketEvent",
+ "printedName": "Starscream.WebSocketEvent",
+ "usr": "s:10Starscream14WebSocketEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.WebSocketEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocketEvent",
+ "printedName": "Starscream.WebSocketEvent",
+ "usr": "s:10Starscream14WebSocketEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream14WebSocketEventO9cancelledyA2CmF",
+ "mangledName": "$s10Starscream14WebSocketEventO9cancelledyA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "peerClosed",
+ "printedName": "peerClosed",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.WebSocketEvent.Type) -> Starscream.WebSocketEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocketEvent",
+ "printedName": "Starscream.WebSocketEvent",
+ "usr": "s:10Starscream14WebSocketEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.WebSocketEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocketEvent",
+ "printedName": "Starscream.WebSocketEvent",
+ "usr": "s:10Starscream14WebSocketEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream14WebSocketEventO10peerClosedyA2CmF",
+ "mangledName": "$s10Starscream14WebSocketEventO10peerClosedyA2CmF",
+ "moduleName": "Starscream"
+ }
+ ],
+ "declKind": "Enum",
+ "usr": "s:10Starscream14WebSocketEventO",
+ "mangledName": "$s10Starscream14WebSocketEventO",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "WebSocketDelegate",
+ "printedName": "WebSocketDelegate",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "didReceive",
+ "printedName": "didReceive(event:client:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocketEvent",
+ "printedName": "Starscream.WebSocketEvent",
+ "usr": "s:10Starscream14WebSocketEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocketClient",
+ "printedName": "Starscream.WebSocketClient",
+ "usr": "s:10Starscream15WebSocketClientP"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream17WebSocketDelegateP10didReceive5event6clientyAA0bC5EventO_AA0bC6Client_ptF",
+ "mangledName": "$s10Starscream17WebSocketDelegateP10didReceive5event6clientyAA0bC5EventO_AA0bC6Client_ptF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.WebSocketDelegate>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream17WebSocketDelegateP",
+ "mangledName": "$s10Starscream17WebSocketDelegateP",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 : AnyObject>",
+ "sugared_genericSig": "",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "WebSocket",
+ "printedName": "WebSocket",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "delegate",
+ "printedName": "delegate",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "WeakStorage",
+ "printedName": "Starscream.WebSocketDelegate?"
+ }
+ ],
+ "declKind": "Var",
+ "usr": "s:10Starscream9WebSocketC8delegateAA0bC8Delegate_pSgvp",
+ "mangledName": "$s10Starscream9WebSocketC8delegateAA0bC8Delegate_pSgvp",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "HasInitialValue",
+ "HasStorage",
+ "ReferenceOwnership",
+ "AccessControl"
+ ],
+ "ownership": 1,
+ "hasStorage": true,
+ "accessors": [
+ {
+ "kind": "Accessor",
+ "name": "Get",
+ "printedName": "Get()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Starscream.WebSocketDelegate?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocketDelegate",
+ "printedName": "Starscream.WebSocketDelegate",
+ "usr": "s:10Starscream17WebSocketDelegateP"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream9WebSocketC8delegateAA0bC8Delegate_pSgvg",
+ "mangledName": "$s10Starscream9WebSocketC8delegateAA0bC8Delegate_pSgvg",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "get"
+ },
+ {
+ "kind": "Accessor",
+ "name": "Set",
+ "printedName": "Set()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Starscream.WebSocketDelegate?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocketDelegate",
+ "printedName": "Starscream.WebSocketDelegate",
+ "usr": "s:10Starscream17WebSocketDelegateP"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream9WebSocketC8delegateAA0bC8Delegate_pSgvs",
+ "mangledName": "$s10Starscream9WebSocketC8delegateAA0bC8Delegate_pSgvs",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "set"
+ },
+ {
+ "kind": "Accessor",
+ "name": "Modify",
+ "printedName": "Modify()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream9WebSocketC8delegateAA0bC8Delegate_pSgvM",
+ "mangledName": "$s10Starscream9WebSocketC8delegateAA0bC8Delegate_pSgvM",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "_modify"
+ }
+ ]
+ },
+ {
+ "kind": "Var",
+ "name": "onEvent",
+ "printedName": "onEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "((Starscream.WebSocketEvent) -> ())?",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.WebSocketEvent) -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocketEvent",
+ "printedName": "Starscream.WebSocketEvent",
+ "usr": "s:10Starscream14WebSocketEventO"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Var",
+ "usr": "s:10Starscream9WebSocketC7onEventyAA0bcE0OcSgvp",
+ "mangledName": "$s10Starscream9WebSocketC7onEventyAA0bcE0OcSgvp",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "HasInitialValue",
+ "HasStorage",
+ "AccessControl"
+ ],
+ "hasStorage": true,
+ "accessors": [
+ {
+ "kind": "Accessor",
+ "name": "Get",
+ "printedName": "Get()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "((Starscream.WebSocketEvent) -> ())?",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.WebSocketEvent) -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocketEvent",
+ "printedName": "Starscream.WebSocketEvent",
+ "usr": "s:10Starscream14WebSocketEventO"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream9WebSocketC7onEventyAA0bcE0OcSgvg",
+ "mangledName": "$s10Starscream9WebSocketC7onEventyAA0bcE0OcSgvg",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "get"
+ },
+ {
+ "kind": "Accessor",
+ "name": "Set",
+ "printedName": "Set()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "((Starscream.WebSocketEvent) -> ())?",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.WebSocketEvent) -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocketEvent",
+ "printedName": "Starscream.WebSocketEvent",
+ "usr": "s:10Starscream14WebSocketEventO"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream9WebSocketC7onEventyAA0bcE0OcSgvs",
+ "mangledName": "$s10Starscream9WebSocketC7onEventyAA0bcE0OcSgvs",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "set"
+ },
+ {
+ "kind": "Accessor",
+ "name": "Modify",
+ "printedName": "Modify()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream9WebSocketC7onEventyAA0bcE0OcSgvM",
+ "mangledName": "$s10Starscream9WebSocketC7onEventyAA0bcE0OcSgvM",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "_modify"
+ }
+ ]
+ },
+ {
+ "kind": "Var",
+ "name": "request",
+ "printedName": "request",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "URLRequest",
+ "printedName": "Foundation.URLRequest",
+ "usr": "s:10Foundation10URLRequestV"
+ }
+ ],
+ "declKind": "Var",
+ "usr": "s:10Starscream9WebSocketC7request10Foundation10URLRequestVvp",
+ "mangledName": "$s10Starscream9WebSocketC7request10Foundation10URLRequestVvp",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "HasStorage",
+ "AccessControl"
+ ],
+ "hasStorage": true,
+ "accessors": [
+ {
+ "kind": "Accessor",
+ "name": "Get",
+ "printedName": "Get()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "URLRequest",
+ "printedName": "Foundation.URLRequest",
+ "usr": "s:10Foundation10URLRequestV"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream9WebSocketC7request10Foundation10URLRequestVvg",
+ "mangledName": "$s10Starscream9WebSocketC7request10Foundation10URLRequestVvg",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "get"
+ },
+ {
+ "kind": "Accessor",
+ "name": "Set",
+ "printedName": "Set()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "URLRequest",
+ "printedName": "Foundation.URLRequest",
+ "usr": "s:10Foundation10URLRequestV"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream9WebSocketC7request10Foundation10URLRequestVvs",
+ "mangledName": "$s10Starscream9WebSocketC7request10Foundation10URLRequestVvs",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "set"
+ },
+ {
+ "kind": "Accessor",
+ "name": "Modify",
+ "printedName": "Modify()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream9WebSocketC7request10Foundation10URLRequestVvM",
+ "mangledName": "$s10Starscream9WebSocketC7request10Foundation10URLRequestVvM",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "_modify"
+ }
+ ]
+ },
+ {
+ "kind": "Var",
+ "name": "callbackQueue",
+ "printedName": "callbackQueue",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "DispatchQueue",
+ "printedName": "Dispatch.DispatchQueue",
+ "usr": "c:objc(cs)OS_dispatch_queue"
+ }
+ ],
+ "declKind": "Var",
+ "usr": "s:10Starscream9WebSocketC13callbackQueueSo17OS_dispatch_queueCvp",
+ "mangledName": "$s10Starscream9WebSocketC13callbackQueueSo17OS_dispatch_queueCvp",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "HasInitialValue",
+ "HasStorage",
+ "AccessControl",
+ "RawDocComment"
+ ],
+ "hasStorage": true,
+ "accessors": [
+ {
+ "kind": "Accessor",
+ "name": "Get",
+ "printedName": "Get()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "DispatchQueue",
+ "printedName": "Dispatch.DispatchQueue",
+ "usr": "c:objc(cs)OS_dispatch_queue"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream9WebSocketC13callbackQueueSo17OS_dispatch_queueCvg",
+ "mangledName": "$s10Starscream9WebSocketC13callbackQueueSo17OS_dispatch_queueCvg",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "get"
+ },
+ {
+ "kind": "Accessor",
+ "name": "Set",
+ "printedName": "Set()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "DispatchQueue",
+ "printedName": "Dispatch.DispatchQueue",
+ "usr": "c:objc(cs)OS_dispatch_queue"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream9WebSocketC13callbackQueueSo17OS_dispatch_queueCvs",
+ "mangledName": "$s10Starscream9WebSocketC13callbackQueueSo17OS_dispatch_queueCvs",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "set"
+ },
+ {
+ "kind": "Accessor",
+ "name": "Modify",
+ "printedName": "Modify()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream9WebSocketC13callbackQueueSo17OS_dispatch_queueCvM",
+ "mangledName": "$s10Starscream9WebSocketC13callbackQueueSo17OS_dispatch_queueCvM",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "_modify"
+ }
+ ]
+ },
+ {
+ "kind": "Var",
+ "name": "respondToPingWithPong",
+ "printedName": "respondToPingWithPong",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Var",
+ "usr": "s:10Starscream9WebSocketC21respondToPingWithPongSbvp",
+ "mangledName": "$s10Starscream9WebSocketC21respondToPingWithPongSbvp",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "accessors": [
+ {
+ "kind": "Accessor",
+ "name": "Get",
+ "printedName": "Get()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream9WebSocketC21respondToPingWithPongSbvg",
+ "mangledName": "$s10Starscream9WebSocketC21respondToPingWithPongSbvg",
+ "moduleName": "Starscream",
+ "accessorKind": "get"
+ },
+ {
+ "kind": "Accessor",
+ "name": "Set",
+ "printedName": "Set()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream9WebSocketC21respondToPingWithPongSbvs",
+ "mangledName": "$s10Starscream9WebSocketC21respondToPingWithPongSbvs",
+ "moduleName": "Starscream",
+ "accessorKind": "set"
+ },
+ {
+ "kind": "Accessor",
+ "name": "Modify",
+ "printedName": "Modify()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream9WebSocketC21respondToPingWithPongSbvM",
+ "mangledName": "$s10Starscream9WebSocketC21respondToPingWithPongSbvM",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "_modify"
+ }
+ ]
+ },
+ {
+ "kind": "Constructor",
+ "name": "init",
+ "printedName": "init(request:engine:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocket",
+ "printedName": "Starscream.WebSocket",
+ "usr": "s:10Starscream9WebSocketC"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "URLRequest",
+ "printedName": "Foundation.URLRequest",
+ "usr": "s:10Foundation10URLRequestV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Engine",
+ "printedName": "Starscream.Engine",
+ "usr": "s:10Starscream6EngineP"
+ }
+ ],
+ "declKind": "Constructor",
+ "usr": "s:10Starscream9WebSocketC7request6engineAC10Foundation10URLRequestV_AA6Engine_ptcfc",
+ "mangledName": "$s10Starscream9WebSocketC7request6engineAC10Foundation10URLRequestV_AA6Engine_ptcfc",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "init_kind": "Designated"
+ },
+ {
+ "kind": "Constructor",
+ "name": "init",
+ "printedName": "init(request:certPinner:compressionHandler:useCustomEngine:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocket",
+ "printedName": "Starscream.WebSocket",
+ "usr": "s:10Starscream9WebSocketC"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "URLRequest",
+ "printedName": "Foundation.URLRequest",
+ "usr": "s:10Foundation10URLRequestV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Starscream.CertificatePinning?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CertificatePinning",
+ "printedName": "Starscream.CertificatePinning",
+ "usr": "s:10Starscream18CertificatePinningP"
+ }
+ ],
+ "hasDefaultArg": true,
+ "usr": "s:Sq"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Starscream.CompressionHandler?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CompressionHandler",
+ "printedName": "Starscream.CompressionHandler",
+ "usr": "s:10Starscream18CompressionHandlerP"
+ }
+ ],
+ "hasDefaultArg": true,
+ "usr": "s:Sq"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "hasDefaultArg": true,
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Constructor",
+ "usr": "s:10Starscream9WebSocketC7request10certPinner18compressionHandler15useCustomEngineAC10Foundation10URLRequestV_AA18CertificatePinning_pSgAA011CompressionH0_pSgSbtcfc",
+ "mangledName": "$s10Starscream9WebSocketC7request10certPinner18compressionHandler15useCustomEngineAC10Foundation10URLRequestV_AA18CertificatePinning_pSgAA011CompressionH0_pSgSbtcfc",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "Convenience",
+ "AccessControl"
+ ],
+ "init_kind": "Convenience"
+ },
+ {
+ "kind": "Function",
+ "name": "connect",
+ "printedName": "connect()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream9WebSocketC7connectyyF",
+ "mangledName": "$s10Starscream9WebSocketC7connectyyF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "disconnect",
+ "printedName": "disconnect(closeCode:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "hasDefaultArg": true,
+ "usr": "s:s6UInt16V"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream9WebSocketC10disconnect9closeCodeys6UInt16V_tF",
+ "mangledName": "$s10Starscream9WebSocketC10disconnect9closeCodeys6UInt16V_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "forceDisconnect",
+ "printedName": "forceDisconnect()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream9WebSocketC15forceDisconnectyyF",
+ "mangledName": "$s10Starscream9WebSocketC15forceDisconnectyyF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "write",
+ "printedName": "write(data:completion:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "(() -> ())?",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "() -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream9WebSocketC5write4data10completiony10Foundation4DataV_yycSgtF",
+ "mangledName": "$s10Starscream9WebSocketC5write4data10completiony10Foundation4DataV_yycSgtF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "write",
+ "printedName": "write(string:completion:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "(() -> ())?",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "() -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream9WebSocketC5write6string10completionySS_yycSgtF",
+ "mangledName": "$s10Starscream9WebSocketC5write6string10completionySS_yycSgtF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "write",
+ "printedName": "write(stringData:completion:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "(() -> ())?",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "() -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream9WebSocketC5write10stringData10completiony10Foundation0F0V_yycSgtF",
+ "mangledName": "$s10Starscream9WebSocketC5write10stringData10completiony10Foundation0F0V_yycSgtF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "write",
+ "printedName": "write(ping:completion:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "(() -> ())?",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "() -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream9WebSocketC5write4ping10completiony10Foundation4DataV_yycSgtF",
+ "mangledName": "$s10Starscream9WebSocketC5write4ping10completiony10Foundation4DataV_yycSgtF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "write",
+ "printedName": "write(pong:completion:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "(() -> ())?",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "() -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream9WebSocketC5write4pong10completiony10Foundation4DataV_yycSgtF",
+ "mangledName": "$s10Starscream9WebSocketC5write4pong10completiony10Foundation4DataV_yycSgtF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "didReceive",
+ "printedName": "didReceive(event:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocketEvent",
+ "printedName": "Starscream.WebSocketEvent",
+ "usr": "s:10Starscream14WebSocketEventO"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream9WebSocketC10didReceive5eventyAA0bC5EventO_tF",
+ "mangledName": "$s10Starscream9WebSocketC10didReceive5eventyAA0bC5EventO_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl",
+ "RawDocComment"
+ ],
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Class",
+ "usr": "s:10Starscream9WebSocketC",
+ "mangledName": "$s10Starscream9WebSocketC",
+ "moduleName": "Starscream",
+ "isOpen": true,
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "WebSocketClient",
+ "printedName": "WebSocketClient",
+ "usr": "s:10Starscream15WebSocketClientP",
+ "mangledName": "$s10Starscream15WebSocketClientP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "EngineDelegate",
+ "printedName": "EngineDelegate",
+ "usr": "s:10Starscream14EngineDelegateP",
+ "mangledName": "$s10Starscream14EngineDelegateP"
+ }
+ ]
+ },
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Import",
+ "name": "Network",
+ "printedName": "Network",
+ "declKind": "Import",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "WebSocketServer",
+ "printedName": "WebSocketServer",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "onEvent",
+ "printedName": "onEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "((Starscream.ServerEvent) -> ())?",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ServerEvent) -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "ServerEvent",
+ "printedName": "Starscream.ServerEvent",
+ "usr": "s:10Starscream11ServerEventO"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Var",
+ "usr": "s:10Starscream15WebSocketServerC7onEventyAA0dF0OcSgvp",
+ "mangledName": "$s10Starscream15WebSocketServerC7onEventyAA0dF0OcSgvp",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "HasInitialValue",
+ "HasStorage",
+ "AccessControl"
+ ],
+ "hasStorage": true,
+ "accessors": [
+ {
+ "kind": "Accessor",
+ "name": "Get",
+ "printedName": "Get()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "((Starscream.ServerEvent) -> ())?",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ServerEvent) -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "ServerEvent",
+ "printedName": "Starscream.ServerEvent",
+ "usr": "s:10Starscream11ServerEventO"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream15WebSocketServerC7onEventyAA0dF0OcSgvg",
+ "mangledName": "$s10Starscream15WebSocketServerC7onEventyAA0dF0OcSgvg",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "get"
+ },
+ {
+ "kind": "Accessor",
+ "name": "Set",
+ "printedName": "Set()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "((Starscream.ServerEvent) -> ())?",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ServerEvent) -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "ServerEvent",
+ "printedName": "Starscream.ServerEvent",
+ "usr": "s:10Starscream11ServerEventO"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream15WebSocketServerC7onEventyAA0dF0OcSgvs",
+ "mangledName": "$s10Starscream15WebSocketServerC7onEventyAA0dF0OcSgvs",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "set"
+ },
+ {
+ "kind": "Accessor",
+ "name": "Modify",
+ "printedName": "Modify()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream15WebSocketServerC7onEventyAA0dF0OcSgvM",
+ "mangledName": "$s10Starscream15WebSocketServerC7onEventyAA0dF0OcSgvM",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "_modify"
+ }
+ ]
+ },
+ {
+ "kind": "Constructor",
+ "name": "init",
+ "printedName": "init()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocketServer",
+ "printedName": "Starscream.WebSocketServer",
+ "usr": "s:10Starscream15WebSocketServerC"
+ }
+ ],
+ "declKind": "Constructor",
+ "usr": "s:10Starscream15WebSocketServerCACycfc",
+ "mangledName": "$s10Starscream15WebSocketServerCACycfc",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "init_kind": "Designated"
+ },
+ {
+ "kind": "Function",
+ "name": "start",
+ "printedName": "start(address:port:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Swift.Error?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Error",
+ "printedName": "Swift.Error",
+ "usr": "s:s5ErrorP"
+ }
+ ],
+ "usr": "s:Sq"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream15WebSocketServerC5start7address4ports5Error_pSgSS_s6UInt16VtF",
+ "mangledName": "$s10Starscream15WebSocketServerC5start7address4ports5Error_pSgSS_s6UInt16VtF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "didReceive",
+ "printedName": "didReceive(event:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "ServerEvent",
+ "printedName": "Starscream.ServerEvent",
+ "usr": "s:10Starscream11ServerEventO"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream15WebSocketServerC10didReceive5eventyAA0D5EventO_tF",
+ "mangledName": "$s10Starscream15WebSocketServerC10didReceive5eventyAA0D5EventO_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Class",
+ "usr": "s:10Starscream15WebSocketServerC",
+ "mangledName": "$s10Starscream15WebSocketServerC",
+ "moduleName": "Starscream",
+ "intro_Macosx": "10.14",
+ "intro_iOS": "12.0",
+ "intro_tvOS": "12.0",
+ "intro_watchOS": "5.0",
+ "declAttributes": [
+ "AccessControl",
+ "Available",
+ "Available",
+ "Available",
+ "Available",
+ "Available",
+ "RawDocComment"
+ ],
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "Server",
+ "printedName": "Server",
+ "usr": "s:10Starscream6ServerP",
+ "mangledName": "$s10Starscream6ServerP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "ConnectionDelegate",
+ "printedName": "ConnectionDelegate",
+ "usr": "s:10Starscream18ConnectionDelegateP",
+ "mangledName": "$s10Starscream18ConnectionDelegateP"
+ }
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "ServerConnection",
+ "printedName": "ServerConnection",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "onEvent",
+ "printedName": "onEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "((Starscream.ConnectionEvent) -> ())?",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ConnectionEvent) -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionEvent",
+ "printedName": "Starscream.ConnectionEvent",
+ "usr": "s:10Starscream15ConnectionEventO"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Var",
+ "usr": "s:10Starscream16ServerConnectionC7onEventyAA0cE0OcSgvp",
+ "mangledName": "$s10Starscream16ServerConnectionC7onEventyAA0cE0OcSgvp",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "HasInitialValue",
+ "HasStorage",
+ "AccessControl"
+ ],
+ "hasStorage": true,
+ "accessors": [
+ {
+ "kind": "Accessor",
+ "name": "Get",
+ "printedName": "Get()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "((Starscream.ConnectionEvent) -> ())?",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ConnectionEvent) -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionEvent",
+ "printedName": "Starscream.ConnectionEvent",
+ "usr": "s:10Starscream15ConnectionEventO"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream16ServerConnectionC7onEventyAA0cE0OcSgvg",
+ "mangledName": "$s10Starscream16ServerConnectionC7onEventyAA0cE0OcSgvg",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "get"
+ },
+ {
+ "kind": "Accessor",
+ "name": "Set",
+ "printedName": "Set()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "((Starscream.ConnectionEvent) -> ())?",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ConnectionEvent) -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionEvent",
+ "printedName": "Starscream.ConnectionEvent",
+ "usr": "s:10Starscream15ConnectionEventO"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream16ServerConnectionC7onEventyAA0cE0OcSgvs",
+ "mangledName": "$s10Starscream16ServerConnectionC7onEventyAA0cE0OcSgvs",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "set"
+ },
+ {
+ "kind": "Accessor",
+ "name": "Modify",
+ "printedName": "Modify()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream16ServerConnectionC7onEventyAA0cE0OcSgvM",
+ "mangledName": "$s10Starscream16ServerConnectionC7onEventyAA0cE0OcSgvM",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "_modify"
+ }
+ ]
+ },
+ {
+ "kind": "Var",
+ "name": "delegate",
+ "printedName": "delegate",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "WeakStorage",
+ "printedName": "Starscream.ConnectionDelegate?"
+ }
+ ],
+ "declKind": "Var",
+ "usr": "s:10Starscream16ServerConnectionC8delegateAA0C8Delegate_pSgvp",
+ "mangledName": "$s10Starscream16ServerConnectionC8delegateAA0C8Delegate_pSgvp",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "HasInitialValue",
+ "HasStorage",
+ "ReferenceOwnership",
+ "AccessControl"
+ ],
+ "ownership": 1,
+ "hasStorage": true,
+ "accessors": [
+ {
+ "kind": "Accessor",
+ "name": "Get",
+ "printedName": "Get()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Starscream.ConnectionDelegate?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionDelegate",
+ "printedName": "Starscream.ConnectionDelegate",
+ "usr": "s:10Starscream18ConnectionDelegateP"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream16ServerConnectionC8delegateAA0C8Delegate_pSgvg",
+ "mangledName": "$s10Starscream16ServerConnectionC8delegateAA0C8Delegate_pSgvg",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "get"
+ },
+ {
+ "kind": "Accessor",
+ "name": "Set",
+ "printedName": "Set()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Starscream.ConnectionDelegate?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionDelegate",
+ "printedName": "Starscream.ConnectionDelegate",
+ "usr": "s:10Starscream18ConnectionDelegateP"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream16ServerConnectionC8delegateAA0C8Delegate_pSgvs",
+ "mangledName": "$s10Starscream16ServerConnectionC8delegateAA0C8Delegate_pSgvs",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "set"
+ },
+ {
+ "kind": "Accessor",
+ "name": "Modify",
+ "printedName": "Modify()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream16ServerConnectionC8delegateAA0C8Delegate_pSgvM",
+ "mangledName": "$s10Starscream16ServerConnectionC8delegateAA0C8Delegate_pSgvM",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "_modify"
+ }
+ ]
+ },
+ {
+ "kind": "Function",
+ "name": "write",
+ "printedName": "write(data:opcode:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream16ServerConnectionC5write4data6opcodey10Foundation4DataV_AA11FrameOpCodeOtF",
+ "mangledName": "$s10Starscream16ServerConnectionC5write4data6opcodey10Foundation4DataV_AA11FrameOpCodeOtF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "connectionChanged",
+ "printedName": "connectionChanged(state:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream16ServerConnectionC17connectionChanged5stateyAA0C5StateO_tF",
+ "mangledName": "$s10Starscream16ServerConnectionC17connectionChanged5stateyAA0C5StateO_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl",
+ "RawDocComment"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "didReceive",
+ "printedName": "didReceive(event:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "HTTPEvent",
+ "printedName": "Starscream.HTTPEvent",
+ "usr": "s:10Starscream9HTTPEventO"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream16ServerConnectionC10didReceive5eventyAA9HTTPEventO_tF",
+ "mangledName": "$s10Starscream16ServerConnectionC10didReceive5eventyAA9HTTPEventO_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl",
+ "RawDocComment"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "frameProcessed",
+ "printedName": "frameProcessed(event:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "FrameEvent",
+ "printedName": "Starscream.FrameEvent",
+ "usr": "s:10Starscream10FrameEventO"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream16ServerConnectionC14frameProcessed5eventyAA10FrameEventO_tF",
+ "mangledName": "$s10Starscream16ServerConnectionC14frameProcessed5eventyAA10FrameEventO_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl",
+ "RawDocComment"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "didForm",
+ "printedName": "didForm(event:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Event",
+ "printedName": "Starscream.FrameCollector.Event",
+ "usr": "s:10Starscream14FrameCollectorC5EventO"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream16ServerConnectionC7didForm5eventyAA14FrameCollectorC5EventO_tF",
+ "mangledName": "$s10Starscream16ServerConnectionC7didForm5eventyAA14FrameCollectorC5EventO_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "decompress",
+ "printedName": "decompress(data:isFinal:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Foundation.Data?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "usr": "s:Sq"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream16ServerConnectionC10decompress4data7isFinal10Foundation4DataVSgAI_SbtF",
+ "mangledName": "$s10Starscream16ServerConnectionC10decompress4data7isFinal10Foundation4DataVSgAI_SbtF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Class",
+ "usr": "s:10Starscream16ServerConnectionC",
+ "mangledName": "$s10Starscream16ServerConnectionC",
+ "moduleName": "Starscream",
+ "intro_Macosx": "10.14",
+ "intro_iOS": "12.0",
+ "intro_tvOS": "12.0",
+ "intro_watchOS": "5.0",
+ "declAttributes": [
+ "AccessControl",
+ "Available",
+ "Available",
+ "Available",
+ "Available"
+ ],
+ "hasMissingDesignatedInitializers": true,
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "Connection",
+ "printedName": "Connection",
+ "usr": "s:10Starscream10ConnectionP",
+ "mangledName": "$s10Starscream10ConnectionP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "HTTPServerDelegate",
+ "printedName": "HTTPServerDelegate",
+ "usr": "s:10Starscream18HTTPServerDelegateP",
+ "mangledName": "$s10Starscream18HTTPServerDelegateP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "FramerEventClient",
+ "printedName": "FramerEventClient",
+ "usr": "s:10Starscream17FramerEventClientP",
+ "mangledName": "$s10Starscream17FramerEventClientP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "FrameCollectorDelegate",
+ "printedName": "FrameCollectorDelegate",
+ "usr": "s:10Starscream22FrameCollectorDelegateP",
+ "mangledName": "$s10Starscream22FrameCollectorDelegateP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "TransportEventClient",
+ "printedName": "TransportEventClient",
+ "usr": "s:10Starscream20TransportEventClientP",
+ "mangledName": "$s10Starscream20TransportEventClientP"
+ }
+ ]
+ },
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "Import",
+ "name": "zlib",
+ "printedName": "zlib",
+ "declKind": "Import",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "WSCompression",
+ "printedName": "WSCompression",
+ "children": [
+ {
+ "kind": "Constructor",
+ "name": "init",
+ "printedName": "init()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "WSCompression",
+ "printedName": "Starscream.WSCompression",
+ "usr": "s:10Starscream13WSCompressionC"
+ }
+ ],
+ "declKind": "Constructor",
+ "usr": "s:10Starscream13WSCompressionCACycfc",
+ "mangledName": "$s10Starscream13WSCompressionCACycfc",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "init_kind": "Designated"
+ },
+ {
+ "kind": "Function",
+ "name": "load",
+ "printedName": "load(headers:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Dictionary",
+ "printedName": "[Swift.String : Swift.String]",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "usr": "s:SD"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream13WSCompressionC4load7headersySDyS2SG_tF",
+ "mangledName": "$s10Starscream13WSCompressionC4load7headersySDyS2SG_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "decompress",
+ "printedName": "decompress(data:isFinal:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Foundation.Data?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "usr": "s:Sq"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream13WSCompressionC10decompress4data7isFinal10Foundation4DataVSgAI_SbtF",
+ "mangledName": "$s10Starscream13WSCompressionC10decompress4data7isFinal10Foundation4DataVSgAI_SbtF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "compress",
+ "printedName": "compress(data:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Foundation.Data?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "usr": "s:Sq"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream13WSCompressionC8compress4data10Foundation4DataVSgAH_tF",
+ "mangledName": "$s10Starscream13WSCompressionC8compress4data10Foundation4DataVSgAH_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Class",
+ "usr": "s:10Starscream13WSCompressionC",
+ "mangledName": "$s10Starscream13WSCompressionC",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "CompressionHandler",
+ "printedName": "CompressionHandler",
+ "usr": "s:10Starscream18CompressionHandlerP",
+ "mangledName": "$s10Starscream18CompressionHandlerP"
+ }
+ ]
+ },
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "WSEngine",
+ "printedName": "WSEngine",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "respondToPingWithPong",
+ "printedName": "respondToPingWithPong",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Var",
+ "usr": "s:10Starscream8WSEngineC21respondToPingWithPongSbvp",
+ "mangledName": "$s10Starscream8WSEngineC21respondToPingWithPongSbvp",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "HasInitialValue",
+ "HasStorage",
+ "AccessControl"
+ ],
+ "hasStorage": true,
+ "accessors": [
+ {
+ "kind": "Accessor",
+ "name": "Get",
+ "printedName": "Get()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream8WSEngineC21respondToPingWithPongSbvg",
+ "mangledName": "$s10Starscream8WSEngineC21respondToPingWithPongSbvg",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "get"
+ },
+ {
+ "kind": "Accessor",
+ "name": "Set",
+ "printedName": "Set()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream8WSEngineC21respondToPingWithPongSbvs",
+ "mangledName": "$s10Starscream8WSEngineC21respondToPingWithPongSbvs",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "set"
+ },
+ {
+ "kind": "Accessor",
+ "name": "Modify",
+ "printedName": "Modify()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream8WSEngineC21respondToPingWithPongSbvM",
+ "mangledName": "$s10Starscream8WSEngineC21respondToPingWithPongSbvM",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "_modify"
+ }
+ ]
+ },
+ {
+ "kind": "Constructor",
+ "name": "init",
+ "printedName": "init(transport:certPinner:headerValidator:httpHandler:framer:compressionHandler:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "WSEngine",
+ "printedName": "Starscream.WSEngine",
+ "usr": "s:10Starscream8WSEngineC"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Transport",
+ "printedName": "Starscream.Transport",
+ "usr": "s:10Starscream9TransportP"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Starscream.CertificatePinning?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CertificatePinning",
+ "printedName": "Starscream.CertificatePinning",
+ "usr": "s:10Starscream18CertificatePinningP"
+ }
+ ],
+ "hasDefaultArg": true,
+ "usr": "s:Sq"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "HeaderValidator",
+ "printedName": "Starscream.HeaderValidator",
+ "hasDefaultArg": true,
+ "usr": "s:10Starscream15HeaderValidatorP"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "HTTPHandler",
+ "printedName": "Starscream.HTTPHandler",
+ "hasDefaultArg": true,
+ "usr": "s:10Starscream11HTTPHandlerP"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Framer",
+ "printedName": "Starscream.Framer",
+ "hasDefaultArg": true,
+ "usr": "s:10Starscream6FramerP"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Starscream.CompressionHandler?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CompressionHandler",
+ "printedName": "Starscream.CompressionHandler",
+ "usr": "s:10Starscream18CompressionHandlerP"
+ }
+ ],
+ "hasDefaultArg": true,
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Constructor",
+ "usr": "s:10Starscream8WSEngineC9transport10certPinner15headerValidator11httpHandler6framer011compressionI0AcA9Transport_p_AA18CertificatePinning_pSgAA06HeaderG0_pAA11HTTPHandler_pAA6Framer_pAA011CompressionI0_pSgtcfc",
+ "mangledName": "$s10Starscream8WSEngineC9transport10certPinner15headerValidator11httpHandler6framer011compressionI0AcA9Transport_p_AA18CertificatePinning_pSgAA06HeaderG0_pAA11HTTPHandler_pAA6Framer_pAA011CompressionI0_pSgtcfc",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "init_kind": "Designated"
+ },
+ {
+ "kind": "Function",
+ "name": "register",
+ "printedName": "register(delegate:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "EngineDelegate",
+ "printedName": "Starscream.EngineDelegate",
+ "usr": "s:10Starscream14EngineDelegateP"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream8WSEngineC8register8delegateyAA14EngineDelegate_p_tF",
+ "mangledName": "$s10Starscream8WSEngineC8register8delegateyAA14EngineDelegate_p_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "start",
+ "printedName": "start(request:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "URLRequest",
+ "printedName": "Foundation.URLRequest",
+ "usr": "s:10Foundation10URLRequestV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream8WSEngineC5start7requesty10Foundation10URLRequestV_tF",
+ "mangledName": "$s10Starscream8WSEngineC5start7requesty10Foundation10URLRequestV_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "stop",
+ "printedName": "stop(closeCode:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "hasDefaultArg": true,
+ "usr": "s:s6UInt16V"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream8WSEngineC4stop9closeCodeys6UInt16V_tF",
+ "mangledName": "$s10Starscream8WSEngineC4stop9closeCodeys6UInt16V_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "forceStop",
+ "printedName": "forceStop()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream8WSEngineC9forceStopyyF",
+ "mangledName": "$s10Starscream8WSEngineC9forceStopyyF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "write",
+ "printedName": "write(string:completion:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "(() -> ())?",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "() -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream8WSEngineC5write6string10completionySS_yycSgtF",
+ "mangledName": "$s10Starscream8WSEngineC5write6string10completionySS_yycSgtF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "write",
+ "printedName": "write(data:opcode:completion:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "(() -> ())?",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "() -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream8WSEngineC5write4data6opcode10completiony10Foundation4DataV_AA11FrameOpCodeOyycSgtF",
+ "mangledName": "$s10Starscream8WSEngineC5write4data6opcode10completiony10Foundation4DataV_AA11FrameOpCodeOyycSgtF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "connectionChanged",
+ "printedName": "connectionChanged(state:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream8WSEngineC17connectionChanged5stateyAA15ConnectionStateO_tF",
+ "mangledName": "$s10Starscream8WSEngineC17connectionChanged5stateyAA15ConnectionStateO_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl",
+ "RawDocComment"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "didReceiveHTTP",
+ "printedName": "didReceiveHTTP(event:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "HTTPEvent",
+ "printedName": "Starscream.HTTPEvent",
+ "usr": "s:10Starscream9HTTPEventO"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream8WSEngineC14didReceiveHTTP5eventyAA9HTTPEventO_tF",
+ "mangledName": "$s10Starscream8WSEngineC14didReceiveHTTP5eventyAA9HTTPEventO_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl",
+ "RawDocComment"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "frameProcessed",
+ "printedName": "frameProcessed(event:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "FrameEvent",
+ "printedName": "Starscream.FrameEvent",
+ "usr": "s:10Starscream10FrameEventO"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream8WSEngineC14frameProcessed5eventyAA10FrameEventO_tF",
+ "mangledName": "$s10Starscream8WSEngineC14frameProcessed5eventyAA10FrameEventO_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl",
+ "RawDocComment"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "decompress",
+ "printedName": "decompress(data:isFinal:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Foundation.Data?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "usr": "s:Sq"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream8WSEngineC10decompress4data7isFinal10Foundation4DataVSgAI_SbtF",
+ "mangledName": "$s10Starscream8WSEngineC10decompress4data7isFinal10Foundation4DataVSgAI_SbtF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl",
+ "RawDocComment"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "didForm",
+ "printedName": "didForm(event:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Event",
+ "printedName": "Starscream.FrameCollector.Event",
+ "usr": "s:10Starscream14FrameCollectorC5EventO"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream8WSEngineC7didForm5eventyAA14FrameCollectorC5EventO_tF",
+ "mangledName": "$s10Starscream8WSEngineC7didForm5eventyAA14FrameCollectorC5EventO_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Class",
+ "usr": "s:10Starscream8WSEngineC",
+ "mangledName": "$s10Starscream8WSEngineC",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "Engine",
+ "printedName": "Engine",
+ "usr": "s:10Starscream6EngineP",
+ "mangledName": "$s10Starscream6EngineP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "TransportEventClient",
+ "printedName": "TransportEventClient",
+ "usr": "s:10Starscream20TransportEventClientP",
+ "mangledName": "$s10Starscream20TransportEventClientP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "FramerEventClient",
+ "printedName": "FramerEventClient",
+ "usr": "s:10Starscream17FramerEventClientP",
+ "mangledName": "$s10Starscream17FramerEventClientP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "FrameCollectorDelegate",
+ "printedName": "FrameCollectorDelegate",
+ "usr": "s:10Starscream22FrameCollectorDelegateP",
+ "mangledName": "$s10Starscream22FrameCollectorDelegateP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "HTTPHandlerDelegate",
+ "printedName": "HTTPHandlerDelegate",
+ "usr": "s:10Starscream19HTTPHandlerDelegateP",
+ "mangledName": "$s10Starscream19HTTPHandlerDelegateP"
+ }
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "UInt8",
+ "printedName": "UInt8",
+ "declKind": "Struct",
+ "usr": "s:s5UInt8V",
+ "mangledName": "$ss5UInt8V",
+ "moduleName": "Swift",
+ "declAttributes": [
+ "Frozen"
+ ],
+ "isExternal": true,
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "FixedWidthInteger",
+ "printedName": "FixedWidthInteger",
+ "usr": "s:s17FixedWidthIntegerP",
+ "mangledName": "$ss17FixedWidthIntegerP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "UnsignedInteger",
+ "printedName": "UnsignedInteger",
+ "usr": "s:SU",
+ "mangledName": "$sSU"
+ },
+ {
+ "kind": "Conformance",
+ "name": "_ExpressibleByBuiltinIntegerLiteral",
+ "printedName": "_ExpressibleByBuiltinIntegerLiteral",
+ "usr": "s:s35_ExpressibleByBuiltinIntegerLiteralP",
+ "mangledName": "$ss35_ExpressibleByBuiltinIntegerLiteralP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "BinaryInteger",
+ "printedName": "BinaryInteger",
+ "children": [
+ {
+ "kind": "TypeWitness",
+ "name": "Words",
+ "printedName": "Words",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Words",
+ "printedName": "Swift.UInt8.Words",
+ "usr": "s:s5UInt8V5WordsV"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sz",
+ "mangledName": "$sSz"
+ },
+ {
+ "kind": "Conformance",
+ "name": "LosslessStringConvertible",
+ "printedName": "LosslessStringConvertible",
+ "usr": "s:s25LosslessStringConvertibleP",
+ "mangledName": "$ss25LosslessStringConvertibleP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "CustomStringConvertible",
+ "printedName": "CustomStringConvertible",
+ "usr": "s:s23CustomStringConvertibleP",
+ "mangledName": "$ss23CustomStringConvertibleP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Numeric",
+ "printedName": "Numeric",
+ "children": [
+ {
+ "kind": "TypeWitness",
+ "name": "Magnitude",
+ "printedName": "Magnitude",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "UInt8",
+ "printedName": "Swift.UInt8",
+ "usr": "s:s5UInt8V"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sj",
+ "mangledName": "$sSj"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Strideable",
+ "printedName": "Strideable",
+ "children": [
+ {
+ "kind": "TypeWitness",
+ "name": "Stride",
+ "printedName": "Stride",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sx",
+ "mangledName": "$sSx"
+ },
+ {
+ "kind": "Conformance",
+ "name": "AdditiveArithmetic",
+ "printedName": "AdditiveArithmetic",
+ "usr": "s:s18AdditiveArithmeticP",
+ "mangledName": "$ss18AdditiveArithmeticP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "ExpressibleByIntegerLiteral",
+ "printedName": "ExpressibleByIntegerLiteral",
+ "children": [
+ {
+ "kind": "TypeWitness",
+ "name": "IntegerLiteralType",
+ "printedName": "IntegerLiteralType",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "UInt8",
+ "printedName": "Swift.UInt8",
+ "usr": "s:s5UInt8V"
+ }
+ ]
+ }
+ ],
+ "usr": "s:s27ExpressibleByIntegerLiteralP",
+ "mangledName": "$ss27ExpressibleByIntegerLiteralP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Comparable",
+ "printedName": "Comparable",
+ "usr": "s:SL",
+ "mangledName": "$sSL"
+ },
+ {
+ "kind": "Conformance",
+ "name": "MyWSArrayType",
+ "printedName": "MyWSArrayType",
+ "usr": "s:10Starscream13MyWSArrayTypeP",
+ "mangledName": "$s10Starscream13MyWSArrayTypeP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Decodable",
+ "printedName": "Decodable",
+ "usr": "s:Se",
+ "mangledName": "$sSe"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Encodable",
+ "printedName": "Encodable",
+ "usr": "s:SE",
+ "mangledName": "$sSE"
+ },
+ {
+ "kind": "Conformance",
+ "name": "CustomReflectable",
+ "printedName": "CustomReflectable",
+ "usr": "s:s17CustomReflectableP",
+ "mangledName": "$ss17CustomReflectableP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "_CustomPlaygroundQuickLookable",
+ "printedName": "_CustomPlaygroundQuickLookable",
+ "usr": "s:s30_CustomPlaygroundQuickLookableP",
+ "mangledName": "$ss30_CustomPlaygroundQuickLookableP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "_StringElement",
+ "printedName": "_StringElement",
+ "usr": "s:s14_StringElementP",
+ "mangledName": "$ss14_StringElementP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "CVarArg",
+ "printedName": "CVarArg",
+ "usr": "s:s7CVarArgP",
+ "mangledName": "$ss7CVarArgP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Hashable",
+ "printedName": "Hashable",
+ "usr": "s:SH",
+ "mangledName": "$sSH"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Equatable",
+ "printedName": "Equatable",
+ "usr": "s:SQ",
+ "mangledName": "$sSQ"
+ },
+ {
+ "kind": "Conformance",
+ "name": "_HasCustomAnyHashableRepresentation",
+ "printedName": "_HasCustomAnyHashableRepresentation",
+ "usr": "s:s35_HasCustomAnyHashableRepresentationP",
+ "mangledName": "$ss35_HasCustomAnyHashableRepresentationP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Sendable",
+ "printedName": "Sendable",
+ "usr": "s:s8SendableP",
+ "mangledName": "$ss8SendableP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "SIMDScalar",
+ "printedName": "SIMDScalar",
+ "children": [
+ {
+ "kind": "TypeWitness",
+ "name": "SIMDMaskScalar",
+ "printedName": "SIMDMaskScalar",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Int8",
+ "printedName": "Swift.Int8",
+ "usr": "s:s4Int8V"
+ }
+ ]
+ },
+ {
+ "kind": "TypeWitness",
+ "name": "SIMD2Storage",
+ "printedName": "SIMD2Storage",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "SIMD2Storage",
+ "printedName": "Swift.UInt8.SIMD2Storage",
+ "usr": "s:s5UInt8V12SIMD2StorageV"
+ }
+ ]
+ },
+ {
+ "kind": "TypeWitness",
+ "name": "SIMD4Storage",
+ "printedName": "SIMD4Storage",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "SIMD4Storage",
+ "printedName": "Swift.UInt8.SIMD4Storage",
+ "usr": "s:s5UInt8V12SIMD4StorageV"
+ }
+ ]
+ },
+ {
+ "kind": "TypeWitness",
+ "name": "SIMD8Storage",
+ "printedName": "SIMD8Storage",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "SIMD8Storage",
+ "printedName": "Swift.UInt8.SIMD8Storage",
+ "usr": "s:s5UInt8V12SIMD8StorageV"
+ }
+ ]
+ },
+ {
+ "kind": "TypeWitness",
+ "name": "SIMD16Storage",
+ "printedName": "SIMD16Storage",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "SIMD16Storage",
+ "printedName": "Swift.UInt8.SIMD16Storage",
+ "usr": "s:s5UInt8V13SIMD16StorageV"
+ }
+ ]
+ },
+ {
+ "kind": "TypeWitness",
+ "name": "SIMD32Storage",
+ "printedName": "SIMD32Storage",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "SIMD32Storage",
+ "printedName": "Swift.UInt8.SIMD32Storage",
+ "usr": "s:s5UInt8V13SIMD32StorageV"
+ }
+ ]
+ },
+ {
+ "kind": "TypeWitness",
+ "name": "SIMD64Storage",
+ "printedName": "SIMD64Storage",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "SIMD64Storage",
+ "printedName": "Swift.UInt8.SIMD64Storage",
+ "usr": "s:s5UInt8V13SIMD64StorageV"
+ }
+ ]
+ }
+ ],
+ "usr": "s:s10SIMDScalarP",
+ "mangledName": "$ss10SIMDScalarP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "_FormatSpecifiable",
+ "printedName": "_FormatSpecifiable",
+ "children": [
+ {
+ "kind": "TypeWitness",
+ "name": "_Arg",
+ "printedName": "_Arg",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "UInt32",
+ "printedName": "Swift.UInt32",
+ "usr": "s:s6UInt32V"
+ }
+ ]
+ }
+ ],
+ "usr": "s:10Foundation18_FormatSpecifiableP",
+ "mangledName": "$s10Foundation18_FormatSpecifiableP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "_ObjectiveCBridgeable",
+ "printedName": "_ObjectiveCBridgeable",
+ "children": [
+ {
+ "kind": "TypeWitness",
+ "name": "_ObjectiveCType",
+ "printedName": "_ObjectiveCType",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "NSNumber",
+ "printedName": "Foundation.NSNumber",
+ "usr": "c:objc(cs)NSNumber"
+ }
+ ]
+ }
+ ],
+ "usr": "s:s21_ObjectiveCBridgeableP",
+ "mangledName": "$ss21_ObjectiveCBridgeableP"
+ }
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "Array",
+ "printedName": "Array",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "readUint16",
+ "printedName": "readUint16(offset:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:Sa10StarscreamAA13MyWSArrayTypeRzSURzlE10readUint166offsets6UInt16VSi_tF",
+ "mangledName": "$sSa10StarscreamAA13MyWSArrayTypeRzSURzlE10readUint166offsets6UInt16VSi_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.MyWSArrayType, τ_0_0 : Swift.UnsignedInteger>",
+ "sugared_genericSig": "",
+ "declAttributes": [
+ "RawDocComment"
+ ],
+ "isFromExtension": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "readUint64",
+ "printedName": "readUint64(offset:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "UInt64",
+ "printedName": "Swift.UInt64",
+ "usr": "s:s6UInt64V"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:Sa10StarscreamAA13MyWSArrayTypeRzSURzlE10readUint646offsets6UInt64VSi_tF",
+ "mangledName": "$sSa10StarscreamAA13MyWSArrayTypeRzSURzlE10readUint646offsets6UInt64VSi_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.MyWSArrayType, τ_0_0 : Swift.UnsignedInteger>",
+ "sugared_genericSig": "",
+ "declAttributes": [
+ "RawDocComment"
+ ],
+ "isFromExtension": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "unmaskData",
+ "printedName": "unmaskData(maskStart:offset:length:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:Sa10StarscreamAA13MyWSArrayTypeRzSURzlE10unmaskData9maskStart6offset6length10Foundation0F0VSi_S2itF",
+ "mangledName": "$sSa10StarscreamAA13MyWSArrayTypeRzSURzlE10unmaskData9maskStart6offset6length10Foundation0F0VSi_S2itF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.MyWSArrayType, τ_0_0 : Swift.UnsignedInteger>",
+ "sugared_genericSig": "",
+ "isFromExtension": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Struct",
+ "usr": "s:Sa",
+ "mangledName": "$sSa",
+ "moduleName": "Swift",
+ "genericSig": "<τ_0_0>",
+ "sugared_genericSig": "",
+ "declAttributes": [
+ "Frozen"
+ ],
+ "isExternal": true,
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "_DestructorSafeContainer",
+ "printedName": "_DestructorSafeContainer",
+ "usr": "s:s24_DestructorSafeContainerP",
+ "mangledName": "$ss24_DestructorSafeContainerP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Equatable",
+ "printedName": "Equatable",
+ "usr": "s:SQ",
+ "mangledName": "$sSQ"
+ },
+ {
+ "kind": "Conformance",
+ "name": "_ArrayProtocol",
+ "printedName": "_ArrayProtocol",
+ "children": [
+ {
+ "kind": "TypeWitness",
+ "name": "_Buffer",
+ "printedName": "_Buffer",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "_ArrayBuffer",
+ "printedName": "Swift._ArrayBuffer<τ_0_0>",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "GenericTypeParam",
+ "printedName": "τ_0_0"
+ }
+ ],
+ "usr": "s:s12_ArrayBufferV"
+ }
+ ]
+ }
+ ],
+ "usr": "s:s14_ArrayProtocolP",
+ "mangledName": "$ss14_ArrayProtocolP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "RandomAccessCollection",
+ "printedName": "RandomAccessCollection",
+ "children": [
+ {
+ "kind": "TypeWitness",
+ "name": "Element",
+ "printedName": "Element",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "GenericTypeParam",
+ "printedName": "τ_0_0"
+ }
+ ]
+ },
+ {
+ "kind": "TypeWitness",
+ "name": "Index",
+ "printedName": "Index",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ }
+ ]
+ },
+ {
+ "kind": "TypeWitness",
+ "name": "SubSequence",
+ "printedName": "SubSequence",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ArraySlice",
+ "printedName": "Swift.ArraySlice<τ_0_0>",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "GenericTypeParam",
+ "printedName": "τ_0_0"
+ }
+ ],
+ "usr": "s:s10ArraySliceV"
+ }
+ ]
+ },
+ {
+ "kind": "TypeWitness",
+ "name": "Indices",
+ "printedName": "Indices",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Range",
+ "printedName": "Swift.Range",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ }
+ ],
+ "usr": "s:Sn"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sk",
+ "mangledName": "$sSk"
+ },
+ {
+ "kind": "Conformance",
+ "name": "MutableCollection",
+ "printedName": "MutableCollection",
+ "children": [
+ {
+ "kind": "TypeWitness",
+ "name": "Element",
+ "printedName": "Element",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "GenericTypeParam",
+ "printedName": "τ_0_0"
+ }
+ ]
+ },
+ {
+ "kind": "TypeWitness",
+ "name": "Index",
+ "printedName": "Index",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ }
+ ]
+ },
+ {
+ "kind": "TypeWitness",
+ "name": "SubSequence",
+ "printedName": "SubSequence",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ArraySlice",
+ "printedName": "Swift.ArraySlice<τ_0_0>",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "GenericTypeParam",
+ "printedName": "τ_0_0"
+ }
+ ],
+ "usr": "s:s10ArraySliceV"
+ }
+ ]
+ }
+ ],
+ "usr": "s:SM",
+ "mangledName": "$sSM"
+ },
+ {
+ "kind": "Conformance",
+ "name": "BidirectionalCollection",
+ "printedName": "BidirectionalCollection",
+ "children": [
+ {
+ "kind": "TypeWitness",
+ "name": "Element",
+ "printedName": "Element",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "GenericTypeParam",
+ "printedName": "τ_0_0"
+ }
+ ]
+ },
+ {
+ "kind": "TypeWitness",
+ "name": "Index",
+ "printedName": "Index",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ }
+ ]
+ },
+ {
+ "kind": "TypeWitness",
+ "name": "SubSequence",
+ "printedName": "SubSequence",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ArraySlice",
+ "printedName": "Swift.ArraySlice<τ_0_0>",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "GenericTypeParam",
+ "printedName": "τ_0_0"
+ }
+ ],
+ "usr": "s:s10ArraySliceV"
+ }
+ ]
+ },
+ {
+ "kind": "TypeWitness",
+ "name": "Indices",
+ "printedName": "Indices",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Range",
+ "printedName": "Swift.Range",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ }
+ ],
+ "usr": "s:Sn"
+ }
+ ]
+ }
+ ],
+ "usr": "s:SK",
+ "mangledName": "$sSK"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Collection",
+ "printedName": "Collection",
+ "children": [
+ {
+ "kind": "TypeWitness",
+ "name": "Element",
+ "printedName": "Element",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "GenericTypeParam",
+ "printedName": "τ_0_0"
+ }
+ ]
+ },
+ {
+ "kind": "TypeWitness",
+ "name": "Index",
+ "printedName": "Index",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ }
+ ]
+ },
+ {
+ "kind": "TypeWitness",
+ "name": "Iterator",
+ "printedName": "Iterator",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "IndexingIterator",
+ "printedName": "Swift.IndexingIterator<[τ_0_0]>",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Array",
+ "printedName": "[τ_0_0]",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "GenericTypeParam",
+ "printedName": "τ_0_0"
+ }
+ ],
+ "usr": "s:Sa"
+ }
+ ],
+ "usr": "s:s16IndexingIteratorV"
+ }
+ ]
+ },
+ {
+ "kind": "TypeWitness",
+ "name": "SubSequence",
+ "printedName": "SubSequence",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ArraySlice",
+ "printedName": "Swift.ArraySlice<τ_0_0>",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "GenericTypeParam",
+ "printedName": "τ_0_0"
+ }
+ ],
+ "usr": "s:s10ArraySliceV"
+ }
+ ]
+ },
+ {
+ "kind": "TypeWitness",
+ "name": "Indices",
+ "printedName": "Indices",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Range",
+ "printedName": "Swift.Range",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ }
+ ],
+ "usr": "s:Sn"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sl",
+ "mangledName": "$sSl"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Sequence",
+ "printedName": "Sequence",
+ "children": [
+ {
+ "kind": "TypeWitness",
+ "name": "Element",
+ "printedName": "Element",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "GenericTypeParam",
+ "printedName": "τ_0_0"
+ }
+ ]
+ },
+ {
+ "kind": "TypeWitness",
+ "name": "Iterator",
+ "printedName": "Iterator",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "IndexingIterator",
+ "printedName": "Swift.IndexingIterator<[τ_0_0]>",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Array",
+ "printedName": "[τ_0_0]",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "GenericTypeParam",
+ "printedName": "τ_0_0"
+ }
+ ],
+ "usr": "s:Sa"
+ }
+ ],
+ "usr": "s:s16IndexingIteratorV"
+ }
+ ]
+ }
+ ],
+ "usr": "s:ST",
+ "mangledName": "$sST"
+ },
+ {
+ "kind": "Conformance",
+ "name": "ExpressibleByArrayLiteral",
+ "printedName": "ExpressibleByArrayLiteral",
+ "children": [
+ {
+ "kind": "TypeWitness",
+ "name": "ArrayLiteralElement",
+ "printedName": "ArrayLiteralElement",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "GenericTypeParam",
+ "printedName": "τ_0_0"
+ }
+ ]
+ }
+ ],
+ "usr": "s:s25ExpressibleByArrayLiteralP",
+ "mangledName": "$ss25ExpressibleByArrayLiteralP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "RangeReplaceableCollection",
+ "printedName": "RangeReplaceableCollection",
+ "children": [
+ {
+ "kind": "TypeWitness",
+ "name": "SubSequence",
+ "printedName": "SubSequence",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ArraySlice",
+ "printedName": "Swift.ArraySlice<τ_0_0>",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "GenericTypeParam",
+ "printedName": "τ_0_0"
+ }
+ ],
+ "usr": "s:s10ArraySliceV"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sm",
+ "mangledName": "$sSm"
+ },
+ {
+ "kind": "Conformance",
+ "name": "CustomReflectable",
+ "printedName": "CustomReflectable",
+ "usr": "s:s17CustomReflectableP",
+ "mangledName": "$ss17CustomReflectableP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "CustomStringConvertible",
+ "printedName": "CustomStringConvertible",
+ "usr": "s:s23CustomStringConvertibleP",
+ "mangledName": "$ss23CustomStringConvertibleP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "CustomDebugStringConvertible",
+ "printedName": "CustomDebugStringConvertible",
+ "usr": "s:s28CustomDebugStringConvertibleP",
+ "mangledName": "$ss28CustomDebugStringConvertibleP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Hashable",
+ "printedName": "Hashable",
+ "usr": "s:SH",
+ "mangledName": "$sSH"
+ },
+ {
+ "kind": "Conformance",
+ "name": "_HasCustomAnyHashableRepresentation",
+ "printedName": "_HasCustomAnyHashableRepresentation",
+ "usr": "s:s35_HasCustomAnyHashableRepresentationP",
+ "mangledName": "$ss35_HasCustomAnyHashableRepresentationP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Sendable",
+ "printedName": "Sendable",
+ "usr": "s:s8SendableP",
+ "mangledName": "$ss8SendableP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Encodable",
+ "printedName": "Encodable",
+ "usr": "s:SE",
+ "mangledName": "$sSE"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Decodable",
+ "printedName": "Decodable",
+ "usr": "s:Se",
+ "mangledName": "$sSe"
+ },
+ {
+ "kind": "Conformance",
+ "name": "_HasContiguousBytes",
+ "printedName": "_HasContiguousBytes",
+ "usr": "s:s19_HasContiguousBytesP",
+ "mangledName": "$ss19_HasContiguousBytesP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "DataProtocol",
+ "printedName": "DataProtocol",
+ "children": [
+ {
+ "kind": "TypeWitness",
+ "name": "Regions",
+ "printedName": "Regions",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CollectionOfOne",
+ "printedName": "Swift.CollectionOfOne<[Swift.UInt8]>",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Array",
+ "printedName": "[Swift.UInt8]",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "UInt8",
+ "printedName": "Swift.UInt8",
+ "usr": "s:s5UInt8V"
+ }
+ ],
+ "usr": "s:Sa"
+ }
+ ],
+ "usr": "s:s15CollectionOfOneV"
+ }
+ ]
+ }
+ ],
+ "usr": "s:10Foundation12DataProtocolP",
+ "mangledName": "$s10Foundation12DataProtocolP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "MutableDataProtocol",
+ "printedName": "MutableDataProtocol",
+ "usr": "s:10Foundation19MutableDataProtocolP",
+ "mangledName": "$s10Foundation19MutableDataProtocolP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "EncodableWithConfiguration",
+ "printedName": "EncodableWithConfiguration",
+ "children": [
+ {
+ "kind": "TypeWitness",
+ "name": "EncodingConfiguration",
+ "printedName": "EncodingConfiguration",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "DependentMember",
+ "printedName": "τ_0_0.EncodingConfiguration"
+ }
+ ]
+ }
+ ],
+ "usr": "s:10Foundation26EncodableWithConfigurationP",
+ "mangledName": "$s10Foundation26EncodableWithConfigurationP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "DecodableWithConfiguration",
+ "printedName": "DecodableWithConfiguration",
+ "children": [
+ {
+ "kind": "TypeWitness",
+ "name": "DecodingConfiguration",
+ "printedName": "DecodingConfiguration",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "DependentMember",
+ "printedName": "τ_0_0.DecodingConfiguration"
+ }
+ ]
+ }
+ ],
+ "usr": "s:10Foundation26DecodableWithConfigurationP",
+ "mangledName": "$s10Foundation26DecodableWithConfigurationP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "_ObjectiveCBridgeable",
+ "printedName": "_ObjectiveCBridgeable",
+ "children": [
+ {
+ "kind": "TypeWitness",
+ "name": "_ObjectiveCType",
+ "printedName": "_ObjectiveCType",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "NSArray",
+ "printedName": "Foundation.NSArray",
+ "usr": "c:objc(cs)NSArray"
+ }
+ ]
+ }
+ ],
+ "usr": "s:s21_ObjectiveCBridgeableP",
+ "mangledName": "$ss21_ObjectiveCBridgeableP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "CVarArg",
+ "printedName": "CVarArg",
+ "usr": "s:s7CVarArgP",
+ "mangledName": "$ss7CVarArgP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "ContiguousBytes",
+ "printedName": "ContiguousBytes",
+ "usr": "s:10Foundation15ContiguousBytesP",
+ "mangledName": "$s10Foundation15ContiguousBytesP"
+ }
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "URL",
+ "printedName": "URL",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "isTLSScheme",
+ "printedName": "isTLSScheme",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Var",
+ "usr": "s:10Foundation3URLV10StarscreamE11isTLSSchemeSbvp",
+ "mangledName": "$s10Foundation3URLV10StarscreamE11isTLSSchemeSbvp",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ],
+ "isFromExtension": true,
+ "accessors": [
+ {
+ "kind": "Accessor",
+ "name": "Get",
+ "printedName": "Get()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Foundation3URLV10StarscreamE11isTLSSchemeSbvg",
+ "mangledName": "$s10Foundation3URLV10StarscreamE11isTLSSchemeSbvg",
+ "moduleName": "Starscream",
+ "isFromExtension": true,
+ "accessorKind": "get"
+ }
+ ]
+ },
+ {
+ "kind": "Function",
+ "name": "getParts",
+ "printedName": "getParts()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Starscream.URLParts?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "URLParts",
+ "printedName": "Starscream.URLParts",
+ "usr": "s:10Starscream8URLPartsV"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Foundation3URLV10StarscreamE8getPartsAD8URLPartsVSgyF",
+ "mangledName": "$s10Foundation3URLV10StarscreamE8getPartsAD8URLPartsVSgyF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ],
+ "isFromExtension": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Struct",
+ "usr": "s:10Foundation3URLV",
+ "mangledName": "$s10Foundation3URLV",
+ "moduleName": "Foundation",
+ "isExternal": true,
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "ReferenceConvertible",
+ "printedName": "ReferenceConvertible",
+ "children": [
+ {
+ "kind": "TypeWitness",
+ "name": "ReferenceType",
+ "printedName": "ReferenceType",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "NSURL",
+ "printedName": "Foundation.NSURL",
+ "usr": "c:objc(cs)NSURL"
+ }
+ ]
+ }
+ ],
+ "usr": "s:10Foundation20ReferenceConvertibleP",
+ "mangledName": "$s10Foundation20ReferenceConvertibleP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Equatable",
+ "printedName": "Equatable",
+ "usr": "s:SQ",
+ "mangledName": "$sSQ"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Sendable",
+ "printedName": "Sendable",
+ "usr": "s:s8SendableP",
+ "mangledName": "$ss8SendableP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Hashable",
+ "printedName": "Hashable",
+ "usr": "s:SH",
+ "mangledName": "$sSH"
+ },
+ {
+ "kind": "Conformance",
+ "name": "_ObjectiveCBridgeable",
+ "printedName": "_ObjectiveCBridgeable",
+ "children": [
+ {
+ "kind": "TypeWitness",
+ "name": "_ObjectiveCType",
+ "printedName": "_ObjectiveCType",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "NSURL",
+ "printedName": "Foundation.NSURL",
+ "usr": "c:objc(cs)NSURL"
+ }
+ ]
+ }
+ ],
+ "usr": "s:s21_ObjectiveCBridgeableP",
+ "mangledName": "$ss21_ObjectiveCBridgeableP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "CustomStringConvertible",
+ "printedName": "CustomStringConvertible",
+ "usr": "s:s23CustomStringConvertibleP",
+ "mangledName": "$ss23CustomStringConvertibleP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "CustomDebugStringConvertible",
+ "printedName": "CustomDebugStringConvertible",
+ "usr": "s:s28CustomDebugStringConvertibleP",
+ "mangledName": "$ss28CustomDebugStringConvertibleP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "_CustomPlaygroundQuickLookable",
+ "printedName": "_CustomPlaygroundQuickLookable",
+ "usr": "s:s30_CustomPlaygroundQuickLookableP",
+ "mangledName": "$ss30_CustomPlaygroundQuickLookableP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Decodable",
+ "printedName": "Decodable",
+ "usr": "s:Se",
+ "mangledName": "$sSe"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Encodable",
+ "printedName": "Encodable",
+ "usr": "s:SE",
+ "mangledName": "$sSE"
+ },
+ {
+ "kind": "Conformance",
+ "name": "_ExpressibleByFileReferenceLiteral",
+ "printedName": "_ExpressibleByFileReferenceLiteral",
+ "usr": "s:s34_ExpressibleByFileReferenceLiteralP",
+ "mangledName": "$ss34_ExpressibleByFileReferenceLiteralP"
+ }
+ ]
+ }
+ ],
+ "json_format_version": 8
+ },
+ "ConstValues": [
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/FoundationHTTPServerHandler.swift",
+ "kind": "StringLiteral",
+ "offset": 1084,
+ "length": 5,
+ "value": "\"GET\""
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Security\/FoundationSecurity.swift",
+ "kind": "BooleanLiteral",
+ "offset": 1078,
+ "length": 5,
+ "value": "false"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Security\/FoundationSecurity.swift",
+ "kind": "BooleanLiteral",
+ "offset": 1129,
+ "length": 5,
+ "value": "false"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Transport\/FoundationTransport.swift",
+ "kind": "StringLiteral",
+ "offset": 1219,
+ "length": 32,
+ "value": "\"com.vluxe.starscream.websocket\""
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Transport\/FoundationTransport.swift",
+ "kind": "Array",
+ "offset": 1265,
+ "length": 2,
+ "value": "[]"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Transport\/FoundationTransport.swift",
+ "kind": "BooleanLiteral",
+ "offset": 1380,
+ "length": 5,
+ "value": "false"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Transport\/FoundationTransport.swift",
+ "kind": "BooleanLiteral",
+ "offset": 1476,
+ "length": 5,
+ "value": "false"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Transport\/FoundationTransport.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1910,
+ "length": 2,
+ "value": "10"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Transport\/FoundationTransport.swift",
+ "kind": "StringLiteral",
+ "offset": 1058,
+ "length": 19,
+ "value": "\"Starscream.FoundationTransport\""
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/FrameCollector.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1394,
+ "length": 1,
+ "value": "0"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/FrameCollector.swift",
+ "kind": "BooleanLiteral",
+ "offset": 1413,
+ "length": 5,
+ "value": "false"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/FrameCollector.swift",
+ "kind": "BooleanLiteral",
+ "offset": 1502,
+ "length": 5,
+ "value": "false"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 943,
+ "length": 4,
+ "value": "0x80"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 978,
+ "length": 4,
+ "value": "0x0F"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1013,
+ "length": 4,
+ "value": "0x70"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1048,
+ "length": 4,
+ "value": "0x40"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1083,
+ "length": 4,
+ "value": "0x80"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1118,
+ "length": 4,
+ "value": "0x7F"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1153,
+ "length": 2,
+ "value": "32"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1257,
+ "length": 4,
+ "value": "1000"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1296,
+ "length": 4,
+ "value": "1001"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1335,
+ "length": 4,
+ "value": "1002"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1374,
+ "length": 4,
+ "value": "1003"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1435,
+ "length": 4,
+ "value": "1005"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1495,
+ "length": 4,
+ "value": "1007"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1534,
+ "length": 4,
+ "value": "1008"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1573,
+ "length": 4,
+ "value": "1009"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1257,
+ "length": 4,
+ "value": "1000"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1296,
+ "length": 4,
+ "value": "1001"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1335,
+ "length": 4,
+ "value": "1002"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1374,
+ "length": 4,
+ "value": "1003"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1435,
+ "length": 4,
+ "value": "1005"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1495,
+ "length": 4,
+ "value": "1007"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1534,
+ "length": 4,
+ "value": "1008"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1573,
+ "length": 4,
+ "value": "1009"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1257,
+ "length": 4,
+ "value": "1000"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1296,
+ "length": 4,
+ "value": "1001"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1335,
+ "length": 4,
+ "value": "1002"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1374,
+ "length": 4,
+ "value": "1003"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1435,
+ "length": 4,
+ "value": "1005"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1495,
+ "length": 4,
+ "value": "1007"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1534,
+ "length": 4,
+ "value": "1008"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1573,
+ "length": 4,
+ "value": "1009"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1639,
+ "length": 3,
+ "value": "0x0"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1664,
+ "length": 3,
+ "value": "0x1"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1691,
+ "length": 3,
+ "value": "0x2"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1747,
+ "length": 3,
+ "value": "0x8"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1767,
+ "length": 3,
+ "value": "0x9"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1787,
+ "length": 3,
+ "value": "0xA"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1831,
+ "length": 3,
+ "value": "100"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1639,
+ "length": 3,
+ "value": "0x0"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1664,
+ "length": 3,
+ "value": "0x1"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1691,
+ "length": 3,
+ "value": "0x2"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1747,
+ "length": 3,
+ "value": "0x8"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1767,
+ "length": 3,
+ "value": "0x9"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1787,
+ "length": 3,
+ "value": "0xA"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1831,
+ "length": 3,
+ "value": "100"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1639,
+ "length": 3,
+ "value": "0x0"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1664,
+ "length": 3,
+ "value": "0x1"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1691,
+ "length": 3,
+ "value": "0x2"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1747,
+ "length": 3,
+ "value": "0x8"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1767,
+ "length": 3,
+ "value": "0x9"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1787,
+ "length": 3,
+ "value": "0xA"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1831,
+ "length": 3,
+ "value": "100"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "StringLiteral",
+ "offset": 2597,
+ "length": 31,
+ "value": "\"com.vluxe.starscream.wsframer\""
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "Array",
+ "offset": 2642,
+ "length": 2,
+ "value": "[]"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "BooleanLiteral",
+ "offset": 2764,
+ "length": 5,
+ "value": "false"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/Framer.swift",
+ "kind": "BooleanLiteral",
+ "offset": 2839,
+ "length": 5,
+ "value": "false"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/HTTPHandler.swift",
+ "kind": "StringLiteral",
+ "offset": 1090,
+ "length": 9,
+ "value": "\"Upgrade\""
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/HTTPHandler.swift",
+ "kind": "StringLiteral",
+ "offset": 1136,
+ "length": 11,
+ "value": "\"websocket\""
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/HTTPHandler.swift",
+ "kind": "StringLiteral",
+ "offset": 1184,
+ "length": 6,
+ "value": "\"Host\""
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/HTTPHandler.swift",
+ "kind": "StringLiteral",
+ "offset": 1227,
+ "length": 12,
+ "value": "\"Connection\""
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/HTTPHandler.swift",
+ "kind": "StringLiteral",
+ "offset": 1276,
+ "length": 9,
+ "value": "\"Upgrade\""
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/HTTPHandler.swift",
+ "kind": "StringLiteral",
+ "offset": 1322,
+ "length": 24,
+ "value": "\"Sec-WebSocket-Protocol\""
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/HTTPHandler.swift",
+ "kind": "StringLiteral",
+ "offset": 1383,
+ "length": 23,
+ "value": "\"Sec-WebSocket-Version\""
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/HTTPHandler.swift",
+ "kind": "StringLiteral",
+ "offset": 1443,
+ "length": 4,
+ "value": "\"13\""
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/HTTPHandler.swift",
+ "kind": "StringLiteral",
+ "offset": 1484,
+ "length": 26,
+ "value": "\"Sec-WebSocket-Extensions\""
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/HTTPHandler.swift",
+ "kind": "StringLiteral",
+ "offset": 1547,
+ "length": 19,
+ "value": "\"Sec-WebSocket-Key\""
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/HTTPHandler.swift",
+ "kind": "StringLiteral",
+ "offset": 1603,
+ "length": 8,
+ "value": "\"Origin\""
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/HTTPHandler.swift",
+ "kind": "StringLiteral",
+ "offset": 1648,
+ "length": 22,
+ "value": "\"Sec-WebSocket-Accept\""
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/HTTPHandler.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1707,
+ "length": 3,
+ "value": "101"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Framer\/HTTPHandler.swift",
+ "kind": "Array",
+ "offset": 1747,
+ "length": 16,
+ "value": "[\"wss\", \"https\"]"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Security\/Security.swift",
+ "kind": "IntegerLiteral",
+ "offset": 979,
+ "length": 1,
+ "value": "1"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Security\/Security.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1006,
+ "length": 1,
+ "value": "2"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Security\/Security.swift",
+ "kind": "IntegerLiteral",
+ "offset": 979,
+ "length": 1,
+ "value": "1"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Security\/Security.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1006,
+ "length": 1,
+ "value": "2"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Security\/Security.swift",
+ "kind": "IntegerLiteral",
+ "offset": 979,
+ "length": 1,
+ "value": "1"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Security\/Security.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1006,
+ "length": 1,
+ "value": "2"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Transport\/TCPTransport.swift",
+ "kind": "StringLiteral",
+ "offset": 1211,
+ "length": 36,
+ "value": "\"com.vluxe.starscream.networkstream\""
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Transport\/TCPTransport.swift",
+ "kind": "Array",
+ "offset": 1261,
+ "length": 2,
+ "value": "[]"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Transport\/TCPTransport.swift",
+ "kind": "BooleanLiteral",
+ "offset": 1346,
+ "length": 5,
+ "value": "false"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Transport\/TCPTransport.swift",
+ "kind": "BooleanLiteral",
+ "offset": 1376,
+ "length": 5,
+ "value": "false"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Transport\/TCPTransport.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1753,
+ "length": 2,
+ "value": "10"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Starscream\/WebSocket.swift",
+ "kind": "BooleanLiteral",
+ "offset": 3699,
+ "length": 4,
+ "value": "true"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Server\/WebSocketServer.swift",
+ "kind": "StringLiteral",
+ "offset": 1383,
+ "length": 43,
+ "value": "\"com.vluxe.starscream.server.networkstream\""
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Server\/WebSocketServer.swift",
+ "kind": "Array",
+ "offset": 1440,
+ "length": 2,
+ "value": "[]"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Server\/WebSocketServer.swift",
+ "kind": "BooleanLiteral",
+ "offset": 3676,
+ "length": 4,
+ "value": "true"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Server\/WebSocketServer.swift",
+ "kind": "BooleanLiteral",
+ "offset": 3759,
+ "length": 5,
+ "value": "false"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Compression\/WSCompression.swift",
+ "kind": "StringLiteral",
+ "offset": 1368,
+ "length": 26,
+ "value": "\"Sec-WebSocket-Extensions\""
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Compression\/WSCompression.swift",
+ "kind": "BooleanLiteral",
+ "offset": 1494,
+ "length": 5,
+ "value": "false"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Compression\/WSCompression.swift",
+ "kind": "BooleanLiteral",
+ "offset": 1529,
+ "length": 5,
+ "value": "false"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Compression\/WSCompression.swift",
+ "kind": "IntegerLiteral",
+ "offset": 3924,
+ "length": 1,
+ "value": "0"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Compression\/WSCompression.swift",
+ "kind": "IntegerLiteral",
+ "offset": 3934,
+ "length": 6,
+ "value": "0x2000"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Compression\/WSCompression.swift",
+ "kind": "BooleanLiteral",
+ "offset": 3979,
+ "length": 5,
+ "value": "false"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Compression\/WSCompression.swift",
+ "kind": "IntegerLiteral",
+ "offset": 6497,
+ "length": 1,
+ "value": "0"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Compression\/WSCompression.swift",
+ "kind": "IntegerLiteral",
+ "offset": 6507,
+ "length": 6,
+ "value": "0x2000"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Compression\/WSCompression.swift",
+ "kind": "BooleanLiteral",
+ "offset": 6552,
+ "length": 5,
+ "value": "false"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Engine\/WSEngine.swift",
+ "kind": "BooleanLiteral",
+ "offset": 1411,
+ "length": 5,
+ "value": "false"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Engine\/WSEngine.swift",
+ "kind": "StringLiteral",
+ "offset": 1447,
+ "length": 2,
+ "value": "\"\""
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Engine\/WSEngine.swift",
+ "kind": "StringLiteral",
+ "offset": 1500,
+ "length": 33,
+ "value": "\"com.vluxe.starscream.writequeue\""
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Engine\/WSEngine.swift",
+ "kind": "IntegerLiteral",
+ "offset": 1584,
+ "length": 1,
+ "value": "1"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Engine\/WSEngine.swift",
+ "kind": "BooleanLiteral",
+ "offset": 1613,
+ "length": 5,
+ "value": "false"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Engine\/WSEngine.swift",
+ "kind": "BooleanLiteral",
+ "offset": 1650,
+ "length": 5,
+ "value": "false"
+ },
+ {
+ "filePath": "\/Users\/taohebin\/Documents\/project\/CProject\/websocket\/Pods\/Starscream\/Sources\/Engine\/WSEngine.swift",
+ "kind": "BooleanLiteral",
+ "offset": 1745,
+ "length": 4,
+ "value": "true"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-ios.private.swiftinterface b/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-ios.private.swiftinterface
new file mode 100644
index 0000000000000000000000000000000000000000..5c17300c4e18d35b2d3d899edfc4a8c049b3f8c0
--- /dev/null
+++ b/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-ios.private.swiftinterface
@@ -0,0 +1,439 @@
+// swift-interface-format-version: 1.0
+// swift-compiler-version: Apple Swift version 5.7.2 (swiftlang-5.7.2.135.5 clang-1400.0.29.51)
+// swift-module-flags: -target arm64-apple-ios11.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name Starscream
+// swift-module-flags-ignorable: -enable-bare-slash-regex
+import CommonCrypto
+import Foundation
+import Network
+@_exported import Starscream
+import Swift
+import _Concurrency
+import _StringProcessing
+import zlib
+public protocol CompressionHandler {
+ func load(headers: [Swift.String : Swift.String])
+ func decompress(data: Foundation.Data, isFinal: Swift.Bool) -> Foundation.Data?
+ func compress(data: Foundation.Data) -> Foundation.Data?
+}
+public protocol EngineDelegate : AnyObject {
+ func didReceive(event: Starscream.WebSocketEvent)
+}
+public protocol Engine {
+ func register(delegate: Starscream.EngineDelegate)
+ func start(request: Foundation.URLRequest)
+ func stop(closeCode: Swift.UInt16)
+ func forceStop()
+ func write(data: Foundation.Data, opcode: Starscream.FrameOpCode, completion: (() -> ())?)
+ func write(string: Swift.String, completion: (() -> ())?)
+}
+public class FoundationHTTPHandler : Starscream.HTTPHandler {
+ public init()
+ public func convert(request: Foundation.URLRequest) -> Foundation.Data
+ public func parse(data: Foundation.Data) -> Swift.Int
+ public func register(delegate: Starscream.HTTPHandlerDelegate)
+ @objc deinit
+}
+@_hasMissingDesignatedInitializers public class FoundationHTTPServerHandler : Starscream.HTTPServerHandler {
+ public func register(delegate: Starscream.HTTPServerDelegate)
+ public func createResponse(headers: [Swift.String : Swift.String]) -> Foundation.Data
+ public func parse(data: Foundation.Data)
+ @objc deinit
+}
+public enum FoundationSecurityError : Swift.Error {
+ case invalidRequest
+ public static func == (a: Starscream.FoundationSecurityError, b: Starscream.FoundationSecurityError) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+public class FoundationSecurity {
+ public init(allowSelfSigned: Swift.Bool = false)
+ @objc deinit
+}
+extension Starscream.FoundationSecurity : Starscream.CertificatePinning {
+ public func evaluateTrust(trust: Security.SecTrust, domain: Swift.String?, completion: ((Starscream.PinningState) -> ()))
+}
+extension Starscream.FoundationSecurity : Starscream.HeaderValidator {
+ public func validate(headers: [Swift.String : Swift.String], key: Swift.String) -> Swift.Error?
+}
+public enum FoundationTransportError : Swift.Error {
+ case invalidRequest
+ case invalidOutputStream
+ case timeout
+ public static func == (a: Starscream.FoundationTransportError, b: Starscream.FoundationTransportError) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+@objc public class FoundationTransport : ObjectiveC.NSObject, Starscream.Transport, Foundation.StreamDelegate {
+ public var usingTLS: Swift.Bool {
+ get
+ }
+ public init(streamConfiguration: ((Foundation.InputStream, Foundation.OutputStream) -> Swift.Void)? = nil)
+ @objc deinit
+ public func connect(url: Foundation.URL, timeout: Swift.Double = 10, certificatePinning: Starscream.CertificatePinning? = nil)
+ public func disconnect()
+ public func register(delegate: Starscream.TransportEventClient)
+ public func write(data: Foundation.Data, completion: @escaping ((Swift.Error?) -> ()))
+ @objc open func stream(_ aStream: Foundation.Stream, handle eventCode: Foundation.Stream.Event)
+}
+public protocol FrameCollectorDelegate : AnyObject {
+ func didForm(event: Starscream.FrameCollector.Event)
+ func decompress(data: Foundation.Data, isFinal: Swift.Bool) -> Foundation.Data?
+}
+@_hasMissingDesignatedInitializers public class FrameCollector {
+ public enum Event {
+ case text(Swift.String)
+ case binary(Foundation.Data)
+ case pong(Foundation.Data?)
+ case ping(Foundation.Data?)
+ case error(Swift.Error)
+ case closed(Swift.String, Swift.UInt16)
+ }
+ public func add(frame: Starscream.Frame)
+ @objc deinit
+}
+public enum CloseCode : Swift.UInt16 {
+ case normal
+ case goingAway
+ case protocolError
+ case protocolUnhandledType
+ case noStatusReceived
+ case encoding
+ case policyViolated
+ case messageTooBig
+ public init?(rawValue: Swift.UInt16)
+ public typealias RawValue = Swift.UInt16
+ public var rawValue: Swift.UInt16 {
+ get
+ }
+}
+public enum FrameOpCode : Swift.UInt8 {
+ case continueFrame
+ case textFrame
+ case binaryFrame
+ case connectionClose
+ case ping
+ case pong
+ case unknown
+ public init?(rawValue: Swift.UInt8)
+ public typealias RawValue = Swift.UInt8
+ public var rawValue: Swift.UInt8 {
+ get
+ }
+}
+public struct Frame {
+}
+public enum FrameEvent {
+ case frame(Starscream.Frame)
+ case error(Swift.Error)
+}
+public protocol FramerEventClient : AnyObject {
+ func frameProcessed(event: Starscream.FrameEvent)
+}
+public protocol Framer {
+ func add(data: Foundation.Data)
+ func register(delegate: Starscream.FramerEventClient)
+ func createWriteFrame(opcode: Starscream.FrameOpCode, payload: Foundation.Data, isCompressed: Swift.Bool) -> Foundation.Data
+ func updateCompression(supports: Swift.Bool)
+ func supportsCompression() -> Swift.Bool
+}
+public class WSFramer : Starscream.Framer {
+ public var compressionEnabled: Swift.Bool
+ public init(isServer: Swift.Bool = false)
+ public func updateCompression(supports: Swift.Bool)
+ public func supportsCompression() -> Swift.Bool
+ public func add(data: Foundation.Data)
+ public func register(delegate: Starscream.FramerEventClient)
+ public func createWriteFrame(opcode: Starscream.FrameOpCode, payload: Foundation.Data, isCompressed: Swift.Bool) -> Foundation.Data
+ @objc deinit
+}
+public protocol MyWSArrayType {
+}
+extension Swift.UInt8 : Starscream.MyWSArrayType {
+}
+extension Swift.Array where Element : Starscream.MyWSArrayType, Element : Swift.UnsignedInteger {
+ public func readUint16(offset: Swift.Int) -> Swift.UInt16
+ public func readUint64(offset: Swift.Int) -> Swift.UInt64
+ public func unmaskData(maskStart: Swift.Int, offset: Swift.Int, length: Swift.Int) -> Foundation.Data
+}
+public func writeUint16(_ buffer: inout [Swift.UInt8], offset: Swift.Int, value: Swift.UInt16)
+public func writeUint32(_ buffer: inout [Swift.UInt8], offset: Swift.Int, value: Swift.UInt32)
+public func writeUint64(_ buffer: inout [Swift.UInt8], offset: Swift.Int, value: Swift.UInt64)
+public enum HTTPUpgradeError : Swift.Error {
+ case notAnUpgrade(Swift.Int, [Swift.String : Swift.String])
+ case invalidData
+}
+public struct HTTPWSHeader {
+ public static func createUpgrade(request: Foundation.URLRequest, supportsCompression: Swift.Bool, secKeyValue: Swift.String) -> Foundation.URLRequest
+ public static func generateWebSocketKey() -> Swift.String
+}
+public enum HTTPEvent {
+ case success([Swift.String : Swift.String])
+ case failure(Swift.Error)
+}
+public protocol HTTPHandlerDelegate : AnyObject {
+ func didReceiveHTTP(event: Starscream.HTTPEvent)
+}
+public protocol HTTPHandler {
+ func register(delegate: Starscream.HTTPHandlerDelegate)
+ func convert(request: Foundation.URLRequest) -> Foundation.Data
+ func parse(data: Foundation.Data) -> Swift.Int
+}
+public protocol HTTPServerDelegate : AnyObject {
+ func didReceive(event: Starscream.HTTPEvent)
+}
+public protocol HTTPServerHandler {
+ func register(delegate: Starscream.HTTPServerDelegate)
+ func parse(data: Foundation.Data)
+ func createResponse(headers: [Swift.String : Swift.String]) -> Foundation.Data
+}
+public struct URLParts {
+}
+extension Foundation.URL {
+ public var isTLSScheme: Swift.Bool {
+ get
+ }
+ public func getParts() -> Starscream.URLParts?
+}
+@objc @_inheritsConvenienceInitializers @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
+public class NativeEngine : ObjectiveC.NSObject, Starscream.Engine, Foundation.URLSessionDataDelegate, Foundation.URLSessionWebSocketDelegate {
+ public func register(delegate: Starscream.EngineDelegate)
+ public func start(request: Foundation.URLRequest)
+ public func stop(closeCode: Swift.UInt16)
+ public func forceStop()
+ public func write(string: Swift.String, completion: (() -> ())?)
+ public func write(data: Foundation.Data, opcode: Starscream.FrameOpCode, completion: (() -> ())?)
+ @objc public func urlSession(_ session: Foundation.URLSession, webSocketTask: Foundation.URLSessionWebSocketTask, didOpenWithProtocol protocol: Swift.String?)
+ @objc public func urlSession(_ session: Foundation.URLSession, webSocketTask: Foundation.URLSessionWebSocketTask, didCloseWith closeCode: Foundation.URLSessionWebSocketTask.CloseCode, reason: Foundation.Data?)
+ @objc public func urlSession(_ session: Foundation.URLSession, task: Foundation.URLSessionTask, didCompleteWithError error: Swift.Error?)
+ @objc override dynamic public init()
+ @objc deinit
+}
+public enum SecurityErrorCode : Swift.UInt16 {
+ case acceptFailed
+ case pinningFailed
+ public init?(rawValue: Swift.UInt16)
+ public typealias RawValue = Swift.UInt16
+ public var rawValue: Swift.UInt16 {
+ get
+ }
+}
+public enum PinningState {
+ case success
+ case failed(CoreFoundation.CFError?)
+}
+public protocol CertificatePinning : AnyObject {
+ func evaluateTrust(trust: Security.SecTrust, domain: Swift.String?, completion: ((Starscream.PinningState) -> ()))
+}
+public protocol HeaderValidator : AnyObject {
+ func validate(headers: [Swift.String : Swift.String], key: Swift.String) -> Swift.Error?
+}
+public enum ConnectionEvent {
+ case connected([Swift.String : Swift.String])
+ case disconnected(Swift.String, Swift.UInt16)
+ case text(Swift.String)
+ case binary(Foundation.Data)
+ case pong(Foundation.Data?)
+ case ping(Foundation.Data?)
+ case error(Swift.Error)
+}
+public protocol Connection {
+ func write(data: Foundation.Data, opcode: Starscream.FrameOpCode)
+}
+public protocol ConnectionDelegate : AnyObject {
+ func didReceive(event: Starscream.ServerEvent)
+}
+public enum ServerEvent {
+ case connected(Starscream.Connection, [Swift.String : Swift.String])
+ case disconnected(Starscream.Connection, Swift.String, Swift.UInt16)
+ case text(Starscream.Connection, Swift.String)
+ case binary(Starscream.Connection, Foundation.Data)
+ case pong(Starscream.Connection, Foundation.Data?)
+ case ping(Starscream.Connection, Foundation.Data?)
+}
+public protocol Server {
+ func start(address: Swift.String, port: Swift.UInt16) -> Swift.Error?
+}
+public class StringHTTPHandler : Starscream.HTTPHandler {
+ public init()
+ public func convert(request: Foundation.URLRequest) -> Foundation.Data
+ public func parse(data: Foundation.Data) -> Swift.Int
+ public func register(delegate: Starscream.HTTPHandlerDelegate)
+ @objc deinit
+}
+public enum TCPTransportError : Swift.Error {
+ case invalidRequest
+ public static func == (a: Starscream.TCPTransportError, b: Starscream.TCPTransportError) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+@available(macOS 10.14, iOS 12.0, watchOS 5.0, tvOS 12.0, *)
+public class TCPTransport : Starscream.Transport {
+ @objc deinit
+ public var usingTLS: Swift.Bool {
+ get
+ }
+ public init(connection: Network.NWConnection)
+ public init()
+ public func connect(url: Foundation.URL, timeout: Swift.Double = 10, certificatePinning: Starscream.CertificatePinning? = nil)
+ public func disconnect()
+ public func register(delegate: Starscream.TransportEventClient)
+ public func write(data: Foundation.Data, completion: @escaping ((Swift.Error?) -> ()))
+}
+public enum ConnectionState {
+ case connected
+ case waiting
+ case cancelled
+ case failed(Swift.Error?)
+ case viability(Swift.Bool)
+ case shouldReconnect(Swift.Bool)
+ case receive(Foundation.Data)
+ case peerClosed
+}
+public protocol TransportEventClient : AnyObject {
+ func connectionChanged(state: Starscream.ConnectionState)
+}
+public protocol Transport : AnyObject {
+ func register(delegate: Starscream.TransportEventClient)
+ func connect(url: Foundation.URL, timeout: Swift.Double, certificatePinning: Starscream.CertificatePinning?)
+ func disconnect()
+ func write(data: Foundation.Data, completion: @escaping ((Swift.Error?) -> ()))
+ var usingTLS: Swift.Bool { get }
+}
+public enum ErrorType : Swift.Error {
+ case compressionError
+ case securityError
+ case protocolError
+ case serverError
+ public static func == (a: Starscream.ErrorType, b: Starscream.ErrorType) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+public struct WSError : Swift.Error {
+ public let type: Starscream.ErrorType
+ public let message: Swift.String
+ public let code: Swift.UInt16
+ public init(type: Starscream.ErrorType, message: Swift.String, code: Swift.UInt16)
+}
+public protocol WebSocketClient : AnyObject {
+ func connect()
+ func disconnect(closeCode: Swift.UInt16)
+ func write(string: Swift.String, completion: (() -> ())?)
+ func write(stringData: Foundation.Data, completion: (() -> ())?)
+ func write(data: Foundation.Data, completion: (() -> ())?)
+ func write(ping: Foundation.Data, completion: (() -> ())?)
+ func write(pong: Foundation.Data, completion: (() -> ())?)
+}
+extension Starscream.WebSocketClient {
+ public func write(string: Swift.String)
+ public func write(data: Foundation.Data)
+ public func write(ping: Foundation.Data)
+ public func write(pong: Foundation.Data)
+ public func disconnect()
+}
+public enum WebSocketEvent {
+ case connected([Swift.String : Swift.String])
+ case disconnected(Swift.String, Swift.UInt16)
+ case text(Swift.String)
+ case binary(Foundation.Data)
+ case pong(Foundation.Data?)
+ case ping(Foundation.Data?)
+ case error(Swift.Error?)
+ case viabilityChanged(Swift.Bool)
+ case reconnectSuggested(Swift.Bool)
+ case cancelled
+ case peerClosed
+}
+public protocol WebSocketDelegate : AnyObject {
+ func didReceive(event: Starscream.WebSocketEvent, client: Starscream.WebSocketClient)
+}
+open class WebSocket : Starscream.WebSocketClient, Starscream.EngineDelegate {
+ weak public var delegate: Starscream.WebSocketDelegate?
+ public var onEvent: ((Starscream.WebSocketEvent) -> Swift.Void)?
+ public var request: Foundation.URLRequest
+ public var callbackQueue: Dispatch.DispatchQueue
+ public var respondToPingWithPong: Swift.Bool {
+ get
+ set
+ }
+ public init(request: Foundation.URLRequest, engine: Starscream.Engine)
+ convenience public init(request: Foundation.URLRequest, certPinner: Starscream.CertificatePinning? = FoundationSecurity(), compressionHandler: Starscream.CompressionHandler? = nil, useCustomEngine: Swift.Bool = true)
+ public func connect()
+ public func disconnect(closeCode: Swift.UInt16 = CloseCode.normal.rawValue)
+ public func forceDisconnect()
+ public func write(data: Foundation.Data, completion: (() -> ())?)
+ public func write(string: Swift.String, completion: (() -> ())?)
+ public func write(stringData: Foundation.Data, completion: (() -> ())?)
+ public func write(ping: Foundation.Data, completion: (() -> ())?)
+ public func write(pong: Foundation.Data, completion: (() -> ())?)
+ public func didReceive(event: Starscream.WebSocketEvent)
+ @objc deinit
+}
+@available(macOS 10.14, iOS 12.0, watchOS 5.0, tvOS 12.0, *)
+@available(watchOS, unavailable)
+public class WebSocketServer : Starscream.Server, Starscream.ConnectionDelegate {
+ public var onEvent: ((Starscream.ServerEvent) -> Swift.Void)?
+ public init()
+ public func start(address: Swift.String, port: Swift.UInt16) -> Swift.Error?
+ public func didReceive(event: Starscream.ServerEvent)
+ @objc deinit
+}
+@_hasMissingDesignatedInitializers @available(macOS 10.14, iOS 12.0, watchOS 5.0, tvOS 12.0, *)
+public class ServerConnection : Starscream.Connection, Starscream.HTTPServerDelegate, Starscream.FramerEventClient, Starscream.FrameCollectorDelegate, Starscream.TransportEventClient {
+ public var onEvent: ((Starscream.ConnectionEvent) -> Swift.Void)?
+ weak public var delegate: Starscream.ConnectionDelegate?
+ public func write(data: Foundation.Data, opcode: Starscream.FrameOpCode)
+ public func connectionChanged(state: Starscream.ConnectionState)
+ public func didReceive(event: Starscream.HTTPEvent)
+ public func frameProcessed(event: Starscream.FrameEvent)
+ public func didForm(event: Starscream.FrameCollector.Event)
+ public func decompress(data: Foundation.Data, isFinal: Swift.Bool) -> Foundation.Data?
+ @objc deinit
+}
+public class WSCompression : Starscream.CompressionHandler {
+ public init()
+ public func load(headers: [Swift.String : Swift.String])
+ public func decompress(data: Foundation.Data, isFinal: Swift.Bool) -> Foundation.Data?
+ public func compress(data: Foundation.Data) -> Foundation.Data?
+ @objc deinit
+}
+public class WSEngine : Starscream.Engine, Starscream.TransportEventClient, Starscream.FramerEventClient, Starscream.FrameCollectorDelegate, Starscream.HTTPHandlerDelegate {
+ public var respondToPingWithPong: Swift.Bool
+ public init(transport: Starscream.Transport, certPinner: Starscream.CertificatePinning? = nil, headerValidator: Starscream.HeaderValidator = FoundationSecurity(), httpHandler: Starscream.HTTPHandler = FoundationHTTPHandler(), framer: Starscream.Framer = WSFramer(), compressionHandler: Starscream.CompressionHandler? = nil)
+ public func register(delegate: Starscream.EngineDelegate)
+ public func start(request: Foundation.URLRequest)
+ public func stop(closeCode: Swift.UInt16 = CloseCode.normal.rawValue)
+ public func forceStop()
+ public func write(string: Swift.String, completion: (() -> ())?)
+ public func write(data: Foundation.Data, opcode: Starscream.FrameOpCode, completion: (() -> ())?)
+ public func connectionChanged(state: Starscream.ConnectionState)
+ public func didReceiveHTTP(event: Starscream.HTTPEvent)
+ public func frameProcessed(event: Starscream.FrameEvent)
+ public func decompress(data: Foundation.Data, isFinal: Swift.Bool) -> Foundation.Data?
+ public func didForm(event: Starscream.FrameCollector.Event)
+ @objc deinit
+}
+extension Starscream.FoundationSecurityError : Swift.Equatable {}
+extension Starscream.FoundationSecurityError : Swift.Hashable {}
+extension Starscream.FoundationTransportError : Swift.Equatable {}
+extension Starscream.FoundationTransportError : Swift.Hashable {}
+extension Starscream.CloseCode : Swift.Equatable {}
+extension Starscream.CloseCode : Swift.Hashable {}
+extension Starscream.CloseCode : Swift.RawRepresentable {}
+extension Starscream.FrameOpCode : Swift.Equatable {}
+extension Starscream.FrameOpCode : Swift.Hashable {}
+extension Starscream.FrameOpCode : Swift.RawRepresentable {}
+extension Starscream.SecurityErrorCode : Swift.Equatable {}
+extension Starscream.SecurityErrorCode : Swift.Hashable {}
+extension Starscream.SecurityErrorCode : Swift.RawRepresentable {}
+extension Starscream.TCPTransportError : Swift.Equatable {}
+extension Starscream.TCPTransportError : Swift.Hashable {}
+extension Starscream.ErrorType : Swift.Equatable {}
+extension Starscream.ErrorType : Swift.Hashable {}
diff --git a/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-ios.swiftdoc b/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-ios.swiftdoc
new file mode 100644
index 0000000000000000000000000000000000000000..faf2063e87c7c943b495dfc9c384c4478f0e66d2
Binary files /dev/null and b/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-ios.swiftdoc differ
diff --git a/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-ios.swiftinterface b/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-ios.swiftinterface
new file mode 100644
index 0000000000000000000000000000000000000000..5c17300c4e18d35b2d3d899edfc4a8c049b3f8c0
--- /dev/null
+++ b/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-ios.swiftinterface
@@ -0,0 +1,439 @@
+// swift-interface-format-version: 1.0
+// swift-compiler-version: Apple Swift version 5.7.2 (swiftlang-5.7.2.135.5 clang-1400.0.29.51)
+// swift-module-flags: -target arm64-apple-ios11.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name Starscream
+// swift-module-flags-ignorable: -enable-bare-slash-regex
+import CommonCrypto
+import Foundation
+import Network
+@_exported import Starscream
+import Swift
+import _Concurrency
+import _StringProcessing
+import zlib
+public protocol CompressionHandler {
+ func load(headers: [Swift.String : Swift.String])
+ func decompress(data: Foundation.Data, isFinal: Swift.Bool) -> Foundation.Data?
+ func compress(data: Foundation.Data) -> Foundation.Data?
+}
+public protocol EngineDelegate : AnyObject {
+ func didReceive(event: Starscream.WebSocketEvent)
+}
+public protocol Engine {
+ func register(delegate: Starscream.EngineDelegate)
+ func start(request: Foundation.URLRequest)
+ func stop(closeCode: Swift.UInt16)
+ func forceStop()
+ func write(data: Foundation.Data, opcode: Starscream.FrameOpCode, completion: (() -> ())?)
+ func write(string: Swift.String, completion: (() -> ())?)
+}
+public class FoundationHTTPHandler : Starscream.HTTPHandler {
+ public init()
+ public func convert(request: Foundation.URLRequest) -> Foundation.Data
+ public func parse(data: Foundation.Data) -> Swift.Int
+ public func register(delegate: Starscream.HTTPHandlerDelegate)
+ @objc deinit
+}
+@_hasMissingDesignatedInitializers public class FoundationHTTPServerHandler : Starscream.HTTPServerHandler {
+ public func register(delegate: Starscream.HTTPServerDelegate)
+ public func createResponse(headers: [Swift.String : Swift.String]) -> Foundation.Data
+ public func parse(data: Foundation.Data)
+ @objc deinit
+}
+public enum FoundationSecurityError : Swift.Error {
+ case invalidRequest
+ public static func == (a: Starscream.FoundationSecurityError, b: Starscream.FoundationSecurityError) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+public class FoundationSecurity {
+ public init(allowSelfSigned: Swift.Bool = false)
+ @objc deinit
+}
+extension Starscream.FoundationSecurity : Starscream.CertificatePinning {
+ public func evaluateTrust(trust: Security.SecTrust, domain: Swift.String?, completion: ((Starscream.PinningState) -> ()))
+}
+extension Starscream.FoundationSecurity : Starscream.HeaderValidator {
+ public func validate(headers: [Swift.String : Swift.String], key: Swift.String) -> Swift.Error?
+}
+public enum FoundationTransportError : Swift.Error {
+ case invalidRequest
+ case invalidOutputStream
+ case timeout
+ public static func == (a: Starscream.FoundationTransportError, b: Starscream.FoundationTransportError) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+@objc public class FoundationTransport : ObjectiveC.NSObject, Starscream.Transport, Foundation.StreamDelegate {
+ public var usingTLS: Swift.Bool {
+ get
+ }
+ public init(streamConfiguration: ((Foundation.InputStream, Foundation.OutputStream) -> Swift.Void)? = nil)
+ @objc deinit
+ public func connect(url: Foundation.URL, timeout: Swift.Double = 10, certificatePinning: Starscream.CertificatePinning? = nil)
+ public func disconnect()
+ public func register(delegate: Starscream.TransportEventClient)
+ public func write(data: Foundation.Data, completion: @escaping ((Swift.Error?) -> ()))
+ @objc open func stream(_ aStream: Foundation.Stream, handle eventCode: Foundation.Stream.Event)
+}
+public protocol FrameCollectorDelegate : AnyObject {
+ func didForm(event: Starscream.FrameCollector.Event)
+ func decompress(data: Foundation.Data, isFinal: Swift.Bool) -> Foundation.Data?
+}
+@_hasMissingDesignatedInitializers public class FrameCollector {
+ public enum Event {
+ case text(Swift.String)
+ case binary(Foundation.Data)
+ case pong(Foundation.Data?)
+ case ping(Foundation.Data?)
+ case error(Swift.Error)
+ case closed(Swift.String, Swift.UInt16)
+ }
+ public func add(frame: Starscream.Frame)
+ @objc deinit
+}
+public enum CloseCode : Swift.UInt16 {
+ case normal
+ case goingAway
+ case protocolError
+ case protocolUnhandledType
+ case noStatusReceived
+ case encoding
+ case policyViolated
+ case messageTooBig
+ public init?(rawValue: Swift.UInt16)
+ public typealias RawValue = Swift.UInt16
+ public var rawValue: Swift.UInt16 {
+ get
+ }
+}
+public enum FrameOpCode : Swift.UInt8 {
+ case continueFrame
+ case textFrame
+ case binaryFrame
+ case connectionClose
+ case ping
+ case pong
+ case unknown
+ public init?(rawValue: Swift.UInt8)
+ public typealias RawValue = Swift.UInt8
+ public var rawValue: Swift.UInt8 {
+ get
+ }
+}
+public struct Frame {
+}
+public enum FrameEvent {
+ case frame(Starscream.Frame)
+ case error(Swift.Error)
+}
+public protocol FramerEventClient : AnyObject {
+ func frameProcessed(event: Starscream.FrameEvent)
+}
+public protocol Framer {
+ func add(data: Foundation.Data)
+ func register(delegate: Starscream.FramerEventClient)
+ func createWriteFrame(opcode: Starscream.FrameOpCode, payload: Foundation.Data, isCompressed: Swift.Bool) -> Foundation.Data
+ func updateCompression(supports: Swift.Bool)
+ func supportsCompression() -> Swift.Bool
+}
+public class WSFramer : Starscream.Framer {
+ public var compressionEnabled: Swift.Bool
+ public init(isServer: Swift.Bool = false)
+ public func updateCompression(supports: Swift.Bool)
+ public func supportsCompression() -> Swift.Bool
+ public func add(data: Foundation.Data)
+ public func register(delegate: Starscream.FramerEventClient)
+ public func createWriteFrame(opcode: Starscream.FrameOpCode, payload: Foundation.Data, isCompressed: Swift.Bool) -> Foundation.Data
+ @objc deinit
+}
+public protocol MyWSArrayType {
+}
+extension Swift.UInt8 : Starscream.MyWSArrayType {
+}
+extension Swift.Array where Element : Starscream.MyWSArrayType, Element : Swift.UnsignedInteger {
+ public func readUint16(offset: Swift.Int) -> Swift.UInt16
+ public func readUint64(offset: Swift.Int) -> Swift.UInt64
+ public func unmaskData(maskStart: Swift.Int, offset: Swift.Int, length: Swift.Int) -> Foundation.Data
+}
+public func writeUint16(_ buffer: inout [Swift.UInt8], offset: Swift.Int, value: Swift.UInt16)
+public func writeUint32(_ buffer: inout [Swift.UInt8], offset: Swift.Int, value: Swift.UInt32)
+public func writeUint64(_ buffer: inout [Swift.UInt8], offset: Swift.Int, value: Swift.UInt64)
+public enum HTTPUpgradeError : Swift.Error {
+ case notAnUpgrade(Swift.Int, [Swift.String : Swift.String])
+ case invalidData
+}
+public struct HTTPWSHeader {
+ public static func createUpgrade(request: Foundation.URLRequest, supportsCompression: Swift.Bool, secKeyValue: Swift.String) -> Foundation.URLRequest
+ public static func generateWebSocketKey() -> Swift.String
+}
+public enum HTTPEvent {
+ case success([Swift.String : Swift.String])
+ case failure(Swift.Error)
+}
+public protocol HTTPHandlerDelegate : AnyObject {
+ func didReceiveHTTP(event: Starscream.HTTPEvent)
+}
+public protocol HTTPHandler {
+ func register(delegate: Starscream.HTTPHandlerDelegate)
+ func convert(request: Foundation.URLRequest) -> Foundation.Data
+ func parse(data: Foundation.Data) -> Swift.Int
+}
+public protocol HTTPServerDelegate : AnyObject {
+ func didReceive(event: Starscream.HTTPEvent)
+}
+public protocol HTTPServerHandler {
+ func register(delegate: Starscream.HTTPServerDelegate)
+ func parse(data: Foundation.Data)
+ func createResponse(headers: [Swift.String : Swift.String]) -> Foundation.Data
+}
+public struct URLParts {
+}
+extension Foundation.URL {
+ public var isTLSScheme: Swift.Bool {
+ get
+ }
+ public func getParts() -> Starscream.URLParts?
+}
+@objc @_inheritsConvenienceInitializers @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
+public class NativeEngine : ObjectiveC.NSObject, Starscream.Engine, Foundation.URLSessionDataDelegate, Foundation.URLSessionWebSocketDelegate {
+ public func register(delegate: Starscream.EngineDelegate)
+ public func start(request: Foundation.URLRequest)
+ public func stop(closeCode: Swift.UInt16)
+ public func forceStop()
+ public func write(string: Swift.String, completion: (() -> ())?)
+ public func write(data: Foundation.Data, opcode: Starscream.FrameOpCode, completion: (() -> ())?)
+ @objc public func urlSession(_ session: Foundation.URLSession, webSocketTask: Foundation.URLSessionWebSocketTask, didOpenWithProtocol protocol: Swift.String?)
+ @objc public func urlSession(_ session: Foundation.URLSession, webSocketTask: Foundation.URLSessionWebSocketTask, didCloseWith closeCode: Foundation.URLSessionWebSocketTask.CloseCode, reason: Foundation.Data?)
+ @objc public func urlSession(_ session: Foundation.URLSession, task: Foundation.URLSessionTask, didCompleteWithError error: Swift.Error?)
+ @objc override dynamic public init()
+ @objc deinit
+}
+public enum SecurityErrorCode : Swift.UInt16 {
+ case acceptFailed
+ case pinningFailed
+ public init?(rawValue: Swift.UInt16)
+ public typealias RawValue = Swift.UInt16
+ public var rawValue: Swift.UInt16 {
+ get
+ }
+}
+public enum PinningState {
+ case success
+ case failed(CoreFoundation.CFError?)
+}
+public protocol CertificatePinning : AnyObject {
+ func evaluateTrust(trust: Security.SecTrust, domain: Swift.String?, completion: ((Starscream.PinningState) -> ()))
+}
+public protocol HeaderValidator : AnyObject {
+ func validate(headers: [Swift.String : Swift.String], key: Swift.String) -> Swift.Error?
+}
+public enum ConnectionEvent {
+ case connected([Swift.String : Swift.String])
+ case disconnected(Swift.String, Swift.UInt16)
+ case text(Swift.String)
+ case binary(Foundation.Data)
+ case pong(Foundation.Data?)
+ case ping(Foundation.Data?)
+ case error(Swift.Error)
+}
+public protocol Connection {
+ func write(data: Foundation.Data, opcode: Starscream.FrameOpCode)
+}
+public protocol ConnectionDelegate : AnyObject {
+ func didReceive(event: Starscream.ServerEvent)
+}
+public enum ServerEvent {
+ case connected(Starscream.Connection, [Swift.String : Swift.String])
+ case disconnected(Starscream.Connection, Swift.String, Swift.UInt16)
+ case text(Starscream.Connection, Swift.String)
+ case binary(Starscream.Connection, Foundation.Data)
+ case pong(Starscream.Connection, Foundation.Data?)
+ case ping(Starscream.Connection, Foundation.Data?)
+}
+public protocol Server {
+ func start(address: Swift.String, port: Swift.UInt16) -> Swift.Error?
+}
+public class StringHTTPHandler : Starscream.HTTPHandler {
+ public init()
+ public func convert(request: Foundation.URLRequest) -> Foundation.Data
+ public func parse(data: Foundation.Data) -> Swift.Int
+ public func register(delegate: Starscream.HTTPHandlerDelegate)
+ @objc deinit
+}
+public enum TCPTransportError : Swift.Error {
+ case invalidRequest
+ public static func == (a: Starscream.TCPTransportError, b: Starscream.TCPTransportError) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+@available(macOS 10.14, iOS 12.0, watchOS 5.0, tvOS 12.0, *)
+public class TCPTransport : Starscream.Transport {
+ @objc deinit
+ public var usingTLS: Swift.Bool {
+ get
+ }
+ public init(connection: Network.NWConnection)
+ public init()
+ public func connect(url: Foundation.URL, timeout: Swift.Double = 10, certificatePinning: Starscream.CertificatePinning? = nil)
+ public func disconnect()
+ public func register(delegate: Starscream.TransportEventClient)
+ public func write(data: Foundation.Data, completion: @escaping ((Swift.Error?) -> ()))
+}
+public enum ConnectionState {
+ case connected
+ case waiting
+ case cancelled
+ case failed(Swift.Error?)
+ case viability(Swift.Bool)
+ case shouldReconnect(Swift.Bool)
+ case receive(Foundation.Data)
+ case peerClosed
+}
+public protocol TransportEventClient : AnyObject {
+ func connectionChanged(state: Starscream.ConnectionState)
+}
+public protocol Transport : AnyObject {
+ func register(delegate: Starscream.TransportEventClient)
+ func connect(url: Foundation.URL, timeout: Swift.Double, certificatePinning: Starscream.CertificatePinning?)
+ func disconnect()
+ func write(data: Foundation.Data, completion: @escaping ((Swift.Error?) -> ()))
+ var usingTLS: Swift.Bool { get }
+}
+public enum ErrorType : Swift.Error {
+ case compressionError
+ case securityError
+ case protocolError
+ case serverError
+ public static func == (a: Starscream.ErrorType, b: Starscream.ErrorType) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+public struct WSError : Swift.Error {
+ public let type: Starscream.ErrorType
+ public let message: Swift.String
+ public let code: Swift.UInt16
+ public init(type: Starscream.ErrorType, message: Swift.String, code: Swift.UInt16)
+}
+public protocol WebSocketClient : AnyObject {
+ func connect()
+ func disconnect(closeCode: Swift.UInt16)
+ func write(string: Swift.String, completion: (() -> ())?)
+ func write(stringData: Foundation.Data, completion: (() -> ())?)
+ func write(data: Foundation.Data, completion: (() -> ())?)
+ func write(ping: Foundation.Data, completion: (() -> ())?)
+ func write(pong: Foundation.Data, completion: (() -> ())?)
+}
+extension Starscream.WebSocketClient {
+ public func write(string: Swift.String)
+ public func write(data: Foundation.Data)
+ public func write(ping: Foundation.Data)
+ public func write(pong: Foundation.Data)
+ public func disconnect()
+}
+public enum WebSocketEvent {
+ case connected([Swift.String : Swift.String])
+ case disconnected(Swift.String, Swift.UInt16)
+ case text(Swift.String)
+ case binary(Foundation.Data)
+ case pong(Foundation.Data?)
+ case ping(Foundation.Data?)
+ case error(Swift.Error?)
+ case viabilityChanged(Swift.Bool)
+ case reconnectSuggested(Swift.Bool)
+ case cancelled
+ case peerClosed
+}
+public protocol WebSocketDelegate : AnyObject {
+ func didReceive(event: Starscream.WebSocketEvent, client: Starscream.WebSocketClient)
+}
+open class WebSocket : Starscream.WebSocketClient, Starscream.EngineDelegate {
+ weak public var delegate: Starscream.WebSocketDelegate?
+ public var onEvent: ((Starscream.WebSocketEvent) -> Swift.Void)?
+ public var request: Foundation.URLRequest
+ public var callbackQueue: Dispatch.DispatchQueue
+ public var respondToPingWithPong: Swift.Bool {
+ get
+ set
+ }
+ public init(request: Foundation.URLRequest, engine: Starscream.Engine)
+ convenience public init(request: Foundation.URLRequest, certPinner: Starscream.CertificatePinning? = FoundationSecurity(), compressionHandler: Starscream.CompressionHandler? = nil, useCustomEngine: Swift.Bool = true)
+ public func connect()
+ public func disconnect(closeCode: Swift.UInt16 = CloseCode.normal.rawValue)
+ public func forceDisconnect()
+ public func write(data: Foundation.Data, completion: (() -> ())?)
+ public func write(string: Swift.String, completion: (() -> ())?)
+ public func write(stringData: Foundation.Data, completion: (() -> ())?)
+ public func write(ping: Foundation.Data, completion: (() -> ())?)
+ public func write(pong: Foundation.Data, completion: (() -> ())?)
+ public func didReceive(event: Starscream.WebSocketEvent)
+ @objc deinit
+}
+@available(macOS 10.14, iOS 12.0, watchOS 5.0, tvOS 12.0, *)
+@available(watchOS, unavailable)
+public class WebSocketServer : Starscream.Server, Starscream.ConnectionDelegate {
+ public var onEvent: ((Starscream.ServerEvent) -> Swift.Void)?
+ public init()
+ public func start(address: Swift.String, port: Swift.UInt16) -> Swift.Error?
+ public func didReceive(event: Starscream.ServerEvent)
+ @objc deinit
+}
+@_hasMissingDesignatedInitializers @available(macOS 10.14, iOS 12.0, watchOS 5.0, tvOS 12.0, *)
+public class ServerConnection : Starscream.Connection, Starscream.HTTPServerDelegate, Starscream.FramerEventClient, Starscream.FrameCollectorDelegate, Starscream.TransportEventClient {
+ public var onEvent: ((Starscream.ConnectionEvent) -> Swift.Void)?
+ weak public var delegate: Starscream.ConnectionDelegate?
+ public func write(data: Foundation.Data, opcode: Starscream.FrameOpCode)
+ public func connectionChanged(state: Starscream.ConnectionState)
+ public func didReceive(event: Starscream.HTTPEvent)
+ public func frameProcessed(event: Starscream.FrameEvent)
+ public func didForm(event: Starscream.FrameCollector.Event)
+ public func decompress(data: Foundation.Data, isFinal: Swift.Bool) -> Foundation.Data?
+ @objc deinit
+}
+public class WSCompression : Starscream.CompressionHandler {
+ public init()
+ public func load(headers: [Swift.String : Swift.String])
+ public func decompress(data: Foundation.Data, isFinal: Swift.Bool) -> Foundation.Data?
+ public func compress(data: Foundation.Data) -> Foundation.Data?
+ @objc deinit
+}
+public class WSEngine : Starscream.Engine, Starscream.TransportEventClient, Starscream.FramerEventClient, Starscream.FrameCollectorDelegate, Starscream.HTTPHandlerDelegate {
+ public var respondToPingWithPong: Swift.Bool
+ public init(transport: Starscream.Transport, certPinner: Starscream.CertificatePinning? = nil, headerValidator: Starscream.HeaderValidator = FoundationSecurity(), httpHandler: Starscream.HTTPHandler = FoundationHTTPHandler(), framer: Starscream.Framer = WSFramer(), compressionHandler: Starscream.CompressionHandler? = nil)
+ public func register(delegate: Starscream.EngineDelegate)
+ public func start(request: Foundation.URLRequest)
+ public func stop(closeCode: Swift.UInt16 = CloseCode.normal.rawValue)
+ public func forceStop()
+ public func write(string: Swift.String, completion: (() -> ())?)
+ public func write(data: Foundation.Data, opcode: Starscream.FrameOpCode, completion: (() -> ())?)
+ public func connectionChanged(state: Starscream.ConnectionState)
+ public func didReceiveHTTP(event: Starscream.HTTPEvent)
+ public func frameProcessed(event: Starscream.FrameEvent)
+ public func decompress(data: Foundation.Data, isFinal: Swift.Bool) -> Foundation.Data?
+ public func didForm(event: Starscream.FrameCollector.Event)
+ @objc deinit
+}
+extension Starscream.FoundationSecurityError : Swift.Equatable {}
+extension Starscream.FoundationSecurityError : Swift.Hashable {}
+extension Starscream.FoundationTransportError : Swift.Equatable {}
+extension Starscream.FoundationTransportError : Swift.Hashable {}
+extension Starscream.CloseCode : Swift.Equatable {}
+extension Starscream.CloseCode : Swift.Hashable {}
+extension Starscream.CloseCode : Swift.RawRepresentable {}
+extension Starscream.FrameOpCode : Swift.Equatable {}
+extension Starscream.FrameOpCode : Swift.Hashable {}
+extension Starscream.FrameOpCode : Swift.RawRepresentable {}
+extension Starscream.SecurityErrorCode : Swift.Equatable {}
+extension Starscream.SecurityErrorCode : Swift.Hashable {}
+extension Starscream.SecurityErrorCode : Swift.RawRepresentable {}
+extension Starscream.TCPTransportError : Swift.Equatable {}
+extension Starscream.TCPTransportError : Swift.Hashable {}
+extension Starscream.ErrorType : Swift.Equatable {}
+extension Starscream.ErrorType : Swift.Hashable {}
diff --git a/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64/Starscream.framework/Modules/module.modulemap b/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64/Starscream.framework/Modules/module.modulemap
new file mode 100644
index 0000000000000000000000000000000000000000..f1e7d85f08a5a7d99e17cf62c5debd20a5453c77
--- /dev/null
+++ b/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64/Starscream.framework/Modules/module.modulemap
@@ -0,0 +1,11 @@
+framework module Starscream {
+ umbrella header "Starscream-umbrella.h"
+
+ export *
+ module * { export * }
+}
+
+module Starscream.Swift {
+ header "Starscream-Swift.h"
+ requires objc
+}
diff --git a/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64/Starscream.framework/Starscream b/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64/Starscream.framework/Starscream
new file mode 100644
index 0000000000000000000000000000000000000000..475d1431659d417c2a0e26ab93816a00542efbab
Binary files /dev/null and b/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64/Starscream.framework/Starscream differ
diff --git a/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64_x86_64-simulator/Starscream.framework/Headers/Starscream-Swift.h b/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64_x86_64-simulator/Starscream.framework/Headers/Starscream-Swift.h
new file mode 100644
index 0000000000000000000000000000000000000000..f69abff5c46c97076470edfdc8f7544c348f3a64
--- /dev/null
+++ b/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64_x86_64-simulator/Starscream.framework/Headers/Starscream-Swift.h
@@ -0,0 +1,574 @@
+#if 0
+#elif defined(__arm64__) && __arm64__
+// Generated by Apple Swift version 5.7.2 (swiftlang-5.7.2.135.5 clang-1400.0.29.51)
+#ifndef STARSCREAM_SWIFT_H
+#define STARSCREAM_SWIFT_H
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wgcc-compat"
+
+#if !defined(__has_include)
+# define __has_include(x) 0
+#endif
+#if !defined(__has_attribute)
+# define __has_attribute(x) 0
+#endif
+#if !defined(__has_feature)
+# define __has_feature(x) 0
+#endif
+#if !defined(__has_warning)
+# define __has_warning(x) 0
+#endif
+
+#if __has_include()
+# include
+#endif
+
+#pragma clang diagnostic ignored "-Wduplicate-method-match"
+#pragma clang diagnostic ignored "-Wauto-import"
+#if defined(__OBJC__)
+#include
+#endif
+#if defined(__cplusplus)
+#include
+#include
+#include
+#else
+#include
+#include
+#include
+#endif
+
+#if !defined(SWIFT_TYPEDEFS)
+# define SWIFT_TYPEDEFS 1
+# if __has_include()
+# include
+# elif !defined(__cplusplus)
+typedef uint_least16_t char16_t;
+typedef uint_least32_t char32_t;
+# endif
+typedef float swift_float2 __attribute__((__ext_vector_type__(2)));
+typedef float swift_float3 __attribute__((__ext_vector_type__(3)));
+typedef float swift_float4 __attribute__((__ext_vector_type__(4)));
+typedef double swift_double2 __attribute__((__ext_vector_type__(2)));
+typedef double swift_double3 __attribute__((__ext_vector_type__(3)));
+typedef double swift_double4 __attribute__((__ext_vector_type__(4)));
+typedef int swift_int2 __attribute__((__ext_vector_type__(2)));
+typedef int swift_int3 __attribute__((__ext_vector_type__(3)));
+typedef int swift_int4 __attribute__((__ext_vector_type__(4)));
+typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2)));
+typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3)));
+typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4)));
+#endif
+
+#if !defined(SWIFT_PASTE)
+# define SWIFT_PASTE_HELPER(x, y) x##y
+# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y)
+#endif
+#if !defined(SWIFT_METATYPE)
+# define SWIFT_METATYPE(X) Class
+#endif
+#if !defined(SWIFT_CLASS_PROPERTY)
+# if __has_feature(objc_class_property)
+# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__
+# else
+# define SWIFT_CLASS_PROPERTY(...)
+# endif
+#endif
+
+#if __has_attribute(objc_runtime_name)
+# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
+#else
+# define SWIFT_RUNTIME_NAME(X)
+#endif
+#if __has_attribute(swift_name)
+# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X)))
+#else
+# define SWIFT_COMPILE_NAME(X)
+#endif
+#if __has_attribute(objc_method_family)
+# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X)))
+#else
+# define SWIFT_METHOD_FAMILY(X)
+#endif
+#if __has_attribute(noescape)
+# define SWIFT_NOESCAPE __attribute__((noescape))
+#else
+# define SWIFT_NOESCAPE
+#endif
+#if __has_attribute(ns_consumed)
+# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed))
+#else
+# define SWIFT_RELEASES_ARGUMENT
+#endif
+#if __has_attribute(warn_unused_result)
+# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
+#else
+# define SWIFT_WARN_UNUSED_RESULT
+#endif
+#if __has_attribute(noreturn)
+# define SWIFT_NORETURN __attribute__((noreturn))
+#else
+# define SWIFT_NORETURN
+#endif
+#if !defined(SWIFT_CLASS_EXTRA)
+# define SWIFT_CLASS_EXTRA
+#endif
+#if !defined(SWIFT_PROTOCOL_EXTRA)
+# define SWIFT_PROTOCOL_EXTRA
+#endif
+#if !defined(SWIFT_ENUM_EXTRA)
+# define SWIFT_ENUM_EXTRA
+#endif
+#if !defined(SWIFT_CLASS)
+# if __has_attribute(objc_subclassing_restricted)
+# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA
+# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
+# else
+# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
+# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
+# endif
+#endif
+#if !defined(SWIFT_RESILIENT_CLASS)
+# if __has_attribute(objc_class_stub)
+# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub))
+# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME)
+# else
+# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME)
+# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME)
+# endif
+#endif
+
+#if !defined(SWIFT_PROTOCOL)
+# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
+# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
+#endif
+
+#if !defined(SWIFT_EXTENSION)
+# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__)
+#endif
+
+#if !defined(OBJC_DESIGNATED_INITIALIZER)
+# if __has_attribute(objc_designated_initializer)
+# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
+# else
+# define OBJC_DESIGNATED_INITIALIZER
+# endif
+#endif
+#if !defined(SWIFT_ENUM_ATTR)
+# if defined(__has_attribute) && __has_attribute(enum_extensibility)
+# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility)))
+# else
+# define SWIFT_ENUM_ATTR(_extensibility)
+# endif
+#endif
+#if !defined(SWIFT_ENUM)
+# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
+# if __has_feature(generalized_swift_name)
+# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
+# else
+# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility)
+# endif
+#endif
+#if !defined(SWIFT_UNAVAILABLE)
+# define SWIFT_UNAVAILABLE __attribute__((unavailable))
+#endif
+#if !defined(SWIFT_UNAVAILABLE_MSG)
+# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg)))
+#endif
+#if !defined(SWIFT_AVAILABILITY)
+# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__)))
+#endif
+#if !defined(SWIFT_WEAK_IMPORT)
+# define SWIFT_WEAK_IMPORT __attribute__((weak_import))
+#endif
+#if !defined(SWIFT_DEPRECATED)
+# define SWIFT_DEPRECATED __attribute__((deprecated))
+#endif
+#if !defined(SWIFT_DEPRECATED_MSG)
+# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__)))
+#endif
+#if __has_feature(attribute_diagnose_if_objc)
+# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning")))
+#else
+# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg)
+#endif
+#if defined(__OBJC__)
+#if !defined(IBSegueAction)
+# define IBSegueAction
+#endif
+#endif
+#if !defined(SWIFT_EXTERN)
+# if defined(__cplusplus)
+# define SWIFT_EXTERN extern "C"
+# else
+# define SWIFT_EXTERN extern
+# endif
+#endif
+#if !defined(SWIFT_CALL)
+# define SWIFT_CALL __attribute__((swiftcall))
+#endif
+#if defined(__cplusplus)
+#if !defined(SWIFT_NOEXCEPT)
+# define SWIFT_NOEXCEPT noexcept
+#endif
+#else
+#if !defined(SWIFT_NOEXCEPT)
+# define SWIFT_NOEXCEPT
+#endif
+#endif
+#if defined(__cplusplus)
+#if !defined(SWIFT_CXX_INT_DEFINED)
+#define SWIFT_CXX_INT_DEFINED
+namespace swift {
+using Int = ptrdiff_t;
+using UInt = size_t;
+}
+#endif
+#endif
+#if defined(__OBJC__)
+#if __has_feature(modules)
+#if __has_warning("-Watimport-in-framework-header")
+#pragma clang diagnostic ignored "-Watimport-in-framework-header"
+#endif
+@import Foundation;
+@import ObjectiveC;
+#endif
+
+#endif
+#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch"
+#pragma clang diagnostic ignored "-Wduplicate-method-arg"
+#if __has_warning("-Wpragma-clang-attribute")
+# pragma clang diagnostic ignored "-Wpragma-clang-attribute"
+#endif
+#pragma clang diagnostic ignored "-Wunknown-pragmas"
+#pragma clang diagnostic ignored "-Wnullability"
+#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension"
+
+#if __has_attribute(external_source_symbol)
+# pragma push_macro("any")
+# undef any
+# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="Starscream",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol))
+# pragma pop_macro("any")
+#endif
+
+#if defined(__OBJC__)
+@class NSStream;
+
+SWIFT_CLASS("_TtC10Starscream19FoundationTransport")
+@interface FoundationTransport : NSObject
+- (void)stream:(NSStream * _Nonnull)aStream handleEvent:(NSStreamEvent)eventCode;
+- (nonnull instancetype)init SWIFT_UNAVAILABLE;
++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
+@end
+
+@class NSURLSession;
+@class NSURLSessionWebSocketTask;
+@class NSString;
+@class NSData;
+@class NSURLSessionTask;
+
+SWIFT_CLASS("_TtC10Starscream12NativeEngine") SWIFT_AVAILABILITY(tvos,introduced=13.0) SWIFT_AVAILABILITY(watchos,introduced=6.0) SWIFT_AVAILABILITY(ios,introduced=13.0) SWIFT_AVAILABILITY(macos,introduced=10.15)
+@interface NativeEngine : NSObject
+- (void)URLSession:(NSURLSession * _Nonnull)session webSocketTask:(NSURLSessionWebSocketTask * _Nonnull)webSocketTask didOpenWithProtocol:(NSString * _Nullable)protocol;
+- (void)URLSession:(NSURLSession * _Nonnull)session webSocketTask:(NSURLSessionWebSocketTask * _Nonnull)webSocketTask didCloseWithCode:(NSURLSessionWebSocketCloseCode)closeCode reason:(NSData * _Nullable)reason;
+- (void)URLSession:(NSURLSession * _Nonnull)session task:(NSURLSessionTask * _Nonnull)task didCompleteWithError:(NSError * _Nullable)error;
+- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
+@end
+
+#endif
+#if defined(__cplusplus)
+#endif
+#if __has_attribute(external_source_symbol)
+# pragma clang attribute pop
+#endif
+#pragma clang diagnostic pop
+#endif
+
+#elif defined(__x86_64__) && __x86_64__
+// Generated by Apple Swift version 5.7.2 (swiftlang-5.7.2.135.5 clang-1400.0.29.51)
+#ifndef STARSCREAM_SWIFT_H
+#define STARSCREAM_SWIFT_H
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wgcc-compat"
+
+#if !defined(__has_include)
+# define __has_include(x) 0
+#endif
+#if !defined(__has_attribute)
+# define __has_attribute(x) 0
+#endif
+#if !defined(__has_feature)
+# define __has_feature(x) 0
+#endif
+#if !defined(__has_warning)
+# define __has_warning(x) 0
+#endif
+
+#if __has_include()
+# include
+#endif
+
+#pragma clang diagnostic ignored "-Wduplicate-method-match"
+#pragma clang diagnostic ignored "-Wauto-import"
+#if defined(__OBJC__)
+#include
+#endif
+#if defined(__cplusplus)
+#include
+#include
+#include
+#else
+#include
+#include
+#include
+#endif
+
+#if !defined(SWIFT_TYPEDEFS)
+# define SWIFT_TYPEDEFS 1
+# if __has_include()
+# include
+# elif !defined(__cplusplus)
+typedef uint_least16_t char16_t;
+typedef uint_least32_t char32_t;
+# endif
+typedef float swift_float2 __attribute__((__ext_vector_type__(2)));
+typedef float swift_float3 __attribute__((__ext_vector_type__(3)));
+typedef float swift_float4 __attribute__((__ext_vector_type__(4)));
+typedef double swift_double2 __attribute__((__ext_vector_type__(2)));
+typedef double swift_double3 __attribute__((__ext_vector_type__(3)));
+typedef double swift_double4 __attribute__((__ext_vector_type__(4)));
+typedef int swift_int2 __attribute__((__ext_vector_type__(2)));
+typedef int swift_int3 __attribute__((__ext_vector_type__(3)));
+typedef int swift_int4 __attribute__((__ext_vector_type__(4)));
+typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2)));
+typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3)));
+typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4)));
+#endif
+
+#if !defined(SWIFT_PASTE)
+# define SWIFT_PASTE_HELPER(x, y) x##y
+# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y)
+#endif
+#if !defined(SWIFT_METATYPE)
+# define SWIFT_METATYPE(X) Class
+#endif
+#if !defined(SWIFT_CLASS_PROPERTY)
+# if __has_feature(objc_class_property)
+# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__
+# else
+# define SWIFT_CLASS_PROPERTY(...)
+# endif
+#endif
+
+#if __has_attribute(objc_runtime_name)
+# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
+#else
+# define SWIFT_RUNTIME_NAME(X)
+#endif
+#if __has_attribute(swift_name)
+# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X)))
+#else
+# define SWIFT_COMPILE_NAME(X)
+#endif
+#if __has_attribute(objc_method_family)
+# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X)))
+#else
+# define SWIFT_METHOD_FAMILY(X)
+#endif
+#if __has_attribute(noescape)
+# define SWIFT_NOESCAPE __attribute__((noescape))
+#else
+# define SWIFT_NOESCAPE
+#endif
+#if __has_attribute(ns_consumed)
+# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed))
+#else
+# define SWIFT_RELEASES_ARGUMENT
+#endif
+#if __has_attribute(warn_unused_result)
+# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
+#else
+# define SWIFT_WARN_UNUSED_RESULT
+#endif
+#if __has_attribute(noreturn)
+# define SWIFT_NORETURN __attribute__((noreturn))
+#else
+# define SWIFT_NORETURN
+#endif
+#if !defined(SWIFT_CLASS_EXTRA)
+# define SWIFT_CLASS_EXTRA
+#endif
+#if !defined(SWIFT_PROTOCOL_EXTRA)
+# define SWIFT_PROTOCOL_EXTRA
+#endif
+#if !defined(SWIFT_ENUM_EXTRA)
+# define SWIFT_ENUM_EXTRA
+#endif
+#if !defined(SWIFT_CLASS)
+# if __has_attribute(objc_subclassing_restricted)
+# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA
+# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
+# else
+# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
+# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
+# endif
+#endif
+#if !defined(SWIFT_RESILIENT_CLASS)
+# if __has_attribute(objc_class_stub)
+# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub))
+# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME)
+# else
+# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME)
+# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME)
+# endif
+#endif
+
+#if !defined(SWIFT_PROTOCOL)
+# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
+# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
+#endif
+
+#if !defined(SWIFT_EXTENSION)
+# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__)
+#endif
+
+#if !defined(OBJC_DESIGNATED_INITIALIZER)
+# if __has_attribute(objc_designated_initializer)
+# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
+# else
+# define OBJC_DESIGNATED_INITIALIZER
+# endif
+#endif
+#if !defined(SWIFT_ENUM_ATTR)
+# if defined(__has_attribute) && __has_attribute(enum_extensibility)
+# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility)))
+# else
+# define SWIFT_ENUM_ATTR(_extensibility)
+# endif
+#endif
+#if !defined(SWIFT_ENUM)
+# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
+# if __has_feature(generalized_swift_name)
+# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
+# else
+# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility)
+# endif
+#endif
+#if !defined(SWIFT_UNAVAILABLE)
+# define SWIFT_UNAVAILABLE __attribute__((unavailable))
+#endif
+#if !defined(SWIFT_UNAVAILABLE_MSG)
+# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg)))
+#endif
+#if !defined(SWIFT_AVAILABILITY)
+# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__)))
+#endif
+#if !defined(SWIFT_WEAK_IMPORT)
+# define SWIFT_WEAK_IMPORT __attribute__((weak_import))
+#endif
+#if !defined(SWIFT_DEPRECATED)
+# define SWIFT_DEPRECATED __attribute__((deprecated))
+#endif
+#if !defined(SWIFT_DEPRECATED_MSG)
+# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__)))
+#endif
+#if __has_feature(attribute_diagnose_if_objc)
+# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning")))
+#else
+# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg)
+#endif
+#if defined(__OBJC__)
+#if !defined(IBSegueAction)
+# define IBSegueAction
+#endif
+#endif
+#if !defined(SWIFT_EXTERN)
+# if defined(__cplusplus)
+# define SWIFT_EXTERN extern "C"
+# else
+# define SWIFT_EXTERN extern
+# endif
+#endif
+#if !defined(SWIFT_CALL)
+# define SWIFT_CALL __attribute__((swiftcall))
+#endif
+#if defined(__cplusplus)
+#if !defined(SWIFT_NOEXCEPT)
+# define SWIFT_NOEXCEPT noexcept
+#endif
+#else
+#if !defined(SWIFT_NOEXCEPT)
+# define SWIFT_NOEXCEPT
+#endif
+#endif
+#if defined(__cplusplus)
+#if !defined(SWIFT_CXX_INT_DEFINED)
+#define SWIFT_CXX_INT_DEFINED
+namespace swift {
+using Int = ptrdiff_t;
+using UInt = size_t;
+}
+#endif
+#endif
+#if defined(__OBJC__)
+#if __has_feature(modules)
+#if __has_warning("-Watimport-in-framework-header")
+#pragma clang diagnostic ignored "-Watimport-in-framework-header"
+#endif
+@import Foundation;
+@import ObjectiveC;
+#endif
+
+#endif
+#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch"
+#pragma clang diagnostic ignored "-Wduplicate-method-arg"
+#if __has_warning("-Wpragma-clang-attribute")
+# pragma clang diagnostic ignored "-Wpragma-clang-attribute"
+#endif
+#pragma clang diagnostic ignored "-Wunknown-pragmas"
+#pragma clang diagnostic ignored "-Wnullability"
+#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension"
+
+#if __has_attribute(external_source_symbol)
+# pragma push_macro("any")
+# undef any
+# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="Starscream",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol))
+# pragma pop_macro("any")
+#endif
+
+#if defined(__OBJC__)
+@class NSStream;
+
+SWIFT_CLASS("_TtC10Starscream19FoundationTransport")
+@interface FoundationTransport : NSObject
+- (void)stream:(NSStream * _Nonnull)aStream handleEvent:(NSStreamEvent)eventCode;
+- (nonnull instancetype)init SWIFT_UNAVAILABLE;
++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
+@end
+
+@class NSURLSession;
+@class NSURLSessionWebSocketTask;
+@class NSString;
+@class NSData;
+@class NSURLSessionTask;
+
+SWIFT_CLASS("_TtC10Starscream12NativeEngine") SWIFT_AVAILABILITY(tvos,introduced=13.0) SWIFT_AVAILABILITY(watchos,introduced=6.0) SWIFT_AVAILABILITY(ios,introduced=13.0) SWIFT_AVAILABILITY(macos,introduced=10.15)
+@interface NativeEngine : NSObject
+- (void)URLSession:(NSURLSession * _Nonnull)session webSocketTask:(NSURLSessionWebSocketTask * _Nonnull)webSocketTask didOpenWithProtocol:(NSString * _Nullable)protocol;
+- (void)URLSession:(NSURLSession * _Nonnull)session webSocketTask:(NSURLSessionWebSocketTask * _Nonnull)webSocketTask didCloseWithCode:(NSURLSessionWebSocketCloseCode)closeCode reason:(NSData * _Nullable)reason;
+- (void)URLSession:(NSURLSession * _Nonnull)session task:(NSURLSessionTask * _Nonnull)task didCompleteWithError:(NSError * _Nullable)error;
+- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
+@end
+
+#endif
+#if defined(__cplusplus)
+#endif
+#if __has_attribute(external_source_symbol)
+# pragma clang attribute pop
+#endif
+#pragma clang diagnostic pop
+#endif
+
+#else
+#error unsupported Swift architecture
+#endif
diff --git a/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64_x86_64-simulator/Starscream.framework/Headers/Starscream-umbrella.h b/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64_x86_64-simulator/Starscream.framework/Headers/Starscream-umbrella.h
new file mode 100644
index 0000000000000000000000000000000000000000..7bffee0b3cb27f3f8e6f321138357f1a21addc47
--- /dev/null
+++ b/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64_x86_64-simulator/Starscream.framework/Headers/Starscream-umbrella.h
@@ -0,0 +1,16 @@
+#ifdef __OBJC__
+#import
+#else
+#ifndef FOUNDATION_EXPORT
+#if defined(__cplusplus)
+#define FOUNDATION_EXPORT extern "C"
+#else
+#define FOUNDATION_EXPORT extern
+#endif
+#endif
+#endif
+
+
+FOUNDATION_EXPORT double StarscreamVersionNumber;
+FOUNDATION_EXPORT const unsigned char StarscreamVersionString[];
+
diff --git a/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64_x86_64-simulator/Starscream.framework/Info.plist b/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64_x86_64-simulator/Starscream.framework/Info.plist
new file mode 100644
index 0000000000000000000000000000000000000000..2dd8636fbbc8cb5e423406bb276c43a7ddc62acf
Binary files /dev/null and b/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64_x86_64-simulator/Starscream.framework/Info.plist differ
diff --git a/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo b/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo
new file mode 100644
index 0000000000000000000000000000000000000000..7b2970c95c52d5c26db2849935c1ba1ba05c25f4
Binary files /dev/null and b/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo differ
diff --git a/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo b/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo
new file mode 100644
index 0000000000000000000000000000000000000000..e9727a611ea4abd03d1b4b73f342dcbe7d9af2ea
Binary files /dev/null and b/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo differ
diff --git a/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-ios-simulator.abi.json b/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-ios-simulator.abi.json
new file mode 100644
index 0000000000000000000000000000000000000000..b1b05261d91771e184394a9c78c77a6c88d8d469
--- /dev/null
+++ b/uni_modules/uni-websocket/utssdk/app-ios/frameworks/Starscream.xcframework/ios-arm64_x86_64-simulator/Starscream.framework/Modules/Starscream.swiftmodule/arm64-apple-ios-simulator.abi.json
@@ -0,0 +1,13868 @@
+{
+ "ABIRoot": {
+ "kind": "Root",
+ "name": "TopLevel",
+ "printedName": "TopLevel",
+ "children": [
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "CompressionHandler",
+ "printedName": "CompressionHandler",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "load",
+ "printedName": "load(headers:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Dictionary",
+ "printedName": "[Swift.String : Swift.String]",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "usr": "s:SD"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream18CompressionHandlerP4load7headersySDyS2SG_tF",
+ "mangledName": "$s10Starscream18CompressionHandlerP4load7headersySDyS2SG_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.CompressionHandler>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "decompress",
+ "printedName": "decompress(data:isFinal:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Foundation.Data?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "usr": "s:Sq"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream18CompressionHandlerP10decompress4data7isFinal10Foundation4DataVSgAI_SbtF",
+ "mangledName": "$s10Starscream18CompressionHandlerP10decompress4data7isFinal10Foundation4DataVSgAI_SbtF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.CompressionHandler>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "compress",
+ "printedName": "compress(data:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Foundation.Data?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "usr": "s:Sq"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream18CompressionHandlerP8compress4data10Foundation4DataVSgAH_tF",
+ "mangledName": "$s10Starscream18CompressionHandlerP8compress4data10Foundation4DataVSgAH_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.CompressionHandler>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream18CompressionHandlerP",
+ "mangledName": "$s10Starscream18CompressionHandlerP",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "EngineDelegate",
+ "printedName": "EngineDelegate",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "didReceive",
+ "printedName": "didReceive(event:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "WebSocketEvent",
+ "printedName": "Starscream.WebSocketEvent",
+ "usr": "s:10Starscream14WebSocketEventO"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream14EngineDelegateP10didReceive5eventyAA14WebSocketEventO_tF",
+ "mangledName": "$s10Starscream14EngineDelegateP10didReceive5eventyAA14WebSocketEventO_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.EngineDelegate>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream14EngineDelegateP",
+ "mangledName": "$s10Starscream14EngineDelegateP",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 : AnyObject>",
+ "sugared_genericSig": "",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "Engine",
+ "printedName": "Engine",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "register",
+ "printedName": "register(delegate:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "EngineDelegate",
+ "printedName": "Starscream.EngineDelegate",
+ "usr": "s:10Starscream14EngineDelegateP"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream6EngineP8register8delegateyAA0B8Delegate_p_tF",
+ "mangledName": "$s10Starscream6EngineP8register8delegateyAA0B8Delegate_p_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Engine>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "start",
+ "printedName": "start(request:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "URLRequest",
+ "printedName": "Foundation.URLRequest",
+ "usr": "s:10Foundation10URLRequestV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream6EngineP5start7requesty10Foundation10URLRequestV_tF",
+ "mangledName": "$s10Starscream6EngineP5start7requesty10Foundation10URLRequestV_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Engine>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "stop",
+ "printedName": "stop(closeCode:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream6EngineP4stop9closeCodeys6UInt16V_tF",
+ "mangledName": "$s10Starscream6EngineP4stop9closeCodeys6UInt16V_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Engine>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "forceStop",
+ "printedName": "forceStop()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream6EngineP9forceStopyyF",
+ "mangledName": "$s10Starscream6EngineP9forceStopyyF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Engine>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "write",
+ "printedName": "write(data:opcode:completion:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "(() -> ())?",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "() -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream6EngineP5write4data6opcode10completiony10Foundation4DataV_AA11FrameOpCodeOyycSgtF",
+ "mangledName": "$s10Starscream6EngineP5write4data6opcode10completiony10Foundation4DataV_AA11FrameOpCodeOyycSgtF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Engine>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "write",
+ "printedName": "write(string:completion:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "(() -> ())?",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "() -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream6EngineP5write6string10completionySS_yycSgtF",
+ "mangledName": "$s10Starscream6EngineP5write6string10completionySS_yycSgtF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Engine>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream6EngineP",
+ "mangledName": "$s10Starscream6EngineP",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "FoundationHTTPHandler",
+ "printedName": "FoundationHTTPHandler",
+ "children": [
+ {
+ "kind": "Constructor",
+ "name": "init",
+ "printedName": "init()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FoundationHTTPHandler",
+ "printedName": "Starscream.FoundationHTTPHandler",
+ "usr": "s:10Starscream21FoundationHTTPHandlerC"
+ }
+ ],
+ "declKind": "Constructor",
+ "usr": "s:10Starscream21FoundationHTTPHandlerCACycfc",
+ "mangledName": "$s10Starscream21FoundationHTTPHandlerCACycfc",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "init_kind": "Designated"
+ },
+ {
+ "kind": "Function",
+ "name": "convert",
+ "printedName": "convert(request:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "URLRequest",
+ "printedName": "Foundation.URLRequest",
+ "usr": "s:10Foundation10URLRequestV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream21FoundationHTTPHandlerC7convert7request0B04DataVAF10URLRequestV_tF",
+ "mangledName": "$s10Starscream21FoundationHTTPHandlerC7convert7request0B04DataVAF10URLRequestV_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "parse",
+ "printedName": "parse(data:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream21FoundationHTTPHandlerC5parse4dataSi0B04DataV_tF",
+ "mangledName": "$s10Starscream21FoundationHTTPHandlerC5parse4dataSi0B04DataV_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "register",
+ "printedName": "register(delegate:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "HTTPHandlerDelegate",
+ "printedName": "Starscream.HTTPHandlerDelegate",
+ "usr": "s:10Starscream19HTTPHandlerDelegateP"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream21FoundationHTTPHandlerC8register8delegateyAA0C8Delegate_p_tF",
+ "mangledName": "$s10Starscream21FoundationHTTPHandlerC8register8delegateyAA0C8Delegate_p_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Class",
+ "usr": "s:10Starscream21FoundationHTTPHandlerC",
+ "mangledName": "$s10Starscream21FoundationHTTPHandlerC",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "HTTPHandler",
+ "printedName": "HTTPHandler",
+ "usr": "s:10Starscream11HTTPHandlerP",
+ "mangledName": "$s10Starscream11HTTPHandlerP"
+ }
+ ]
+ },
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "FoundationHTTPServerHandler",
+ "printedName": "FoundationHTTPServerHandler",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "register",
+ "printedName": "register(delegate:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "HTTPServerDelegate",
+ "printedName": "Starscream.HTTPServerDelegate",
+ "usr": "s:10Starscream18HTTPServerDelegateP"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream27FoundationHTTPServerHandlerC8register8delegateyAA0C8Delegate_p_tF",
+ "mangledName": "$s10Starscream27FoundationHTTPServerHandlerC8register8delegateyAA0C8Delegate_p_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "createResponse",
+ "printedName": "createResponse(headers:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Dictionary",
+ "printedName": "[Swift.String : Swift.String]",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "usr": "s:SD"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream27FoundationHTTPServerHandlerC14createResponse7headers0B04DataVSDyS2SG_tF",
+ "mangledName": "$s10Starscream27FoundationHTTPServerHandlerC14createResponse7headers0B04DataVSDyS2SG_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "parse",
+ "printedName": "parse(data:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream27FoundationHTTPServerHandlerC5parse4datay0B04DataV_tF",
+ "mangledName": "$s10Starscream27FoundationHTTPServerHandlerC5parse4datay0B04DataV_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Class",
+ "usr": "s:10Starscream27FoundationHTTPServerHandlerC",
+ "mangledName": "$s10Starscream27FoundationHTTPServerHandlerC",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "hasMissingDesignatedInitializers": true,
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "HTTPServerHandler",
+ "printedName": "HTTPServerHandler",
+ "usr": "s:10Starscream17HTTPServerHandlerP",
+ "mangledName": "$s10Starscream17HTTPServerHandlerP"
+ }
+ ]
+ },
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "Import",
+ "name": "CommonCrypto",
+ "printedName": "CommonCrypto",
+ "declKind": "Import",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "FoundationSecurityError",
+ "printedName": "FoundationSecurityError",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "invalidRequest",
+ "printedName": "invalidRequest",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FoundationSecurityError.Type) -> Starscream.FoundationSecurityError",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FoundationSecurityError",
+ "printedName": "Starscream.FoundationSecurityError",
+ "usr": "s:10Starscream23FoundationSecurityErrorO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FoundationSecurityError.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FoundationSecurityError",
+ "printedName": "Starscream.FoundationSecurityError",
+ "usr": "s:10Starscream23FoundationSecurityErrorO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream23FoundationSecurityErrorO14invalidRequestyA2CmF",
+ "mangledName": "$s10Starscream23FoundationSecurityErrorO14invalidRequestyA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Function",
+ "name": "==",
+ "printedName": "==(_:_:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "FoundationSecurityError",
+ "printedName": "Starscream.FoundationSecurityError",
+ "usr": "s:10Starscream23FoundationSecurityErrorO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "FoundationSecurityError",
+ "printedName": "Starscream.FoundationSecurityError",
+ "usr": "s:10Starscream23FoundationSecurityErrorO"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream23FoundationSecurityErrorO2eeoiySbAC_ACtFZ",
+ "mangledName": "$s10Starscream23FoundationSecurityErrorO2eeoiySbAC_ACtFZ",
+ "moduleName": "Starscream",
+ "static": true,
+ "implicit": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Var",
+ "name": "hashValue",
+ "printedName": "hashValue",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ }
+ ],
+ "declKind": "Var",
+ "usr": "s:10Starscream23FoundationSecurityErrorO9hashValueSivp",
+ "mangledName": "$s10Starscream23FoundationSecurityErrorO9hashValueSivp",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessors": [
+ {
+ "kind": "Accessor",
+ "name": "Get",
+ "printedName": "Get()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream23FoundationSecurityErrorO9hashValueSivg",
+ "mangledName": "$s10Starscream23FoundationSecurityErrorO9hashValueSivg",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "get"
+ }
+ ]
+ },
+ {
+ "kind": "Function",
+ "name": "hash",
+ "printedName": "hash(into:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Hasher",
+ "printedName": "Swift.Hasher",
+ "paramValueOwnership": "InOut",
+ "usr": "s:s6HasherV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream23FoundationSecurityErrorO4hash4intoys6HasherVz_tF",
+ "mangledName": "$s10Starscream23FoundationSecurityErrorO4hash4intoys6HasherVz_tF",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Enum",
+ "usr": "s:10Starscream23FoundationSecurityErrorO",
+ "mangledName": "$s10Starscream23FoundationSecurityErrorO",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "Equatable",
+ "printedName": "Equatable",
+ "usr": "s:SQ",
+ "mangledName": "$sSQ"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Hashable",
+ "printedName": "Hashable",
+ "usr": "s:SH",
+ "mangledName": "$sSH"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Error",
+ "printedName": "Error",
+ "usr": "s:s5ErrorP",
+ "mangledName": "$ss5ErrorP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Sendable",
+ "printedName": "Sendable",
+ "usr": "s:s8SendableP",
+ "mangledName": "$ss8SendableP"
+ }
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "FoundationSecurity",
+ "printedName": "FoundationSecurity",
+ "children": [
+ {
+ "kind": "Constructor",
+ "name": "init",
+ "printedName": "init(allowSelfSigned:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FoundationSecurity",
+ "printedName": "Starscream.FoundationSecurity",
+ "usr": "s:10Starscream18FoundationSecurityC"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "hasDefaultArg": true,
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Constructor",
+ "usr": "s:10Starscream18FoundationSecurityC15allowSelfSignedACSb_tcfc",
+ "mangledName": "$s10Starscream18FoundationSecurityC15allowSelfSignedACSb_tcfc",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "init_kind": "Designated"
+ },
+ {
+ "kind": "Function",
+ "name": "evaluateTrust",
+ "printedName": "evaluateTrust(trust:domain:completion:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "SecTrust",
+ "printedName": "Security.SecTrust",
+ "usr": "c:@T@SecTrustRef"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Swift.String?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "usr": "s:Sq"
+ },
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.PinningState) -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "PinningState",
+ "printedName": "Starscream.PinningState",
+ "usr": "s:10Starscream12PinningStateO"
+ }
+ ],
+ "typeAttributes": [
+ "noescape"
+ ]
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream18FoundationSecurityC13evaluateTrust5trust6domain10completionySo03SecE3Refa_SSSgyAA12PinningStateOXEtF",
+ "mangledName": "$s10Starscream18FoundationSecurityC13evaluateTrust5trust6domain10completionySo03SecE3Refa_SSSgyAA12PinningStateOXEtF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "isFromExtension": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "validate",
+ "printedName": "validate(headers:key:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Swift.Error?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Error",
+ "printedName": "Swift.Error",
+ "usr": "s:s5ErrorP"
+ }
+ ],
+ "usr": "s:Sq"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Dictionary",
+ "printedName": "[Swift.String : Swift.String]",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "usr": "s:SD"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream18FoundationSecurityC8validate7headers3keys5Error_pSgSDyS2SG_SStF",
+ "mangledName": "$s10Starscream18FoundationSecurityC8validate7headers3keys5Error_pSgSDyS2SG_SStF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "isFromExtension": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Class",
+ "usr": "s:10Starscream18FoundationSecurityC",
+ "mangledName": "$s10Starscream18FoundationSecurityC",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "CertificatePinning",
+ "printedName": "CertificatePinning",
+ "usr": "s:10Starscream18CertificatePinningP",
+ "mangledName": "$s10Starscream18CertificatePinningP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "HeaderValidator",
+ "printedName": "HeaderValidator",
+ "usr": "s:10Starscream15HeaderValidatorP",
+ "mangledName": "$s10Starscream15HeaderValidatorP"
+ }
+ ]
+ },
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "FoundationTransportError",
+ "printedName": "FoundationTransportError",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "invalidRequest",
+ "printedName": "invalidRequest",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FoundationTransportError.Type) -> Starscream.FoundationTransportError",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FoundationTransportError",
+ "printedName": "Starscream.FoundationTransportError",
+ "usr": "s:10Starscream24FoundationTransportErrorO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FoundationTransportError.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FoundationTransportError",
+ "printedName": "Starscream.FoundationTransportError",
+ "usr": "s:10Starscream24FoundationTransportErrorO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream24FoundationTransportErrorO14invalidRequestyA2CmF",
+ "mangledName": "$s10Starscream24FoundationTransportErrorO14invalidRequestyA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "invalidOutputStream",
+ "printedName": "invalidOutputStream",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FoundationTransportError.Type) -> Starscream.FoundationTransportError",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FoundationTransportError",
+ "printedName": "Starscream.FoundationTransportError",
+ "usr": "s:10Starscream24FoundationTransportErrorO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FoundationTransportError.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FoundationTransportError",
+ "printedName": "Starscream.FoundationTransportError",
+ "usr": "s:10Starscream24FoundationTransportErrorO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream24FoundationTransportErrorO19invalidOutputStreamyA2CmF",
+ "mangledName": "$s10Starscream24FoundationTransportErrorO19invalidOutputStreamyA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "timeout",
+ "printedName": "timeout",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FoundationTransportError.Type) -> Starscream.FoundationTransportError",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FoundationTransportError",
+ "printedName": "Starscream.FoundationTransportError",
+ "usr": "s:10Starscream24FoundationTransportErrorO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FoundationTransportError.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FoundationTransportError",
+ "printedName": "Starscream.FoundationTransportError",
+ "usr": "s:10Starscream24FoundationTransportErrorO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream24FoundationTransportErrorO7timeoutyA2CmF",
+ "mangledName": "$s10Starscream24FoundationTransportErrorO7timeoutyA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Function",
+ "name": "==",
+ "printedName": "==(_:_:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "FoundationTransportError",
+ "printedName": "Starscream.FoundationTransportError",
+ "usr": "s:10Starscream24FoundationTransportErrorO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "FoundationTransportError",
+ "printedName": "Starscream.FoundationTransportError",
+ "usr": "s:10Starscream24FoundationTransportErrorO"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream24FoundationTransportErrorO2eeoiySbAC_ACtFZ",
+ "mangledName": "$s10Starscream24FoundationTransportErrorO2eeoiySbAC_ACtFZ",
+ "moduleName": "Starscream",
+ "static": true,
+ "implicit": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Var",
+ "name": "hashValue",
+ "printedName": "hashValue",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ }
+ ],
+ "declKind": "Var",
+ "usr": "s:10Starscream24FoundationTransportErrorO9hashValueSivp",
+ "mangledName": "$s10Starscream24FoundationTransportErrorO9hashValueSivp",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessors": [
+ {
+ "kind": "Accessor",
+ "name": "Get",
+ "printedName": "Get()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream24FoundationTransportErrorO9hashValueSivg",
+ "mangledName": "$s10Starscream24FoundationTransportErrorO9hashValueSivg",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "get"
+ }
+ ]
+ },
+ {
+ "kind": "Function",
+ "name": "hash",
+ "printedName": "hash(into:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Hasher",
+ "printedName": "Swift.Hasher",
+ "paramValueOwnership": "InOut",
+ "usr": "s:s6HasherV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream24FoundationTransportErrorO4hash4intoys6HasherVz_tF",
+ "mangledName": "$s10Starscream24FoundationTransportErrorO4hash4intoys6HasherVz_tF",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Enum",
+ "usr": "s:10Starscream24FoundationTransportErrorO",
+ "mangledName": "$s10Starscream24FoundationTransportErrorO",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "Equatable",
+ "printedName": "Equatable",
+ "usr": "s:SQ",
+ "mangledName": "$sSQ"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Hashable",
+ "printedName": "Hashable",
+ "usr": "s:SH",
+ "mangledName": "$sSH"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Error",
+ "printedName": "Error",
+ "usr": "s:s5ErrorP",
+ "mangledName": "$ss5ErrorP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Sendable",
+ "printedName": "Sendable",
+ "usr": "s:s8SendableP",
+ "mangledName": "$ss8SendableP"
+ }
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "FoundationTransport",
+ "printedName": "FoundationTransport",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "usingTLS",
+ "printedName": "usingTLS",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Var",
+ "usr": "s:10Starscream19FoundationTransportC8usingTLSSbvp",
+ "mangledName": "$s10Starscream19FoundationTransportC8usingTLSSbvp",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "accessors": [
+ {
+ "kind": "Accessor",
+ "name": "Get",
+ "printedName": "Get()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream19FoundationTransportC8usingTLSSbvg",
+ "mangledName": "$s10Starscream19FoundationTransportC8usingTLSSbvg",
+ "moduleName": "Starscream",
+ "accessorKind": "get"
+ }
+ ]
+ },
+ {
+ "kind": "Constructor",
+ "name": "init",
+ "printedName": "init(streamConfiguration:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FoundationTransport",
+ "printedName": "Starscream.FoundationTransport",
+ "usr": "c:@M@Starscream@objc(cs)FoundationTransport"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "((Foundation.InputStream, Foundation.OutputStream) -> ())?",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Foundation.InputStream, Foundation.OutputStream) -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Tuple",
+ "printedName": "(Foundation.InputStream, Foundation.OutputStream)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "InputStream",
+ "printedName": "Foundation.InputStream",
+ "usr": "c:objc(cs)NSInputStream"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "OutputStream",
+ "printedName": "Foundation.OutputStream",
+ "usr": "c:objc(cs)NSOutputStream"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "hasDefaultArg": true,
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Constructor",
+ "usr": "s:10Starscream19FoundationTransportC19streamConfigurationACySo13NSInputStreamC_So08NSOutputG0CtcSg_tcfc",
+ "mangledName": "$s10Starscream19FoundationTransportC19streamConfigurationACySo13NSInputStreamC_So08NSOutputG0CtcSg_tcfc",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "init_kind": "Designated"
+ },
+ {
+ "kind": "Function",
+ "name": "connect",
+ "printedName": "connect(url:timeout:certificatePinning:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "URL",
+ "printedName": "Foundation.URL",
+ "usr": "s:10Foundation3URLV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Double",
+ "printedName": "Swift.Double",
+ "hasDefaultArg": true,
+ "usr": "s:Sd"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Starscream.CertificatePinning?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CertificatePinning",
+ "printedName": "Starscream.CertificatePinning",
+ "usr": "s:10Starscream18CertificatePinningP"
+ }
+ ],
+ "hasDefaultArg": true,
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream19FoundationTransportC7connect3url7timeout18certificatePinningy0B03URLV_SdAA011CertificateH0_pSgtF",
+ "mangledName": "$s10Starscream19FoundationTransportC7connect3url7timeout18certificatePinningy0B03URLV_SdAA011CertificateH0_pSgtF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "disconnect",
+ "printedName": "disconnect()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream19FoundationTransportC10disconnectyyF",
+ "mangledName": "$s10Starscream19FoundationTransportC10disconnectyyF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "register",
+ "printedName": "register(delegate:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "TransportEventClient",
+ "printedName": "Starscream.TransportEventClient",
+ "usr": "s:10Starscream20TransportEventClientP"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream19FoundationTransportC8register8delegateyAA0C11EventClient_p_tF",
+ "mangledName": "$s10Starscream19FoundationTransportC8register8delegateyAA0C11EventClient_p_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "write",
+ "printedName": "write(data:completion:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.Error?) -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Swift.Error?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Error",
+ "printedName": "Swift.Error",
+ "usr": "s:s5ErrorP"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ]
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream19FoundationTransportC5write4data10completiony0B04DataV_ys5Error_pSgctF",
+ "mangledName": "$s10Starscream19FoundationTransportC5write4data10completiony0B04DataV_ys5Error_pSgctF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "stream",
+ "printedName": "stream(_:handle:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Stream",
+ "printedName": "Foundation.Stream",
+ "usr": "c:objc(cs)NSStream"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Event",
+ "printedName": "Foundation.Stream.Event",
+ "usr": "c:@E@NSStreamEvent"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "c:@M@Starscream@objc(cs)FoundationTransport(im)stream:handleEvent:",
+ "mangledName": "$s10Starscream19FoundationTransportC6stream_6handleySo8NSStreamC_So0F5EventVtF",
+ "moduleName": "Starscream",
+ "objc_name": "stream:handleEvent:",
+ "declAttributes": [
+ "ObjC",
+ "AccessControl",
+ "RawDocComment"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Constructor",
+ "name": "init",
+ "printedName": "init()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FoundationTransport",
+ "printedName": "Starscream.FoundationTransport",
+ "usr": "c:@M@Starscream@objc(cs)FoundationTransport"
+ }
+ ],
+ "declKind": "Constructor",
+ "usr": "c:@M@Starscream@objc(cs)FoundationTransport(im)init",
+ "mangledName": "$s10Starscream19FoundationTransportCACycfc",
+ "moduleName": "Starscream",
+ "overriding": true,
+ "implicit": true,
+ "objc_name": "init",
+ "declAttributes": [
+ "Dynamic",
+ "ObjC",
+ "Override"
+ ],
+ "init_kind": "Designated"
+ }
+ ],
+ "declKind": "Class",
+ "usr": "c:@M@Starscream@objc(cs)FoundationTransport",
+ "mangledName": "$s10Starscream19FoundationTransportC",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl",
+ "ObjC"
+ ],
+ "superclassUsr": "c:objc(cs)NSObject",
+ "superclassNames": [
+ "ObjectiveC.NSObject"
+ ],
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "Transport",
+ "printedName": "Transport",
+ "usr": "s:10Starscream9TransportP",
+ "mangledName": "$s10Starscream9TransportP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Equatable",
+ "printedName": "Equatable",
+ "usr": "s:SQ",
+ "mangledName": "$sSQ"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Hashable",
+ "printedName": "Hashable",
+ "usr": "s:SH",
+ "mangledName": "$sSH"
+ },
+ {
+ "kind": "Conformance",
+ "name": "CVarArg",
+ "printedName": "CVarArg",
+ "usr": "s:s7CVarArgP",
+ "mangledName": "$ss7CVarArgP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "_KeyValueCodingAndObservingPublishing",
+ "printedName": "_KeyValueCodingAndObservingPublishing",
+ "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP",
+ "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "_KeyValueCodingAndObserving",
+ "printedName": "_KeyValueCodingAndObserving",
+ "usr": "s:10Foundation27_KeyValueCodingAndObservingP",
+ "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "CustomStringConvertible",
+ "printedName": "CustomStringConvertible",
+ "usr": "s:s23CustomStringConvertibleP",
+ "mangledName": "$ss23CustomStringConvertibleP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "CustomDebugStringConvertible",
+ "printedName": "CustomDebugStringConvertible",
+ "usr": "s:s28CustomDebugStringConvertibleP",
+ "mangledName": "$ss28CustomDebugStringConvertibleP"
+ }
+ ]
+ },
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "FrameCollectorDelegate",
+ "printedName": "FrameCollectorDelegate",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "didForm",
+ "printedName": "didForm(event:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Event",
+ "printedName": "Starscream.FrameCollector.Event",
+ "usr": "s:10Starscream14FrameCollectorC5EventO"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream22FrameCollectorDelegateP7didForm5eventyAA0bC0C5EventO_tF",
+ "mangledName": "$s10Starscream22FrameCollectorDelegateP7didForm5eventyAA0bC0C5EventO_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.FrameCollectorDelegate>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "decompress",
+ "printedName": "decompress(data:isFinal:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Foundation.Data?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "usr": "s:Sq"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream22FrameCollectorDelegateP10decompress4data7isFinal10Foundation4DataVSgAI_SbtF",
+ "mangledName": "$s10Starscream22FrameCollectorDelegateP10decompress4data7isFinal10Foundation4DataVSgAI_SbtF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.FrameCollectorDelegate>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream22FrameCollectorDelegateP",
+ "mangledName": "$s10Starscream22FrameCollectorDelegateP",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 : AnyObject>",
+ "sugared_genericSig": "",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "FrameCollector",
+ "printedName": "FrameCollector",
+ "children": [
+ {
+ "kind": "TypeDecl",
+ "name": "Event",
+ "printedName": "Event",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "text",
+ "printedName": "text",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FrameCollector.Event.Type) -> (Swift.String) -> Starscream.FrameCollector.Event",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.String) -> Starscream.FrameCollector.Event",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Event",
+ "printedName": "Starscream.FrameCollector.Event",
+ "usr": "s:10Starscream14FrameCollectorC5EventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FrameCollector.Event.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Event",
+ "printedName": "Starscream.FrameCollector.Event",
+ "usr": "s:10Starscream14FrameCollectorC5EventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream14FrameCollectorC5EventO4textyAESScAEmF",
+ "mangledName": "$s10Starscream14FrameCollectorC5EventO4textyAESScAEmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "binary",
+ "printedName": "binary",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FrameCollector.Event.Type) -> (Foundation.Data) -> Starscream.FrameCollector.Event",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Foundation.Data) -> Starscream.FrameCollector.Event",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Event",
+ "printedName": "Starscream.FrameCollector.Event",
+ "usr": "s:10Starscream14FrameCollectorC5EventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FrameCollector.Event.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Event",
+ "printedName": "Starscream.FrameCollector.Event",
+ "usr": "s:10Starscream14FrameCollectorC5EventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream14FrameCollectorC5EventO6binaryyAE10Foundation4DataVcAEmF",
+ "mangledName": "$s10Starscream14FrameCollectorC5EventO6binaryyAE10Foundation4DataVcAEmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "pong",
+ "printedName": "pong",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FrameCollector.Event.Type) -> (Foundation.Data?) -> Starscream.FrameCollector.Event",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Foundation.Data?) -> Starscream.FrameCollector.Event",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Event",
+ "printedName": "Starscream.FrameCollector.Event",
+ "usr": "s:10Starscream14FrameCollectorC5EventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Foundation.Data?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FrameCollector.Event.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Event",
+ "printedName": "Starscream.FrameCollector.Event",
+ "usr": "s:10Starscream14FrameCollectorC5EventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream14FrameCollectorC5EventO4pongyAE10Foundation4DataVSgcAEmF",
+ "mangledName": "$s10Starscream14FrameCollectorC5EventO4pongyAE10Foundation4DataVSgcAEmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "ping",
+ "printedName": "ping",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FrameCollector.Event.Type) -> (Foundation.Data?) -> Starscream.FrameCollector.Event",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Foundation.Data?) -> Starscream.FrameCollector.Event",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Event",
+ "printedName": "Starscream.FrameCollector.Event",
+ "usr": "s:10Starscream14FrameCollectorC5EventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Foundation.Data?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FrameCollector.Event.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Event",
+ "printedName": "Starscream.FrameCollector.Event",
+ "usr": "s:10Starscream14FrameCollectorC5EventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream14FrameCollectorC5EventO4pingyAE10Foundation4DataVSgcAEmF",
+ "mangledName": "$s10Starscream14FrameCollectorC5EventO4pingyAE10Foundation4DataVSgcAEmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "error",
+ "printedName": "error",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FrameCollector.Event.Type) -> (Swift.Error) -> Starscream.FrameCollector.Event",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.Error) -> Starscream.FrameCollector.Event",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Event",
+ "printedName": "Starscream.FrameCollector.Event",
+ "usr": "s:10Starscream14FrameCollectorC5EventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Error",
+ "printedName": "Swift.Error",
+ "usr": "s:s5ErrorP"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FrameCollector.Event.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Event",
+ "printedName": "Starscream.FrameCollector.Event",
+ "usr": "s:10Starscream14FrameCollectorC5EventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream14FrameCollectorC5EventO5erroryAEs5Error_pcAEmF",
+ "mangledName": "$s10Starscream14FrameCollectorC5EventO5erroryAEs5Error_pcAEmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "closed",
+ "printedName": "closed",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FrameCollector.Event.Type) -> (Swift.String, Swift.UInt16) -> Starscream.FrameCollector.Event",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.String, Swift.UInt16) -> Starscream.FrameCollector.Event",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Event",
+ "printedName": "Starscream.FrameCollector.Event",
+ "usr": "s:10Starscream14FrameCollectorC5EventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Tuple",
+ "printedName": "(Swift.String, Swift.UInt16)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FrameCollector.Event.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Event",
+ "printedName": "Starscream.FrameCollector.Event",
+ "usr": "s:10Starscream14FrameCollectorC5EventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream14FrameCollectorC5EventO6closedyAESS_s6UInt16VtcAEmF",
+ "mangledName": "$s10Starscream14FrameCollectorC5EventO6closedyAESS_s6UInt16VtcAEmF",
+ "moduleName": "Starscream"
+ }
+ ],
+ "declKind": "Enum",
+ "usr": "s:10Starscream14FrameCollectorC5EventO",
+ "mangledName": "$s10Starscream14FrameCollectorC5EventO",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "Function",
+ "name": "add",
+ "printedName": "add(frame:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Frame",
+ "printedName": "Starscream.Frame",
+ "usr": "s:10Starscream5FrameV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream14FrameCollectorC3add5frameyAA0B0V_tF",
+ "mangledName": "$s10Starscream14FrameCollectorC3add5frameyAA0B0V_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Class",
+ "usr": "s:10Starscream14FrameCollectorC",
+ "mangledName": "$s10Starscream14FrameCollectorC",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "hasMissingDesignatedInitializers": true
+ },
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "CloseCode",
+ "printedName": "CloseCode",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "normal",
+ "printedName": "normal",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.CloseCode.Type) -> Starscream.CloseCode",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Starscream.CloseCode",
+ "usr": "s:10Starscream9CloseCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.CloseCode.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Starscream.CloseCode",
+ "usr": "s:10Starscream9CloseCodeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream9CloseCodeO6normalyA2CmF",
+ "mangledName": "$s10Starscream9CloseCodeO6normalyA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "goingAway",
+ "printedName": "goingAway",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.CloseCode.Type) -> Starscream.CloseCode",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Starscream.CloseCode",
+ "usr": "s:10Starscream9CloseCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.CloseCode.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Starscream.CloseCode",
+ "usr": "s:10Starscream9CloseCodeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream9CloseCodeO9goingAwayyA2CmF",
+ "mangledName": "$s10Starscream9CloseCodeO9goingAwayyA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "protocolError",
+ "printedName": "protocolError",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.CloseCode.Type) -> Starscream.CloseCode",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Starscream.CloseCode",
+ "usr": "s:10Starscream9CloseCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.CloseCode.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Starscream.CloseCode",
+ "usr": "s:10Starscream9CloseCodeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream9CloseCodeO13protocolErroryA2CmF",
+ "mangledName": "$s10Starscream9CloseCodeO13protocolErroryA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "protocolUnhandledType",
+ "printedName": "protocolUnhandledType",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.CloseCode.Type) -> Starscream.CloseCode",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Starscream.CloseCode",
+ "usr": "s:10Starscream9CloseCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.CloseCode.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Starscream.CloseCode",
+ "usr": "s:10Starscream9CloseCodeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream9CloseCodeO21protocolUnhandledTypeyA2CmF",
+ "mangledName": "$s10Starscream9CloseCodeO21protocolUnhandledTypeyA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "noStatusReceived",
+ "printedName": "noStatusReceived",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.CloseCode.Type) -> Starscream.CloseCode",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Starscream.CloseCode",
+ "usr": "s:10Starscream9CloseCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.CloseCode.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Starscream.CloseCode",
+ "usr": "s:10Starscream9CloseCodeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream9CloseCodeO16noStatusReceivedyA2CmF",
+ "mangledName": "$s10Starscream9CloseCodeO16noStatusReceivedyA2CmF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "Var",
+ "name": "encoding",
+ "printedName": "encoding",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.CloseCode.Type) -> Starscream.CloseCode",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Starscream.CloseCode",
+ "usr": "s:10Starscream9CloseCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.CloseCode.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Starscream.CloseCode",
+ "usr": "s:10Starscream9CloseCodeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream9CloseCodeO8encodingyA2CmF",
+ "mangledName": "$s10Starscream9CloseCodeO8encodingyA2CmF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "Var",
+ "name": "policyViolated",
+ "printedName": "policyViolated",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.CloseCode.Type) -> Starscream.CloseCode",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Starscream.CloseCode",
+ "usr": "s:10Starscream9CloseCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.CloseCode.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Starscream.CloseCode",
+ "usr": "s:10Starscream9CloseCodeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream9CloseCodeO14policyViolatedyA2CmF",
+ "mangledName": "$s10Starscream9CloseCodeO14policyViolatedyA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "messageTooBig",
+ "printedName": "messageTooBig",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.CloseCode.Type) -> Starscream.CloseCode",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Starscream.CloseCode",
+ "usr": "s:10Starscream9CloseCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.CloseCode.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Starscream.CloseCode",
+ "usr": "s:10Starscream9CloseCodeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream9CloseCodeO13messageTooBigyA2CmF",
+ "mangledName": "$s10Starscream9CloseCodeO13messageTooBigyA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Constructor",
+ "name": "init",
+ "printedName": "init(rawValue:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Starscream.CloseCode?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Starscream.CloseCode",
+ "usr": "s:10Starscream9CloseCodeO"
+ }
+ ],
+ "usr": "s:Sq"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ],
+ "declKind": "Constructor",
+ "usr": "s:10Starscream9CloseCodeO8rawValueACSgs6UInt16V_tcfc",
+ "mangledName": "$s10Starscream9CloseCodeO8rawValueACSgs6UInt16V_tcfc",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "init_kind": "Designated"
+ },
+ {
+ "kind": "Var",
+ "name": "rawValue",
+ "printedName": "rawValue",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ],
+ "declKind": "Var",
+ "usr": "s:10Starscream9CloseCodeO8rawValues6UInt16Vvp",
+ "mangledName": "$s10Starscream9CloseCodeO8rawValues6UInt16Vvp",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessors": [
+ {
+ "kind": "Accessor",
+ "name": "Get",
+ "printedName": "Get()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream9CloseCodeO8rawValues6UInt16Vvg",
+ "mangledName": "$s10Starscream9CloseCodeO8rawValues6UInt16Vvg",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "get"
+ }
+ ]
+ }
+ ],
+ "declKind": "Enum",
+ "usr": "s:10Starscream9CloseCodeO",
+ "mangledName": "$s10Starscream9CloseCodeO",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl",
+ "RawDocComment"
+ ],
+ "enumRawTypeName": "UInt16",
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "Equatable",
+ "printedName": "Equatable",
+ "usr": "s:SQ",
+ "mangledName": "$sSQ"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Hashable",
+ "printedName": "Hashable",
+ "usr": "s:SH",
+ "mangledName": "$sSH"
+ },
+ {
+ "kind": "Conformance",
+ "name": "RawRepresentable",
+ "printedName": "RawRepresentable",
+ "children": [
+ {
+ "kind": "TypeWitness",
+ "name": "RawValue",
+ "printedName": "RawValue",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ]
+ }
+ ],
+ "usr": "s:SY",
+ "mangledName": "$sSY"
+ }
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "FrameOpCode",
+ "printedName": "FrameOpCode",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "continueFrame",
+ "printedName": "continueFrame",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FrameOpCode.Type) -> Starscream.FrameOpCode",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FrameOpCode.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream11FrameOpCodeO08continueB0yA2CmF",
+ "mangledName": "$s10Starscream11FrameOpCodeO08continueB0yA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "textFrame",
+ "printedName": "textFrame",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FrameOpCode.Type) -> Starscream.FrameOpCode",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FrameOpCode.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream11FrameOpCodeO04textB0yA2CmF",
+ "mangledName": "$s10Starscream11FrameOpCodeO04textB0yA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "binaryFrame",
+ "printedName": "binaryFrame",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FrameOpCode.Type) -> Starscream.FrameOpCode",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FrameOpCode.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream11FrameOpCodeO06binaryB0yA2CmF",
+ "mangledName": "$s10Starscream11FrameOpCodeO06binaryB0yA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "connectionClose",
+ "printedName": "connectionClose",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FrameOpCode.Type) -> Starscream.FrameOpCode",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FrameOpCode.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream11FrameOpCodeO15connectionCloseyA2CmF",
+ "mangledName": "$s10Starscream11FrameOpCodeO15connectionCloseyA2CmF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "Var",
+ "name": "ping",
+ "printedName": "ping",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FrameOpCode.Type) -> Starscream.FrameOpCode",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FrameOpCode.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream11FrameOpCodeO4pingyA2CmF",
+ "mangledName": "$s10Starscream11FrameOpCodeO4pingyA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "pong",
+ "printedName": "pong",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FrameOpCode.Type) -> Starscream.FrameOpCode",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FrameOpCode.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream11FrameOpCodeO4pongyA2CmF",
+ "mangledName": "$s10Starscream11FrameOpCodeO4pongyA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "unknown",
+ "printedName": "unknown",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FrameOpCode.Type) -> Starscream.FrameOpCode",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FrameOpCode.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream11FrameOpCodeO7unknownyA2CmF",
+ "mangledName": "$s10Starscream11FrameOpCodeO7unknownyA2CmF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "Constructor",
+ "name": "init",
+ "printedName": "init(rawValue:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Starscream.FrameOpCode?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ }
+ ],
+ "usr": "s:Sq"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "UInt8",
+ "printedName": "Swift.UInt8",
+ "usr": "s:s5UInt8V"
+ }
+ ],
+ "declKind": "Constructor",
+ "usr": "s:10Starscream11FrameOpCodeO8rawValueACSgs5UInt8V_tcfc",
+ "mangledName": "$s10Starscream11FrameOpCodeO8rawValueACSgs5UInt8V_tcfc",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "init_kind": "Designated"
+ },
+ {
+ "kind": "Var",
+ "name": "rawValue",
+ "printedName": "rawValue",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "UInt8",
+ "printedName": "Swift.UInt8",
+ "usr": "s:s5UInt8V"
+ }
+ ],
+ "declKind": "Var",
+ "usr": "s:10Starscream11FrameOpCodeO8rawValues5UInt8Vvp",
+ "mangledName": "$s10Starscream11FrameOpCodeO8rawValues5UInt8Vvp",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessors": [
+ {
+ "kind": "Accessor",
+ "name": "Get",
+ "printedName": "Get()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "UInt8",
+ "printedName": "Swift.UInt8",
+ "usr": "s:s5UInt8V"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream11FrameOpCodeO8rawValues5UInt8Vvg",
+ "mangledName": "$s10Starscream11FrameOpCodeO8rawValues5UInt8Vvg",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "get"
+ }
+ ]
+ }
+ ],
+ "declKind": "Enum",
+ "usr": "s:10Starscream11FrameOpCodeO",
+ "mangledName": "$s10Starscream11FrameOpCodeO",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "enumRawTypeName": "UInt8",
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "Equatable",
+ "printedName": "Equatable",
+ "usr": "s:SQ",
+ "mangledName": "$sSQ"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Hashable",
+ "printedName": "Hashable",
+ "usr": "s:SH",
+ "mangledName": "$sSH"
+ },
+ {
+ "kind": "Conformance",
+ "name": "RawRepresentable",
+ "printedName": "RawRepresentable",
+ "children": [
+ {
+ "kind": "TypeWitness",
+ "name": "RawValue",
+ "printedName": "RawValue",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "UInt8",
+ "printedName": "Swift.UInt8",
+ "usr": "s:s5UInt8V"
+ }
+ ]
+ }
+ ],
+ "usr": "s:SY",
+ "mangledName": "$sSY"
+ }
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "Frame",
+ "printedName": "Frame",
+ "declKind": "Struct",
+ "usr": "s:10Starscream5FrameV",
+ "mangledName": "$s10Starscream5FrameV",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "FrameEvent",
+ "printedName": "FrameEvent",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "frame",
+ "printedName": "frame",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FrameEvent.Type) -> (Starscream.Frame) -> Starscream.FrameEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.Frame) -> Starscream.FrameEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameEvent",
+ "printedName": "Starscream.FrameEvent",
+ "usr": "s:10Starscream10FrameEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Frame",
+ "printedName": "Starscream.Frame",
+ "usr": "s:10Starscream5FrameV"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FrameEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameEvent",
+ "printedName": "Starscream.FrameEvent",
+ "usr": "s:10Starscream10FrameEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream10FrameEventO5frameyAcA0B0VcACmF",
+ "mangledName": "$s10Starscream10FrameEventO5frameyAcA0B0VcACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "error",
+ "printedName": "error",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.FrameEvent.Type) -> (Swift.Error) -> Starscream.FrameEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.Error) -> Starscream.FrameEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameEvent",
+ "printedName": "Starscream.FrameEvent",
+ "usr": "s:10Starscream10FrameEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Error",
+ "printedName": "Swift.Error",
+ "usr": "s:s5ErrorP"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.FrameEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "FrameEvent",
+ "printedName": "Starscream.FrameEvent",
+ "usr": "s:10Starscream10FrameEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream10FrameEventO5erroryACs5Error_pcACmF",
+ "mangledName": "$s10Starscream10FrameEventO5erroryACs5Error_pcACmF",
+ "moduleName": "Starscream"
+ }
+ ],
+ "declKind": "Enum",
+ "usr": "s:10Starscream10FrameEventO",
+ "mangledName": "$s10Starscream10FrameEventO",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "FramerEventClient",
+ "printedName": "FramerEventClient",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "frameProcessed",
+ "printedName": "frameProcessed(event:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "FrameEvent",
+ "printedName": "Starscream.FrameEvent",
+ "usr": "s:10Starscream10FrameEventO"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream17FramerEventClientP14frameProcessed5eventyAA05FrameC0O_tF",
+ "mangledName": "$s10Starscream17FramerEventClientP14frameProcessed5eventyAA05FrameC0O_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.FramerEventClient>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream17FramerEventClientP",
+ "mangledName": "$s10Starscream17FramerEventClientP",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 : AnyObject>",
+ "sugared_genericSig": "",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "Framer",
+ "printedName": "Framer",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "add",
+ "printedName": "add(data:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream6FramerP3add4datay10Foundation4DataV_tF",
+ "mangledName": "$s10Starscream6FramerP3add4datay10Foundation4DataV_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Framer>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "register",
+ "printedName": "register(delegate:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "FramerEventClient",
+ "printedName": "Starscream.FramerEventClient",
+ "usr": "s:10Starscream17FramerEventClientP"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream6FramerP8register8delegateyAA0B11EventClient_p_tF",
+ "mangledName": "$s10Starscream6FramerP8register8delegateyAA0B11EventClient_p_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Framer>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "createWriteFrame",
+ "printedName": "createWriteFrame(opcode:payload:isCompressed:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream6FramerP16createWriteFrame6opcode7payload12isCompressed10Foundation4DataVAA0E6OpCodeO_AJSbtF",
+ "mangledName": "$s10Starscream6FramerP16createWriteFrame6opcode7payload12isCompressed10Foundation4DataVAA0E6OpCodeO_AJSbtF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Framer>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "updateCompression",
+ "printedName": "updateCompression(supports:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream6FramerP17updateCompression8supportsySb_tF",
+ "mangledName": "$s10Starscream6FramerP17updateCompression8supportsySb_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Framer>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "supportsCompression",
+ "printedName": "supportsCompression()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream6FramerP19supportsCompressionSbyF",
+ "mangledName": "$s10Starscream6FramerP19supportsCompressionSbyF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Framer>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream6FramerP",
+ "mangledName": "$s10Starscream6FramerP",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "WSFramer",
+ "printedName": "WSFramer",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "compressionEnabled",
+ "printedName": "compressionEnabled",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Var",
+ "usr": "s:10Starscream8WSFramerC18compressionEnabledSbvp",
+ "mangledName": "$s10Starscream8WSFramerC18compressionEnabledSbvp",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "HasInitialValue",
+ "HasStorage",
+ "AccessControl"
+ ],
+ "hasStorage": true,
+ "accessors": [
+ {
+ "kind": "Accessor",
+ "name": "Get",
+ "printedName": "Get()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream8WSFramerC18compressionEnabledSbvg",
+ "mangledName": "$s10Starscream8WSFramerC18compressionEnabledSbvg",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "get"
+ },
+ {
+ "kind": "Accessor",
+ "name": "Set",
+ "printedName": "Set()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream8WSFramerC18compressionEnabledSbvs",
+ "mangledName": "$s10Starscream8WSFramerC18compressionEnabledSbvs",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "set"
+ },
+ {
+ "kind": "Accessor",
+ "name": "Modify",
+ "printedName": "Modify()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream8WSFramerC18compressionEnabledSbvM",
+ "mangledName": "$s10Starscream8WSFramerC18compressionEnabledSbvM",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "_modify"
+ }
+ ]
+ },
+ {
+ "kind": "Constructor",
+ "name": "init",
+ "printedName": "init(isServer:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "WSFramer",
+ "printedName": "Starscream.WSFramer",
+ "usr": "s:10Starscream8WSFramerC"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "hasDefaultArg": true,
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Constructor",
+ "usr": "s:10Starscream8WSFramerC8isServerACSb_tcfc",
+ "mangledName": "$s10Starscream8WSFramerC8isServerACSb_tcfc",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "init_kind": "Designated"
+ },
+ {
+ "kind": "Function",
+ "name": "updateCompression",
+ "printedName": "updateCompression(supports:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream8WSFramerC17updateCompression8supportsySb_tF",
+ "mangledName": "$s10Starscream8WSFramerC17updateCompression8supportsySb_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "supportsCompression",
+ "printedName": "supportsCompression()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream8WSFramerC19supportsCompressionSbyF",
+ "mangledName": "$s10Starscream8WSFramerC19supportsCompressionSbyF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "add",
+ "printedName": "add(data:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream8WSFramerC3add4datay10Foundation4DataV_tF",
+ "mangledName": "$s10Starscream8WSFramerC3add4datay10Foundation4DataV_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "register",
+ "printedName": "register(delegate:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "FramerEventClient",
+ "printedName": "Starscream.FramerEventClient",
+ "usr": "s:10Starscream17FramerEventClientP"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream8WSFramerC8register8delegateyAA17FramerEventClient_p_tF",
+ "mangledName": "$s10Starscream8WSFramerC8register8delegateyAA17FramerEventClient_p_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "createWriteFrame",
+ "printedName": "createWriteFrame(opcode:payload:isCompressed:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream8WSFramerC16createWriteFrame6opcode7payload12isCompressed10Foundation4DataVAA0E6OpCodeO_AJSbtF",
+ "mangledName": "$s10Starscream8WSFramerC16createWriteFrame6opcode7payload12isCompressed10Foundation4DataVAA0E6OpCodeO_AJSbtF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Class",
+ "usr": "s:10Starscream8WSFramerC",
+ "mangledName": "$s10Starscream8WSFramerC",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "Framer",
+ "printedName": "Framer",
+ "usr": "s:10Starscream6FramerP",
+ "mangledName": "$s10Starscream6FramerP"
+ }
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "MyWSArrayType",
+ "printedName": "MyWSArrayType",
+ "declKind": "Protocol",
+ "usr": "s:10Starscream13MyWSArrayTypeP",
+ "mangledName": "$s10Starscream13MyWSArrayTypeP",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl",
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "Function",
+ "name": "writeUint16",
+ "printedName": "writeUint16(_:offset:value:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Array",
+ "printedName": "[Swift.UInt8]",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "UInt8",
+ "printedName": "Swift.UInt8",
+ "usr": "s:s5UInt8V"
+ }
+ ],
+ "paramValueOwnership": "InOut",
+ "usr": "s:Sa"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream11writeUint16_6offset5valueySays5UInt8VGz_Sis6UInt16VtF",
+ "mangledName": "$s10Starscream11writeUint16_6offset5valueySays5UInt8VGz_Sis6UInt16VtF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl",
+ "RawDocComment"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "writeUint32",
+ "printedName": "writeUint32(_:offset:value:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Array",
+ "printedName": "[Swift.UInt8]",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "UInt8",
+ "printedName": "Swift.UInt8",
+ "usr": "s:s5UInt8V"
+ }
+ ],
+ "paramValueOwnership": "InOut",
+ "usr": "s:Sa"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "UInt32",
+ "printedName": "Swift.UInt32",
+ "usr": "s:s6UInt32V"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream11writeUint32_6offset5valueySays5UInt8VGz_Sis6UInt32VtF",
+ "mangledName": "$s10Starscream11writeUint32_6offset5valueySays5UInt8VGz_Sis6UInt32VtF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl",
+ "RawDocComment"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "writeUint64",
+ "printedName": "writeUint64(_:offset:value:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Array",
+ "printedName": "[Swift.UInt8]",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "UInt8",
+ "printedName": "Swift.UInt8",
+ "usr": "s:s5UInt8V"
+ }
+ ],
+ "paramValueOwnership": "InOut",
+ "usr": "s:Sa"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "UInt64",
+ "printedName": "Swift.UInt64",
+ "usr": "s:s6UInt64V"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream11writeUint64_6offset5valueySays5UInt8VGz_Sis6UInt64VtF",
+ "mangledName": "$s10Starscream11writeUint64_6offset5valueySays5UInt8VGz_Sis6UInt64VtF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl",
+ "RawDocComment"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "HTTPUpgradeError",
+ "printedName": "HTTPUpgradeError",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "notAnUpgrade",
+ "printedName": "notAnUpgrade",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.HTTPUpgradeError.Type) -> (Swift.Int, [Swift.String : Swift.String]) -> Starscream.HTTPUpgradeError",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.Int, [Swift.String : Swift.String]) -> Starscream.HTTPUpgradeError",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "HTTPUpgradeError",
+ "printedName": "Starscream.HTTPUpgradeError",
+ "usr": "s:10Starscream16HTTPUpgradeErrorO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Tuple",
+ "printedName": "(Swift.Int, [Swift.String : Swift.String])",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Dictionary",
+ "printedName": "[Swift.String : Swift.String]",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "usr": "s:SD"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.HTTPUpgradeError.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "HTTPUpgradeError",
+ "printedName": "Starscream.HTTPUpgradeError",
+ "usr": "s:10Starscream16HTTPUpgradeErrorO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream16HTTPUpgradeErrorO12notAnUpgradeyACSi_SDyS2SGtcACmF",
+ "mangledName": "$s10Starscream16HTTPUpgradeErrorO12notAnUpgradeyACSi_SDyS2SGtcACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "invalidData",
+ "printedName": "invalidData",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.HTTPUpgradeError.Type) -> Starscream.HTTPUpgradeError",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "HTTPUpgradeError",
+ "printedName": "Starscream.HTTPUpgradeError",
+ "usr": "s:10Starscream16HTTPUpgradeErrorO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.HTTPUpgradeError.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "HTTPUpgradeError",
+ "printedName": "Starscream.HTTPUpgradeError",
+ "usr": "s:10Starscream16HTTPUpgradeErrorO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream16HTTPUpgradeErrorO11invalidDatayA2CmF",
+ "mangledName": "$s10Starscream16HTTPUpgradeErrorO11invalidDatayA2CmF",
+ "moduleName": "Starscream"
+ }
+ ],
+ "declKind": "Enum",
+ "usr": "s:10Starscream16HTTPUpgradeErrorO",
+ "mangledName": "$s10Starscream16HTTPUpgradeErrorO",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "Error",
+ "printedName": "Error",
+ "usr": "s:s5ErrorP",
+ "mangledName": "$ss5ErrorP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Sendable",
+ "printedName": "Sendable",
+ "usr": "s:s8SendableP",
+ "mangledName": "$ss8SendableP"
+ }
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "HTTPWSHeader",
+ "printedName": "HTTPWSHeader",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "createUpgrade",
+ "printedName": "createUpgrade(request:supportsCompression:secKeyValue:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "URLRequest",
+ "printedName": "Foundation.URLRequest",
+ "usr": "s:10Foundation10URLRequestV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "URLRequest",
+ "printedName": "Foundation.URLRequest",
+ "usr": "s:10Foundation10URLRequestV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream12HTTPWSHeaderV13createUpgrade7request19supportsCompression11secKeyValue10Foundation10URLRequestVAJ_SbSStFZ",
+ "mangledName": "$s10Starscream12HTTPWSHeaderV13createUpgrade7request19supportsCompression11secKeyValue10Foundation10URLRequestVAJ_SbSStFZ",
+ "moduleName": "Starscream",
+ "static": true,
+ "declAttributes": [
+ "AccessControl",
+ "RawDocComment"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "generateWebSocketKey",
+ "printedName": "generateWebSocketKey()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream12HTTPWSHeaderV20generateWebSocketKeySSyFZ",
+ "mangledName": "$s10Starscream12HTTPWSHeaderV20generateWebSocketKeySSyFZ",
+ "moduleName": "Starscream",
+ "static": true,
+ "declAttributes": [
+ "AccessControl",
+ "RawDocComment"
+ ],
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Struct",
+ "usr": "s:10Starscream12HTTPWSHeaderV",
+ "mangledName": "$s10Starscream12HTTPWSHeaderV",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "HTTPEvent",
+ "printedName": "HTTPEvent",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "success",
+ "printedName": "success",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.HTTPEvent.Type) -> ([Swift.String : Swift.String]) -> Starscream.HTTPEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "([Swift.String : Swift.String]) -> Starscream.HTTPEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "HTTPEvent",
+ "printedName": "Starscream.HTTPEvent",
+ "usr": "s:10Starscream9HTTPEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Dictionary",
+ "printedName": "[Swift.String : Swift.String]",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "usr": "s:SD"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.HTTPEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "HTTPEvent",
+ "printedName": "Starscream.HTTPEvent",
+ "usr": "s:10Starscream9HTTPEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream9HTTPEventO7successyACSDyS2SGcACmF",
+ "mangledName": "$s10Starscream9HTTPEventO7successyACSDyS2SGcACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "failure",
+ "printedName": "failure",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.HTTPEvent.Type) -> (Swift.Error) -> Starscream.HTTPEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.Error) -> Starscream.HTTPEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "HTTPEvent",
+ "printedName": "Starscream.HTTPEvent",
+ "usr": "s:10Starscream9HTTPEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Error",
+ "printedName": "Swift.Error",
+ "usr": "s:s5ErrorP"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.HTTPEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "HTTPEvent",
+ "printedName": "Starscream.HTTPEvent",
+ "usr": "s:10Starscream9HTTPEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream9HTTPEventO7failureyACs5Error_pcACmF",
+ "mangledName": "$s10Starscream9HTTPEventO7failureyACs5Error_pcACmF",
+ "moduleName": "Starscream"
+ }
+ ],
+ "declKind": "Enum",
+ "usr": "s:10Starscream9HTTPEventO",
+ "mangledName": "$s10Starscream9HTTPEventO",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "HTTPHandlerDelegate",
+ "printedName": "HTTPHandlerDelegate",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "didReceiveHTTP",
+ "printedName": "didReceiveHTTP(event:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "HTTPEvent",
+ "printedName": "Starscream.HTTPEvent",
+ "usr": "s:10Starscream9HTTPEventO"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream19HTTPHandlerDelegateP14didReceiveHTTP5eventyAA9HTTPEventO_tF",
+ "mangledName": "$s10Starscream19HTTPHandlerDelegateP14didReceiveHTTP5eventyAA9HTTPEventO_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.HTTPHandlerDelegate>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream19HTTPHandlerDelegateP",
+ "mangledName": "$s10Starscream19HTTPHandlerDelegateP",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 : AnyObject>",
+ "sugared_genericSig": "",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "HTTPHandler",
+ "printedName": "HTTPHandler",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "register",
+ "printedName": "register(delegate:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "HTTPHandlerDelegate",
+ "printedName": "Starscream.HTTPHandlerDelegate",
+ "usr": "s:10Starscream19HTTPHandlerDelegateP"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream11HTTPHandlerP8register8delegateyAA0B8Delegate_p_tF",
+ "mangledName": "$s10Starscream11HTTPHandlerP8register8delegateyAA0B8Delegate_p_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.HTTPHandler>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "convert",
+ "printedName": "convert(request:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "URLRequest",
+ "printedName": "Foundation.URLRequest",
+ "usr": "s:10Foundation10URLRequestV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream11HTTPHandlerP7convert7request10Foundation4DataVAF10URLRequestV_tF",
+ "mangledName": "$s10Starscream11HTTPHandlerP7convert7request10Foundation4DataVAF10URLRequestV_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.HTTPHandler>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "parse",
+ "printedName": "parse(data:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream11HTTPHandlerP5parse4dataSi10Foundation4DataV_tF",
+ "mangledName": "$s10Starscream11HTTPHandlerP5parse4dataSi10Foundation4DataV_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.HTTPHandler>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream11HTTPHandlerP",
+ "mangledName": "$s10Starscream11HTTPHandlerP",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "HTTPServerDelegate",
+ "printedName": "HTTPServerDelegate",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "didReceive",
+ "printedName": "didReceive(event:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "HTTPEvent",
+ "printedName": "Starscream.HTTPEvent",
+ "usr": "s:10Starscream9HTTPEventO"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream18HTTPServerDelegateP10didReceive5eventyAA9HTTPEventO_tF",
+ "mangledName": "$s10Starscream18HTTPServerDelegateP10didReceive5eventyAA9HTTPEventO_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.HTTPServerDelegate>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream18HTTPServerDelegateP",
+ "mangledName": "$s10Starscream18HTTPServerDelegateP",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 : AnyObject>",
+ "sugared_genericSig": "",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "HTTPServerHandler",
+ "printedName": "HTTPServerHandler",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "register",
+ "printedName": "register(delegate:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "HTTPServerDelegate",
+ "printedName": "Starscream.HTTPServerDelegate",
+ "usr": "s:10Starscream18HTTPServerDelegateP"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream17HTTPServerHandlerP8register8delegateyAA0B8Delegate_p_tF",
+ "mangledName": "$s10Starscream17HTTPServerHandlerP8register8delegateyAA0B8Delegate_p_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.HTTPServerHandler>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "parse",
+ "printedName": "parse(data:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream17HTTPServerHandlerP5parse4datay10Foundation4DataV_tF",
+ "mangledName": "$s10Starscream17HTTPServerHandlerP5parse4datay10Foundation4DataV_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.HTTPServerHandler>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "createResponse",
+ "printedName": "createResponse(headers:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Dictionary",
+ "printedName": "[Swift.String : Swift.String]",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "usr": "s:SD"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream17HTTPServerHandlerP14createResponse7headers10Foundation4DataVSDyS2SG_tF",
+ "mangledName": "$s10Starscream17HTTPServerHandlerP14createResponse7headers10Foundation4DataVSDyS2SG_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.HTTPServerHandler>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream17HTTPServerHandlerP",
+ "mangledName": "$s10Starscream17HTTPServerHandlerP",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "URLParts",
+ "printedName": "URLParts",
+ "declKind": "Struct",
+ "usr": "s:10Starscream8URLPartsV",
+ "mangledName": "$s10Starscream8URLPartsV",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "NativeEngine",
+ "printedName": "NativeEngine",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "register",
+ "printedName": "register(delegate:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "EngineDelegate",
+ "printedName": "Starscream.EngineDelegate",
+ "usr": "s:10Starscream14EngineDelegateP"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream12NativeEngineC8register8delegateyAA0C8Delegate_p_tF",
+ "mangledName": "$s10Starscream12NativeEngineC8register8delegateyAA0C8Delegate_p_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "start",
+ "printedName": "start(request:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "URLRequest",
+ "printedName": "Foundation.URLRequest",
+ "usr": "s:10Foundation10URLRequestV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream12NativeEngineC5start7requesty10Foundation10URLRequestV_tF",
+ "mangledName": "$s10Starscream12NativeEngineC5start7requesty10Foundation10URLRequestV_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "stop",
+ "printedName": "stop(closeCode:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream12NativeEngineC4stop9closeCodeys6UInt16V_tF",
+ "mangledName": "$s10Starscream12NativeEngineC4stop9closeCodeys6UInt16V_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "forceStop",
+ "printedName": "forceStop()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream12NativeEngineC9forceStopyyF",
+ "mangledName": "$s10Starscream12NativeEngineC9forceStopyyF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "write",
+ "printedName": "write(string:completion:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "(() -> ())?",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "() -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream12NativeEngineC5write6string10completionySS_yycSgtF",
+ "mangledName": "$s10Starscream12NativeEngineC5write6string10completionySS_yycSgtF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "write",
+ "printedName": "write(data:opcode:completion:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "(() -> ())?",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "() -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ]
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream12NativeEngineC5write4data6opcode10completiony10Foundation4DataV_AA11FrameOpCodeOyycSgtF",
+ "mangledName": "$s10Starscream12NativeEngineC5write4data6opcode10completiony10Foundation4DataV_AA11FrameOpCodeOyycSgtF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "urlSession",
+ "printedName": "urlSession(_:webSocketTask:didOpenWithProtocol:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "URLSession",
+ "printedName": "Foundation.URLSession",
+ "usr": "c:objc(cs)NSURLSession"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "URLSessionWebSocketTask",
+ "printedName": "Foundation.URLSessionWebSocketTask",
+ "usr": "c:objc(cs)NSURLSessionWebSocketTask"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Swift.String?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "c:@M@Starscream@objc(cs)NativeEngine(im)URLSession:webSocketTask:didOpenWithProtocol:",
+ "mangledName": "$s10Starscream12NativeEngineC10urlSession_13webSocketTask19didOpenWithProtocolySo12NSURLSessionC_So0m3WebgH0CSSSgtF",
+ "moduleName": "Starscream",
+ "objc_name": "URLSession:webSocketTask:didOpenWithProtocol:",
+ "declAttributes": [
+ "ObjC",
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "urlSession",
+ "printedName": "urlSession(_:webSocketTask:didCloseWith:reason:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "URLSession",
+ "printedName": "Foundation.URLSession",
+ "usr": "c:objc(cs)NSURLSession"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "URLSessionWebSocketTask",
+ "printedName": "Foundation.URLSessionWebSocketTask",
+ "usr": "c:objc(cs)NSURLSessionWebSocketTask"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "CloseCode",
+ "printedName": "Foundation.URLSessionWebSocketTask.CloseCode",
+ "usr": "c:@E@NSURLSessionWebSocketCloseCode"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Foundation.Data?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "c:@M@Starscream@objc(cs)NativeEngine(im)URLSession:webSocketTask:didCloseWithCode:reason:",
+ "mangledName": "$s10Starscream12NativeEngineC10urlSession_13webSocketTask12didCloseWith6reasonySo12NSURLSessionC_So0m3WebgH0CSo0mngJ4CodeV10Foundation4DataVSgtF",
+ "moduleName": "Starscream",
+ "objc_name": "URLSession:webSocketTask:didCloseWithCode:reason:",
+ "declAttributes": [
+ "ObjC",
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "urlSession",
+ "printedName": "urlSession(_:task:didCompleteWithError:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "URLSession",
+ "printedName": "Foundation.URLSession",
+ "usr": "c:objc(cs)NSURLSession"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "URLSessionTask",
+ "printedName": "Foundation.URLSessionTask",
+ "usr": "c:objc(cs)NSURLSessionTask"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Swift.Error?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Error",
+ "printedName": "Swift.Error",
+ "usr": "s:s5ErrorP"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "c:@M@Starscream@objc(cs)NativeEngine(im)URLSession:task:didCompleteWithError:",
+ "mangledName": "$s10Starscream12NativeEngineC10urlSession_4task20didCompleteWithErrorySo12NSURLSessionC_So0K4TaskCs0J0_pSgtF",
+ "moduleName": "Starscream",
+ "objc_name": "URLSession:task:didCompleteWithError:",
+ "declAttributes": [
+ "ObjC",
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Constructor",
+ "name": "init",
+ "printedName": "init()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "NativeEngine",
+ "printedName": "Starscream.NativeEngine",
+ "usr": "c:@M@Starscream@objc(cs)NativeEngine"
+ }
+ ],
+ "declKind": "Constructor",
+ "usr": "c:@M@Starscream@objc(cs)NativeEngine(im)init",
+ "mangledName": "$s10Starscream12NativeEngineCACycfc",
+ "moduleName": "Starscream",
+ "overriding": true,
+ "implicit": true,
+ "objc_name": "init",
+ "declAttributes": [
+ "Dynamic",
+ "ObjC",
+ "Override"
+ ],
+ "init_kind": "Designated"
+ }
+ ],
+ "declKind": "Class",
+ "usr": "c:@M@Starscream@objc(cs)NativeEngine",
+ "mangledName": "$s10Starscream12NativeEngineC",
+ "moduleName": "Starscream",
+ "intro_Macosx": "10.15",
+ "intro_iOS": "13.0",
+ "intro_tvOS": "13.0",
+ "intro_watchOS": "6.0",
+ "declAttributes": [
+ "AccessControl",
+ "Available",
+ "Available",
+ "Available",
+ "Available",
+ "ObjC"
+ ],
+ "superclassUsr": "c:objc(cs)NSObject",
+ "inheritsConvenienceInitializers": true,
+ "superclassNames": [
+ "ObjectiveC.NSObject"
+ ],
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "Engine",
+ "printedName": "Engine",
+ "usr": "s:10Starscream6EngineP",
+ "mangledName": "$s10Starscream6EngineP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Equatable",
+ "printedName": "Equatable",
+ "usr": "s:SQ",
+ "mangledName": "$sSQ"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Hashable",
+ "printedName": "Hashable",
+ "usr": "s:SH",
+ "mangledName": "$sSH"
+ },
+ {
+ "kind": "Conformance",
+ "name": "CVarArg",
+ "printedName": "CVarArg",
+ "usr": "s:s7CVarArgP",
+ "mangledName": "$ss7CVarArgP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "_KeyValueCodingAndObservingPublishing",
+ "printedName": "_KeyValueCodingAndObservingPublishing",
+ "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP",
+ "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "_KeyValueCodingAndObserving",
+ "printedName": "_KeyValueCodingAndObserving",
+ "usr": "s:10Foundation27_KeyValueCodingAndObservingP",
+ "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "CustomStringConvertible",
+ "printedName": "CustomStringConvertible",
+ "usr": "s:s23CustomStringConvertibleP",
+ "mangledName": "$ss23CustomStringConvertibleP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "CustomDebugStringConvertible",
+ "printedName": "CustomDebugStringConvertible",
+ "usr": "s:s28CustomDebugStringConvertibleP",
+ "mangledName": "$ss28CustomDebugStringConvertibleP"
+ }
+ ]
+ },
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "SecurityErrorCode",
+ "printedName": "SecurityErrorCode",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "acceptFailed",
+ "printedName": "acceptFailed",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.SecurityErrorCode.Type) -> Starscream.SecurityErrorCode",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "SecurityErrorCode",
+ "printedName": "Starscream.SecurityErrorCode",
+ "usr": "s:10Starscream17SecurityErrorCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.SecurityErrorCode.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "SecurityErrorCode",
+ "printedName": "Starscream.SecurityErrorCode",
+ "usr": "s:10Starscream17SecurityErrorCodeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream17SecurityErrorCodeO12acceptFailedyA2CmF",
+ "mangledName": "$s10Starscream17SecurityErrorCodeO12acceptFailedyA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "pinningFailed",
+ "printedName": "pinningFailed",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.SecurityErrorCode.Type) -> Starscream.SecurityErrorCode",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "SecurityErrorCode",
+ "printedName": "Starscream.SecurityErrorCode",
+ "usr": "s:10Starscream17SecurityErrorCodeO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.SecurityErrorCode.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "SecurityErrorCode",
+ "printedName": "Starscream.SecurityErrorCode",
+ "usr": "s:10Starscream17SecurityErrorCodeO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream17SecurityErrorCodeO13pinningFailedyA2CmF",
+ "mangledName": "$s10Starscream17SecurityErrorCodeO13pinningFailedyA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Constructor",
+ "name": "init",
+ "printedName": "init(rawValue:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Starscream.SecurityErrorCode?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "SecurityErrorCode",
+ "printedName": "Starscream.SecurityErrorCode",
+ "usr": "s:10Starscream17SecurityErrorCodeO"
+ }
+ ],
+ "usr": "s:Sq"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ],
+ "declKind": "Constructor",
+ "usr": "s:10Starscream17SecurityErrorCodeO8rawValueACSgs6UInt16V_tcfc",
+ "mangledName": "$s10Starscream17SecurityErrorCodeO8rawValueACSgs6UInt16V_tcfc",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "init_kind": "Designated"
+ },
+ {
+ "kind": "Var",
+ "name": "rawValue",
+ "printedName": "rawValue",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ],
+ "declKind": "Var",
+ "usr": "s:10Starscream17SecurityErrorCodeO8rawValues6UInt16Vvp",
+ "mangledName": "$s10Starscream17SecurityErrorCodeO8rawValues6UInt16Vvp",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessors": [
+ {
+ "kind": "Accessor",
+ "name": "Get",
+ "printedName": "Get()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream17SecurityErrorCodeO8rawValues6UInt16Vvg",
+ "mangledName": "$s10Starscream17SecurityErrorCodeO8rawValues6UInt16Vvg",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "get"
+ }
+ ]
+ }
+ ],
+ "declKind": "Enum",
+ "usr": "s:10Starscream17SecurityErrorCodeO",
+ "mangledName": "$s10Starscream17SecurityErrorCodeO",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "enumRawTypeName": "UInt16",
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "Equatable",
+ "printedName": "Equatable",
+ "usr": "s:SQ",
+ "mangledName": "$sSQ"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Hashable",
+ "printedName": "Hashable",
+ "usr": "s:SH",
+ "mangledName": "$sSH"
+ },
+ {
+ "kind": "Conformance",
+ "name": "RawRepresentable",
+ "printedName": "RawRepresentable",
+ "children": [
+ {
+ "kind": "TypeWitness",
+ "name": "RawValue",
+ "printedName": "RawValue",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ]
+ }
+ ],
+ "usr": "s:SY",
+ "mangledName": "$sSY"
+ }
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "PinningState",
+ "printedName": "PinningState",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "success",
+ "printedName": "success",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.PinningState.Type) -> Starscream.PinningState",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "PinningState",
+ "printedName": "Starscream.PinningState",
+ "usr": "s:10Starscream12PinningStateO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.PinningState.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "PinningState",
+ "printedName": "Starscream.PinningState",
+ "usr": "s:10Starscream12PinningStateO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream12PinningStateO7successyA2CmF",
+ "mangledName": "$s10Starscream12PinningStateO7successyA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "failed",
+ "printedName": "failed",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.PinningState.Type) -> (CoreFoundation.CFError?) -> Starscream.PinningState",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(CoreFoundation.CFError?) -> Starscream.PinningState",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "PinningState",
+ "printedName": "Starscream.PinningState",
+ "usr": "s:10Starscream12PinningStateO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "CoreFoundation.CFError?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CFError",
+ "printedName": "CoreFoundation.CFError",
+ "usr": "c:@T@CFErrorRef"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.PinningState.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "PinningState",
+ "printedName": "Starscream.PinningState",
+ "usr": "s:10Starscream12PinningStateO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream12PinningStateO6failedyACSo10CFErrorRefaSgcACmF",
+ "mangledName": "$s10Starscream12PinningStateO6failedyACSo10CFErrorRefaSgcACmF",
+ "moduleName": "Starscream"
+ }
+ ],
+ "declKind": "Enum",
+ "usr": "s:10Starscream12PinningStateO",
+ "mangledName": "$s10Starscream12PinningStateO",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "CertificatePinning",
+ "printedName": "CertificatePinning",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "evaluateTrust",
+ "printedName": "evaluateTrust(trust:domain:completion:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "SecTrust",
+ "printedName": "Security.SecTrust",
+ "usr": "c:@T@SecTrustRef"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Swift.String?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "usr": "s:Sq"
+ },
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.PinningState) -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "PinningState",
+ "printedName": "Starscream.PinningState",
+ "usr": "s:10Starscream12PinningStateO"
+ }
+ ],
+ "typeAttributes": [
+ "noescape"
+ ]
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream18CertificatePinningP13evaluateTrust5trust6domain10completionySo03SecE3Refa_SSSgyAA0C5StateOXEtF",
+ "mangledName": "$s10Starscream18CertificatePinningP13evaluateTrust5trust6domain10completionySo03SecE3Refa_SSSgyAA0C5StateOXEtF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.CertificatePinning>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream18CertificatePinningP",
+ "mangledName": "$s10Starscream18CertificatePinningP",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 : AnyObject>",
+ "sugared_genericSig": "",
+ "declAttributes": [
+ "AccessControl",
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "HeaderValidator",
+ "printedName": "HeaderValidator",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "validate",
+ "printedName": "validate(headers:key:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Swift.Error?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Error",
+ "printedName": "Swift.Error",
+ "usr": "s:s5ErrorP"
+ }
+ ],
+ "usr": "s:Sq"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Dictionary",
+ "printedName": "[Swift.String : Swift.String]",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "usr": "s:SD"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream15HeaderValidatorP8validate7headers3keys5Error_pSgSDyS2SG_SStF",
+ "mangledName": "$s10Starscream15HeaderValidatorP8validate7headers3keys5Error_pSgSDyS2SG_SStF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.HeaderValidator>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream15HeaderValidatorP",
+ "mangledName": "$s10Starscream15HeaderValidatorP",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 : AnyObject>",
+ "sugared_genericSig": "",
+ "declAttributes": [
+ "AccessControl",
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "ConnectionEvent",
+ "printedName": "ConnectionEvent",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "connected",
+ "printedName": "connected",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ConnectionEvent.Type) -> ([Swift.String : Swift.String]) -> Starscream.ConnectionEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "([Swift.String : Swift.String]) -> Starscream.ConnectionEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionEvent",
+ "printedName": "Starscream.ConnectionEvent",
+ "usr": "s:10Starscream15ConnectionEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Dictionary",
+ "printedName": "[Swift.String : Swift.String]",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "usr": "s:SD"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ConnectionEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionEvent",
+ "printedName": "Starscream.ConnectionEvent",
+ "usr": "s:10Starscream15ConnectionEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream15ConnectionEventO9connectedyACSDyS2SGcACmF",
+ "mangledName": "$s10Starscream15ConnectionEventO9connectedyACSDyS2SGcACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "disconnected",
+ "printedName": "disconnected",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ConnectionEvent.Type) -> (Swift.String, Swift.UInt16) -> Starscream.ConnectionEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.String, Swift.UInt16) -> Starscream.ConnectionEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionEvent",
+ "printedName": "Starscream.ConnectionEvent",
+ "usr": "s:10Starscream15ConnectionEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Tuple",
+ "printedName": "(Swift.String, Swift.UInt16)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ConnectionEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionEvent",
+ "printedName": "Starscream.ConnectionEvent",
+ "usr": "s:10Starscream15ConnectionEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream15ConnectionEventO12disconnectedyACSS_s6UInt16VtcACmF",
+ "mangledName": "$s10Starscream15ConnectionEventO12disconnectedyACSS_s6UInt16VtcACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "text",
+ "printedName": "text",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ConnectionEvent.Type) -> (Swift.String) -> Starscream.ConnectionEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.String) -> Starscream.ConnectionEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionEvent",
+ "printedName": "Starscream.ConnectionEvent",
+ "usr": "s:10Starscream15ConnectionEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ConnectionEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionEvent",
+ "printedName": "Starscream.ConnectionEvent",
+ "usr": "s:10Starscream15ConnectionEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream15ConnectionEventO4textyACSScACmF",
+ "mangledName": "$s10Starscream15ConnectionEventO4textyACSScACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "binary",
+ "printedName": "binary",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ConnectionEvent.Type) -> (Foundation.Data) -> Starscream.ConnectionEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Foundation.Data) -> Starscream.ConnectionEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionEvent",
+ "printedName": "Starscream.ConnectionEvent",
+ "usr": "s:10Starscream15ConnectionEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ConnectionEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionEvent",
+ "printedName": "Starscream.ConnectionEvent",
+ "usr": "s:10Starscream15ConnectionEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream15ConnectionEventO6binaryyAC10Foundation4DataVcACmF",
+ "mangledName": "$s10Starscream15ConnectionEventO6binaryyAC10Foundation4DataVcACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "pong",
+ "printedName": "pong",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ConnectionEvent.Type) -> (Foundation.Data?) -> Starscream.ConnectionEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Foundation.Data?) -> Starscream.ConnectionEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionEvent",
+ "printedName": "Starscream.ConnectionEvent",
+ "usr": "s:10Starscream15ConnectionEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Foundation.Data?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ConnectionEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionEvent",
+ "printedName": "Starscream.ConnectionEvent",
+ "usr": "s:10Starscream15ConnectionEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream15ConnectionEventO4pongyAC10Foundation4DataVSgcACmF",
+ "mangledName": "$s10Starscream15ConnectionEventO4pongyAC10Foundation4DataVSgcACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "ping",
+ "printedName": "ping",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ConnectionEvent.Type) -> (Foundation.Data?) -> Starscream.ConnectionEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Foundation.Data?) -> Starscream.ConnectionEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionEvent",
+ "printedName": "Starscream.ConnectionEvent",
+ "usr": "s:10Starscream15ConnectionEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Foundation.Data?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ConnectionEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionEvent",
+ "printedName": "Starscream.ConnectionEvent",
+ "usr": "s:10Starscream15ConnectionEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream15ConnectionEventO4pingyAC10Foundation4DataVSgcACmF",
+ "mangledName": "$s10Starscream15ConnectionEventO4pingyAC10Foundation4DataVSgcACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "error",
+ "printedName": "error",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ConnectionEvent.Type) -> (Swift.Error) -> Starscream.ConnectionEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.Error) -> Starscream.ConnectionEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionEvent",
+ "printedName": "Starscream.ConnectionEvent",
+ "usr": "s:10Starscream15ConnectionEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Error",
+ "printedName": "Swift.Error",
+ "usr": "s:s5ErrorP"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ConnectionEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionEvent",
+ "printedName": "Starscream.ConnectionEvent",
+ "usr": "s:10Starscream15ConnectionEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream15ConnectionEventO5erroryACs5Error_pcACmF",
+ "mangledName": "$s10Starscream15ConnectionEventO5erroryACs5Error_pcACmF",
+ "moduleName": "Starscream"
+ }
+ ],
+ "declKind": "Enum",
+ "usr": "s:10Starscream15ConnectionEventO",
+ "mangledName": "$s10Starscream15ConnectionEventO",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "Connection",
+ "printedName": "Connection",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "write",
+ "printedName": "write(data:opcode:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "FrameOpCode",
+ "printedName": "Starscream.FrameOpCode",
+ "usr": "s:10Starscream11FrameOpCodeO"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream10ConnectionP5write4data6opcodey10Foundation4DataV_AA11FrameOpCodeOtF",
+ "mangledName": "$s10Starscream10ConnectionP5write4data6opcodey10Foundation4DataV_AA11FrameOpCodeOtF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Connection>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream10ConnectionP",
+ "mangledName": "$s10Starscream10ConnectionP",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "ConnectionDelegate",
+ "printedName": "ConnectionDelegate",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "didReceive",
+ "printedName": "didReceive(event:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "ServerEvent",
+ "printedName": "Starscream.ServerEvent",
+ "usr": "s:10Starscream11ServerEventO"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream18ConnectionDelegateP10didReceive5eventyAA11ServerEventO_tF",
+ "mangledName": "$s10Starscream18ConnectionDelegateP10didReceive5eventyAA11ServerEventO_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.ConnectionDelegate>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream18ConnectionDelegateP",
+ "mangledName": "$s10Starscream18ConnectionDelegateP",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 : AnyObject>",
+ "sugared_genericSig": "",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "ServerEvent",
+ "printedName": "ServerEvent",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "connected",
+ "printedName": "connected",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ServerEvent.Type) -> (Starscream.Connection, [Swift.String : Swift.String]) -> Starscream.ServerEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.Connection, [Swift.String : Swift.String]) -> Starscream.ServerEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ServerEvent",
+ "printedName": "Starscream.ServerEvent",
+ "usr": "s:10Starscream11ServerEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Tuple",
+ "printedName": "(Starscream.Connection, [Swift.String : Swift.String])",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Connection",
+ "printedName": "Starscream.Connection",
+ "usr": "s:10Starscream10ConnectionP"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Dictionary",
+ "printedName": "[Swift.String : Swift.String]",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ],
+ "usr": "s:SD"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ServerEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ServerEvent",
+ "printedName": "Starscream.ServerEvent",
+ "usr": "s:10Starscream11ServerEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream11ServerEventO9connectedyAcA10Connection_p_SDyS2SGtcACmF",
+ "mangledName": "$s10Starscream11ServerEventO9connectedyAcA10Connection_p_SDyS2SGtcACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "disconnected",
+ "printedName": "disconnected",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ServerEvent.Type) -> (Starscream.Connection, Swift.String, Swift.UInt16) -> Starscream.ServerEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.Connection, Swift.String, Swift.UInt16) -> Starscream.ServerEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ServerEvent",
+ "printedName": "Starscream.ServerEvent",
+ "usr": "s:10Starscream11ServerEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Tuple",
+ "printedName": "(Starscream.Connection, Swift.String, Swift.UInt16)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Connection",
+ "printedName": "Starscream.Connection",
+ "usr": "s:10Starscream10ConnectionP"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ServerEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ServerEvent",
+ "printedName": "Starscream.ServerEvent",
+ "usr": "s:10Starscream11ServerEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream11ServerEventO12disconnectedyAcA10Connection_p_SSs6UInt16VtcACmF",
+ "mangledName": "$s10Starscream11ServerEventO12disconnectedyAcA10Connection_p_SSs6UInt16VtcACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "text",
+ "printedName": "text",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ServerEvent.Type) -> (Starscream.Connection, Swift.String) -> Starscream.ServerEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.Connection, Swift.String) -> Starscream.ServerEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ServerEvent",
+ "printedName": "Starscream.ServerEvent",
+ "usr": "s:10Starscream11ServerEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Tuple",
+ "printedName": "(Starscream.Connection, Swift.String)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Connection",
+ "printedName": "Starscream.Connection",
+ "usr": "s:10Starscream10ConnectionP"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ServerEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ServerEvent",
+ "printedName": "Starscream.ServerEvent",
+ "usr": "s:10Starscream11ServerEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream11ServerEventO4textyAcA10Connection_p_SStcACmF",
+ "mangledName": "$s10Starscream11ServerEventO4textyAcA10Connection_p_SStcACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "binary",
+ "printedName": "binary",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ServerEvent.Type) -> (Starscream.Connection, Foundation.Data) -> Starscream.ServerEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.Connection, Foundation.Data) -> Starscream.ServerEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ServerEvent",
+ "printedName": "Starscream.ServerEvent",
+ "usr": "s:10Starscream11ServerEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Tuple",
+ "printedName": "(Starscream.Connection, Foundation.Data)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Connection",
+ "printedName": "Starscream.Connection",
+ "usr": "s:10Starscream10ConnectionP"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ServerEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ServerEvent",
+ "printedName": "Starscream.ServerEvent",
+ "usr": "s:10Starscream11ServerEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream11ServerEventO6binaryyAcA10Connection_p_10Foundation4DataVtcACmF",
+ "mangledName": "$s10Starscream11ServerEventO6binaryyAcA10Connection_p_10Foundation4DataVtcACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "pong",
+ "printedName": "pong",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ServerEvent.Type) -> (Starscream.Connection, Foundation.Data?) -> Starscream.ServerEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.Connection, Foundation.Data?) -> Starscream.ServerEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ServerEvent",
+ "printedName": "Starscream.ServerEvent",
+ "usr": "s:10Starscream11ServerEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Tuple",
+ "printedName": "(Starscream.Connection, Foundation.Data?)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Connection",
+ "printedName": "Starscream.Connection",
+ "usr": "s:10Starscream10ConnectionP"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Foundation.Data?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ServerEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ServerEvent",
+ "printedName": "Starscream.ServerEvent",
+ "usr": "s:10Starscream11ServerEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream11ServerEventO4pongyAcA10Connection_p_10Foundation4DataVSgtcACmF",
+ "mangledName": "$s10Starscream11ServerEventO4pongyAcA10Connection_p_10Foundation4DataVSgtcACmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Var",
+ "name": "ping",
+ "printedName": "ping",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ServerEvent.Type) -> (Starscream.Connection, Foundation.Data?) -> Starscream.ServerEvent",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.Connection, Foundation.Data?) -> Starscream.ServerEvent",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ServerEvent",
+ "printedName": "Starscream.ServerEvent",
+ "usr": "s:10Starscream11ServerEventO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Tuple",
+ "printedName": "(Starscream.Connection, Foundation.Data?)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Connection",
+ "printedName": "Starscream.Connection",
+ "usr": "s:10Starscream10ConnectionP"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Foundation.Data?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ServerEvent.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ServerEvent",
+ "printedName": "Starscream.ServerEvent",
+ "usr": "s:10Starscream11ServerEventO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream11ServerEventO4pingyAcA10Connection_p_10Foundation4DataVSgtcACmF",
+ "mangledName": "$s10Starscream11ServerEventO4pingyAcA10Connection_p_10Foundation4DataVSgtcACmF",
+ "moduleName": "Starscream"
+ }
+ ],
+ "declKind": "Enum",
+ "usr": "s:10Starscream11ServerEventO",
+ "mangledName": "$s10Starscream11ServerEventO",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "Server",
+ "printedName": "Server",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "start",
+ "printedName": "start(address:port:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Swift.Error?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Error",
+ "printedName": "Swift.Error",
+ "usr": "s:s5ErrorP"
+ }
+ ],
+ "usr": "s:Sq"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "String",
+ "printedName": "Swift.String",
+ "usr": "s:SS"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "UInt16",
+ "printedName": "Swift.UInt16",
+ "usr": "s:s6UInt16V"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream6ServerP5start7address4ports5Error_pSgSS_s6UInt16VtF",
+ "mangledName": "$s10Starscream6ServerP5start7address4ports5Error_pSgSS_s6UInt16VtF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Server>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream6ServerP",
+ "mangledName": "$s10Starscream6ServerP",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "StringHTTPHandler",
+ "printedName": "StringHTTPHandler",
+ "children": [
+ {
+ "kind": "Constructor",
+ "name": "init",
+ "printedName": "init()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "StringHTTPHandler",
+ "printedName": "Starscream.StringHTTPHandler",
+ "usr": "s:10Starscream17StringHTTPHandlerC"
+ }
+ ],
+ "declKind": "Constructor",
+ "usr": "s:10Starscream17StringHTTPHandlerCACycfc",
+ "mangledName": "$s10Starscream17StringHTTPHandlerCACycfc",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "init_kind": "Designated"
+ },
+ {
+ "kind": "Function",
+ "name": "convert",
+ "printedName": "convert(request:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "URLRequest",
+ "printedName": "Foundation.URLRequest",
+ "usr": "s:10Foundation10URLRequestV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream17StringHTTPHandlerC7convert7request10Foundation4DataVAF10URLRequestV_tF",
+ "mangledName": "$s10Starscream17StringHTTPHandlerC7convert7request10Foundation4DataVAF10URLRequestV_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "parse",
+ "printedName": "parse(data:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream17StringHTTPHandlerC5parse4dataSi10Foundation4DataV_tF",
+ "mangledName": "$s10Starscream17StringHTTPHandlerC5parse4dataSi10Foundation4DataV_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "register",
+ "printedName": "register(delegate:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "HTTPHandlerDelegate",
+ "printedName": "Starscream.HTTPHandlerDelegate",
+ "usr": "s:10Starscream19HTTPHandlerDelegateP"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream17StringHTTPHandlerC8register8delegateyAA0C8Delegate_p_tF",
+ "mangledName": "$s10Starscream17StringHTTPHandlerC8register8delegateyAA0C8Delegate_p_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Class",
+ "usr": "s:10Starscream17StringHTTPHandlerC",
+ "mangledName": "$s10Starscream17StringHTTPHandlerC",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "HTTPHandler",
+ "printedName": "HTTPHandler",
+ "usr": "s:10Starscream11HTTPHandlerP",
+ "mangledName": "$s10Starscream11HTTPHandlerP"
+ }
+ ]
+ },
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Import",
+ "name": "Network",
+ "printedName": "Network",
+ "declKind": "Import",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "TCPTransportError",
+ "printedName": "TCPTransportError",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "invalidRequest",
+ "printedName": "invalidRequest",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.TCPTransportError.Type) -> Starscream.TCPTransportError",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "TCPTransportError",
+ "printedName": "Starscream.TCPTransportError",
+ "usr": "s:10Starscream17TCPTransportErrorO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.TCPTransportError.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "TCPTransportError",
+ "printedName": "Starscream.TCPTransportError",
+ "usr": "s:10Starscream17TCPTransportErrorO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream17TCPTransportErrorO14invalidRequestyA2CmF",
+ "mangledName": "$s10Starscream17TCPTransportErrorO14invalidRequestyA2CmF",
+ "moduleName": "Starscream"
+ },
+ {
+ "kind": "Function",
+ "name": "==",
+ "printedName": "==(_:_:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "TCPTransportError",
+ "printedName": "Starscream.TCPTransportError",
+ "usr": "s:10Starscream17TCPTransportErrorO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "TCPTransportError",
+ "printedName": "Starscream.TCPTransportError",
+ "usr": "s:10Starscream17TCPTransportErrorO"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream17TCPTransportErrorO2eeoiySbAC_ACtFZ",
+ "mangledName": "$s10Starscream17TCPTransportErrorO2eeoiySbAC_ACtFZ",
+ "moduleName": "Starscream",
+ "static": true,
+ "implicit": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Var",
+ "name": "hashValue",
+ "printedName": "hashValue",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ }
+ ],
+ "declKind": "Var",
+ "usr": "s:10Starscream17TCPTransportErrorO9hashValueSivp",
+ "mangledName": "$s10Starscream17TCPTransportErrorO9hashValueSivp",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessors": [
+ {
+ "kind": "Accessor",
+ "name": "Get",
+ "printedName": "Get()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Int",
+ "printedName": "Swift.Int",
+ "usr": "s:Si"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream17TCPTransportErrorO9hashValueSivg",
+ "mangledName": "$s10Starscream17TCPTransportErrorO9hashValueSivg",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "accessorKind": "get"
+ }
+ ]
+ },
+ {
+ "kind": "Function",
+ "name": "hash",
+ "printedName": "hash(into:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Hasher",
+ "printedName": "Swift.Hasher",
+ "paramValueOwnership": "InOut",
+ "usr": "s:s6HasherV"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream17TCPTransportErrorO4hash4intoys6HasherVz_tF",
+ "mangledName": "$s10Starscream17TCPTransportErrorO4hash4intoys6HasherVz_tF",
+ "moduleName": "Starscream",
+ "implicit": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Enum",
+ "usr": "s:10Starscream17TCPTransportErrorO",
+ "mangledName": "$s10Starscream17TCPTransportErrorO",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "Equatable",
+ "printedName": "Equatable",
+ "usr": "s:SQ",
+ "mangledName": "$sSQ"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Hashable",
+ "printedName": "Hashable",
+ "usr": "s:SH",
+ "mangledName": "$sSH"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Error",
+ "printedName": "Error",
+ "usr": "s:s5ErrorP",
+ "mangledName": "$ss5ErrorP"
+ },
+ {
+ "kind": "Conformance",
+ "name": "Sendable",
+ "printedName": "Sendable",
+ "usr": "s:s8SendableP",
+ "mangledName": "$ss8SendableP"
+ }
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "TCPTransport",
+ "printedName": "TCPTransport",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "usingTLS",
+ "printedName": "usingTLS",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Var",
+ "usr": "s:10Starscream12TCPTransportC8usingTLSSbvp",
+ "mangledName": "$s10Starscream12TCPTransportC8usingTLSSbvp",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "accessors": [
+ {
+ "kind": "Accessor",
+ "name": "Get",
+ "printedName": "Get()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ],
+ "declKind": "Accessor",
+ "usr": "s:10Starscream12TCPTransportC8usingTLSSbvg",
+ "mangledName": "$s10Starscream12TCPTransportC8usingTLSSbvg",
+ "moduleName": "Starscream",
+ "accessorKind": "get"
+ }
+ ]
+ },
+ {
+ "kind": "Constructor",
+ "name": "init",
+ "printedName": "init(connection:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "TCPTransport",
+ "printedName": "Starscream.TCPTransport",
+ "usr": "s:10Starscream12TCPTransportC"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "NWConnection",
+ "printedName": "Network.NWConnection",
+ "usr": "s:7Network12NWConnectionC"
+ }
+ ],
+ "declKind": "Constructor",
+ "usr": "s:10Starscream12TCPTransportC10connectionAC7Network12NWConnectionC_tcfc",
+ "mangledName": "$s10Starscream12TCPTransportC10connectionAC7Network12NWConnectionC_tcfc",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "init_kind": "Designated"
+ },
+ {
+ "kind": "Constructor",
+ "name": "init",
+ "printedName": "init()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "TCPTransport",
+ "printedName": "Starscream.TCPTransport",
+ "usr": "s:10Starscream12TCPTransportC"
+ }
+ ],
+ "declKind": "Constructor",
+ "usr": "s:10Starscream12TCPTransportCACycfc",
+ "mangledName": "$s10Starscream12TCPTransportCACycfc",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "init_kind": "Designated"
+ },
+ {
+ "kind": "Function",
+ "name": "connect",
+ "printedName": "connect(url:timeout:certificatePinning:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "URL",
+ "printedName": "Foundation.URL",
+ "usr": "s:10Foundation3URLV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Double",
+ "printedName": "Swift.Double",
+ "hasDefaultArg": true,
+ "usr": "s:Sd"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Starscream.CertificatePinning?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CertificatePinning",
+ "printedName": "Starscream.CertificatePinning",
+ "usr": "s:10Starscream18CertificatePinningP"
+ }
+ ],
+ "hasDefaultArg": true,
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream12TCPTransportC7connect3url7timeout18certificatePinningy10Foundation3URLV_SdAA011CertificateG0_pSgtF",
+ "mangledName": "$s10Starscream12TCPTransportC7connect3url7timeout18certificatePinningy10Foundation3URLV_SdAA011CertificateG0_pSgtF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "disconnect",
+ "printedName": "disconnect()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream12TCPTransportC10disconnectyyF",
+ "mangledName": "$s10Starscream12TCPTransportC10disconnectyyF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "register",
+ "printedName": "register(delegate:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "TransportEventClient",
+ "printedName": "Starscream.TransportEventClient",
+ "usr": "s:10Starscream20TransportEventClientP"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream12TCPTransportC8register8delegateyAA20TransportEventClient_p_tF",
+ "mangledName": "$s10Starscream12TCPTransportC8register8delegateyAA20TransportEventClient_p_tF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "write",
+ "printedName": "write(data:completion:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.Error?) -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Swift.Error?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Error",
+ "printedName": "Swift.Error",
+ "usr": "s:s5ErrorP"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ]
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream12TCPTransportC5write4data10completiony10Foundation4DataV_ys5Error_pSgctF",
+ "mangledName": "$s10Starscream12TCPTransportC5write4data10completiony10Foundation4DataV_ys5Error_pSgctF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ],
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Class",
+ "usr": "s:10Starscream12TCPTransportC",
+ "mangledName": "$s10Starscream12TCPTransportC",
+ "moduleName": "Starscream",
+ "intro_Macosx": "10.14",
+ "intro_iOS": "12.0",
+ "intro_tvOS": "12.0",
+ "intro_watchOS": "5.0",
+ "declAttributes": [
+ "AccessControl",
+ "Available",
+ "Available",
+ "Available",
+ "Available"
+ ],
+ "conformances": [
+ {
+ "kind": "Conformance",
+ "name": "Transport",
+ "printedName": "Transport",
+ "usr": "s:10Starscream9TransportP",
+ "mangledName": "$s10Starscream9TransportP"
+ }
+ ]
+ },
+ {
+ "kind": "Import",
+ "name": "Foundation",
+ "printedName": "Foundation",
+ "declKind": "Import",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "ConnectionState",
+ "printedName": "ConnectionState",
+ "children": [
+ {
+ "kind": "Var",
+ "name": "connected",
+ "printedName": "connected",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ConnectionState.Type) -> Starscream.ConnectionState",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ConnectionState.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream15ConnectionStateO9connectedyA2CmF",
+ "mangledName": "$s10Starscream15ConnectionStateO9connectedyA2CmF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "Var",
+ "name": "waiting",
+ "printedName": "waiting",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ConnectionState.Type) -> Starscream.ConnectionState",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ConnectionState.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream15ConnectionStateO7waitingyA2CmF",
+ "mangledName": "$s10Starscream15ConnectionStateO7waitingyA2CmF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "Var",
+ "name": "cancelled",
+ "printedName": "cancelled",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ConnectionState.Type) -> Starscream.ConnectionState",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ConnectionState.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream15ConnectionStateO9cancelledyA2CmF",
+ "mangledName": "$s10Starscream15ConnectionStateO9cancelledyA2CmF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "Var",
+ "name": "failed",
+ "printedName": "failed",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ConnectionState.Type) -> (Swift.Error?) -> Starscream.ConnectionState",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.Error?) -> Starscream.ConnectionState",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Swift.Error?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Error",
+ "printedName": "Swift.Error",
+ "usr": "s:s5ErrorP"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ConnectionState.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream15ConnectionStateO6failedyACs5Error_pSgcACmF",
+ "mangledName": "$s10Starscream15ConnectionStateO6failedyACs5Error_pSgcACmF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "Var",
+ "name": "viability",
+ "printedName": "viability",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ConnectionState.Type) -> (Swift.Bool) -> Starscream.ConnectionState",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.Bool) -> Starscream.ConnectionState",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ConnectionState.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream15ConnectionStateO9viabilityyACSbcACmF",
+ "mangledName": "$s10Starscream15ConnectionStateO9viabilityyACSbcACmF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "Var",
+ "name": "shouldReconnect",
+ "printedName": "shouldReconnect",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ConnectionState.Type) -> (Swift.Bool) -> Starscream.ConnectionState",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.Bool) -> Starscream.ConnectionState",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Bool",
+ "printedName": "Swift.Bool",
+ "usr": "s:Sb"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ConnectionState.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream15ConnectionStateO15shouldReconnectyACSbcACmF",
+ "mangledName": "$s10Starscream15ConnectionStateO15shouldReconnectyACSbcACmF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "Var",
+ "name": "receive",
+ "printedName": "receive",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ConnectionState.Type) -> (Foundation.Data) -> Starscream.ConnectionState",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Foundation.Data) -> Starscream.ConnectionState",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ }
+ ]
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ConnectionState.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream15ConnectionStateO7receiveyAC10Foundation4DataVcACmF",
+ "mangledName": "$s10Starscream15ConnectionStateO7receiveyAC10Foundation4DataVcACmF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ },
+ {
+ "kind": "Var",
+ "name": "peerClosed",
+ "printedName": "peerClosed",
+ "children": [
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Starscream.ConnectionState.Type) -> Starscream.ConnectionState",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Metatype",
+ "printedName": "Starscream.ConnectionState.Type",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "declKind": "EnumElement",
+ "usr": "s:10Starscream15ConnectionStateO10peerClosedyA2CmF",
+ "mangledName": "$s10Starscream15ConnectionStateO10peerClosedyA2CmF",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "RawDocComment"
+ ]
+ }
+ ],
+ "declKind": "Enum",
+ "usr": "s:10Starscream15ConnectionStateO",
+ "mangledName": "$s10Starscream15ConnectionStateO",
+ "moduleName": "Starscream",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "TransportEventClient",
+ "printedName": "TransportEventClient",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "connectionChanged",
+ "printedName": "connectionChanged(state:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "ConnectionState",
+ "printedName": "Starscream.ConnectionState",
+ "usr": "s:10Starscream15ConnectionStateO"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream20TransportEventClientP17connectionChanged5stateyAA15ConnectionStateO_tF",
+ "mangledName": "$s10Starscream20TransportEventClientP17connectionChanged5stateyAA15ConnectionStateO_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.TransportEventClient>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ }
+ ],
+ "declKind": "Protocol",
+ "usr": "s:10Starscream20TransportEventClientP",
+ "mangledName": "$s10Starscream20TransportEventClientP",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 : AnyObject>",
+ "sugared_genericSig": "",
+ "declAttributes": [
+ "AccessControl"
+ ]
+ },
+ {
+ "kind": "TypeDecl",
+ "name": "Transport",
+ "printedName": "Transport",
+ "children": [
+ {
+ "kind": "Function",
+ "name": "register",
+ "printedName": "register(delegate:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "TransportEventClient",
+ "printedName": "Starscream.TransportEventClient",
+ "usr": "s:10Starscream20TransportEventClientP"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream9TransportP8register8delegateyAA0B11EventClient_p_tF",
+ "mangledName": "$s10Starscream9TransportP8register8delegateyAA0B11EventClient_p_tF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Transport>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "connect",
+ "printedName": "connect(url:timeout:certificatePinning:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "URL",
+ "printedName": "Foundation.URL",
+ "usr": "s:10Foundation3URLV"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Double",
+ "printedName": "Swift.Double",
+ "usr": "s:Sd"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Starscream.CertificatePinning?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "CertificatePinning",
+ "printedName": "Starscream.CertificatePinning",
+ "usr": "s:10Starscream18CertificatePinningP"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream9TransportP7connect3url7timeout18certificatePinningy10Foundation3URLV_SdAA011CertificateG0_pSgtF",
+ "mangledName": "$s10Starscream9TransportP7connect3url7timeout18certificatePinningy10Foundation3URLV_SdAA011CertificateG0_pSgtF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Transport>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "disconnect",
+ "printedName": "disconnect()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream9TransportP10disconnectyyF",
+ "mangledName": "$s10Starscream9TransportP10disconnectyyF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Transport>",
+ "sugared_genericSig": "",
+ "protocolReq": true,
+ "reqNewWitnessTableEntry": true,
+ "funcSelfKind": "NonMutating"
+ },
+ {
+ "kind": "Function",
+ "name": "write",
+ "printedName": "write(data:completion:)",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Data",
+ "printedName": "Foundation.Data",
+ "usr": "s:10Foundation4DataV"
+ },
+ {
+ "kind": "TypeFunc",
+ "name": "Function",
+ "printedName": "(Swift.Error?) -> ()",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Void",
+ "printedName": "()"
+ },
+ {
+ "kind": "TypeNominal",
+ "name": "Optional",
+ "printedName": "Swift.Error?",
+ "children": [
+ {
+ "kind": "TypeNominal",
+ "name": "Error",
+ "printedName": "Swift.Error",
+ "usr": "s:s5ErrorP"
+ }
+ ],
+ "usr": "s:Sq"
+ }
+ ]
+ }
+ ],
+ "declKind": "Func",
+ "usr": "s:10Starscream9TransportP5write4data10completiony10Foundation4DataV_ys5Error_pSgctF",
+ "mangledName": "$s10Starscream9TransportP5write4data10completiony10Foundation4DataV_ys5Error_pSgctF",
+ "moduleName": "Starscream",
+ "genericSig": "<τ_0_0 where τ_0_0 : Starscream.Transport>",
+ "sugared_genericSig": "