@kaiord/zwo 4.7.2 → 7.0.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.
package/dist/browser.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Logger, TextReader, TextWriter } from '@kaiord/core';
2
- import { Z as ZwiftValidator } from './fast-xml-parser-YgKah3Fp.js';
3
- export { d as ZwiftValidationError, b as ZwiftValidationResult, c as createFastXmlZwiftReader, a as createFastXmlZwiftWriter } from './fast-xml-parser-YgKah3Fp.js';
2
+ import { Z as ZwiftValidator } from './fast-xml-parser-otyxjhMa.js';
3
+ export { a as ZwiftValidationError, b as ZwiftValidationResult, c as createFastXmlZwiftReader, d as createFastXmlZwiftWriter } from './fast-xml-parser-otyxjhMa.js';
4
4
 
5
5
  /**
6
6
  * Creates a Zwift validator for browser environments.
package/dist/browser.js CHANGED
@@ -1,4 +1,4 @@
1
- import { createConsoleLogger, createZwiftParsingError, createZwiftValidationError, intensitySchema, targetTypeSchema, targetUnitSchema, durationTypeSchema } from '@kaiord/core';
1
+ import { createConsoleLogger, createZwiftParsingError, createZwiftValidationError, targetTypeSchema, targetUnitSchema, intensitySchema, durationTypeSchema } from '@kaiord/core';
2
2
  import { XMLParser, XMLValidator, XMLBuilder } from 'fast-xml-parser';
3
3
 
4
4
  // src/browser.ts
@@ -79,24 +79,26 @@ var encodePowerTargets = (onStep, offStep, intervalsT) => {
79
79
  intervalsT["@_OffPower"] = offStep.target.value.value / 100;
80
80
  }
81
81
  };
82
- var encodeCadenceTargets = (onStep, offStep, intervalsT) => {
83
- if (onStep.target.type === "cadence" && onStep.target.value.unit === "rpm") {
84
- intervalsT["@_Cadence"] = onStep.target.value.value;
85
- } else {
86
- const onStepExtensions = onStep.extensions?.zwift;
87
- const cadence = onStepExtensions?.cadence;
88
- if (cadence !== void 0) {
89
- intervalsT["@_Cadence"] = cadence;
82
+ var resolveStepCadence = (step) => {
83
+ if (step.target.type === "cadence") {
84
+ const val = step.target.value;
85
+ if (val.unit === "rpm") return val.value;
86
+ if (val.unit === "range" && val.min !== void 0 && val.max !== void 0) {
87
+ return Math.round((val.min + val.max) / 2);
90
88
  }
91
89
  }
92
- if (offStep.target.type === "cadence" && offStep.target.value.unit === "rpm") {
93
- intervalsT["@_CadenceResting"] = offStep.target.value.value;
94
- } else {
95
- const offStepExtensions = offStep.extensions?.zwift;
96
- const cadenceResting = offStepExtensions?.cadence;
97
- if (cadenceResting !== void 0) {
98
- intervalsT["@_CadenceResting"] = cadenceResting;
99
- }
90
+ const zwift = step.extensions ? step.extensions.zwift : void 0;
91
+ const ext = zwift;
92
+ return ext ? ext.cadence : void 0;
93
+ };
94
+ var encodeCadenceTargets = (onStep, offStep, intervalsT) => {
95
+ const cadence = resolveStepCadence(onStep);
96
+ if (cadence !== void 0) {
97
+ intervalsT["@_Cadence"] = cadence;
98
+ }
99
+ const cadenceResting = resolveStepCadence(offStep);
100
+ if (cadenceResting !== void 0) {
101
+ intervalsT["@_CadenceResting"] = cadenceResting;
100
102
  }
101
103
  };
102
104
  var encodeIntervalsT = (repetitionBlock) => {
@@ -201,6 +203,16 @@ var encodeMetadata = (step, interval) => {
201
203
  interval["@_kaiord:equipment"] = step.equipment;
202
204
  }
203
205
  };
206
+ var convertZwiftCadenceTarget = (cadence, isRunning = false) => {
207
+ const rpm = isRunning ? cadence / 2 : cadence;
208
+ return {
209
+ type: targetTypeSchema.enum.cadence,
210
+ value: {
211
+ unit: "rpm",
212
+ value: rpm
213
+ }
214
+ };
215
+ };
204
216
  var convertZwiftPowerTarget = (ftpPercentage) => {
205
217
  return {
206
218
  type: targetTypeSchema.enum.power,
@@ -232,16 +244,6 @@ var convertPowerZoneToPercentFtp = (zone) => {
232
244
  };
233
245
  return zoneMap[zone] || 100;
234
246
  };
235
- var convertZwiftCadenceTarget = (cadence, isRunning = false) => {
236
- const rpm = isRunning ? cadence / 2 : cadence;
237
- return {
238
- type: targetTypeSchema.enum.cadence,
239
- value: {
240
- unit: "rpm",
241
- value: rpm
242
- }
243
- };
244
- };
245
247
 
246
248
  // src/adapters/krd-to-zwift/power-encoder.ts
247
249
  var encodeSteadyStatePowerTarget = (step, interval) => {
@@ -425,7 +427,13 @@ var mapSportType = (sport) => {
425
427
  };
426
428
 
427
429
  // src/adapters/krd-to-zwift/workout-file-builder.ts
428
- var buildWorkoutFile = (workoutData, zwiftExtensions, metadata, fitExtensions, logger) => {
430
+ var buildWorkoutFile = ({
431
+ workoutData,
432
+ zwiftExtensions,
433
+ metadata,
434
+ fitExtensions,
435
+ logger
436
+ }) => {
429
437
  const workoutFile = {};
430
438
  addWorkoutProperties(workoutFile, workoutData.name, zwiftExtensions);
431
439
  workoutFile.sportType = mapSportType(workoutData.sport);
@@ -470,13 +478,13 @@ var convertKRDToZwift = (krd, logger) => {
470
478
  logger.debug("Building Zwift workout structure from KRD");
471
479
  const workoutData = extractWorkoutData(krd);
472
480
  const zwiftExtensions = krd.extensions?.zwift || {};
473
- const workoutFile = buildWorkoutFile(
481
+ const workoutFile = buildWorkoutFile({
474
482
  workoutData,
475
483
  zwiftExtensions,
476
- krd.metadata,
477
- krd.extensions?.fit,
484
+ metadata: krd.metadata,
485
+ fitExtensions: krd.extensions?.fit,
478
486
  logger
479
- );
487
+ });
480
488
  const xmlString = buildXmlString(workoutFile);
481
489
  logger.debug("Zwift XML structure built successfully");
482
490
  return xmlString;
@@ -552,25 +560,31 @@ var extractTags = (tags) => {
552
560
  const tagArray = Array.isArray(tags.tag) ? tags.tag : [tags.tag];
553
561
  return tagArray.map((t) => t["@_name"]);
554
562
  };
555
- var mapZwiftDuration = (data) => {
556
- if (data["kaiord:originalDurationType"] === "distance") {
563
+ var mapOriginalDurationType = (data) => {
564
+ const orig = data["kaiord:originalDurationType"];
565
+ if (orig === "distance") {
557
566
  return {
558
567
  type: durationTypeSchema.enum.distance,
559
568
  meters: data["kaiord:originalDurationMeters"] || data.Duration || 0
560
569
  };
561
570
  }
562
- if (data["kaiord:originalDurationType"] === "heart_rate_less_than") {
571
+ if (orig === "heart_rate_less_than") {
563
572
  return {
564
573
  type: durationTypeSchema.enum.heart_rate_less_than,
565
574
  bpm: data["kaiord:originalDurationBpm"] || 0
566
575
  };
567
576
  }
568
- if (data["kaiord:originalDurationType"] === "power_less_than") {
577
+ if (orig === "power_less_than") {
569
578
  return {
570
579
  type: durationTypeSchema.enum.power_less_than,
571
580
  watts: data["kaiord:originalDurationWatts"] || 0
572
581
  };
573
582
  }
583
+ return void 0;
584
+ };
585
+ var mapZwiftDuration = (data) => {
586
+ const original = mapOriginalDurationType(data);
587
+ if (original) return original;
574
588
  if (data.Duration === void 0 || data.Duration <= 0) {
575
589
  return { type: durationTypeSchema.enum.open };
576
590
  }