@qzsy/pdd-platform-sdk 0.1.0

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 qzsy
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,49 @@
1
+ import type { PddHttpClient } from "@qzsy/pdd-core";
2
+ import type { PlatformAccessTokenResult, PlatformAuthorizeUrlQuery, PlatformCreatePopAuthTokenQuery, PlatformCreateTokenQuery, PlatformPopAuthTokenResult, PlatformRefreshTokenQuery } from "../types/auth.ts";
3
+ /**
4
+ * 开放平台授权:拼授权地址、用 code 换票、刷新令牌,以及网关换票。
5
+ */
6
+ export declare class PlatformAuthApi {
7
+ #private;
8
+ /**
9
+ * @param http 共享的拼多多 HTTP 客户端
10
+ */
11
+ constructor(http: PddHttpClient);
12
+ /**
13
+ * 拼装商家或多多客的 OAuth 授权地址。
14
+ *
15
+ * 对应官方入口:`https://mms.pinduoduo.com/open.html`(以及 H5 / 多多进宝授权页)
16
+ *
17
+ * @param query 回调地址与可选的授权页类型、state
18
+ * @returns 完整授权 URL
19
+ */
20
+ buildAuthorizeUrl(query: PlatformAuthorizeUrlQuery): string;
21
+ /**
22
+ * 用授权回调中的 `code` 换取 `access_token`。
23
+ *
24
+ * 对应官方接口:`POST https://open-api.pinduoduo.com/oauth/token`
25
+ *
26
+ * @param query 授权码
27
+ * @returns 令牌与授权主体信息
28
+ */
29
+ createToken(query: PlatformCreateTokenQuery): Promise<PlatformAccessTokenResult>;
30
+ /**
31
+ * 用 `refresh_token` 刷新 `access_token`。
32
+ *
33
+ * 对应官方接口:`POST https://open-api.pinduoduo.com/oauth/token`
34
+ *
35
+ * @param query 刷新令牌
36
+ * @returns 新的令牌与授权主体信息
37
+ */
38
+ refreshToken(query: PlatformRefreshTokenQuery): Promise<PlatformAccessTokenResult>;
39
+ /**
40
+ * 用授权码通过开放平台网关换取 `access_token`。
41
+ *
42
+ * 对应官方接口:`pdd.pop.auth.token.create`
43
+ *
44
+ * @param query 授权码
45
+ * @returns 令牌与授权主体信息
46
+ */
47
+ createPopAuthToken(query: PlatformCreatePopAuthTokenQuery): Promise<PlatformPopAuthTokenResult>;
48
+ }
49
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/apis/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EACV,yBAAyB,EACzB,yBAAyB,EAEzB,+BAA+B,EAC/B,wBAAwB,EACxB,0BAA0B,EAC1B,yBAAyB,EAC1B,MAAM,kBAAkB,CAAC;AAW1B;;GAEG;AACH,qBAAa,eAAe;;IAG1B;;OAEG;IACH,YAAY,IAAI,EAAE,aAAa,EAE9B;IAED;;;;;;;OAOG;IACH,iBAAiB,CAAC,KAAK,EAAE,yBAAyB,GAAG,MAAM,CAS1D;IAED;;;;;;;OAOG;IACH,WAAW,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAK/E;IAED;;;;;;;OAOG;IACH,YAAY,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAKjF;IAED;;;;;;;OAOG;IACH,kBAAkB,CAAC,KAAK,EAAE,+BAA+B,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAM9F;CACF"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * 各授权页的正式环境入口。
3
+ */
4
+ const AUTHORIZE_URLS = {
5
+ web: "https://mms.pinduoduo.com/open.html",
6
+ h5: "https://mai.pinduoduo.com/h5-login.html",
7
+ ddk: "https://jinbao.pinduoduo.com/open.html",
8
+ };
9
+ /**
10
+ * 开放平台授权:拼授权地址、用 code 换票、刷新令牌,以及网关换票。
11
+ */
12
+ export class PlatformAuthApi {
13
+ #http;
14
+ /**
15
+ * @param http 共享的拼多多 HTTP 客户端
16
+ */
17
+ constructor(http) {
18
+ this.#http = http;
19
+ }
20
+ /**
21
+ * 拼装商家或多多客的 OAuth 授权地址。
22
+ *
23
+ * 对应官方入口:`https://mms.pinduoduo.com/open.html`(以及 H5 / 多多进宝授权页)
24
+ *
25
+ * @param query 回调地址与可选的授权页类型、state
26
+ * @returns 完整授权 URL
27
+ */
28
+ buildAuthorizeUrl(query) {
29
+ const url = new URL(AUTHORIZE_URLS[query.view ?? "web"]);
30
+ url.searchParams.set("response_type", "code");
31
+ url.searchParams.set("client_id", this.#http.clientId);
32
+ url.searchParams.set("redirect_uri", query.redirectUri);
33
+ if (query.state !== undefined && query.state !== "") {
34
+ url.searchParams.set("state", query.state);
35
+ }
36
+ return url.toString();
37
+ }
38
+ /**
39
+ * 用授权回调中的 `code` 换取 `access_token`。
40
+ *
41
+ * 对应官方接口:`POST https://open-api.pinduoduo.com/oauth/token`
42
+ *
43
+ * @param query 授权码
44
+ * @returns 令牌与授权主体信息
45
+ */
46
+ createToken(query) {
47
+ return this.#http.oauthToken({
48
+ grant_type: "authorization_code",
49
+ code: query.code,
50
+ });
51
+ }
52
+ /**
53
+ * 用 `refresh_token` 刷新 `access_token`。
54
+ *
55
+ * 对应官方接口:`POST https://open-api.pinduoduo.com/oauth/token`
56
+ *
57
+ * @param query 刷新令牌
58
+ * @returns 新的令牌与授权主体信息
59
+ */
60
+ refreshToken(query) {
61
+ return this.#http.oauthToken({
62
+ grant_type: "refresh_token",
63
+ refresh_token: query.refreshToken,
64
+ });
65
+ }
66
+ /**
67
+ * 用授权码通过开放平台网关换取 `access_token`。
68
+ *
69
+ * 对应官方接口:`pdd.pop.auth.token.create`
70
+ *
71
+ * @param query 授权码
72
+ * @returns 令牌与授权主体信息
73
+ */
74
+ createPopAuthToken(query) {
75
+ return this.#http.call("pdd.pop.auth.token.create", { code: query.code }, { auth: "none" });
76
+ }
77
+ }
78
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/apis/auth.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,MAAM,cAAc,GAA0C;IAC5D,GAAG,EAAE,qCAAqC;IAC1C,EAAE,EAAE,yCAAyC;IAC7C,GAAG,EAAE,wCAAwC;CAC9C,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,eAAe;IACjB,KAAK,CAAgB;IAE9B;;OAEG;IACH,YAAY,IAAmB;QAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED;;;;;;;OAOG;IACH,iBAAiB,CAAC,KAAgC;QAChD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC;QACzD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QAC9C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QACxD,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE,EAAE,CAAC;YACpD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAED;;;;;;;OAOG;IACH,WAAW,CAAC,KAA+B;QACzC,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YAC3B,UAAU,EAAE,oBAAoB;YAChC,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,YAAY,CAAC,KAAgC;QAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YAC3B,UAAU,EAAE,eAAe;YAC3B,aAAa,EAAE,KAAK,CAAC,YAAY;SAClC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,kBAAkB,CAAC,KAAsC;QACvD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CACpB,2BAA2B,EAC3B,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EACpB,EAAE,IAAI,EAAE,MAAM,EAAE,CACjB,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,41 @@
1
+ import type { PddHttpClient } from "@qzsy/pdd-core";
2
+ import type { PlatformPopAuthTokenResult } from "../types/auth.ts";
3
+ import type { PlatformMallGetBindTicketQuery, PlatformMallGetBindTicketResult, PlatformMallGetBindTokenQuery, PlatformMallReportBindRelationQuery, PlatformMallReportBindRelationResult } from "../types/mall.ts";
4
+ /**
5
+ * 开放平台店铺关联:上报存量关系、取 ticket、换被关联店铺令牌。
6
+ */
7
+ export declare class PlatformMallApi {
8
+ #private;
9
+ /**
10
+ * @param http 共享的拼多多 HTTP 客户端
11
+ */
12
+ constructor(http: PddHttpClient);
13
+ /**
14
+ * ISV 上报存量店铺关联关系。
15
+ *
16
+ * 对应官方接口:`pdd.pop.mall.bind.relation.report`
17
+ *
18
+ * @param query 关联时间、类型、三方用户与双方店铺
19
+ * @returns 是否上报成功
20
+ */
21
+ reportBindRelation(query: PlatformMallReportBindRelationQuery): Promise<PlatformMallReportBindRelationResult>;
22
+ /**
23
+ * 获取发起方店铺身份 ticket,用于生成店铺关联链接。
24
+ *
25
+ * 对应官方接口:`pdd.pop.mall.bind.ticket.get`
26
+ *
27
+ * @param query 三方用户 id 与可选店群
28
+ * @returns 关联 ticket
29
+ */
30
+ getBindTicket(query: PlatformMallGetBindTicketQuery): Promise<PlatformMallGetBindTicketResult>;
31
+ /**
32
+ * 用被关联店铺同意后的关联码换取该店 `access_token`。
33
+ *
34
+ * 对应官方接口:`pdd.pop.mall.bind.token.get`
35
+ *
36
+ * @param query 关联码、三方用户 id 与可选店群
37
+ * @returns 被关联店铺的令牌
38
+ */
39
+ getBindToken(query: PlatformMallGetBindTokenQuery): Promise<PlatformPopAuthTokenResult>;
40
+ }
41
+ //# sourceMappingURL=mall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mall.d.ts","sourceRoot":"","sources":["../../src/apis/mall.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,KAAK,EACV,8BAA8B,EAC9B,+BAA+B,EAC/B,6BAA6B,EAC7B,mCAAmC,EACnC,oCAAoC,EACrC,MAAM,kBAAkB,CAAC;AAE1B;;GAEG;AACH,qBAAa,eAAe;;IAG1B;;OAEG;IACH,YAAY,IAAI,EAAE,aAAa,EAE9B;IAED;;;;;;;OAOG;IACH,kBAAkB,CAChB,KAAK,EAAE,mCAAmC,GACzC,OAAO,CAAC,oCAAoC,CAAC,CAM/C;IAED;;;;;;;OAOG;IACH,aAAa,CAAC,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAM7F;IAED;;;;;;;OAOG;IACH,YAAY,CAAC,KAAK,EAAE,6BAA6B,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAKtF;CACF"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * 开放平台店铺关联:上报存量关系、取 ticket、换被关联店铺令牌。
3
+ */
4
+ export class PlatformMallApi {
5
+ #http;
6
+ /**
7
+ * @param http 共享的拼多多 HTTP 客户端
8
+ */
9
+ constructor(http) {
10
+ this.#http = http;
11
+ }
12
+ /**
13
+ * ISV 上报存量店铺关联关系。
14
+ *
15
+ * 对应官方接口:`pdd.pop.mall.bind.relation.report`
16
+ *
17
+ * @param query 关联时间、类型、三方用户与双方店铺
18
+ * @returns 是否上报成功
19
+ */
20
+ reportBindRelation(query) {
21
+ return this.#http.call("pdd.pop.mall.bind.relation.report", query, { auth: "none", responseKey: "response" });
22
+ }
23
+ /**
24
+ * 获取发起方店铺身份 ticket,用于生成店铺关联链接。
25
+ *
26
+ * 对应官方接口:`pdd.pop.mall.bind.ticket.get`
27
+ *
28
+ * @param query 三方用户 id 与可选店群
29
+ * @returns 关联 ticket
30
+ */
31
+ getBindTicket(query) {
32
+ return this.#http.call("pdd.pop.mall.bind.ticket.get", query, { auth: "access_token", responseKey: "response" });
33
+ }
34
+ /**
35
+ * 用被关联店铺同意后的关联码换取该店 `access_token`。
36
+ *
37
+ * 对应官方接口:`pdd.pop.mall.bind.token.get`
38
+ *
39
+ * @param query 关联码、三方用户 id 与可选店群
40
+ * @returns 被关联店铺的令牌
41
+ */
42
+ getBindToken(query) {
43
+ return this.#http.call("pdd.pop.mall.bind.token.get", query, {
44
+ auth: "access_token",
45
+ responseKey: "pop_auth_token_create_response",
46
+ });
47
+ }
48
+ }
49
+ //# sourceMappingURL=mall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mall.js","sourceRoot":"","sources":["../../src/apis/mall.ts"],"names":[],"mappings":"AAUA;;GAEG;AACH,MAAM,OAAO,eAAe;IACjB,KAAK,CAAgB;IAE9B;;OAEG;IACH,YAAY,IAAmB;QAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED;;;;;;;OAOG;IACH,kBAAkB,CAChB,KAA0C;QAE1C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CACpB,mCAAmC,EACnC,KAAK,EACL,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,CAC1C,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,aAAa,CAAC,KAAqC;QACjD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CACpB,8BAA8B,EAC9B,KAAK,EACL,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,CAClD,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,YAAY,CAAC,KAAoC;QAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAA6B,6BAA6B,EAAE,KAAK,EAAE;YACvF,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,gCAAgC;SAC9C,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,21 @@
1
+ import type { PddHttpClient } from "@qzsy/pdd-core";
2
+ import type { PlatformTimeGetResult } from "../types/util.ts";
3
+ /**
4
+ * 开放平台通用接口:服务器时间等不需要店铺授权的方法。
5
+ */
6
+ export declare class PlatformUtilApi {
7
+ #private;
8
+ /**
9
+ * @param http 共享的拼多多 HTTP 客户端
10
+ */
11
+ constructor(http: PddHttpClient);
12
+ /**
13
+ * 获取拼多多 POP 服务器时间,可用于校对本地时钟。
14
+ *
15
+ * 对应官方接口:`pdd.time.get`
16
+ *
17
+ * @returns 服务器时间
18
+ */
19
+ getTime(): Promise<PlatformTimeGetResult>;
20
+ }
21
+ //# sourceMappingURL=util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/apis/util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE9D;;GAEG;AACH,qBAAa,eAAe;;IAG1B;;OAEG;IACH,YAAY,IAAI,EAAE,aAAa,EAE9B;IAED;;;;;;OAMG;IACH,OAAO,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAExC;CACF"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * 开放平台通用接口:服务器时间等不需要店铺授权的方法。
3
+ */
4
+ export class PlatformUtilApi {
5
+ #http;
6
+ /**
7
+ * @param http 共享的拼多多 HTTP 客户端
8
+ */
9
+ constructor(http) {
10
+ this.#http = http;
11
+ }
12
+ /**
13
+ * 获取拼多多 POP 服务器时间,可用于校对本地时钟。
14
+ *
15
+ * 对应官方接口:`pdd.time.get`
16
+ *
17
+ * @returns 服务器时间
18
+ */
19
+ getTime() {
20
+ return this.#http.call("pdd.time.get", {}, { auth: "none" });
21
+ }
22
+ }
23
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/apis/util.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,OAAO,eAAe;IACjB,KAAK,CAAgB;IAE9B;;OAEG;IACH,YAAY,IAAmB;QAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED;;;;;;OAMG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAwB,cAAc,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACtF,CAAC;CACF"}
@@ -0,0 +1,43 @@
1
+ import { PddHttpClient, type PddAuthorizerCaller, type PddClientCaller, type PddClientOptions } from "@qzsy/pdd-core";
2
+ import { PlatformAuthApi } from "./apis/auth.ts";
3
+ import { PlatformMallApi } from "./apis/mall.ts";
4
+ import { PlatformUtilApi } from "./apis/util.ts";
5
+ /**
6
+ * 拼多多开放平台客户端。
7
+ *
8
+ * 负责应用级 OAuth、店铺关联与系统时间,不封装商家或多多进宝业务接口。
9
+ * 换到的 `access_token` 交给 `ShopClient` / `DdkClient` 使用。
10
+ */
11
+ export declare class PlatformClient {
12
+ /**
13
+ * 底层 HTTP 客户端,需要调用尚未封装的接口时可直接使用。
14
+ */
15
+ readonly http: PddHttpClient;
16
+ /**
17
+ * 授权与换票。
18
+ */
19
+ readonly auth: PlatformAuthApi;
20
+ /**
21
+ * 店铺关联。
22
+ */
23
+ readonly mall: PlatformMallApi;
24
+ /**
25
+ * 通用接口,例如服务器时间。
26
+ */
27
+ readonly util: PlatformUtilApi;
28
+ /**
29
+ * 以调用方注入的店铺令牌访问需要授权的开放平台接口。
30
+ *
31
+ * 业务接口与自己持有 `accessToken` 时相同,只是令牌改由 `getAccessToken` 提供。
32
+ *
33
+ * @param caller 应用凭据、授权主体与取令牌函数
34
+ * @param options 可选的令牌存储、超时与 `fetch` 注入
35
+ */
36
+ static forAuthorizer(caller: Omit<PddAuthorizerCaller, "callMode">, options?: PddClientOptions): PlatformClient;
37
+ /**
38
+ * @param credentials 应用 `clientId` / `clientSecret`,以及可选的店铺令牌(关联接口需要)
39
+ * @param options 可选的地址、超时与 `fetch` 注入
40
+ */
41
+ constructor(credentials: PddClientCaller, options?: PddClientOptions);
42
+ }
43
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;;;;GAKG;AACH,qBAAa,cAAc;IACzB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAE/B;;;;;;;OAOG;IACH,MAAM,CAAC,aAAa,CAClB,MAAM,EAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,EAC7C,OAAO,CAAC,EAAE,gBAAgB,GACzB,cAAc,CAEhB;IAED;;;OAGG;IACH,YAAY,WAAW,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,gBAAgB,EASnE;CACF"}
package/dist/client.js ADDED
@@ -0,0 +1,54 @@
1
+ import { PddHttpClient, } from "@qzsy/pdd-core";
2
+ import { PlatformAuthApi } from "./apis/auth.js";
3
+ import { PlatformMallApi } from "./apis/mall.js";
4
+ import { PlatformUtilApi } from "./apis/util.js";
5
+ /**
6
+ * 拼多多开放平台客户端。
7
+ *
8
+ * 负责应用级 OAuth、店铺关联与系统时间,不封装商家或多多进宝业务接口。
9
+ * 换到的 `access_token` 交给 `ShopClient` / `DdkClient` 使用。
10
+ */
11
+ export class PlatformClient {
12
+ /**
13
+ * 底层 HTTP 客户端,需要调用尚未封装的接口时可直接使用。
14
+ */
15
+ http;
16
+ /**
17
+ * 授权与换票。
18
+ */
19
+ auth;
20
+ /**
21
+ * 店铺关联。
22
+ */
23
+ mall;
24
+ /**
25
+ * 通用接口,例如服务器时间。
26
+ */
27
+ util;
28
+ /**
29
+ * 以调用方注入的店铺令牌访问需要授权的开放平台接口。
30
+ *
31
+ * 业务接口与自己持有 `accessToken` 时相同,只是令牌改由 `getAccessToken` 提供。
32
+ *
33
+ * @param caller 应用凭据、授权主体与取令牌函数
34
+ * @param options 可选的令牌存储、超时与 `fetch` 注入
35
+ */
36
+ static forAuthorizer(caller, options) {
37
+ return new PlatformClient({ ...caller, callMode: "authorizer" }, options);
38
+ }
39
+ /**
40
+ * @param credentials 应用 `clientId` / `clientSecret`,以及可选的店铺令牌(关联接口需要)
41
+ * @param options 可选的地址、超时与 `fetch` 注入
42
+ */
43
+ constructor(credentials, options) {
44
+ this.http = new PddHttpClient(credentials, {
45
+ userAgent: "@qzsy/pdd-platform-sdk",
46
+ tokenKind: "none",
47
+ ...options,
48
+ });
49
+ this.auth = new PlatformAuthApi(this.http);
50
+ this.mall = new PlatformMallApi(this.http);
51
+ this.util = new PlatformUtilApi(this.http);
52
+ }
53
+ }
54
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,GAId,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,OAAO,cAAc;IACzB;;OAEG;IACM,IAAI,CAAgB;IAE7B;;OAEG;IACM,IAAI,CAAkB;IAE/B;;OAEG;IACM,IAAI,CAAkB;IAE/B;;OAEG;IACM,IAAI,CAAkB;IAE/B;;;;;;;OAOG;IACH,MAAM,CAAC,aAAa,CAClB,MAA6C,EAC7C,OAA0B;QAE1B,OAAO,IAAI,cAAc,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC;IAED;;;OAGG;IACH,YAAY,WAA4B,EAAE,OAA0B;QAClE,IAAI,CAAC,IAAI,GAAG,IAAI,aAAa,CAAC,WAAW,EAAE;YACzC,SAAS,EAAE,wBAAwB;YACnC,SAAS,EAAE,MAAM;YACjB,GAAG,OAAO;SACX,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;CACF"}
@@ -0,0 +1,11 @@
1
+ export { PlatformClient } from "./client.ts";
2
+ export { PlatformAuthApi } from "./apis/auth.ts";
3
+ export { PlatformMallApi } from "./apis/mall.ts";
4
+ export { PlatformUtilApi } from "./apis/util.ts";
5
+ export type { PlatformAccessTokenResult, PlatformAuthorizeUrlQuery, PlatformAuthorizeView, PlatformCreatePopAuthTokenQuery, PlatformCreateTokenQuery, PlatformPopAuthTokenResult, PlatformRefreshTokenQuery, } from "./types/auth.ts";
6
+ export type { PlatformMallGetBindTicketQuery, PlatformMallGetBindTicketResult, PlatformMallGetBindTokenQuery, PlatformMallReportBindRelationQuery, PlatformMallReportBindRelationResult, } from "./types/mall.ts";
7
+ export type { PlatformTimeGetResult } from "./types/util.ts";
8
+ export { MemoryTokenStore, PddApiError, PddError, PddHttpError, } from "@qzsy/pdd-core";
9
+ export type { PddAppCredentials, PddAuthorizerCaller, PddCallMode, PddClientCaller, PddClientOptions, PddErrorContext, PddMerchantCaller, TokenStore, } from "@qzsy/pdd-core";
10
+ export { isAuthorizerCaller } from "@qzsy/pdd-core";
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,YAAY,EACV,yBAAyB,EACzB,yBAAyB,EACzB,qBAAqB,EACrB,+BAA+B,EAC/B,wBAAwB,EACxB,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,8BAA8B,EAC9B,+BAA+B,EAC/B,6BAA6B,EAC7B,mCAAmC,EACnC,oCAAoC,GACrC,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE7D,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,UAAU,GACX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,7 @@
1
+ export { PlatformClient } from "./client.js";
2
+ export { PlatformAuthApi } from "./apis/auth.js";
3
+ export { PlatformMallApi } from "./apis/mall.js";
4
+ export { PlatformUtilApi } from "./apis/util.js";
5
+ export { MemoryTokenStore, PddApiError, PddError, PddHttpError, } from "@qzsy/pdd-core";
6
+ export { isAuthorizerCaller } from "@qzsy/pdd-core";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAmBjD,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,YAAY,GACb,MAAM,gBAAgB,CAAC;AAWxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,157 @@
1
+ /**
2
+ * 拼多多 OAuth 授权页类型。
3
+ *
4
+ * - `web`:商家后台 PC 授权
5
+ * - `h5`:移动端授权
6
+ * - `ddk`:多多进宝授权
7
+ */
8
+ export type PlatformAuthorizeView = "web" | "h5" | "ddk";
9
+ /**
10
+ * 拼装商家 / 多多客授权地址时的参数。
11
+ */
12
+ export interface PlatformAuthorizeUrlQuery {
13
+ /**
14
+ * 授权完成后面的回调地址。必须与开放平台应用配置一致。
15
+ */
16
+ redirectUri: string;
17
+ /**
18
+ * 授权页类型。默认 `web`。
19
+ */
20
+ view?: PlatformAuthorizeView;
21
+ /**
22
+ * 回传状态,授权完成后原样带回,用于防 CSRF。
23
+ */
24
+ state?: string;
25
+ }
26
+ /**
27
+ * `POST https://open-api.pinduoduo.com/oauth/token` 换票成功响应。
28
+ */
29
+ export interface PlatformAccessTokenResult {
30
+ /**
31
+ * 店铺或授权主体的接口调用凭证。
32
+ */
33
+ access_token: string;
34
+ /**
35
+ * 凭证有效时间,单位:秒。文档示例为 86400。
36
+ */
37
+ expires_in: number;
38
+ /**
39
+ * 刷新令牌。
40
+ */
41
+ refresh_token: string;
42
+ /**
43
+ * 授权接口列表。
44
+ */
45
+ scope?: string[];
46
+ /**
47
+ * 授权主体标识。
48
+ */
49
+ owner_id?: string;
50
+ /**
51
+ * 授权主体名称。
52
+ */
53
+ owner_name?: string;
54
+ }
55
+ /**
56
+ * 用授权码换票的参数。
57
+ */
58
+ export interface PlatformCreateTokenQuery {
59
+ /**
60
+ * 授权回调拿到的 `code`。
61
+ */
62
+ code: string;
63
+ }
64
+ /**
65
+ * 刷新令牌的参数。
66
+ */
67
+ export interface PlatformRefreshTokenQuery {
68
+ /**
69
+ * 刷新令牌。
70
+ */
71
+ refreshToken: string;
72
+ }
73
+ /**
74
+ * 通过网关 `pdd.pop.auth.token.create` 换票的参数。
75
+ */
76
+ export interface PlatformCreatePopAuthTokenQuery {
77
+ /**
78
+ * 授权code,grantType==authorization_code 时需要。
79
+ */
80
+ code: string;
81
+ }
82
+ /**
83
+ * 网关换票成功响应。
84
+ *
85
+ * 字段与开放平台「获取Access Token」`pdd.pop.auth.token.create` 对齐。
86
+ */
87
+ export interface PlatformPopAuthTokenResult {
88
+ /**
89
+ * access_token。
90
+ */
91
+ access_token?: string;
92
+ /**
93
+ * access_token过期时间点。
94
+ */
95
+ expires_at?: number;
96
+ /**
97
+ * access_token过期时间段,10(表示10秒后过期)。
98
+ */
99
+ expires_in?: number;
100
+ /**
101
+ * 商家店铺id。
102
+ */
103
+ owner_id?: string;
104
+ /**
105
+ * 商家账号名称。
106
+ */
107
+ owner_name?: string;
108
+ /**
109
+ * r1级别API或字段的访问过期时间点。
110
+ */
111
+ r1_expires_at?: number;
112
+ /**
113
+ * r1级别API或字段的访问过期时间;10(表示10秒后过期)。
114
+ */
115
+ r1_expires_in?: number;
116
+ /**
117
+ * r2级别API或字段的访问过期时间点。
118
+ */
119
+ r2_expires_at?: number;
120
+ /**
121
+ * r2级别API或字段的访问过期时间;10(表示10秒后过期)。
122
+ */
123
+ r2_expires_in?: number;
124
+ /**
125
+ * refresh token,可用来刷新access_token。
126
+ */
127
+ refresh_token?: string;
128
+ /**
129
+ * Refresh token过期时间点。
130
+ */
131
+ refresh_token_expires_at?: number;
132
+ /**
133
+ * refresh_token过期时间段,10表示10秒后过期。
134
+ */
135
+ refresh_token_expires_in?: number;
136
+ /**
137
+ * 接口列表。
138
+ */
139
+ scope?: string[];
140
+ /**
141
+ * w1级别API或字段的访问过期时间点。
142
+ */
143
+ w1_expires_at?: number;
144
+ /**
145
+ * w1级别API或字段的访问过期时间;10(表示10秒后过期)。
146
+ */
147
+ w1_expires_in?: number;
148
+ /**
149
+ * w2级别API或字段的访问过期时间点。
150
+ */
151
+ w2_expires_at?: number;
152
+ /**
153
+ * w2级别API或字段的访问过期时间;10(表示10秒后过期)。
154
+ */
155
+ w2_expires_in?: number;
156
+ }
157
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/types/auth.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,IAAI,CAAC,EAAE,qBAAqB,CAAC;IAE7B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAElC;;OAEG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAElC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAEjB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/types/auth.ts"],"names":[],"mappings":""}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * 上报存量店铺关联关系的请求参数。
3
+ *
4
+ * 字段与开放平台「店铺关联关系上报」`pdd.pop.mall.bind.relation.report` 对齐。
5
+ */
6
+ export interface PlatformMallReportBindRelationQuery {
7
+ /**
8
+ * 关联时间。
9
+ */
10
+ bind_at: number;
11
+ /**
12
+ * 关联类型:0-关联码关联,1-授权关联。
13
+ */
14
+ bind_type: number;
15
+ /**
16
+ * 三方应用的用户id。
17
+ */
18
+ external_uid: string;
19
+ /**
20
+ * 被关联方的店铺id。
21
+ */
22
+ invitee_mall_id: number;
23
+ /**
24
+ * 发起关联方的店铺id。
25
+ */
26
+ inviter_mall_id: number;
27
+ /**
28
+ * 当前店群包含的拼多多店铺id。
29
+ */
30
+ mall_list?: number[];
31
+ }
32
+ /**
33
+ * 上报存量店铺关联关系的结果。
34
+ */
35
+ export interface PlatformMallReportBindRelationResult {
36
+ /**
37
+ * 是否上报成功。
38
+ */
39
+ success?: boolean;
40
+ }
41
+ /**
42
+ * 获取店铺关联 ticket 的请求参数。
43
+ *
44
+ * 字段与开放平台「获取店铺关联ticket」`pdd.pop.mall.bind.ticket.get` 对齐。
45
+ */
46
+ export interface PlatformMallGetBindTicketQuery {
47
+ /**
48
+ * 三方应用的用户id。
49
+ */
50
+ external_uid: string;
51
+ /**
52
+ * 当前店群包含的拼多多店铺id。
53
+ */
54
+ mall_list?: number[];
55
+ }
56
+ /**
57
+ * 获取店铺关联 ticket 的结果。
58
+ */
59
+ export interface PlatformMallGetBindTicketResult {
60
+ /**
61
+ * ticket。
62
+ */
63
+ ticket?: string;
64
+ }
65
+ /**
66
+ * 用关联码换取被关联店铺令牌的请求参数。
67
+ *
68
+ * 字段与开放平台「获取被关联店铺Access Token」`pdd.pop.mall.bind.token.get` 对齐。
69
+ */
70
+ export interface PlatformMallGetBindTokenQuery {
71
+ /**
72
+ * 被关联店铺的关联code。
73
+ */
74
+ bind_code: string;
75
+ /**
76
+ * 三方应用的用户id。
77
+ */
78
+ external_uid: string;
79
+ /**
80
+ * 当前店群包含的拼多多店铺id。
81
+ */
82
+ mall_list?: number[];
83
+ }
84
+ //# sourceMappingURL=mall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mall.d.ts","sourceRoot":"","sources":["../../src/types/mall.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,mCAAmC;IAClD;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,oCAAoC;IACnD;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,8BAA8B;IAC7C;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mall.js","sourceRoot":"","sources":["../../src/types/mall.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * 获取拼多多服务器时间的成功响应。
3
+ *
4
+ * 字段与开放平台「获取拼多多系统时间」`pdd.time.get` 对齐。
5
+ */
6
+ export interface PlatformTimeGetResult {
7
+ /**
8
+ * 拼多多系统时间。
9
+ */
10
+ time: string;
11
+ }
12
+ //# sourceMappingURL=util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/types/util.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/types/util.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@qzsy/pdd-platform-sdk",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "description": "Pinduoduo open-platform OAuth server SDK",
6
+ "license": "MIT",
7
+ "author": "qzsy",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/qzsy/pdd-sdk.git",
11
+ "directory": "packages/pdd-platform"
12
+ },
13
+ "exports": {
14
+ ".": {
15
+ "types": "./src/index.ts",
16
+ "bun": "./src/index.ts",
17
+ "import": "./src/index.ts",
18
+ "default": "./src/index.ts"
19
+ }
20
+ },
21
+ "main": "./src/index.ts",
22
+ "types": "./src/index.ts",
23
+ "files": ["dist"],
24
+ "publishConfig": {
25
+ "access": "public",
26
+ "exports": {
27
+ ".": {
28
+ "types": "./dist/index.d.ts",
29
+ "import": "./dist/index.js",
30
+ "default": "./dist/index.js"
31
+ }
32
+ },
33
+ "main": "./dist/index.js",
34
+ "types": "./dist/index.d.ts"
35
+ },
36
+ "scripts": {
37
+ "build": "tsc --build",
38
+ "typecheck": "tsc --build --pretty"
39
+ },
40
+ "dependencies": {
41
+ "@qzsy/pdd-core": "0.1.0"
42
+ }
43
+ }