madden-franchise 4.2.0 → 4.2.2

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.
Binary file
@@ -1 +1 @@
1
- {"version":3,"file":"FranchiseFileTable.d.ts","sourceRoot":"","sources":["../src/FranchiseFileTable.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FranchiseFileTable.d.ts","sourceRoot":"","sources":["../src/FranchiseFileTable.js"],"names":[],"mappings":"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"}
package/dist/index.cjs CHANGED
@@ -3354,51 +3354,70 @@ async function generateSchemaV2({ fileMap, extraSchemas }) {
3354
3354
  .replace(/"/g, '"');
3355
3355
  }
3356
3356
  }
3357
- function getEnum(name) {
3358
- return enums.find((theEnum) => theEnum.name === name);
3359
- }
3357
+
3360
3358
  function addExtraSchemas() {
3361
3359
  if (!Array.isArray(extraSchemas)) return;
3360
+
3361
+ // extra enums
3362
+ extraSchemas
3363
+ .filter((schema) => schema.type === 'enum')
3364
+ .forEach((theEnum) => {
3365
+ if (theEnum.forceOverride || !enumMap[theEnum.name]) {
3366
+ const newEnum = new FranchiseEnum(
3367
+ theEnum.name,
3368
+ theEnum.assetId,
3369
+ Boolean(theEnum.isRecordPersistent)
3370
+ );
3371
+ newEnum._members = theEnum.members || [];
3372
+ enums.unshift(newEnum);
3373
+ enumMap[newEnum.name] = newEnum;
3374
+ }
3375
+ });
3376
+
3377
+ // extra schemas
3362
3378
  extraSchemas.forEach((schema) => {
3363
- if (!schemaMap[schema.name]) {
3364
- schema.attributes
3365
- .filter((attrib) => {
3366
- return (
3367
- attrib.enum &&
3368
- !(attrib.enum instanceof FranchiseEnum)
3369
- );
3370
- })
3371
- .forEach((attrib) => {
3372
- attrib.enum = getEnum(attrib.enum);
3373
- });
3374
- schemas.unshift(schema);
3379
+ if (schema.type === 'enum') return;
3380
+
3381
+ if (schema.forceOverride || !schemaMap[schema.name]) {
3382
+ const newSchema = {
3383
+ ...schema,
3384
+ attributes: schema.attributes?.map((attrib, index) => ({
3385
+ ...attrib,
3386
+ index: attrib.index || String(index)
3387
+ }))
3388
+ };
3389
+
3390
+ schemas.unshift(newSchema);
3391
+ schemaMap[newSchema.name] = newSchema;
3375
3392
  }
3376
3393
  });
3377
3394
  }
3395
+
3378
3396
  function calculateInheritedSchemas(schemaList) {
3379
3397
  const schemasWithBase = schemaList.filter(
3380
3398
  (schema) => schema.base && schema.base.indexOf('()') === -1
3381
3399
  );
3400
+
3382
3401
  schemasWithBase.forEach((schema) => {
3383
3402
  if (schema.base && schema.base.indexOf('()') === -1) {
3384
3403
  schema.originalAttributesOrder = schema.attributes;
3385
3404
  const baseSchema = schemaList.find(
3386
3405
  (schemaToSearch) => schemaToSearch.name === schema.base
3387
3406
  );
3407
+
3388
3408
  if (baseSchema) {
3389
3409
  baseSchema.attributes.forEach((baseAttribute, index) => {
3390
- let oldIndex = schema.attributes.findIndex(
3410
+ const oldIndex = schema.attributes.findIndex(
3391
3411
  (schemaAttribute) =>
3392
3412
  schemaAttribute?.name === baseAttribute?.name
3393
3413
  );
3394
3414
 
3395
3415
  if (oldIndex >= 0) {
3396
- utilService.arrayMove(
3397
- schema.attributes,
3416
+ const [item] = schema.attributes.splice(
3398
3417
  oldIndex,
3399
- index,
3400
- false
3418
+ 1
3401
3419
  );
3420
+ schema.attributes.splice(index, 0, item);
3402
3421
  }
3403
3422
  });
3404
3423
  }
@@ -3506,10 +3525,10 @@ class FranchiseSchema extends EventEmitter$2 {
3506
3525
  for (let j = 0; j < schema.attributes.length; j++) {
3507
3526
  const attribute = schema.attributes[j];
3508
3527
  if (attribute.enum) {
3509
- if (attribute.enum.name) {
3528
+ if (attribute.enum._name) {
3510
3529
  // V1 schema - enums are denormalized
3511
3530
  attribute.enum = new FranchiseEnum(attribute.enum);
3512
- this.enumMap[attribute.enum] = attribute.enum;
3531
+ this.enumMap[attribute.enum._name] = attribute.enum;
3513
3532
  } else {
3514
3533
  // V2 schema - enums are normalized
3515
3534
  // !!!!!! Need to account for extra schema enums ------------------------------
@@ -4564,9 +4583,12 @@ class FranchiseFileTable extends EventEmitter$1 {
4564
4583
  }
4565
4584
  updateBuffer() {
4566
4585
  // need to check table2 & table3 data first because it may change offsets of the legit records.
4586
+ const table2EndIndex = this.header.hasThirdTable
4587
+ ? this.header.table3StartIndex // make sure we don't also grab table3 data when slicing
4588
+ : this.data.length;
4567
4589
  let table2Data = this.strategy.getTable2BinaryData(
4568
4590
  this.table2Records,
4569
- this.data.slice(this.header.table2StartIndex)
4591
+ this.data.slice(this.header.table2StartIndex, table2EndIndex)
4570
4592
  );
4571
4593
  let table3Data = [];
4572
4594
  if (this.header.table3StartIndex) {
@@ -4587,9 +4609,11 @@ class FranchiseFileTable extends EventEmitter$1 {
4587
4609
  table3DataLength += arr.length;
4588
4610
  });
4589
4611
  this.header.table2Length = table2DataLength;
4590
- this.header.tableTotalLength =
4591
- this.header.table1Length + this.header.table2Length;
4592
4612
  this.header.table3Length = table3DataLength;
4613
+ this.header.tableTotalLength =
4614
+ this.header.table1Length +
4615
+ this.header.table2Length +
4616
+ this.header.table3Length;
4593
4617
  this.data.writeUInt32BE(
4594
4618
  this.header.table2Length,
4595
4619
  this.header.offsetStart - 44
@@ -4643,7 +4667,10 @@ class FranchiseFileTable extends EventEmitter$1 {
4643
4667
  this.header.hasSecondTable &&
4644
4668
  table2Data.length === 0
4645
4669
  ) {
4646
- table2Data = this.data.slice(this.header.table2StartIndex);
4670
+ table2Data = this.data.slice(
4671
+ this.header.table2StartIndex,
4672
+ table2EndIndex
4673
+ );
4647
4674
  }
4648
4675
  bufferArrays = bufferArrays.concat(table2Data);
4649
4676
  if (
@@ -5700,14 +5727,10 @@ FranchiseTable2FieldStrategy.setUnformattedValueFromFormatted = (
5700
5727
  formattedValue,
5701
5728
  maxLength
5702
5729
  ) => {
5703
- // Convert formatted value to buffer first to ensure accurate length
5704
- let valueBuffer = Buffer.from(formattedValue);
5705
- if (valueBuffer.length > maxLength) {
5706
- valueBuffer = valueBuffer.subarray(0, maxLength);
5707
- }
5708
- const numberOfNullCharactersToAdd = maxLength - valueBuffer.length;
5709
- const padBuffer = Buffer.alloc(numberOfNullCharactersToAdd, 0);
5710
- valueBuffer = Buffer.concat([valueBuffer, padBuffer]);
5730
+ // We can simply allocate a buffer of maxLength size and then use
5731
+ // buffer.write, which automatically handles UTF-8 and truncation
5732
+ let valueBuffer = Buffer.alloc(maxLength, 0);
5733
+ valueBuffer.write(formattedValue, 0, maxLength, 'utf-8');
5711
5734
  return valueBuffer;
5712
5735
  };
5713
5736