@congminh1254/shopee-sdk 1.5.3 → 1.5.5

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.
@@ -0,0 +1,350 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import ts from "typescript";
4
+ const FALLBACK_ENDPOINT_PATH_REGEX = /["`]\/([a-z0-9-]+)\/([a-z0-9_]+)["`]/g;
5
+ const METHOD_POST_REGEX = /method\s*:\s*["']POST["']/;
6
+ function collectFieldNames(nodes = []) {
7
+ const fields = new Set();
8
+ const stack = [...nodes];
9
+ while (stack.length > 0) {
10
+ const node = stack.pop();
11
+ if (!node) {
12
+ continue;
13
+ }
14
+ if (node.name) {
15
+ fields.add(node.name);
16
+ }
17
+ if (node.children && node.children.length > 0) {
18
+ stack.push(...node.children);
19
+ }
20
+ }
21
+ return fields;
22
+ }
23
+ function getTypeName(node) {
24
+ if (!node || !ts.isTypeReferenceNode(node)) {
25
+ return undefined;
26
+ }
27
+ if (ts.isIdentifier(node.typeName)) {
28
+ return node.typeName.text;
29
+ }
30
+ if (ts.isQualifiedName(node.typeName)) {
31
+ return node.typeName.right.text;
32
+ }
33
+ return undefined;
34
+ }
35
+ function getPropertyName(name) {
36
+ if (ts.isIdentifier(name) || ts.isStringLiteral(name) || ts.isNumericLiteral(name)) {
37
+ return name.text;
38
+ }
39
+ return undefined;
40
+ }
41
+ function parseSdkEndpoints(managerSource) {
42
+ const endpoints = new Map();
43
+ const endpointTypes = new Map();
44
+ const source = ts.createSourceFile("manager.ts", managerSource, ts.ScriptTarget.Latest, true);
45
+ const visit = (node) => {
46
+ if (ts.isMethodDeclaration(node) && node.body) {
47
+ const firstParam = node.parameters[0];
48
+ const firstParamName = firstParam && ts.isIdentifier(firstParam.name) ? firstParam.name.text : undefined;
49
+ const requestTypeName = firstParam ? getTypeName(firstParam.type) : undefined;
50
+ let responseTypeName;
51
+ if (node.type && ts.isTypeReferenceNode(node.type) && ts.isIdentifier(node.type.typeName)) {
52
+ const returnTypeName = node.type.typeName.text;
53
+ if (returnTypeName === "Promise" && node.type.typeArguments?.length === 1) {
54
+ responseTypeName = getTypeName(node.type.typeArguments[0]);
55
+ }
56
+ }
57
+ const visitMethodNode = (methodNode) => {
58
+ if (ts.isCallExpression(methodNode) &&
59
+ ts.isPropertyAccessExpression(methodNode.expression) &&
60
+ methodNode.expression.name.text === "fetch" &&
61
+ ts.isIdentifier(methodNode.expression.expression) &&
62
+ methodNode.expression.expression.text === "ShopeeFetch") {
63
+ const endpointArg = methodNode.arguments[1];
64
+ if (endpointArg &&
65
+ (ts.isStringLiteral(endpointArg) || ts.isNoSubstitutionTemplateLiteral(endpointArg))) {
66
+ const endpointMatch = /^\/([a-z0-9-]+)\/([a-z0-9_]+)$/.exec(endpointArg.text);
67
+ if (endpointMatch) {
68
+ const endpoint = `${endpointMatch[1]}.${endpointMatch[2]}`;
69
+ const optionsArg = methodNode.arguments[2];
70
+ let method = "GET";
71
+ let hasPayloadProperty = false;
72
+ if (optionsArg && ts.isObjectLiteralExpression(optionsArg)) {
73
+ for (const property of optionsArg.properties) {
74
+ if (ts.isPropertyAssignment(property)) {
75
+ const name = getPropertyName(property.name);
76
+ if (name === "method") {
77
+ if (ts.isStringLiteral(property.initializer) ||
78
+ ts.isNoSubstitutionTemplateLiteral(property.initializer)) {
79
+ method = property.initializer.text === "POST" ? "POST" : "GET";
80
+ }
81
+ else {
82
+ const methodText = property.initializer.getText(source);
83
+ method = METHOD_POST_REGEX.test(methodText) ? "POST" : "GET";
84
+ }
85
+ }
86
+ if (name === "params" || name === "body") {
87
+ hasPayloadProperty = true;
88
+ }
89
+ }
90
+ }
91
+ }
92
+ let endpointRequestType = hasPayloadProperty
93
+ ? requestTypeName
94
+ : undefined;
95
+ if (optionsArg && ts.isObjectLiteralExpression(optionsArg) && firstParamName) {
96
+ for (const property of optionsArg.properties) {
97
+ if (ts.isPropertyAssignment(property)) {
98
+ const name = getPropertyName(property.name);
99
+ if ((name === "params" || name === "body") &&
100
+ ts.isIdentifier(property.initializer) &&
101
+ property.initializer.text === firstParamName) {
102
+ endpointRequestType = requestTypeName;
103
+ }
104
+ }
105
+ else if (ts.isShorthandPropertyAssignment(property)) {
106
+ const name = property.name.text;
107
+ if ((name === "params" || name === "body") && name === firstParamName) {
108
+ endpointRequestType = requestTypeName;
109
+ }
110
+ }
111
+ }
112
+ }
113
+ const fetchResponseTypeName = methodNode.typeArguments && methodNode.typeArguments.length === 1
114
+ ? getTypeName(methodNode.typeArguments[0])
115
+ : undefined;
116
+ endpoints.set(endpoint, method);
117
+ endpointTypes.set(endpoint, {
118
+ requestTypeName: endpointRequestType,
119
+ responseTypeName: fetchResponseTypeName ?? responseTypeName,
120
+ });
121
+ }
122
+ }
123
+ }
124
+ ts.forEachChild(methodNode, visitMethodNode);
125
+ };
126
+ visitMethodNode(node.body);
127
+ }
128
+ ts.forEachChild(node, visit);
129
+ };
130
+ visit(source);
131
+ for (const match of managerSource.matchAll(FALLBACK_ENDPOINT_PATH_REGEX)) {
132
+ const endpoint = `${match[1]}.${match[2]}`;
133
+ if (!endpoints.has(endpoint)) {
134
+ endpoints.set(endpoint, "GET");
135
+ }
136
+ }
137
+ return [...endpoints.entries()].map(([endpoint, method]) => ({
138
+ endpoint,
139
+ method,
140
+ requestTypeName: endpointTypes.get(endpoint)?.requestTypeName,
141
+ responseTypeName: endpointTypes.get(endpoint)?.responseTypeName,
142
+ }));
143
+ }
144
+ function collectTypeFieldNames(typeName, schemaSource) {
145
+ if (!typeName) {
146
+ return null;
147
+ }
148
+ const declarations = new Map();
149
+ const visit = (node) => {
150
+ if ((ts.isInterfaceDeclaration(node) || ts.isTypeAliasDeclaration(node)) && node.name) {
151
+ declarations.set(node.name.text, node);
152
+ }
153
+ ts.forEachChild(node, visit);
154
+ };
155
+ visit(schemaSource);
156
+ const collected = new Set();
157
+ const visited = new Set();
158
+ const visitTypeNode = (node) => {
159
+ if (!node) {
160
+ return;
161
+ }
162
+ if (ts.isTypeLiteralNode(node)) {
163
+ for (const member of node.members) {
164
+ if (ts.isPropertySignature(member) && member.name) {
165
+ const fieldName = getPropertyName(member.name);
166
+ if (fieldName) {
167
+ collected.add(fieldName);
168
+ }
169
+ visitTypeNode(member.type);
170
+ }
171
+ }
172
+ return;
173
+ }
174
+ if (ts.isTypeReferenceNode(node)) {
175
+ const refName = getTypeName(node);
176
+ if (refName && declarations.has(refName) && !visited.has(refName)) {
177
+ visited.add(refName);
178
+ visitDeclaration(declarations.get(refName));
179
+ }
180
+ node.typeArguments?.forEach((arg) => visitTypeNode(arg));
181
+ return;
182
+ }
183
+ if (ts.isArrayTypeNode(node)) {
184
+ visitTypeNode(node.elementType);
185
+ return;
186
+ }
187
+ if (ts.isUnionTypeNode(node) || ts.isIntersectionTypeNode(node)) {
188
+ node.types.forEach((type) => visitTypeNode(type));
189
+ return;
190
+ }
191
+ if (ts.isParenthesizedTypeNode(node)) {
192
+ visitTypeNode(node.type);
193
+ return;
194
+ }
195
+ if (ts.isTupleTypeNode(node)) {
196
+ node.elements.forEach((element) => visitTypeNode(element));
197
+ return;
198
+ }
199
+ if (ts.isTypeOperatorNode(node)) {
200
+ visitTypeNode(node.type);
201
+ return;
202
+ }
203
+ if (ts.isConditionalTypeNode(node)) {
204
+ visitTypeNode(node.checkType);
205
+ visitTypeNode(node.extendsType);
206
+ visitTypeNode(node.trueType);
207
+ visitTypeNode(node.falseType);
208
+ return;
209
+ }
210
+ if (ts.isIndexedAccessTypeNode(node)) {
211
+ visitTypeNode(node.objectType);
212
+ visitTypeNode(node.indexType);
213
+ return;
214
+ }
215
+ if (ts.isMappedTypeNode(node)) {
216
+ visitTypeNode(node.type);
217
+ visitTypeNode(node.typeParameter?.constraint);
218
+ return;
219
+ }
220
+ };
221
+ const visitDeclaration = (declaration) => {
222
+ if (!declaration) {
223
+ return;
224
+ }
225
+ if (ts.isTypeAliasDeclaration(declaration)) {
226
+ visitTypeNode(declaration.type);
227
+ return;
228
+ }
229
+ for (const member of declaration.members) {
230
+ if (ts.isPropertySignature(member) && member.name) {
231
+ const fieldName = getPropertyName(member.name);
232
+ if (fieldName) {
233
+ collected.add(fieldName);
234
+ }
235
+ visitTypeNode(member.type);
236
+ }
237
+ }
238
+ declaration.heritageClauses?.forEach((heritageClause) => {
239
+ heritageClause.types.forEach((heritageType) => {
240
+ visitTypeNode(heritageType);
241
+ });
242
+ });
243
+ };
244
+ const rootDeclaration = declarations.get(typeName);
245
+ if (!rootDeclaration) {
246
+ return null;
247
+ }
248
+ visited.add(typeName);
249
+ visitDeclaration(rootDeclaration);
250
+ return collected;
251
+ }
252
+ export function auditRepositorySpecs(repoRoot) {
253
+ const schemasDir = path.join(repoRoot, "schemas");
254
+ const managersDir = path.join(repoRoot, "src", "managers");
255
+ const sdkSchemasDir = path.join(repoRoot, "src", "schemas");
256
+ const schemaFiles = fs
257
+ .readdirSync(schemasDir)
258
+ .filter((file) => file.startsWith("v2.") && file.endsWith(".json"));
259
+ const managerFiles = fs.readdirSync(managersDir).filter((file) => file.endsWith(".manager.ts"));
260
+ const sdkEndpoints = new Map();
261
+ for (const managerFile of managerFiles) {
262
+ const managerSource = fs.readFileSync(path.join(managersDir, managerFile), "utf-8");
263
+ for (const endpointDef of parseSdkEndpoints(managerSource)) {
264
+ sdkEndpoints.set(endpointDef.endpoint, endpointDef);
265
+ }
266
+ }
267
+ const missingEndpoints = [];
268
+ const uncoveredSdkEndpoints = [];
269
+ const methodMismatches = [];
270
+ const endpointTypeGaps = [];
271
+ const missingRequestFields = [];
272
+ const missingResponseFields = [];
273
+ const specEndpoints = new Set();
274
+ for (const schemaFile of schemaFiles) {
275
+ const match = /^v2\.([a-z0-9-]+)\.([a-z0-9_]+)\.json$/.exec(schemaFile);
276
+ if (!match) {
277
+ continue;
278
+ }
279
+ const moduleName = match[1];
280
+ const endpointName = match[2];
281
+ const endpointKey = `${moduleName}.${endpointName}`;
282
+ specEndpoints.add(endpointKey);
283
+ const rawSchema = fs.readFileSync(path.join(schemasDir, schemaFile), "utf-8");
284
+ const schema = JSON.parse(rawSchema);
285
+ const sdkEndpointDef = sdkEndpoints.get(endpointKey);
286
+ if (!sdkEndpointDef) {
287
+ missingEndpoints.push(endpointKey);
288
+ continue;
289
+ }
290
+ else if (schema.method === 1 && sdkEndpointDef.method !== "POST") {
291
+ methodMismatches.push({
292
+ endpoint: endpointKey,
293
+ expectedMethod: "POST",
294
+ actualMethod: sdkEndpointDef.method,
295
+ });
296
+ }
297
+ else if (schema.method === 2 && sdkEndpointDef.method !== "GET") {
298
+ methodMismatches.push({
299
+ endpoint: endpointKey,
300
+ expectedMethod: "GET",
301
+ actualMethod: sdkEndpointDef.method,
302
+ });
303
+ }
304
+ const sdkSchemaPath = path.join(sdkSchemasDir, `${moduleName}.ts`);
305
+ if (!fs.existsSync(sdkSchemaPath)) {
306
+ continue;
307
+ }
308
+ const sdkSchemaSource = fs.readFileSync(sdkSchemaPath, "utf-8");
309
+ const sdkSchemaAst = ts.createSourceFile(sdkSchemaPath, sdkSchemaSource, ts.ScriptTarget.Latest, true);
310
+ const requestFields = new Set((schema.params?.request_params ?? []).map((item) => item.name).filter(Boolean));
311
+ const responseRoot = (schema.params?.response ?? []).find((item) => item.name === "response");
312
+ const responseFields = collectFieldNames(responseRoot?.children ?? []);
313
+ const requestTypeFields = collectTypeFieldNames(sdkEndpointDef.requestTypeName, sdkSchemaAst);
314
+ const responseTypeFields = collectTypeFieldNames(sdkEndpointDef.responseTypeName, sdkSchemaAst);
315
+ const missingTypeKinds = [];
316
+ if (requestFields.size > 0 && !requestTypeFields) {
317
+ missingTypeKinds.push("request");
318
+ }
319
+ if (responseFields.size > 0 && !responseTypeFields) {
320
+ missingTypeKinds.push("response");
321
+ }
322
+ if (missingTypeKinds.length > 0) {
323
+ endpointTypeGaps.push({ endpoint: endpointKey, missing: missingTypeKinds });
324
+ }
325
+ const missingReq = [...requestFields].filter((fieldName) => !requestTypeFields?.has(fieldName));
326
+ if (missingReq.length > 0) {
327
+ missingRequestFields.push({ endpoint: endpointKey, fields: missingReq });
328
+ }
329
+ const missingRes = [...responseFields].filter((fieldName) => !responseTypeFields?.has(fieldName));
330
+ if (missingRes.length > 0) {
331
+ missingResponseFields.push({ endpoint: endpointKey, fields: missingRes });
332
+ }
333
+ }
334
+ for (const sdkEndpoint of sdkEndpoints.keys()) {
335
+ if (!specEndpoints.has(sdkEndpoint)) {
336
+ uncoveredSdkEndpoints.push(sdkEndpoint);
337
+ }
338
+ }
339
+ return {
340
+ totalSpecs: schemaFiles.length,
341
+ totalSdkEndpoints: sdkEndpoints.size,
342
+ missingEndpoints: missingEndpoints.sort(),
343
+ uncoveredSdkEndpoints: uncoveredSdkEndpoints.sort(),
344
+ methodMismatches: methodMismatches.sort((a, b) => a.endpoint.localeCompare(b.endpoint)),
345
+ endpointTypeGaps: endpointTypeGaps.sort((a, b) => a.endpoint.localeCompare(b.endpoint)),
346
+ missingRequestFields: missingRequestFields.sort((a, b) => a.endpoint.localeCompare(b.endpoint)),
347
+ missingResponseFields: missingResponseFields.sort((a, b) => a.endpoint.localeCompare(b.endpoint)),
348
+ };
349
+ }
350
+ //# sourceMappingURL=spec-audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-audit.js","sourceRoot":"","sources":["../../src/utils/spec-audit.ts"],"names":[],"mappings":"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"}
package/lib/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "1.5.3";
1
+ export declare const SDK_VERSION = "1.5.5";
package/lib/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  // This file is auto-generated during the build process. Do not edit manually.
2
- export const SDK_VERSION = "1.5.3";
2
+ export const SDK_VERSION = "1.5.5";
3
3
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@congminh1254/shopee-sdk",
3
- "version": "1.5.3",
3
+ "version": "1.5.5",
4
4
  "description": "Shopee SDK maintaining by community",
5
5
  "type": "module",
6
6
  "main": "./lib/sdk.js",
@@ -45,7 +45,8 @@
45
45
  "format:check": "prettier --check \"src/**/*.ts\"",
46
46
  "lint": "eslint \"src/**/*.ts\"",
47
47
  "prepare": "husky install",
48
- "fetch-schemas": "tsx schemas/fetch.ts"
48
+ "fetch-schemas": "tsx schemas/fetch.ts",
49
+ "audit:specs": "tsx scripts/audit-specs.ts"
49
50
  },
50
51
  "publishConfig": {
51
52
  "access": "public"