@lofder/dsers-mcp-product 1.0.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 +21 -0
- package/README.md +210 -0
- package/dist/dsers/account.d.ts +17 -0
- package/dist/dsers/account.d.ts.map +1 -0
- package/dist/dsers/account.js +37 -0
- package/dist/dsers/account.js.map +1 -0
- package/dist/dsers/auth.d.ts +14 -0
- package/dist/dsers/auth.d.ts.map +1 -0
- package/dist/dsers/auth.js +87 -0
- package/dist/dsers/auth.js.map +1 -0
- package/dist/dsers/client.d.ts +21 -0
- package/dist/dsers/client.d.ts.map +1 -0
- package/dist/dsers/client.js +78 -0
- package/dist/dsers/client.js.map +1 -0
- package/dist/dsers/config.d.ts +9 -0
- package/dist/dsers/config.d.ts.map +1 -0
- package/dist/dsers/config.js +28 -0
- package/dist/dsers/config.js.map +1 -0
- package/dist/dsers/product.d.ts +42 -0
- package/dist/dsers/product.d.ts.map +1 -0
- package/dist/dsers/product.js +289 -0
- package/dist/dsers/product.js.map +1 -0
- package/dist/dsers/settings.d.ts +30 -0
- package/dist/dsers/settings.d.ts.map +1 -0
- package/dist/dsers/settings.js +63 -0
- package/dist/dsers/settings.js.map +1 -0
- package/dist/error-map.d.ts +7 -0
- package/dist/error-map.d.ts.map +1 -0
- package/dist/error-map.js +231 -0
- package/dist/error-map.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +43 -0
- package/dist/index.js.map +1 -0
- package/dist/job-store-memory.d.ts +8 -0
- package/dist/job-store-memory.d.ts.map +1 -0
- package/dist/job-store-memory.js +60 -0
- package/dist/job-store-memory.js.map +1 -0
- package/dist/job-store.d.ts +14 -0
- package/dist/job-store.d.ts.map +1 -0
- package/dist/job-store.js +31 -0
- package/dist/job-store.js.map +1 -0
- package/dist/provider.d.ts +53 -0
- package/dist/provider.d.ts.map +1 -0
- package/dist/provider.js +1298 -0
- package/dist/provider.js.map +1 -0
- package/dist/push-options.d.ts +7 -0
- package/dist/push-options.d.ts.map +1 -0
- package/dist/push-options.js +158 -0
- package/dist/push-options.js.map +1 -0
- package/dist/resolver.d.ts +8 -0
- package/dist/resolver.d.ts.map +1 -0
- package/dist/resolver.js +81 -0
- package/dist/resolver.js.map +1 -0
- package/dist/rules.d.ts +14 -0
- package/dist/rules.d.ts.map +1 -0
- package/dist/rules.js +332 -0
- package/dist/rules.js.map +1 -0
- package/dist/service.d.ts +22 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/service.js +461 -0
- package/dist/service.js.map +1 -0
- package/dist/tools.d.ts +4 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +402 -0
- package/dist/tools.js.map +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-map.js","sourceRoot":"","sources":["../src/error-map.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import type { ServerContext } from "@smithery/sdk";
|
|
4
|
+
interface DsersConfig {
|
|
5
|
+
dsers_email: string;
|
|
6
|
+
dsers_password: string;
|
|
7
|
+
dsers_env?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const configSchema: z.ZodObject<{
|
|
10
|
+
dsers_email: z.ZodString;
|
|
11
|
+
dsers_password: z.ZodString;
|
|
12
|
+
dsers_env: z.ZodDefault<z.ZodString>;
|
|
13
|
+
}, z.core.$strip>;
|
|
14
|
+
export default function createServer(context: ServerContext<DsersConfig>): McpServer;
|
|
15
|
+
export declare function createSandboxServer(): McpServer;
|
|
16
|
+
export {};
|
|
17
|
+
//# 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,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAWnD,UAAU,WAAW;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,YAAY;;;;iBAWvB,CAAC;AAEH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,WAAW,CAAC,aAmBvE;AAED,wBAAgB,mBAAmB,cAQlC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { resolve } from "node:path";
|
|
4
|
+
import { configFromParams } from "./dsers/config.js";
|
|
5
|
+
import { buildProvider } from "./provider.js";
|
|
6
|
+
import { ImportFlowService } from "./service.js";
|
|
7
|
+
import { FileJobStore } from "./job-store.js";
|
|
8
|
+
import { registerTools } from "./tools.js";
|
|
9
|
+
const STATE_DIR = process.env.IMPORT_MCP_STATE_DIR ??
|
|
10
|
+
resolve(process.cwd?.() ?? "/tmp", ".state");
|
|
11
|
+
export const configSchema = z.object({
|
|
12
|
+
dsers_email: z
|
|
13
|
+
.string()
|
|
14
|
+
.describe("DSers account email address used for authentication"),
|
|
15
|
+
dsers_password: z.string().describe("DSers account password"),
|
|
16
|
+
dsers_env: z
|
|
17
|
+
.string()
|
|
18
|
+
.default("production")
|
|
19
|
+
.describe("API environment. Use 'production' for live operations, 'test' for sandbox."),
|
|
20
|
+
});
|
|
21
|
+
export default function createServer(context) {
|
|
22
|
+
const cfg = context.config;
|
|
23
|
+
const dsersConfig = configFromParams(cfg.dsers_email, cfg.dsers_password, cfg.dsers_env ?? "production");
|
|
24
|
+
const provider = buildProvider(dsersConfig);
|
|
25
|
+
const store = new FileJobStore(STATE_DIR);
|
|
26
|
+
const service = new ImportFlowService(provider, store);
|
|
27
|
+
const server = new McpServer({
|
|
28
|
+
name: "dsers-mcp-product",
|
|
29
|
+
version: "1.0.0",
|
|
30
|
+
});
|
|
31
|
+
registerTools(server, service);
|
|
32
|
+
return server;
|
|
33
|
+
}
|
|
34
|
+
export function createSandboxServer() {
|
|
35
|
+
return createServer({
|
|
36
|
+
config: {
|
|
37
|
+
dsers_email: "sandbox@example.com",
|
|
38
|
+
dsers_password: "sandbox",
|
|
39
|
+
dsers_env: "production",
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,SAAS,GACb,OAAO,CAAC,GAAG,CAAC,oBAAoB;IAChC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,MAAM,EAAE,QAAQ,CAAC,CAAC;AAQ/C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,CAAC,qDAAqD,CAAC;IAClE,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IAC7D,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,OAAO,CAAC,YAAY,CAAC;SACrB,QAAQ,CACP,4EAA4E,CAC7E;CACJ,CAAC,CAAC;AAEH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,OAAmC;IACtE,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAC3B,MAAM,WAAW,GAAG,gBAAgB,CAClC,GAAG,CAAC,WAAW,EACf,GAAG,CAAC,cAAc,EAClB,GAAG,CAAC,SAAS,IAAI,YAAY,CAC9B,CAAC;IACF,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAEvD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE/B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,YAAY,CAAC;QAClB,MAAM,EAAE;YACN,WAAW,EAAE,qBAAqB;YAClC,cAAc,EAAE,SAAS;YACzB,SAAS,EAAE,YAAY;SACxB;KAC4B,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { JobStore } from "./job-store.js";
|
|
2
|
+
export declare class MemoryJobStore implements JobStore {
|
|
3
|
+
private readonly _data;
|
|
4
|
+
create(payload: Record<string, any>): string;
|
|
5
|
+
save(jobId: string, payload: Record<string, any>): void;
|
|
6
|
+
load(jobId: string): Record<string, any>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=job-store-memory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job-store-memory.d.ts","sourceRoot":"","sources":["../src/job-store-memory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAkB/C,qBAAa,cAAe,YAAW,QAAQ;IAC7C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IAEnD,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;IAkB5C,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAIvD,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAmBzC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { deflateSync, inflateSync } from "node:zlib";
|
|
3
|
+
function encodeState(state) {
|
|
4
|
+
const json = JSON.stringify(state);
|
|
5
|
+
const compressed = deflateSync(Buffer.from(json, "utf-8"));
|
|
6
|
+
return compressed.toString("base64url");
|
|
7
|
+
}
|
|
8
|
+
function decodeState(token) {
|
|
9
|
+
try {
|
|
10
|
+
const buf = Buffer.from(token, "base64url");
|
|
11
|
+
const json = inflateSync(buf).toString("utf-8");
|
|
12
|
+
return JSON.parse(json);
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export class MemoryJobStore {
|
|
19
|
+
_data = new Map();
|
|
20
|
+
create(payload) {
|
|
21
|
+
const uuid = randomUUID();
|
|
22
|
+
const compact = {
|
|
23
|
+
provider_state: payload.provider_state,
|
|
24
|
+
effective_rules_snapshot: payload.effective_rules_snapshot,
|
|
25
|
+
rules: payload.rules,
|
|
26
|
+
source_url: payload.source_url,
|
|
27
|
+
resolved_source_url: payload.resolved_source_url,
|
|
28
|
+
source_hint: payload.source_hint,
|
|
29
|
+
country: payload.country,
|
|
30
|
+
visibility_mode: payload.visibility_mode,
|
|
31
|
+
};
|
|
32
|
+
const token = encodeState(compact);
|
|
33
|
+
const jobId = `${uuid}.${token}`;
|
|
34
|
+
this.save(jobId, payload);
|
|
35
|
+
return jobId;
|
|
36
|
+
}
|
|
37
|
+
save(jobId, payload) {
|
|
38
|
+
this._data.set(jobId, JSON.stringify(payload));
|
|
39
|
+
}
|
|
40
|
+
load(jobId) {
|
|
41
|
+
const raw = this._data.get(jobId);
|
|
42
|
+
if (raw)
|
|
43
|
+
return JSON.parse(raw);
|
|
44
|
+
const dotIdx = jobId.indexOf(".");
|
|
45
|
+
if (dotIdx < 0)
|
|
46
|
+
throw new Error(`Unknown job_id: ${jobId}`);
|
|
47
|
+
const token = jobId.slice(dotIdx + 1);
|
|
48
|
+
const state = decodeState(token);
|
|
49
|
+
if (!state)
|
|
50
|
+
throw new Error(`Unknown job_id: ${jobId}`);
|
|
51
|
+
return {
|
|
52
|
+
...state,
|
|
53
|
+
status: "recovered",
|
|
54
|
+
job_id: jobId,
|
|
55
|
+
created_at: new Date().toISOString(),
|
|
56
|
+
_recovered: true,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=job-store-memory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job-store-memory.js","sourceRoot":"","sources":["../src/job-store-memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGrD,SAAS,WAAW,CAAC,KAA0B;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3D,OAAO,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAwB,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,OAAO,cAAc;IACR,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEnD,MAAM,CAAC,OAA4B;QACjC,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG;YACd,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,wBAAwB,EAAE,OAAO,CAAC,wBAAwB;YAC1D,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;YAChD,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,eAAe,EAAE,OAAO,CAAC,eAAe;SACzC,CAAC;QACF,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,KAAa,EAAE,OAA4B;QAC9C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,CAAC,KAAa;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,GAAG;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAwB,CAAC;QAEvD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,KAAK,EAAE,CAAC,CAAC;QAE5D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,KAAK,EAAE,CAAC,CAAC;QAExD,OAAO;YACL,GAAG,KAAK;YACR,MAAM,EAAE,WAAW;YACnB,MAAM,EAAE,KAAK;YACb,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,UAAU,EAAE,IAAI;SACjB,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface JobStore {
|
|
2
|
+
create(payload: Record<string, any>): string;
|
|
3
|
+
save(jobId: string, payload: Record<string, any>): void;
|
|
4
|
+
load(jobId: string): Record<string, any>;
|
|
5
|
+
}
|
|
6
|
+
export declare class FileJobStore implements JobStore {
|
|
7
|
+
private readonly _root;
|
|
8
|
+
constructor(root: string);
|
|
9
|
+
create(payload: Record<string, any>): string;
|
|
10
|
+
save(jobId: string, payload: Record<string, any>): void;
|
|
11
|
+
load(jobId: string): Record<string, any>;
|
|
12
|
+
private _jobPath;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=job-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job-store.d.ts","sourceRoot":"","sources":["../src/job-store.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,QAAQ;IACvB,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC;IAC7C,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACxD,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC1C;AAED,qBAAa,YAAa,YAAW,QAAQ;IAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;gBAEnB,IAAI,EAAE,MAAM;IAKxB,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;IAM5C,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IASvD,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IASxC,OAAO,CAAC,QAAQ;CAGjB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { randomUUID } from "node:crypto";
|
|
4
|
+
export class FileJobStore {
|
|
5
|
+
_root;
|
|
6
|
+
constructor(root) {
|
|
7
|
+
this._root = path.resolve(root);
|
|
8
|
+
fs.mkdirSync(this._root, { recursive: true });
|
|
9
|
+
}
|
|
10
|
+
create(payload) {
|
|
11
|
+
const jobId = randomUUID();
|
|
12
|
+
this.save(jobId, payload);
|
|
13
|
+
return jobId;
|
|
14
|
+
}
|
|
15
|
+
save(jobId, payload) {
|
|
16
|
+
const filePath = this._jobPath(jobId);
|
|
17
|
+
fs.writeFileSync(filePath, JSON.stringify(payload, null, 2), "utf-8");
|
|
18
|
+
}
|
|
19
|
+
load(jobId) {
|
|
20
|
+
const filePath = this._jobPath(jobId);
|
|
21
|
+
if (!fs.existsSync(filePath)) {
|
|
22
|
+
throw new Error(`Unknown job_id: ${jobId}`);
|
|
23
|
+
}
|
|
24
|
+
const content = fs.readFileSync(filePath, "utf-8");
|
|
25
|
+
return JSON.parse(content);
|
|
26
|
+
}
|
|
27
|
+
_jobPath(jobId) {
|
|
28
|
+
return path.join(this._root, `${jobId}.json`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=job-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job-store.js","sourceRoot":"","sources":["../src/job-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAQzC,MAAM,OAAO,YAAY;IACN,KAAK,CAAS;IAE/B,YAAY,IAAY;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,OAA4B;QACjC,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,KAAa,EAAE,OAA4B;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtC,EAAE,CAAC,aAAa,CACd,QAAQ,EACR,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAChC,OAAO,CACR,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,KAAa;QAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,mBAAmB,KAAK,EAAE,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAwB,CAAC;IACpD,CAAC;IAEO,QAAQ,CAAC,KAAa;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC;IAChD,CAAC;CACF"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { DSersConfig } from "./dsers/config.js";
|
|
2
|
+
export interface ImportProvider {
|
|
3
|
+
name: string;
|
|
4
|
+
getRuleCapabilities(targetStore?: string): Promise<Record<string, any>>;
|
|
5
|
+
prepareCandidate(sourceUrl: string, sourceHint: string, country: string): Promise<Record<string, any>>;
|
|
6
|
+
commitCandidate(providerState: Record<string, any>, draft: Record<string, any>, targetStore: string | null, visibilityMode: string, pushOptions: Record<string, any>): Promise<Record<string, any>>;
|
|
7
|
+
fetchImportItem(importItemId: string): Promise<Record<string, any>>;
|
|
8
|
+
normalizeForRecovery(itemPayload: Record<string, any>): [Record<string, any>, Record<string, any>];
|
|
9
|
+
}
|
|
10
|
+
export declare class PrivateDsersProvider implements ImportProvider {
|
|
11
|
+
name: string;
|
|
12
|
+
private client;
|
|
13
|
+
private aliexpressAppId;
|
|
14
|
+
private alibabaAppId;
|
|
15
|
+
constructor(config?: DSersConfig);
|
|
16
|
+
getRuleCapabilities(targetStore?: string): Promise<Record<string, any>>;
|
|
17
|
+
prepareCandidate(sourceUrl: string, sourceHint: string, country: string): Promise<Record<string, any>>;
|
|
18
|
+
commitCandidate(providerState: Record<string, any>, draft: Record<string, any>, targetStore: string | null, visibilityMode: string, pushOptions: Record<string, any>): Promise<Record<string, any>>;
|
|
19
|
+
private raiseIfError;
|
|
20
|
+
private buildPushArguments;
|
|
21
|
+
private refreshProductShippingInfo;
|
|
22
|
+
private attachShippingTemplateLogistics;
|
|
23
|
+
private attachStoreShippingProfile;
|
|
24
|
+
private getTemplateServiceIds;
|
|
25
|
+
private getPushLogisticsIds;
|
|
26
|
+
private extractProductShipServiceIds;
|
|
27
|
+
private extractShippingTemplateServiceIds;
|
|
28
|
+
private pickFreightServiceIds;
|
|
29
|
+
private extractServiceIdsFromCountryEntry;
|
|
30
|
+
private hasReason;
|
|
31
|
+
private listStores;
|
|
32
|
+
private fetchShopifyProfiles;
|
|
33
|
+
private enrichShopifyProfiles;
|
|
34
|
+
private resolveStore;
|
|
35
|
+
private extractSupplyProductId;
|
|
36
|
+
private extractAfTraceId;
|
|
37
|
+
private cleanProductUrl;
|
|
38
|
+
private resolveSourceIdentifier;
|
|
39
|
+
private extractImportItemId;
|
|
40
|
+
private recoverImportItemId;
|
|
41
|
+
private normalizeImportItem;
|
|
42
|
+
private denormalizeVariants;
|
|
43
|
+
private denormalizeSupply;
|
|
44
|
+
private denormalizeImages;
|
|
45
|
+
private computePriceBounds;
|
|
46
|
+
private extractPushState;
|
|
47
|
+
private extractPushError;
|
|
48
|
+
private findFirstValueByKeys;
|
|
49
|
+
fetchImportItem(importItemId: string): Promise<Record<string, any>>;
|
|
50
|
+
normalizeForRecovery(itemPayload: Record<string, any>): [Record<string, any>, Record<string, any>];
|
|
51
|
+
}
|
|
52
|
+
export declare function buildProvider(config?: DSersConfig): ImportProvider;
|
|
53
|
+
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
|