@dialecte/scl 0.3.17 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/dist/{hooks-BBGXNK0x.js → hooks-2XoiU2Tq.js} +16408 -4983
  2. package/dist/v2019C1/config/dialecte.config.d.ts +11911 -2332
  3. package/dist/v2019C1/config/dialecte.config.d.ts.map +1 -1
  4. package/dist/v2019C1/config/hydrated.types.d.ts +3 -2
  5. package/dist/v2019C1/config/hydrated.types.d.ts.map +1 -1
  6. package/dist/v2019C1/definition/constants.generated.d.ts +1126 -211
  7. package/dist/v2019C1/definition/constants.generated.d.ts.map +1 -1
  8. package/dist/v2019C1/definition/definition.generated.d.ts +10804 -2134
  9. package/dist/v2019C1/definition/definition.generated.d.ts.map +1 -1
  10. package/dist/v2019C1/definition/types.generated.d.ts +920 -1
  11. package/dist/v2019C1/definition/types.generated.d.ts.map +1 -1
  12. package/dist/v2019C1/extensions/identity/query/resolve-identity.d.ts +4 -3
  13. package/dist/v2019C1/extensions/identity/query/resolve-identity.d.ts.map +1 -1
  14. package/dist/v2019C1/extensions/lifecycle/constraints/index.d.ts +1 -1
  15. package/dist/v2019C1/extensions/lifecycle/constraints/index.d.ts.map +1 -1
  16. package/dist/v2019C1/extensions/lifecycle/instance/find-instance.d.ts.map +1 -1
  17. package/dist/v2019C1/extensions/presentation/query/extract-element-title.d.ts +1 -1
  18. package/dist/v2019C1/extensions/presentation/query/extract-element-title.d.ts.map +1 -1
  19. package/dist/v2019C1/index.js +1 -1
  20. package/dist/v2019C1/test/assert-valid-scl-xml.d.ts +2 -23
  21. package/dist/v2019C1/test/assert-valid-scl-xml.d.ts.map +1 -1
  22. package/dist/v2019C1/test.js +20 -102
  23. package/package.json +4 -4
  24. package/dist/v2019C1/test/assert-valid-scl-xml.types.d.ts +0 -45
  25. package/dist/v2019C1/test/assert-valid-scl-xml.types.d.ts.map +0 -1
@@ -1,120 +1,38 @@
1
- import { F as e, M as t, P as n, n as r, r as i, t as a } from "../hooks-BBGXNK0x.js";
1
+ import { F as e, M as t, P as n, n as r, r as i, t as a } from "../hooks-2XoiU2Tq.js";
2
2
  import { CUSTOM_RECORD_ID_ATTRIBUTE as o, CUSTOM_RECORD_ID_ATTRIBUTE_NAME as s, XMLNS_XSI_NAMESPACE as c } from "@dialecte/core/helpers";
3
- import { XMLNS_DEV_NAMESPACE as l, createTestProject as u, createTestRecordFactory as d, createTestRunner as f, createXmlAssertions as p } from "@dialecte/core/test";
3
+ import { XMLNS_DEV_NAMESPACE as l, createTestProject as u, createTestRecordFactory as d, createTestRunner as f, createXmlAssertions as p, createXmlSchemaAssertions as m } from "@dialecte/core/test";
4
4
  //#region src/v2019C1/test/assert-valid-scl-xml.ts
5
- var m = e, h = Object.values(n).map((e) => e.uri);
6
- function g(e) {
7
- return e.namespaceURI !== null && !h.includes(e.namespaceURI);
8
- }
9
- function _(e, t) {
10
- return ((e ? m[e]?.children?.details?.[t]?.namespace : void 0) ?? m[t]?.namespace)?.uri;
11
- }
12
- function v(e, t) {
13
- let n = e.children;
14
- return n ? n.any === !0 || n.sequence?.includes(t) ? !0 : n.details ? t in n.details : !1 : !1;
15
- }
16
- function y(e) {
17
- return new Set([...e.attributes?.sequence ?? [], ...Object.keys(e.attributes?.details ?? {})]);
18
- }
19
- function b(e) {
20
- let { element: t, definition: n, requireComplete: r } = e;
21
- if (!n.attributes) return [];
22
- let i = y(n), a = Array.from(t.attributes).filter((e) => e.namespaceURI === null && !i.has(e.localName)).map((e) => `[attribute] <${t.localName}> has unknown attribute '${e.localName}'`);
23
- if (!r) return a;
24
- let o = Object.entries(n.attributes.details ?? {}).filter(([e, n]) => n?.required && !t.hasAttribute(e)).map(([e]) => `[required] <${t.localName}> is missing required attribute '${e}'`);
25
- return [...a, ...o];
26
- }
27
- function x(e) {
28
- let { element: t, parentLocalName: n, requireComplete: r } = e, i = Array.from(t.children);
29
- if (g(t)) return i.flatMap((e) => x({
30
- element: e,
31
- parentLocalName: void 0,
32
- requireComplete: r
33
- }));
34
- let a = t.localName, o = [], s = _(n, a);
35
- if (s !== void 0 && t.namespaceURI !== s) {
36
- let e = n ? ` under <${n}>` : "";
37
- o.push(`[namespace] <${t.tagName}>${e}: is in ${t.namespaceURI ?? "(no namespace)"}, schema declares ${s}`);
38
- }
39
- let c = n ? m[n] : void 0;
40
- c && !v(c, a) && o.push(`[containment] <${a}> is not a valid child of <${n}>`);
41
- let l = m[a], u = l ? b({
42
- element: t,
43
- definition: l,
44
- requireComplete: r
45
- }) : [], d = i.flatMap((e) => x({
46
- element: e,
47
- parentLocalName: a,
48
- requireComplete: r
49
- }));
50
- return [
51
- ...o,
52
- ...u,
53
- ...d
54
- ];
55
- }
56
- function S(e) {
57
- let { xml: t, label: n, requireComplete: r } = e;
58
- if (!t.startsWith("<?xml") && t.trimStart().startsWith("<?xml")) return `${n}: malformed XML — the XML declaration must be the very first characters of the string: remove the declaration (a snippet does not need one) or the whitespace before it`;
59
- let i = new DOMParser().parseFromString(t, "application/xml"), a = i.querySelector("parsererror");
60
- if (a) return `${n}: malformed XML — ${a.textContent?.trim()}`;
61
- if (!i.documentElement) return;
62
- let o = x({
63
- element: i.documentElement,
64
- parentLocalName: void 0,
65
- requireComplete: r
66
- });
67
- return o.length > 0 ? `${n}: not valid SCL:\n ${o.join("\n ")}` : void 0;
68
- }
69
- function C(e, t = "test XML", n = {}) {
70
- let r = S({
71
- xml: e,
72
- label: t,
73
- requireComplete: n.requireComplete ?? !0
74
- });
75
- if (r) throw Error(r);
76
- }
77
- function w(e) {
78
- let { testCases: t } = e, n = Object.entries(t).flatMap(([e, t]) => [S({
79
- xml: t.sourceXml,
80
- label: `${e} › sourceXml`,
81
- requireComplete: !1
82
- }), t.targetXml ? S({
83
- xml: t.targetXml,
84
- label: `${e} › targetXml`,
85
- requireComplete: !1
86
- }) : void 0].filter((e) => e !== void 0));
87
- if (n.length > 0) throw Error(n.join("\n"));
88
- }
89
- //#endregion
90
- //#region src/v2019C1/test/hydrated-test.ts
91
- var T = {
5
+ var { assertValidXml: h, assertValidXmlTestCases: g } = m({
6
+ definition: e,
7
+ namespaces: n,
8
+ schemaName: "SCL"
9
+ }), _ = h, v = g, y = {
92
10
  ...r(),
93
11
  ...a
94
- }, E = `xmlns="${t.namespaces.default.uri}"`, D = `xmlns:${t.namespaces.v2019C1.prefix}="${t.namespaces.v2019C1.uri}"`, O = `${E} ${D} ${l} ${c}`, k = { base: i }, A = f({
12
+ }, b = `xmlns="${t.namespaces.default.uri}"`, x = `xmlns:${t.namespaces.v2019C1.prefix}="${t.namespaces.v2019C1.uri}"`, S = `${b} ${x} ${l} ${c}`, C = { base: i }, w = f({
95
13
  dialecteConfig: t,
96
- extensions: k,
97
- hooks: T
98
- }), j = {
99
- ...A,
14
+ extensions: C,
15
+ hooks: y
16
+ }), T = {
17
+ ...w,
100
18
  withExport(e) {
101
- w({ testCases: e.testCases }), A.withExport(e);
19
+ v({ testCases: e.testCases }), w.withExport(e);
102
20
  },
103
21
  withoutExport(e) {
104
- w({ testCases: e.testCases }), A.withoutExport(e);
22
+ v({ testCases: e.testCases }), w.withoutExport(e);
105
23
  }
106
24
  };
107
- async function M(e) {
25
+ async function E(e) {
108
26
  let { sourceXml: n, targetXml: r, dev: i } = e;
109
- return C(n, "sourceXml", { requireComplete: !1 }), r && C(r, "targetXml", { requireComplete: !1 }), u({
27
+ return _(n, "sourceXml", { requireComplete: !1 }), r && _(r, "targetXml", { requireComplete: !1 }), u({
110
28
  sourceXml: n,
111
29
  targetXml: r,
112
30
  dialecteConfig: t,
113
- extensions: k,
114
- hooks: T,
31
+ extensions: C,
32
+ hooks: y,
115
33
  dev: i
116
34
  });
117
35
  }
118
- var N = d(t), { assertExpectedElementQueries: P, assertUnexpectedElementQueries: F } = p({ namespaces: t.namespaces });
36
+ var D = d(t), { assertExpectedElementQueries: O, assertUnexpectedElementQueries: k } = p({ namespaces: t.namespaces });
119
37
  //#endregion
120
- export { O as ALL_XMLNS_NAMESPACES, o as CUSTOM_RECORD_ID_ATTRIBUTE, s as CUSTOM_RECORD_ID_ATTRIBUTE_NAME, D as XMLNS_SCL_6_100_NAMESPACE, E as XMLNS_SCL_NAMESPACE, P as assertExpectedElementQueries, F as assertUnexpectedElementQueries, C as assertValidSclXml, M as createSclTestProject, N as createSclTestRecord, j as runSclTestCases };
38
+ export { S as ALL_XMLNS_NAMESPACES, o as CUSTOM_RECORD_ID_ATTRIBUTE, s as CUSTOM_RECORD_ID_ATTRIBUTE_NAME, x as XMLNS_SCL_6_100_NAMESPACE, b as XMLNS_SCL_NAMESPACE, O as assertExpectedElementQueries, k as assertUnexpectedElementQueries, _ as assertValidSclXml, E as createSclTestProject, D as createSclTestRecord, T as runSclTestCases };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dialecte/scl",
3
- "version": "0.3.17",
3
+ "version": "0.4.0",
4
4
  "description": "Dialecte - SCL (Substation Configuration Language) sdk",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -38,7 +38,7 @@
38
38
  "test": "vitest",
39
39
  "//====== CHECK ======//": "",
40
40
  "check": "run-p type-check type-check:test lint:check format:check",
41
- "type-check": "tsc --noEmit",
41
+ "type-check": "tsc -p tsconfig.build.json --noEmit",
42
42
  "type-check:test": "tsc -p tsconfig.vitest.json --noEmit",
43
43
  "lint:check": "oxlint",
44
44
  "lint:fix": "oxlint . --fix -D correctness --ignore-path .gitignore",
@@ -56,10 +56,10 @@
56
56
  "prepare": "husky"
57
57
  },
58
58
  "dependencies": {
59
- "@dialecte/core": "0.4.16"
59
+ "@dialecte/core": "0.5.1"
60
60
  },
61
61
  "devDependencies": {
62
- "@dialecte/cli": "0.0.2",
62
+ "@dialecte/cli": "0.0.3",
63
63
  "@tsconfig/node24": "^24.0.4",
64
64
  "@types/node": "^24.12.4",
65
65
  "@typescript/native": "npm:typescript@^7.0.2",
@@ -1,45 +0,0 @@
1
- export type SchemaNamespace = {
2
- uri: string;
3
- };
4
- /** The slice of a generated element definition the fixture validator reads. */
5
- export type SchemaElementDefinition = {
6
- namespace?: SchemaNamespace;
7
- attributes?: {
8
- sequence?: readonly string[];
9
- details?: Record<string, {
10
- required?: boolean;
11
- } | undefined>;
12
- };
13
- children?: {
14
- sequence?: readonly string[];
15
- any?: boolean;
16
- details?: Record<string, {
17
- namespace?: SchemaNamespace;
18
- } | undefined>;
19
- };
20
- };
21
- export type AssertValidSclXmlOptions = {
22
- requireComplete?: boolean;
23
- };
24
- export type DescribeInvalidSclXmlParams = {
25
- xml: string;
26
- label: string;
27
- requireComplete: boolean;
28
- };
29
- export type CollectElementViolationsParams = {
30
- element: Element;
31
- parentLocalName: string | undefined;
32
- requireComplete: boolean;
33
- };
34
- export type CollectAttributeViolationsParams = {
35
- element: Element;
36
- definition: SchemaElementDefinition;
37
- requireComplete: boolean;
38
- };
39
- export type AssertValidSclTestCasesParams = {
40
- testCases: Record<string, {
41
- sourceXml: string;
42
- targetXml?: string;
43
- }>;
44
- };
45
- //# sourceMappingURL=assert-valid-scl-xml.types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"assert-valid-scl-xml.types.d.ts","sourceRoot":"","sources":["../../../src/v2019C1/test/assert-valid-scl-xml.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA;AAE7C,+EAA+E;AAC/E,MAAM,MAAM,uBAAuB,GAAG;IACrC,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,UAAU,CAAC,EAAE;QACZ,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;QAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;SAAE,GAAG,SAAS,CAAC,CAAA;KAC5D,CAAA;IACD,QAAQ,CAAC,EAAE;QACV,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;QAC5B,GAAG,CAAC,EAAE,OAAO,CAAA;QACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,SAAS,CAAC,EAAE,eAAe,CAAA;SAAE,GAAG,SAAS,CAAC,CAAA;KACrE,CAAA;CACD,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AAEpE,MAAM,MAAM,2BAA2B,GAAG;IACzC,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,eAAe,EAAE,OAAO,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,8BAA8B,GAAG;IAC5C,OAAO,EAAE,OAAO,CAAA;IAChB,eAAe,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,eAAe,EAAE,OAAO,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,gCAAgC,GAAG;IAC9C,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,uBAAuB,CAAA;IACnC,eAAe,EAAE,OAAO,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC3C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACpE,CAAA"}