@aryacode/dsh-engineering 0.9.2 → 0.9.3

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/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.9.3] - 2026-10-27
4
+
5
+ ### Fixed
6
+
7
+ - **`ftview_export` reported `0 display(s)` for a successful export.** The display count used a pattern that
8
+ required a leading slash, but export paths are relative (`Displays/Main Screen.xml`), so every export said
9
+ zero displays even when it wrote thirteen. The count now matches the paths the tool actually returns.
10
+ - **The tags and alarms warning now says what it means.** The copied `Alarms/Alarms.xml` and
11
+ `Tags/<application>.csv` are snapshots Studio last wrote when those components were exported from their
12
+ editors — not fresh data. The warning states that, and that the application export in Studio is what
13
+ refreshes them. There is no supported headless export for either component; this is the honest boundary.
3
14
  ## [0.9.2] - 2026-10-27
4
15
 
5
16
  ### Fixed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aryacode/dsh-engineering",
3
- "version": "0.9.2",
3
+ "version": "0.9.3",
4
4
  "description": "AryaCode engineering bundle: one install surface for the Studio 5000 L5X, FactoryTalk View ME, MotionWorks IEC and FactoryTalk Optix surfaces, one row per product, with the ladder and display previews.",
5
5
  "keywords": [
6
6
  "dsh",
@@ -66,7 +66,7 @@ export function vendorTools(fs) {
66
66
  }
67
67
  const files = exported.value?.files ?? [];
68
68
  const warnings = exported.value?.warnings ?? [];
69
- const displays = files.filter(file => /\/Displays\/.+\.xml$/iu.test(file) && !/batchimport/iu.test(file));
69
+ const displays = files.filter(file => /^Displays\/.+\.xml$/iu.test(file) && !/batchimport/iu.test(file));
70
70
  const manifests = files.filter(file => /batchimport/iu.test(file));
71
71
  const alarms = files.filter(file => /^Alarms\//iu.test(file));
72
72
  const tags = files.filter(file => /^Tags\/.+\.csv$/iu.test(file));
@@ -148,7 +148,7 @@ function freshness(file, relative, database) {
148
148
  try {
149
149
  if (statSync(file).mtimeMs + 60_000 >= statSync(database).mtimeMs)
150
150
  return undefined;
151
- return `${relative} was written ${modifiedOn(file)}, older than the application database (${modifiedOn(database)}); it may not reflect recent changes. Studio refreshes it on its next full export.`;
151
+ return `${relative} was written ${modifiedOn(file)}, older than the application database (${modifiedOn(database)}). This is the last snapshot Studio wrote for that component, not a fresh export: run the application export in FactoryTalk View Studio once to refresh it, then reopen that folder.`;
152
152
  }
153
153
  catch {
154
154
  return undefined;