@open-dy/vibecoding-sdk-taro 0.0.1-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/interest-card/eslint/eslint-plugin-custom-navigation.mjs +290 -0
- package/dist/adapters/interest-card/eslint/taro.mjs +55 -0
- package/dist/adapters/interest-card/runtime/microapp.d.ts +7 -0
- package/dist/adapters/interest-card/runtime/microapp.js +8 -0
- package/dist/adapters/interest-card/runtime/microapp.js.map +1 -0
- package/dist/adapters/interest-card/types/taro.d.ts +28 -0
- package/dist/build/config-overrides.d.ts +19 -0
- package/dist/build/config-overrides.js +35 -0
- package/dist/build/config-overrides.js.map +1 -0
- package/dist/build/index.d.ts +1 -0
- package/dist/build/index.js +2 -0
- package/dist/build/index.js.map +1 -0
- package/dist/build/plugins/app-config.cjs +43 -0
- package/dist/build/plugins/vite-depend-card.d.ts +29 -0
- package/dist/build/plugins/vite-depend-card.js +250 -0
- package/dist/build/plugins/vite-depend-card.js.map +1 -0
- package/dist/build/plugins/vite-image-asset-import.d.ts +10 -0
- package/dist/build/plugins/vite-image-asset-import.js +150 -0
- package/dist/build/plugins/vite-image-asset-import.js.map +1 -0
- package/dist/build/plugins/vite-inline-json.d.ts +4 -0
- package/dist/build/plugins/vite-inline-json.js +129 -0
- package/dist/build/plugins/vite-inline-json.js.map +1 -0
- package/dist/build/plugins/vite-taro-source-location.d.ts +13 -0
- package/dist/build/plugins/vite-taro-source-location.js +159 -0
- package/dist/build/plugins/vite-taro-source-location.js.map +1 -0
- package/dist/build/taro.d.ts +53 -0
- package/dist/build/taro.js +729 -0
- package/dist/build/taro.js.map +1 -0
- package/dist/components/miniapp-open-card.d.ts +19 -0
- package/dist/components/miniapp-open-card.js +3 -0
- package/dist/components/miniapp-open-card.js.map +1 -0
- package/dist/eslint/eslint-plugin-microapp-pages.mjs +659 -0
- package/dist/eslint/server.mjs +69 -0
- package/dist/eslint/taro.mjs +553 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/runtime/douyin-open-button.d.ts +29 -0
- package/dist/internal/runtime/iframe-auth/identity.d.ts +20 -0
- package/dist/internal/runtime/iframe-auth/identity.js +156 -0
- package/dist/internal/runtime/iframe-auth/identity.js.map +1 -0
- package/dist/internal/runtime/iframe-auth/index.d.ts +2 -0
- package/dist/internal/runtime/iframe-auth/index.js +3 -0
- package/dist/internal/runtime/iframe-auth/index.js.map +1 -0
- package/dist/internal/runtime/iframe-auth/sync.d.ts +2 -0
- package/dist/internal/runtime/iframe-auth/sync.js +23 -0
- package/dist/internal/runtime/iframe-auth/sync.js.map +1 -0
- package/dist/lib/measure.d.ts +21 -0
- package/dist/lib/measure.js +101 -0
- package/dist/lib/measure.js.map +1 -0
- package/dist/lib/platform.d.ts +2 -0
- package/dist/lib/platform.js +11 -0
- package/dist/lib/platform.js.map +1 -0
- package/dist/lib/utils.d.ts +2 -0
- package/dist/lib/utils.js +6 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/reference/llms.txt +36 -0
- package/dist/reference/sdk-api/build/taro/BuildContext.md +53 -0
- package/dist/reference/sdk-api/build/taro/CreateMicroappTaroConfigOptions.md +62 -0
- package/dist/reference/sdk-api/build/taro/createMicroappTaroConfig.md +66 -0
- package/dist/reference/sdk-api/build/taro/index.md +11 -0
- package/dist/reference/sdk-api/runtime/CreateMicroappClientOptions.md +47 -0
- package/dist/reference/sdk-api/runtime/createMicroappClient.md +378 -0
- package/dist/reference/sdk-api/runtime/index.md +10 -0
- package/dist/reference/sdk-api.json +1534 -0
- package/dist/reference/sdk-api.md +43 -0
- package/dist/runtime/client.d.ts +63 -0
- package/dist/runtime/client.js +194 -0
- package/dist/runtime/client.js.map +1 -0
- package/dist/runtime/closed-domain-request-header.d.ts +4 -0
- package/dist/runtime/closed-domain-request-header.js +8 -0
- package/dist/runtime/closed-domain-request-header.js.map +1 -0
- package/dist/runtime/default-client.d.ts +57 -0
- package/dist/runtime/default-client.js +21 -0
- package/dist/runtime/default-client.js.map +1 -0
- package/dist/runtime/default-iframe-auth.d.ts +8 -0
- package/dist/runtime/default-iframe-auth.js +10 -0
- package/dist/runtime/default-iframe-auth.js.map +1 -0
- package/dist/runtime/douyin-container-request.d.ts +11 -0
- package/dist/runtime/douyin-container-request.js +301 -0
- package/dist/runtime/douyin-container-request.js.map +1 -0
- package/dist/runtime/douyin-login-request.d.ts +32 -0
- package/dist/runtime/douyin-login-request.js +400 -0
- package/dist/runtime/douyin-login-request.js.map +1 -0
- package/dist/runtime/globals.d.ts +342 -0
- package/dist/runtime/index.d.ts +4 -0
- package/dist/runtime/index.js +4 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/network-url.d.ts +3 -0
- package/dist/runtime/network-url.js +53 -0
- package/dist/runtime/network-url.js.map +1 -0
- package/dist/types/taro.d.ts +1 -0
- package/dist/ui/accordion.d.ts +17 -0
- package/dist/ui/accordion.js +60 -0
- package/dist/ui/accordion.js.map +1 -0
- package/dist/ui/alert-dialog.d.ts +33 -0
- package/dist/ui/alert-dialog.js +96 -0
- package/dist/ui/alert-dialog.js.map +1 -0
- package/dist/ui/alert.d.ts +11 -0
- package/dist/ui/alert.js +49 -0
- package/dist/ui/alert.js.map +1 -0
- package/dist/ui/aspect-ratio.d.ts +5 -0
- package/dist/ui/aspect-ratio.js +10 -0
- package/dist/ui/aspect-ratio.js.map +1 -0
- package/dist/ui/avatar.d.ts +14 -0
- package/dist/ui/avatar.js +50 -0
- package/dist/ui/avatar.js.map +1 -0
- package/dist/ui/badge.d.ts +8 -0
- package/dist/ui/badge.js +27 -0
- package/dist/ui/badge.js.map +1 -0
- package/dist/ui/button-group.d.ts +14 -0
- package/dist/ui/button-group.js +52 -0
- package/dist/ui/button-group.js.map +1 -0
- package/dist/ui/button.d.ts +30 -0
- package/dist/ui/button.js +75 -0
- package/dist/ui/button.js.map +1 -0
- package/dist/ui/calendar.d.ts +29 -0
- package/dist/ui/calendar.js +141 -0
- package/dist/ui/calendar.js.map +1 -0
- package/dist/ui/card.d.ts +12 -0
- package/dist/ui/card.js +38 -0
- package/dist/ui/card.js.map +1 -0
- package/dist/ui/carousel.d.ts +30 -0
- package/dist/ui/carousel.js +60 -0
- package/dist/ui/carousel.js.map +1 -0
- package/dist/ui/checkbox.d.ts +9 -0
- package/dist/ui/checkbox.js +20 -0
- package/dist/ui/checkbox.js.map +1 -0
- package/dist/ui/collapsible.d.ts +18 -0
- package/dist/ui/collapsible.js +53 -0
- package/dist/ui/collapsible.js.map +1 -0
- package/dist/ui/combobox.d.ts +55 -0
- package/dist/ui/combobox.js +165 -0
- package/dist/ui/combobox.js.map +1 -0
- package/dist/ui/dialog.d.ts +26 -0
- package/dist/ui/dialog.js +54 -0
- package/dist/ui/dialog.js.map +1 -0
- package/dist/ui/drawer.d.ts +21 -0
- package/dist/ui/drawer.js +57 -0
- package/dist/ui/drawer.js.map +1 -0
- package/dist/ui/dropdown-menu.d.ts +52 -0
- package/dist/ui/dropdown-menu.js +112 -0
- package/dist/ui/dropdown-menu.js.map +1 -0
- package/dist/ui/empty.d.ts +12 -0
- package/dist/ui/empty.js +35 -0
- package/dist/ui/empty.js.map +1 -0
- package/dist/ui/field.d.ts +26 -0
- package/dist/ui/field.js +117 -0
- package/dist/ui/field.js.map +1 -0
- package/dist/ui/helpers.d.ts +6 -0
- package/dist/ui/helpers.js +23 -0
- package/dist/ui/helpers.js.map +1 -0
- package/dist/ui/index.d.ts +47 -0
- package/dist/ui/index.js +48 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/input-group.d.ts +17 -0
- package/dist/ui/input-group.js +122 -0
- package/dist/ui/input-group.js.map +1 -0
- package/dist/ui/input-otp.d.ts +18 -0
- package/dist/ui/input-otp.js +48 -0
- package/dist/ui/input-otp.js.map +1 -0
- package/dist/ui/input.d.ts +5 -0
- package/dist/ui/input.js +8 -0
- package/dist/ui/input.js.map +1 -0
- package/dist/ui/item.d.ts +22 -0
- package/dist/ui/item.js +83 -0
- package/dist/ui/item.js.map +1 -0
- package/dist/ui/label.d.ts +3 -0
- package/dist/ui/label.js +8 -0
- package/dist/ui/label.js.map +1 -0
- package/dist/ui/menubar.d.ts +65 -0
- package/dist/ui/menubar.js +244 -0
- package/dist/ui/menubar.js.map +1 -0
- package/dist/ui/navigation-menu.d.ts +27 -0
- package/dist/ui/navigation-menu.js +72 -0
- package/dist/ui/navigation-menu.js.map +1 -0
- package/dist/ui/pagination.d.ts +17 -0
- package/dist/ui/pagination.js +28 -0
- package/dist/ui/pagination.js.map +1 -0
- package/dist/ui/popover.d.ts +27 -0
- package/dist/ui/popover.js +139 -0
- package/dist/ui/popover.js.map +1 -0
- package/dist/ui/portal.d.ts +5 -0
- package/dist/ui/portal.js +18 -0
- package/dist/ui/portal.js.map +1 -0
- package/dist/ui/progress.d.ts +45 -0
- package/dist/ui/progress.js +67 -0
- package/dist/ui/progress.js.map +1 -0
- package/dist/ui/radio-group.d.ts +12 -0
- package/dist/ui/radio-group.js +29 -0
- package/dist/ui/radio-group.js.map +1 -0
- package/dist/ui/resizable.d.ts +20 -0
- package/dist/ui/resizable.js +244 -0
- package/dist/ui/resizable.js.map +1 -0
- package/dist/ui/scroll-area.d.ts +8 -0
- package/dist/ui/scroll-area.js +34 -0
- package/dist/ui/scroll-area.js.map +1 -0
- package/dist/ui/select.d.ts +35 -0
- package/dist/ui/select.js +136 -0
- package/dist/ui/select.js.map +1 -0
- package/dist/ui/separator.d.ts +5 -0
- package/dist/ui/separator.js +8 -0
- package/dist/ui/separator.js.map +1 -0
- package/dist/ui/sheet.d.ts +26 -0
- package/dist/ui/sheet.js +67 -0
- package/dist/ui/sheet.js.map +1 -0
- package/dist/ui/skeleton.d.ts +3 -0
- package/dist/ui/skeleton.js +8 -0
- package/dist/ui/skeleton.js.map +1 -0
- package/dist/ui/slider.d.ts +12 -0
- package/dist/ui/slider.js +94 -0
- package/dist/ui/slider.js.map +1 -0
- package/dist/ui/sonner.d.ts +6 -0
- package/dist/ui/sonner.js +13 -0
- package/dist/ui/sonner.js.map +1 -0
- package/dist/ui/spinner.d.ts +3 -0
- package/dist/ui/spinner.js +9 -0
- package/dist/ui/spinner.js.map +1 -0
- package/dist/ui/switch.d.ts +11 -0
- package/dist/ui/switch.js +33 -0
- package/dist/ui/switch.js.map +1 -0
- package/dist/ui/table.d.ts +13 -0
- package/dist/ui/table.js +54 -0
- package/dist/ui/table.js.map +1 -0
- package/dist/ui/tabs.d.ts +23 -0
- package/dist/ui/tabs.js +61 -0
- package/dist/ui/tabs.js.map +1 -0
- package/dist/ui/tailwind.css +2 -0
- package/dist/ui/textarea.d.ts +3 -0
- package/dist/ui/textarea.js +13 -0
- package/dist/ui/textarea.js.map +1 -0
- package/dist/ui/theme.css +234 -0
- package/dist/ui/toggle-group.d.ts +19 -0
- package/dist/ui/toggle-group.js +73 -0
- package/dist/ui/toggle-group.js.map +1 -0
- package/dist/ui/toggle.d.ts +14 -0
- package/dist/ui/toggle.js +41 -0
- package/dist/ui/toggle.js.map +1 -0
- package/package.json +97 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# SDK API Reference
|
|
2
|
+
|
|
3
|
+
<!-- Generated by build/src/sdk-reference/skill-reference.ts. Do not edit. -->
|
|
4
|
+
|
|
5
|
+
本文档是 SDK API 的入口索引。详细契约按导入路径和 API 拆分到 `sdk-api/`,内容来自 SDK 源码的结构化 JSDoc 与 TypeScript 类型契约。
|
|
6
|
+
|
|
7
|
+
`?` 表示可选字段;平台运行时对象(例如 `taro`)只展示类型,不展开其内部方法。
|
|
8
|
+
|
|
9
|
+
## 公开入口索引
|
|
10
|
+
|
|
11
|
+
以下列表来自 SDK `package.json` 的 `exports`。适配器、UI、ESLint、类型和静态资源入口保留在索引中,避免把别名误认为独立运行时实现。
|
|
12
|
+
|
|
13
|
+
| 导入路径 | 用途 | 详细文档 |
|
|
14
|
+
| --- | --- | --- |
|
|
15
|
+
| `@open-dy/vibecoding-sdk-taro` | 根入口:类型与聚合导出。 | — |
|
|
16
|
+
| `@open-dy/vibecoding-sdk-taro/runtime` | SDK 公开 API。 | [查看](sdk-api/runtime/index.md) |
|
|
17
|
+
| `@open-dy/vibecoding-sdk-taro/interest-card/runtime/microapp` | 兴趣卡普通小程序适配器,复用 runtime 入口。 | [查看](sdk-api/runtime/index.md) |
|
|
18
|
+
| `@open-dy/vibecoding-sdk-taro/interest-card/eslint/taro` | 公开导出入口。 | — |
|
|
19
|
+
| `@open-dy/vibecoding-sdk-taro/interest-card/types/taro` | 公开导出入口。 | — |
|
|
20
|
+
| `@open-dy/vibecoding-sdk-taro/ui` | React UI 组件入口。 | — |
|
|
21
|
+
| `@open-dy/vibecoding-sdk-taro/ui/*` | React UI 组件入口。 | — |
|
|
22
|
+
| `@open-dy/vibecoding-sdk-taro/ui/theme.css` | UI 样式资源入口。 | — |
|
|
23
|
+
| `@open-dy/vibecoding-sdk-taro/ui/tailwind.css` | UI 样式资源入口。 | — |
|
|
24
|
+
| `@open-dy/vibecoding-sdk-taro/components/miniapp-open-card` | 公开导出入口。 | — |
|
|
25
|
+
| `@open-dy/vibecoding-sdk-taro/build/taro` | SDK 公开 API。 | [查看](sdk-api/build/taro/index.md) |
|
|
26
|
+
| `@open-dy/vibecoding-sdk-taro/types/taro` | 平台类型声明入口。 | — |
|
|
27
|
+
| `@open-dy/vibecoding-sdk-taro/reference/sdk-api.md` | 已生成的机器可读或 Markdown 参考文档。 | — |
|
|
28
|
+
| `@open-dy/vibecoding-sdk-taro/reference/sdk-api.json` | 已生成的机器可读或 Markdown 参考文档。 | — |
|
|
29
|
+
| `@open-dy/vibecoding-sdk-taro/reference/llms.txt` | 已生成的机器可读或 Markdown 参考文档。 | — |
|
|
30
|
+
| `@open-dy/vibecoding-sdk-taro/reference/sdk-api/*` | 已生成的机器可读或 Markdown 参考文档。 | — |
|
|
31
|
+
| `@open-dy/vibecoding-sdk-taro/eslint/taro` | 场景化 ESLint 配置入口。 | — |
|
|
32
|
+
| `@open-dy/vibecoding-sdk-taro/eslint/server` | 场景化 ESLint 配置入口。 | — |
|
|
33
|
+
| `@open-dy/vibecoding-sdk-taro/build` | 构建能力聚合入口;详细契约见 build/taro 和 build/opencard。 | [查看](sdk-api/build/taro/index.md) |
|
|
34
|
+
|
|
35
|
+
## 文档目录
|
|
36
|
+
|
|
37
|
+
- [runtime](sdk-api/runtime/index.md)
|
|
38
|
+
- `createMicroappClient`
|
|
39
|
+
- `CreateMicroappClientOptions`
|
|
40
|
+
- [build/taro](sdk-api/build/taro/index.md)
|
|
41
|
+
- `BuildContext`
|
|
42
|
+
- `CreateMicroappTaroConfigOptions`
|
|
43
|
+
- `createMicroappTaroConfig`
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @desc 配置普通小程序 Network 的平台渠道。
|
|
3
|
+
* @example
|
|
4
|
+
* ```ts
|
|
5
|
+
* const options = { platformChannel: 'ext' as const }
|
|
6
|
+
* ```
|
|
7
|
+
* @ai-intent 配置普通小程序 Network 的平台渠道。
|
|
8
|
+
* @ai-when 需要让普通小程序请求携带内场或外场渠道标识时。
|
|
9
|
+
* @ai-avoid 不要在业务页面直接拼接渠道请求头。
|
|
10
|
+
* @ai-example { platformChannel: 'ext' }
|
|
11
|
+
*/
|
|
12
|
+
export interface CreateMicroappClientOptions {
|
|
13
|
+
/** @desc 平台渠道:空字符串为内场,ext 为外场;默认空字符串。 */
|
|
14
|
+
platformChannel?: '' | 'ext';
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* 网络请求模块
|
|
18
|
+
* 封装 Taro.request、Taro.uploadFile、Taro.downloadFile,自动添加项目域名前缀
|
|
19
|
+
* 如果请求的 url 以 http:// 或 https:// 开头,则不会添加域名前缀
|
|
20
|
+
*
|
|
21
|
+
* IMPORTANT: 项目已经全局注入 PROJECT_DOMAIN
|
|
22
|
+
* IMPORTANT: 除非你需要添加全局参数,如给所有请求加上 header,否则不能修改此文件
|
|
23
|
+
*/
|
|
24
|
+
export declare function createMicroappClient(taro: Taro.TaroStatic, options?: CreateMicroappClientOptions): {
|
|
25
|
+
request: <T = any, U = any>(option: import("@tarojs/taro").request.Option<T, U>) => import("@tarojs/taro").RequestTask<T>;
|
|
26
|
+
requestClosedDomain: <T = any, U = any>(option: import("@tarojs/taro").request.Option<T, U>) => import("@tarojs/taro").RequestTask<T>;
|
|
27
|
+
uploadFile: (option: Omit<Taro.uploadFile.Option, "url" | "name"> & {
|
|
28
|
+
url?: string;
|
|
29
|
+
name?: string;
|
|
30
|
+
}) => ReturnType<typeof Taro.uploadFile>;
|
|
31
|
+
uploadFileClosedDomain: (option: Omit<Taro.uploadFile.Option, "url" | "name"> & {
|
|
32
|
+
url?: string;
|
|
33
|
+
name?: string;
|
|
34
|
+
}) => ReturnType<typeof Taro.uploadFile>;
|
|
35
|
+
downloadFile: (option: Omit<Taro.downloadFile.Option, "url"> & {
|
|
36
|
+
url?: string;
|
|
37
|
+
}) => ReturnType<typeof Taro.downloadFile>;
|
|
38
|
+
downloadFileClosedDomain: (option: Omit<Taro.downloadFile.Option, "url"> & {
|
|
39
|
+
url?: string;
|
|
40
|
+
}) => ReturnType<typeof Taro.downloadFile>;
|
|
41
|
+
streamSse: (option: {
|
|
42
|
+
url: string;
|
|
43
|
+
method?: string;
|
|
44
|
+
data?: unknown;
|
|
45
|
+
header?: Record<string, unknown>;
|
|
46
|
+
onMessage(frame: string): void;
|
|
47
|
+
onError?(error: Error): void;
|
|
48
|
+
onComplete?(): void;
|
|
49
|
+
}) => Promise<{
|
|
50
|
+
close: () => void;
|
|
51
|
+
}>;
|
|
52
|
+
streamSseClosedDomain: (option: {
|
|
53
|
+
url: string;
|
|
54
|
+
method?: string;
|
|
55
|
+
data?: unknown;
|
|
56
|
+
header?: Record<string, unknown>;
|
|
57
|
+
onMessage(frame: string): void;
|
|
58
|
+
onError?(error: Error): void;
|
|
59
|
+
onComplete?(): void;
|
|
60
|
+
}) => Promise<{
|
|
61
|
+
close: () => void;
|
|
62
|
+
}>;
|
|
63
|
+
};
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { mergeClosedDomainRequestHeader } from './closed-domain-request-header.js';
|
|
2
|
+
import { canUseDouyinContainer, downloadByDouyinContainer, isDouyinMiniProgram, isDouyinPreviewEnv, isWebPreviewEnv, requestByDouyinContainer, requestSSEByDouyinContainer, uploadByDouyinContainer, } from './douyin-container-request.js';
|
|
3
|
+
import { mergeCachedDouyinLoginHeaders, requestByDouyinLogin, requestSSEByDouyinLogin, requestSSEByFetch, setDouyinLoginPlatformChannel, uploadByDouyinLogin, downloadByDouyinLogin, } from './douyin-login-request.js';
|
|
4
|
+
import { mergeIframeIdentityHeaders } from '../internal/runtime/iframe-auth/index.js';
|
|
5
|
+
import { appendGetQuery, createUrl } from './network-url.js';
|
|
6
|
+
/**
|
|
7
|
+
* 网络请求模块
|
|
8
|
+
* 封装 Taro.request、Taro.uploadFile、Taro.downloadFile,自动添加项目域名前缀
|
|
9
|
+
* 如果请求的 url 以 http:// 或 https:// 开头,则不会添加域名前缀
|
|
10
|
+
*
|
|
11
|
+
* IMPORTANT: 项目已经全局注入 PROJECT_DOMAIN
|
|
12
|
+
* IMPORTANT: 除非你需要添加全局参数,如给所有请求加上 header,否则不能修改此文件
|
|
13
|
+
*/
|
|
14
|
+
export function createMicroappClient(taro, options = {}) {
|
|
15
|
+
setDouyinLoginPlatformChannel(options.platformChannel ?? '');
|
|
16
|
+
const mergeExternalPlatformChannelHeader = (header) => {
|
|
17
|
+
if (options.platformChannel !== 'ext')
|
|
18
|
+
return header;
|
|
19
|
+
return {
|
|
20
|
+
...header,
|
|
21
|
+
'ai-platform-channel': 'ext',
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
// 保留原模板的登录态复用;非 Web 预览的可信 iframe 身份可以覆盖它。
|
|
25
|
+
const mergeRequestIdentityHeaders = (header) => {
|
|
26
|
+
const loginHeaders = mergeCachedDouyinLoginHeaders(header);
|
|
27
|
+
return isWebPreviewEnv()
|
|
28
|
+
? loginHeaders
|
|
29
|
+
: mergeIframeIdentityHeaders(taro, loginHeaders);
|
|
30
|
+
};
|
|
31
|
+
const request = (option => {
|
|
32
|
+
const method = option.method ?? 'GET';
|
|
33
|
+
if (/^http(s)?:\/\//.test(option.url)) {
|
|
34
|
+
return taro.request(option);
|
|
35
|
+
}
|
|
36
|
+
const externalPlatformHeader = mergeExternalPlatformChannelHeader(option.header);
|
|
37
|
+
const fallbackHeader = mergeRequestIdentityHeaders(externalPlatformHeader);
|
|
38
|
+
const logResponse = (url, res) => {
|
|
39
|
+
console.log(`[Network] ${method} ${url} ${res.statusCode}`, res.data);
|
|
40
|
+
};
|
|
41
|
+
if (isDouyinMiniProgram() &&
|
|
42
|
+
!isWebPreviewEnv() &&
|
|
43
|
+
!isDouyinPreviewEnv() &&
|
|
44
|
+
canUseDouyinContainer()) {
|
|
45
|
+
const header = mergeRequestIdentityHeaders(externalPlatformHeader);
|
|
46
|
+
const promise = requestByDouyinContainer({
|
|
47
|
+
...option,
|
|
48
|
+
method,
|
|
49
|
+
header,
|
|
50
|
+
});
|
|
51
|
+
promise.then(res => logResponse(option.url, res)).catch(() => { });
|
|
52
|
+
return promise;
|
|
53
|
+
}
|
|
54
|
+
const promise = requestByDouyinLogin({
|
|
55
|
+
...option,
|
|
56
|
+
method,
|
|
57
|
+
header: fallbackHeader,
|
|
58
|
+
}).catch(() => {
|
|
59
|
+
const { url, data, ...rest } = option;
|
|
60
|
+
const finalUrl = appendGetQuery(createUrl(url), data, method);
|
|
61
|
+
return taro.request({
|
|
62
|
+
...rest,
|
|
63
|
+
url: finalUrl,
|
|
64
|
+
method,
|
|
65
|
+
header: fallbackHeader,
|
|
66
|
+
...(method.toUpperCase() === 'GET' ? {} : { data }),
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
promise.then(res => logResponse(option.url, res)).catch(() => { });
|
|
70
|
+
return promise;
|
|
71
|
+
});
|
|
72
|
+
/** 显式追加封闭域请求标记;不读取卡片模式,也不改变请求目标或云服务 SERVICE_ID。 */
|
|
73
|
+
const requestClosedDomain = (option => {
|
|
74
|
+
return request({
|
|
75
|
+
...option,
|
|
76
|
+
header: mergeClosedDomainRequestHeader(option.header),
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
const uploadFile = ((option) => {
|
|
80
|
+
if (!option.url) {
|
|
81
|
+
option.url = '';
|
|
82
|
+
}
|
|
83
|
+
if (/^http(s)?:\/\//.test(option.url)) {
|
|
84
|
+
return taro.uploadFile(option);
|
|
85
|
+
}
|
|
86
|
+
option.header = mergeExternalPlatformChannelHeader(option.header);
|
|
87
|
+
if (!option.name) {
|
|
88
|
+
option.name = 'file';
|
|
89
|
+
}
|
|
90
|
+
if (isDouyinMiniProgram() &&
|
|
91
|
+
!isWebPreviewEnv() &&
|
|
92
|
+
!isDouyinPreviewEnv() &&
|
|
93
|
+
canUseDouyinContainer() &&
|
|
94
|
+
!/^http(s)?:\/\//.test(option.url)) {
|
|
95
|
+
return uploadByDouyinContainer(option);
|
|
96
|
+
}
|
|
97
|
+
return uploadByDouyinLogin(option);
|
|
98
|
+
});
|
|
99
|
+
const uploadFileClosedDomain = option => {
|
|
100
|
+
return uploadFile({
|
|
101
|
+
...option,
|
|
102
|
+
header: mergeClosedDomainRequestHeader(option.header),
|
|
103
|
+
});
|
|
104
|
+
};
|
|
105
|
+
const downloadFile = ((option) => {
|
|
106
|
+
if (!option.url) {
|
|
107
|
+
option.url = '';
|
|
108
|
+
}
|
|
109
|
+
if (/^http(s)?:\/\//.test(option.url)) {
|
|
110
|
+
return taro.downloadFile(option);
|
|
111
|
+
}
|
|
112
|
+
option.header = mergeExternalPlatformChannelHeader(option.header);
|
|
113
|
+
if (isDouyinMiniProgram() &&
|
|
114
|
+
!isWebPreviewEnv() &&
|
|
115
|
+
!isDouyinPreviewEnv() &&
|
|
116
|
+
canUseDouyinContainer() &&
|
|
117
|
+
!/^http(s)?:\/\//.test(option.url)) {
|
|
118
|
+
return downloadByDouyinContainer(option);
|
|
119
|
+
}
|
|
120
|
+
return downloadByDouyinLogin(option);
|
|
121
|
+
});
|
|
122
|
+
const downloadFileClosedDomain = option => {
|
|
123
|
+
return downloadFile({
|
|
124
|
+
...option,
|
|
125
|
+
header: mergeClosedDomainRequestHeader(option.header),
|
|
126
|
+
});
|
|
127
|
+
};
|
|
128
|
+
const streamSse = async (option) => {
|
|
129
|
+
const method = (option.method ?? "POST");
|
|
130
|
+
const externalPlatformHeader = /^http(s)?:\/\//.test(option.url)
|
|
131
|
+
? option.header
|
|
132
|
+
: mergeExternalPlatformChannelHeader(option.header);
|
|
133
|
+
const fallbackHeader = mergeRequestIdentityHeaders(externalPlatformHeader);
|
|
134
|
+
let eventSourceTask;
|
|
135
|
+
if (isDouyinMiniProgram() &&
|
|
136
|
+
!isWebPreviewEnv() &&
|
|
137
|
+
!isDouyinPreviewEnv() &&
|
|
138
|
+
canUseDouyinContainer() &&
|
|
139
|
+
!/^http(s)?:\/\//.test(option.url)) {
|
|
140
|
+
const header = mergeRequestIdentityHeaders(externalPlatformHeader);
|
|
141
|
+
eventSourceTask = await requestSSEByDouyinContainer({
|
|
142
|
+
...option,
|
|
143
|
+
method,
|
|
144
|
+
header,
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
try {
|
|
149
|
+
eventSourceTask = await requestSSEByDouyinLogin({
|
|
150
|
+
...option,
|
|
151
|
+
method,
|
|
152
|
+
header: fallbackHeader,
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
catch {
|
|
156
|
+
const { url, data, ...rest } = option;
|
|
157
|
+
const finalUrl = appendGetQuery(createUrl(url), data, method);
|
|
158
|
+
eventSourceTask = await requestSSEByFetch({
|
|
159
|
+
...rest,
|
|
160
|
+
url: finalUrl,
|
|
161
|
+
method,
|
|
162
|
+
header: fallbackHeader,
|
|
163
|
+
...(method?.toUpperCase() === "GET" ? {} : { data }),
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
eventSourceTask.onMessage((chunk) => {
|
|
168
|
+
option.onMessage(chunk.data);
|
|
169
|
+
});
|
|
170
|
+
eventSourceTask.onClose(() => {
|
|
171
|
+
option.onComplete?.();
|
|
172
|
+
});
|
|
173
|
+
return {
|
|
174
|
+
close: eventSourceTask.close,
|
|
175
|
+
};
|
|
176
|
+
};
|
|
177
|
+
const streamSseClosedDomain = async (option) => {
|
|
178
|
+
return streamSse({
|
|
179
|
+
...option,
|
|
180
|
+
header: mergeClosedDomainRequestHeader(option.header),
|
|
181
|
+
});
|
|
182
|
+
};
|
|
183
|
+
return {
|
|
184
|
+
request,
|
|
185
|
+
requestClosedDomain,
|
|
186
|
+
uploadFile,
|
|
187
|
+
uploadFileClosedDomain,
|
|
188
|
+
downloadFile,
|
|
189
|
+
downloadFileClosedDomain,
|
|
190
|
+
streamSse,
|
|
191
|
+
streamSseClosedDomain,
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/runtime/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"closed-domain-request-header.js","sourceRoot":"","sources":["../../src/runtime/closed-domain-request-header.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAC5C,MAAgC,EACP,EAAE,CAAC,CAAC;IAC7B,GAAG,MAAM;IACT,iBAAiB,EAAE,GAAG;CACvB,CAAC,CAAA"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import Taro from '@tarojs/taro';
|
|
2
|
+
import { type CreateMicroappClientOptions } from './client.js';
|
|
3
|
+
/**
|
|
4
|
+
* @desc 创建普通小程序的网络入口;SDK 自动绑定项目 Taro 运行时。
|
|
5
|
+
* @params {CreateMicroappClientOptions} [options] 平台渠道配置;默认使用内场渠道。
|
|
6
|
+
* @return {ReturnType<typeof createMicroappClient>} 提供普通网络方法,以及显式追加 X-Closed-Domain 标记的对应方法;标记方法不改变请求目标或云服务 SERVICE_ID。
|
|
7
|
+
* @remarks 业务优先从模板的 @/network 导入 Network;HTTP(S) 绝对地址直接交给 Taro。
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* const Network = createMicroappClient({ platformChannel: 'ext' })
|
|
11
|
+
* const response = await Network.request({ url: '/api/products', method: 'GET' })
|
|
12
|
+
* ```
|
|
13
|
+
* @ai-intent 创建绑定默认 Taro 实例的普通小程序 Network。
|
|
14
|
+
* @ai-when 业务代码需要统一调用普通小程序的 request、uploadFile、downloadFile 或 streamSse 时。
|
|
15
|
+
* @ai-avoid 不要在页面中直接调用 Taro.request,也不要传入 OpenCard 的 taro 实例。
|
|
16
|
+
* @ai-example const Network = createMicroappClient({ platformChannel: 'ext' })
|
|
17
|
+
*/
|
|
18
|
+
export declare function createMicroappClient(options?: CreateMicroappClientOptions): {
|
|
19
|
+
request: <T = any, U = any>(option: Taro.request.Option<T, U>) => Taro.RequestTask<T>;
|
|
20
|
+
requestClosedDomain: <T = any, U = any>(option: Taro.request.Option<T, U>) => Taro.RequestTask<T>;
|
|
21
|
+
uploadFile: (option: Omit<Taro.uploadFile.Option, "url" | "name"> & {
|
|
22
|
+
url?: string;
|
|
23
|
+
name?: string;
|
|
24
|
+
}) => ReturnType<typeof Taro.uploadFile>;
|
|
25
|
+
uploadFileClosedDomain: (option: Omit<Taro.uploadFile.Option, "url" | "name"> & {
|
|
26
|
+
url?: string;
|
|
27
|
+
name?: string;
|
|
28
|
+
}) => ReturnType<typeof Taro.uploadFile>;
|
|
29
|
+
downloadFile: (option: Omit<Taro.downloadFile.Option, "url"> & {
|
|
30
|
+
url?: string;
|
|
31
|
+
}) => ReturnType<typeof Taro.downloadFile>;
|
|
32
|
+
downloadFileClosedDomain: (option: Omit<Taro.downloadFile.Option, "url"> & {
|
|
33
|
+
url?: string;
|
|
34
|
+
}) => ReturnType<typeof Taro.downloadFile>;
|
|
35
|
+
streamSse: (option: {
|
|
36
|
+
url: string;
|
|
37
|
+
method?: string;
|
|
38
|
+
data?: unknown;
|
|
39
|
+
header?: Record<string, unknown>;
|
|
40
|
+
onMessage(frame: string): void;
|
|
41
|
+
onError?(error: Error): void;
|
|
42
|
+
onComplete?(): void;
|
|
43
|
+
}) => Promise<{
|
|
44
|
+
close: () => void;
|
|
45
|
+
}>;
|
|
46
|
+
streamSseClosedDomain: (option: {
|
|
47
|
+
url: string;
|
|
48
|
+
method?: string;
|
|
49
|
+
data?: unknown;
|
|
50
|
+
header?: Record<string, unknown>;
|
|
51
|
+
onMessage(frame: string): void;
|
|
52
|
+
onError?(error: Error): void;
|
|
53
|
+
onComplete?(): void;
|
|
54
|
+
}) => Promise<{
|
|
55
|
+
close: () => void;
|
|
56
|
+
}>;
|
|
57
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import Taro from '@tarojs/taro';
|
|
2
|
+
import { createMicroappClient as createMicroappClientWithTaro, } from './client.js';
|
|
3
|
+
/**
|
|
4
|
+
* @desc 创建普通小程序的网络入口;SDK 自动绑定项目 Taro 运行时。
|
|
5
|
+
* @params {CreateMicroappClientOptions} [options] 平台渠道配置;默认使用内场渠道。
|
|
6
|
+
* @return {ReturnType<typeof createMicroappClient>} 提供普通网络方法,以及显式追加 X-Closed-Domain 标记的对应方法;标记方法不改变请求目标或云服务 SERVICE_ID。
|
|
7
|
+
* @remarks 业务优先从模板的 @/network 导入 Network;HTTP(S) 绝对地址直接交给 Taro。
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* const Network = createMicroappClient({ platformChannel: 'ext' })
|
|
11
|
+
* const response = await Network.request({ url: '/api/products', method: 'GET' })
|
|
12
|
+
* ```
|
|
13
|
+
* @ai-intent 创建绑定默认 Taro 实例的普通小程序 Network。
|
|
14
|
+
* @ai-when 业务代码需要统一调用普通小程序的 request、uploadFile、downloadFile 或 streamSse 时。
|
|
15
|
+
* @ai-avoid 不要在页面中直接调用 Taro.request,也不要传入 OpenCard 的 taro 实例。
|
|
16
|
+
* @ai-example const Network = createMicroappClient({ platformChannel: 'ext' })
|
|
17
|
+
*/
|
|
18
|
+
export function createMicroappClient(options = {}) {
|
|
19
|
+
return createMicroappClientWithTaro(Taro, options);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=default-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-client.js","sourceRoot":"","sources":["../../src/runtime/default-client.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,cAAc,CAAA;AAC/B,OAAO,EACL,oBAAoB,IAAI,4BAA4B,GAErD,MAAM,UAAU,CAAA;AAEjB;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,oBAAoB,CAClC,UAAuC,EAAE;IAEzC,OAAO,4BAA4B,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;AACpD,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { IframeTaroRuntime } from '../internal/runtime/iframe-auth/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* @desc 同步普通小程序 iframe 身份并返回监听清理函数。
|
|
4
|
+
* @params {IframeTaroRuntime | null | undefined} taro 当前 Taro 运行时实例。
|
|
5
|
+
* @return {() => void} 清理身份消息监听的函数。
|
|
6
|
+
* @example const cleanup = syncIframeAuth(Taro)
|
|
7
|
+
*/
|
|
8
|
+
export declare const syncIframeAuth: (taro: IframeTaroRuntime | null | undefined) => (() => void) | undefined;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { clearDouyinLoginAuth } from './douyin-login-request.js';
|
|
2
|
+
import { subscribeIframeAuth } from '../internal/runtime/iframe-auth/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* @desc 同步普通小程序 iframe 身份并返回监听清理函数。
|
|
5
|
+
* @params {IframeTaroRuntime | null | undefined} taro 当前 Taro 运行时实例。
|
|
6
|
+
* @return {() => void} 清理身份消息监听的函数。
|
|
7
|
+
* @example const cleanup = syncIframeAuth(Taro)
|
|
8
|
+
*/
|
|
9
|
+
export const syncIframeAuth = (taro) => subscribeIframeAuth(taro, clearDouyinLoginAuth);
|
|
10
|
+
//# sourceMappingURL=default-iframe-auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-iframe-auth.js","sourceRoot":"","sources":["../../src/runtime/default-iframe-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAE3E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,IAA0C,EAC1C,EAAE,CAAC,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import Taro from "@tarojs/taro";
|
|
2
|
+
export declare const isDouyinMiniProgram: () => boolean;
|
|
3
|
+
export declare const isDouyinPreviewEnv: () => boolean;
|
|
4
|
+
export declare const isDouyinTestEnv: () => boolean;
|
|
5
|
+
export declare const getDouyinCloud: () => DouyinCloudInstance | null;
|
|
6
|
+
export declare const canUseDouyinContainer: () => boolean;
|
|
7
|
+
export declare const requestByDouyinContainer: (option: Taro.request.Option<any, any>) => ReturnType<typeof Taro.request>;
|
|
8
|
+
export declare const isWebPreviewEnv: () => boolean;
|
|
9
|
+
export declare const requestSSEByDouyinContainer: (option: Taro.request.Option<any, any>) => Promise<EventSourceTask>;
|
|
10
|
+
export declare const uploadByDouyinContainer: (option: Taro.uploadFile.Option) => Taro.RequestTask<unknown>;
|
|
11
|
+
export declare const downloadByDouyinContainer: (option: Taro.downloadFile.Option) => Taro.RequestTask<unknown> | Taro.DownloadTask.DownloadTaskPromise;
|