@chenchaolong/plugin-trade-compliance-workbench 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.
Files changed (80) hide show
  1. package/README.md +36 -0
  2. package/dist/index.d.ts +146 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +127 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/lib/constants.d.ts +12 -0
  7. package/dist/lib/constants.d.ts.map +1 -0
  8. package/dist/lib/constants.js +20 -0
  9. package/dist/lib/constants.js.map +1 -0
  10. package/dist/lib/entities/controlled-goods-record.entity.d.ts +17 -0
  11. package/dist/lib/entities/controlled-goods-record.entity.d.ts.map +1 -0
  12. package/dist/lib/entities/controlled-goods-record.entity.js +67 -0
  13. package/dist/lib/entities/controlled-goods-record.entity.js.map +1 -0
  14. package/dist/lib/entities/customs-workbook-generation.entity.d.ts +18 -0
  15. package/dist/lib/entities/customs-workbook-generation.entity.d.ts.map +1 -0
  16. package/dist/lib/entities/customs-workbook-generation.entity.js +71 -0
  17. package/dist/lib/entities/customs-workbook-generation.entity.js.map +1 -0
  18. package/dist/lib/entities/index.d.ts +7 -0
  19. package/dist/lib/entities/index.d.ts.map +1 -0
  20. package/dist/lib/entities/index.js +7 -0
  21. package/dist/lib/entities/index.js.map +1 -0
  22. package/dist/lib/entities/trade-compliance-import-batch.entity.d.ts +16 -0
  23. package/dist/lib/entities/trade-compliance-import-batch.entity.d.ts.map +1 -0
  24. package/dist/lib/entities/trade-compliance-import-batch.entity.js +59 -0
  25. package/dist/lib/entities/trade-compliance-import-batch.entity.js.map +1 -0
  26. package/dist/lib/entities/trade-compliance-review-item.entity.d.ts +22 -0
  27. package/dist/lib/entities/trade-compliance-review-item.entity.d.ts.map +1 -0
  28. package/dist/lib/entities/trade-compliance-review-item.entity.js +83 -0
  29. package/dist/lib/entities/trade-compliance-review-item.entity.js.map +1 -0
  30. package/dist/lib/entities/trade-product.entity.d.ts +27 -0
  31. package/dist/lib/entities/trade-product.entity.d.ts.map +1 -0
  32. package/dist/lib/entities/trade-product.entity.js +104 -0
  33. package/dist/lib/entities/trade-product.entity.js.map +1 -0
  34. package/dist/lib/entities/trade-supplier.entity.d.ts +14 -0
  35. package/dist/lib/entities/trade-supplier.entity.d.ts.map +1 -0
  36. package/dist/lib/entities/trade-supplier.entity.js +54 -0
  37. package/dist/lib/entities/trade-supplier.entity.js.map +1 -0
  38. package/dist/lib/remote-components/trade-compliance-workbench/app.js +49 -0
  39. package/dist/lib/trade-compliance-workbench-view.provider.d.ts +13 -0
  40. package/dist/lib/trade-compliance-workbench-view.provider.d.ts.map +1 -0
  41. package/dist/lib/trade-compliance-workbench-view.provider.js +211 -0
  42. package/dist/lib/trade-compliance-workbench-view.provider.js.map +1 -0
  43. package/dist/lib/trade-compliance-workbench.middleware.d.ts +10 -0
  44. package/dist/lib/trade-compliance-workbench.middleware.d.ts.map +1 -0
  45. package/dist/lib/trade-compliance-workbench.middleware.js +158 -0
  46. package/dist/lib/trade-compliance-workbench.middleware.js.map +1 -0
  47. package/dist/lib/trade-compliance-workbench.plugin.d.ts +8 -0
  48. package/dist/lib/trade-compliance-workbench.plugin.d.ts.map +1 -0
  49. package/dist/lib/trade-compliance-workbench.plugin.js +38 -0
  50. package/dist/lib/trade-compliance-workbench.plugin.js.map +1 -0
  51. package/dist/lib/trade-compliance-workbench.service.d.ts +77 -0
  52. package/dist/lib/trade-compliance-workbench.service.d.ts.map +1 -0
  53. package/dist/lib/trade-compliance-workbench.service.js +170 -0
  54. package/dist/lib/trade-compliance-workbench.service.js.map +1 -0
  55. package/dist/lib/trade-compliance-workbench.templates.d.ts +3 -0
  56. package/dist/lib/trade-compliance-workbench.templates.d.ts.map +1 -0
  57. package/dist/lib/trade-compliance-workbench.templates.js +59 -0
  58. package/dist/lib/trade-compliance-workbench.templates.js.map +1 -0
  59. package/dist/lib/trade-compliance-workbook.d.ts +4 -0
  60. package/dist/lib/trade-compliance-workbook.d.ts.map +1 -0
  61. package/dist/lib/trade-compliance-workbook.js +149 -0
  62. package/dist/lib/trade-compliance-workbook.js.map +1 -0
  63. package/dist/lib/trade-compliance.config.d.ts +227 -0
  64. package/dist/lib/trade-compliance.config.d.ts.map +1 -0
  65. package/dist/lib/trade-compliance.config.js +112 -0
  66. package/dist/lib/trade-compliance.config.js.map +1 -0
  67. package/dist/lib/trade-compliance.enrichment.d.ts +3 -0
  68. package/dist/lib/trade-compliance.enrichment.d.ts.map +1 -0
  69. package/dist/lib/trade-compliance.enrichment.js +41 -0
  70. package/dist/lib/trade-compliance.enrichment.js.map +1 -0
  71. package/dist/lib/trade-compliance.matching.d.ts +3 -0
  72. package/dist/lib/trade-compliance.matching.d.ts.map +1 -0
  73. package/dist/lib/trade-compliance.matching.js +62 -0
  74. package/dist/lib/trade-compliance.matching.js.map +1 -0
  75. package/dist/lib/types.d.ts +131 -0
  76. package/dist/lib/types.d.ts.map +1 -0
  77. package/dist/lib/types.js +2 -0
  78. package/dist/lib/types.js.map +1 -0
  79. package/dist/xpert-trade-compliance-workbench-assistant.yaml +20 -0
  80. package/package.json +82 -0
@@ -0,0 +1,170 @@
1
+ import { __decorate, __metadata, __param } from "tslib";
2
+ import { Injectable, NotFoundException } from '@nestjs/common';
3
+ import { InjectRepository } from '@nestjs/typeorm';
4
+ import { ControlledGoodsRecord, CustomsWorkbookGeneration, TradeComplianceImportBatch, TradeComplianceReviewItem, TradeProduct, TradeSupplier } from './entities/index.js';
5
+ let TradeComplianceWorkbenchService = class TradeComplianceWorkbenchService {
6
+ constructor(batchRepository, reviewItemRepository, controlledGoodsRepository, supplierRepository, productRepository, workbookRepository) {
7
+ this.batchRepository = batchRepository;
8
+ this.reviewItemRepository = reviewItemRepository;
9
+ this.controlledGoodsRepository = controlledGoodsRepository;
10
+ this.supplierRepository = supplierRepository;
11
+ this.productRepository = productRepository;
12
+ this.workbookRepository = workbookRepository;
13
+ }
14
+ async createReviewBatch(scope, input) {
15
+ const batch = await this.batchRepository.save(this.batchRepository.create({
16
+ ...scopeColumns(scope),
17
+ type: input.type,
18
+ status: 'pending_review',
19
+ sourceFileName: input.sourceFileName,
20
+ metadata: input.metadata
21
+ }));
22
+ const items = await this.reviewItemRepository.save(input.items.map((item) => this.reviewItemRepository.create({
23
+ ...scopeColumns(scope),
24
+ batchId: batch.id,
25
+ type: item.type,
26
+ title: item.title,
27
+ reviewStatus: 'pending',
28
+ extractedData: item.extractedData,
29
+ defaultData: item.defaultData,
30
+ fields: item.fields,
31
+ confidence: item.confidence,
32
+ sourceLocation: item.sourceLocation
33
+ })));
34
+ return { batch, items };
35
+ }
36
+ async listReviewItems(scope, batchId) {
37
+ return this.reviewItemRepository.find({
38
+ where: {
39
+ ...scopeWhere(scope),
40
+ ...(batchId ? { batchId } : {})
41
+ }
42
+ });
43
+ }
44
+ async confirmReviewItem(scope, itemId, confirmedData) {
45
+ const item = await this.reviewItemRepository.findOne({
46
+ where: {
47
+ ...scopeWhere(scope),
48
+ id: itemId
49
+ }
50
+ });
51
+ if (!item) {
52
+ throw new NotFoundException(`Review item not found: ${itemId}`);
53
+ }
54
+ item.reviewStatus = 'confirmed';
55
+ item.confirmedData = confirmedData ?? item.confirmedData ?? item.extractedData ?? item.defaultData ?? {};
56
+ return this.reviewItemRepository.save(item);
57
+ }
58
+ async confirmReviewItems(scope, itemIds) {
59
+ const confirmed = [];
60
+ for (const itemId of itemIds) {
61
+ confirmed.push(await this.confirmReviewItem(scope, itemId));
62
+ }
63
+ return confirmed;
64
+ }
65
+ async saveControlledGoods(scope, input) {
66
+ return this.controlledGoodsRepository.save(this.controlledGoodsRepository.create({
67
+ ...scopeColumns(scope),
68
+ productName: input.productName,
69
+ hsCode: input.hsCode,
70
+ keywords: input.keywords,
71
+ controlNote: input.controlNote,
72
+ enabled: input.enabled ?? true,
73
+ sourceFileName: input.sourceFileName,
74
+ sourceLocation: input.sourceLocation
75
+ }));
76
+ }
77
+ async listControlledGoods(scope) {
78
+ return this.controlledGoodsRepository.find({
79
+ where: scopeWhere(scope)
80
+ });
81
+ }
82
+ async saveSupplierProduct(scope, input) {
83
+ const supplier = await this.findOrCreateSupplier(scope, input);
84
+ return this.productRepository.save(this.productRepository.create({
85
+ ...scopeColumns(scope),
86
+ supplierId: supplier.id,
87
+ supplierName: supplier.name,
88
+ productName: input.productName,
89
+ model: input.model,
90
+ description: input.description,
91
+ quantity: input.quantity,
92
+ unit: input.unit,
93
+ taxInclusiveUnitPrice: input.taxInclusiveUnitPrice,
94
+ taxInclusiveTotalAmount: input.taxInclusiveTotalAmount,
95
+ contractHsCode: input.contractHsCode,
96
+ enrichedHsCode: input.enrichedHsCode,
97
+ taxRefundRate: input.taxRefundRate,
98
+ englishName: input.englishName,
99
+ controlledStatus: input.controlledStatus ?? 'unchecked',
100
+ controlNote: input.controlNote,
101
+ matchedControlledGoods: input.matchedControlledGoods
102
+ }));
103
+ }
104
+ async listProducts(scope) {
105
+ return this.productRepository.find({
106
+ where: scopeWhere(scope)
107
+ });
108
+ }
109
+ async recordWorkbookGeneration(scope, input) {
110
+ return this.workbookRepository.save(this.workbookRepository.create({
111
+ ...scopeColumns(scope),
112
+ sourceFileName: input.sourceFileName,
113
+ invoiceNo: input.invoiceNo,
114
+ contractNo: input.contractNo,
115
+ fileName: input.fileName,
116
+ status: 'generated',
117
+ sheetNames: input.sheetNames,
118
+ workbookData: input.workbookData
119
+ }));
120
+ }
121
+ async listWorkbookGenerations(scope) {
122
+ return this.workbookRepository.find({
123
+ where: scopeWhere(scope)
124
+ });
125
+ }
126
+ async findOrCreateSupplier(scope, input) {
127
+ const existing = await this.supplierRepository.findOne({
128
+ where: {
129
+ ...scopeWhere(scope),
130
+ name: input.supplierName
131
+ }
132
+ });
133
+ if (existing) {
134
+ return existing;
135
+ }
136
+ return this.supplierRepository.save(this.supplierRepository.create({
137
+ ...scopeColumns(scope),
138
+ name: input.supplierName,
139
+ creditCode: input.supplierCreditCode,
140
+ address: input.supplierAddress
141
+ }));
142
+ }
143
+ };
144
+ TradeComplianceWorkbenchService = __decorate([
145
+ Injectable(),
146
+ __param(0, InjectRepository(TradeComplianceImportBatch)),
147
+ __param(1, InjectRepository(TradeComplianceReviewItem)),
148
+ __param(2, InjectRepository(ControlledGoodsRecord)),
149
+ __param(3, InjectRepository(TradeSupplier)),
150
+ __param(4, InjectRepository(TradeProduct)),
151
+ __param(5, InjectRepository(CustomsWorkbookGeneration)),
152
+ __metadata("design:paramtypes", [Function, Function, Function, Function, Function, Function])
153
+ ], TradeComplianceWorkbenchService);
154
+ export { TradeComplianceWorkbenchService };
155
+ function scopeColumns(scope) {
156
+ return {
157
+ tenantId: scope.tenantId,
158
+ organizationId: scope.organizationId ?? undefined,
159
+ workspaceId: scope.workspaceId ?? undefined,
160
+ assistantId: scope.assistantId ?? undefined,
161
+ createdById: scope.userId ?? undefined
162
+ };
163
+ }
164
+ function scopeWhere(scope) {
165
+ return {
166
+ tenantId: scope.tenantId,
167
+ organizationId: scope.organizationId ?? undefined
168
+ };
169
+ }
170
+ //# sourceMappingURL=trade-compliance-workbench.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trade-compliance-workbench.service.js","sourceRoot":"","sources":["../../src/lib/trade-compliance-workbench.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { XpertTemplateContribution } from '@xpert-ai/plugin-sdk';
2
+ export declare const tradeComplianceWorkbenchTemplates: XpertTemplateContribution[];
3
+ //# sourceMappingURL=trade-compliance-workbench.templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trade-compliance-workbench.templates.d.ts","sourceRoot":"","sources":["../../src/lib/trade-compliance-workbench.templates.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AA4BrE,eAAO,MAAM,iCAAiC,EAAE,yBAAyB,EAkCxE,CAAA"}
@@ -0,0 +1,59 @@
1
+ import { existsSync, readFileSync } from 'fs';
2
+ import { dirname, join } from 'path';
3
+ import { fileURLToPath } from 'url';
4
+ import { XpertTypeEnum } from '@xpert-ai/contracts';
5
+ import { TRADE_COMPLIANCE_FEATURE, TRADE_COMPLIANCE_PLUGIN_NAME, TRADE_COMPLIANCE_PROVIDER_KEY, TRADE_COMPLIANCE_TEMPLATE_PROVIDER_KEY } from './constants.js';
6
+ const TEMPLATE_KEY = 'trade-compliance-workbench-assistant';
7
+ const TEMPLATE_FILE = 'xpert-trade-compliance-workbench-assistant.yaml';
8
+ const __filename = fileURLToPath(import.meta.url);
9
+ const __dirname = dirname(__filename);
10
+ function readDsl() {
11
+ const candidates = [
12
+ join(__dirname, '..', TEMPLATE_FILE),
13
+ join(__dirname, TEMPLATE_FILE),
14
+ join(process.cwd(), 'community/apps/trade-compliance-workbench/src', TEMPLATE_FILE),
15
+ join(process.cwd(), 'apps/trade-compliance-workbench/src', TEMPLATE_FILE),
16
+ join(process.cwd(), 'dist/apps/trade-compliance-workbench', TEMPLATE_FILE)
17
+ ];
18
+ const templatePath = candidates.find((candidate) => existsSync(candidate));
19
+ if (!templatePath) {
20
+ throw new Error(`Trade Compliance Workbench assistant template not found: ${candidates.join(', ')}`);
21
+ }
22
+ return readFileSync(templatePath, 'utf8');
23
+ }
24
+ export const tradeComplianceWorkbenchTemplates = [
25
+ {
26
+ key: TEMPLATE_KEY,
27
+ name: 'Trade Compliance Workbench Assistant',
28
+ title: '外贸合规工作台助手',
29
+ description: '面向管控商品识别、供应商商品管理和报关资料生成的 data-xpert 业务助手模板。',
30
+ category: 'Trade Compliance',
31
+ type: XpertTypeEnum.Agent,
32
+ targetApps: ['data-xpert'],
33
+ targetAppMeta: {
34
+ 'data-xpert': {
35
+ types: ['business-assistant'],
36
+ capabilities: [TRADE_COMPLIANCE_FEATURE],
37
+ requiredPlugins: [TRADE_COMPLIANCE_PLUGIN_NAME],
38
+ defaultConfig: {
39
+ assistantKind: 'business-assistant',
40
+ businessDomain: 'trade-compliance-workbench',
41
+ managedBy: 'data-xpert',
42
+ viewProvider: TRADE_COMPLIANCE_PROVIDER_KEY
43
+ }
44
+ }
45
+ },
46
+ dslContent: readDsl(),
47
+ order: 60,
48
+ default: false,
49
+ startPrompts: [
50
+ '请解析这份管控商品目录,保存待审核的管控商品条目。',
51
+ '请解析这份供应商合同,识别供应商和商品,并补全海关编码、退税率和英文品名。',
52
+ '请解析这份购销合同,准备生成报关单、Commercial Invoice、Sales Contract 和 Packing List。'
53
+ ],
54
+ releaseNotes: '创建外贸合规工作台业务助手。',
55
+ xpertName: '外贸合规工作台助手',
56
+ providerKey: TRADE_COMPLIANCE_TEMPLATE_PROVIDER_KEY
57
+ }
58
+ ];
59
+ //# sourceMappingURL=trade-compliance-workbench.templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trade-compliance-workbench.templates.js","sourceRoot":"","sources":["../../src/lib/trade-compliance-workbench.templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,6BAA6B,EAC7B,sCAAsC,EACvC,MAAM,gBAAgB,CAAA;AAEvB,MAAM,YAAY,GAAG,sCAAsC,CAAA;AAC3D,MAAM,aAAa,GAAG,iDAAiD,CAAA;AACvE,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACjD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AAErC,SAAS,OAAO;IACd,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,CAAC;QACpC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,+CAA+C,EAAE,aAAa,CAAC;QACnF,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,qCAAqC,EAAE,aAAa,CAAC;QACzE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,sCAAsC,EAAE,aAAa,CAAC;KAC3E,CAAA;IACD,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAA;IAC1E,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,4DAA4D,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACtG,CAAC;IACD,OAAO,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;AAC3C,CAAC;AAED,MAAM,CAAC,MAAM,iCAAiC,GAAgC;IAC5E;QACE,GAAG,EAAE,YAAY;QACjB,IAAI,EAAE,sCAAsC;QAC5C,KAAK,EAAE,WAAW;QAClB,WAAW,EAAE,6CAA6C;QAC1D,QAAQ,EAAE,kBAAkB;QAC5B,IAAI,EAAE,aAAa,CAAC,KAAK;QACzB,UAAU,EAAE,CAAC,YAAY,CAAC;QAC1B,aAAa,EAAE;YACb,YAAY,EAAE;gBACZ,KAAK,EAAE,CAAC,oBAAoB,CAAC;gBAC7B,YAAY,EAAE,CAAC,wBAAwB,CAAC;gBACxC,eAAe,EAAE,CAAC,4BAA4B,CAAC;gBAC/C,aAAa,EAAE;oBACb,aAAa,EAAE,oBAAoB;oBACnC,cAAc,EAAE,4BAA4B;oBAC5C,SAAS,EAAE,YAAY;oBACvB,YAAY,EAAE,6BAA6B;iBAC5C;aACF;SACF;QACD,UAAU,EAAE,OAAO,EAAE;QACrB,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,KAAK;QACd,YAAY,EAAE;YACZ,2BAA2B;YAC3B,uCAAuC;YACvC,qEAAqE;SACtE;QACD,YAAY,EAAE,gBAAgB;QAC9B,SAAS,EAAE,WAAW;QACtB,WAAW,EAAE,sCAAsC;KACvB;CAC/B,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { CustomsWorkbookBufferResult, CustomsWorkbookModel, CustomsWorkbookSource, TradeTemplateDefaults } from './types.js';
2
+ export declare function buildCustomsWorkbookModel(source: CustomsWorkbookSource, defaults: TradeTemplateDefaults): CustomsWorkbookModel;
3
+ export declare function createCustomsWorkbookBuffer(model: CustomsWorkbookModel): CustomsWorkbookBufferResult;
4
+ //# sourceMappingURL=trade-compliance-workbook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trade-compliance-workbook.d.ts","sourceRoot":"","sources":["../../src/lib/trade-compliance-workbook.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,2BAA2B,EAE3B,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,YAAY,CAAA;AAInB,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,qBAAqB,EAC7B,QAAQ,EAAE,qBAAqB,GAC9B,oBAAoB,CAuBtB;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,oBAAoB,GAAG,2BAA2B,CAYpG"}
@@ -0,0 +1,149 @@
1
+ import * as XLSX from 'xlsx';
2
+ const SHEET_NAMES = ['报关单', 'CI', 'Contract', 'PL'];
3
+ export function buildCustomsWorkbookModel(source, defaults) {
4
+ return {
5
+ ...source,
6
+ invoiceNo: source.invoiceNo ?? buildInvoiceNo(),
7
+ sellerEnglishName: source.sellerEnglishName ?? defaults.sellerEnglishName,
8
+ sellerEnglishAddress: source.sellerEnglishAddress ?? defaults.sellerEnglishAddress,
9
+ paymentTerm: source.paymentTerm ?? defaults.paymentTerm,
10
+ tradeTerm: source.tradeTerm ?? defaults.tradeTerm,
11
+ origin: source.origin ?? defaults.origin,
12
+ destination: source.destination ?? defaults.destination,
13
+ packageType: source.packageType ?? defaults.packageType,
14
+ supervisionMode: source.supervisionMode ?? defaults.supervisionMode,
15
+ taxExemptionNature: source.taxExemptionNature ?? defaults.taxExemptionNature,
16
+ domesticSourceLocation: source.domesticSourceLocation ?? defaults.domesticSourceLocation,
17
+ bankBeneficiary: source.bankBeneficiary ?? defaults.bankBeneficiary,
18
+ bankName: source.bankName ?? defaults.bankName,
19
+ bankAddress: source.bankAddress ?? defaults.bankAddress,
20
+ bankAccountNo: source.bankAccountNo ?? defaults.bankAccountNo,
21
+ cnapsCode: source.cnapsCode ?? defaults.cnapsCode,
22
+ swiftCode: source.swiftCode ?? defaults.swiftCode,
23
+ exchangeRate: source.exchangeRate ?? defaults.exchangeRate,
24
+ items: source.items ?? []
25
+ };
26
+ }
27
+ export function createCustomsWorkbookBuffer(model) {
28
+ const workbook = XLSX.utils.book_new();
29
+ XLSX.utils.book_append_sheet(workbook, XLSX.utils.aoa_to_sheet(buildDeclarationRows(model)), SHEET_NAMES[0]);
30
+ XLSX.utils.book_append_sheet(workbook, XLSX.utils.aoa_to_sheet(buildCommercialInvoiceRows(model)), SHEET_NAMES[1]);
31
+ XLSX.utils.book_append_sheet(workbook, XLSX.utils.aoa_to_sheet(buildSalesContractRows(model)), SHEET_NAMES[2]);
32
+ XLSX.utils.book_append_sheet(workbook, XLSX.utils.aoa_to_sheet(buildPackingListRows(model)), SHEET_NAMES[3]);
33
+ return {
34
+ fileName: `${sanitizeFilePart(model.invoiceNo)}-customs-workbook.xlsx`,
35
+ sheetNames: [...SHEET_NAMES],
36
+ buffer: XLSX.write(workbook, { type: 'buffer', bookType: 'xlsx' })
37
+ };
38
+ }
39
+ function buildDeclarationRows(model) {
40
+ return [
41
+ ['境内发货人', model.sellerName ?? model.sellerEnglishName ?? ''],
42
+ ['境外收货人', model.buyerName ?? ''],
43
+ ['合同协议号', model.contractNo ?? ''],
44
+ ['监管方式', model.supervisionMode ?? ''],
45
+ ['征免性质', model.taxExemptionNature ?? ''],
46
+ ['包装种类', model.packageType ?? ''],
47
+ ['项号', '商品编号', '商品名称及规格型号', '数量及单位', '单价', '总价', '境内货源地'],
48
+ ...model.items.map((item, index) => [
49
+ index + 1,
50
+ item.hsCode ?? '',
51
+ item.productName ?? item.englishName ?? '',
52
+ formatQuantity(item),
53
+ item.unitPrice ?? '',
54
+ item.amount ?? '',
55
+ model.domesticSourceLocation ?? ''
56
+ ])
57
+ ];
58
+ }
59
+ function buildCommercialInvoiceRows(model) {
60
+ return [
61
+ [model.sellerEnglishName ?? ''],
62
+ [model.sellerEnglishAddress ?? ''],
63
+ ['Commercial Invoice'],
64
+ ['Buyer', model.buyerName ?? '', '', 'Seller', model.sellerEnglishName ?? ''],
65
+ ['Address', model.buyerAddress ?? '', '', 'Invoice No.', model.invoiceNo],
66
+ ['From', model.origin ?? '', '', 'Payment Term', model.paymentTerm ?? ''],
67
+ ['To', model.destination ?? '', '', 'Contract No.', model.contractNo ?? ''],
68
+ ['Item No.', 'Item', 'Description', 'QTY', 'UNIT PRICE', 'UNIT', 'RATE', 'AMOUNT', 'HS CODE'],
69
+ ...model.items.map((item, index) => [
70
+ index + 1,
71
+ item.model ?? item.englishName ?? item.productName ?? '',
72
+ item.description ?? '',
73
+ item.quantity ?? '',
74
+ item.unitPrice ?? '',
75
+ item.unit ?? '',
76
+ model.exchangeRate ?? '',
77
+ item.amount ?? '',
78
+ item.hsCode ?? ''
79
+ ]),
80
+ ['Total Amount(RMB)', '', '', '', '', '', totalAmount(model.items)]
81
+ ];
82
+ }
83
+ function buildSalesContractRows(model) {
84
+ return [
85
+ [model.sellerEnglishName ?? ''],
86
+ [model.sellerEnglishAddress ?? ''],
87
+ ['Sales Contract'],
88
+ ['Buyer', model.buyerName ?? '', '', 'Seller', model.sellerEnglishName ?? ''],
89
+ ['Address', model.buyerAddress ?? '', '', 'Invoice No.', model.invoiceNo],
90
+ ['From', model.origin ?? '', '', 'Payment Term', model.paymentTerm ?? ''],
91
+ ['To', model.destination ?? '', '', 'Contract No.', model.contractNo ?? ''],
92
+ ['Item No.', 'Item', 'Description', 'QTY', 'UNIT PRICE', 'UNIT', 'RATE', 'AMOUNT', 'HS CODE'],
93
+ ...model.items.map((item, index) => [
94
+ index + 1,
95
+ item.model ?? item.englishName ?? item.productName ?? '',
96
+ item.description ?? '',
97
+ item.quantity ?? '',
98
+ item.unitPrice ?? '',
99
+ item.unit ?? '',
100
+ model.exchangeRate ?? '',
101
+ item.amount ?? '',
102
+ item.hsCode ?? ''
103
+ ])
104
+ ];
105
+ }
106
+ function buildPackingListRows(model) {
107
+ return [
108
+ [model.sellerEnglishAddress ?? ''],
109
+ ['PACKING LIST'],
110
+ ['Ship to', model.buyerName ?? '', '', 'Seller', model.sellerEnglishName ?? ''],
111
+ ['Country', model.destination ?? ''],
112
+ ['Items', 'Model', 'Description', 'Qty', 'Unit', 'Ctn No', 'Dimension(mm)', 'NW(kg)', 'GW(kg)'],
113
+ ...model.items.map((item) => [
114
+ item.englishName ?? item.productName ?? '',
115
+ item.model ?? '',
116
+ item.description ?? '',
117
+ item.quantity ?? '',
118
+ item.unit ?? '',
119
+ item.cartonNo ?? '',
120
+ item.dimension ?? '',
121
+ item.netWeight ?? '',
122
+ item.grossWeight ?? ''
123
+ ]),
124
+ ['Total weight (KG)', '', '', '', '', '', '', sum(model.items, 'netWeight'), sum(model.items, 'grossWeight')]
125
+ ];
126
+ }
127
+ function formatQuantity(item) {
128
+ return [item.quantity, item.unit].filter((value) => value !== undefined && value !== '').join(' ');
129
+ }
130
+ function totalAmount(items) {
131
+ return sum(items, 'amount');
132
+ }
133
+ function sum(items, key) {
134
+ return items.reduce((total, item) => {
135
+ const value = item[key];
136
+ return typeof value === 'number' ? total + value : total;
137
+ }, 0);
138
+ }
139
+ function buildInvoiceNo() {
140
+ const now = new Date();
141
+ const yyyy = now.getUTCFullYear();
142
+ const mm = String(now.getUTCMonth() + 1).padStart(2, '0');
143
+ const dd = String(now.getUTCDate()).padStart(2, '0');
144
+ return `INV-${yyyy}${mm}${dd}`;
145
+ }
146
+ function sanitizeFilePart(value) {
147
+ return value.replace(/[^a-zA-Z0-9._-]+/g, '-');
148
+ }
149
+ //# sourceMappingURL=trade-compliance-workbook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trade-compliance-workbook.js","sourceRoot":"","sources":["../../src/lib/trade-compliance-workbook.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,227 @@
1
+ import { z } from 'zod';
2
+ export declare const TradeComplianceWorkbenchConfigSchema: z.ZodObject<{
3
+ enrichment: z.ZodOptional<z.ZodObject<{
4
+ apiBaseUrl: z.ZodOptional<z.ZodString>;
5
+ mcpServerName: z.ZodOptional<z.ZodString>;
6
+ timeoutMs: z.ZodOptional<z.ZodNumber>;
7
+ }, "strip", z.ZodTypeAny, {
8
+ apiBaseUrl?: string;
9
+ mcpServerName?: string;
10
+ timeoutMs?: number;
11
+ }, {
12
+ apiBaseUrl?: string;
13
+ mcpServerName?: string;
14
+ timeoutMs?: number;
15
+ }>>;
16
+ templateDefaults: z.ZodOptional<z.ZodObject<{
17
+ sellerEnglishName: z.ZodOptional<z.ZodString>;
18
+ sellerEnglishAddress: z.ZodOptional<z.ZodString>;
19
+ phone: z.ZodOptional<z.ZodString>;
20
+ email: z.ZodOptional<z.ZodString>;
21
+ bankBeneficiary: z.ZodOptional<z.ZodString>;
22
+ bankName: z.ZodOptional<z.ZodString>;
23
+ bankAddress: z.ZodOptional<z.ZodString>;
24
+ bankAccountNo: z.ZodOptional<z.ZodString>;
25
+ cnapsCode: z.ZodOptional<z.ZodString>;
26
+ swiftCode: z.ZodOptional<z.ZodString>;
27
+ paymentTerm: z.ZodOptional<z.ZodString>;
28
+ tradeTerm: z.ZodOptional<z.ZodString>;
29
+ origin: z.ZodOptional<z.ZodString>;
30
+ destination: z.ZodOptional<z.ZodString>;
31
+ packageType: z.ZodOptional<z.ZodString>;
32
+ supervisionMode: z.ZodOptional<z.ZodString>;
33
+ taxExemptionNature: z.ZodOptional<z.ZodString>;
34
+ domesticSourceLocation: z.ZodOptional<z.ZodString>;
35
+ exchangeRate: z.ZodOptional<z.ZodNumber>;
36
+ }, "strip", z.ZodTypeAny, {
37
+ sellerEnglishName?: string;
38
+ sellerEnglishAddress?: string;
39
+ phone?: string;
40
+ email?: string;
41
+ bankBeneficiary?: string;
42
+ bankName?: string;
43
+ bankAddress?: string;
44
+ bankAccountNo?: string;
45
+ cnapsCode?: string;
46
+ swiftCode?: string;
47
+ paymentTerm?: string;
48
+ tradeTerm?: string;
49
+ origin?: string;
50
+ destination?: string;
51
+ packageType?: string;
52
+ supervisionMode?: string;
53
+ taxExemptionNature?: string;
54
+ domesticSourceLocation?: string;
55
+ exchangeRate?: number;
56
+ }, {
57
+ sellerEnglishName?: string;
58
+ sellerEnglishAddress?: string;
59
+ phone?: string;
60
+ email?: string;
61
+ bankBeneficiary?: string;
62
+ bankName?: string;
63
+ bankAddress?: string;
64
+ bankAccountNo?: string;
65
+ cnapsCode?: string;
66
+ swiftCode?: string;
67
+ paymentTerm?: string;
68
+ tradeTerm?: string;
69
+ origin?: string;
70
+ destination?: string;
71
+ packageType?: string;
72
+ supervisionMode?: string;
73
+ taxExemptionNature?: string;
74
+ domesticSourceLocation?: string;
75
+ exchangeRate?: number;
76
+ }>>;
77
+ }, "strip", z.ZodTypeAny, {
78
+ enrichment?: {
79
+ apiBaseUrl?: string;
80
+ mcpServerName?: string;
81
+ timeoutMs?: number;
82
+ };
83
+ templateDefaults?: {
84
+ sellerEnglishName?: string;
85
+ sellerEnglishAddress?: string;
86
+ phone?: string;
87
+ email?: string;
88
+ bankBeneficiary?: string;
89
+ bankName?: string;
90
+ bankAddress?: string;
91
+ bankAccountNo?: string;
92
+ cnapsCode?: string;
93
+ swiftCode?: string;
94
+ paymentTerm?: string;
95
+ tradeTerm?: string;
96
+ origin?: string;
97
+ destination?: string;
98
+ packageType?: string;
99
+ supervisionMode?: string;
100
+ taxExemptionNature?: string;
101
+ domesticSourceLocation?: string;
102
+ exchangeRate?: number;
103
+ };
104
+ }, {
105
+ enrichment?: {
106
+ apiBaseUrl?: string;
107
+ mcpServerName?: string;
108
+ timeoutMs?: number;
109
+ };
110
+ templateDefaults?: {
111
+ sellerEnglishName?: string;
112
+ sellerEnglishAddress?: string;
113
+ phone?: string;
114
+ email?: string;
115
+ bankBeneficiary?: string;
116
+ bankName?: string;
117
+ bankAddress?: string;
118
+ bankAccountNo?: string;
119
+ cnapsCode?: string;
120
+ swiftCode?: string;
121
+ paymentTerm?: string;
122
+ tradeTerm?: string;
123
+ origin?: string;
124
+ destination?: string;
125
+ packageType?: string;
126
+ supervisionMode?: string;
127
+ taxExemptionNature?: string;
128
+ domesticSourceLocation?: string;
129
+ exchangeRate?: number;
130
+ };
131
+ }>;
132
+ export type TradeComplianceWorkbenchConfig = z.infer<typeof TradeComplianceWorkbenchConfigSchema>;
133
+ export declare function readTradeComplianceEnvDefaults(): TradeComplianceWorkbenchConfig;
134
+ export declare const TradeComplianceWorkbenchConfigFormSchema: {
135
+ type: "object";
136
+ properties: {
137
+ enrichment: {
138
+ type: "object";
139
+ title: {
140
+ en_US: string;
141
+ zh_Hans: string;
142
+ };
143
+ properties: {
144
+ apiBaseUrl: {
145
+ type: "string";
146
+ title: {
147
+ en_US: string;
148
+ zh_Hans: string;
149
+ };
150
+ };
151
+ mcpServerName: {
152
+ type: "string";
153
+ title: {
154
+ en_US: string;
155
+ zh_Hans: string;
156
+ };
157
+ };
158
+ timeoutMs: {
159
+ type: "number";
160
+ title: {
161
+ en_US: string;
162
+ zh_Hans: string;
163
+ };
164
+ };
165
+ };
166
+ };
167
+ templateDefaults: {
168
+ type: "object";
169
+ title: {
170
+ en_US: string;
171
+ zh_Hans: string;
172
+ };
173
+ properties: {
174
+ sellerEnglishName: {
175
+ type: "string";
176
+ title: {
177
+ en_US: string;
178
+ zh_Hans: string;
179
+ };
180
+ };
181
+ sellerEnglishAddress: {
182
+ type: "string";
183
+ title: {
184
+ en_US: string;
185
+ zh_Hans: string;
186
+ };
187
+ };
188
+ paymentTerm: {
189
+ type: "string";
190
+ title: {
191
+ en_US: string;
192
+ zh_Hans: string;
193
+ };
194
+ };
195
+ tradeTerm: {
196
+ type: "string";
197
+ title: {
198
+ en_US: string;
199
+ zh_Hans: string;
200
+ };
201
+ };
202
+ origin: {
203
+ type: "string";
204
+ title: {
205
+ en_US: string;
206
+ zh_Hans: string;
207
+ };
208
+ };
209
+ destination: {
210
+ type: "string";
211
+ title: {
212
+ en_US: string;
213
+ zh_Hans: string;
214
+ };
215
+ };
216
+ exchangeRate: {
217
+ type: "number";
218
+ title: {
219
+ en_US: string;
220
+ zh_Hans: string;
221
+ };
222
+ };
223
+ };
224
+ };
225
+ };
226
+ };
227
+ //# sourceMappingURL=trade-compliance.config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trade-compliance.config.d.ts","sourceRoot":"","sources":["../../src/lib/trade-compliance.config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+B/C,CAAA;AAEF,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAA;AAEjG,wBAAgB,8BAA8B,IAAI,8BAA8B,CA6B/E;AAED,eAAO,MAAM,wCAAwC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCrB,CAAA"}