@uniformdev/transformer 1.1.51 → 1.1.52

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/cli/index.js CHANGED
@@ -5259,6 +5259,7 @@ var FieldRemoverService = class {
5259
5259
  compositionsDir,
5260
5260
  compositionPatternsDir,
5261
5261
  componentPatternsDir,
5262
+ contentTypesDir,
5262
5263
  componentType,
5263
5264
  parameterId,
5264
5265
  whatIf,
@@ -5269,6 +5270,7 @@ var FieldRemoverService = class {
5269
5270
  const fullCompositionsDir = this.fileSystem.resolvePath(rootDir, compositionsDir);
5270
5271
  const fullCompositionPatternsDir = this.fileSystem.resolvePath(rootDir, compositionPatternsDir);
5271
5272
  const fullComponentPatternsDir = this.fileSystem.resolvePath(rootDir, componentPatternsDir);
5273
+ const fullContentTypesDir = this.fileSystem.resolvePath(rootDir, contentTypesDir);
5272
5274
  let allIdsToRemove = [parameterId];
5273
5275
  try {
5274
5276
  const { component } = await this.componentService.loadComponent(fullComponentsDir, componentType, findOptions);
@@ -5283,6 +5285,13 @@ var FieldRemoverService = class {
5283
5285
  this.logger.info(`Cascade-removing ${childIds.length} child field(s) [${childIds.join(", ")}] along with "${parameterId}"`);
5284
5286
  }
5285
5287
  this.logger.info(`Removing field "${parameterId}" from instances of ${componentType}`);
5288
+ const contentTypesModified = await this.removeFieldFromContentTypes(
5289
+ fullContentTypesDir,
5290
+ componentType,
5291
+ allIdsToRemove,
5292
+ whatIf,
5293
+ strict
5294
+ );
5286
5295
  const compositionsResult = await this.removeFieldInDirectory(
5287
5296
  fullCompositionsDir,
5288
5297
  componentType,
@@ -5311,15 +5320,70 @@ var FieldRemoverService = class {
5311
5320
  const totalInstances = compositionsResult.instancesUpdated + compositionPatternsResult.instancesUpdated + componentPatternsResult.instancesUpdated;
5312
5321
  this.logger.info("");
5313
5322
  this.logger.info(
5314
- `Summary: ${totalFiles} file(s) (${totalInstances} instance(s)) updated.`
5323
+ `Summary: ${contentTypesModified} content type(s), ${totalFiles} file(s) (${totalInstances} instance(s)) updated.`
5315
5324
  );
5316
5325
  return {
5317
5326
  compositionsModified: compositionsResult.filesModified,
5318
5327
  compositionPatternsModified: compositionPatternsResult.filesModified,
5319
5328
  componentPatternsModified: componentPatternsResult.filesModified,
5329
+ contentTypesModified,
5320
5330
  instancesUpdated: totalInstances
5321
5331
  };
5322
5332
  }
5333
+ async removeFieldFromContentTypes(contentTypesDir, componentType, fieldIds, whatIf, strict) {
5334
+ let files;
5335
+ try {
5336
+ files = await this.fileSystem.findFiles(contentTypesDir, "**/*.{json,yaml,yml}");
5337
+ } catch {
5338
+ return 0;
5339
+ }
5340
+ if (files.length === 0) {
5341
+ return 0;
5342
+ }
5343
+ const isWildcard = componentType === "*";
5344
+ let contentTypesModified = 0;
5345
+ for (const filePath of files) {
5346
+ let contentType;
5347
+ try {
5348
+ contentType = await this.fileSystem.readFile(filePath);
5349
+ } catch {
5350
+ continue;
5351
+ }
5352
+ if (!contentType?.id || !contentType.fields) {
5353
+ continue;
5354
+ }
5355
+ if (!isWildcard && !this.compareIds(contentType.id, componentType, strict)) {
5356
+ continue;
5357
+ }
5358
+ const removedFieldIds = [];
5359
+ contentType.fields = contentType.fields.filter((field) => {
5360
+ const shouldRemove = fieldIds.some((id) => this.compareIds(field.id, id, strict));
5361
+ if (shouldRemove) {
5362
+ removedFieldIds.push(field.id);
5363
+ }
5364
+ return !shouldRemove;
5365
+ });
5366
+ if (removedFieldIds.length === 0) {
5367
+ continue;
5368
+ }
5369
+ const entryName = contentType.entryName;
5370
+ if (entryName && removedFieldIds.some((id) => this.compareIds(id, entryName, strict))) {
5371
+ this.logger.info(`Clearing entryName "${entryName}" on content type "${contentType.id}" (field was removed)`);
5372
+ contentType.entryName = "";
5373
+ }
5374
+ const relativePath = this.fileSystem.getBasename(filePath);
5375
+ this.logger.action(
5376
+ whatIf,
5377
+ "UPDATE",
5378
+ `contentType/${relativePath} (removed ${removedFieldIds.length} field(s): ${removedFieldIds.join(", ")})`
5379
+ );
5380
+ if (!whatIf) {
5381
+ await this.fileSystem.writeFile(filePath, contentType);
5382
+ }
5383
+ contentTypesModified++;
5384
+ }
5385
+ return contentTypesModified;
5386
+ }
5323
5387
  async removeFieldInDirectory(directory, componentType, parameterIds, whatIf, strict, label) {
5324
5388
  let files;
5325
5389
  try {
@@ -5477,6 +5541,8 @@ function createRemoveFieldCommand() {
5477
5541
  parameterId: opts.parameterId
5478
5542
  };
5479
5543
  const logger = new Logger();
5544
+ logger.info(`componentType: ${options.componentType}`);
5545
+ logger.info(`parameterId: ${options.parameterId}`);
5480
5546
  const fileSystem = new FileSystemService();
5481
5547
  const componentService = new ComponentService(fileSystem);
5482
5548
  const remover = new FieldRemoverService(fileSystem, componentService, logger);
@@ -5485,7 +5551,8 @@ function createRemoveFieldCommand() {
5485
5551
  const aggregate = {
5486
5552
  compositionsModified: 0,
5487
5553
  compositionPatternsModified: 0,
5488
- componentPatternsModified: 0
5554
+ componentPatternsModified: 0,
5555
+ contentTypesModified: 0
5489
5556
  };
5490
5557
  try {
5491
5558
  for (const componentType of componentTypes) {
@@ -5495,6 +5562,7 @@ function createRemoveFieldCommand() {
5495
5562
  compositionsDir: options.compositionsDir,
5496
5563
  compositionPatternsDir: options.compositionPatternsDir,
5497
5564
  componentPatternsDir: options.componentPatternsDir,
5565
+ contentTypesDir: options.contentTypesDir,
5498
5566
  componentType,
5499
5567
  parameterId: options.parameterId,
5500
5568
  whatIf: options.whatIf ?? false,
@@ -5503,9 +5571,10 @@ function createRemoveFieldCommand() {
5503
5571
  aggregate.compositionsModified += result.compositionsModified;
5504
5572
  aggregate.compositionPatternsModified += result.compositionPatternsModified;
5505
5573
  aggregate.componentPatternsModified += result.componentPatternsModified;
5574
+ aggregate.contentTypesModified += result.contentTypesModified;
5506
5575
  }
5507
5576
  logger.success(
5508
- `Removed field: ${aggregate.compositionsModified} composition(s), ${aggregate.compositionPatternsModified} composition pattern(s), ${aggregate.componentPatternsModified} component pattern(s) updated`
5577
+ `Removed field: ${aggregate.contentTypesModified} content type(s), ${aggregate.compositionsModified} composition(s), ${aggregate.compositionPatternsModified} composition pattern(s), ${aggregate.componentPatternsModified} component pattern(s) updated`
5509
5578
  );
5510
5579
  } catch (error) {
5511
5580
  if (error instanceof TransformError) {
@@ -7704,7 +7773,7 @@ function createClearSlotCommand() {
7704
7773
  // package.json
7705
7774
  var package_default = {
7706
7775
  name: "@uniformdev/transformer",
7707
- version: "1.1.51",
7776
+ version: "1.1.52",
7708
7777
  description: "CLI tool for transforming Uniform.dev serialization files offline",
7709
7778
  type: "module",
7710
7779
  bin: {