@guanjinke/artifact-client 1.16.0 → 1.18.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.
@@ -1 +1 @@
1
- {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/environment/plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/environment/plan.ts"],"names":[],"mappings":"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"}
@@ -44,6 +44,32 @@ export interface LayoutMapping {
44
44
  * ever needing the other's directory.
45
45
  */
46
46
  edition?: 'cn' | 'en';
47
+ /**
48
+ * Product majors this mapping belongs to. Omitting it means every major; a
49
+ * `worker` that only the dev line publishes is tagged `['dev']`, so a 9.1
50
+ * environment never requires, copies or references it.
51
+ */
52
+ majors?: string[];
53
+ /**
54
+ * Take the mapping's source directory from the (unique) assembly's own
55
+ * directory inside the extracted archive instead of the declared `source`.
56
+ * That is how a package whose layout changed between builds — plugin files at
57
+ * the archive root, then under `plugin/`, then under a renamed directory — is
58
+ * deployed without pinning a layout version: the assembly decides.
59
+ */
60
+ locateAssembly?: boolean;
61
+ /**
62
+ * Skip this mapping when its assembly (or, without `locateAssembly`, its source
63
+ * directory) is absent from the archive. A worker that only newer packages
64
+ * ship is optional; a plugin never is.
65
+ */
66
+ optional?: boolean;
67
+ /**
68
+ * Top-level entries of the source tree that must not be copied. A flat plugin
69
+ * tree that also carries a worker directory excludes it, so the worker is
70
+ * never nested inside the plugin's destination.
71
+ */
72
+ exclude?: string[];
47
73
  }
48
74
  interface EnvironmentArtifactBase {
49
75
  module: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/environment/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/environment/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/environment/types.ts"],"names":[],"mappings":";;AA+GA,gDAEC;AAHD,uFAAuF;AACvF,SAAgB,kBAAkB,CAAC,QAAyB;IAC1D,OAAQ,QAAmC,CAAC,QAAQ,KAAK,IAAI,CAAC;AAChE,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/environment/types.ts"],"names":[],"mappings":";;AAyIA,gDAEC;AAHD,uFAAuF;AACvF,SAAgB,kBAAkB,CAAC,QAAyB;IAC1D,OAAQ,QAAmC,CAAC,QAAQ,KAAK,IAAI,CAAC;AAChE,CAAC"}
@@ -45,7 +45,7 @@ export interface UpdateResult {
45
45
  changes: ModuleChange[];
46
46
  skipped: {
47
47
  module: string;
48
- reason: 'local' | 'provider';
48
+ reason: 'local' | 'provider' | 'current';
49
49
  }[];
50
50
  restartRequired: boolean;
51
51
  warnings: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/environment/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/environment/update.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,7 @@ const path = __importStar(require("path"));
41
41
  const fast_xml_parser_1 = require("fast-xml-parser");
42
42
  const catalog_1 = require("./catalog");
43
43
  const deferred_1 = require("./deferred");
44
+ const layout_1 = require("./layout");
44
45
  const artifact_cache_1 = require("./artifact-cache");
45
46
  const manifest_1 = require("./manifest");
46
47
  const archive_1 = require("./archive");
@@ -155,6 +156,115 @@ function localServerPath(directory, relative) {
155
156
  */
156
157
  const selectableModules = () => new Set([...new Set(Object.values(plan_1.optionalModulesByEdition).flat())]);
157
158
  const installationDirectory = (root, destination) => path.join(root, ...destination.split('/'));
159
+ /**
160
+ * Read the configuration entries a deployed module must still have.
161
+ *
162
+ * The check only ever *reads*: a module whose files are all in place but whose
163
+ * plugin, worker or service entry disappeared from the configuration is not
164
+ * current, so the update repairs it instead of skipping.
165
+ */
166
+ function readConfigurationView(configuration) {
167
+ const services = new fast_xml_parser_1.XMLParser(parserOptions).parse(configuration)?.SystemConfig?.Services;
168
+ if (!services || typeof services !== 'object' || Array.isArray(services))
169
+ throw new Error('Invalid environment configuration.');
170
+ const strings = (value) => value === undefined || value === '' ? [] : Array.isArray(value) ? value.map(String) : [String(value)];
171
+ const server = services.Server;
172
+ const nodes = new Map();
173
+ for (const [name, value] of Object.entries(services)) {
174
+ nodes.set(name, value && typeof value === 'object' && !Array.isArray(value) ? value : undefined);
175
+ }
176
+ return {
177
+ plugins: strings(server?.Plugins?.['sys:string']),
178
+ workers: strings(server?.PluginWorkers?.['sys:string']),
179
+ services: nodes,
180
+ };
181
+ }
182
+ /**
183
+ * Whether a module already is exactly what a remote update would deploy.
184
+ *
185
+ * Version equality alone is not enough: the catalog's layout may have changed
186
+ * since the environment was created (a worker added, a directory renamed), a
187
+ * deployed directory or assembly may be missing, or a plugin/worker/service
188
+ * entry may have vanished from the configuration. All of those are repair work,
189
+ * so they force a deployment. A module with a local source is never current: the
190
+ * remote spec is the way back to the published artifact.
191
+ */
192
+ async function moduleIsCurrent(entry, manifest, artifact, edition, configuration, platform) {
193
+ const recorded = (manifest.artifacts ?? []).find(candidate => candidate.module === artifact.module);
194
+ if (!recorded || recorded.version !== artifact.version)
195
+ return false;
196
+ if (JSON.stringify(recorded.mappings ?? []) !== JSON.stringify(artifact.mappings))
197
+ return false;
198
+ const view = readConfigurationView(configuration);
199
+ for (const mapping of (0, catalog_1.editionMappings)(artifact.mappings, edition)) {
200
+ const destination = installationDirectory(entry.root, mapping.destination);
201
+ if (!(await fs.lstat(destination).catch(() => undefined))?.isDirectory())
202
+ return false;
203
+ if (mapping.role === 'resource')
204
+ continue;
205
+ if (mapping.role === 'service') {
206
+ if (mapping.service && !view.services.get(mapping.service))
207
+ return false;
208
+ continue;
209
+ }
210
+ let assembly;
211
+ for (const name of mapping.assemblies) {
212
+ const stat = await fs.lstat(path.join(destination, name)).catch(() => undefined);
213
+ if (stat?.isFile() && !stat.isSymbolicLink()) {
214
+ assembly = name;
215
+ break;
216
+ }
217
+ }
218
+ if (!assembly)
219
+ return false;
220
+ if (mapping.role !== 'plugin' && !(await fs.lstat(path.join(destination, assembly.replace(/\.dll$/i, '.runtimeconfig.json'))).catch(() => undefined))?.isFile())
221
+ return false;
222
+ const configured = windowsPath(path.posix.join(mapping.destination, assembly), platform).toLowerCase();
223
+ if (mapping.role === 'plugin') {
224
+ if (!view.plugins.some(value => value.toLowerCase() === configured))
225
+ return false;
226
+ }
227
+ else if (mapping.role === 'worker') {
228
+ if (!view.workers.some(value => value.toLowerCase() === configured))
229
+ return false;
230
+ const node = mapping.service ? view.services.get(mapping.service) : undefined;
231
+ if (!node || String(node.Assembly ?? '').toLowerCase() !== path.posix.basename(assembly).toLowerCase())
232
+ return false;
233
+ }
234
+ else if (mapping.role === 'server') {
235
+ const node = view.services.get('Server');
236
+ if (!node || String(node.Assembly ?? '').toLowerCase() !== path.posix.basename(assembly).toLowerCase())
237
+ return false;
238
+ }
239
+ }
240
+ return true;
241
+ }
242
+ /**
243
+ * Whether a deferred replacement is already applied.
244
+ *
245
+ * The target file must still hash to the recorded download: a Server refresh (or
246
+ * a manual copy) overwrites it, and re-applying it is the whole point of the
247
+ * module. The caller never treats this as current while the same call refreshes
248
+ * the Server package.
249
+ */
250
+ async function replacementIsCurrent(entry, manifest, module, version) {
251
+ const recorded = (manifest.artifacts ?? []).find(candidate => candidate.module === module);
252
+ if (!recorded || recorded.version !== version)
253
+ return false;
254
+ const label = (0, catalog_1.moduleLabel)(catalog_1.catalog[module]);
255
+ const download = (manifest.downloads ?? []).find(candidate => candidate.plugin.toLowerCase() === label.toLowerCase());
256
+ if (!download?.sha256 || download.version !== version)
257
+ return false;
258
+ for (const mapping of (0, deferred_1.replacementMappings)(catalog_1.catalog[module])) {
259
+ const file = installationDirectory(entry.root, mapping.destination);
260
+ const stat = await fs.lstat(file).catch(() => undefined);
261
+ if (!stat?.isFile() || stat.isSymbolicLink())
262
+ return false;
263
+ if (await (0, builder_1.hashFile)(file) !== download.sha256.toLowerCase())
264
+ return false;
265
+ }
266
+ return true;
267
+ }
158
268
  /**
159
269
  * The edition an environment deploys. The registry records a free string and
160
270
  * only `en` is special everywhere else in this module, so anything else counts
@@ -415,7 +525,15 @@ function patchEnvironmentConfiguration(xml, entries, platform = process.platform
415
525
  if (nodes[entry.service] === undefined)
416
526
  nodes[entry.service] = {};
417
527
  for (const entry of hosted) {
418
- const node = nodes[entry.service];
528
+ let node = nodes[entry.service];
529
+ // A worker installed into an environment that never carried it gets the
530
+ // service node `create-env` would have written: embedded workers are loaded
531
+ // from `<PluginWorkers>` and are not spawned as a separate service, so the
532
+ // node stays disabled exactly like a freshly created environment's.
533
+ if (node === undefined && entry.role === 'worker') {
534
+ node = { Disabled: 'true' };
535
+ nodes[entry.service] = node;
536
+ }
419
537
  if (!node || typeof node !== 'object' || Array.isArray(node))
420
538
  continue;
421
539
  const fields = node;
@@ -496,7 +614,7 @@ async function resolveRemoteArtifact(client, entry, spec) {
496
614
  const remotePath = candidates[0].path;
497
615
  if (!remotePath || /[?:\\\x00-\x1f]/.test(remotePath) || remotePath.startsWith('/') || remotePath.split('/').includes('..'))
498
616
  throw new Error(`${source.plugin}/${version}: invalid artifact path.`);
499
- return { module, plugin: source.plugin, version, name, path: remotePath, mappings: source.mappings.map(mapping => ({ ...mapping, assemblies: [...mapping.assemblies] })) };
617
+ return { module, plugin: source.plugin, version, name, path: remotePath, mappings: (0, catalog_1.majorMappings)(source.mappings, entry.major) };
500
618
  }
501
619
  /** Download, hash, extract and verify one resolved artifact inside the staging workspace. */
502
620
  async function stageRemoteArtifact(client, artifact, edition, workspace, onProgress) {
@@ -516,9 +634,13 @@ async function stageRemoteArtifact(client, artifact, edition, workspace, onProgr
516
634
  await (0, archive_1.extractArchive)(archive, expanded);
517
635
  const assemblies = new Map();
518
636
  // A mapping of the other edition is never required: its source directory
519
- // does not even have to be in the archive.
520
- for (const mapping of (0, catalog_1.editionMappings)(artifact.mappings, edition)) {
521
- const source = path.join(expanded, mapping.source);
637
+ // does not even have to be in the archive. The layout resolver then turns each
638
+ // declared source into the directory this package really uses and drops an
639
+ // optional mapping the package does not carry (an older package without the
640
+ // worker).
641
+ const layout = await (0, layout_1.resolveLayoutMappings)((0, catalog_1.editionMappings)(artifact.mappings, edition), expanded);
642
+ for (const mapping of layout) {
643
+ const source = path.join(expanded, ...mapping.source.split('/'));
522
644
  if (!(await fs.lstat(source)).isDirectory())
523
645
  throw new Error('Required source directory missing.');
524
646
  // A `resource` mapping is a static tree with no assembly to verify and no
@@ -549,7 +671,7 @@ async function stageRemoteArtifact(client, artifact, edition, workspace, onProgr
549
671
  await (0, builder_1.regularFile)(path.join(source, present[0].replace(/\.dll$/, '.runtimeconfig.json')));
550
672
  }
551
673
  onProgress?.(`${label}: Archive and layout checks complete`);
552
- return { ...artifact, sha256, expanded, assemblies };
674
+ return { ...artifact, sha256, expanded, assemblies, layout };
553
675
  }
554
676
  catch (error) {
555
677
  throw new Error(`Module update failed for ${artifact.plugin}/${artifact.version}/${artifact.name} (download, archive or layout): ${error.message}`);
@@ -649,16 +771,16 @@ async function mergeConfigurationAssets(source, destination) {
649
771
  }
650
772
  }
651
773
  /** Mappings of one module that a local source may override. */
652
- const localMappings = (module) => catalog_1.catalog[module].mappings.filter(mapping => mapping.role === 'plugin' || mapping.role === 'worker');
653
- const expectedAssemblies = (module) => [...new Set(localMappings(module).flatMap(mapping => mapping.assemblies))];
774
+ const localMappings = (module, major) => (0, catalog_1.majorMappings)(catalog_1.catalog[module].mappings, major).filter(mapping => mapping.role === 'plugin' || mapping.role === 'worker');
775
+ const expectedAssemblies = (module, major) => [...new Set(localMappings(module, major).flatMap(mapping => mapping.assemblies))];
654
776
  const lstatOrUndefined = (target) => fs.lstat(target).catch((error) => { if (error.code === 'ENOENT')
655
777
  return undefined; throw error; });
656
- /** Locate the single mapping of `module` whose known assemblies include `assembly`. */
657
- function mappingForAssembly(module, assembly) {
778
+ /** Locate the single mapping of one already-resolved list whose known assemblies include `assembly`. */
779
+ function mappingForAssembly(mappings, module, assembly) {
658
780
  const wanted = assembly.toLowerCase();
659
- const matches = localMappings(module).filter(mapping => mapping.assemblies.some(name => name.toLowerCase() === wanted));
781
+ const matches = mappings.filter(mapping => mapping.assemblies.some(name => name.toLowerCase() === wanted));
660
782
  if (matches.length !== 1)
661
- throw new Error(`Local target ${assembly} is not one assembly of module ${module}. Expected one of ${expectedAssemblies(module).join(', ')}.`);
783
+ throw new Error(`Local target ${assembly} is not one assembly of module ${module}. Expected one of ${[...new Set(mappings.flatMap(mapping => mapping.assemblies))].join(', ')}.`);
662
784
  return { mapping: matches[0], assembly: matches[0].assemblies.find(name => name.toLowerCase() === wanted) };
663
785
  }
664
786
  /**
@@ -717,7 +839,7 @@ async function resolveLocalSource(entry, module, assembly, input) {
717
839
  // configuration could point at: it is copied over `Server/` on every start.
718
840
  if (module === 'server')
719
841
  return resolveLocalServerSource(entry, assembly, input);
720
- const mappings = localMappings(module);
842
+ const mappings = localMappings(module, entry.major);
721
843
  // The Server, Monitor and collaboration deployments are whole services, not a
722
844
  // plugin the Server loads: a developer build has no place to point the
723
845
  // configuration at, so they are refreshed from their artifact only.
@@ -738,12 +860,12 @@ async function resolveLocalSource(entry, module, assembly, input) {
738
860
  const name = (0, local_path_1.baseNameOf)(source).toLowerCase();
739
861
  const matches = mappings.filter(mapping => mapping.assemblies.some(known => known.toLowerCase() === name));
740
862
  if (matches.length !== 1)
741
- throw new Error(`Local source ${source} matches ${matches.length} targets of module ${module}. Expected one of ${expectedAssemblies(module).join(', ')}; select one explicitly with ${module}#<assembly>=<path>.`);
863
+ throw new Error(`Local source ${source} matches ${matches.length} targets of module ${module}. Expected one of ${expectedAssemblies(module, entry.major).join(', ')}; select one explicitly with ${module}#<assembly>=<path>.`);
742
864
  selected.push({ mapping: matches[0], assembly: matches[0].assemblies.find(known => known.toLowerCase() === name), path: source });
743
865
  inactive.push(...mappings.filter(mapping => mapping !== matches[0]).map(mapping => mapping.destination));
744
866
  }
745
867
  else {
746
- const named = mappingForAssembly(module, assembly);
868
+ const named = mappingForAssembly(mappings, module, assembly);
747
869
  // The explicit form exists for a build whose file name matches no assembly;
748
870
  // a file that is another target's assembly is still a mistake.
749
871
  const basename = (0, local_path_1.baseNameOf)(source);
@@ -755,7 +877,7 @@ async function resolveLocalSource(entry, module, assembly, input) {
755
877
  }
756
878
  }
757
879
  else if (stat.isDirectory()) {
758
- const named = assembly === undefined ? undefined : mappingForAssembly(module, assembly);
880
+ const named = assembly === undefined ? undefined : mappingForAssembly(mappings, module, assembly);
759
881
  for (const mapping of named ? [named.mapping] : mappings) {
760
882
  const present = [];
761
883
  for (const name of named ? [named.assembly] : mapping.assemblies) {
@@ -775,7 +897,7 @@ async function resolveLocalSource(entry, module, assembly, input) {
775
897
  if (!selected.length) {
776
898
  if (named)
777
899
  throw new Error(`Local source directory ${source} does not contain ${named.assembly}.`);
778
- throw new Error(`Local source directory ${source} must contain exactly one of ${expectedAssemblies(module).join(', ')} for module ${module}; select one explicitly with ${module}#<assembly>=<path>.`);
900
+ throw new Error(`Local source directory ${source} must contain exactly one of ${expectedAssemblies(module, entry.major).join(', ')} for module ${module}; select one explicitly with ${module}#<assembly>=<path>.`);
779
901
  }
780
902
  }
781
903
  else
@@ -941,12 +1063,18 @@ class EnvironmentUpdater {
941
1063
  // runtimeconfig files, so an update replaces the entries of the modules it
942
1064
  // refreshes and leaves every other module's alone.
943
1065
  let requirements = Array.isArray(manifest.requirements) ? manifest.requirements.filter((line) => typeof line === 'string') : [];
1066
+ // Read once: the up-to-date check below inspects the same configuration the
1067
+ // patch would rewrite later, and an environment without it is not current.
1068
+ const configured = await fs.readFile(path.join(entry.root, 'conf', 'Wyn.conf'), 'utf8');
944
1069
  const workspace = !dryRun && remote.length > 0 ? await fs.mkdtemp(path.join(path.dirname(entry.root), '.afm-env-')) : undefined;
945
1070
  const warnings = [];
946
1071
  try {
947
1072
  const resolved = new Map();
948
1073
  const staged = new Map();
949
1074
  const replacements = new Map();
1075
+ // Modules already at the resolved version with a complete deployment: they
1076
+ // are reported as skipped and never downloaded, staged or written.
1077
+ const current = new Map();
950
1078
  if (remote.length) {
951
1079
  const client = clientFactory();
952
1080
  const direct = remote.filter(spec => !catalog_1.catalog[spec.module].deferred);
@@ -954,9 +1082,24 @@ class EnvironmentUpdater {
954
1082
  onProgress?.(`Resolving ${catalog_1.catalog[spec.module].plugin}`);
955
1083
  resolved.set(spec.module, await resolveRemoteArtifact(client, entry, spec));
956
1084
  }
1085
+ // A module the caller pinned is always deployed: the pin is the explicit
1086
+ // request for that build. Modules the same call re-deploys because of a
1087
+ // Server refresh are never current either — their files are about to be
1088
+ // replaced. Everything else is compared with the deployed record and its
1089
+ // actual files and configuration entries before anything is downloaded.
1090
+ for (const spec of direct) {
1091
+ if (spec.version !== undefined || autoRefreshed.includes(spec.module) || autoReplaced.includes(spec.module))
1092
+ continue;
1093
+ const artifact = resolved.get(spec.module);
1094
+ if (await moduleIsCurrent(entry, manifest, artifact, editionOf(entry), configured, this.platform)) {
1095
+ current.set(spec.module, artifact.version);
1096
+ onProgress?.(`${artifact.module}/${artifact.version}: already deployed; nothing downloaded`);
1097
+ }
1098
+ }
957
1099
  if (!dryRun)
958
1100
  for (const spec of direct)
959
- staged.set(spec.module, await stageRemoteArtifact(client, resolved.get(spec.module), editionOf(entry), workspace, onProgress));
1101
+ if (!current.has(spec.module))
1102
+ staged.set(spec.module, await stageRemoteArtifact(client, resolved.get(spec.module), editionOf(entry), workspace, onProgress));
960
1103
  // A deferred module resolves after the direct artifacts are staged, so a
961
1104
  // Server refresh contributes the *new* package's version. Without a
962
1105
  // Server refresh the already deployed tree is the authority. A dry-run
@@ -1000,6 +1143,16 @@ class EnvironmentUpdater {
1000
1143
  }
1001
1144
  else
1002
1145
  version = await (0, deferred_1.deferredVersion)(source, entry.root);
1146
+ // Already applied and untouched: the recorded download still hashes to
1147
+ // the deployed file, so there is nothing to download or copy. A call
1148
+ // that refreshes the Server always re-applies it (autoReplaced), and a
1149
+ // local Server build resolves a version this tree does not hold.
1150
+ if (!refreshesServer && !localServer && spec.version === undefined && !autoReplaced.includes(module)
1151
+ && await replacementIsCurrent(entry, manifest, module, version)) {
1152
+ current.set(module, version);
1153
+ onProgress?.(`${label}/${version}: already applied; nothing downloaded`);
1154
+ continue;
1155
+ }
1003
1156
  const payloads = await (0, deferred_1.deferredPayload)(source, version, client);
1004
1157
  if (dryRun) {
1005
1158
  onProgress?.(`${label}/${version}: resolved from ${resolvedFrom}; nothing downloaded`);
@@ -1009,7 +1162,6 @@ class EnvironmentUpdater {
1009
1162
  replacements.set(module, await stageReplacement(client, module, version, payloads, workspace, onProgress));
1010
1163
  }
1011
1164
  }
1012
- const configured = await fs.readFile(path.join(entry.root, 'conf', 'Wyn.conf'), 'utf8');
1013
1165
  // A Server or Monitor package is only usable when it still serves the
1014
1166
  // configuration schema this environment runs, so both are checked against
1015
1167
  // the deployed schema before anything is planned around them.
@@ -1044,6 +1196,13 @@ class EnvironmentUpdater {
1044
1196
  for (const module of planOrder) {
1045
1197
  const artifact = artifacts.find(candidate => candidate.module === module);
1046
1198
  const previous = moduleSources[module] ? { local: moduleSources[module].path } : { version: artifact?.version };
1199
+ // Already deployed by the check above: report it and keep every file, the
1200
+ // configuration and the manifest exactly as they are.
1201
+ if (current.has(module)) {
1202
+ skipped.push({ module, reason: 'current' });
1203
+ onProgress?.(`${module}/${current.get(module)}: already deployed; skipped`);
1204
+ continue;
1205
+ }
1047
1206
  const override = localOverrides.get(module);
1048
1207
  if (override && module === 'server') {
1049
1208
  // A local Server build is recorded, not laid out: the build directory is
@@ -1127,7 +1286,7 @@ class EnvironmentUpdater {
1127
1286
  let configurationLink;
1128
1287
  // Only the mappings this environment's edition deploys: the other
1129
1288
  // edition's directory is never removed, copied or referenced.
1130
- for (const mapping of (0, catalog_1.editionMappings)(remoteArtifact.mappings, editionOf(entry))) {
1289
+ for (const mapping of stagedArtifact?.layout ?? (0, catalog_1.editionMappings)(remoteArtifact.mappings, editionOf(entry))) {
1131
1290
  const destination = installationDirectory(entry.root, mapping.destination);
1132
1291
  // A `resource` directory the module already deployed is replaced, never
1133
1292
  // merged, and it contributes no plugin, worker, service or runtime entry.
@@ -1145,7 +1304,7 @@ class EnvironmentUpdater {
1145
1304
  }
1146
1305
  }
1147
1306
  if (stagedArtifact)
1148
- copies.push({ source: path.join(stagedArtifact.expanded, mapping.source), destination, exclude: excludedCopyNames(mapping) });
1307
+ copies.push({ source: path.join(stagedArtifact.expanded, ...mapping.source.split('/')), destination, exclude: [...excludedCopyNames(mapping), ...(mapping.exclude ?? []).map(name => name.toLowerCase())] });
1149
1308
  copiedDirectories.push(mapping.destination);
1150
1309
  if (mapping.role === 'resource')
1151
1310
  continue;
@@ -1205,7 +1364,7 @@ class EnvironmentUpdater {
1205
1364
  if (plan.artifact) {
1206
1365
  const replacement = {
1207
1366
  module: plan.module, plugin: plan.artifact.plugin, version: plan.artifact.version, name: plan.artifact.name, path: plan.artifact.path,
1208
- mappings: catalog_1.catalog[plan.module].mappings.map(mapping => ({ ...mapping, assemblies: [...mapping.assemblies] })),
1367
+ mappings: plan.artifact.mappings.map(mapping => ({ ...mapping, assemblies: [...mapping.assemblies] })),
1209
1368
  };
1210
1369
  const index = nextArtifacts.findIndex(candidate => candidate.module === plan.module);
1211
1370
  if (index < 0)
@@ -1223,10 +1382,10 @@ class EnvironmentUpdater {
1223
1382
  // the ones the new package actually declares, per deployed mapping.
1224
1383
  // A resource mapping is a static tree: it declares none.
1225
1384
  requirements = requirements.filter(line => !line.endsWith(` (${plan.module})`));
1226
- for (const mapping of (0, catalog_1.editionMappings)(plan.artifact.mappings, editionOf(entry))) {
1385
+ for (const mapping of plan.staged.layout) {
1227
1386
  if (mapping.role === 'service' || mapping.role === 'resource')
1228
1387
  continue;
1229
- for (const framework of await (0, builder_1.runtimeRequirements)(path.join(plan.staged.expanded, mapping.source))) {
1388
+ for (const framework of await (0, builder_1.runtimeRequirements)(path.join(plan.staged.expanded, ...mapping.source.split('/')))) {
1230
1389
  requirements.push(`${framework.name} ${framework.version} (${plan.module})`);
1231
1390
  }
1232
1391
  }
@@ -1321,8 +1480,15 @@ class EnvironmentUpdater {
1321
1480
  const localModules = Object.keys(moduleSources).sort();
1322
1481
  if (state === 'running')
1323
1482
  warnings.push(`${entry.name} is running; restart it to load the updated modules.`);
1324
- for (const item of skipped)
1325
- warnings.push(item.reason === 'local' ? `${item.module} has a local source and was not updated from artifacts.` : `${item.module} is published only on ${(0, catalog_1.providerLabel)('oss')} and was not updated from ${(0, catalog_1.providerLabel)('az')}.`);
1483
+ for (const item of skipped) {
1484
+ if (item.reason === 'local')
1485
+ warnings.push(`${item.module} has a local source and was not updated from artifacts.`);
1486
+ else if (item.reason === 'provider')
1487
+ warnings.push(`${item.module} is published only on ${(0, catalog_1.providerLabel)('oss')} and was not updated from ${(0, catalog_1.providerLabel)('az')}.`);
1488
+ }
1489
+ const currentSkipped = skipped.filter(item => item.reason === 'current');
1490
+ if (currentSkipped.length)
1491
+ warnings.push(`Already at the resolved version (nothing updated): ${currentSkipped.map(item => `${item.module} ${current.get(item.module)}`).join(', ')}.`);
1326
1492
  // The Server and Monitor packages each ship the XSD assets for a
1327
1493
  // configuration schema, so replacing one of them alone leaves the
1328
1494
  // environment mixing two package generations for the same configuration.
@@ -1340,6 +1506,13 @@ class EnvironmentUpdater {
1340
1506
  warnings.push(`${autoReplaced.join(', ')} was re-applied with the Server package: the new package ships the file it replaces, so it was applied again.`);
1341
1507
  if (removedCreateOnly.length)
1342
1508
  warnings.push(`${removedCreateOnly.join(', ')} was removed with the Server package: it is deployed only when an environment is created.`);
1509
+ // Nothing to deploy: every requested module is already at the resolved
1510
+ // version with a complete deployment. Do not rewrite the manifest, the
1511
+ // registry or the configuration just to say so.
1512
+ if (!plans.length) {
1513
+ onProgress?.(`${entry.name}: nothing to update; every requested module is already at its resolved version`);
1514
+ return { name: entry.name, root: entry.root, dryRun, changes, skipped, restartRequired: false, warnings, localTargets: [] };
1515
+ }
1343
1516
  if (!dryRun) {
1344
1517
  for (const plan of plans) {
1345
1518
  // Take the environment-owned settings aside first, and drop the Monitor