Erster Commit
This commit is contained in:
7
node_modules/ts-edifact/lib/edi/legacyMessageStructureParser.d.ts
generated
vendored
Normal file
7
node_modules/ts-edifact/lib/edi/legacyMessageStructureParser.d.ts
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
import { EdifactMessageSpecification, UNECEMessageStructureParser } from "./messageStructureParser";
|
||||
export declare class UNECELegacyMessageStructureParser extends UNECEMessageStructureParser {
|
||||
parseMetaDataPage(page: string): EdifactMessageSpecification;
|
||||
parseStructurePage(page: string, spec: EdifactMessageSpecification): string[];
|
||||
loadTypeSpec(): Promise<EdifactMessageSpecification>;
|
||||
}
|
||||
//# sourceMappingURL=legacyMessageStructureParser.d.ts.map
|
||||
1
node_modules/ts-edifact/lib/edi/legacyMessageStructureParser.d.ts.map
generated
vendored
Normal file
1
node_modules/ts-edifact/lib/edi/legacyMessageStructureParser.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"legacyMessageStructureParser.d.ts","sourceRoot":"./lib/","sources":["edi/legacyMessageStructureParser.ts"],"names":[],"mappings":"AAkBA,OAAO,EACH,2BAA2B,EAE3B,2BAA2B,EAC9B,MAAM,0BAA0B,CAAC;AAIlC,qBAAa,iCAAkC,SAAQ,2BAA2B;IAE9E,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,2BAA2B;IAM5D,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,2BAA2B,GAAG,MAAM,EAAE;IAM7E,YAAY,IAAI,OAAO,CAAC,2BAA2B,CAAC;CA0BvD"}
|
||||
52
node_modules/ts-edifact/lib/edi/legacyMessageStructureParser.js
generated
vendored
Normal file
52
node_modules/ts-edifact/lib/edi/legacyMessageStructureParser.js
generated
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.UNECELegacyMessageStructureParser = void 0;
|
||||
const messageStructureParser_1 = require("./messageStructureParser");
|
||||
const uneceMetaDataPageParser_1 = require("./uneceMetaDataPageParser");
|
||||
const uneceStructurePageParser_1 = require("./uneceStructurePageParser");
|
||||
class UNECELegacyMessageStructureParser extends messageStructureParser_1.UNECEMessageStructureParser {
|
||||
parseMetaDataPage(page) {
|
||||
const parser = new uneceMetaDataPageParser_1.UNECEMetaDataPageParser();
|
||||
parser.parse(page);
|
||||
return parser.spec;
|
||||
}
|
||||
parseStructurePage(page, spec) {
|
||||
const parser = new uneceStructurePageParser_1.UNECEStructurePageParser(spec);
|
||||
parser.parse(page);
|
||||
return parser.segmentNames;
|
||||
}
|
||||
loadTypeSpec() {
|
||||
const url = "./" + this.type + "_c.htm";
|
||||
return this.loadPage(url)
|
||||
.then((metaDataPage) => __awaiter(this, void 0, void 0, function* () {
|
||||
const spec = this.parseMetaDataPage(metaDataPage);
|
||||
const structurePage = yield this.loadPage(`./${this.type}_s.htm`);
|
||||
const segmentNames = this.parseStructurePage(structurePage, spec);
|
||||
const promises = segmentNames.map((name) => __awaiter(this, void 0, void 0, function* () {
|
||||
const page = yield this.loadPage(`../trsd/trsd${name.toLowerCase()}.htm`);
|
||||
return this.parseSegmentDefinitionPage(name, page, spec);
|
||||
}));
|
||||
return {
|
||||
specObj: spec,
|
||||
promises
|
||||
};
|
||||
}))
|
||||
.then((result) => Promise.all(result.promises)
|
||||
.then(() => result.specObj)
|
||||
.catch((error) => {
|
||||
console.warn(`Error while processing segment definition promises: Reason ${error.message}`);
|
||||
return result.specObj;
|
||||
}));
|
||||
}
|
||||
}
|
||||
exports.UNECELegacyMessageStructureParser = UNECELegacyMessageStructureParser;
|
||||
//# sourceMappingURL=legacyMessageStructureParser.js.map
|
||||
1
node_modules/ts-edifact/lib/edi/legacyMessageStructureParser.js.map
generated
vendored
Normal file
1
node_modules/ts-edifact/lib/edi/legacyMessageStructureParser.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"legacyMessageStructureParser.js","sourceRoot":"./lib/","sources":["edi/legacyMessageStructureParser.ts"],"names":[],"mappings":";;;;;;;;;;;;AAkBA,qEAIkC;AAClC,uEAAoE;AACpE,yEAAsE;AAEtE,MAAa,iCAAkC,SAAQ,oDAA2B;IAE9E,iBAAiB,CAAC,IAAY;QAC1B,MAAM,MAAM,GAA4B,IAAI,iDAAuB,EAAE,CAAC;QACtE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO,MAAM,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,kBAAkB,CAAC,IAAY,EAAE,IAAiC;QAC9D,MAAM,MAAM,GAA6B,IAAI,mDAAwB,CAAC,IAAI,CAAC,CAAC;QAC5E,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO,MAAM,CAAC,YAAY,CAAC;IAC/B,CAAC;IAED,YAAY;QACR,MAAM,GAAG,GAAW,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;QAChD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;aACpB,IAAI,CAAC,CAAO,YAAoB,EAAE,EAAE;YACjC,MAAM,IAAI,GAAgC,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;YAC/E,MAAM,aAAa,GAAW,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC;YAC1E,MAAM,YAAY,GAAa,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YAC5E,MAAM,QAAQ,GAA2C,YAAY,CAAC,GAAG,CAAC,CAAM,IAAI,EAAC,EAAE;gBACnF,MAAM,IAAI,GAAW,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;gBAClF,OAAO,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC7D,CAAC,CAAA,CAAC,CAAC;YACH,OAAO;gBACH,OAAO,EAAE,IAAI;gBACb,QAAQ;aACX,CAAC;QACN,CAAC,CAAA,CAAC;aACD,IAAI,CAAC,CAAC,MAAyB,EAAE,EAAE,CAChC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;aACvB,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;aAC1B,KAAK,CAAC,CAAC,KAAY,EAAE,EAAE;YACpB,OAAO,CAAC,IAAI,CAAC,8DAA8D,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5F,OAAO,MAAM,CAAC,OAAO,CAAC;QAC1B,CAAC,CAAC,CACT,CAAC;IACV,CAAC;CAEJ;AAxCD,8EAwCC"}
|
||||
45
node_modules/ts-edifact/lib/edi/messageStructureParser.d.ts
generated
vendored
Normal file
45
node_modules/ts-edifact/lib/edi/messageStructureParser.d.ts
generated
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
import { Dictionary, SegmentEntry, ElementEntry } from "../validator";
|
||||
import { MessageType } from "../tracker";
|
||||
import { HttpClient } from "../httpClient";
|
||||
export interface EdifactMessageSpecification {
|
||||
readonly messageType: string;
|
||||
readonly version: string;
|
||||
readonly release: string;
|
||||
readonly controllingAgency: string;
|
||||
readonly segmentTable: Dictionary<SegmentEntry>;
|
||||
readonly elementTable: Dictionary<ElementEntry>;
|
||||
readonly messageStructureDefinition: MessageType[];
|
||||
type(): string;
|
||||
versionAbbr(): string;
|
||||
}
|
||||
export declare class EdifactMessageSpecificationImpl implements EdifactMessageSpecification {
|
||||
messageType: string;
|
||||
version: string;
|
||||
release: string;
|
||||
controllingAgency: string;
|
||||
segmentTable: Dictionary<SegmentEntry>;
|
||||
elementTable: Dictionary<ElementEntry>;
|
||||
messageStructureDefinition: MessageType[];
|
||||
constructor(messageType: string, version: string, release: string, controllingAgency: string);
|
||||
type(): string;
|
||||
versionAbbr(): string;
|
||||
}
|
||||
export declare type ParsingResultType = {
|
||||
specObj: EdifactMessageSpecification;
|
||||
promises: Promise<EdifactMessageSpecification>[];
|
||||
};
|
||||
export interface MessageStructureParser {
|
||||
loadTypeSpec(): Promise<EdifactMessageSpecification>;
|
||||
}
|
||||
export declare class UNECEMessageStructureParser implements MessageStructureParser {
|
||||
readonly version: string;
|
||||
readonly type: string;
|
||||
readonly httpClient: HttpClient;
|
||||
constructor(version: string, type: string);
|
||||
private extractTextValue;
|
||||
protected loadPage(page: string): Promise<string>;
|
||||
protected parseSegmentDefinitionPage(segment: string, page: string, definition: EdifactMessageSpecification): Promise<EdifactMessageSpecification>;
|
||||
private parsePage;
|
||||
loadTypeSpec(): Promise<EdifactMessageSpecification>;
|
||||
}
|
||||
//# sourceMappingURL=messageStructureParser.d.ts.map
|
||||
1
node_modules/ts-edifact/lib/edi/messageStructureParser.d.ts.map
generated
vendored
Normal file
1
node_modules/ts-edifact/lib/edi/messageStructureParser.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"messageStructureParser.d.ts","sourceRoot":"./lib/","sources":["edi/messageStructureParser.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAI3C,MAAM,WAAW,2BAA2B;IACxC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IAMnC,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;IAKhD,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;IAIhD,QAAQ,CAAC,0BAA0B,EAAE,WAAW,EAAE,CAAC;IAEnD,IAAI,IAAI,MAAM,CAAC;IACf,WAAW,IAAI,MAAM,CAAC;CACzB;AAED,qBAAa,+BAAgC,YAAW,2BAA2B;IAE/E,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAE1B,YAAY,EAAE,UAAU,CAAC,YAAY,CAAC,CAAkC;IACxE,YAAY,EAAE,UAAU,CAAC,YAAY,CAAC,CAAkC;IACxE,0BAA0B,EAAE,WAAW,EAAE,CAAM;gBAEnC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM;IAOrF,IAAI,IAAI,MAAM;IAId,WAAW,IAAI,MAAM;CAG/B;AAkBD,oBAAY,iBAAiB,GAAG;IAC5B,OAAO,EAAE,2BAA2B,CAAC;IACrC,QAAQ,EAAE,OAAO,CAAC,2BAA2B,CAAC,EAAE,CAAC;CACpD,CAAC;AAEF,MAAM,WAAW,sBAAsB;IAEnC,YAAY,IAAI,OAAO,CAAC,2BAA2B,CAAC,CAAC;CACxD;AAED,qBAAa,2BAA4B,YAAW,sBAAsB;IAEtE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;gBAEpB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAQzC,OAAO,CAAC,gBAAgB;cAQR,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;cAKvC,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,2BAA2B,GAAG,OAAO,CAAC,2BAA2B,CAAC;YA8H1I,SAAS;IA0JvB,YAAY,IAAI,OAAO,CAAC,2BAA2B,CAAC;CAavD"}
|
||||
340
node_modules/ts-edifact/lib/edi/messageStructureParser.js
generated
vendored
Normal file
340
node_modules/ts-edifact/lib/edi/messageStructureParser.js
generated
vendored
Normal file
@@ -0,0 +1,340 @@
|
||||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.UNECEMessageStructureParser = exports.EdifactMessageSpecificationImpl = void 0;
|
||||
const validator_1 = require("../validator");
|
||||
const httpClient_1 = require("../httpClient");
|
||||
const htmlparser2_1 = require("htmlparser2");
|
||||
const util_1 = require("../util");
|
||||
class EdifactMessageSpecificationImpl {
|
||||
constructor(messageType, version, release, controllingAgency) {
|
||||
this.segmentTable = new validator_1.Dictionary();
|
||||
this.elementTable = new validator_1.Dictionary();
|
||||
this.messageStructureDefinition = [];
|
||||
this.messageType = messageType;
|
||||
this.version = version;
|
||||
this.release = release;
|
||||
this.controllingAgency = controllingAgency;
|
||||
}
|
||||
type() {
|
||||
return this.version + this.release + "_" + this.messageType;
|
||||
}
|
||||
versionAbbr() {
|
||||
return this.version + this.release;
|
||||
}
|
||||
}
|
||||
exports.EdifactMessageSpecificationImpl = EdifactMessageSpecificationImpl;
|
||||
var Part;
|
||||
(function (Part) {
|
||||
Part[Part["BeforeStructureDef"] = 0] = "BeforeStructureDef";
|
||||
Part[Part["RefLink"] = 1] = "RefLink";
|
||||
Part[Part["Pos"] = 2] = "Pos";
|
||||
Part[Part["Tag"] = 3] = "Tag";
|
||||
Part[Part["Deprecated"] = 4] = "Deprecated";
|
||||
Part[Part["Name"] = 5] = "Name";
|
||||
Part[Part["AfterStructureDef"] = 6] = "AfterStructureDef";
|
||||
})(Part || (Part = {}));
|
||||
var SegmentPart;
|
||||
(function (SegmentPart) {
|
||||
SegmentPart[SegmentPart["BeforeStructureDef"] = 0] = "BeforeStructureDef";
|
||||
SegmentPart[SegmentPart["Data"] = 1] = "Data";
|
||||
SegmentPart[SegmentPart["AfterStructureDef"] = 2] = "AfterStructureDef";
|
||||
})(SegmentPart || (SegmentPart = {}));
|
||||
class UNECEMessageStructureParser {
|
||||
constructor(version, type) {
|
||||
this.version = version.toLowerCase();
|
||||
this.type = type.toLowerCase();
|
||||
const baseUrl = "https://service.unece.org/trade/untdid/" + this.version + "/trmd/" + this.type + "_c.htm";
|
||||
this.httpClient = new httpClient_1.HttpClient(baseUrl);
|
||||
}
|
||||
extractTextValue(text, regex, index = 0) {
|
||||
const arr = regex.exec(text);
|
||||
if ((0, util_1.isDefined)(arr)) {
|
||||
return arr[index];
|
||||
}
|
||||
return "";
|
||||
}
|
||||
loadPage(page) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const data = yield this.httpClient.get(page);
|
||||
return data;
|
||||
});
|
||||
}
|
||||
parseSegmentDefinitionPage(segment, page, definition) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
if (definition.segmentTable.contains(segment)) {
|
||||
return Promise.resolve(definition);
|
||||
}
|
||||
const segEntry = { "requires": 0, "elements": [] };
|
||||
let state = SegmentPart.BeforeStructureDef;
|
||||
let dataSection = false;
|
||||
let skipAddingElement = false;
|
||||
let overflowLine = null;
|
||||
let complexEleId = null;
|
||||
let complexEleEntry = null;
|
||||
for (let line of page.split("\n")) {
|
||||
line = line.trimRight();
|
||||
if (overflowLine !== null) {
|
||||
line = overflowLine.trimRight() + " " + line.trim();
|
||||
overflowLine = null;
|
||||
}
|
||||
if (state === SegmentPart.BeforeStructureDef && line.includes('<HR>')) {
|
||||
dataSection = true;
|
||||
}
|
||||
else if (state === SegmentPart.BeforeStructureDef &&
|
||||
(line.includes("<H3>") || (dataSection && line.includes('<B>')))) {
|
||||
state = SegmentPart.Data;
|
||||
}
|
||||
else if (state === SegmentPart.Data && !line.includes("<P>")) {
|
||||
const regexp = /^([\d]*)\s*?([X|\\*]?)\s*<A.*>([a-zA-Z0-9]*)<\/A>([a-zA-Z0-9 ,\-\\/&]{44,})([M|C])\s*([\d]*)\s*([a-zA-Z0-9\\.]*).*$/g;
|
||||
const arr = regexp.exec(line);
|
||||
if ((0, util_1.isDefined)(arr)) {
|
||||
const segGroupId = arr[1] === "" ? undefined : arr[1];
|
||||
const id = arr[3];
|
||||
const mandatory = arr[5] === "M" ? true : false;
|
||||
const elementDef = arr[7] === "" ? undefined : arr[7];
|
||||
if (segGroupId) {
|
||||
if (id === "") {
|
||||
console.warn(`Could not determine element ID based on line ${line}`);
|
||||
continue;
|
||||
}
|
||||
segEntry.elements.push(id);
|
||||
skipAddingElement = false;
|
||||
if (mandatory) {
|
||||
segEntry.requires = segEntry.requires + 1;
|
||||
}
|
||||
if (elementDef) {
|
||||
if (complexEleEntry !== null && complexEleId !== null) {
|
||||
definition.elementTable.add(complexEleId, complexEleEntry);
|
||||
}
|
||||
complexEleId = null;
|
||||
complexEleEntry = null;
|
||||
if (definition.elementTable.contains(id)) {
|
||||
continue;
|
||||
}
|
||||
const eleEntry = { "requires": 0, "components": [] };
|
||||
if (mandatory) {
|
||||
eleEntry.requires = eleEntry.requires + 1;
|
||||
}
|
||||
eleEntry.components.push(elementDef);
|
||||
definition.elementTable.add(id, eleEntry);
|
||||
}
|
||||
else {
|
||||
if (complexEleEntry !== null && complexEleId !== null) {
|
||||
definition.elementTable.add(complexEleId, complexEleEntry);
|
||||
}
|
||||
if (definition.elementTable.contains(id)) {
|
||||
skipAddingElement = true;
|
||||
continue;
|
||||
}
|
||||
complexEleId = id;
|
||||
complexEleEntry = { "requires": 0, "components": [] };
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (!skipAddingElement) {
|
||||
if (complexEleEntry !== null && elementDef) {
|
||||
complexEleEntry.components.push(elementDef);
|
||||
complexEleEntry.requires = mandatory ? complexEleEntry.requires + 1 : complexEleEntry.requires;
|
||||
}
|
||||
else {
|
||||
if (definition.elementTable.contains(id)) {
|
||||
continue;
|
||||
}
|
||||
const eleEntry = { "requires": 0, "components": [] };
|
||||
if (mandatory) {
|
||||
eleEntry.requires = eleEntry.requires + 1;
|
||||
}
|
||||
if (elementDef) {
|
||||
eleEntry.components.push(elementDef);
|
||||
}
|
||||
definition.elementTable.add(id, eleEntry);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
const regexpAlt = /^([\d]*)\s*([X|\\*]?)\s*<A.*>([a-zA-Z0-9]*)<\/A>\s*([a-zA-Z0-9 \\-\\/&]*)/g;
|
||||
const arrAlt = regexpAlt.exec(line);
|
||||
if ((0, util_1.isDefined)(arrAlt)) {
|
||||
overflowLine = line;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (state === SegmentPart.Data && line.includes("<P>")) {
|
||||
state = SegmentPart.AfterStructureDef;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (complexEleEntry !== null && complexEleId !== null) {
|
||||
definition.elementTable.add(complexEleId, complexEleEntry);
|
||||
}
|
||||
if (segment !== "") {
|
||||
definition.segmentTable.add(segment, segEntry);
|
||||
}
|
||||
return Promise.resolve(definition);
|
||||
});
|
||||
}
|
||||
parsePage(page) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let definition;
|
||||
const handler = new htmlparser2_1.DomHandler();
|
||||
let state = Part.BeforeStructureDef;
|
||||
let section = "header";
|
||||
const segStack = [];
|
||||
const lookupSegmentPromises = [];
|
||||
const nextState = () => {
|
||||
if (state === Part.RefLink) {
|
||||
state = Part.Pos;
|
||||
}
|
||||
else if (state === Part.Pos) {
|
||||
state = Part.Deprecated;
|
||||
}
|
||||
else if (state === Part.Deprecated) {
|
||||
state = Part.Tag;
|
||||
}
|
||||
else if (state === Part.Tag) {
|
||||
state = Part.Name;
|
||||
}
|
||||
else if (state === Part.Name) {
|
||||
state = Part.RefLink;
|
||||
}
|
||||
};
|
||||
handler.ontext = (text) => {
|
||||
if (text.includes("Message Type") && text.includes("Version") && text.includes("Release")) {
|
||||
const messageType = this.extractTextValue(text, /Message Type\s*: ([A-Z]*)\s/g, 1);
|
||||
const version = this.extractTextValue(text, /Version\s*: ([A-Z]*)\s/g, 1);
|
||||
const release = this.extractTextValue(text, /Release\s*: ([0-9A-Z]*)\s/g, 1);
|
||||
const controllingAgency = this.extractTextValue(text, /Contr. Agency\s*: ([0-9A-Z]*)\s/g, 1);
|
||||
definition = new EdifactMessageSpecificationImpl(messageType, version, release, controllingAgency);
|
||||
segStack.push(definition.messageStructureDefinition);
|
||||
}
|
||||
else if (text.includes("Message structure")) {
|
||||
state = Part.RefLink;
|
||||
}
|
||||
else if (state !== Part.BeforeStructureDef && state !== Part.AfterStructureDef) {
|
||||
if (state === Part.RefLink) {
|
||||
}
|
||||
else if (state === Part.Pos) {
|
||||
}
|
||||
else if (state === Part.Deprecated) {
|
||||
if (text.includes("- Segment group")) {
|
||||
const regex = /^[\s*+-]*-* (Segment group \d*)\s*-*\s*([M|C])\s*(\d*)([-|\\+|\\|]*).*/g;
|
||||
const arr = regex.exec(text);
|
||||
if ((0, util_1.isDefined)(arr)) {
|
||||
const groupArray = [];
|
||||
const group = {
|
||||
content: groupArray,
|
||||
mandatory: arr[2] === "M" ? true : false,
|
||||
repetition: parseInt(arr[3]),
|
||||
name: arr[1],
|
||||
section: (0, util_1.isDefined)(section) ? section : undefined
|
||||
};
|
||||
section = null;
|
||||
segStack[segStack.length - 1].push(group);
|
||||
segStack.push(groupArray);
|
||||
}
|
||||
state = Part.RefLink;
|
||||
}
|
||||
else {
|
||||
nextState();
|
||||
}
|
||||
}
|
||||
else if (state === Part.Tag) {
|
||||
const _section = section !== null ? section : undefined;
|
||||
let _data;
|
||||
if (definition) {
|
||||
_data = text === "UNH" ? [definition.versionAbbr(), definition.messageType] : undefined;
|
||||
}
|
||||
const segment = {
|
||||
content: text,
|
||||
mandatory: false,
|
||||
repetition: 0,
|
||||
data: _data,
|
||||
section: _section
|
||||
};
|
||||
if (definition) {
|
||||
segStack[segStack.length - 1].push(segment);
|
||||
}
|
||||
section = null;
|
||||
}
|
||||
else if (state === Part.Name) {
|
||||
const regex = /^([a-zA-Z /\\-]*)\s*?([M|C])\s*?([0-9]*?)([^0-9]*)$/g;
|
||||
const arr = regex.exec(text);
|
||||
if ((0, util_1.isDefined)(arr)) {
|
||||
const sMandatory = arr[2];
|
||||
const sRepetition = arr[3];
|
||||
const remainder = arr[4];
|
||||
const segArr = segStack[segStack.length - 1];
|
||||
const segData = segArr[segArr.length - 1];
|
||||
segData.mandatory = sMandatory === "M" ? true : false;
|
||||
segData.repetition = parseInt(sRepetition);
|
||||
if (remainder.includes("-") && remainder.includes("+")) {
|
||||
for (let i = 0; i < remainder.split("+").length - 1; i++) {
|
||||
segStack.pop();
|
||||
}
|
||||
}
|
||||
nextState();
|
||||
}
|
||||
if (text.includes("DETAIL SECTION")) {
|
||||
section = "detail";
|
||||
}
|
||||
else if (text.includes("SUMMARY SECTION")) {
|
||||
section = "summary";
|
||||
}
|
||||
}
|
||||
else {
|
||||
console.warn(`Unknown part: ${text}`);
|
||||
}
|
||||
}
|
||||
};
|
||||
handler.onopentag = (name, attribs) => {
|
||||
if (name === "p" && state !== Part.BeforeStructureDef && state !== Part.AfterStructureDef) {
|
||||
state = Part.AfterStructureDef;
|
||||
}
|
||||
if (state === Part.Tag && attribs.href !== undefined) {
|
||||
if (definition) {
|
||||
const end = attribs.href.indexOf(".htm");
|
||||
const curSeg = attribs.href.substring(end - 3, end).toUpperCase();
|
||||
if (curSeg !== "UNH" && curSeg !== "UNS" && curSeg !== "UNT") {
|
||||
const def = definition;
|
||||
lookupSegmentPromises.push(this.loadPage(attribs.href)
|
||||
.then(result => this.parseSegmentDefinitionPage(curSeg, result, def)));
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
handler.onclosetag = () => {
|
||||
nextState();
|
||||
};
|
||||
const parser = new htmlparser2_1.Parser(handler);
|
||||
parser.write(page);
|
||||
parser.end();
|
||||
if (definition) {
|
||||
return Promise.resolve({ specObj: definition, promises: lookupSegmentPromises });
|
||||
}
|
||||
return Promise.reject(new Error("Could not extract values from read page successfully"));
|
||||
});
|
||||
}
|
||||
loadTypeSpec() {
|
||||
const url = "./" + this.type + "_c.htm";
|
||||
return this.loadPage(url)
|
||||
.then((page) => this.parsePage(page))
|
||||
.then((result) => Promise.all(result.promises)
|
||||
.then(() => result.specObj)
|
||||
.catch((error) => {
|
||||
console.warn(`Error while processing segment definition promises: Reason ${error.message}`);
|
||||
return result.specObj;
|
||||
}));
|
||||
}
|
||||
}
|
||||
exports.UNECEMessageStructureParser = UNECEMessageStructureParser;
|
||||
//# sourceMappingURL=messageStructureParser.js.map
|
||||
1
node_modules/ts-edifact/lib/edi/messageStructureParser.js.map
generated
vendored
Normal file
1
node_modules/ts-edifact/lib/edi/messageStructureParser.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
56
node_modules/ts-edifact/lib/edi/separators.d.ts
generated
vendored
Normal file
56
node_modules/ts-edifact/lib/edi/separators.d.ts
generated
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
interface Builder {
|
||||
build(): Separators;
|
||||
}
|
||||
export declare class Separators {
|
||||
componentSeparator: string;
|
||||
elementSeparator: string;
|
||||
decimalSeparator: string;
|
||||
releaseIndicator: string | undefined;
|
||||
blankSpace: string | undefined;
|
||||
segmentTerminator: string;
|
||||
segmentTagDelimiter: string | undefined;
|
||||
repetitionElementSeparator: string | undefined;
|
||||
constructor(componentSeparator: string, elementSeparator: string, decimalSeparator: string | undefined, segmentTerminator: string, releaseIndicator: string | undefined, blankSapce: string | undefined, segmentTagDelimiter: string | undefined, repetitionElementSeparator: string | undefined);
|
||||
static escapeIfNeeded(separator: string): string;
|
||||
}
|
||||
export declare class EdifactSeparatorsBuilder implements Builder {
|
||||
private _componentSeparator;
|
||||
private _elementSeparator;
|
||||
private _decimalSeparator;
|
||||
private _releaseIndicator;
|
||||
private _blankSpace;
|
||||
private _segmentTerminator;
|
||||
componentSeparator(componentSeparator: string): EdifactSeparatorsBuilder;
|
||||
elementSeparator(elementSeparator: string): EdifactSeparatorsBuilder;
|
||||
decimalSeparator(decimalSeparator: string): EdifactSeparatorsBuilder;
|
||||
releaseIndicator(releaseIndicator: string): EdifactSeparatorsBuilder;
|
||||
blankSpace(blankSpace: string): EdifactSeparatorsBuilder;
|
||||
segmentTerminator(segmentTerminator: string): EdifactSeparatorsBuilder;
|
||||
build(): Separators;
|
||||
}
|
||||
export declare class TradacomsSeparatorsBuilder implements Builder {
|
||||
private _componentSeparator;
|
||||
private _elementSeparator;
|
||||
private _decimalSeparator;
|
||||
private _segmentTagDelimiter;
|
||||
private _segmentTerminator;
|
||||
componentSeparator(componentSeparator: string): TradacomsSeparatorsBuilder;
|
||||
elementSeparator(elementSeparator: string): TradacomsSeparatorsBuilder;
|
||||
decimalSeparator(decimalSeparator: string): TradacomsSeparatorsBuilder;
|
||||
segmentTagDelimiter(segmentTagDelimiter: string): TradacomsSeparatorsBuilder;
|
||||
segmentTerminator(segmentTerminator: string): TradacomsSeparatorsBuilder;
|
||||
build(): Separators;
|
||||
}
|
||||
export declare class AnsiX12SeparatorsBuilder implements Builder {
|
||||
private _componentSeparator;
|
||||
private _elementSeparator;
|
||||
private _repetitionElementSeparator;
|
||||
private _segmentTerminator;
|
||||
componentSeparator(componentSeparator: string): AnsiX12SeparatorsBuilder;
|
||||
elementSeparator(elementSeparator: string): AnsiX12SeparatorsBuilder;
|
||||
repetitionElementSeparator(repetitionElementSeparator: string): AnsiX12SeparatorsBuilder;
|
||||
segmentTerminator(segmentTerminator: string): AnsiX12SeparatorsBuilder;
|
||||
build(): Separators;
|
||||
}
|
||||
export {};
|
||||
//# sourceMappingURL=separators.d.ts.map
|
||||
1
node_modules/ts-edifact/lib/edi/separators.d.ts.map
generated
vendored
Normal file
1
node_modules/ts-edifact/lib/edi/separators.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"separators.d.ts","sourceRoot":"./lib/","sources":["edi/separators.ts"],"names":[],"mappings":"AAkBA,UAAU,OAAO;IACb,KAAK,IAAI,UAAU,CAAC;CACvB;AAED,qBAAa,UAAU;IAEnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,0BAA0B,EAAE,MAAM,GAAG,SAAS,CAAC;gBAG3C,kBAAkB,EAAE,MAAM,EAC1B,gBAAgB,EAAE,MAAM,EACxB,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,iBAAiB,EAAE,MAAM,EACzB,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,mBAAmB,EAAE,MAAM,GAAG,SAAS,EACvC,0BAA0B,EAAE,MAAM,GAAG,SAAS;WAwBpC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;CAU1D;AAED,qBAAa,wBAAyB,YAAW,OAAO;IAEpD,OAAO,CAAC,mBAAmB,CAAO;IAClC,OAAO,CAAC,iBAAiB,CAAO;IAChC,OAAO,CAAC,iBAAiB,CAAO;IAChC,OAAO,CAAC,iBAAiB,CAAO;IAChC,OAAO,CAAC,WAAW,CAAO;IAC1B,OAAO,CAAC,kBAAkB,CAAO;IAE1B,kBAAkB,CAAC,kBAAkB,EAAE,MAAM,GAAG,wBAAwB;IAKxE,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,wBAAwB;IAKpE,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,wBAAwB;IAKpE,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,wBAAwB;IAKpE,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,wBAAwB;IAKxD,iBAAiB,CAAC,iBAAiB,EAAE,MAAM,GAAG,wBAAwB;IAKtE,KAAK,IAAI,UAAU;CAa7B;AAED,qBAAa,0BAA2B,YAAW,OAAO;IACtD,OAAO,CAAC,mBAAmB,CAAO;IAClC,OAAO,CAAC,iBAAiB,CAAO;IAChC,OAAO,CAAC,iBAAiB,CAAO;IAChC,OAAO,CAAC,oBAAoB,CAAO;IACnC,OAAO,CAAC,kBAAkB,CAAO;IAE1B,kBAAkB,CAAC,kBAAkB,EAAE,MAAM,GAAG,0BAA0B;IAK1E,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,0BAA0B;IAKtE,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,0BAA0B;IAKtE,mBAAmB,CAAC,mBAAmB,EAAE,MAAM,GAAG,0BAA0B;IAK5E,iBAAiB,CAAC,iBAAiB,EAAE,MAAM,GAAG,0BAA0B;IAKxE,KAAK,IAAI,UAAU;CAa7B;AAED,qBAAa,wBAAyB,YAAW,OAAO;IACpD,OAAO,CAAC,mBAAmB,CAAO;IAClC,OAAO,CAAC,iBAAiB,CAAO;IAChC,OAAO,CAAC,2BAA2B,CAAO;IAC1C,OAAO,CAAC,kBAAkB,CAAO;IAE1B,kBAAkB,CAAC,kBAAkB,EAAE,MAAM,GAAG,wBAAwB;IAKxE,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,wBAAwB;IAKpE,0BAA0B,CAAC,0BAA0B,EAAE,MAAM,GAAG,wBAAwB;IAKxF,iBAAiB,CAAC,iBAAiB,EAAE,MAAM,GAAG,wBAAwB;IAKtE,KAAK,IAAI,UAAU;CAa7B"}
|
||||
141
node_modules/ts-edifact/lib/edi/separators.js
generated
vendored
Normal file
141
node_modules/ts-edifact/lib/edi/separators.js
generated
vendored
Normal file
@@ -0,0 +1,141 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.AnsiX12SeparatorsBuilder = exports.TradacomsSeparatorsBuilder = exports.EdifactSeparatorsBuilder = exports.Separators = void 0;
|
||||
class Separators {
|
||||
constructor(componentSeparator, elementSeparator, decimalSeparator, segmentTerminator, releaseIndicator, blankSapce, segmentTagDelimiter, repetitionElementSeparator) {
|
||||
this.componentSeparator = componentSeparator;
|
||||
this.elementSeparator = elementSeparator;
|
||||
if (decimalSeparator) {
|
||||
this.decimalSeparator = decimalSeparator;
|
||||
}
|
||||
else {
|
||||
this.decimalSeparator = ".";
|
||||
}
|
||||
this.segmentTerminator = segmentTerminator;
|
||||
if (releaseIndicator) {
|
||||
this.releaseIndicator = releaseIndicator;
|
||||
}
|
||||
if (blankSapce) {
|
||||
this.blankSpace = blankSapce;
|
||||
}
|
||||
if (segmentTagDelimiter) {
|
||||
this.segmentTagDelimiter = segmentTagDelimiter;
|
||||
}
|
||||
if (repetitionElementSeparator) {
|
||||
this.repetitionElementSeparator = repetitionElementSeparator;
|
||||
}
|
||||
}
|
||||
static escapeIfNeeded(separator) {
|
||||
let sep = separator;
|
||||
if (separator === "+" || separator === "*" || separator === "\\" || separator === "~" || separator === "$"
|
||||
|| separator === "(" || separator === ")" || separator === "^" || separator === "?" || separator === "."
|
||||
|| separator === "|" || separator === "{" || separator === "}" || separator === "[" || separator === "]") {
|
||||
sep = "\\" + sep;
|
||||
}
|
||||
return sep;
|
||||
}
|
||||
}
|
||||
exports.Separators = Separators;
|
||||
class EdifactSeparatorsBuilder {
|
||||
constructor() {
|
||||
this._componentSeparator = ":";
|
||||
this._elementSeparator = "+";
|
||||
this._decimalSeparator = ".";
|
||||
this._releaseIndicator = "?";
|
||||
this._blankSpace = " ";
|
||||
this._segmentTerminator = "'";
|
||||
}
|
||||
componentSeparator(componentSeparator) {
|
||||
this._componentSeparator = componentSeparator;
|
||||
return this;
|
||||
}
|
||||
elementSeparator(elementSeparator) {
|
||||
this._elementSeparator = elementSeparator;
|
||||
return this;
|
||||
}
|
||||
decimalSeparator(decimalSeparator) {
|
||||
this._decimalSeparator = decimalSeparator;
|
||||
return this;
|
||||
}
|
||||
releaseIndicator(releaseIndicator) {
|
||||
this._releaseIndicator = releaseIndicator;
|
||||
return this;
|
||||
}
|
||||
blankSpace(blankSpace) {
|
||||
this._blankSpace = blankSpace;
|
||||
return this;
|
||||
}
|
||||
segmentTerminator(segmentTerminator) {
|
||||
this._segmentTerminator = segmentTerminator;
|
||||
return this;
|
||||
}
|
||||
build() {
|
||||
const separators = new Separators(this._componentSeparator, this._elementSeparator, this._decimalSeparator, this._segmentTerminator, this._releaseIndicator, this._blankSpace, undefined, undefined);
|
||||
return separators;
|
||||
}
|
||||
}
|
||||
exports.EdifactSeparatorsBuilder = EdifactSeparatorsBuilder;
|
||||
class TradacomsSeparatorsBuilder {
|
||||
constructor() {
|
||||
this._componentSeparator = ":";
|
||||
this._elementSeparator = "+";
|
||||
this._decimalSeparator = ".";
|
||||
this._segmentTagDelimiter = "=";
|
||||
this._segmentTerminator = "'";
|
||||
}
|
||||
componentSeparator(componentSeparator) {
|
||||
this._componentSeparator = componentSeparator;
|
||||
return this;
|
||||
}
|
||||
elementSeparator(elementSeparator) {
|
||||
this._elementSeparator = elementSeparator;
|
||||
return this;
|
||||
}
|
||||
decimalSeparator(decimalSeparator) {
|
||||
this._decimalSeparator = decimalSeparator;
|
||||
return this;
|
||||
}
|
||||
segmentTagDelimiter(segmentTagDelimiter) {
|
||||
this._segmentTagDelimiter = segmentTagDelimiter;
|
||||
return this;
|
||||
}
|
||||
segmentTerminator(segmentTerminator) {
|
||||
this._segmentTerminator = segmentTerminator;
|
||||
return this;
|
||||
}
|
||||
build() {
|
||||
const separators = new Separators(this._componentSeparator, this._elementSeparator, this._decimalSeparator, this._segmentTerminator, undefined, undefined, this._segmentTagDelimiter, undefined);
|
||||
return separators;
|
||||
}
|
||||
}
|
||||
exports.TradacomsSeparatorsBuilder = TradacomsSeparatorsBuilder;
|
||||
class AnsiX12SeparatorsBuilder {
|
||||
constructor() {
|
||||
this._componentSeparator = ":";
|
||||
this._elementSeparator = "*";
|
||||
this._repetitionElementSeparator = "^";
|
||||
this._segmentTerminator = "'";
|
||||
}
|
||||
componentSeparator(componentSeparator) {
|
||||
this._componentSeparator = componentSeparator;
|
||||
return this;
|
||||
}
|
||||
elementSeparator(elementSeparator) {
|
||||
this._elementSeparator = elementSeparator;
|
||||
return this;
|
||||
}
|
||||
repetitionElementSeparator(repetitionElementSeparator) {
|
||||
this._repetitionElementSeparator = repetitionElementSeparator;
|
||||
return this;
|
||||
}
|
||||
segmentTerminator(segmentTerminator) {
|
||||
this._segmentTerminator = segmentTerminator;
|
||||
return this;
|
||||
}
|
||||
build() {
|
||||
const separators = new Separators(this._componentSeparator, this._elementSeparator, undefined, this._segmentTerminator, undefined, undefined, undefined, this._repetitionElementSeparator);
|
||||
return separators;
|
||||
}
|
||||
}
|
||||
exports.AnsiX12SeparatorsBuilder = AnsiX12SeparatorsBuilder;
|
||||
//# sourceMappingURL=separators.js.map
|
||||
1
node_modules/ts-edifact/lib/edi/separators.js.map
generated
vendored
Normal file
1
node_modules/ts-edifact/lib/edi/separators.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"separators.js","sourceRoot":"./lib/","sources":["edi/separators.ts"],"names":[],"mappings":"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"}
|
||||
17
node_modules/ts-edifact/lib/edi/uneceDomHandler.d.ts
generated
vendored
Normal file
17
node_modules/ts-edifact/lib/edi/uneceDomHandler.d.ts
generated
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
import { DomHandler, DomHandlerOptions } from "htmlparser2";
|
||||
import { Node, Element } from "htmlparser2/node_modules/domhandler";
|
||||
declare type Callback = (error: Error | null, dom: Node[]) => void;
|
||||
declare type ElementCallback = (element: Element) => void;
|
||||
export declare abstract class UNECEDomHandler extends DomHandler {
|
||||
constructor(callback?: Callback | null, options?: DomHandlerOptions | null, elementCB?: ElementCallback);
|
||||
ontext(data: string): void;
|
||||
abstract onText(data: string): void;
|
||||
onopentag(name: string, attribs: {
|
||||
[key: string]: string;
|
||||
}): void;
|
||||
abstract onOpenTag(name: string, attribs: {
|
||||
[key: string]: string;
|
||||
}): void;
|
||||
}
|
||||
export {};
|
||||
//# sourceMappingURL=uneceDomHandler.d.ts.map
|
||||
1
node_modules/ts-edifact/lib/edi/uneceDomHandler.d.ts.map
generated
vendored
Normal file
1
node_modules/ts-edifact/lib/edi/uneceDomHandler.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"uneceDomHandler.d.ts","sourceRoot":"./lib/","sources":["edi/uneceDomHandler.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAEpE,aAAK,QAAQ,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;AAC3D,aAAK,eAAe,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;AAkBlD,8BAAsB,eAAgB,SAAQ,UAAU;gBAExC,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,EAClC,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI,EAClC,SAAS,CAAC,EAAE,eAAe;IAYtB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;aAYnB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAUjC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,IAAI;aAc1D,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,IAAI;CACpF"}
|
||||
19
node_modules/ts-edifact/lib/edi/uneceDomHandler.js
generated
vendored
Normal file
19
node_modules/ts-edifact/lib/edi/uneceDomHandler.js
generated
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.UNECEDomHandler = void 0;
|
||||
const htmlparser2_1 = require("htmlparser2");
|
||||
class UNECEDomHandler extends htmlparser2_1.DomHandler {
|
||||
constructor(callback, options, elementCB) {
|
||||
super(callback, options, elementCB);
|
||||
}
|
||||
ontext(data) {
|
||||
super.ontext(data);
|
||||
this.onText(data);
|
||||
}
|
||||
onopentag(name, attribs) {
|
||||
super.onopentag(name, attribs);
|
||||
this.onOpenTag(name, attribs);
|
||||
}
|
||||
}
|
||||
exports.UNECEDomHandler = UNECEDomHandler;
|
||||
//# sourceMappingURL=uneceDomHandler.js.map
|
||||
1
node_modules/ts-edifact/lib/edi/uneceDomHandler.js.map
generated
vendored
Normal file
1
node_modules/ts-edifact/lib/edi/uneceDomHandler.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"uneceDomHandler.js","sourceRoot":"./lib/","sources":["edi/uneceDomHandler.ts"],"names":[],"mappings":";;;AAkBA,6CAA4D;AAsB5D,MAAsB,eAAgB,SAAQ,wBAAU;IAEpD,YAAY,QAA0B,EAClC,OAAkC,EAClC,SAA2B;QAC3B,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACxC,CAAC;IAUQ,MAAM,CAAC,IAAY;QACxB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAmBQ,SAAS,CAAC,IAAY,EAAE,OAAkC;QAC/D,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;CAYJ;AArDD,0CAqDC"}
|
||||
8
node_modules/ts-edifact/lib/edi/uneceMetaDataPageParser.d.ts
generated
vendored
Normal file
8
node_modules/ts-edifact/lib/edi/uneceMetaDataPageParser.d.ts
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
import { UNECEDomHandler } from "./uneceDomHandler";
|
||||
import { UNECEPageParser } from "./unecePageParser";
|
||||
export declare class UNECEMetaDataPageParser extends UNECEPageParser {
|
||||
private messageType?;
|
||||
constructor();
|
||||
protected setupHandler(): UNECEDomHandler;
|
||||
}
|
||||
//# sourceMappingURL=uneceMetaDataPageParser.d.ts.map
|
||||
1
node_modules/ts-edifact/lib/edi/uneceMetaDataPageParser.d.ts.map
generated
vendored
Normal file
1
node_modules/ts-edifact/lib/edi/uneceMetaDataPageParser.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"uneceMetaDataPageParser.d.ts","sourceRoot":"./lib/","sources":["edi/uneceMetaDataPageParser.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAoBpD,qBAAa,uBAAwB,SAAQ,eAAe;IAExD,OAAO,CAAC,WAAW,CAAC,CAAS;;IAM7B,SAAS,CAAC,YAAY,IAAI,eAAe;CAyC5C"}
|
||||
60
node_modules/ts-edifact/lib/edi/uneceMetaDataPageParser.js
generated
vendored
Normal file
60
node_modules/ts-edifact/lib/edi/uneceMetaDataPageParser.js
generated
vendored
Normal file
@@ -0,0 +1,60 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.UNECEMetaDataPageParser = void 0;
|
||||
const messageStructureParser_1 = require("./messageStructureParser");
|
||||
const unecePageParser_1 = require("./unecePageParser");
|
||||
var State;
|
||||
(function (State) {
|
||||
State["initial"] = "initial";
|
||||
State["beforeMessageType"] = "beforeMessageType";
|
||||
State["afterMessageType"] = "afterMessageType";
|
||||
State["beforeMetaData"] = "beforeMetaData";
|
||||
State["afterMetaData"] = "afterMetaData";
|
||||
})(State || (State = {}));
|
||||
const SM_DEFINITION = {
|
||||
initial: State.initial,
|
||||
transitions: [
|
||||
{ from: State.initial, to: State.beforeMessageType },
|
||||
{ from: State.beforeMessageType, to: State.afterMessageType },
|
||||
{ from: State.afterMessageType, to: State.beforeMetaData },
|
||||
{ from: State.beforeMetaData, to: State.afterMetaData }
|
||||
]
|
||||
};
|
||||
class UNECEMetaDataPageParser extends unecePageParser_1.UNECEPageParser {
|
||||
constructor() {
|
||||
super(SM_DEFINITION);
|
||||
}
|
||||
setupHandler() {
|
||||
const handler = super.setupHandler();
|
||||
handler.onText = (text) => {
|
||||
switch (this.sm.state) {
|
||||
case State.initial:
|
||||
if (text.includes('Message Type')) {
|
||||
this.sm.transition(State.beforeMessageType);
|
||||
}
|
||||
break;
|
||||
case State.beforeMessageType:
|
||||
this.messageType = text;
|
||||
this.sm.transition(State.afterMessageType);
|
||||
break;
|
||||
case State.afterMessageType:
|
||||
if (!this.messageType) {
|
||||
this.throwCouldNotParsePage();
|
||||
}
|
||||
else {
|
||||
if (text.includes('Version') && text.includes('Release') && text.includes('Contr. Agency')) {
|
||||
const version = this.extractTextValue(text, /Version\s*: ([A-Z]*)\s/g, 1);
|
||||
const release = this.extractTextValue(text, /Release\s*: ([0-9A-Z]*)\s/g, 1);
|
||||
const controllingAgency = this.extractTextValue(text, /Contr. Agency\s*: ([0-9A-Z]*)\s/g, 1);
|
||||
this._spec = new messageStructureParser_1.EdifactMessageSpecificationImpl(this.messageType, version, release, controllingAgency);
|
||||
}
|
||||
}
|
||||
break;
|
||||
default: this.throwInvalidParserState(this.sm.state);
|
||||
}
|
||||
};
|
||||
return handler;
|
||||
}
|
||||
}
|
||||
exports.UNECEMetaDataPageParser = UNECEMetaDataPageParser;
|
||||
//# sourceMappingURL=uneceMetaDataPageParser.js.map
|
||||
1
node_modules/ts-edifact/lib/edi/uneceMetaDataPageParser.js.map
generated
vendored
Normal file
1
node_modules/ts-edifact/lib/edi/uneceMetaDataPageParser.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"uneceMetaDataPageParser.js","sourceRoot":"./lib/","sources":["edi/uneceMetaDataPageParser.ts"],"names":[],"mappings":";;;AAqBA,qEAA2E;AAC3E,uDAAoD;AAEpD,IAAK,KAMJ;AAND,WAAK,KAAK;IACN,4BAAmB,CAAA;IACnB,gDAAuC,CAAA;IACvC,8CAAqC,CAAA;IACrC,0CAAiC,CAAA;IACjC,wCAA+B,CAAA;AACnC,CAAC,EANI,KAAK,KAAL,KAAK,QAMT;AAED,MAAM,aAAa,GAA2B;IAC1C,OAAO,EAAE,KAAK,CAAC,OAAO;IACtB,WAAW,EAAE;QACT,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,iBAAiB,EAAE;QACpD,EAAE,IAAI,EAAE,KAAK,CAAC,iBAAiB,EAAE,EAAE,EAAE,KAAK,CAAC,gBAAgB,EAAE;QAC7D,EAAE,IAAI,EAAE,KAAK,CAAC,gBAAgB,EAAE,EAAE,EAAE,KAAK,CAAC,cAAc,EAAE;QAC1D,EAAE,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,EAAE,EAAE,KAAK,CAAC,aAAa,EAAE;KAC1D;CACJ,CAAC;AAEF,MAAa,uBAAwB,SAAQ,iCAAe;IAIxD;QACI,KAAK,CAAC,aAAa,CAAC,CAAC;IACzB,CAAC;IAES,YAAY;QAClB,MAAM,OAAO,GAAoB,KAAK,CAAC,YAAY,EAAE,CAAC;QAEtD,OAAO,CAAC,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE;YAC9B,QAAQ,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;gBACnB,KAAK,KAAK,CAAC,OAAO;oBACd,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;wBAC/B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;qBAC/C;oBACD,MAAM;gBAEV,KAAK,KAAK,CAAC,iBAAiB;oBACxB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;oBACxB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;oBAC3C,MAAM;gBAEV,KAAK,KAAK,CAAC,gBAAgB;oBACvB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;wBACnB,IAAI,CAAC,sBAAsB,EAAE,CAAC;qBACjC;yBAAM;wBACH,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;4BACxF,MAAM,OAAO,GAAW,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,yBAAyB,EAAE,CAAC,CAAC,CAAC;4BAClF,MAAM,OAAO,GAAW,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,4BAA4B,EAAE,CAAC,CAAC,CAAC;4BACrF,MAAM,iBAAiB,GAAW,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,kCAAkC,EAAE,CAAC,CAAC,CAAC;4BACrG,IAAI,CAAC,KAAK,GAAG,IAAI,wDAA+B,CAC5C,IAAI,CAAC,WAAW,EAChB,OAAO,EACP,OAAO,EACP,iBAAiB,CACpB,CAAC;yBACL;qBACJ;oBACD,MAAM;gBAEV,OAAO,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;aACxD;QACL,CAAC,CAAC;QAEF,OAAO,OAAO,CAAC;IACnB,CAAC;CAEJ;AAjDD,0DAiDC"}
|
||||
15
node_modules/ts-edifact/lib/edi/unecePageParser.d.ts
generated
vendored
Normal file
15
node_modules/ts-edifact/lib/edi/unecePageParser.d.ts
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
import { UNECEDomHandler } from "./uneceDomHandler";
|
||||
import { StateMachine, StateMachineDefinition } from "@initics/tsm";
|
||||
import { EdifactMessageSpecification } from "./messageStructureParser";
|
||||
export declare abstract class UNECEPageParser {
|
||||
protected sm: StateMachine;
|
||||
protected _spec?: EdifactMessageSpecification;
|
||||
constructor(smdef: StateMachineDefinition);
|
||||
get spec(): EdifactMessageSpecification;
|
||||
parse(page: string): void;
|
||||
protected setupHandler(): UNECEDomHandler;
|
||||
protected extractTextValue(text: string, regex: RegExp, index?: number): string;
|
||||
protected throwInvalidParserState(state: string): void;
|
||||
protected throwCouldNotParsePage(): void;
|
||||
}
|
||||
//# sourceMappingURL=unecePageParser.d.ts.map
|
||||
1
node_modules/ts-edifact/lib/edi/unecePageParser.d.ts.map
generated
vendored
Normal file
1
node_modules/ts-edifact/lib/edi/unecePageParser.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"unecePageParser.d.ts","sourceRoot":"./lib/","sources":["edi/unecePageParser.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAGpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAEvE,8BAAsB,eAAe;IAEjC,SAAS,CAAC,EAAE,EAAE,YAAY,CAAC;IAC3B,SAAS,CAAC,KAAK,CAAC,EAAE,2BAA2B,CAAC;gBAElC,KAAK,EAAE,sBAAsB;IAIzC,IAAI,IAAI,IAAI,2BAA2B,CAKtC;IAED,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMzB,SAAS,CAAC,YAAY,IAAI,eAAe;IAYzC,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,MAAM;IAQlF,SAAS,CAAC,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAItD,SAAS,CAAC,sBAAsB,IAAI,IAAI;CAI3C"}
|
||||
46
node_modules/ts-edifact/lib/edi/unecePageParser.js
generated
vendored
Normal file
46
node_modules/ts-edifact/lib/edi/unecePageParser.js
generated
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.UNECEPageParser = void 0;
|
||||
const htmlparser2_1 = require("htmlparser2");
|
||||
const uneceDomHandler_1 = require("./uneceDomHandler");
|
||||
const tsm_1 = require("@initics/tsm");
|
||||
const util_1 = require("../util");
|
||||
class UNECEPageParser {
|
||||
constructor(smdef) {
|
||||
this.sm = new tsm_1.StateMachine(smdef);
|
||||
}
|
||||
get spec() {
|
||||
if (!this._spec) {
|
||||
throw new Error(`EdifactMessageSpecification not defined`);
|
||||
}
|
||||
return this._spec;
|
||||
}
|
||||
parse(page) {
|
||||
const parser = new htmlparser2_1.Parser(this.setupHandler());
|
||||
parser.write(page);
|
||||
parser.end();
|
||||
}
|
||||
setupHandler() {
|
||||
return new class extends uneceDomHandler_1.UNECEDomHandler {
|
||||
onOpenTag() {
|
||||
}
|
||||
onText() {
|
||||
}
|
||||
}();
|
||||
}
|
||||
extractTextValue(text, regex, index = 0) {
|
||||
const arr = regex.exec(text);
|
||||
if ((0, util_1.isDefined)(arr)) {
|
||||
return arr[index];
|
||||
}
|
||||
return "";
|
||||
}
|
||||
throwInvalidParserState(state) {
|
||||
throw new Error(`Invalid parser state: ${state}`);
|
||||
}
|
||||
throwCouldNotParsePage() {
|
||||
throw new Error('Could not parse page');
|
||||
}
|
||||
}
|
||||
exports.UNECEPageParser = UNECEPageParser;
|
||||
//# sourceMappingURL=unecePageParser.js.map
|
||||
1
node_modules/ts-edifact/lib/edi/unecePageParser.js.map
generated
vendored
Normal file
1
node_modules/ts-edifact/lib/edi/unecePageParser.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"unecePageParser.js","sourceRoot":"./lib/","sources":["edi/unecePageParser.ts"],"names":[],"mappings":";;;AAkBA,6CAAqC;AACrC,uDAAoD;AACpD,sCAAoE;AAEpE,kCAAoC;AAGpC,MAAsB,eAAe;IAKjC,YAAY,KAA6B;QACrC,IAAI,CAAC,EAAE,GAAG,IAAI,kBAAY,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,IAAI;QACJ,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;SAC9D;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,IAAY;QACd,MAAM,MAAM,GAAW,IAAI,oBAAM,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACvD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnB,MAAM,CAAC,GAAG,EAAE,CAAC;IACjB,CAAC;IAES,YAAY;QAClB,OAAO,IAAI,KAAM,SAAQ,iCAAe;YACpB,SAAS;YAEzB,CAAC;YAEe,MAAM;YAEtB,CAAC;SACJ,EAAE,CAAC;IACR,CAAC;IAES,gBAAgB,CAAC,IAAY,EAAE,KAAa,EAAE,QAAgB,CAAC;QACrE,MAAM,GAAG,GAA2B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,IAAA,gBAAS,EAAC,GAAG,CAAC,EAAE;YAChB,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;SACrB;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAES,uBAAuB,CAAC,KAAa;QAC3C,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;IAES,sBAAsB;QAC5B,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC5C,CAAC;CAEJ;AAlDD,0CAkDC"}
|
||||
14
node_modules/ts-edifact/lib/edi/uneceStructurePageParser.d.ts
generated
vendored
Normal file
14
node_modules/ts-edifact/lib/edi/uneceStructurePageParser.d.ts
generated
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
import { UNECEDomHandler } from "./uneceDomHandler";
|
||||
import { EdifactMessageSpecification } from "./messageStructureParser";
|
||||
import { UNECEPageParser } from "./unecePageParser";
|
||||
export declare class UNECEStructurePageParser extends UNECEPageParser {
|
||||
readonly segmentNames: string[];
|
||||
constructor(spec: EdifactMessageSpecification);
|
||||
protected setupHandler(): UNECEDomHandler;
|
||||
private addSegmentName;
|
||||
private parseSegmentGroup;
|
||||
private parseSegment;
|
||||
private parseSegmentGroupLevel;
|
||||
private isSegmentGroupEnd;
|
||||
}
|
||||
//# sourceMappingURL=uneceStructurePageParser.d.ts.map
|
||||
1
node_modules/ts-edifact/lib/edi/uneceStructurePageParser.d.ts.map
generated
vendored
Normal file
1
node_modules/ts-edifact/lib/edi/uneceStructurePageParser.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"uneceStructurePageParser.d.ts","sourceRoot":"./lib/","sources":["edi/uneceStructurePageParser.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAwCpD,qBAAa,wBAAyB,SAAQ,eAAe;IAEzD,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;gBAEpB,IAAI,EAAE,2BAA2B;IAM7C,SAAS,CAAC,YAAY,IAAI,eAAe;IAoHzC,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,iBAAiB;IAqBzB,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,sBAAsB;IAuB9B,OAAO,CAAC,iBAAiB;CAK5B"}
|
||||
202
node_modules/ts-edifact/lib/edi/uneceStructurePageParser.js
generated
vendored
Normal file
202
node_modules/ts-edifact/lib/edi/uneceStructurePageParser.js
generated
vendored
Normal file
@@ -0,0 +1,202 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.UNECEStructurePageParser = void 0;
|
||||
const unecePageParser_1 = require("./unecePageParser");
|
||||
var State;
|
||||
(function (State) {
|
||||
State["initial"] = "initial";
|
||||
State["messageStructureStart"] = "messageStructureStart";
|
||||
State["messageStructureEnd"] = "messageStructureEnd";
|
||||
State["headerSection"] = "headerSection";
|
||||
State["detailSection"] = "detailSection";
|
||||
State["summarySection"] = "summarySection";
|
||||
State["beforeDetailSection"] = "beforeDetailSection";
|
||||
State["segmentPosition"] = "segmentPosition";
|
||||
State["segmentGroup"] = "segmentGroup";
|
||||
State["segmentName"] = "segmentName";
|
||||
State["segmentDescription"] = "segmentDescription";
|
||||
})(State || (State = {}));
|
||||
const SM_DEFINITION = {
|
||||
initial: State.initial,
|
||||
transitions: [
|
||||
{ from: State.initial, to: State.messageStructureStart },
|
||||
{ from: State.messageStructureStart, to: State.headerSection },
|
||||
{ from: State.messageStructureStart, to: State.segmentPosition },
|
||||
{ from: State.headerSection, to: State.segmentPosition },
|
||||
{ from: State.detailSection, to: State.segmentPosition },
|
||||
{ from: State.summarySection, to: State.segmentPosition },
|
||||
{ from: State.segmentPosition, to: State.segmentGroup },
|
||||
{ from: State.segmentPosition, to: State.messageStructureEnd },
|
||||
{ from: State.segmentGroup, to: State.segmentName },
|
||||
{ from: State.segmentGroup, to: State.segmentPosition },
|
||||
{ from: State.segmentName, to: State.segmentDescription },
|
||||
{ from: State.segmentDescription, to: State.segmentPosition },
|
||||
{ from: State.segmentDescription, to: State.detailSection },
|
||||
{ from: State.segmentDescription, to: State.summarySection }
|
||||
]
|
||||
};
|
||||
class UNECEStructurePageParser extends unecePageParser_1.UNECEPageParser {
|
||||
constructor(spec) {
|
||||
super(SM_DEFINITION);
|
||||
this._spec = spec;
|
||||
this.segmentNames = [];
|
||||
}
|
||||
setupHandler() {
|
||||
const helper = super.setupHandler();
|
||||
let index = 0;
|
||||
const stack = [];
|
||||
const resetStack = () => {
|
||||
for (; index > 0; index--) {
|
||||
stack.pop();
|
||||
}
|
||||
};
|
||||
let isSegmentGroupEnd = false;
|
||||
let section;
|
||||
let name;
|
||||
stack.push(this.spec.messageStructureDefinition);
|
||||
helper.onText = (text) => {
|
||||
switch (this.sm.state) {
|
||||
case State.initial:
|
||||
if (text.includes('Message structure')) {
|
||||
this.sm.transition(State.messageStructureStart);
|
||||
}
|
||||
break;
|
||||
case State.messageStructureStart:
|
||||
if (text.includes('HEADER SECTION')) {
|
||||
this.sm.transition(State.headerSection);
|
||||
section = 'header';
|
||||
this.sm.transition(State.segmentPosition);
|
||||
}
|
||||
break;
|
||||
case State.segmentPosition:
|
||||
if (text.match(/[0-9]{4}/g)) {
|
||||
this.sm.transition(State.segmentGroup);
|
||||
}
|
||||
else {
|
||||
this.sm.transition(State.messageStructureEnd);
|
||||
}
|
||||
break;
|
||||
case State.segmentGroup:
|
||||
if (text.includes('Segment group')) {
|
||||
isSegmentGroupEnd = false;
|
||||
const group = this.parseSegmentGroup(section, text);
|
||||
const level = this.parseSegmentGroupLevel(text);
|
||||
const delta = level - index;
|
||||
if (delta <= 0) {
|
||||
for (let i = 0; i < (delta * -1 + 1); i++) {
|
||||
stack.pop();
|
||||
index--;
|
||||
}
|
||||
}
|
||||
stack[index].push(group);
|
||||
stack.push(group.content);
|
||||
index++;
|
||||
section = undefined;
|
||||
this.sm.transition(State.segmentPosition);
|
||||
}
|
||||
else {
|
||||
if (isSegmentGroupEnd) {
|
||||
resetStack();
|
||||
}
|
||||
this.sm.transition(State.segmentName);
|
||||
}
|
||||
break;
|
||||
case State.segmentName:
|
||||
name = text;
|
||||
this.addSegmentName(name);
|
||||
this.sm.transition(State.segmentDescription);
|
||||
break;
|
||||
case State.segmentDescription: {
|
||||
const item = this.parseSegment(name, section, text);
|
||||
stack[index].push(item);
|
||||
isSegmentGroupEnd = this.isSegmentGroupEnd(text);
|
||||
const detailSection = text.includes('DETAIL SECTION');
|
||||
const summarySection = text.includes('SUMMARY SECTION');
|
||||
if (detailSection || summarySection) {
|
||||
resetStack();
|
||||
if (detailSection) {
|
||||
section = 'detial';
|
||||
this.sm.transition(State.detailSection);
|
||||
}
|
||||
else {
|
||||
section = 'summary';
|
||||
this.sm.transition(State.summarySection);
|
||||
}
|
||||
}
|
||||
this.sm.transition(State.segmentPosition);
|
||||
break;
|
||||
}
|
||||
case State.messageStructureEnd: break;
|
||||
default: this.throwInvalidParserState(this.sm.state);
|
||||
}
|
||||
};
|
||||
helper.onOpenTag = name => {
|
||||
if (this.sm.state === State.messageStructureStart && name === 'a') {
|
||||
this.sm.transition(State.segmentPosition);
|
||||
}
|
||||
};
|
||||
return helper;
|
||||
}
|
||||
addSegmentName(name) {
|
||||
const excludeSegmentNames = ['UNH', 'UNS', 'UNT'];
|
||||
if (!excludeSegmentNames.includes(name) && !this.segmentNames.includes(name)) {
|
||||
this.segmentNames.push(name);
|
||||
}
|
||||
}
|
||||
parseSegmentGroup(section, descriptionString) {
|
||||
const regex = /^.* (Segment group \d*).*\s*([M|C])\s*(\d*).*/g;
|
||||
const matches = regex.exec(descriptionString);
|
||||
if (!matches) {
|
||||
throw new Error('Invalid segment description string');
|
||||
}
|
||||
const name = matches[1];
|
||||
const mandatoryString = matches[2];
|
||||
const repetitionString = matches[3];
|
||||
return {
|
||||
name,
|
||||
content: [],
|
||||
mandatory: mandatoryString === 'M',
|
||||
repetition: Number.parseInt(repetitionString),
|
||||
data: undefined,
|
||||
section: section || undefined
|
||||
};
|
||||
}
|
||||
parseSegment(name, section, descriptionString) {
|
||||
const regex = /^([a-zA-Z /\\-]*)\s*?([M|C])\s*?([0-9]*?)([^0-9]*)$/g;
|
||||
const matches = regex.exec(descriptionString);
|
||||
if (!matches) {
|
||||
throw new Error(`${name}: Invalid segment description string: ${descriptionString}`);
|
||||
}
|
||||
const mandatoryString = matches[2];
|
||||
const repetitionString = matches[3];
|
||||
return {
|
||||
content: name,
|
||||
mandatory: mandatoryString === 'M',
|
||||
repetition: Number.parseInt(repetitionString),
|
||||
data: undefined,
|
||||
section: section || undefined
|
||||
};
|
||||
}
|
||||
parseSegmentGroupLevel(descriptionString) {
|
||||
const regex = /^.*[0-9]+([^0-9]*)$/g;
|
||||
const matches = regex.exec(descriptionString);
|
||||
if (!matches) {
|
||||
throw new Error('Invalid segment description string');
|
||||
}
|
||||
const levelString = Array.from(matches[1]).reverse().join('');
|
||||
let normalization = 0;
|
||||
if (levelString.charCodeAt(0) !== 10) {
|
||||
console.warn(`Unrecognized character in level string: ${levelString[0]} (${levelString.charCodeAt(0)})`);
|
||||
}
|
||||
else if (levelString.charCodeAt(1) === 13) {
|
||||
normalization = 1;
|
||||
}
|
||||
return levelString.indexOf('Ŀ') - normalization;
|
||||
}
|
||||
isSegmentGroupEnd(descriptionString) {
|
||||
const regex = /\d+<2B>+/g;
|
||||
return !!regex.exec(descriptionString);
|
||||
}
|
||||
}
|
||||
exports.UNECEStructurePageParser = UNECEStructurePageParser;
|
||||
//# sourceMappingURL=uneceStructurePageParser.js.map
|
||||
1
node_modules/ts-edifact/lib/edi/uneceStructurePageParser.js.map
generated
vendored
Normal file
1
node_modules/ts-edifact/lib/edi/uneceStructurePageParser.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user