@chenchaolong/plugin-trade-compliance-workbench 1.0.0 → 1.0.2
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/README.md +46 -1
- package/dist/assets/branding/yuneec-logo.png +0 -0
- package/dist/assets/templates/CI.xlsx +0 -0
- package/dist/assets/templates/CUSTOMS_DECLARATION.xlsx +0 -0
- package/dist/assets/templates/PI.xlsx +0 -0
- package/dist/assets/templates/PL.xlsx +0 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/lib/adapters/file-storage.d.ts +4 -2
- package/dist/lib/adapters/file-storage.d.ts.map +1 -1
- package/dist/lib/adapters/file-storage.js +25 -10
- package/dist/lib/adapters/file-storage.js.map +1 -1
- package/dist/lib/adapters/hsbianma.provider.d.ts +1 -0
- package/dist/lib/adapters/hsbianma.provider.d.ts.map +1 -1
- package/dist/lib/adapters/hsbianma.provider.js +32 -3
- package/dist/lib/adapters/hsbianma.provider.js.map +1 -1
- package/dist/lib/adapters/translation.provider.d.ts +3 -0
- package/dist/lib/adapters/translation.provider.d.ts.map +1 -1
- package/dist/lib/adapters/translation.provider.js +15 -6
- package/dist/lib/adapters/translation.provider.js.map +1 -1
- package/dist/lib/constants.d.ts +3 -2
- package/dist/lib/constants.d.ts.map +1 -1
- package/dist/lib/constants.js +3 -2
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/demo-data.definitions.d.ts +28 -0
- package/dist/lib/demo-data.definitions.d.ts.map +1 -0
- package/dist/lib/demo-data.definitions.js +236 -0
- package/dist/lib/demo-data.definitions.js.map +1 -0
- package/dist/lib/demo-data.entity.d.ts +9 -0
- package/dist/lib/demo-data.entity.d.ts.map +1 -0
- package/dist/lib/demo-data.entity.js +24 -0
- package/dist/lib/demo-data.entity.js.map +1 -0
- package/dist/lib/demo-data.ids.d.ts +4 -0
- package/dist/lib/demo-data.ids.d.ts.map +1 -0
- package/dist/lib/demo-data.ids.js +19 -0
- package/dist/lib/demo-data.ids.js.map +1 -0
- package/dist/lib/demo-data.service.d.ts +26 -0
- package/dist/lib/demo-data.service.d.ts.map +1 -0
- package/dist/lib/demo-data.service.js +124 -0
- package/dist/lib/demo-data.service.js.map +1 -0
- package/dist/lib/domain/default-settings.d.ts +1 -0
- package/dist/lib/domain/default-settings.d.ts.map +1 -1
- package/dist/lib/domain/default-settings.js +1 -0
- package/dist/lib/domain/default-settings.js.map +1 -1
- package/dist/lib/domain/risk-notice.d.ts +59 -0
- package/dist/lib/domain/risk-notice.d.ts.map +1 -0
- package/dist/lib/domain/risk-notice.js +30 -0
- package/dist/lib/domain/risk-notice.js.map +1 -0
- package/dist/lib/entities/catalog.entity.d.ts.map +1 -1
- package/dist/lib/entities/catalog.entity.js +4 -2
- package/dist/lib/entities/catalog.entity.js.map +1 -1
- package/dist/lib/entities/customer.entity.d.ts +9 -2
- package/dist/lib/entities/customer.entity.d.ts.map +1 -1
- package/dist/lib/entities/customer.entity.js +29 -1
- package/dist/lib/entities/customer.entity.js.map +1 -1
- package/dist/lib/entities/index.d.ts +2 -2
- package/dist/lib/entities/index.d.ts.map +1 -1
- package/dist/lib/entities/index.js +2 -2
- package/dist/lib/entities/index.js.map +1 -1
- package/dist/lib/entities/procurement.entity.d.ts +6 -4
- package/dist/lib/entities/procurement.entity.d.ts.map +1 -1
- package/dist/lib/entities/procurement.entity.js +9 -1
- package/dist/lib/entities/procurement.entity.js.map +1 -1
- package/dist/lib/entities/settings.entity.d.ts +12 -2
- package/dist/lib/entities/settings.entity.d.ts.map +1 -1
- package/dist/lib/entities/settings.entity.js +40 -0
- package/dist/lib/entities/settings.entity.js.map +1 -1
- package/dist/lib/entities/shared.entity.d.ts +10 -5
- package/dist/lib/entities/shared.entity.d.ts.map +1 -1
- package/dist/lib/entities/shared.entity.js +22 -1
- package/dist/lib/entities/shared.entity.js.map +1 -1
- package/dist/lib/remote-components/trade-compliance-workbench/app.css +1 -0
- package/dist/lib/remote-components/trade-compliance-workbench/app.js +63 -277
- package/dist/lib/remote-ui/analytics-contracts.d.ts +106 -0
- package/dist/lib/remote-ui/analytics-contracts.d.ts.map +1 -0
- package/dist/lib/remote-ui/analytics-contracts.js +4 -0
- package/dist/lib/remote-ui/analytics-contracts.js.map +1 -0
- package/dist/lib/remote-ui/app-source.d.ts +2 -0
- package/dist/lib/remote-ui/app-source.d.ts.map +1 -0
- package/dist/lib/remote-ui/app-source.js +753 -0
- package/dist/lib/remote-ui/app-source.js.map +1 -0
- package/dist/lib/remote-ui/bridge.d.ts +36 -0
- package/dist/lib/remote-ui/bridge.d.ts.map +1 -0
- package/dist/lib/remote-ui/bridge.js +159 -0
- package/dist/lib/remote-ui/bridge.js.map +1 -0
- package/dist/lib/remote-ui/components/data-grid.d.ts +34 -0
- package/dist/lib/remote-ui/components/data-grid.d.ts.map +1 -0
- package/dist/lib/remote-ui/components/data-grid.js +59 -0
- package/dist/lib/remote-ui/components/data-grid.js.map +1 -0
- package/dist/lib/remote-ui/components/forms.d.ts +63 -0
- package/dist/lib/remote-ui/components/forms.d.ts.map +1 -0
- package/dist/lib/remote-ui/components/forms.js +117 -0
- package/dist/lib/remote-ui/components/forms.js.map +1 -0
- package/dist/lib/remote-ui/components/layout.d.ts +34 -0
- package/dist/lib/remote-ui/components/layout.d.ts.map +1 -0
- package/dist/lib/remote-ui/components/layout.js +89 -0
- package/dist/lib/remote-ui/components/layout.js.map +1 -0
- package/dist/lib/remote-ui/contract-import.d.ts +82 -0
- package/dist/lib/remote-ui/contract-import.d.ts.map +1 -0
- package/dist/lib/remote-ui/contract-import.js +102 -0
- package/dist/lib/remote-ui/contract-import.js.map +1 -0
- package/dist/lib/remote-ui/contracts.d.ts +257 -0
- package/dist/lib/remote-ui/contracts.d.ts.map +1 -0
- package/dist/lib/remote-ui/contracts.js +12 -0
- package/dist/lib/remote-ui/contracts.js.map +1 -0
- package/dist/lib/remote-ui/customer-contract-contracts.d.ts +227 -0
- package/dist/lib/remote-ui/customer-contract-contracts.d.ts.map +1 -0
- package/dist/lib/remote-ui/customer-contract-contracts.js +10 -0
- package/dist/lib/remote-ui/customer-contract-contracts.js.map +1 -0
- package/dist/lib/remote-ui/model.d.ts +31 -0
- package/dist/lib/remote-ui/model.d.ts.map +1 -0
- package/dist/lib/remote-ui/model.js +248 -0
- package/dist/lib/remote-ui/model.js.map +1 -0
- package/dist/lib/remote-ui/pages/analytics.d.ts +12 -0
- package/dist/lib/remote-ui/pages/analytics.d.ts.map +1 -0
- package/dist/lib/remote-ui/pages/analytics.js +123 -0
- package/dist/lib/remote-ui/pages/analytics.js.map +1 -0
- package/dist/lib/remote-ui/pages/catalogs.d.ts +225 -0
- package/dist/lib/remote-ui/pages/catalogs.d.ts.map +1 -0
- package/dist/lib/remote-ui/pages/catalogs.js +572 -0
- package/dist/lib/remote-ui/pages/catalogs.js.map +1 -0
- package/dist/lib/remote-ui/pages/contracts.d.ts +80 -0
- package/dist/lib/remote-ui/pages/contracts.d.ts.map +1 -0
- package/dist/lib/remote-ui/pages/contracts.js +396 -0
- package/dist/lib/remote-ui/pages/contracts.js.map +1 -0
- package/dist/lib/remote-ui/pages/files.d.ts +31 -0
- package/dist/lib/remote-ui/pages/files.d.ts.map +1 -0
- package/dist/lib/remote-ui/pages/files.js +64 -0
- package/dist/lib/remote-ui/pages/files.js.map +1 -0
- package/dist/lib/remote-ui/pages/home.d.ts +71 -0
- package/dist/lib/remote-ui/pages/home.d.ts.map +1 -0
- package/dist/lib/remote-ui/pages/home.js +136 -0
- package/dist/lib/remote-ui/pages/home.js.map +1 -0
- package/dist/lib/remote-ui/pages/procurement.d.ts +36 -0
- package/dist/lib/remote-ui/pages/procurement.d.ts.map +1 -0
- package/dist/lib/remote-ui/pages/procurement.js +370 -0
- package/dist/lib/remote-ui/pages/procurement.js.map +1 -0
- package/dist/lib/remote-ui/pages/sales.d.ts +12 -0
- package/dist/lib/remote-ui/pages/sales.d.ts.map +1 -0
- package/dist/lib/remote-ui/pages/sales.js +106 -0
- package/dist/lib/remote-ui/pages/sales.js.map +1 -0
- package/dist/lib/remote-ui/pages/settings.d.ts +34 -0
- package/dist/lib/remote-ui/pages/settings.d.ts.map +1 -0
- package/dist/lib/remote-ui/pages/settings.js +259 -0
- package/dist/lib/remote-ui/pages/settings.js.map +1 -0
- package/dist/lib/remote-ui/procurement-contracts.d.ts +177 -0
- package/dist/lib/remote-ui/procurement-contracts.d.ts.map +1 -0
- package/dist/lib/remote-ui/procurement-contracts.js +2 -0
- package/dist/lib/remote-ui/procurement-contracts.js.map +1 -0
- package/dist/lib/remote-ui/sales-contracts.d.ts +133 -0
- package/dist/lib/remote-ui/sales-contracts.d.ts.map +1 -0
- package/dist/lib/remote-ui/sales-contracts.js +2 -0
- package/dist/lib/remote-ui/sales-contracts.js.map +1 -0
- package/dist/lib/remote-ui/settings-contracts.d.ts +114 -0
- package/dist/lib/remote-ui/settings-contracts.d.ts.map +1 -0
- package/dist/lib/remote-ui/settings-contracts.js +6 -0
- package/dist/lib/remote-ui/settings-contracts.js.map +1 -0
- package/dist/lib/remote-ui/upload-policy.d.ts +18 -0
- package/dist/lib/remote-ui/upload-policy.d.ts.map +1 -0
- package/dist/lib/remote-ui/upload-policy.js +56 -0
- package/dist/lib/remote-ui/upload-policy.js.map +1 -0
- package/dist/lib/runtime-validation.d.ts +61 -0
- package/dist/lib/runtime-validation.d.ts.map +1 -0
- package/dist/lib/runtime-validation.js +243 -0
- package/dist/lib/runtime-validation.js.map +1 -0
- package/dist/lib/sales-file.service.d.ts +54 -6
- package/dist/lib/sales-file.service.d.ts.map +1 -1
- package/dist/lib/sales-file.service.js +278 -33
- package/dist/lib/sales-file.service.js.map +1 -1
- package/dist/lib/trade-compliance.config.d.ts +32 -0
- package/dist/lib/trade-compliance.config.d.ts.map +1 -1
- package/dist/lib/trade-compliance.config.js +16 -4
- package/dist/lib/trade-compliance.config.js.map +1 -1
- package/dist/lib/types.d.ts +253 -1
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/types.js +24 -0
- package/dist/lib/types.js.map +1 -1
- package/dist/lib/workbench-view.provider.d.ts +675 -38
- package/dist/lib/workbench-view.provider.d.ts.map +1 -1
- package/dist/lib/workbench-view.provider.js +411 -40
- package/dist/lib/workbench-view.provider.js.map +1 -1
- package/dist/lib/workbench.middleware.d.ts +70 -19
- package/dist/lib/workbench.middleware.d.ts.map +1 -1
- package/dist/lib/workbench.middleware.js +5 -1
- package/dist/lib/workbench.middleware.js.map +1 -1
- package/dist/lib/workbench.plugin.d.ts.map +1 -1
- package/dist/lib/workbench.plugin.js +6 -4
- package/dist/lib/workbench.plugin.js.map +1 -1
- package/dist/lib/workbench.service.d.ts +629 -48
- package/dist/lib/workbench.service.d.ts.map +1 -1
- package/dist/lib/workbench.service.js +1818 -300
- package/dist/lib/workbench.service.js.map +1 -1
- package/package.json +15 -4
- package/scripts/seed-demo-data.mjs +138 -0
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import type { FilterState, WorkbenchCollection, WorkbenchRoute } from './contracts.js';
|
|
2
|
+
import type { RefundValidationMethod } from '../types.js';
|
|
3
|
+
export type PurchaseOrderLineSourceType = 'CONTRACT_EXTRACTED' | 'MANUAL_ENTRY';
|
|
4
|
+
export type SanctionHitStatus = 'UNCHECKED' | 'CLEAR' | 'HIT';
|
|
5
|
+
export type HsCodeStatus = 'UNCONFIRMED' | 'AI_CONFIRMED' | 'MANUALLY_CONFIRMED';
|
|
6
|
+
export type ComplianceCategory = 'DUAL_USE' | 'OVERSEAS_SANCTION';
|
|
7
|
+
export type CustomerContractLinkStatus = 'LINKED' | 'UNLINKED';
|
|
8
|
+
export type SupplierRow = {
|
|
9
|
+
id: string;
|
|
10
|
+
code?: string | null;
|
|
11
|
+
name: string;
|
|
12
|
+
shortName?: string | null;
|
|
13
|
+
countryOrRegion?: string | null;
|
|
14
|
+
address?: string | null;
|
|
15
|
+
contactName?: string | null;
|
|
16
|
+
phone?: string | null;
|
|
17
|
+
wechat?: string | null;
|
|
18
|
+
email?: string | null;
|
|
19
|
+
taxNumber?: string | null;
|
|
20
|
+
paymentAccount?: string | null;
|
|
21
|
+
bankName?: string | null;
|
|
22
|
+
taxpayerRating?: string | null;
|
|
23
|
+
website?: string | null;
|
|
24
|
+
businessProducts?: string | null;
|
|
25
|
+
remarks?: string | null;
|
|
26
|
+
sanctionStatus?: SanctionHitStatus;
|
|
27
|
+
sanctionMatchCount?: number;
|
|
28
|
+
complianceCheckedAt?: string | null;
|
|
29
|
+
createdByName?: string | null;
|
|
30
|
+
createdAt?: string | null;
|
|
31
|
+
updatedByName?: string | null;
|
|
32
|
+
updatedAt?: string | null;
|
|
33
|
+
};
|
|
34
|
+
export type PurchaseOrderRow = {
|
|
35
|
+
id: string;
|
|
36
|
+
supplierId: string;
|
|
37
|
+
contractNo: string;
|
|
38
|
+
orderDate: string;
|
|
39
|
+
contractAmountCny: string;
|
|
40
|
+
paidAmountCny?: string | null;
|
|
41
|
+
refundedAmountCny?: string | null;
|
|
42
|
+
estimatedRefundAmountCny?: string | null;
|
|
43
|
+
customerContractId?: string | null;
|
|
44
|
+
customerContractNo?: string | null;
|
|
45
|
+
customerContractLinkStatus?: CustomerContractLinkStatus;
|
|
46
|
+
sourceFileId?: string | null;
|
|
47
|
+
sourceFileName?: string | null;
|
|
48
|
+
importTaskId?: string | null;
|
|
49
|
+
lineCount?: number;
|
|
50
|
+
amountMismatch?: boolean;
|
|
51
|
+
amountMismatchConfirmed?: boolean;
|
|
52
|
+
createdAt?: string | null;
|
|
53
|
+
updatedAt?: string | null;
|
|
54
|
+
};
|
|
55
|
+
export type PurchaseOrderLineRow = {
|
|
56
|
+
id: string;
|
|
57
|
+
purchaseOrderId: string;
|
|
58
|
+
lineNumber?: number;
|
|
59
|
+
sourceType: PurchaseOrderLineSourceType;
|
|
60
|
+
productName: string;
|
|
61
|
+
englishName?: string | null;
|
|
62
|
+
productDescription?: string | null;
|
|
63
|
+
modelSpecification?: string | null;
|
|
64
|
+
unit?: string | null;
|
|
65
|
+
quantity: string;
|
|
66
|
+
unitPriceTaxIncluded: string;
|
|
67
|
+
lineAmountTaxIncluded: string;
|
|
68
|
+
vatRate?: string | null;
|
|
69
|
+
hsCode?: string | null;
|
|
70
|
+
hsCodeStatus?: HsCodeStatus;
|
|
71
|
+
refundRate?: string | null;
|
|
72
|
+
refundPolicyReference?: string | null;
|
|
73
|
+
refundPolicyDate?: string | null;
|
|
74
|
+
refundValidationMethod?: RefundValidationMethod | null;
|
|
75
|
+
complianceCategories?: ComplianceCategory[];
|
|
76
|
+
amountMismatch?: boolean;
|
|
77
|
+
amountMismatchConfirmed?: boolean;
|
|
78
|
+
sourceLocation?: string | null;
|
|
79
|
+
sourceContent?: string | null;
|
|
80
|
+
createdAt?: string | null;
|
|
81
|
+
updatedAt?: string | null;
|
|
82
|
+
};
|
|
83
|
+
export type SupplierDraft = Omit<SupplierRow, 'id'> & {
|
|
84
|
+
id?: string;
|
|
85
|
+
};
|
|
86
|
+
export type PurchaseOrderDraft = Omit<PurchaseOrderRow, 'id'> & {
|
|
87
|
+
id?: string;
|
|
88
|
+
};
|
|
89
|
+
export type PurchaseOrderLineDraft = Omit<PurchaseOrderLineRow, 'id'> & {
|
|
90
|
+
id?: string;
|
|
91
|
+
};
|
|
92
|
+
export type PurchaseContractReviewDraft = {
|
|
93
|
+
supplier: SupplierDraft;
|
|
94
|
+
order: PurchaseOrderDraft;
|
|
95
|
+
lines: PurchaseOrderLineDraft[];
|
|
96
|
+
sourceFileName?: string | null;
|
|
97
|
+
sourceFileUrl?: string | null;
|
|
98
|
+
sourceText?: string | null;
|
|
99
|
+
};
|
|
100
|
+
export type PurchaseImportTaskStatus = 'QUEUED' | 'EXTRACTING' | 'AI_PARSING' | 'VALIDATING' | 'AWAITING_REVIEW' | 'PERSISTING' | 'SUCCEEDED' | 'FAILED' | 'TIMED_OUT';
|
|
101
|
+
export type PurchaseImportTask = {
|
|
102
|
+
id: string;
|
|
103
|
+
documentType: 'PURCHASE_CONTRACT';
|
|
104
|
+
status: PurchaseImportTaskStatus;
|
|
105
|
+
sourceFileId?: string | null;
|
|
106
|
+
sourceFileName?: string | null;
|
|
107
|
+
resultPayloadVersion?: string | null;
|
|
108
|
+
reviewSavedAt?: string | null;
|
|
109
|
+
resultEntityId?: string | null;
|
|
110
|
+
duplicateContractError?: string | null;
|
|
111
|
+
errorCode?: string | null;
|
|
112
|
+
errorMessage?: string | null;
|
|
113
|
+
resultPayload?: Record<string, unknown> | null;
|
|
114
|
+
executionCommand?: {
|
|
115
|
+
commandKey: string;
|
|
116
|
+
payload: Record<string, unknown>;
|
|
117
|
+
} | null;
|
|
118
|
+
commandDispatchedAt?: string | null;
|
|
119
|
+
retryOfTaskId?: string | null;
|
|
120
|
+
updatedAt?: string | null;
|
|
121
|
+
};
|
|
122
|
+
export type ProcurementCollectionKey = 'suppliers' | 'purchaseOrders' | 'purchaseLines';
|
|
123
|
+
export type ProcurementQuery = {
|
|
124
|
+
page: number;
|
|
125
|
+
pageSize: number;
|
|
126
|
+
filters: FilterState;
|
|
127
|
+
parameters?: {
|
|
128
|
+
supplierId?: string;
|
|
129
|
+
purchaseOrderId?: string;
|
|
130
|
+
};
|
|
131
|
+
};
|
|
132
|
+
export type ProcurementActionKey = 'save_purchase_review' | 'update_supplier' | 'update_purchase_order' | 'add_purchase_line' | 'update_purchase_line' | 'delete_entity' | 'search_hs_code' | 'get_hs_code_detail';
|
|
133
|
+
export type ProcurementFileActionKey = 'upload_purchase_contract';
|
|
134
|
+
export type ProcurementDeleteEntityType = 'supplier' | 'purchaseOrder' | 'purchaseLine';
|
|
135
|
+
export type ProcurementActionResult<T = unknown> = {
|
|
136
|
+
success?: boolean;
|
|
137
|
+
data?: T;
|
|
138
|
+
message?: string;
|
|
139
|
+
refresh?: boolean;
|
|
140
|
+
};
|
|
141
|
+
export type ProductAmountMetric = {
|
|
142
|
+
productName: string;
|
|
143
|
+
amountCny: number;
|
|
144
|
+
};
|
|
145
|
+
export type OrderBalanceMetric = {
|
|
146
|
+
unpaidAmountCny: number;
|
|
147
|
+
unrefundedAmountCny: number;
|
|
148
|
+
};
|
|
149
|
+
export type ProcurementMetrics = {
|
|
150
|
+
totalOrderCount: number;
|
|
151
|
+
totalPurchaseAmountCny: number;
|
|
152
|
+
currentYearOrderCount: number;
|
|
153
|
+
currentYearPurchaseAmountCny: number;
|
|
154
|
+
topProducts: ProductAmountMetric[];
|
|
155
|
+
orderBalances: Record<string, OrderBalanceMetric>;
|
|
156
|
+
};
|
|
157
|
+
export type ProcurementPageProps = {
|
|
158
|
+
route: Extract<WorkbenchRoute, {
|
|
159
|
+
type: 'procurement';
|
|
160
|
+
}>;
|
|
161
|
+
suppliers: WorkbenchCollection<SupplierRow>;
|
|
162
|
+
purchaseOrders: WorkbenchCollection<PurchaseOrderRow>;
|
|
163
|
+
purchaseLines: WorkbenchCollection<PurchaseOrderLineRow>;
|
|
164
|
+
supplier?: SupplierRow | null;
|
|
165
|
+
order?: PurchaseOrderRow | null;
|
|
166
|
+
metrics?: ProcurementMetrics | null;
|
|
167
|
+
importTask: PurchaseImportTask | null;
|
|
168
|
+
reviewDraft: PurchaseContractReviewDraft | null;
|
|
169
|
+
busy: boolean;
|
|
170
|
+
onQuery: (collection: ProcurementCollectionKey, query: ProcurementQuery) => Promise<void> | void;
|
|
171
|
+
onAction: (actionKey: ProcurementActionKey, input: Record<string, unknown>) => Promise<ProcurementActionResult>;
|
|
172
|
+
onFileAction: (actionKey: ProcurementFileActionKey, file: File, input: Record<string, unknown>) => Promise<ProcurementActionResult>;
|
|
173
|
+
onRouteChange: (route: WorkbenchRoute) => void;
|
|
174
|
+
onRetryImport?: (taskId: string) => Promise<void> | void;
|
|
175
|
+
onReviewClose?: () => void;
|
|
176
|
+
};
|
|
177
|
+
//# sourceMappingURL=procurement-contracts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"procurement-contracts.d.ts","sourceRoot":"","sources":["../../../src/lib/remote-ui/procurement-contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"procurement-contracts.js","sourceRoot":"","sources":["../../../src/lib/remote-ui/procurement-contracts.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import type { FilterState, WorkbenchCollection, WorkbenchRoute } from './contracts.js';
|
|
2
|
+
import type { BankAccountType, CustomerProfitRateStatus, HsCodeStatus, PricingProfitRateSource, SalesFileGenerationResult, SalesFilePreflightResult, SalesFileType, SalesPaymentStatus as SharedSalesPaymentStatus, SanctionHitStatus as SharedSanctionHitStatus } from '../types.js';
|
|
3
|
+
export type ProfitRateStatus = CustomerProfitRateStatus;
|
|
4
|
+
export type SanctionHitStatus = SharedSanctionHitStatus;
|
|
5
|
+
export type SalesPaymentStatus = SharedSalesPaymentStatus;
|
|
6
|
+
export type ComplianceCategory = 'DUAL_USE' | 'OVERSEAS_SANCTION';
|
|
7
|
+
export type SalesComplianceMatchMethod = 'HS_CODE_EXACT' | 'NAME_CONTAINS' | 'NAME_DICE';
|
|
8
|
+
export type SalesComplianceMatch = {
|
|
9
|
+
controlledGoodsId?: string | null;
|
|
10
|
+
matchedItemName?: string | null;
|
|
11
|
+
catalogType: ComplianceCategory;
|
|
12
|
+
matchMethod: SalesComplianceMatchMethod;
|
|
13
|
+
similarityScore?: string | null;
|
|
14
|
+
riskDescription?: string | null;
|
|
15
|
+
recommendation?: string | null;
|
|
16
|
+
};
|
|
17
|
+
export type SalesLineLookupRequest = {
|
|
18
|
+
type: 'HS_CODE_LOOKUP';
|
|
19
|
+
field: 'PRODUCT_NAME' | 'HS_CODE';
|
|
20
|
+
query: string;
|
|
21
|
+
purchaseOrderLineId: string;
|
|
22
|
+
};
|
|
23
|
+
export type SalesCustomerRow = {
|
|
24
|
+
id: string;
|
|
25
|
+
code?: string | null;
|
|
26
|
+
name: string;
|
|
27
|
+
country?: string | null;
|
|
28
|
+
defaultPricingProfitRate?: string | null;
|
|
29
|
+
profitRateStatus: ProfitRateStatus;
|
|
30
|
+
sanctionStatus: SanctionHitStatus;
|
|
31
|
+
sanctionMatchCount: number;
|
|
32
|
+
complianceCheckedAt?: string | null;
|
|
33
|
+
};
|
|
34
|
+
export type SalesOrderLineRow = {
|
|
35
|
+
purchaseOrderLineId: string;
|
|
36
|
+
productName: string;
|
|
37
|
+
englishName?: string | null;
|
|
38
|
+
productDescription?: string | null;
|
|
39
|
+
modelSpecification?: string | null;
|
|
40
|
+
unit?: string | null;
|
|
41
|
+
quantity: string;
|
|
42
|
+
hsCode?: string | null;
|
|
43
|
+
vatRate?: string | null;
|
|
44
|
+
refundRate?: string | null;
|
|
45
|
+
hsCodeStatus?: HsCodeStatus | null;
|
|
46
|
+
salesUnitPriceCny: string;
|
|
47
|
+
salesLineAmountCny: string;
|
|
48
|
+
complianceCategories?: ComplianceCategory[];
|
|
49
|
+
complianceMatches: SalesComplianceMatch[];
|
|
50
|
+
};
|
|
51
|
+
export type SalesOrderRow = {
|
|
52
|
+
customerContractId: string;
|
|
53
|
+
purchaseOrderId: string;
|
|
54
|
+
customerId: string;
|
|
55
|
+
customerName: string;
|
|
56
|
+
supplierName: string;
|
|
57
|
+
salesOrderNo: string;
|
|
58
|
+
customerContractNo: string;
|
|
59
|
+
purchaseContractNo: string;
|
|
60
|
+
orderDate?: string | null;
|
|
61
|
+
currencyCode: 'CNY';
|
|
62
|
+
pricingProfitRateSource: PricingProfitRateSource;
|
|
63
|
+
effectivePricingProfitRate: string;
|
|
64
|
+
pricingProfitRateStatus: 'CONFIGURED';
|
|
65
|
+
orderAmountCny: string;
|
|
66
|
+
receivedAmountCny: string;
|
|
67
|
+
unreceivedAmountCny: string;
|
|
68
|
+
paymentStatus: SalesPaymentStatus;
|
|
69
|
+
lines: SalesOrderLineRow[];
|
|
70
|
+
};
|
|
71
|
+
export type SalesMetrics = {
|
|
72
|
+
orderCount: number;
|
|
73
|
+
salesAmountCny: string;
|
|
74
|
+
receivedAmountCny: string;
|
|
75
|
+
unreceivedAmountCny: string;
|
|
76
|
+
currentYearOrderCount: number;
|
|
77
|
+
currentYearSalesAmountCny: string;
|
|
78
|
+
topProducts: Array<{
|
|
79
|
+
productName: string;
|
|
80
|
+
amountCny: string;
|
|
81
|
+
}>;
|
|
82
|
+
};
|
|
83
|
+
export type SalesOrderCollection = WorkbenchCollection<SalesOrderRow> & {
|
|
84
|
+
customer?: SalesCustomerRow;
|
|
85
|
+
metrics?: SalesMetrics;
|
|
86
|
+
};
|
|
87
|
+
export type SalesLineCollection = WorkbenchCollection<SalesOrderLineRow> & {
|
|
88
|
+
order?: SalesOrderRow;
|
|
89
|
+
};
|
|
90
|
+
export type SalesCollectionKey = 'salesCustomers' | 'salesOrders' | 'salesLines';
|
|
91
|
+
export type SalesQuery = {
|
|
92
|
+
page: number;
|
|
93
|
+
pageSize: number;
|
|
94
|
+
filters: FilterState;
|
|
95
|
+
};
|
|
96
|
+
export type BankAccountRow = {
|
|
97
|
+
id?: string;
|
|
98
|
+
bankType: BankAccountType;
|
|
99
|
+
beneficiary?: string | null;
|
|
100
|
+
bankName?: string | null;
|
|
101
|
+
bankAddress?: string | null;
|
|
102
|
+
cnapsCode?: string | null;
|
|
103
|
+
accountNo?: string | null;
|
|
104
|
+
swiftCode?: string | null;
|
|
105
|
+
};
|
|
106
|
+
export type GeneratedSalesFileRow = {
|
|
107
|
+
id: string;
|
|
108
|
+
customerContractId: string;
|
|
109
|
+
purchaseOrderId: string;
|
|
110
|
+
salesOrderNoSnapshot: string;
|
|
111
|
+
fileType: SalesFileType;
|
|
112
|
+
fileName: string;
|
|
113
|
+
storageFileId: string;
|
|
114
|
+
editVersion: number;
|
|
115
|
+
generatedAt: string;
|
|
116
|
+
lastEditedAt?: string | null;
|
|
117
|
+
};
|
|
118
|
+
export type { SalesFileGenerationResult, SalesFilePreflightResult };
|
|
119
|
+
export type SalesPageProps = {
|
|
120
|
+
route: Extract<WorkbenchRoute, {
|
|
121
|
+
type: 'sales';
|
|
122
|
+
}>;
|
|
123
|
+
customers: WorkbenchCollection<SalesCustomerRow>;
|
|
124
|
+
orders: SalesOrderCollection;
|
|
125
|
+
lines: SalesLineCollection;
|
|
126
|
+
busy: boolean;
|
|
127
|
+
onQuery: (collection: SalesCollectionKey, query: SalesQuery) => Promise<void> | void;
|
|
128
|
+
onAction: (actionKey: 'save_customer_profit_rate' | 'save_derived_manual_data' | 'search_hs_code' | 'get_hs_code_detail', input: Record<string, unknown>) => Promise<unknown>;
|
|
129
|
+
onRouteChange: (route: WorkbenchRoute) => void;
|
|
130
|
+
onOpenFiles?: (order: SalesOrderRow) => void;
|
|
131
|
+
onSalesLineLookup?: (request: SalesLineLookupRequest) => void;
|
|
132
|
+
};
|
|
133
|
+
//# sourceMappingURL=sales-contracts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sales-contracts.d.ts","sourceRoot":"","sources":["../../../src/lib/remote-ui/sales-contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sales-contracts.js","sourceRoot":"","sources":["../../../src/lib/remote-ui/sales-contracts.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
export declare const SettingsSections: readonly ["RISK", "COMPANY", "BANK_CNY", "BANK_USD", "PROFIT", "MONTHLY_RATE"];
|
|
2
|
+
export type SettingsSection = (typeof SettingsSections)[number];
|
|
3
|
+
export declare const BankAccountTypes: readonly ["OVERSEAS_CNY", "OVERSEAS_USD"];
|
|
4
|
+
export type BankAccountType = (typeof BankAccountTypes)[number];
|
|
5
|
+
export declare const ProfitRuleStatuses: readonly ["UNCONFIGURED", "ACTIVE"];
|
|
6
|
+
export type ProfitRuleStatus = (typeof ProfitRuleStatuses)[number];
|
|
7
|
+
export declare const SettingsHistoryTypes: readonly ["RISK", "COMPANY", "BANK", "PROFIT", "RATE"];
|
|
8
|
+
export type SettingsHistoryType = (typeof SettingsHistoryTypes)[number];
|
|
9
|
+
export declare const SettingsHistoryOperationTypes: readonly ["EDIT", "RESTORE_DEFAULT", "DELETE"];
|
|
10
|
+
export type SettingsHistoryOperationType = (typeof SettingsHistoryOperationTypes)[number];
|
|
11
|
+
export type RiskNoticeSettings = {
|
|
12
|
+
content: string;
|
|
13
|
+
revision: number;
|
|
14
|
+
};
|
|
15
|
+
export type CompanySettings = {
|
|
16
|
+
logoFileId: string | null;
|
|
17
|
+
companyNameZh: string | null;
|
|
18
|
+
companyNameEn: string | null;
|
|
19
|
+
unifiedSocialCreditCode: string | null;
|
|
20
|
+
addressZh: string | null;
|
|
21
|
+
addressEn: string | null;
|
|
22
|
+
phone: string | null;
|
|
23
|
+
email: string | null;
|
|
24
|
+
revision: number;
|
|
25
|
+
};
|
|
26
|
+
export type BankSettings = {
|
|
27
|
+
bankType: BankAccountType;
|
|
28
|
+
beneficiary: string;
|
|
29
|
+
bankName: string;
|
|
30
|
+
bankAddress: string;
|
|
31
|
+
cnapsCode: string;
|
|
32
|
+
accountNo: string;
|
|
33
|
+
swiftCode: string;
|
|
34
|
+
revision: number;
|
|
35
|
+
};
|
|
36
|
+
export type ProfitRuleSettings = {
|
|
37
|
+
status: ProfitRuleStatus;
|
|
38
|
+
ruleVersion: 'COMPLIANCE_V1';
|
|
39
|
+
minimumOrderProfitRate: string;
|
|
40
|
+
exchangeCostMinimum: string;
|
|
41
|
+
exchangeCostMaximum: string;
|
|
42
|
+
revision: number;
|
|
43
|
+
};
|
|
44
|
+
export type MonthlyRateSettings = {
|
|
45
|
+
id?: string;
|
|
46
|
+
year: number;
|
|
47
|
+
month: number;
|
|
48
|
+
currencyCode?: 'USD';
|
|
49
|
+
usdToCnyRate: string;
|
|
50
|
+
sourceType: 'MANUAL';
|
|
51
|
+
sourceReference: string;
|
|
52
|
+
revision?: number;
|
|
53
|
+
};
|
|
54
|
+
export type SettingsData = {
|
|
55
|
+
risk: RiskNoticeSettings;
|
|
56
|
+
company: CompanySettings;
|
|
57
|
+
banks: BankSettings[];
|
|
58
|
+
profit: ProfitRuleSettings;
|
|
59
|
+
rates: MonthlyRateSettings[];
|
|
60
|
+
};
|
|
61
|
+
export type SettingsSaveRequest = {
|
|
62
|
+
settingsType: 'risk';
|
|
63
|
+
expectedRevision: number;
|
|
64
|
+
values: {
|
|
65
|
+
content: string;
|
|
66
|
+
};
|
|
67
|
+
} | {
|
|
68
|
+
settingsType: 'company';
|
|
69
|
+
expectedRevision: number;
|
|
70
|
+
values: Omit<CompanySettings, 'revision'>;
|
|
71
|
+
} | {
|
|
72
|
+
settingsType: 'bank';
|
|
73
|
+
expectedRevision: number;
|
|
74
|
+
values: Omit<BankSettings, 'revision'>;
|
|
75
|
+
} | {
|
|
76
|
+
settingsType: 'profit';
|
|
77
|
+
expectedRevision: number;
|
|
78
|
+
values: Pick<ProfitRuleSettings, 'status' | 'minimumOrderProfitRate' | 'exchangeCostMinimum' | 'exchangeCostMaximum'>;
|
|
79
|
+
} | {
|
|
80
|
+
settingsType: 'rate';
|
|
81
|
+
expectedRevision: number;
|
|
82
|
+
values: MonthlyRateSettings;
|
|
83
|
+
};
|
|
84
|
+
export type SettingsRestoreRequest = {
|
|
85
|
+
settingsType: 'risk';
|
|
86
|
+
expectedRevision: number;
|
|
87
|
+
} | {
|
|
88
|
+
settingsType: 'company';
|
|
89
|
+
expectedRevision: number;
|
|
90
|
+
} | {
|
|
91
|
+
settingsType: 'bank';
|
|
92
|
+
bankType: BankAccountType;
|
|
93
|
+
expectedRevision: number;
|
|
94
|
+
} | {
|
|
95
|
+
settingsType: 'profit';
|
|
96
|
+
expectedRevision: number;
|
|
97
|
+
};
|
|
98
|
+
export type SettingsDeleteRateRequest = {
|
|
99
|
+
settingsType: 'rate';
|
|
100
|
+
id: string;
|
|
101
|
+
expectedRevision: number;
|
|
102
|
+
};
|
|
103
|
+
export type SettingsHistoryTransition<T extends {
|
|
104
|
+
revision: number;
|
|
105
|
+
}> = Readonly<{
|
|
106
|
+
settingsType: SettingsHistoryType;
|
|
107
|
+
operationType: SettingsHistoryOperationType;
|
|
108
|
+
snapshotVersion: 'v1';
|
|
109
|
+
beforeRevision: number;
|
|
110
|
+
afterRevision: number;
|
|
111
|
+
beforeSnapshot: Readonly<T>;
|
|
112
|
+
afterSnapshot: Readonly<T>;
|
|
113
|
+
}>;
|
|
114
|
+
//# sourceMappingURL=settings-contracts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings-contracts.d.ts","sourceRoot":"","sources":["../../../src/lib/remote-ui/settings-contracts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,gFAAiF,CAAA;AAC9G,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAA;AAE/D,eAAO,MAAM,gBAAgB,2CAA4C,CAAA;AACzE,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAA;AAC/D,eAAO,MAAM,kBAAkB,qCAAsC,CAAA;AACrE,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAA;AAClE,eAAO,MAAM,oBAAoB,wDAAyD,CAAA;AAC1F,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAA;AACvE,eAAO,MAAM,6BAA6B,gDAAiD,CAAA;AAC3F,MAAM,MAAM,4BAA4B,GAAG,CAAC,OAAO,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAA;AAEzF,MAAM,MAAM,kBAAkB,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAA;AACtE,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAA;IACtC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AACD,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,eAAe,CAAA;IACzB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AACD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,gBAAgB,CAAA;IACxB,WAAW,EAAE,eAAe,CAAA;IAC5B,sBAAsB,EAAE,MAAM,CAAA;IAC9B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AACD,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,KAAK,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,QAAQ,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,kBAAkB,CAAA;IACxB,OAAO,EAAE,eAAe,CAAA;IACxB,KAAK,EAAE,YAAY,EAAE,CAAA;IACrB,MAAM,EAAE,kBAAkB,CAAA;IAC1B,KAAK,EAAE,mBAAmB,EAAE,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,mBAAmB,GAC3B;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC/E;IAAE,YAAY,EAAE,SAAS,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,CAAA;CAAE,GAChG;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;CAAE,GAC1F;IAAE,YAAY,EAAE,QAAQ,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,GAAG,wBAAwB,GAAG,qBAAqB,GAAG,qBAAqB,CAAC,CAAA;CAAE,GAC3K;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,mBAAmB,CAAA;CAAE,CAAA;AAEnF,MAAM,MAAM,sBAAsB,GAC9B;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,GAClD;IAAE,YAAY,EAAE,SAAS,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,eAAe,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,GAC7E;IAAE,YAAY,EAAE,QAAQ,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,CAAA;AAExD,MAAM,MAAM,yBAAyB,GAAG;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,CAAA;AAEtG,MAAM,MAAM,yBAAyB,CAAC,CAAC,SAAS;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,IAAI,QAAQ,CAAC;IAC/E,YAAY,EAAE,mBAAmB,CAAA;IACjC,aAAa,EAAE,4BAA4B,CAAA;IAC3C,eAAe,EAAE,IAAI,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;IAC3B,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;CAC3B,CAAC,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export const SettingsSections = ['RISK', 'COMPANY', 'BANK_CNY', 'BANK_USD', 'PROFIT', 'MONTHLY_RATE'];
|
|
2
|
+
export const BankAccountTypes = ['OVERSEAS_CNY', 'OVERSEAS_USD'];
|
|
3
|
+
export const ProfitRuleStatuses = ['UNCONFIGURED', 'ACTIVE'];
|
|
4
|
+
export const SettingsHistoryTypes = ['RISK', 'COMPANY', 'BANK', 'PROFIT', 'RATE'];
|
|
5
|
+
export const SettingsHistoryOperationTypes = ['EDIT', 'RESTORE_DEFAULT', 'DELETE'];
|
|
6
|
+
//# sourceMappingURL=settings-contracts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings-contracts.js","sourceRoot":"","sources":["../../../src/lib/remote-ui/settings-contracts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,CAAU,CAAA;AAG9G,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,cAAc,EAAE,cAAc,CAAU,CAAA;AAEzE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAU,CAAA;AAErE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAA;AAE1F,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,QAAQ,CAAU,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
type UploadFileDescriptor = {
|
|
2
|
+
name: string;
|
|
3
|
+
type: string;
|
|
4
|
+
size: number;
|
|
5
|
+
};
|
|
6
|
+
export type UploadPolicy = {
|
|
7
|
+
maxUploadMb: number;
|
|
8
|
+
};
|
|
9
|
+
export declare const DEFAULT_UPLOAD_POLICY: Readonly<UploadPolicy>;
|
|
10
|
+
export declare function normalizeUploadPolicy(value: unknown): UploadPolicy;
|
|
11
|
+
export declare function configureUploadPolicy(value: UploadPolicy): UploadPolicy;
|
|
12
|
+
export declare function getConfiguredUploadPolicy(): UploadPolicy;
|
|
13
|
+
export declare function validateUploadFile(file: UploadFileDescriptor, accept?: string, policy?: UploadPolicy): {
|
|
14
|
+
extension: string;
|
|
15
|
+
mimeType: string;
|
|
16
|
+
};
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=upload-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload-policy.d.ts","sourceRoot":"","sources":["../../../src/lib/remote-ui/upload-policy.ts"],"names":[],"mappings":"AAAA,KAAK,oBAAoB,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAA;AAClD,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,YAAY,CAAsC,CAAA;AAI/F,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAKlE;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,YAAY,GAAG,YAAY,CAGvE;AAED,wBAAgB,yBAAyB,IAAI,YAAY,CAExD;AAcD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,oBAAoB,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,GAAE,YAAqC,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CActK"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export const DEFAULT_UPLOAD_POLICY = Object.freeze({ maxUploadMb: 20 });
|
|
2
|
+
let configuredUploadPolicy = { ...DEFAULT_UPLOAD_POLICY };
|
|
3
|
+
export function normalizeUploadPolicy(value) {
|
|
4
|
+
const maxUploadMb = value && typeof value === 'object' && !Array.isArray(value)
|
|
5
|
+
? Number(value.maxUploadMb)
|
|
6
|
+
: Number.NaN;
|
|
7
|
+
return { maxUploadMb: Number.isInteger(maxUploadMb) && maxUploadMb > 0 ? maxUploadMb : DEFAULT_UPLOAD_POLICY.maxUploadMb };
|
|
8
|
+
}
|
|
9
|
+
export function configureUploadPolicy(value) {
|
|
10
|
+
configuredUploadPolicy = normalizeUploadPolicy(value);
|
|
11
|
+
return { ...configuredUploadPolicy };
|
|
12
|
+
}
|
|
13
|
+
export function getConfiguredUploadPolicy() {
|
|
14
|
+
return { ...configuredUploadPolicy };
|
|
15
|
+
}
|
|
16
|
+
const MIME_TYPES_BY_EXTENSION = {
|
|
17
|
+
pdf: ['application/pdf'],
|
|
18
|
+
doc: ['application/msword'],
|
|
19
|
+
docx: ['application/vnd.openxmlformats-officedocument.wordprocessingml.document'],
|
|
20
|
+
xls: ['application/vnd.ms-excel'],
|
|
21
|
+
xlsx: ['application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'],
|
|
22
|
+
png: ['image/png'],
|
|
23
|
+
jpg: ['image/jpeg'],
|
|
24
|
+
jpeg: ['image/jpeg'],
|
|
25
|
+
webp: ['image/webp']
|
|
26
|
+
};
|
|
27
|
+
export function validateUploadFile(file, accept, policy = configuredUploadPolicy) {
|
|
28
|
+
if (!Number.isFinite(file.size) || file.size < 0)
|
|
29
|
+
throw new Error('无法确认上传文件大小');
|
|
30
|
+
const normalizedPolicy = normalizeUploadPolicy(policy);
|
|
31
|
+
if (file.size > normalizedPolicy.maxUploadMb * 1024 * 1024)
|
|
32
|
+
throw new Error(`文件不能超过 ${normalizedPolicy.maxUploadMb} MB`);
|
|
33
|
+
const extension = file.name.trim().split('.').pop()?.toLocaleLowerCase() ?? '';
|
|
34
|
+
const allowedMimeTypes = MIME_TYPES_BY_EXTENSION[extension];
|
|
35
|
+
if (!allowedMimeTypes)
|
|
36
|
+
throw new Error('仅支持 PDF、Word、Excel、PNG、JPEG 和 WEBP 文件');
|
|
37
|
+
const mimeType = file.type.trim().toLocaleLowerCase();
|
|
38
|
+
if (mimeType && !allowedMimeTypes.includes(mimeType))
|
|
39
|
+
throw new Error('文件扩展名与 MIME 类型不匹配');
|
|
40
|
+
if (accept && !matchesAccept(extension, mimeType || allowedMimeTypes[0], accept))
|
|
41
|
+
throw new Error('文件类型不符合当前上传要求');
|
|
42
|
+
return { extension, mimeType: mimeType || allowedMimeTypes[0] };
|
|
43
|
+
}
|
|
44
|
+
function matchesAccept(extension, mimeType, accept) {
|
|
45
|
+
const rules = accept.split(',').map((value) => value.trim().toLocaleLowerCase()).filter(Boolean);
|
|
46
|
+
if (!rules.length)
|
|
47
|
+
return true;
|
|
48
|
+
return rules.some((rule) => {
|
|
49
|
+
if (rule.startsWith('.'))
|
|
50
|
+
return rule.slice(1) === extension;
|
|
51
|
+
if (rule.endsWith('/*'))
|
|
52
|
+
return mimeType.startsWith(`${rule.slice(0, -1)}`);
|
|
53
|
+
return rule === mimeType;
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=upload-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload-policy.js","sourceRoot":"","sources":["../../../src/lib/remote-ui/upload-policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { type BankAccountType, type EnglishNameSource, type HsCodeSource, type HsCodeStatus, type AnalyticsQuery, type ProfitRuleStatus, type PurchaseOrderLineSourceType, type RefundRateSource, type RefundValidationMethod, type RestoreSettingsInput, type SettingsType, type VatRateSource } from './types.js';
|
|
2
|
+
export declare function parseSettingsType(value: unknown): SettingsType;
|
|
3
|
+
export declare function parseRestoreSettingsInput(input: Record<string, unknown>): RestoreSettingsInput;
|
|
4
|
+
export declare function parseExpectedRevision(value: unknown, allowZero?: boolean): number;
|
|
5
|
+
export declare function parseProfitRuleStatus(value: unknown): ProfitRuleStatus;
|
|
6
|
+
export declare function parseBankAccountType(value: unknown): BankAccountType;
|
|
7
|
+
export declare function parseAnalyticsQuery(input: Record<string, unknown>): AnalyticsQuery;
|
|
8
|
+
export declare function parseExchangeRateInput(input: {
|
|
9
|
+
year?: unknown;
|
|
10
|
+
month?: unknown;
|
|
11
|
+
usdToCnyRate?: unknown;
|
|
12
|
+
sourceType?: unknown;
|
|
13
|
+
}): {
|
|
14
|
+
year: number;
|
|
15
|
+
month: number;
|
|
16
|
+
usdToCnyRate: string;
|
|
17
|
+
sourceType: "MANUAL";
|
|
18
|
+
};
|
|
19
|
+
export declare function validateBankSettingsInput(input: Record<string, unknown>): {
|
|
20
|
+
bankType: "OVERSEAS_CNY" | "OVERSEAS_USD";
|
|
21
|
+
beneficiary: string;
|
|
22
|
+
bankName: string;
|
|
23
|
+
bankAddress: string;
|
|
24
|
+
cnapsCode: string;
|
|
25
|
+
accountNo: string;
|
|
26
|
+
swiftCode: string;
|
|
27
|
+
};
|
|
28
|
+
export declare function validateProfitSettingsInput(input: Record<string, unknown>): {
|
|
29
|
+
status: "UNCONFIGURED" | "ACTIVE";
|
|
30
|
+
minimumOrderProfitRate: string;
|
|
31
|
+
exchangeCostMinimum: string;
|
|
32
|
+
exchangeCostMaximum: string;
|
|
33
|
+
};
|
|
34
|
+
export declare function sanitizeRiskNoticeContent(value: unknown): string;
|
|
35
|
+
export declare function validateTaxRates(input: {
|
|
36
|
+
vatRate?: unknown;
|
|
37
|
+
refundRate?: unknown;
|
|
38
|
+
}, context?: Record<string, unknown>): {
|
|
39
|
+
vatRate: string;
|
|
40
|
+
refundRate: string;
|
|
41
|
+
};
|
|
42
|
+
export interface PurchaseLineDiscriminatorInput {
|
|
43
|
+
sourceType?: unknown;
|
|
44
|
+
englishNameSource?: unknown;
|
|
45
|
+
vatRateSource?: unknown;
|
|
46
|
+
hsCodeStatus?: unknown;
|
|
47
|
+
hsCodeSource?: unknown;
|
|
48
|
+
refundRateSource?: unknown;
|
|
49
|
+
refundValidationMethod?: unknown;
|
|
50
|
+
}
|
|
51
|
+
export interface ValidatedPurchaseLineDiscriminators {
|
|
52
|
+
sourceType?: PurchaseOrderLineSourceType | null;
|
|
53
|
+
englishNameSource?: EnglishNameSource | null;
|
|
54
|
+
vatRateSource?: VatRateSource | null;
|
|
55
|
+
hsCodeStatus?: HsCodeStatus | null;
|
|
56
|
+
hsCodeSource?: HsCodeSource | null;
|
|
57
|
+
refundRateSource?: RefundRateSource | null;
|
|
58
|
+
refundValidationMethod?: RefundValidationMethod | null;
|
|
59
|
+
}
|
|
60
|
+
export declare function validatePurchaseLineDiscriminators(input: PurchaseLineDiscriminatorInput): ValidatedPurchaseLineDiscriminators;
|
|
61
|
+
//# sourceMappingURL=runtime-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-validation.d.ts","sourceRoot":"","sources":["../../src/lib/runtime-validation.ts"],"names":[],"mappings":"AAEA,OAAO,EAIW,KAAK,eAAe,EAAE,KAAK,iBAAiB,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAClG,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAiC,KAAK,2BAA2B,EAAE,KAAK,gBAAgB,EAAE,KAAK,sBAAsB,EAAE,KAAK,oBAAoB,EAC1L,KAAK,YAAY,EAAE,KAAK,aAAa,EACtC,MAAM,YAAY,CAAA;AAEnB,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAE9D;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,oBAAoB,CAM9F;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,UAAQ,UAItE;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAEtE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CAEpE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,cAAc,CAqBlF;AAqBD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE;;;;;EAS9H;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;;;;EAQvE;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;EASzE;AAID,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAWhE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;EAKzH;AAED,MAAM,WAAW,8BAA8B;IAC7C,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACjC;AAED,MAAM,WAAW,mCAAmC;IAClD,UAAU,CAAC,EAAE,2BAA2B,GAAG,IAAI,CAAA;IAC/C,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAA;IAC5C,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAA;IACpC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;IAClC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;IAClC,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAC1C,sBAAsB,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAA;CACvD;AAED,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,8BAA8B,GAAG,mCAAmC,CAU7H"}
|