@chenchaolong/plugin-trade-compliance-workbench 1.0.78 → 1.0.80
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/dist/lib/import-jobs/import-command.builder.js +1 -1
- package/dist/lib/import-jobs/import-command.builder.js.map +1 -1
- package/dist/lib/remote-components/trade-compliance-workbench/app.js +1 -1
- package/dist/lib/remote-ui/pages/contracts.js +2 -2
- package/dist/lib/remote-ui/pages/contracts.js.map +1 -1
- package/dist/lib/workbench.middleware.d.ts +225 -20
- package/dist/lib/workbench.middleware.d.ts.map +1 -1
- package/dist/lib/workbench.middleware.js +32 -1
- package/dist/lib/workbench.middleware.js.map +1 -1
- package/dist/lib/workbench.service.js +36 -7
- package/dist/lib/workbench.service.js.map +1 -1
- package/package.json +1 -1
|
@@ -4207,8 +4207,8 @@ function normalizeCustomerContractAnalysisInput(value, enforceInvariant = true)
|
|
|
4207
4207
|
return { reviewedText, extractionStatus: value.extractionStatus };
|
|
4208
4208
|
}
|
|
4209
4209
|
function normalizeCustomerContractDraftClause(value, options = {}) {
|
|
4210
|
-
const sourceText = firstStringValue(value, ['sourceText', 'originalText', 'sourceContent']);
|
|
4211
|
-
const reviewedText = firstStringValue(value, ['reviewedText', 'translatedText', 'clauseSummary', 'summary', 'originalText']);
|
|
4210
|
+
const sourceText = firstStringValue(value, ['sourceText', 'originalText', 'sourceContent', 'originalClause', 'clauseOriginalText', 'rawText', 'source', 'evidence', 'quote']);
|
|
4211
|
+
const reviewedText = firstStringValue(value, ['reviewedText', 'translatedText', 'clauseSummary', 'summary', 'originalText', 'text', 'content', 'clauseText', 'reviewedTextZh', 'translation', 'translatedClause', 'extractedText']);
|
|
4212
4212
|
const hasReviewableText = Boolean(sourceText || reviewedText || firstStringValue(value, ['sourceContent']));
|
|
4213
4213
|
const extractionStatus = options.inferFoundFromText && hasReviewableText ? 'FOUND' : value.extractionStatus ?? (hasReviewableText ? 'FOUND' : 'NOT_FOUND');
|
|
4214
4214
|
const normalized = normalizeCustomerContractAnalysisInput({ extractionStatus, reviewedText });
|
|
@@ -4221,17 +4221,46 @@ function normalizeCustomerContractDraftClause(value, options = {}) {
|
|
|
4221
4221
|
};
|
|
4222
4222
|
}
|
|
4223
4223
|
function normalizeCustomerContractDraftPayload(payload) {
|
|
4224
|
+
const clauses = Array.isArray(payload.clauses) ? payload.clauses.map(clause => {
|
|
4225
|
+
if (!clause || typeof clause !== 'object' || Array.isArray(clause))
|
|
4226
|
+
return clause;
|
|
4227
|
+
return normalizeCustomerContractDraftClause(clause, { inferFoundFromText: true });
|
|
4228
|
+
}) : payload.clauses;
|
|
4224
4229
|
const normalized = {
|
|
4225
4230
|
...payload,
|
|
4226
|
-
clauses
|
|
4227
|
-
|
|
4228
|
-
return clause;
|
|
4229
|
-
return normalizeCustomerContractDraftClause(clause, { inferFoundFromText: true });
|
|
4230
|
-
}) : payload.clauses
|
|
4231
|
+
clauses,
|
|
4232
|
+
analyses: normalizeCustomerContractDraftAnalyses(payload.analyses, Array.isArray(payload.clauses) ? payload.clauses : [])
|
|
4231
4233
|
};
|
|
4232
4234
|
assertCustomerContractImportDraftPayload(normalized);
|
|
4233
4235
|
return normalized;
|
|
4234
4236
|
}
|
|
4237
|
+
function normalizeCustomerContractDraftAnalyses(analyses, rawClauses) {
|
|
4238
|
+
const result = Array.isArray(analyses) ? [...analyses] : [];
|
|
4239
|
+
const knownTypes = new Set(result
|
|
4240
|
+
.filter(value => value && typeof value === 'object' && !Array.isArray(value))
|
|
4241
|
+
.map(value => value.clauseType));
|
|
4242
|
+
for (const clause of rawClauses) {
|
|
4243
|
+
if (!clause || typeof clause !== 'object' || Array.isArray(clause))
|
|
4244
|
+
continue;
|
|
4245
|
+
const analysis = customerContractAnalysisFromRecord(clause);
|
|
4246
|
+
if (!analysis || knownTypes.has(analysis.clauseType))
|
|
4247
|
+
continue;
|
|
4248
|
+
knownTypes.add(analysis.clauseType);
|
|
4249
|
+
result.push(analysis);
|
|
4250
|
+
}
|
|
4251
|
+
return result;
|
|
4252
|
+
}
|
|
4253
|
+
function customerContractAnalysisFromRecord(value) {
|
|
4254
|
+
if (!ClauseTypes.includes(value.clauseType))
|
|
4255
|
+
return null;
|
|
4256
|
+
if (!RiskLevels.includes(value.riskLevel))
|
|
4257
|
+
return null;
|
|
4258
|
+
const riskMessageZh = firstStringValue(value, ['riskMessageZh', 'riskMessage', 'riskDescription', 'risk']);
|
|
4259
|
+
const suggestionZh = firstStringValue(value, ['suggestionZh', 'suggestion', 'recommendation', 'advice']);
|
|
4260
|
+
if (!riskMessageZh || !suggestionZh)
|
|
4261
|
+
return null;
|
|
4262
|
+
return { clauseType: value.clauseType, riskLevel: value.riskLevel, riskMessageZh, suggestionZh };
|
|
4263
|
+
}
|
|
4235
4264
|
function assertCustomerContractImportDraftPayload(payload) {
|
|
4236
4265
|
const customer = payload.customer && typeof payload.customer === 'object' && !Array.isArray(payload.customer) ? payload.customer : {};
|
|
4237
4266
|
const contract = payload.contract && typeof payload.contract === 'object' && !Array.isArray(payload.contract) ? payload.contract : {};
|