@dialecte/scl 0.3.17 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{hooks-BBGXNK0x.js → hooks-CZTZsrpD.js} +23574 -11419
- package/dist/v2019C1/config/dialecte.config.d.ts +11911 -2332
- package/dist/v2019C1/config/dialecte.config.d.ts.map +1 -1
- package/dist/v2019C1/config/hydrated.types.d.ts +3 -2
- package/dist/v2019C1/config/hydrated.types.d.ts.map +1 -1
- package/dist/v2019C1/constants/index.d.ts +1 -0
- package/dist/v2019C1/constants/index.d.ts.map +1 -1
- package/dist/v2019C1/constants/min-requested-scd-file.d.ts +37 -0
- package/dist/v2019C1/constants/min-requested-scd-file.d.ts.map +1 -0
- package/dist/v2019C1/definition/constants.generated.d.ts +1126 -211
- package/dist/v2019C1/definition/constants.generated.d.ts.map +1 -1
- package/dist/v2019C1/definition/definition.generated.d.ts +10804 -2134
- package/dist/v2019C1/definition/definition.generated.d.ts.map +1 -1
- package/dist/v2019C1/definition/types.generated.d.ts +920 -1
- package/dist/v2019C1/definition/types.generated.d.ts.map +1 -1
- package/dist/v2019C1/extensions/identity/query/resolve-identity.d.ts +4 -3
- package/dist/v2019C1/extensions/identity/query/resolve-identity.d.ts.map +1 -1
- package/dist/v2019C1/extensions/lifecycle/constraints/index.d.ts +1 -1
- package/dist/v2019C1/extensions/lifecycle/constraints/index.d.ts.map +1 -1
- package/dist/v2019C1/extensions/lifecycle/instance/find-instance.d.ts.map +1 -1
- package/dist/v2019C1/extensions/presentation/query/extract-element-title.d.ts +1 -1
- package/dist/v2019C1/extensions/presentation/query/extract-element-title.d.ts.map +1 -1
- package/dist/v2019C1/hooks/after-created/after-created.d.ts.map +1 -1
- package/dist/v2019C1/hooks/after-created/min-requested-scd-file.d.ts +14 -0
- package/dist/v2019C1/hooks/after-created/min-requested-scd-file.d.ts.map +1 -0
- package/dist/v2019C1/hooks/after-updated/after-updated.d.ts +2 -1
- package/dist/v2019C1/hooks/after-updated/after-updated.d.ts.map +1 -1
- package/dist/v2019C1/hooks/after-updated/min-requested-scd-file.d.ts +17 -0
- package/dist/v2019C1/hooks/after-updated/min-requested-scd-file.d.ts.map +1 -0
- package/dist/v2019C1/hooks/before-delete/before-delete.d.ts +2 -1
- package/dist/v2019C1/hooks/before-delete/before-delete.d.ts.map +1 -1
- package/dist/v2019C1/hooks/before-delete/min-requested-scd-file.d.ts +18 -0
- package/dist/v2019C1/hooks/before-delete/min-requested-scd-file.d.ts.map +1 -0
- package/dist/v2019C1/hooks/shared/index.d.ts +2 -1
- package/dist/v2019C1/hooks/shared/index.d.ts.map +1 -1
- package/dist/v2019C1/hooks/shared/min-requested-scd-file/entry-operations.d.ts +29 -0
- package/dist/v2019C1/hooks/shared/min-requested-scd-file/entry-operations.d.ts.map +1 -0
- package/dist/v2019C1/hooks/shared/min-requested-scd-file/index.d.ts +5 -0
- package/dist/v2019C1/hooks/shared/min-requested-scd-file/index.d.ts.map +1 -0
- package/dist/v2019C1/hooks/shared/min-requested-scd-file/min-requested-scd-file.types.d.ts +4 -0
- package/dist/v2019C1/hooks/shared/min-requested-scd-file/min-requested-scd-file.types.d.ts.map +1 -0
- package/dist/v2019C1/hooks/shared/min-requested-scd-file/resolve-affected-ieds.d.ts +25 -0
- package/dist/v2019C1/hooks/shared/min-requested-scd-file/resolve-affected-ieds.d.ts.map +1 -0
- package/dist/v2019C1/hooks/shared/min-requested-scd-file/sync-min-requested-scd-files.d.ts +13 -0
- package/dist/v2019C1/hooks/shared/min-requested-scd-file/sync-min-requested-scd-files.d.ts.map +1 -0
- package/dist/v2019C1/hooks/shared/record-ops.d.ts +19 -0
- package/dist/v2019C1/hooks/shared/record-ops.d.ts.map +1 -1
- package/dist/v2019C1/index.js +13 -13
- package/dist/v2019C1/test/assert-valid-scl-xml.d.ts +2 -23
- package/dist/v2019C1/test/assert-valid-scl-xml.d.ts.map +1 -1
- package/dist/v2019C1/test.js +23 -105
- package/package.json +4 -4
- package/dist/v2019C1/test/assert-valid-scl-xml.types.d.ts +0 -45
- package/dist/v2019C1/test/assert-valid-scl-xml.types.d.ts.map +0 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Scl, Config } from '../../config';
|
|
2
|
+
import type * as Core from '@dialecte/core';
|
|
3
|
+
/**
|
|
4
|
+
* Sync the IEDs affected by deleting `record` and its subtree to the current SCD.
|
|
5
|
+
*
|
|
6
|
+
* Runs before the deletion, while the subtree is still readable. The sync only reads the `Header`
|
|
7
|
+
* and the IED's own `MinRequestedSCDFiles`, which the deletion leaves intact, so its result is the
|
|
8
|
+
* same as after the deletion. Deleting an IED itself syncs nothing.
|
|
9
|
+
*
|
|
10
|
+
* @stopgap Stamps at edit time with the Header version current during the edit, so the entry is one
|
|
11
|
+
* version behind when the version is bumped after editing. Remove once a Header version change
|
|
12
|
+
* stamps the IEDs changed since the previous version change (needs the store to list the records
|
|
13
|
+
* changed since then).
|
|
14
|
+
*/
|
|
15
|
+
export declare function syncMinRequestedScdFileOnDelete<GenericElement extends Scl.ElementsOf>(query: Core.Query<Config>, params: {
|
|
16
|
+
record: Scl.RawRecord<GenericElement>;
|
|
17
|
+
}): Promise<Scl.Operation[]>;
|
|
18
|
+
//# sourceMappingURL=min-requested-scd-file.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"min-requested-scd-file.d.ts","sourceRoot":"","sources":["../../../../src/v2019C1/hooks/before-delete/min-requested-scd-file.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,KAAK,IAAI,MAAM,gBAAgB,CAAA;AAE3C;;;;;;;;;;;GAWG;AACH,wBAAsB,+BAA+B,CAAC,cAAc,SAAS,GAAG,CAAC,UAAU,EAC1F,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EACzB,MAAM,EAAE;IAAE,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;CAAE,GAC/C,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAM1B"}
|
|
@@ -2,5 +2,6 @@ export { updateRefsForEntry, getRefEntriesForTarget } from './ref-entry-ops';
|
|
|
2
2
|
export { reconcileMappedName } from './mapped-name';
|
|
3
3
|
export { reconcileReferrerRefPaths } from './ref-path-rebuild';
|
|
4
4
|
export { reconcileLNodeBinding } from './lnode-binding';
|
|
5
|
-
export { updatedOperation, upsertAttribute } from './record-ops';
|
|
5
|
+
export { changedAttributeNames, hasAttributeChange, readSnapshotAttribute, updatedOperation, upsertAttribute, } from './record-ops';
|
|
6
|
+
export * from './min-requested-scd-file';
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/v2019C1/hooks/shared/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/v2019C1/hooks/shared/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,EACN,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,GACf,MAAM,cAAc,CAAA;AACrB,cAAc,0BAA0B,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ScdFileReference } from './min-requested-scd-file.types';
|
|
2
|
+
import { Scl, Config } from '../../../config';
|
|
3
|
+
import type * as Core from '@dialecte/core';
|
|
4
|
+
/** The wrapper's entries referencing the project `fileUuid`, in document order. */
|
|
5
|
+
export declare function findProjectEntries(query: Core.Query<Config>, params: {
|
|
6
|
+
wrapper: Scl.Ref<'MinRequestedSCDFiles'>;
|
|
7
|
+
fileUuid: string;
|
|
8
|
+
}): Promise<Scl.TrackedRecord<'MinRequestedSCDFile'>[]>;
|
|
9
|
+
/**
|
|
10
|
+
* Fold `duplicates` of one project into `kept`: `kept` takes the hand-set attributes it lacks
|
|
11
|
+
* from them, then the `scdFile` managed values when given, and the duplicates are removed.
|
|
12
|
+
*/
|
|
13
|
+
export declare function foldEntryOperations(query: Core.Query<Config>, params: {
|
|
14
|
+
wrapper: Scl.TrackedRecord<'MinRequestedSCDFiles'>;
|
|
15
|
+
kept: Scl.TrackedRecord<'MinRequestedSCDFile'>;
|
|
16
|
+
duplicates: Scl.TrackedRecord<'MinRequestedSCDFile'>[];
|
|
17
|
+
scdFile?: ScdFileReference;
|
|
18
|
+
}): Promise<Scl.Operation[]>;
|
|
19
|
+
/** Append a new entry for `scdFile` to an existing wrapper. */
|
|
20
|
+
export declare function appendEntryOperations(params: {
|
|
21
|
+
wrapper: Scl.TrackedRecord<'MinRequestedSCDFiles'>;
|
|
22
|
+
scdFile: ScdFileReference;
|
|
23
|
+
}): Scl.Operation[];
|
|
24
|
+
/** Create the wrapper under `ied`, holding a single entry for `scdFile`. */
|
|
25
|
+
export declare function createWrapperOperations(params: {
|
|
26
|
+
ied: Scl.TrackedRecord<'IED'>;
|
|
27
|
+
scdFile: ScdFileReference;
|
|
28
|
+
}): Scl.Operation[];
|
|
29
|
+
//# sourceMappingURL=entry-operations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entry-operations.d.ts","sourceRoot":"","sources":["../../../../../src/v2019C1/hooks/shared/min-requested-scd-file/entry-operations.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACtE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,KAAK,IAAI,MAAM,gBAAgB,CAAA;AAE3C,mFAAmF;AACnF,wBAAsB,kBAAkB,CACvC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EACzB,MAAM,EAAE;IAAE,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACpE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAUrD;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACxC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EACzB,MAAM,EAAE;IACP,OAAO,EAAE,GAAG,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAA;IAClD,IAAI,EAAE,GAAG,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAA;IAC9C,UAAU,EAAE,GAAG,CAAC,aAAa,CAAC,qBAAqB,CAAC,EAAE,CAAA;IACtD,OAAO,CAAC,EAAE,gBAAgB,CAAA;CAC1B,GACC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CA+B1B;AAED,+DAA+D;AAC/D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC7C,OAAO,EAAE,GAAG,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAA;IAClD,OAAO,EAAE,gBAAgB,CAAA;CACzB,GAAG,GAAG,CAAC,SAAS,EAAE,CAclB;AAED,4EAA4E;AAC5E,wBAAgB,uBAAuB,CAAC,MAAM,EAAE;IAC/C,GAAG,EAAE,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IAC7B,OAAO,EAAE,gBAAgB,CAAA;CACzB,GAAG,GAAG,CAAC,SAAS,EAAE,CAyBlB"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { findProjectEntries, foldEntryOperations } from './entry-operations';
|
|
2
|
+
export { resolveAffectedIeds, resolveAncestorIed, resolveIedByName } from './resolve-affected-ieds';
|
|
3
|
+
export { syncMinRequestedScdFiles } from './sync-min-requested-scd-files';
|
|
4
|
+
export type * from './min-requested-scd-file.types';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/v2019C1/hooks/shared/min-requested-scd-file/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAC5E,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AACnG,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AACzE,mBAAmB,gCAAgC,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Scl } from '../../../config';
|
|
2
|
+
/** The SCD file an IED's entry must reference: the `Header` identity and version. */
|
|
3
|
+
export type ScdFileReference = Required<Pick<Scl.AttributesValueObjectOf<'MinRequestedSCDFile'>, 'fileType' | 'fileUuid' | 'version' | 'revision'>>;
|
|
4
|
+
//# sourceMappingURL=min-requested-scd-file.types.d.ts.map
|
package/dist/v2019C1/hooks/shared/min-requested-scd-file/min-requested-scd-file.types.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"min-requested-scd-file.types.d.ts","sourceRoot":"","sources":["../../../../../src/v2019C1/hooks/shared/min-requested-scd-file/min-requested-scd-file.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAE3C,qFAAqF;AACrF,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CACtC,IAAI,CACH,GAAG,CAAC,uBAAuB,CAAC,qBAAqB,CAAC,EAClD,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAChD,CACD,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Scl, Config } from '../../../config';
|
|
2
|
+
import type * as Core from '@dialecte/core';
|
|
3
|
+
/**
|
|
4
|
+
* The IEDs whose configuration changes when `record` is created, updated or deleted.
|
|
5
|
+
*
|
|
6
|
+
* IED content resolves to its `IED` ancestor. Communication content resolves through
|
|
7
|
+
* `ConnectedAP@iedName`; a `SubNetwork` setting reaches every attached IED, once each.
|
|
8
|
+
*/
|
|
9
|
+
export declare function resolveAffectedIeds(query: Core.Query<Config>, params: {
|
|
10
|
+
record: Scl.RawRecord<Scl.ElementsOf>;
|
|
11
|
+
}): Promise<Scl.Ref<'IED'>[]>;
|
|
12
|
+
/** The `IED` holding `record`, or `null` outside any IED. */
|
|
13
|
+
export declare function resolveAncestorIed(query: Core.Query<Config>, params: {
|
|
14
|
+
record: Scl.RawRecord<Scl.ElementsOf>;
|
|
15
|
+
}): Promise<Scl.Ref<'IED'> | null>;
|
|
16
|
+
/**
|
|
17
|
+
* The `IED` named `iedName`, or `null` when none carries that name.
|
|
18
|
+
*
|
|
19
|
+
* @stopgap Finds the IED by the `iedName` string. Remove once `ConnectedAP` resolves its
|
|
20
|
+
* `AccessPoint` by uuid through the reference registry: resolve through that reference instead.
|
|
21
|
+
*/
|
|
22
|
+
export declare function resolveIedByName(query: Core.Query<Config>, params: {
|
|
23
|
+
iedName: string | undefined;
|
|
24
|
+
}): Promise<Scl.Ref<'IED'> | null>;
|
|
25
|
+
//# sourceMappingURL=resolve-affected-ieds.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-affected-ieds.d.ts","sourceRoot":"","sources":["../../../../../src/v2019C1/hooks/shared/min-requested-scd-file/resolve-affected-ieds.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,KAAK,IAAI,MAAM,gBAAgB,CAAA;AAE3C;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACxC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EACzB,MAAM,EAAE;IAAE,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;CAAE,GAC/C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAwB3B;AAED,6DAA6D;AAC7D,wBAAsB,kBAAkB,CACvC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EACzB,MAAM,EAAE;IAAE,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;CAAE,GAC/C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAMhC;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACrC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EACzB,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GACrC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAMhC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Scl, Config } from '../../../config';
|
|
2
|
+
import type * as Core from '@dialecte/core';
|
|
3
|
+
/**
|
|
4
|
+
* Make each IED's `MinRequestedSCDFiles` reference the current SCD: the entry whose `fileUuid` is
|
|
5
|
+
* the `Header` uuid is created or brought up to the Header version and revision. Entries of other
|
|
6
|
+
* projects are left untouched; duplicate entries of the current project are folded into one.
|
|
7
|
+
*
|
|
8
|
+
* Without a `Header` uuid there is no SCD to reference, so nothing is written.
|
|
9
|
+
*/
|
|
10
|
+
export declare function syncMinRequestedScdFiles(query: Core.Query<Config>, params: {
|
|
11
|
+
iedRefs: Scl.Ref<'IED'>[];
|
|
12
|
+
}): Promise<Scl.Operation[]>;
|
|
13
|
+
//# sourceMappingURL=sync-min-requested-scd-files.d.ts.map
|
package/dist/v2019C1/hooks/shared/min-requested-scd-file/sync-min-requested-scd-files.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-min-requested-scd-files.d.ts","sourceRoot":"","sources":["../../../../../src/v2019C1/hooks/shared/min-requested-scd-file/sync-min-requested-scd-files.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,KAAK,IAAI,MAAM,gBAAgB,CAAA;AAE3C;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC7C,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EACzB,MAAM,EAAE;IAAE,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAA;CAAE,GACnC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAiB1B"}
|
|
@@ -11,6 +11,25 @@ export type AttributeList = readonly {
|
|
|
11
11
|
* cast-free.
|
|
12
12
|
*/
|
|
13
13
|
export declare function updatedOperation(record: Scl.RawRecord<Scl.ElementsOf>, attributes: AttributeList): Scl.Operation;
|
|
14
|
+
/**
|
|
15
|
+
* Read an attribute from a record snapshot. Only for a state `query` can no longer reach, such as
|
|
16
|
+
* the `oldRecord` of an update hook; read the current state through `query.getAttribute`.
|
|
17
|
+
*/
|
|
18
|
+
export declare function readSnapshotAttribute(params: {
|
|
19
|
+
record: Scl.RawRecord<Scl.ElementsOf>;
|
|
20
|
+
name: string;
|
|
21
|
+
}): string | undefined;
|
|
22
|
+
/** Whether any of the named attributes differs between two snapshots of one record. */
|
|
23
|
+
export declare function hasAttributeChange(params: {
|
|
24
|
+
oldRecord: Scl.RawRecord<Scl.ElementsOf>;
|
|
25
|
+
newRecord: Scl.RawRecord<Scl.ElementsOf>;
|
|
26
|
+
names: readonly string[];
|
|
27
|
+
}): boolean;
|
|
28
|
+
/** Names of the attributes whose value differs between two snapshots of one record. */
|
|
29
|
+
export declare function changedAttributeNames(params: {
|
|
30
|
+
oldRecord: Scl.RawRecord<Scl.ElementsOf>;
|
|
31
|
+
newRecord: Scl.RawRecord<Scl.ElementsOf>;
|
|
32
|
+
}): string[];
|
|
14
33
|
/** Upsert (replace-or-append) an attribute value on a plain attribute list. */
|
|
15
34
|
export declare function upsertAttribute(attributes: AttributeList, name: string, value: string): {
|
|
16
35
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record-ops.d.ts","sourceRoot":"","sources":["../../../../src/v2019C1/hooks/shared/record-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAE3C,gEAAgE;AAChE,MAAM,MAAM,aAAa,GAAG,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAAA;AAEtE;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC/B,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EACrC,UAAU,EAAE,aAAa,GACvB,GAAG,CAAC,SAAS,CAMf;AAED,+EAA+E;AAC/E,wBAAgB,eAAe,CAC9B,UAAU,EAAE,aAAa,EACzB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACX;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAInC"}
|
|
1
|
+
{"version":3,"file":"record-ops.d.ts","sourceRoot":"","sources":["../../../../src/v2019C1/hooks/shared/record-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAE3C,gEAAgE;AAChE,MAAM,MAAM,aAAa,GAAG,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAAA;AAEtE;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC/B,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EACrC,UAAU,EAAE,aAAa,GACvB,GAAG,CAAC,SAAS,CAMf;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC7C,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IACrC,IAAI,EAAE,MAAM,CAAA;CACZ,GAAG,MAAM,GAAG,SAAS,CAGrB;AAED,uFAAuF;AACvF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IAC1C,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IACxC,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IACxC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CACxB,GAAG,OAAO,CAOV;AAED,uFAAuF;AACvF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC7C,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IACxC,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;CACxC,GAAG,MAAM,EAAE,CAUX;AAED,+EAA+E;AAC/E,wBAAgB,eAAe,CAC9B,UAAU,EAAE,aAAa,EACzB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACX;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAInC"}
|
package/dist/v2019C1/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { A as e,
|
|
2
|
-
import { Project as
|
|
1
|
+
import { A as e, B as t, C as n, D as r, E as i, F as a, H as o, I as s, L as c, M as l, N as u, O as d, P as f, R as p, S as m, T as h, V as g, _, a as v, b as y, c as b, d as x, f as S, g as C, h as w, i as T, j as E, k as D, l as O, m as k, n as A, o as j, p as M, r as N, s as P, t as F, u as I, v as L, w as R, x as z, y as B, z as V } from "../hooks-CZTZsrpD.js";
|
|
2
|
+
import { Project as H } from "@dialecte/core";
|
|
3
3
|
//#region src/v2019C1/extensions/lifecycle/validate/template-uuid-check.info.ts
|
|
4
|
-
var
|
|
4
|
+
var U = {
|
|
5
5
|
"cross-type-template-uuid": {
|
|
6
6
|
title: "Placeholder templateUuid reused across element types",
|
|
7
7
|
description: "One templateUuid is carried by elements of several different types, so it cannot identify a single template element — it is an authoring placeholder, not real lineage.",
|
|
@@ -20,21 +20,21 @@ var F = {
|
|
|
20
20
|
};
|
|
21
21
|
//#endregion
|
|
22
22
|
//#region src/v2019C1/dialecte.ts
|
|
23
|
-
function
|
|
24
|
-
let { storage:
|
|
25
|
-
return new
|
|
26
|
-
configs: { scl:
|
|
23
|
+
function W(e) {
|
|
24
|
+
let { storage: n = { type: "local" }, extensions: r } = e ?? {};
|
|
25
|
+
return new H({
|
|
26
|
+
configs: { scl: t },
|
|
27
27
|
defaultConfigKey: "scl",
|
|
28
|
-
storage:
|
|
28
|
+
storage: n,
|
|
29
29
|
extensions: {
|
|
30
|
-
base:
|
|
31
|
-
custom:
|
|
30
|
+
base: N,
|
|
31
|
+
custom: r
|
|
32
32
|
},
|
|
33
33
|
hooks: {
|
|
34
|
-
...
|
|
35
|
-
...
|
|
34
|
+
...A(),
|
|
35
|
+
...F
|
|
36
36
|
}
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
39
|
//#endregion
|
|
40
|
-
export {
|
|
40
|
+
export { b as ALL_REF_UUID_ATTRIBUTES, O as ALL_RESOLUTIONS, v as DEFAULT_IGNORED_ATTRIBUTES, d as FRAME_OMIT_CHILD_TAGS, l as KEEP_ON_ORPHAN_REFS, I as LOCKED_LNODE_ATTRIBUTES, x as MAPPED_NAME_REFS, y as MIN_REQUESTED_SCD_CONNECTED_AP_TRIGGER_TAGS, z as MIN_REQUESTED_SCD_DESCRIPTIVE_ATTRIBUTES, m as MIN_REQUESTED_SCD_DESCRIPTIVE_TAGS, n as MIN_REQUESTED_SCD_FILE_USER_ATTRIBUTES, R as MIN_REQUESTED_SCD_IED_IGNORED_ATTRIBUTES, h as MIN_REQUESTED_SCD_IED_TRIGGER_ROOTS, i as MIN_REQUESTED_SCD_IED_TRIGGER_TAGS, r as MIN_REQUESTED_SCD_SUBNETWORK_TRIGGER_TAGS, S as PAIRS_BY_REF, c as PATH_CONTRIBUTING_ATTRIBUTES, p as PATH_EXTRACTION_CONFIG, u as REFERENCE_TAGS, f as REFERENCE_TAG_NAMES, P as REF_CONTAINERS, M as RESOLUTION_TARGET_REFS, B as RESOLUTION_TYPE, k as RESOLVABLE_RESOLUTIONS, V as SCL_DATABASE_CONFIG, t as SCL_DIALECTE_CONFIG, g as SCL_IO_CONFIG, o as SCL_NAMESPACES, a as TARGET_ELEMENT_TYPES, E as TEMPLATE_NAME, U as TEMPLATE_UUID_WARNING_INFO, D as TOPOLOGY_EQUIPMENT_TAGS, e as TOPOLOGY_STRUCTURAL_TAGS, L as TYPE_ID_REFERENCE_PAIRS, w as TYPE_ID_REFERRERS_BY_TARGET, C as TYPE_ID_REF_ATTRIBUTES, _ as TYPE_ID_TARGET_TAGS, s as UUID_REFERENCE_PAIRS, W as createSclProject, j as isTypeIdTarget, T as presentationScope };
|
|
@@ -1,24 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
* Assert a test XML string is valid SCL, structurally: every element's namespace matches its parent
|
|
4
|
-
* context, every element is an allowed child of its parent, and every attribute is a known attribute of
|
|
5
|
-
* its element. Elements unknown to the schema are skipped (bespoke content under a transparent
|
|
6
|
-
* `Private`), and so is any element in a namespace the SCL config does not declare — even when its
|
|
7
|
-
* local name collides with a schema element.
|
|
8
|
-
*
|
|
9
|
-
* `requireComplete` (default `true`) additionally requires every schema-required attribute to be
|
|
10
|
-
* present. Minimal test fixtures legitimately omit these (e.g. a bare `<SCL>` without
|
|
11
|
-
* `version`/`revision`/`release`), so the harness runs with it OFF — structural correctness is
|
|
12
|
-
* enforced, document completeness is not.
|
|
13
|
-
*
|
|
14
|
-
* NOT yet enforced (planned with the validation feature): attribute VALUE facets (uuid pattern, enums,
|
|
15
|
-
* datatypes) and cross-element constraints (unique keys, keyref resolution).
|
|
16
|
-
*/
|
|
17
|
-
export declare function assertValidSclXml(xml: string, label?: string, options?: AssertValidSclXmlOptions): void;
|
|
18
|
-
/**
|
|
19
|
-
* Validate every case's `sourceXml`/`targetXml` and throw ONCE with the violations of all invalid
|
|
20
|
-
* cases, each attributed to its case name — so a suite's fixtures are fixed in one round instead of
|
|
21
|
-
* one failure at a time.
|
|
22
|
-
*/
|
|
23
|
-
export declare function assertValidSclTestCases(params: AssertValidSclTestCasesParams): void;
|
|
1
|
+
export declare const assertValidSclXml: (xml: string, label?: string, options?: import('@dialecte/core/test').AssertValidXmlOptions) => void;
|
|
2
|
+
export declare const assertValidSclTestCases: (params: import('@dialecte/core/test').AssertValidXmlTestCasesParams) => void;
|
|
24
3
|
//# sourceMappingURL=assert-valid-scl-xml.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assert-valid-scl-xml.d.ts","sourceRoot":"","sources":["../../../src/v2019C1/test/assert-valid-scl-xml.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"assert-valid-scl-xml.d.ts","sourceRoot":"","sources":["../../../src/v2019C1/test/assert-valid-scl-xml.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,iBAAiB,sGAAiB,CAAA;AAC/C,eAAO,MAAM,uBAAuB,+EAA0B,CAAA"}
|
package/dist/v2019C1/test.js
CHANGED
|
@@ -1,120 +1,38 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { B as e, H as t, U as n, n as r, r as i, t as a } from "../hooks-CZTZsrpD.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
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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: n,
|
|
7
|
+
namespaces: t,
|
|
8
|
+
schemaName: "SCL"
|
|
9
|
+
}), _ = h, v = g, y = {
|
|
92
10
|
...r(),
|
|
93
11
|
...a
|
|
94
|
-
},
|
|
95
|
-
dialecteConfig:
|
|
96
|
-
extensions:
|
|
97
|
-
hooks:
|
|
98
|
-
}),
|
|
99
|
-
...
|
|
12
|
+
}, b = `xmlns="${e.namespaces.default.uri}"`, x = `xmlns:${e.namespaces.v2019C1.prefix}="${e.namespaces.v2019C1.uri}"`, S = `${b} ${x} ${l} ${c}`, C = { base: i }, w = f({
|
|
13
|
+
dialecteConfig: e,
|
|
14
|
+
extensions: C,
|
|
15
|
+
hooks: y
|
|
16
|
+
}), T = {
|
|
17
|
+
...w,
|
|
100
18
|
withExport(e) {
|
|
101
|
-
|
|
19
|
+
v({ testCases: e.testCases }), w.withExport(e);
|
|
102
20
|
},
|
|
103
21
|
withoutExport(e) {
|
|
104
|
-
|
|
22
|
+
v({ testCases: e.testCases }), w.withoutExport(e);
|
|
105
23
|
}
|
|
106
24
|
};
|
|
107
|
-
async function
|
|
108
|
-
let { sourceXml: n, targetXml: r, dev: i } =
|
|
109
|
-
return
|
|
25
|
+
async function E(t) {
|
|
26
|
+
let { sourceXml: n, targetXml: r, dev: i } = t;
|
|
27
|
+
return _(n, "sourceXml", { requireComplete: !1 }), r && _(r, "targetXml", { requireComplete: !1 }), u({
|
|
110
28
|
sourceXml: n,
|
|
111
29
|
targetXml: r,
|
|
112
|
-
dialecteConfig:
|
|
113
|
-
extensions:
|
|
114
|
-
hooks:
|
|
30
|
+
dialecteConfig: e,
|
|
31
|
+
extensions: C,
|
|
32
|
+
hooks: y,
|
|
115
33
|
dev: i
|
|
116
34
|
});
|
|
117
35
|
}
|
|
118
|
-
var
|
|
36
|
+
var D = d(e), { assertExpectedElementQueries: O, assertUnexpectedElementQueries: k } = p({ namespaces: e.namespaces });
|
|
119
37
|
//#endregion
|
|
120
|
-
export {
|
|
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
|
+
"version": "0.4.1",
|
|
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.
|
|
59
|
+
"@dialecte/core": "0.5.1"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
|
-
"@dialecte/cli": "0.0.
|
|
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"}
|