@tiangong-lca/tidas-sdk 0.1.39 → 0.1.41

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 (35) hide show
  1. package/dist/core/base/TidasEntity.d.ts.map +1 -1
  2. package/dist/core/base/TidasEntity.js +1 -0
  3. package/dist/core/base/TidasEntity.js.map +1 -1
  4. package/dist/core/config/ValidationConfig.d.ts +1 -1
  5. package/dist/core/config/ValidationConfig.d.ts.map +1 -1
  6. package/dist/core/config/ValidationConfig.js +2 -0
  7. package/dist/core/config/ValidationConfig.js.map +1 -1
  8. package/dist/core/copilot/ai.d.ts +28 -5
  9. package/dist/core/copilot/ai.d.ts.map +1 -1
  10. package/dist/core/copilot/ai.js +256 -161
  11. package/dist/core/copilot/ai.js.map +1 -1
  12. package/dist/core/index.d.ts +1 -0
  13. package/dist/core/index.d.ts.map +1 -1
  14. package/dist/core/index.js +1 -0
  15. package/dist/core/index.js.map +1 -1
  16. package/dist/core/validation/cas-number.d.ts +4 -0
  17. package/dist/core/validation/cas-number.d.ts.map +1 -0
  18. package/dist/core/validation/cas-number.js +18 -0
  19. package/dist/core/validation/cas-number.js.map +1 -0
  20. package/dist/parity/validate.d.ts.map +1 -1
  21. package/dist/parity/validate.js +2 -0
  22. package/dist/parity/validate.js.map +1 -1
  23. package/dist/runtime-assets/eilcd/schemas/ILCD_Common_DataTypes.xsd +1 -1
  24. package/dist/runtime-assets/tidas/methodologies/runtime_rulesets.json +378 -0
  25. package/dist/runtime-assets/tidas/methodologies/runtime_rulesets.schema.json +90 -0
  26. package/dist/runtime-assets/tidas/schemas/tidas_data_types.json +1 -0
  27. package/dist/schemas/tidas_data_types.schema.d.ts.map +1 -1
  28. package/dist/schemas/tidas_data_types.schema.js +16 -1
  29. package/dist/schemas/tidas_data_types.schema.js.map +1 -1
  30. package/dist/services/copilot-service.d.ts.map +1 -1
  31. package/dist/services/copilot-service.js +1 -0
  32. package/dist/services/copilot-service.js.map +1 -1
  33. package/dist/types/tidas_data_types.d.ts +1 -0
  34. package/dist/types/tidas_data_types.d.ts.map +1 -1
  35. package/package.json +1 -3
@@ -1,37 +1,4 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  Object.defineProperty(exports, "__esModule", { value: true });
36
3
  exports.extractJson = void 0;
37
4
  exports.extractValidJsonWithRetry = extractValidJsonWithRetry;
@@ -40,51 +7,214 @@ exports.fixJsonDataWithAI = fixJsonDataWithAI;
40
7
  exports.suggest = suggest;
41
8
  exports.reviewData = reviewData;
42
9
  exports.getModel = getModel;
43
- const openai_1 = require("@langchain/openai");
44
- const prompts_1 = require("@langchain/core/prompts");
45
- const output_parsers_1 = require("@langchain/core/output_parsers");
46
10
  const object_utils_1 = require("../../utils/object-utils");
47
11
  const base_1 = require("./base");
48
- async function getModel(modelConfig) {
49
- const chat_model = new openai_1.ChatOpenAI({
50
- model: modelConfig.model || process.env.OPENAI_CHAT_MODEL,
51
- configuration: {
52
- apiKey: modelConfig.apiKey || process.env.OPENAI_API_KEY,
53
- baseURL: modelConfig.baseURL || process.env.OPENAI_BASE_URL,
54
- },
55
- });
56
- return chat_model;
12
+ const DEFAULT_OPENAI_BASE_URL = 'https://api.openai.com/v1';
13
+ const DEFAULT_OPENAI_CHAT_MODEL = 'gpt-4.1-mini';
14
+ const DEFAULT_REQUEST_TIMEOUT_MS = 120000;
15
+ function getConfiguredApiKey(modelConfig) {
16
+ const apiKey = modelConfig.apiKey || process.env.OPENAI_API_KEY;
17
+ if (!apiKey) {
18
+ throw new Error('Missing OPENAI_API_KEY environment variable');
19
+ }
20
+ return apiKey;
21
+ }
22
+ function getConfiguredBaseUrl(modelConfig) {
23
+ return (modelConfig.baseURL ||
24
+ modelConfig.baseUrl ||
25
+ process.env.OPENAI_BASE_URL ||
26
+ DEFAULT_OPENAI_BASE_URL);
27
+ }
28
+ function getConfiguredModel(modelConfig) {
29
+ return (modelConfig.model ||
30
+ process.env.OPENAI_CHAT_MODEL ||
31
+ DEFAULT_OPENAI_CHAT_MODEL);
32
+ }
33
+ function resolveChatCompletionsUrl(baseUrl) {
34
+ const trimmed = baseUrl.replace(/\/+$/, '');
35
+ if (/\/chat\/completions$/i.test(trimmed)) {
36
+ return trimmed;
37
+ }
38
+ return `${trimmed}/chat/completions`;
39
+ }
40
+ function readTextContent(content) {
41
+ if (typeof content === 'string') {
42
+ return content;
43
+ }
44
+ if (!Array.isArray(content)) {
45
+ return '';
46
+ }
47
+ return content
48
+ .map((part) => {
49
+ if (typeof part === 'string') {
50
+ return part;
51
+ }
52
+ if (!part || typeof part !== 'object') {
53
+ return '';
54
+ }
55
+ const partRecord = part;
56
+ if (typeof partRecord.text === 'string') {
57
+ return partRecord.text;
58
+ }
59
+ if (typeof partRecord.content === 'string') {
60
+ return partRecord.content;
61
+ }
62
+ return '';
63
+ })
64
+ .join('');
65
+ }
66
+ function extractOutputText(response) {
67
+ if (!response || typeof response !== 'object') {
68
+ return '';
69
+ }
70
+ const asRecord = response;
71
+ const outputText = asRecord.output_text;
72
+ if (typeof outputText === 'string' && outputText.trim()) {
73
+ return outputText.trim();
74
+ }
75
+ const choices = asRecord.choices;
76
+ if (Array.isArray(choices)) {
77
+ for (const choice of choices) {
78
+ if (!choice || typeof choice !== 'object') {
79
+ continue;
80
+ }
81
+ const choiceRecord = choice;
82
+ const message = choiceRecord.message;
83
+ if (message && typeof message === 'object') {
84
+ const content = message.content;
85
+ const text = readTextContent(content).trim();
86
+ if (text) {
87
+ return text;
88
+ }
89
+ }
90
+ const text = readTextContent(choiceRecord.text).trim();
91
+ if (text) {
92
+ return text;
93
+ }
94
+ }
95
+ }
96
+ const output = asRecord.output;
97
+ if (Array.isArray(output)) {
98
+ for (const item of output) {
99
+ if (!item || typeof item !== 'object') {
100
+ continue;
101
+ }
102
+ const content = item.content;
103
+ const text = readTextContent(content).trim();
104
+ if (text) {
105
+ return text;
106
+ }
107
+ }
108
+ }
109
+ return '';
110
+ }
111
+ async function openAICompatibleChat(messages, modelConfig = {}, options = {}) {
112
+ const apiKey = getConfiguredApiKey(modelConfig);
113
+ const url = resolveChatCompletionsUrl(getConfiguredBaseUrl(modelConfig));
114
+ const timeoutMs = modelConfig.timeoutMs ?? DEFAULT_REQUEST_TIMEOUT_MS;
115
+ const controller = new AbortController();
116
+ const timeout = setTimeout(() => controller.abort(), timeoutMs);
117
+ const requestBody = {
118
+ model: getConfiguredModel(modelConfig),
119
+ messages,
120
+ temperature: options.temperature ?? modelConfig.temperature ?? 0,
121
+ };
122
+ try {
123
+ const response = await fetch(url, {
124
+ method: 'POST',
125
+ headers: {
126
+ Authorization: `Bearer ${apiKey}`,
127
+ 'Content-Type': 'application/json',
128
+ },
129
+ body: JSON.stringify(requestBody),
130
+ signal: controller.signal,
131
+ });
132
+ if (!response.ok) {
133
+ const errorText = await response.text();
134
+ throw new Error(`OpenAI-compatible chat completion request failed: ${response.status} ${response.statusText}: ${errorText.substring(0, 1000)}`);
135
+ }
136
+ const raw = (await response.json());
137
+ const text = extractOutputText(raw);
138
+ if (!text) {
139
+ throw new Error('OpenAI-compatible response did not contain output text');
140
+ }
141
+ return { text, raw };
142
+ }
143
+ finally {
144
+ clearTimeout(timeout);
145
+ }
146
+ }
147
+ class OpenAICompatibleChatModel {
148
+ constructor(modelConfig) {
149
+ this.modelConfig = modelConfig;
150
+ }
151
+ async invoke(input, options) {
152
+ const messages = typeof input === 'string'
153
+ ? [{ role: 'user', content: input }]
154
+ : input;
155
+ const result = await openAICompatibleChat(messages, this.modelConfig, options);
156
+ return { content: result.text, raw: result.raw };
157
+ }
158
+ }
159
+ async function getModel(modelConfig = {}) {
160
+ return new OpenAICompatibleChatModel(modelConfig);
161
+ }
162
+ function stripSingleCodeFence(text) {
163
+ const trimmed = text.trim();
164
+ const fenced = trimmed.match(/^```(?:json)?\s*([\s\S]*?)\s*```$/i);
165
+ return fenced?.[1] ? fenced[1].trim() : trimmed;
166
+ }
167
+ function parseJsonValue(text) {
168
+ const normalized = stripSingleCodeFence(text);
169
+ const candidates = [normalized];
170
+ const objectStart = normalized.indexOf('{');
171
+ const objectEnd = normalized.lastIndexOf('}');
172
+ if (objectStart >= 0 && objectEnd > objectStart) {
173
+ candidates.push(normalized.slice(objectStart, objectEnd + 1));
174
+ }
175
+ const arrayStart = normalized.indexOf('[');
176
+ const arrayEnd = normalized.lastIndexOf(']');
177
+ if (arrayStart >= 0 && arrayEnd > arrayStart) {
178
+ candidates.push(normalized.slice(arrayStart, arrayEnd + 1));
179
+ }
180
+ let lastError;
181
+ for (const candidate of [...new Set(candidates)]) {
182
+ try {
183
+ return JSON.parse(candidate);
184
+ }
185
+ catch (error) {
186
+ lastError = error;
187
+ }
188
+ }
189
+ console.error('Invalid JSON format Error:', JSON.stringify(lastError));
190
+ throw new Error(`Invalid JSON format: ${normalized.substring(0, 100)}...`);
57
191
  }
58
192
  /**
59
193
  * Custom extractor
60
194
  *
61
- * Extracts JSON content from a string where
62
- * JSON is embedded between ```json and ``` tags.
195
+ * Extracts JSON content from a string or model response. It accepts fenced JSON
196
+ * blocks and direct JSON so OpenAI-compatible providers do not need a heavyweight
197
+ * output parser dependency.
63
198
  */
64
199
  const extractJson = (output, schema, returnSingle = true) => {
65
- const text = typeof output === 'string'
66
- ? output
67
- : (output.content || output.toString());
200
+ if (typeof output !== 'string') {
201
+ if ((0, object_utils_1.validateSchema)(output, schema)) {
202
+ return output;
203
+ }
204
+ if (output && typeof output === 'object' && 'content' in output) {
205
+ output = output.content;
206
+ }
207
+ }
208
+ const text = typeof output === 'string' ? output : JSON.stringify(output);
68
209
  // Define the regular expression pattern to match JSON blocks
69
- const pattern = /```json(.*?)```/gs;
210
+ const pattern = /```(?:json)?\s*([\s\S]*?)```/gi;
70
211
  // Find all non-overlapping matches of the pattern in the string
71
- const matches = text.match(pattern);
72
- if (!matches || matches.length === 0) {
73
- throw new Error('No JSON blocks found in AI response');
74
- }
212
+ const matches = [...text.matchAll(pattern)];
213
+ const jsonBlocks = matches.length > 0 ? matches.map((match) => match[1] || '') : [text];
75
214
  // Process each match, attempting to parse it as JSON
76
215
  try {
77
- const results = matches.map((match) => {
78
- // Remove the markdown code block syntax to isolate the JSON string
79
- const jsonStr = match.replace(/```json|```/g, '').trim();
80
- let jsonData;
81
- try {
82
- jsonData = JSON.parse(jsonStr);
83
- }
84
- catch (parseError) {
85
- console.error('Invalid JSON format Error:', JSON.stringify(parseError));
86
- throw new Error(`Invalid JSON format: ${jsonStr.substring(0, 100)}...`);
87
- }
216
+ const results = jsonBlocks.map((jsonStr) => {
217
+ const jsonData = parseJsonValue(jsonStr);
88
218
  const isValid = (0, object_utils_1.validateSchema)(jsonData, schema);
89
219
  if (!isValid) {
90
220
  throw new Error(`JSON does not match expected schema`);
@@ -117,18 +247,20 @@ async function fixJsonDataWithAI(data, originalData, modelConfig) {
117
247
  `;
118
248
  const schema = (0, object_utils_1.generateSchema)(originalData);
119
249
  const model = await getModel(modelConfig || {});
120
- const parser = new output_parsers_1.JsonOutputParser();
121
- const prompt = new prompts_1.PromptTemplate({
122
- template: fixPrompt,
123
- inputVariables: ['originalData', 'data', 'schema'],
124
- });
125
- const chain = prompt.pipe(model).pipe(parser);
126
- const result = await chain.invoke({
127
- originalData: JSON.stringify(originalData),
128
- data: JSON.stringify(data),
129
- schema: JSON.stringify(schema),
130
- });
131
- return extractJson(result, schema);
250
+ const result = await model.invoke([
251
+ {
252
+ role: 'system',
253
+ content: 'You repair JSON while preserving the exact structure described by the provided schema.',
254
+ },
255
+ {
256
+ role: 'user',
257
+ content: fixPrompt
258
+ .replace('{originalData}', JSON.stringify(originalData))
259
+ .replace('{data}', JSON.stringify(data))
260
+ .replace('{schema}', JSON.stringify(schema)),
261
+ },
262
+ ], { temperature: 0 });
263
+ return extractJson(result.content, schema);
132
264
  }
133
265
  /**
134
266
  * Extracts valid JSON data from AI response with retry mechanism
@@ -250,29 +382,28 @@ matches the given schema: \`\`\`json\n{schema}\n\`\`\`.
250
382
  Make sure to wrap the answer in \`\`\`json and \`\`\` tags
251
383
 
252
384
  `;
253
- // Initialize the AI model
254
- const model = await getModel(modelConfig || {});
255
- // Create the prompt template with input variables
256
- const prompt = new prompts_1.PromptTemplate({
257
- template: suggestPrompt,
258
- inputVariables: ['data', 'methodology', 'schema'],
259
- });
260
385
  // Generate schema from the input data to ensure structure preservation
261
386
  const schema = (0, object_utils_1.generateSchema)(data);
262
- // Create parser for JSON output
263
- const parser = new output_parsers_1.JsonOutputParser();
264
- // Build the processing chain
265
- const chain = prompt.pipe(model).pipe(parser);
387
+ // Initialize the AI model
388
+ const model = await getModel(modelConfig || {});
266
389
  // Invoke the AI model with the formatted inputs
267
- const result = await chain.invoke({
268
- data: JSON.stringify(data),
269
- methodology: JSON.stringify(methodology),
270
- schema: JSON.stringify(schema),
271
- });
390
+ const result = await model.invoke([
391
+ {
392
+ role: 'system',
393
+ content: 'You improve TIDAS/LCA JSON content and return only valid JSON with the original structure preserved.',
394
+ },
395
+ {
396
+ role: 'user',
397
+ content: suggestPrompt
398
+ .replace('{data}', JSON.stringify(data))
399
+ .replace('{methodology}', JSON.stringify(methodology))
400
+ .replace('{schema}', JSON.stringify(schema)),
401
+ },
402
+ ], { temperature: modelConfig?.temperature ?? 0 });
272
403
  // Log performance metrics
273
404
  const endTime = Date.now();
274
405
  console.log(`Suggestion took ${endTime - startTime}ms`);
275
- return result;
406
+ return extractJson(result.content, schema);
276
407
  }
277
408
  /**
278
409
  * Reviews data against TIDAS methodology rules and provides structured feedback.
@@ -349,83 +480,47 @@ Provide a detailed review with the following structure:
349
480
 
350
481
  Output your answer as JSON in this exact format:
351
482
  \`\`\`json
352
- {{
483
+ {
353
484
  "review_comment": "Your detailed review here",
354
485
  "review_score": 75
355
- }}
486
+ }
356
487
  \`\`\`
357
488
  `;
358
- // Initialize the AI model with structured output
489
+ // Initialize the AI model
359
490
  const model = await getModel(modelConfig || {});
360
- // Define the output schema using Zod
361
- const { z } = await Promise.resolve().then(() => __importStar(require('zod')));
362
- const reviewSchema = z.object({
363
- review_comment: z
364
- .string()
365
- .describe('Detailed review comment with compliance assessment and suggestions'),
366
- review_score: z
367
- .number()
368
- .min(0)
369
- .max(100)
370
- .describe('Compliance score from 0-100'),
371
- });
372
- // Configure model with structured output
373
- const modelWithStructure = model.withStructuredOutput(reviewSchema, {
374
- name: 'review_output',
375
- });
376
- // Create the prompt template with input variables
377
- const prompt = new prompts_1.PromptTemplate({
378
- template: reviewPrompt,
379
- inputVariables: ['data', 'methodology'],
380
- });
381
- // Build the processing chain
382
- const chain = prompt.pipe(modelWithStructure);
491
+ const reviewSchema = {
492
+ type: 'object',
493
+ properties: {
494
+ review_comment: { type: 'string' },
495
+ review_score: { type: 'number' },
496
+ },
497
+ };
383
498
  try {
384
499
  // Invoke the AI model with the formatted inputs
385
- const result = await chain.invoke({
386
- data: JSON.stringify(data, null, 2),
387
- methodology: JSON.stringify(methodology, null, 2),
388
- });
500
+ const result = await model.invoke([
501
+ {
502
+ role: 'system',
503
+ content: 'You review TIDAS/LCA JSON against methodology rules and return only valid JSON.',
504
+ },
505
+ {
506
+ role: 'user',
507
+ content: reviewPrompt
508
+ .replace('{data}', JSON.stringify(data, null, 2))
509
+ .replace('{methodology}', JSON.stringify(methodology, null, 2)),
510
+ },
511
+ ], { temperature: modelConfig?.temperature ?? 0 });
512
+ const parsed = extractJson(result.content, reviewSchema);
513
+ if (parsed.review_score < 0 || parsed.review_score > 100) {
514
+ throw new Error('Review score must be between 0 and 100');
515
+ }
389
516
  // Log performance metrics
390
517
  const endTime = Date.now();
391
518
  console.log(`Review completed in ${endTime - startTime}ms`);
392
- console.log(`Review score: ${result.review_score}/100`);
393
- return result;
519
+ console.log(`Review score: ${parsed.review_score}/100`);
520
+ return parsed;
394
521
  }
395
522
  catch (error) {
396
- console.error('Review failed:', error);
397
- // Fallback to parsing from regular output if structured output fails
398
- try {
399
- const prompt = new prompts_1.PromptTemplate({
400
- template: reviewPrompt,
401
- inputVariables: ['data', 'methodology'],
402
- });
403
- const chain = prompt.pipe(model);
404
- const result = await chain.invoke({
405
- data: JSON.stringify(data, null, 2),
406
- methodology: JSON.stringify(methodology, null, 2),
407
- });
408
- // Extract JSON from the response
409
- const text = result.content;
410
- const jsonMatch = text.match(/```json\s*([\s\S]*?)\s*```/);
411
- if (jsonMatch && jsonMatch[1]) {
412
- const parsed = JSON.parse(jsonMatch[1]);
413
- // Validate the structure
414
- if (typeof parsed.review_comment === 'string' &&
415
- typeof parsed.review_score === 'number' &&
416
- parsed.review_score >= 0 &&
417
- parsed.review_score <= 100) {
418
- const endTime = Date.now();
419
- console.log(`Review completed in ${endTime - startTime}ms (fallback mode)`);
420
- console.log(`Review score: ${parsed.review_score}/100`);
421
- return parsed;
422
- }
423
- }
424
- throw new Error('Failed to extract valid review structure from AI response');
425
- }
426
- catch (fallbackError) {
427
- throw new Error(`Review failed: ${fallbackError.message}`);
428
- }
523
+ throw new Error(`Review failed: ${error.message}`);
429
524
  }
430
525
  }
431
526
  /**
@@ -539,7 +634,7 @@ async function suggestEntireObject(data, methodologyType, options) {
539
634
  // Apply suggestion with retry
540
635
  for (let retry = 1; retry <= opts.maxRetries; retry++) {
541
636
  try {
542
- const suggestedValue = await suggest(currentValue, rule);
637
+ const suggestedValue = await suggest(currentValue, rule, opts.modelConfig);
543
638
  // Validate structure is preserved
544
639
  const originalSchema = (0, object_utils_1.generateSchema)(currentValue);
545
640
  if ((0, object_utils_1.validateSchema)(suggestedValue, originalSchema)) {
@@ -1 +1 @@
1
- {"version":3,"file":"ai.js","sourceRoot":"","sources":["../../../src/core/copilot/ai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai.js","sourceRoot":"","sources":["../../../src/core/copilot/ai.ts"],"names":[],"mappings":"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"}
@@ -5,5 +5,6 @@
5
5
  export * from './factories';
6
6
  export * from './config/ValidationConfig';
7
7
  export * from './config/GlobalConfig';
8
+ export * from './validation/cas-number';
8
9
  export { deepClone, merge, get, set, updatePath } from '../utils/object-utils';
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,aAAa,CAAC;AAG5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AA2BtC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,aAAa,CAAC;AAG5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AA2BxC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC"}
@@ -24,6 +24,7 @@ __exportStar(require("./factories"), exports);
24
24
  // Validation configuration system
25
25
  __exportStar(require("./config/ValidationConfig"), exports);
26
26
  __exportStar(require("./config/GlobalConfig"), exports);
27
+ __exportStar(require("./validation/cas-number"), exports);
27
28
  // Zod Proxy for true property access with Schema validation
28
29
  // export {
29
30
  // ZodProxy,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;AAEH,+CAA+C;AAC/C,8CAA4B;AAE5B,kCAAkC;AAClC,4DAA0C;AAC1C,wDAAsC;AAEtC,4DAA4D;AAC5D,WAAW;AACX,cAAc;AACd,oBAAoB;AACpB,mBAAmB;AACnB,yBAAyB;AACzB,0BAA0B;AAC1B,kCAAkC;AAClC,wBAAwB;AAExB,oEAAoE;AACpE,WAAW;AACX,sBAAsB;AACtB,mBAAmB;AACnB,sBAAsB;AACtB,yBAAyB;AACzB,mBAAmB;AACnB,gBAAgB;AAChB,mBAAmB;AACnB,qBAAqB;AACrB,kBAAkB;AAClB,oBAAoB;AACpB,4BAA4B;AAE5B,oBAAoB;AACpB,sDAA+E;AAAtE,yGAAA,SAAS,OAAA;AAAE,qGAAA,KAAK,OAAA;AAAE,mGAAA,GAAG,OAAA;AAAE,mGAAA,GAAG,OAAA;AAAE,0GAAA,UAAU,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;AAEH,+CAA+C;AAC/C,8CAA4B;AAE5B,kCAAkC;AAClC,4DAA0C;AAC1C,wDAAsC;AACtC,0DAAwC;AAExC,4DAA4D;AAC5D,WAAW;AACX,cAAc;AACd,oBAAoB;AACpB,mBAAmB;AACnB,yBAAyB;AACzB,0BAA0B;AAC1B,kCAAkC;AAClC,wBAAwB;AAExB,oEAAoE;AACpE,WAAW;AACX,sBAAsB;AACtB,mBAAmB;AACnB,sBAAsB;AACtB,yBAAyB;AACzB,mBAAmB;AACnB,gBAAgB;AAChB,mBAAmB;AACnB,qBAAqB;AACrB,kBAAkB;AAClB,oBAAoB;AACpB,4BAA4B;AAE5B,oBAAoB;AACpB,sDAA+E;AAAtE,yGAAA,SAAS,OAAA;AAAE,qGAAA,KAAK,OAAA;AAAE,mGAAA,GAAG,OAAA;AAAE,mGAAA,GAAG,OAAA;AAAE,0GAAA,UAAU,OAAA"}
@@ -0,0 +1,4 @@
1
+ export declare const CAS_NUMBER_PATTERN: RegExp;
2
+ export declare const CAS_NUMBER_CHECKSUM_ERROR_CODE = "cas_number_checksum_error";
3
+ export declare function isValidCASNumber(value: unknown): value is string;
4
+ //# sourceMappingURL=cas-number.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cas-number.d.ts","sourceRoot":"","sources":["../../../src/core/validation/cas-number.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,QAAgC,CAAC;AAChE,eAAO,MAAM,8BAA8B,8BAA8B,CAAC;AAE1E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAYhE"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CAS_NUMBER_CHECKSUM_ERROR_CODE = exports.CAS_NUMBER_PATTERN = void 0;
4
+ exports.isValidCASNumber = isValidCASNumber;
5
+ exports.CAS_NUMBER_PATTERN = /^[0-9]{2,7}-[0-9]{2}-[0-9]$/;
6
+ exports.CAS_NUMBER_CHECKSUM_ERROR_CODE = 'cas_number_checksum_error';
7
+ function isValidCASNumber(value) {
8
+ if (typeof value !== 'string' || !exports.CAS_NUMBER_PATTERN.test(value)) {
9
+ return false;
10
+ }
11
+ const [bodyPart, middlePart, checkDigitPart] = value.split('-');
12
+ const digits = `${bodyPart}${middlePart}`;
13
+ const checksum = [...digits]
14
+ .reverse()
15
+ .reduce((sum, digit, index) => sum + Number(digit) * (index + 1), 0);
16
+ return checksum % 10 === Number(checkDigitPart);
17
+ }
18
+ //# sourceMappingURL=cas-number.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cas-number.js","sourceRoot":"","sources":["../../../src/core/validation/cas-number.ts"],"names":[],"mappings":";;;AAGA,4CAYC;AAfY,QAAA,kBAAkB,GAAG,6BAA6B,CAAC;AACnD,QAAA,8BAA8B,GAAG,2BAA2B,CAAC;AAE1E,SAAgB,gBAAgB,CAAC,KAAc;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,0BAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACjE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,GAAG,QAAQ,GAAG,UAAU,EAAE,CAAC;IAC1C,MAAM,QAAQ,GAAG,CAAC,GAAG,MAAM,CAAC;SACzB,OAAO,EAAE;SACT,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEvE,OAAO,QAAQ,GAAG,EAAE,KAAK,MAAM,CAAC,cAAc,CAAC,CAAC;AAClD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/parity/validate.ts"],"names":[],"mappings":"AAUA,OAAO,EAAwB,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAK3E,OAAO,EAGL,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAE7B,MAAM,UAAU,CAAC;AAsPlB,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,iBAAiB,EAC3B,QAAQ,UAAO,GACd,wBAAwB,CA0C1B;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,QAAQ,UAAQ,GACf,uBAAuB,CAYzB"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/parity/validate.ts"],"names":[],"mappings":"AAWA,OAAO,EAAwB,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAK3E,OAAO,EAGL,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAE7B,MAAM,UAAU,CAAC;AAwPlB,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,iBAAiB,EAC3B,QAAQ,UAAO,GACd,wBAAwB,CA0C1B;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,QAAQ,UAAQ,GACf,uBAAuB,CAYzB"}
@@ -9,6 +9,7 @@ const node_fs_1 = require("node:fs");
9
9
  const node_path_1 = __importDefault(require("node:path"));
10
10
  const node_url_1 = require("node:url");
11
11
  const jsonschema_1 = require("jsonschema");
12
+ const cas_number_1 = require("../core/validation/cas-number");
12
13
  const runtime_assets_1 = require("../tools/runtime-assets");
13
14
  const constants_1 = require("./constants");
14
15
  const validation_rules_1 = require("./validation-rules");
@@ -50,6 +51,7 @@ function loadSchemaRegistry(baseDir = __dirname) {
50
51
  return cachedRegistry;
51
52
  }
52
53
  const validator = new jsonschema_1.Validator();
54
+ validator.customFormats['cas-number'] = (input) => typeof input !== 'string' || (0, cas_number_1.isValidCASNumber)(input);
53
55
  const rootSchemas = new Map();
54
56
  for (const fileName of (0, node_fs_1.readdirSync)(schemasDir).sort()) {
55
57
  if (!fileName.endsWith('.json')) {