@dialecte/scl 0.3.8 → 0.3.12

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 (118) hide show
  1. package/dist/{hooks-DJJN-WU2.js → hooks-Cm_UYBBt.js} +1812 -1168
  2. package/dist/v2019C1/constants/reference-pairs.d.ts +11 -0
  3. package/dist/v2019C1/constants/reference-pairs.d.ts.map +1 -1
  4. package/dist/v2019C1/extensions/clean-up/transaction/orphan-lnode-bindings.d.ts +12 -5
  5. package/dist/v2019C1/extensions/clean-up/transaction/orphan-lnode-bindings.d.ts.map +1 -1
  6. package/dist/v2019C1/extensions/clean-up/transaction/orphan-uuid-refs.d.ts.map +1 -1
  7. package/dist/v2019C1/extensions/data-model/query/index.d.ts +1 -0
  8. package/dist/v2019C1/extensions/data-model/query/index.d.ts.map +1 -1
  9. package/dist/v2019C1/extensions/data-model/query/is-lnode-locked.d.ts +18 -0
  10. package/dist/v2019C1/extensions/data-model/query/is-lnode-locked.d.ts.map +1 -0
  11. package/dist/v2019C1/extensions/data-model/transaction/import-types.d.ts.map +1 -1
  12. package/dist/v2019C1/extensions/index.d.ts +1 -0
  13. package/dist/v2019C1/extensions/index.d.ts.map +1 -1
  14. package/dist/v2019C1/extensions/lifecycle/constraints/classify-attribute.d.ts +4 -3
  15. package/dist/v2019C1/extensions/lifecycle/constraints/classify-attribute.d.ts.map +1 -1
  16. package/dist/v2019C1/extensions/lifecycle/cross-cutting/applied-satellites.constants.d.ts +1 -1
  17. package/dist/v2019C1/extensions/lifecycle/engine/decide.d.ts +8 -1
  18. package/dist/v2019C1/extensions/lifecycle/engine/decide.d.ts.map +1 -1
  19. package/dist/v2019C1/extensions/lifecycle/engine/diff.d.ts +40 -8
  20. package/dist/v2019C1/extensions/lifecycle/engine/diff.d.ts.map +1 -1
  21. package/dist/v2019C1/extensions/lifecycle/engine/diff.types.d.ts +37 -28
  22. package/dist/v2019C1/extensions/lifecycle/engine/diff.types.d.ts.map +1 -1
  23. package/dist/v2019C1/extensions/lifecycle/engine/group.d.ts +5 -1
  24. package/dist/v2019C1/extensions/lifecycle/engine/group.d.ts.map +1 -1
  25. package/dist/v2019C1/extensions/lifecycle/engine/index.d.ts +1 -1
  26. package/dist/v2019C1/extensions/lifecycle/engine/index.d.ts.map +1 -1
  27. package/dist/v2019C1/extensions/lifecycle/engine/reconcile.d.ts.map +1 -1
  28. package/dist/v2019C1/extensions/lifecycle/index.d.ts +2 -0
  29. package/dist/v2019C1/extensions/lifecycle/index.d.ts.map +1 -1
  30. package/dist/v2019C1/extensions/lifecycle/instance/find-instance.d.ts +10 -0
  31. package/dist/v2019C1/extensions/lifecycle/instance/find-instance.d.ts.map +1 -1
  32. package/dist/v2019C1/extensions/lifecycle/layers/function/clone-function.d.ts.map +1 -1
  33. package/dist/v2019C1/extensions/lifecycle/layers/function/satellites.constants.d.ts +1 -1
  34. package/dist/v2019C1/extensions/lifecycle/public.d.ts +2 -0
  35. package/dist/v2019C1/extensions/lifecycle/public.d.ts.map +1 -1
  36. package/dist/v2019C1/extensions/lifecycle/report/mark-placement-conflicts.d.ts.map +1 -1
  37. package/dist/v2019C1/extensions/lifecycle/report/query/cross-cutting-satellites.d.ts +7 -5
  38. package/dist/v2019C1/extensions/lifecycle/report/query/cross-cutting-satellites.d.ts.map +1 -1
  39. package/dist/v2019C1/extensions/lifecycle/report/query/report-asd.d.ts.map +1 -1
  40. package/dist/v2019C1/extensions/lifecycle/report/query/report-fsd.d.ts +3 -3
  41. package/dist/v2019C1/extensions/lifecycle/report/query/report-fsd.d.ts.map +1 -1
  42. package/dist/v2019C1/extensions/lifecycle/report/query/report-function-satellites.d.ts +5 -3
  43. package/dist/v2019C1/extensions/lifecycle/report/query/report-function-satellites.d.ts.map +1 -1
  44. package/dist/v2019C1/extensions/lifecycle/report/query/report-function.d.ts +4 -2
  45. package/dist/v2019C1/extensions/lifecycle/report/query/report-function.d.ts.map +1 -1
  46. package/dist/v2019C1/extensions/lifecycle/report/query/report-instance.d.ts +20 -0
  47. package/dist/v2019C1/extensions/lifecycle/report/query/report-instance.d.ts.map +1 -0
  48. package/dist/v2019C1/extensions/lifecycle/report/query/satellite-companions.d.ts +7 -3
  49. package/dist/v2019C1/extensions/lifecycle/report/query/satellite-companions.d.ts.map +1 -1
  50. package/dist/v2019C1/extensions/lifecycle/report/report.d.ts +4 -4
  51. package/dist/v2019C1/extensions/lifecycle/report/report.d.ts.map +1 -1
  52. package/dist/v2019C1/extensions/lifecycle/transplant/transaction/index.d.ts +1 -0
  53. package/dist/v2019C1/extensions/lifecycle/transplant/transaction/index.d.ts.map +1 -1
  54. package/dist/v2019C1/extensions/lifecycle/transplant/transaction/primitives/merge-children-into.d.ts +22 -0
  55. package/dist/v2019C1/extensions/lifecycle/transplant/transaction/primitives/merge-children-into.d.ts.map +1 -0
  56. package/dist/v2019C1/extensions/lifecycle/update/transaction/asd.d.ts +2 -2
  57. package/dist/v2019C1/extensions/lifecycle/update/transaction/asd.d.ts.map +1 -1
  58. package/dist/v2019C1/extensions/lifecycle/update/transaction/fsd.d.ts.map +1 -1
  59. package/dist/v2019C1/extensions/lifecycle/update/transaction/function-satellites.d.ts +1 -1
  60. package/dist/v2019C1/extensions/lifecycle/update/transaction/function-satellites.d.ts.map +1 -1
  61. package/dist/v2019C1/extensions/lifecycle/update/transaction/satellite-reconcile.d.ts.map +1 -1
  62. package/dist/v2019C1/extensions/lifecycle/validate/index.d.ts +4 -0
  63. package/dist/v2019C1/extensions/lifecycle/validate/index.d.ts.map +1 -0
  64. package/dist/v2019C1/extensions/lifecycle/validate/template-uuid-check.d.ts +15 -0
  65. package/dist/v2019C1/extensions/lifecycle/validate/template-uuid-check.d.ts.map +1 -0
  66. package/dist/v2019C1/extensions/lifecycle/validate/template-uuid-check.info.d.ts +10 -0
  67. package/dist/v2019C1/extensions/lifecycle/validate/template-uuid-check.info.d.ts.map +1 -0
  68. package/dist/v2019C1/extensions/lifecycle/validate/template-uuid-check.types.d.ts +41 -0
  69. package/dist/v2019C1/extensions/lifecycle/validate/template-uuid-check.types.d.ts.map +1 -0
  70. package/dist/v2019C1/extensions/presentation/constants/title.d.ts +1 -12
  71. package/dist/v2019C1/extensions/presentation/constants/title.d.ts.map +1 -1
  72. package/dist/v2019C1/extensions/presentation/constants/title.types.d.ts +25 -0
  73. package/dist/v2019C1/extensions/presentation/constants/title.types.d.ts.map +1 -0
  74. package/dist/v2019C1/extensions/presentation/public.d.ts +3 -0
  75. package/dist/v2019C1/extensions/presentation/public.d.ts.map +1 -0
  76. package/dist/v2019C1/extensions/presentation/query/extract-element-title.d.ts +2 -24
  77. package/dist/v2019C1/extensions/presentation/query/extract-element-title.d.ts.map +1 -1
  78. package/dist/v2019C1/extensions/presentation/query/extract-element-title.types.d.ts +24 -0
  79. package/dist/v2019C1/extensions/presentation/query/extract-element-title.types.d.ts.map +1 -0
  80. package/dist/v2019C1/extensions/presentation/query/index.d.ts +1 -0
  81. package/dist/v2019C1/extensions/presentation/query/index.d.ts.map +1 -1
  82. package/dist/v2019C1/extensions/public.d.ts +1 -0
  83. package/dist/v2019C1/extensions/public.d.ts.map +1 -1
  84. package/dist/v2019C1/extensions/reference/constants/derived.d.ts +18 -0
  85. package/dist/v2019C1/extensions/reference/constants/derived.d.ts.map +1 -1
  86. package/dist/v2019C1/extensions/reference/constants/index.d.ts +2 -2
  87. package/dist/v2019C1/extensions/reference/constants/index.d.ts.map +1 -1
  88. package/dist/v2019C1/extensions/reference/constants/orphan-rules.d.ts +0 -8
  89. package/dist/v2019C1/extensions/reference/constants/orphan-rules.d.ts.map +1 -1
  90. package/dist/v2019C1/extensions/reference/query/build/build-mapped-name.d.ts +22 -0
  91. package/dist/v2019C1/extensions/reference/query/build/build-mapped-name.d.ts.map +1 -0
  92. package/dist/v2019C1/extensions/reference/query/build/build-reference-path.d.ts +1 -1
  93. package/dist/v2019C1/extensions/reference/query/build/build-reference-path.d.ts.map +1 -1
  94. package/dist/v2019C1/extensions/reference/query/build/index.d.ts +1 -0
  95. package/dist/v2019C1/extensions/reference/query/build/index.d.ts.map +1 -1
  96. package/dist/v2019C1/extensions/reference/query/resolve/parse-path.d.ts +1 -1
  97. package/dist/v2019C1/extensions/reference/transaction/write-provenance.d.ts +1 -1
  98. package/dist/v2019C1/hooks/after-created/ref-paths.d.ts.map +1 -1
  99. package/dist/v2019C1/hooks/after-updated/ref-paths.d.ts +7 -1
  100. package/dist/v2019C1/hooks/after-updated/ref-paths.d.ts.map +1 -1
  101. package/dist/v2019C1/hooks/before-clone/before-clone.d.ts.map +1 -1
  102. package/dist/v2019C1/hooks/before-delete/orphaned-refs.d.ts.map +1 -1
  103. package/dist/v2019C1/hooks/io/io-hooks.d.ts.map +1 -1
  104. package/dist/v2019C1/hooks/shared/index.d.ts +4 -0
  105. package/dist/v2019C1/hooks/shared/index.d.ts.map +1 -1
  106. package/dist/v2019C1/hooks/shared/lnode-binding.d.ts +23 -0
  107. package/dist/v2019C1/hooks/shared/lnode-binding.d.ts.map +1 -0
  108. package/dist/v2019C1/hooks/shared/mapped-name.d.ts +15 -0
  109. package/dist/v2019C1/hooks/shared/mapped-name.d.ts.map +1 -0
  110. package/dist/v2019C1/hooks/shared/record-ops.d.ts +19 -0
  111. package/dist/v2019C1/hooks/shared/record-ops.d.ts.map +1 -0
  112. package/dist/v2019C1/hooks/shared/ref-path-rebuild.d.ts +17 -0
  113. package/dist/v2019C1/hooks/shared/ref-path-rebuild.d.ts.map +1 -0
  114. package/dist/v2019C1/index.js +31 -12
  115. package/dist/v2019C1/test/hydrated-test.d.ts +2 -0
  116. package/dist/v2019C1/test/hydrated-test.d.ts.map +1 -1
  117. package/dist/v2019C1/test.js +1 -1
  118. package/package.json +5 -5
@@ -62,7 +62,7 @@ export declare function parseLnodePath(pathValue: string): ParsedReference;
62
62
  /**
63
63
  * Strips disambiguation suffix and qualifier from an input/output name.
64
64
  *
65
- * Per IEC TR 61850-90-30:
65
+ * Normalisation rules:
66
66
  * - Instance suffix: "Trip(2)" → "Trip"
67
67
  * - Qualifier suffix: "Trip.pDA" → "Trip"
68
68
  * - Both: "Trip(2).pDA" → "Trip"
@@ -4,7 +4,7 @@ import type * as Core from '@dialecte/core';
4
4
  /**
5
5
  * Writes the instantiation provenance link on the cloned root: a fresh
6
6
  * `FunctionSclRef` / `ApplicationSclRef` > `SclFileReference` pointing back at the
7
- * template file the instance was created from (90-30 §17.2 / §17.3).
7
+ * template file the instance was created from.
8
8
  *
9
9
  * The kernel self-sources every field from the source document — `fileType` from
10
10
  * the caller, `version` / `revision` / `fileUuid` from the template `Header`,
@@ -1 +1 @@
1
- {"version":3,"file":"ref-paths.d.ts","sourceRoot":"","sources":["../../../../src/v2019C1/hooks/after-created/ref-paths.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAEnD,OAAO,KAAK,KAAK,IAAI,MAAM,gBAAgB,CAAA;AAI3C;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,cAAc,SAAS,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE;IAChF,WAAW,EAAE,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IAC1C,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;CACzB,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAO3B"}
1
+ {"version":3,"file":"ref-paths.d.ts","sourceRoot":"","sources":["../../../../src/v2019C1/hooks/after-created/ref-paths.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAEnD,OAAO,KAAK,KAAK,IAAI,MAAM,gBAAgB,CAAA;AAI3C;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,cAAc,SAAS,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE;IAChF,WAAW,EAAE,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IAC1C,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;CACzB,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAU3B"}
@@ -7,10 +7,16 @@ import type * as Core from '@dialecte/core';
7
7
  * Also handles ancestor renames: when a path-contributing attribute changes,
8
8
  * rebuilds ref paths for all descendant targets (e.g. renaming a Bay updates
9
9
  * FunctionRef paths that pass through it).
10
+ *
11
+ * When the updated record is itself a mapped-name referrer (`DOS`/`SDS`/`DAS`),
12
+ * re-normalizes its `mappedDoName`/`mappedDaName` to the short-name form. When it
13
+ * is any other referrer whose binding attributes (target uuid or companion DO/DA
14
+ * names) changed, rebuilds its own path so name and uuid references stay in
15
+ * agreement (the referrer-side counterpart of the after-created hook).
10
16
  */
11
17
  export declare function updateRefPaths<GenericElement extends Scl.ElementsOf>(params: {
18
+ query: Core.Query<Config>;
12
19
  oldRecord: Scl.RawRecord<GenericElement>;
13
20
  newRecord: Scl.RawRecord<GenericElement>;
14
- query: Core.Query<Config>;
15
21
  }): Promise<Scl.Operation[]>;
16
22
  //# sourceMappingURL=ref-paths.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ref-paths.d.ts","sourceRoot":"","sources":["../../../../src/v2019C1/hooks/after-updated/ref-paths.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,KAAK,IAAI,MAAM,gBAAgB,CAAA;AAE3C;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,cAAc,SAAS,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE;IACnF,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IACxC,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IACxC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;CACzB,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAoB3B"}
1
+ {"version":3,"file":"ref-paths.d.ts","sourceRoot":"","sources":["../../../../src/v2019C1/hooks/after-updated/ref-paths.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,KAAK,IAAI,MAAM,gBAAgB,CAAA;AAE3C;;;;;;;;;;;;;GAaG;AACH,wBAAsB,cAAc,CAAC,cAAc,SAAS,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE;IACnF,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IACzB,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IACxC,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;CACxC,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAwC3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"before-clone.d.ts","sourceRoot":"","sources":["../../../../src/v2019C1/hooks/before-clone/before-clone.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAG3C,wBAAgB,WAAW,CAAC,cAAc,SAAS,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE;IAC1E,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;CACtC,GAAG;IACH,cAAc,EAAE,OAAO,CAAA;IACvB,iBAAiB,EAAE,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;CACjD,CA0BA"}
1
+ {"version":3,"file":"before-clone.d.ts","sourceRoot":"","sources":["../../../../src/v2019C1/hooks/before-clone/before-clone.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAmC3C,wBAAgB,WAAW,CAAC,cAAc,SAAS,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE;IAC1E,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;CACtC,GAAG;IACH,cAAc,EAAE,OAAO,CAAA;IACvB,iBAAiB,EAAE,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;CACjD,CAwDA"}
@@ -1 +1 @@
1
- {"version":3,"file":"orphaned-refs.d.ts","sourceRoot":"","sources":["../../../../src/v2019C1/hooks/before-delete/orphaned-refs.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,KAAK,IAAI,MAAM,gBAAgB,CAAA;AAI3C;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CAAC,cAAc,SAAS,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE;IACtF,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IACrC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;CACzB,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAkB3B"}
1
+ {"version":3,"file":"orphaned-refs.d.ts","sourceRoot":"","sources":["../../../../src/v2019C1/hooks/before-delete/orphaned-refs.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,KAAK,IAAI,MAAM,gBAAgB,CAAA;AAI3C;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CAAC,cAAc,SAAS,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE;IACtF,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IACrC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;CACzB,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAiB3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"io-hooks.d.ts","sourceRoot":"","sources":["../../../../src/v2019C1/hooks/io/io-hooks.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAGX,OAAO,EAGP,MAAM,gBAAgB,CAAA;AAEvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAsH1C"}
1
+ {"version":3,"file":"io-hooks.d.ts","sourceRoot":"","sources":["../../../../src/v2019C1/hooks/io/io-hooks.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAGX,OAAO,EAGP,MAAM,gBAAgB,CAAA;AAEvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAsH1C"}
@@ -1,2 +1,6 @@
1
1
  export { updateRefsForEntry, getRefEntriesForTarget } from './ref-entry-ops';
2
+ export { reconcileMappedName } from './mapped-name';
3
+ export { reconcileReferrerRefPaths } from './ref-path-rebuild';
4
+ export { reconcileLNodeBinding } from './lnode-binding';
5
+ export { updatedOperation, upsertAttribute } from './record-ops';
2
6
  //# 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"}
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,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA"}
@@ -0,0 +1,23 @@
1
+ import { Scl, Config } from '../../config';
2
+ import type * as Core from '@dialecte/core';
3
+ /**
4
+ * Keep an `LNode`'s implementation identity in agreement with its `lnUuid` as a
5
+ * side effect of update. When `lnUuid` is set, the identity
6
+ * (`iedName`/`ldInst`/`prefix`/`lnClass`/`lnInst`) is stamped from the target `LN`;
7
+ * when it is cleared, `iedName` is forced to the unbound `None` marker (with
8
+ * `ldInst` dropped) and the specification `prefix`/`lnClass`/`lnInst` are restored
9
+ * from `LNodeSpecNaming` when present. `lnType` is left untouched — it is the
10
+ * specification type reference, not part of the mapped identity. `templateUuid` is
11
+ * also left untouched — it records the template the LNode was instantiated from (the
12
+ * key used to locate the implementing ICD), which is owned by the instantiate
13
+ * lifecycle, not by binding.
14
+ *
15
+ * Runs only when `lnUuid` actually changed, so ordinary edits and coherent imports
16
+ * are untouched. Returns an update operation, or `null` when nothing changes.
17
+ */
18
+ export declare function reconcileLNodeBinding(params: {
19
+ oldRecord: Scl.RawRecord<Scl.ElementsOf>;
20
+ newRecord: Scl.RawRecord<Scl.ElementsOf>;
21
+ query: Core.Query<Config>;
22
+ }): Promise<Scl.Operation | null>;
23
+ //# sourceMappingURL=lnode-binding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lnode-binding.d.ts","sourceRoot":"","sources":["../../../../src/v2019C1/hooks/shared/lnode-binding.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,KAAK,IAAI,MAAM,gBAAgB,CAAA;AAI3C;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IACnD,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,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;CACzB,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,CAchC"}
@@ -0,0 +1,15 @@
1
+ import { Scl, Config } from '../../config';
2
+ import type * as Core from '@dialecte/core';
3
+ /**
4
+ * Reconcile a `DOS`/`SDS`/`DAS` record's mapped-name attribute
5
+ * (`mappedDoName`/`mappedDaName`) to its documentation form as a side effect of
6
+ * create/update: the implementing short name, present only when it differs from
7
+ * the specified `name`, otherwise omitted.
8
+ *
9
+ * Applies only when the LN is mapped by UUID (`mappedLnUuid` present) — the
10
+ * unmapped-LN case authors a full ObjectReference that dialecte must leave intact.
11
+ * Returns an update operation, or `null` when the record is already conformant or
12
+ * the rule does not apply.
13
+ */
14
+ export declare function reconcileMappedName(query: Core.Query<Config>, record: Scl.RawRecord<Scl.ElementsOf>): Promise<Scl.Operation | null>;
15
+ //# sourceMappingURL=mapped-name.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapped-name.d.ts","sourceRoot":"","sources":["../../../../src/v2019C1/hooks/shared/mapped-name.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,KAAK,IAAI,MAAM,gBAAgB,CAAA;AAE3C;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CACxC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EACzB,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,GACnC,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,CAiB/B"}
@@ -0,0 +1,19 @@
1
+ import { Scl } from '../../config';
2
+ /** A plain attribute list as built by the reconcile helpers. */
3
+ export type AttributeList = readonly {
4
+ name: string;
5
+ value: string;
6
+ }[];
7
+ /**
8
+ * Build an `updated` operation that replaces a record's attribute list. The plain
9
+ * `{ name, value }` list is widened to the typed attribute array here — the one
10
+ * place `Scl.Operation`'s strict record type is satisfied — so callers stay
11
+ * cast-free.
12
+ */
13
+ export declare function updatedOperation(record: Scl.RawRecord<Scl.ElementsOf>, attributes: AttributeList): Scl.Operation;
14
+ /** Upsert (replace-or-append) an attribute value on a plain attribute list. */
15
+ export declare function upsertAttribute(attributes: AttributeList, name: string, value: string): {
16
+ name: string;
17
+ value: string;
18
+ }[];
19
+ //# sourceMappingURL=record-ops.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,17 @@
1
+ import { Scl, Config } from '../../config';
2
+ import type * as Core from '@dialecte/core';
3
+ /**
4
+ * When a reference element's own binding attributes change (its companion DO/DA
5
+ * name or its target uuid), rebuild its path attribute from the resolved target
6
+ * so the name reference stays in agreement with the uuid reference.
7
+ *
8
+ * Skips `unsupported` paths (e.g. `VariableApplyTo` XPaths), which must not be
9
+ * regenerated as plain name-paths, and mapped-name refs (`DOS`/`SDS`/`DAS`), which
10
+ * are reconciled separately.
11
+ */
12
+ export declare function reconcileReferrerRefPaths(params: {
13
+ oldRecord: Scl.RawRecord<Scl.ElementsOf>;
14
+ newRecord: Scl.RawRecord<Scl.ElementsOf>;
15
+ query: Core.Query<Config>;
16
+ }): Promise<Scl.Operation[]>;
17
+ //# sourceMappingURL=ref-path-rebuild.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ref-path-rebuild.d.ts","sourceRoot":"","sources":["../../../../src/v2019C1/hooks/shared/ref-path-rebuild.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAEnD,OAAO,KAAK,KAAK,IAAI,MAAM,gBAAgB,CAAA;AAE3C;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAAC,MAAM,EAAE;IACvD,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,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;CACzB,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAe3B"}
@@ -1,21 +1,40 @@
1
- import { C as e, S as t, T as n, _ as r, a as i, b as a, c as o, d as s, f as c, g as l, h as u, i as d, l as f, m as p, n as m, o as h, p as g, r as _, s as v, t as y, u as b, v as x, w as S, x as C, y as w } from "../hooks-DJJN-WU2.js";
2
- import { Project as T } from "@dialecte/core";
1
+ import { A as e, C as t, D as n, E as r, O as i, S as a, T as o, _ as s, a as c, b as l, c as u, d, f, g as p, h as m, i as h, k as g, l as _, m as v, n as y, o as b, p as x, r as S, s as C, t as w, u as T, v as E, w as D, x as O, y as k } from "../hooks-Cm_UYBBt.js";
2
+ import { Project as A } from "@dialecte/core";
3
+ //#region src/v2019C1/extensions/lifecycle/validate/template-uuid-check.info.ts
4
+ var j = {
5
+ "cross-type-template-uuid": {
6
+ title: "Placeholder templateUuid reused across element types",
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.",
8
+ fallback: "Template lineage is ignored for these elements; each instance is recognised by its name within its parent instead, so the merge still proceeds."
9
+ },
10
+ "duplicate-instance-uuid": {
11
+ title: "Duplicate instance uuid",
12
+ description: "The same uuid is used by more than one element. Every instance uuid in an SCL must be unique, so uuid-based identity is ambiguous for the affected elements.",
13
+ fallback: "The affected elements are matched by name and position rather than uuid, so the merge still proceeds — resolve the duplication to restore reliable identity."
14
+ },
15
+ "template-uuid-type-mismatch": {
16
+ title: "templateUuid resolves to a different element type",
17
+ description: "A templateUuid points in-file to an element of a different type than the one carrying it. An instance cannot derive from a template of another type, so the lineage is inconsistent.",
18
+ fallback: "The mismatched lineage is ignored and the element is recognised by name, so the merge still proceeds."
19
+ }
20
+ };
21
+ //#endregion
3
22
  //#region src/v2019C1/dialecte.ts
4
- function E(t) {
5
- let { storage: n = { type: "local" }, extensions: r } = t ?? {};
6
- return new T({
7
- configs: { scl: e },
23
+ function M(e) {
24
+ let { storage: t = { type: "local" }, extensions: n } = e ?? {};
25
+ return new A({
26
+ configs: { scl: i },
8
27
  defaultConfigKey: "scl",
9
- storage: n,
28
+ storage: t,
10
29
  extensions: {
11
- base: _,
12
- custom: r
30
+ base: S,
31
+ custom: n
13
32
  },
14
33
  hooks: {
15
- ...m(),
16
- ...y
34
+ ...y(),
35
+ ...w
17
36
  }
18
37
  });
19
38
  }
20
39
  //#endregion
21
- export { f as ALL_REF_UUID_ATTRIBUTES, b as ALL_RESOLUTIONS, i as DEFAULT_IGNORED_ATTRIBUTES, v as KEEP_ON_ORPHAN_REFS, s as PAIRS_BY_REF, a as PATH_CONTRIBUTING_ATTRIBUTES, C as PATH_EXTRACTION_CONFIG, o as REF_CONTAINERS, c as RESOLUTION_TARGET_REFS, x as RESOLUTION_TYPE, g as RESOLVABLE_RESOLUTIONS, t as SCL_DATABASE_CONFIG, e as SCL_DIALECTE_CONFIG, S as SCL_IO_CONFIG, n as SCL_NAMESPACES, r as TYPE_ID_REFERENCE_PAIRS, p as TYPE_ID_REFERRERS_BY_TARGET, u as TYPE_ID_REF_ATTRIBUTES, l as TYPE_ID_TARGET_TAGS, w as UUID_REFERENCE_PAIRS, E as createSclProject, h as isTypeIdTarget, d as presentationScope };
40
+ export { u as ALL_REF_UUID_ATTRIBUTES, _ as ALL_RESOLUTIONS, c as DEFAULT_IGNORED_ATTRIBUTES, l as KEEP_ON_ORPHAN_REFS, T as LOCKED_LNODE_ATTRIBUTES, d as MAPPED_NAME_REFS, f as PAIRS_BY_REF, o as PATH_CONTRIBUTING_ATTRIBUTES, r as PATH_EXTRACTION_CONFIG, O as REFERENCE_TAGS, a as REFERENCE_TAG_NAMES, C as REF_CONTAINERS, x as RESOLUTION_TARGET_REFS, k as RESOLUTION_TYPE, v as RESOLVABLE_RESOLUTIONS, n as SCL_DATABASE_CONFIG, i as SCL_DIALECTE_CONFIG, g as SCL_IO_CONFIG, e as SCL_NAMESPACES, t as TARGET_ELEMENT_TYPES, j as TEMPLATE_UUID_WARNING_INFO, E as TYPE_ID_REFERENCE_PAIRS, m as TYPE_ID_REFERRERS_BY_TARGET, p as TYPE_ID_REF_ATTRIBUTES, s as TYPE_ID_TARGET_TAGS, D as UUID_REFERENCE_PAIRS, M as createSclProject, b as isTypeIdTarget, h as presentationScope };
@@ -22,6 +22,7 @@ export declare const runSclTestCases: import('@dialecte/core/test').TestRunner<C
22
22
  lifecycle: {
23
23
  query: {
24
24
  report: typeof import('../extensions/lifecycle/report').report;
25
+ checkTemplateUuids: typeof import('../extensions/lifecycle/validate').checkTemplateUuids;
25
26
  };
26
27
  transaction: {
27
28
  extract: typeof import("../extensions/lifecycle/extract");
@@ -65,6 +66,7 @@ export declare function createSclTestProject(params: {
65
66
  lifecycle: {
66
67
  query: {
67
68
  report: typeof import('../extensions/lifecycle/report').report;
69
+ checkTemplateUuids: typeof import('../extensions/lifecycle/validate').checkTemplateUuids;
68
70
  };
69
71
  transaction: {
70
72
  extract: typeof import("../extensions/lifecycle/extract");
@@ -1 +1 @@
1
- {"version":3,"file":"hydrated-test.d.ts","sourceRoot":"","sources":["../../../src/v2019C1/test/hydrated-test.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,0BAA0B,EAC1B,+BAA+B,EAE/B,MAAM,wBAAwB,CAAA;AAa/B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AAO9D,eAAO,MAAM,mBAAmB,QAA0D,CAAA;AAC1F,eAAO,MAAM,yBAAyB,QAA2G,CAAA;AACjJ,eAAO,MAAM,oBAAoB,QAAsG,CAAA;AACvI,OAAO,EAAE,0BAA0B,EAAE,+BAA+B,EAAE,CAAA;AAItE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI1B,CAAA;AAEF,wBAAsB,oBAAoB,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAU3F;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;CAAuD,CAAA;AACvF,eAAO,MAAQ,4BAA4B;;;YAAE,8BAA8B;;;UAI1E,CAAA"}
1
+ {"version":3,"file":"hydrated-test.d.ts","sourceRoot":"","sources":["../../../src/v2019C1/test/hydrated-test.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,0BAA0B,EAC1B,+BAA+B,EAE/B,MAAM,wBAAwB,CAAA;AAa/B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AAO9D,eAAO,MAAM,mBAAmB,QAA0D,CAAA;AAC1F,eAAO,MAAM,yBAAyB,QAA2G,CAAA;AACjJ,eAAO,MAAM,oBAAoB,QAAsG,CAAA;AACvI,OAAO,EAAE,0BAA0B,EAAE,+BAA+B,EAAE,CAAA;AAItE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI1B,CAAA;AAEF,wBAAsB,oBAAoB,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAU3F;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;CAAuD,CAAA;AACvF,eAAO,MAAQ,4BAA4B;;;YAAE,8BAA8B;;;UAI1E,CAAA"}
@@ -1,4 +1,4 @@
1
- import { C as e, n as t, r as n, t as r } from "../hooks-DJJN-WU2.js";
1
+ import { O as e, n as t, r as n, t as r } from "../hooks-Cm_UYBBt.js";
2
2
  import { CUSTOM_RECORD_ID_ATTRIBUTE as i, CUSTOM_RECORD_ID_ATTRIBUTE_NAME as a, XMLNS_XSI_NAMESPACE as o } from "@dialecte/core/helpers";
3
3
  import { XMLNS_DEV_NAMESPACE as s, createTestProject as c, createTestRecordFactory as l, createTestRunner as u, createXmlAssertions as d } from "@dialecte/core/test";
4
4
  //#region src/v2019C1/test/hydrated-test.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dialecte/scl",
3
- "version": "0.3.8",
3
+ "version": "0.3.12",
4
4
  "description": "Dialecte - SCL (Substation Configuration Language) sdk",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -54,21 +54,21 @@
54
54
  "prepare": "husky"
55
55
  },
56
56
  "dependencies": {
57
- "@dialecte/core": "0.4.7"
57
+ "@dialecte/core": "0.4.9"
58
58
  },
59
59
  "devDependencies": {
60
60
  "@dialecte/cli": "0.0.2",
61
61
  "@tsconfig/node24": "^24.0.4",
62
62
  "@types/node": "^24.12.4",
63
63
  "@typescript/native": "npm:typescript@^7.0.2",
64
- "@vitest/browser-playwright": "4.1.8",
64
+ "@vitest/browser-playwright": "^4.1.10",
65
65
  "husky": "^9.1.7",
66
66
  "jiti": "^2.4.2",
67
67
  "npm-run-all2": "^8.0.4",
68
68
  "oxfmt": "^0.53.0",
69
69
  "oxlint": "^1.68.0",
70
70
  "oxlint-tsgolint": "^0.23.0",
71
- "playwright": "^1.60.0",
71
+ "playwright": "^1.61.1",
72
72
  "tsx": "^4.22.4",
73
73
  "typescript": "npm:@typescript/typescript6@^6.0.2",
74
74
  "vite": "8.0.16",
@@ -76,6 +76,6 @@
76
76
  "vitepress": "^2.0.0-alpha.17",
77
77
  "vitepress-mermaid-renderer": "^1.1.21",
78
78
  "vitepress-plugin-llms": "^1.13.1",
79
- "vitest": "4.1.8"
79
+ "vitest": "^4.1.10"
80
80
  }
81
81
  }