@tx5dr/contracts 1.7.12 → 2.5.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/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/schema/__tests__/android-operator-audio.schema.test.d.ts +2 -0
- package/dist/schema/__tests__/android-operator-audio.schema.test.d.ts.map +1 -0
- package/dist/schema/__tests__/android-operator-audio.schema.test.js +27 -0
- package/dist/schema/__tests__/android-operator-audio.schema.test.js.map +1 -0
- package/dist/schema/__tests__/assisted-queue.schema.test.d.ts +2 -0
- package/dist/schema/__tests__/assisted-queue.schema.test.d.ts.map +1 -0
- package/dist/schema/__tests__/assisted-queue.schema.test.js +114 -0
- package/dist/schema/__tests__/assisted-queue.schema.test.js.map +1 -0
- package/dist/schema/__tests__/audio-sidecar.schema.test.d.ts +2 -0
- package/dist/schema/__tests__/audio-sidecar.schema.test.d.ts.map +1 -0
- package/dist/schema/__tests__/audio-sidecar.schema.test.js +42 -0
- package/dist/schema/__tests__/audio-sidecar.schema.test.js.map +1 -0
- package/dist/schema/__tests__/audio.schema.test.js +92 -1
- package/dist/schema/__tests__/audio.schema.test.js.map +1 -1
- package/dist/schema/__tests__/diagnostics.schema.test.d.ts +2 -0
- package/dist/schema/__tests__/diagnostics.schema.test.d.ts.map +1 -0
- package/dist/schema/__tests__/diagnostics.schema.test.js +31 -0
- package/dist/schema/__tests__/diagnostics.schema.test.js.map +1 -0
- package/dist/schema/__tests__/logbook-health.schema.test.d.ts +2 -0
- package/dist/schema/__tests__/logbook-health.schema.test.d.ts.map +1 -0
- package/dist/schema/__tests__/logbook-health.schema.test.js +104 -0
- package/dist/schema/__tests__/logbook-health.schema.test.js.map +1 -0
- package/dist/schema/__tests__/meter.schema.test.d.ts +2 -0
- package/dist/schema/__tests__/meter.schema.test.d.ts.map +1 -0
- package/dist/schema/__tests__/meter.schema.test.js +27 -0
- package/dist/schema/__tests__/meter.schema.test.js.map +1 -0
- package/dist/schema/__tests__/observability.schema.test.d.ts +2 -0
- package/dist/schema/__tests__/observability.schema.test.d.ts.map +1 -0
- package/dist/schema/__tests__/observability.schema.test.js +12 -0
- package/dist/schema/__tests__/observability.schema.test.js.map +1 -0
- package/dist/schema/__tests__/operator-context-report.schema.test.d.ts +2 -0
- package/dist/schema/__tests__/operator-context-report.schema.test.d.ts.map +1 -0
- package/dist/schema/__tests__/operator-context-report.schema.test.js +70 -0
- package/dist/schema/__tests__/operator-context-report.schema.test.js.map +1 -0
- package/dist/schema/__tests__/operator.schema.test.js +9 -3
- package/dist/schema/__tests__/operator.schema.test.js.map +1 -1
- package/dist/schema/__tests__/plugin-market.schema.test.js +149 -3
- package/dist/schema/__tests__/plugin-market.schema.test.js.map +1 -1
- package/dist/schema/__tests__/qso.schema.test.d.ts +2 -0
- package/dist/schema/__tests__/qso.schema.test.d.ts.map +1 -0
- package/dist/schema/__tests__/qso.schema.test.js +70 -0
- package/dist/schema/__tests__/qso.schema.test.js.map +1 -0
- package/dist/schema/__tests__/radio-power-support.test.js +15 -0
- package/dist/schema/__tests__/radio-power-support.test.js.map +1 -1
- package/dist/schema/__tests__/radio-profile.schema.test.d.ts +2 -0
- package/dist/schema/__tests__/radio-profile.schema.test.d.ts.map +1 -0
- package/dist/schema/__tests__/radio-profile.schema.test.js +36 -0
- package/dist/schema/__tests__/radio-profile.schema.test.js.map +1 -0
- package/dist/schema/__tests__/radio.schema.test.js +92 -1
- package/dist/schema/__tests__/radio.schema.test.js.map +1 -1
- package/dist/schema/__tests__/realtime-settings.schema.test.js +2 -1
- package/dist/schema/__tests__/realtime-settings.schema.test.js.map +1 -1
- package/dist/schema/__tests__/remote-access.schema.test.d.ts +2 -0
- package/dist/schema/__tests__/remote-access.schema.test.d.ts.map +1 -0
- package/dist/schema/__tests__/remote-access.schema.test.js +18 -0
- package/dist/schema/__tests__/remote-access.schema.test.js.map +1 -0
- package/dist/schema/__tests__/spectrum.schema.test.d.ts +2 -0
- package/dist/schema/__tests__/spectrum.schema.test.d.ts.map +1 -0
- package/dist/schema/__tests__/spectrum.schema.test.js +107 -0
- package/dist/schema/__tests__/spectrum.schema.test.js.map +1 -0
- package/dist/schema/__tests__/strategy-transmission.schema.test.d.ts +2 -0
- package/dist/schema/__tests__/strategy-transmission.schema.test.d.ts.map +1 -0
- package/dist/schema/__tests__/strategy-transmission.schema.test.js +95 -0
- package/dist/schema/__tests__/strategy-transmission.schema.test.js.map +1 -0
- package/dist/schema/android-operator-audio.schema.d.ts +174 -0
- package/dist/schema/android-operator-audio.schema.d.ts.map +1 -0
- package/dist/schema/android-operator-audio.schema.js +38 -0
- package/dist/schema/android-operator-audio.schema.js.map +1 -0
- package/dist/schema/api-response.schema.d.ts +503 -44
- package/dist/schema/api-response.schema.d.ts.map +1 -1
- package/dist/schema/api-response.schema.js +9 -0
- package/dist/schema/api-response.schema.js.map +1 -1
- package/dist/schema/audio-sidecar.schema.d.ts +75 -0
- package/dist/schema/audio-sidecar.schema.d.ts.map +1 -1
- package/dist/schema/audio-sidecar.schema.js +32 -0
- package/dist/schema/audio-sidecar.schema.js.map +1 -1
- package/dist/schema/audio.schema.d.ts +4749 -3
- package/dist/schema/audio.schema.d.ts.map +1 -1
- package/dist/schema/audio.schema.js +101 -2
- package/dist/schema/audio.schema.js.map +1 -1
- package/dist/schema/auth.schema.d.ts +173 -14
- package/dist/schema/auth.schema.d.ts.map +1 -1
- package/dist/schema/auth.schema.js +65 -1
- package/dist/schema/auth.schema.js.map +1 -1
- package/dist/schema/cpu-profile.schema.d.ts +2 -2
- package/dist/schema/cw-decoder.schema.d.ts +74 -74
- package/dist/schema/cw-keyer.schema.d.ts +20 -14
- package/dist/schema/cw-keyer.schema.d.ts.map +1 -1
- package/dist/schema/cw-keyer.schema.js +3 -0
- package/dist/schema/cw-keyer.schema.js.map +1 -1
- package/dist/schema/desktop-https.schema.d.ts +6 -6
- package/dist/schema/device-ui.schema.d.ts +16 -16
- package/dist/schema/diagnostics.schema.d.ts +163 -0
- package/dist/schema/diagnostics.schema.d.ts.map +1 -0
- package/dist/schema/diagnostics.schema.js +46 -0
- package/dist/schema/diagnostics.schema.js.map +1 -0
- package/dist/schema/ft8.schema.d.ts +12 -2
- package/dist/schema/ft8.schema.d.ts.map +1 -1
- package/dist/schema/ft8.schema.js +8 -0
- package/dist/schema/ft8.schema.js.map +1 -1
- package/dist/schema/image-radio.schema.d.ts +2597 -0
- package/dist/schema/image-radio.schema.d.ts.map +1 -0
- package/dist/schema/image-radio.schema.js +283 -0
- package/dist/schema/image-radio.schema.js.map +1 -0
- package/dist/schema/logbook.schema.d.ts +2128 -18
- package/dist/schema/logbook.schema.d.ts.map +1 -1
- package/dist/schema/logbook.schema.js +159 -1
- package/dist/schema/logbook.schema.js.map +1 -1
- package/dist/schema/mode.schema.d.ts +4 -6
- package/dist/schema/mode.schema.d.ts.map +1 -1
- package/dist/schema/mode.schema.js +18 -6
- package/dist/schema/mode.schema.js.map +1 -1
- package/dist/schema/observability.schema.d.ts +66 -0
- package/dist/schema/observability.schema.d.ts.map +1 -0
- package/dist/schema/observability.schema.js +20 -0
- package/dist/schema/observability.schema.js.map +1 -0
- package/dist/schema/openwebrx.schema.d.ts +2 -2
- package/dist/schema/operator.schema.d.ts +2682 -6
- package/dist/schema/operator.schema.d.ts.map +1 -1
- package/dist/schema/operator.schema.js +10 -20
- package/dist/schema/operator.schema.js.map +1 -1
- package/dist/schema/plugin.schema.d.ts +1977 -492
- package/dist/schema/plugin.schema.d.ts.map +1 -1
- package/dist/schema/plugin.schema.js +165 -14
- package/dist/schema/plugin.schema.js.map +1 -1
- package/dist/schema/process-monitor.schema.d.ts +132 -132
- package/dist/schema/pskreporter.schema.d.ts +1 -3
- package/dist/schema/pskreporter.schema.d.ts.map +1 -1
- package/dist/schema/pskreporter.schema.js +1 -3
- package/dist/schema/pskreporter.schema.js.map +1 -1
- package/dist/schema/qso.schema.d.ts +246 -1
- package/dist/schema/qso.schema.d.ts.map +1 -1
- package/dist/schema/qso.schema.js +68 -0
- package/dist/schema/qso.schema.js.map +1 -1
- package/dist/schema/radio-capability.schema.d.ts +31 -40
- package/dist/schema/radio-capability.schema.d.ts.map +1 -1
- package/dist/schema/radio-capability.schema.js +8 -15
- package/dist/schema/radio-capability.schema.js.map +1 -1
- package/dist/schema/radio-power-support.d.ts.map +1 -1
- package/dist/schema/radio-power-support.js +3 -0
- package/dist/schema/radio-power-support.js.map +1 -1
- package/dist/schema/radio-power.schema.d.ts +102 -13
- package/dist/schema/radio-power.schema.d.ts.map +1 -1
- package/dist/schema/radio-power.schema.js +15 -8
- package/dist/schema/radio-power.schema.js.map +1 -1
- package/dist/schema/radio-profile.schema.d.ts +1491 -97
- package/dist/schema/radio-profile.schema.d.ts.map +1 -1
- package/dist/schema/radio-profile.schema.js +7 -0
- package/dist/schema/radio-profile.schema.js.map +1 -1
- package/dist/schema/radio.schema.d.ts +442 -48
- package/dist/schema/radio.schema.d.ts.map +1 -1
- package/dist/schema/radio.schema.js +75 -7
- package/dist/schema/radio.schema.js.map +1 -1
- package/dist/schema/realtime.schema.d.ts +60 -52
- package/dist/schema/realtime.schema.d.ts.map +1 -1
- package/dist/schema/realtime.schema.js +9 -1
- package/dist/schema/realtime.schema.js.map +1 -1
- package/dist/schema/rigctld.schema.d.ts +6 -6
- package/dist/schema/slot-info.schema.d.ts +28 -9
- package/dist/schema/slot-info.schema.d.ts.map +1 -1
- package/dist/schema/slot-info.schema.js +17 -10
- package/dist/schema/slot-info.schema.js.map +1 -1
- package/dist/schema/spectrum-config.schema.d.ts +638 -0
- package/dist/schema/spectrum-config.schema.d.ts.map +1 -0
- package/dist/schema/spectrum-config.schema.js +129 -0
- package/dist/schema/spectrum-config.schema.js.map +1 -0
- package/dist/schema/spectrum.schema.d.ts +1323 -30
- package/dist/schema/spectrum.schema.d.ts.map +1 -1
- package/dist/schema/spectrum.schema.js +72 -0
- package/dist/schema/spectrum.schema.js.map +1 -1
- package/dist/schema/station-info.schema.d.ts +5 -0
- package/dist/schema/station-info.schema.d.ts.map +1 -1
- package/dist/schema/station-info.schema.js +5 -0
- package/dist/schema/station-info.schema.js.map +1 -1
- package/dist/schema/system.schema.d.ts +56 -6
- package/dist/schema/system.schema.d.ts.map +1 -1
- package/dist/schema/system.schema.js +22 -0
- package/dist/schema/system.schema.js.map +1 -1
- package/dist/schema/transmission.schema.d.ts +8 -7
- package/dist/schema/transmission.schema.d.ts.map +1 -1
- package/dist/schema/transmission.schema.js +2 -7
- package/dist/schema/transmission.schema.js.map +1 -1
- package/dist/schema/tx-audio-input.schema.d.ts +8 -0
- package/dist/schema/tx-audio-input.schema.d.ts.map +1 -0
- package/dist/schema/tx-audio-input.schema.js +19 -0
- package/dist/schema/tx-audio-input.schema.js.map +1 -0
- package/dist/schema/voice-keyer.schema.d.ts +16 -16
- package/dist/schema/voice.schema.d.ts +1 -1
- package/dist/schema/voice.schema.d.ts.map +1 -1
- package/dist/schema/voice.schema.js +1 -1
- package/dist/schema/voice.schema.js.map +1 -1
- package/dist/schema/websocket.schema.d.ts +35811 -7829
- package/dist/schema/websocket.schema.d.ts.map +1 -1
- package/dist/schema/websocket.schema.js +453 -9
- package/dist/schema/websocket.schema.js.map +1 -1
- package/package.json +6 -1
- package/src/index.ts +7 -0
- package/src/schema/__tests__/android-operator-audio.schema.test.ts +31 -0
- package/src/schema/__tests__/assisted-queue.schema.test.ts +122 -0
- package/src/schema/__tests__/audio-sidecar.schema.test.ts +48 -0
- package/src/schema/__tests__/audio.schema.test.ts +102 -0
- package/src/schema/__tests__/diagnostics.schema.test.ts +32 -0
- package/src/schema/__tests__/logbook-health.schema.test.ts +117 -0
- package/src/schema/__tests__/meter.schema.test.ts +28 -0
- package/src/schema/__tests__/observability.schema.test.ts +15 -0
- package/src/schema/__tests__/operator-context-report.schema.test.ts +77 -0
- package/src/schema/__tests__/operator.schema.test.ts +11 -3
- package/src/schema/__tests__/plugin-market.schema.test.ts +165 -2
- package/src/schema/__tests__/qso.schema.test.ts +91 -0
- package/src/schema/__tests__/radio-power-support.test.ts +17 -0
- package/src/schema/__tests__/radio-profile.schema.test.ts +44 -0
- package/src/schema/__tests__/radio.schema.test.ts +108 -1
- package/src/schema/__tests__/realtime-settings.schema.test.ts +2 -1
- package/src/schema/__tests__/remote-access.schema.test.ts +22 -0
- package/src/schema/__tests__/spectrum.schema.test.ts +119 -0
- package/src/schema/__tests__/strategy-transmission.schema.test.ts +106 -0
- package/src/schema/android-operator-audio.schema.ts +49 -0
- package/src/schema/api-response.schema.ts +11 -0
- package/src/schema/audio-sidecar.schema.ts +35 -0
- package/src/schema/audio.schema.ts +115 -2
- package/src/schema/auth.schema.ts +79 -1
- package/src/schema/cw-keyer.schema.ts +5 -0
- package/src/schema/diagnostics.schema.ts +55 -0
- package/src/schema/ft8.schema.ts +8 -0
- package/src/schema/image-radio.schema.ts +342 -0
- package/src/schema/logbook.schema.ts +205 -1
- package/src/schema/mode.schema.ts +18 -6
- package/src/schema/observability.schema.ts +26 -0
- package/src/schema/operator.schema.ts +11 -20
- package/src/schema/plugin.schema.ts +186 -15
- package/src/schema/pskreporter.schema.ts +1 -3
- package/src/schema/qso.schema.ts +78 -0
- package/src/schema/radio-capability.schema.ts +8 -15
- package/src/schema/radio-power-support.ts +3 -0
- package/src/schema/radio-power.schema.ts +15 -8
- package/src/schema/radio-profile.schema.ts +7 -0
- package/src/schema/radio.schema.ts +90 -7
- package/src/schema/realtime.schema.ts +9 -1
- package/src/schema/slot-info.schema.ts +18 -11
- package/src/schema/spectrum-config.schema.ts +156 -0
- package/src/schema/spectrum.schema.ts +89 -0
- package/src/schema/station-info.schema.ts +5 -0
- package/src/schema/system.schema.ts +29 -0
- package/src/schema/transmission.schema.ts +2 -7
- package/src/schema/tx-audio-input.schema.ts +22 -0
- package/src/schema/voice.schema.ts +1 -1
- package/src/schema/websocket.schema.ts +601 -13
- package/test/image-radio-schema.test.ts +107 -0
- package/test/plugin-slot-schema.test.ts +31 -0
- package/test/radio-capability-schema.test.ts +44 -0
- package/CLAUDE.md +0 -41
|
@@ -26,9 +26,7 @@ export declare const PSKReporterStatsSchema: z.ZodObject<{
|
|
|
26
26
|
totalReportCount?: number | undefined;
|
|
27
27
|
consecutiveFailures?: number | undefined;
|
|
28
28
|
}>;
|
|
29
|
-
/**
|
|
30
|
-
* PSKReporter 配置 Schema
|
|
31
|
-
*/
|
|
29
|
+
/** PSK Reporter publishing identity, antenna metadata, interval and counters. */
|
|
32
30
|
export declare const PSKReporterConfigSchema: z.ZodObject<{
|
|
33
31
|
/** 是否启用 PSKReporter 上报 */
|
|
34
32
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pskreporter.schema.d.ts","sourceRoot":"","sources":["../../src/schema/pskreporter.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,sBAAsB;IACjC,wBAAwB;;IAExB,aAAa;;IAEb,YAAY;;IAEZ,aAAa;;IAEb,aAAa;;;;;;;;;;;;;;EAEb,CAAC;AAEH
|
|
1
|
+
{"version":3,"file":"pskreporter.schema.d.ts","sourceRoot":"","sources":["../../src/schema/pskreporter.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,sBAAsB;IACjC,wBAAwB;;IAExB,aAAa;;IAEb,YAAY;;IAEZ,aAAa;;IAEb,aAAa;;;;;;;;;;;;;;EAEb,CAAC;AAEH,iFAAiF;AACjF,eAAO,MAAM,uBAAuB;IAClC,0BAA0B;;IAG1B,iCAAiC;;IAGjC,iCAAiC;;IAGjC,oBAAoB;;IAGpB,qCAAqC;;IAGrC,gCAAgC;;IAGhC,yBAAyB;;IAGzB,WAAW;;QAnCX,wBAAwB;;QAExB,aAAa;;QAEb,YAAY;;QAEZ,aAAa;;QAEb,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6Bb,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,qBAAqB;IAChC,kBAAkB;;IAGlB,iBAAiB;;IAGjB,sBAAsB;;IAGtB,eAAe;;IAGf,qBAAqB;;IAGrB,yBAAyB;;IAGzB,0BAA0B;;;;;;;;;;;;;;;;;;EAE1B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,uBAAuB;IAClC,YAAY;;IAEZ,aAAa;;IAEb,cAAc;;IAEd,cAAc;;IAEd,aAAa;;IAEb,sBAAsB;;IAEtB,eAAe;;IAEf,aAAa;;IAEb,WAAW;;;;;;;;;;;;;;;;;;;;;;EAEX,CAAC;AAGH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
|
|
@@ -14,9 +14,7 @@ export const PSKReporterStatsSchema = z.object({
|
|
|
14
14
|
/** 连续失败次数 */
|
|
15
15
|
consecutiveFailures: z.number().default(0),
|
|
16
16
|
});
|
|
17
|
-
/**
|
|
18
|
-
* PSKReporter 配置 Schema
|
|
19
|
-
*/
|
|
17
|
+
/** PSK Reporter publishing identity, antenna metadata, interval and counters. */
|
|
20
18
|
export const PSKReporterConfigSchema = z.object({
|
|
21
19
|
/** 是否启用 PSKReporter 上报 */
|
|
22
20
|
enabled: z.boolean().default(false),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pskreporter.schema.js","sourceRoot":"","sources":["../../src/schema/pskreporter.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,wBAAwB;IACxB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,aAAa;IACb,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACvC,YAAY;IACZ,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACvC,aAAa;IACb,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,aAAa;IACb,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;CAC3C,CAAC,CAAC;AAEH
|
|
1
|
+
{"version":3,"file":"pskreporter.schema.js","sourceRoot":"","sources":["../../src/schema/pskreporter.schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,64 @@ export declare const DxccStatusSchema: z.ZodEnum<["current", "deleted", "none",
|
|
|
19
19
|
export declare const DxccSourceSchema: z.ZodEnum<["resolver", "adif", "lotw", "manual_override"]>;
|
|
20
20
|
export declare const DxccConfidenceSchema: z.ZodEnum<["exception", "prefix", "heuristic", "manual", "unknown"]>;
|
|
21
21
|
export declare const SubdivisionConfidenceSchema: z.ZodEnum<["high", "low"]>;
|
|
22
|
+
/** Maximum UTF-8 JSON size of contest-owned data persisted with one QSO. */
|
|
23
|
+
export declare const CONTEST_QSO_ENVELOPE_MAX_BYTES: number;
|
|
24
|
+
/**
|
|
25
|
+
* Versioned contest facts that must be committed atomically with their QSO.
|
|
26
|
+
*
|
|
27
|
+
* The shape is deliberately shallow and bounded. Contest plugins may choose
|
|
28
|
+
* their exchange and annotation keys, but cannot persist arbitrary object
|
|
29
|
+
* graphs or binary payloads in the logbook record.
|
|
30
|
+
*/
|
|
31
|
+
export declare const ContestQsoEnvelopeSchema: z.ZodEffects<z.ZodObject<{
|
|
32
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
33
|
+
contestId: z.ZodString;
|
|
34
|
+
editionId: z.ZodString;
|
|
35
|
+
rulesetVersion: z.ZodString;
|
|
36
|
+
sent: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
37
|
+
received: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
38
|
+
annotations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
|
|
39
|
+
}, "strict", z.ZodTypeAny, {
|
|
40
|
+
received: Record<string, string>;
|
|
41
|
+
schemaVersion: 1;
|
|
42
|
+
contestId: string;
|
|
43
|
+
editionId: string;
|
|
44
|
+
rulesetVersion: string;
|
|
45
|
+
sent: Record<string, string>;
|
|
46
|
+
annotations?: Record<string, string | number | boolean> | undefined;
|
|
47
|
+
}, {
|
|
48
|
+
received: Record<string, string>;
|
|
49
|
+
schemaVersion: 1;
|
|
50
|
+
contestId: string;
|
|
51
|
+
editionId: string;
|
|
52
|
+
rulesetVersion: string;
|
|
53
|
+
sent: Record<string, string>;
|
|
54
|
+
annotations?: Record<string, string | number | boolean> | undefined;
|
|
55
|
+
}>, {
|
|
56
|
+
received: Record<string, string>;
|
|
57
|
+
schemaVersion: 1;
|
|
58
|
+
contestId: string;
|
|
59
|
+
editionId: string;
|
|
60
|
+
rulesetVersion: string;
|
|
61
|
+
sent: Record<string, string>;
|
|
62
|
+
annotations?: Record<string, string | number | boolean> | undefined;
|
|
63
|
+
}, {
|
|
64
|
+
received: Record<string, string>;
|
|
65
|
+
schemaVersion: 1;
|
|
66
|
+
contestId: string;
|
|
67
|
+
editionId: string;
|
|
68
|
+
rulesetVersion: string;
|
|
69
|
+
sent: Record<string, string>;
|
|
70
|
+
annotations?: Record<string, string | number | boolean> | undefined;
|
|
71
|
+
}>;
|
|
72
|
+
/**
|
|
73
|
+
* Serialize a validated contest envelope as ASCII-only JSON for durable ADIF
|
|
74
|
+
* private fields. Escaping non-ASCII and angle brackets keeps legacy string
|
|
75
|
+
* ADIF readers byte-safe without changing the decoded data.
|
|
76
|
+
*/
|
|
77
|
+
export declare function serializeContestQsoEnvelope(value: ContestQsoEnvelope): string;
|
|
78
|
+
/** Parse and validate an envelope read from a durable private field. */
|
|
79
|
+
export declare function parseContestQsoEnvelope(value: string): ContestQsoEnvelope | undefined;
|
|
22
80
|
export declare const OperatorConfigSchema: z.ZodObject<{
|
|
23
81
|
id: z.ZodString;
|
|
24
82
|
mode: z.ZodObject<{
|
|
@@ -50,6 +108,7 @@ export declare const OperatorConfigSchema: z.ZodObject<{
|
|
|
50
108
|
maxQSOTimeoutCycles: z.ZodNumber;
|
|
51
109
|
maxCallAttempts: z.ZodNumber;
|
|
52
110
|
frequency: z.ZodNumber;
|
|
111
|
+
maxConcurrentStreams: z.ZodOptional<z.ZodNumber>;
|
|
53
112
|
autoResumeCQAfterFail: z.ZodDefault<z.ZodBoolean>;
|
|
54
113
|
autoResumeCQAfterSuccess: z.ZodDefault<z.ZodBoolean>;
|
|
55
114
|
replyToWorkedStations: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -77,6 +136,7 @@ export declare const OperatorConfigSchema: z.ZodObject<{
|
|
|
77
136
|
replyToWorkedStations: boolean;
|
|
78
137
|
prioritizeNewCalls: boolean;
|
|
79
138
|
targetSelectionPriorityMode: "balanced" | "dxcc_first" | "new_callsign_first";
|
|
139
|
+
maxConcurrentStreams?: number | undefined;
|
|
80
140
|
}, {
|
|
81
141
|
id: string;
|
|
82
142
|
mode: {
|
|
@@ -94,6 +154,7 @@ export declare const OperatorConfigSchema: z.ZodObject<{
|
|
|
94
154
|
maxQSOTimeoutCycles: number;
|
|
95
155
|
maxCallAttempts: number;
|
|
96
156
|
frequency: number;
|
|
157
|
+
maxConcurrentStreams?: number | undefined;
|
|
97
158
|
autoResumeCQAfterFail?: boolean | undefined;
|
|
98
159
|
autoResumeCQAfterSuccess?: boolean | undefined;
|
|
99
160
|
replyToWorkedStations?: boolean | undefined;
|
|
@@ -132,6 +193,7 @@ export declare const QSOContextSchema: z.ZodObject<{
|
|
|
132
193
|
maxQSOTimeoutCycles: z.ZodNumber;
|
|
133
194
|
maxCallAttempts: z.ZodNumber;
|
|
134
195
|
frequency: z.ZodNumber;
|
|
196
|
+
maxConcurrentStreams: z.ZodOptional<z.ZodNumber>;
|
|
135
197
|
autoResumeCQAfterFail: z.ZodDefault<z.ZodBoolean>;
|
|
136
198
|
autoResumeCQAfterSuccess: z.ZodDefault<z.ZodBoolean>;
|
|
137
199
|
replyToWorkedStations: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -159,6 +221,7 @@ export declare const QSOContextSchema: z.ZodObject<{
|
|
|
159
221
|
replyToWorkedStations: boolean;
|
|
160
222
|
prioritizeNewCalls: boolean;
|
|
161
223
|
targetSelectionPriorityMode: "balanced" | "dxcc_first" | "new_callsign_first";
|
|
224
|
+
maxConcurrentStreams?: number | undefined;
|
|
162
225
|
}, {
|
|
163
226
|
id: string;
|
|
164
227
|
mode: {
|
|
@@ -176,6 +239,7 @@ export declare const QSOContextSchema: z.ZodObject<{
|
|
|
176
239
|
maxQSOTimeoutCycles: number;
|
|
177
240
|
maxCallAttempts: number;
|
|
178
241
|
frequency: number;
|
|
242
|
+
maxConcurrentStreams?: number | undefined;
|
|
179
243
|
autoResumeCQAfterFail?: boolean | undefined;
|
|
180
244
|
autoResumeCQAfterSuccess?: boolean | undefined;
|
|
181
245
|
replyToWorkedStations?: boolean | undefined;
|
|
@@ -210,6 +274,7 @@ export declare const QSOContextSchema: z.ZodObject<{
|
|
|
210
274
|
replyToWorkedStations: boolean;
|
|
211
275
|
prioritizeNewCalls: boolean;
|
|
212
276
|
targetSelectionPriorityMode: "balanced" | "dxcc_first" | "new_callsign_first";
|
|
277
|
+
maxConcurrentStreams?: number | undefined;
|
|
213
278
|
};
|
|
214
279
|
targetCallsign?: string | undefined;
|
|
215
280
|
targetGrid?: string | undefined;
|
|
@@ -234,6 +299,7 @@ export declare const QSOContextSchema: z.ZodObject<{
|
|
|
234
299
|
maxQSOTimeoutCycles: number;
|
|
235
300
|
maxCallAttempts: number;
|
|
236
301
|
frequency: number;
|
|
302
|
+
maxConcurrentStreams?: number | undefined;
|
|
237
303
|
autoResumeCQAfterFail?: boolean | undefined;
|
|
238
304
|
autoResumeCQAfterSuccess?: boolean | undefined;
|
|
239
305
|
replyToWorkedStations?: boolean | undefined;
|
|
@@ -258,8 +324,15 @@ export declare const QslSimpleStatusSchema: z.ZodOptional<z.ZodEnum<["Y", "N"]>>
|
|
|
258
324
|
* - DXCC enrichment and review metadata;
|
|
259
325
|
* - LoTW / QRZ confirmation state;
|
|
260
326
|
* - station-location metadata used when exporting ADIF-like records.
|
|
327
|
+
*
|
|
328
|
+
* `frequency` is the RF frequency in hertz; `startTime`/`endTime` and QSL dates
|
|
329
|
+
* are Unix epoch milliseconds. `mode` is the ADIF main mode and `submode` is the
|
|
330
|
+
* optional ADIF submode. `messageHistory` contains the raw digital-mode exchange.
|
|
331
|
+
* Sync providers update the service-specific LoTW/QRZ fields using ADIF status
|
|
332
|
+
* codes (`Y`, `N`, `R`, `Q`, `I`, and received-only `V`) rather than a generic
|
|
333
|
+
* `qslStatus` field.
|
|
261
334
|
*/
|
|
262
|
-
export declare const QSORecordSchema: z.ZodObject<{
|
|
335
|
+
export declare const QSORecordSchema: z.ZodEffects<z.ZodObject<{
|
|
263
336
|
id: z.ZodString;
|
|
264
337
|
callsign: z.ZodString;
|
|
265
338
|
grid: z.ZodOptional<z.ZodString>;
|
|
@@ -272,6 +345,48 @@ export declare const QSORecordSchema: z.ZodObject<{
|
|
|
272
345
|
reportReceived: z.ZodOptional<z.ZodString>;
|
|
273
346
|
messageHistory: z.ZodArray<z.ZodString, "many">;
|
|
274
347
|
comment: z.ZodOptional<z.ZodString>;
|
|
348
|
+
contestId: z.ZodOptional<z.ZodString>;
|
|
349
|
+
contestEntry: z.ZodOptional<z.ZodEffects<z.ZodObject<{
|
|
350
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
351
|
+
contestId: z.ZodString;
|
|
352
|
+
editionId: z.ZodString;
|
|
353
|
+
rulesetVersion: z.ZodString;
|
|
354
|
+
sent: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
355
|
+
received: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
356
|
+
annotations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
|
|
357
|
+
}, "strict", z.ZodTypeAny, {
|
|
358
|
+
received: Record<string, string>;
|
|
359
|
+
schemaVersion: 1;
|
|
360
|
+
contestId: string;
|
|
361
|
+
editionId: string;
|
|
362
|
+
rulesetVersion: string;
|
|
363
|
+
sent: Record<string, string>;
|
|
364
|
+
annotations?: Record<string, string | number | boolean> | undefined;
|
|
365
|
+
}, {
|
|
366
|
+
received: Record<string, string>;
|
|
367
|
+
schemaVersion: 1;
|
|
368
|
+
contestId: string;
|
|
369
|
+
editionId: string;
|
|
370
|
+
rulesetVersion: string;
|
|
371
|
+
sent: Record<string, string>;
|
|
372
|
+
annotations?: Record<string, string | number | boolean> | undefined;
|
|
373
|
+
}>, {
|
|
374
|
+
received: Record<string, string>;
|
|
375
|
+
schemaVersion: 1;
|
|
376
|
+
contestId: string;
|
|
377
|
+
editionId: string;
|
|
378
|
+
rulesetVersion: string;
|
|
379
|
+
sent: Record<string, string>;
|
|
380
|
+
annotations?: Record<string, string | number | boolean> | undefined;
|
|
381
|
+
}, {
|
|
382
|
+
received: Record<string, string>;
|
|
383
|
+
schemaVersion: 1;
|
|
384
|
+
contestId: string;
|
|
385
|
+
editionId: string;
|
|
386
|
+
rulesetVersion: string;
|
|
387
|
+
sent: Record<string, string>;
|
|
388
|
+
annotations?: Record<string, string | number | boolean> | undefined;
|
|
389
|
+
}>>;
|
|
275
390
|
myCallsign: z.ZodOptional<z.ZodString>;
|
|
276
391
|
myGrid: z.ZodOptional<z.ZodString>;
|
|
277
392
|
qth: z.ZodOptional<z.ZodString>;
|
|
@@ -309,6 +424,113 @@ export declare const QSORecordSchema: z.ZodObject<{
|
|
|
309
424
|
callsign: string;
|
|
310
425
|
startTime: number;
|
|
311
426
|
messageHistory: string[];
|
|
427
|
+
contestId?: string | undefined;
|
|
428
|
+
myCallsign?: string | undefined;
|
|
429
|
+
myGrid?: string | undefined;
|
|
430
|
+
reportSent?: string | undefined;
|
|
431
|
+
reportReceived?: string | undefined;
|
|
432
|
+
grid?: string | undefined;
|
|
433
|
+
submode?: string | undefined;
|
|
434
|
+
endTime?: number | undefined;
|
|
435
|
+
comment?: string | undefined;
|
|
436
|
+
contestEntry?: {
|
|
437
|
+
received: Record<string, string>;
|
|
438
|
+
schemaVersion: 1;
|
|
439
|
+
contestId: string;
|
|
440
|
+
editionId: string;
|
|
441
|
+
rulesetVersion: string;
|
|
442
|
+
sent: Record<string, string>;
|
|
443
|
+
annotations?: Record<string, string | number | boolean> | undefined;
|
|
444
|
+
} | undefined;
|
|
445
|
+
qth?: string | undefined;
|
|
446
|
+
dxccId?: number | undefined;
|
|
447
|
+
dxccEntity?: string | undefined;
|
|
448
|
+
dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined;
|
|
449
|
+
countryCode?: string | undefined;
|
|
450
|
+
cqZone?: number | undefined;
|
|
451
|
+
ituZone?: number | undefined;
|
|
452
|
+
dxccSource?: "resolver" | "adif" | "lotw" | "manual_override" | undefined;
|
|
453
|
+
dxccConfidence?: "unknown" | "exception" | "prefix" | "heuristic" | "manual" | undefined;
|
|
454
|
+
dxccResolvedAt?: number | undefined;
|
|
455
|
+
dxccResolverVersion?: string | undefined;
|
|
456
|
+
dxccNeedsReview?: boolean | undefined;
|
|
457
|
+
stationLocationId?: string | undefined;
|
|
458
|
+
myDxccId?: number | undefined;
|
|
459
|
+
myCqZone?: number | undefined;
|
|
460
|
+
myItuZone?: number | undefined;
|
|
461
|
+
myState?: string | undefined;
|
|
462
|
+
myCounty?: string | undefined;
|
|
463
|
+
myIota?: string | undefined;
|
|
464
|
+
lotwQslSent?: "Y" | "N" | "R" | "Q" | "I" | undefined;
|
|
465
|
+
lotwQslReceived?: "Y" | "N" | "R" | "I" | "V" | undefined;
|
|
466
|
+
lotwQslSentDate?: number | undefined;
|
|
467
|
+
lotwQslReceivedDate?: number | undefined;
|
|
468
|
+
qrzQslSent?: "Y" | "N" | undefined;
|
|
469
|
+
qrzQslReceived?: "Y" | "N" | undefined;
|
|
470
|
+
qrzQslSentDate?: number | undefined;
|
|
471
|
+
qrzQslReceivedDate?: number | undefined;
|
|
472
|
+
notes?: string | undefined;
|
|
473
|
+
}, {
|
|
474
|
+
id: string;
|
|
475
|
+
mode: string;
|
|
476
|
+
frequency: number;
|
|
477
|
+
callsign: string;
|
|
478
|
+
startTime: number;
|
|
479
|
+
messageHistory: string[];
|
|
480
|
+
contestId?: string | undefined;
|
|
481
|
+
myCallsign?: string | undefined;
|
|
482
|
+
myGrid?: string | undefined;
|
|
483
|
+
reportSent?: string | undefined;
|
|
484
|
+
reportReceived?: string | undefined;
|
|
485
|
+
grid?: string | undefined;
|
|
486
|
+
submode?: string | undefined;
|
|
487
|
+
endTime?: number | undefined;
|
|
488
|
+
comment?: string | undefined;
|
|
489
|
+
contestEntry?: {
|
|
490
|
+
received: Record<string, string>;
|
|
491
|
+
schemaVersion: 1;
|
|
492
|
+
contestId: string;
|
|
493
|
+
editionId: string;
|
|
494
|
+
rulesetVersion: string;
|
|
495
|
+
sent: Record<string, string>;
|
|
496
|
+
annotations?: Record<string, string | number | boolean> | undefined;
|
|
497
|
+
} | undefined;
|
|
498
|
+
qth?: string | undefined;
|
|
499
|
+
dxccId?: number | undefined;
|
|
500
|
+
dxccEntity?: string | undefined;
|
|
501
|
+
dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined;
|
|
502
|
+
countryCode?: string | undefined;
|
|
503
|
+
cqZone?: number | undefined;
|
|
504
|
+
ituZone?: number | undefined;
|
|
505
|
+
dxccSource?: "resolver" | "adif" | "lotw" | "manual_override" | undefined;
|
|
506
|
+
dxccConfidence?: "unknown" | "exception" | "prefix" | "heuristic" | "manual" | undefined;
|
|
507
|
+
dxccResolvedAt?: number | undefined;
|
|
508
|
+
dxccResolverVersion?: string | undefined;
|
|
509
|
+
dxccNeedsReview?: boolean | undefined;
|
|
510
|
+
stationLocationId?: string | undefined;
|
|
511
|
+
myDxccId?: number | undefined;
|
|
512
|
+
myCqZone?: number | undefined;
|
|
513
|
+
myItuZone?: number | undefined;
|
|
514
|
+
myState?: string | undefined;
|
|
515
|
+
myCounty?: string | undefined;
|
|
516
|
+
myIota?: string | undefined;
|
|
517
|
+
lotwQslSent?: "Y" | "N" | "R" | "Q" | "I" | undefined;
|
|
518
|
+
lotwQslReceived?: "Y" | "N" | "R" | "I" | "V" | undefined;
|
|
519
|
+
lotwQslSentDate?: number | undefined;
|
|
520
|
+
lotwQslReceivedDate?: number | undefined;
|
|
521
|
+
qrzQslSent?: "Y" | "N" | undefined;
|
|
522
|
+
qrzQslReceived?: "Y" | "N" | undefined;
|
|
523
|
+
qrzQslSentDate?: number | undefined;
|
|
524
|
+
qrzQslReceivedDate?: number | undefined;
|
|
525
|
+
notes?: string | undefined;
|
|
526
|
+
}>, {
|
|
527
|
+
id: string;
|
|
528
|
+
mode: string;
|
|
529
|
+
frequency: number;
|
|
530
|
+
callsign: string;
|
|
531
|
+
startTime: number;
|
|
532
|
+
messageHistory: string[];
|
|
533
|
+
contestId?: string | undefined;
|
|
312
534
|
myCallsign?: string | undefined;
|
|
313
535
|
myGrid?: string | undefined;
|
|
314
536
|
reportSent?: string | undefined;
|
|
@@ -317,6 +539,15 @@ export declare const QSORecordSchema: z.ZodObject<{
|
|
|
317
539
|
submode?: string | undefined;
|
|
318
540
|
endTime?: number | undefined;
|
|
319
541
|
comment?: string | undefined;
|
|
542
|
+
contestEntry?: {
|
|
543
|
+
received: Record<string, string>;
|
|
544
|
+
schemaVersion: 1;
|
|
545
|
+
contestId: string;
|
|
546
|
+
editionId: string;
|
|
547
|
+
rulesetVersion: string;
|
|
548
|
+
sent: Record<string, string>;
|
|
549
|
+
annotations?: Record<string, string | number | boolean> | undefined;
|
|
550
|
+
} | undefined;
|
|
320
551
|
qth?: string | undefined;
|
|
321
552
|
dxccId?: number | undefined;
|
|
322
553
|
dxccEntity?: string | undefined;
|
|
@@ -352,6 +583,7 @@ export declare const QSORecordSchema: z.ZodObject<{
|
|
|
352
583
|
callsign: string;
|
|
353
584
|
startTime: number;
|
|
354
585
|
messageHistory: string[];
|
|
586
|
+
contestId?: string | undefined;
|
|
355
587
|
myCallsign?: string | undefined;
|
|
356
588
|
myGrid?: string | undefined;
|
|
357
589
|
reportSent?: string | undefined;
|
|
@@ -360,6 +592,15 @@ export declare const QSORecordSchema: z.ZodObject<{
|
|
|
360
592
|
submode?: string | undefined;
|
|
361
593
|
endTime?: number | undefined;
|
|
362
594
|
comment?: string | undefined;
|
|
595
|
+
contestEntry?: {
|
|
596
|
+
received: Record<string, string>;
|
|
597
|
+
schemaVersion: 1;
|
|
598
|
+
contestId: string;
|
|
599
|
+
editionId: string;
|
|
600
|
+
rulesetVersion: string;
|
|
601
|
+
sent: Record<string, string>;
|
|
602
|
+
annotations?: Record<string, string | number | boolean> | undefined;
|
|
603
|
+
} | undefined;
|
|
363
604
|
qth?: string | undefined;
|
|
364
605
|
dxccId?: number | undefined;
|
|
365
606
|
dxccEntity?: string | undefined;
|
|
@@ -389,6 +630,8 @@ export declare const QSORecordSchema: z.ZodObject<{
|
|
|
389
630
|
qrzQslReceivedDate?: number | undefined;
|
|
390
631
|
notes?: string | undefined;
|
|
391
632
|
}>;
|
|
633
|
+
/** Host persistence behavior for an automatically completed QSO. */
|
|
634
|
+
export declare const QSOPersistencePolicySchema: z.ZodEnum<["merge-nearby", "preserve-distinct"]>;
|
|
392
635
|
export declare const StrategiesResultSchema: z.ZodObject<{
|
|
393
636
|
stop: z.ZodOptional<z.ZodBoolean>;
|
|
394
637
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -408,6 +651,7 @@ export type DxccStatus = z.infer<typeof DxccStatusSchema>;
|
|
|
408
651
|
export type DxccSource = z.infer<typeof DxccSourceSchema>;
|
|
409
652
|
export type DxccConfidence = z.infer<typeof DxccConfidenceSchema>;
|
|
410
653
|
export type QSOContext = z.infer<typeof QSOContextSchema>;
|
|
654
|
+
export type ContestQsoEnvelope = z.infer<typeof ContestQsoEnvelopeSchema>;
|
|
411
655
|
/**
|
|
412
656
|
* Canonical persisted QSO record used by TX-5DR logbooks and plugin hooks.
|
|
413
657
|
*
|
|
@@ -415,5 +659,6 @@ export type QSOContext = z.infer<typeof QSOContextSchema>;
|
|
|
415
659
|
* logbook queries.
|
|
416
660
|
*/
|
|
417
661
|
export type QSORecord = z.infer<typeof QSORecordSchema>;
|
|
662
|
+
export type QSOPersistencePolicy = z.infer<typeof QSOPersistencePolicySchema>;
|
|
418
663
|
export type StrategiesResult = z.infer<typeof StrategiesResultSchema>;
|
|
419
664
|
//# sourceMappingURL=qso.schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qso.schema.d.ts","sourceRoot":"","sources":["../../src/schema/qso.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC,6DAI5C,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,sDAK3B,CAAC;AAEH,eAAO,MAAM,gBAAgB,4DAK3B,CAAC;AAEH,eAAO,MAAM,oBAAoB,sEAM/B,CAAC;AAEH,eAAO,MAAM,2BAA2B,4BAGtC,CAAC;
|
|
1
|
+
{"version":3,"file":"qso.schema.d.ts","sourceRoot":"","sources":["../../src/schema/qso.schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,6 +43,54 @@ export const SubdivisionConfidenceSchema = z.enum([
|
|
|
43
43
|
'high',
|
|
44
44
|
'low',
|
|
45
45
|
]);
|
|
46
|
+
/** Maximum UTF-8 JSON size of contest-owned data persisted with one QSO. */
|
|
47
|
+
export const CONTEST_QSO_ENVELOPE_MAX_BYTES = 8 * 1024;
|
|
48
|
+
const ContestQsoExchangeSchema = z.record(z.string(), z.string());
|
|
49
|
+
const ContestQsoAnnotationValueSchema = z.union([z.string(), z.number().finite(), z.boolean()]);
|
|
50
|
+
function durableContestQsoJson(value) {
|
|
51
|
+
return JSON.stringify(value).replace(/[<>\u007f-\uffff]/g, character => (`\\u${character.charCodeAt(0).toString(16).padStart(4, '0')}`));
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Versioned contest facts that must be committed atomically with their QSO.
|
|
55
|
+
*
|
|
56
|
+
* The shape is deliberately shallow and bounded. Contest plugins may choose
|
|
57
|
+
* their exchange and annotation keys, but cannot persist arbitrary object
|
|
58
|
+
* graphs or binary payloads in the logbook record.
|
|
59
|
+
*/
|
|
60
|
+
export const ContestQsoEnvelopeSchema = z.object({
|
|
61
|
+
schemaVersion: z.literal(1),
|
|
62
|
+
contestId: z.string().min(1),
|
|
63
|
+
editionId: z.string().min(1),
|
|
64
|
+
rulesetVersion: z.string().min(1),
|
|
65
|
+
sent: ContestQsoExchangeSchema,
|
|
66
|
+
received: ContestQsoExchangeSchema,
|
|
67
|
+
annotations: z.record(z.string(), ContestQsoAnnotationValueSchema).optional(),
|
|
68
|
+
}).strict().superRefine((value, context) => {
|
|
69
|
+
if (new TextEncoder().encode(durableContestQsoJson(value)).byteLength > CONTEST_QSO_ENVELOPE_MAX_BYTES) {
|
|
70
|
+
context.addIssue({
|
|
71
|
+
code: z.ZodIssueCode.custom,
|
|
72
|
+
message: `Contest QSO envelope must not exceed ${CONTEST_QSO_ENVELOPE_MAX_BYTES} UTF-8 JSON bytes`,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
/**
|
|
77
|
+
* Serialize a validated contest envelope as ASCII-only JSON for durable ADIF
|
|
78
|
+
* private fields. Escaping non-ASCII and angle brackets keeps legacy string
|
|
79
|
+
* ADIF readers byte-safe without changing the decoded data.
|
|
80
|
+
*/
|
|
81
|
+
export function serializeContestQsoEnvelope(value) {
|
|
82
|
+
return durableContestQsoJson(ContestQsoEnvelopeSchema.parse(value));
|
|
83
|
+
}
|
|
84
|
+
/** Parse and validate an envelope read from a durable private field. */
|
|
85
|
+
export function parseContestQsoEnvelope(value) {
|
|
86
|
+
try {
|
|
87
|
+
const parsed = ContestQsoEnvelopeSchema.safeParse(JSON.parse(value));
|
|
88
|
+
return parsed.success ? parsed.data : undefined;
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
return undefined;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
46
94
|
// 操作配置
|
|
47
95
|
export const OperatorConfigSchema = z.object({
|
|
48
96
|
id: z.string(),
|
|
@@ -54,6 +102,7 @@ export const OperatorConfigSchema = z.object({
|
|
|
54
102
|
maxQSOTimeoutCycles: z.number(),
|
|
55
103
|
maxCallAttempts: z.number(),
|
|
56
104
|
frequency: z.number(),
|
|
105
|
+
maxConcurrentStreams: z.number().int().min(1).max(5).optional(),
|
|
57
106
|
autoResumeCQAfterFail: z.boolean().default(false),
|
|
58
107
|
autoResumeCQAfterSuccess: z.boolean().default(false),
|
|
59
108
|
replyToWorkedStations: z.boolean().default(false),
|
|
@@ -82,6 +131,13 @@ export const QslSimpleStatusSchema = z.enum(['Y', 'N']).optional();
|
|
|
82
131
|
* - DXCC enrichment and review metadata;
|
|
83
132
|
* - LoTW / QRZ confirmation state;
|
|
84
133
|
* - station-location metadata used when exporting ADIF-like records.
|
|
134
|
+
*
|
|
135
|
+
* `frequency` is the RF frequency in hertz; `startTime`/`endTime` and QSL dates
|
|
136
|
+
* are Unix epoch milliseconds. `mode` is the ADIF main mode and `submode` is the
|
|
137
|
+
* optional ADIF submode. `messageHistory` contains the raw digital-mode exchange.
|
|
138
|
+
* Sync providers update the service-specific LoTW/QRZ fields using ADIF status
|
|
139
|
+
* codes (`Y`, `N`, `R`, `Q`, `I`, and received-only `V`) rather than a generic
|
|
140
|
+
* `qslStatus` field.
|
|
85
141
|
*/
|
|
86
142
|
export const QSORecordSchema = z.object({
|
|
87
143
|
id: z.string(),
|
|
@@ -96,6 +152,8 @@ export const QSORecordSchema = z.object({
|
|
|
96
152
|
reportReceived: z.string().optional(), // 接收的信号报告
|
|
97
153
|
messageHistory: z.array(z.string()), // 内部消息历史(FT8 等数字模式)
|
|
98
154
|
comment: z.string().optional(), // 标准 ADIF COMMENT 字段
|
|
155
|
+
contestId: z.string().optional(), // ADIF CONTEST_ID
|
|
156
|
+
contestEntry: ContestQsoEnvelopeSchema.optional(), // TX-5DR atomic contest facts
|
|
99
157
|
myCallsign: z.string().optional(), // 我的呼号(操作员呼号)
|
|
100
158
|
myGrid: z.string().optional(), // 我的网格定位(操作员网格)
|
|
101
159
|
qth: z.string().optional(), // 对方 QTH(地点,语音通联常用)
|
|
@@ -129,7 +187,17 @@ export const QSORecordSchema = z.object({
|
|
|
129
187
|
qrzQslReceivedDate: z.number().optional(),
|
|
130
188
|
// 附注(对应 ADIF NOTES 字段)
|
|
131
189
|
notes: z.string().optional(),
|
|
190
|
+
}).superRefine((value, context) => {
|
|
191
|
+
if (value.contestId && value.contestEntry && value.contestId !== value.contestEntry.contestId) {
|
|
192
|
+
context.addIssue({
|
|
193
|
+
code: z.ZodIssueCode.custom,
|
|
194
|
+
path: ['contestEntry', 'contestId'],
|
|
195
|
+
message: 'contestEntry.contestId must match contestId',
|
|
196
|
+
});
|
|
197
|
+
}
|
|
132
198
|
});
|
|
199
|
+
/** Host persistence behavior for an automatically completed QSO. */
|
|
200
|
+
export const QSOPersistencePolicySchema = z.enum(['merge-nearby', 'preserve-distinct']);
|
|
133
201
|
// 策略执行结果
|
|
134
202
|
export const StrategiesResultSchema = z.object({
|
|
135
203
|
stop: z.boolean().optional(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qso.schema.js","sourceRoot":"","sources":["../../src/schema/qso.schema.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"qso.schema.js","sourceRoot":"","sources":["../../src/schema/qso.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC,IAAI,CAAC;IACtD,UAAU;IACV,YAAY;IACZ,oBAAoB;CACrB,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC;IACrC,SAAS;IACT,SAAS;IACT,MAAM;IACN,SAAS;CACV,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC;IACrC,UAAU;IACV,MAAM;IACN,MAAM;IACN,iBAAiB;CAClB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC;IACzC,WAAW;IACX,QAAQ;IACR,WAAW;IACX,QAAQ;IACR,SAAS;CACV,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,IAAI,CAAC;IAChD,MAAM;IACN,KAAK;CACN,CAAC,CAAC;AAEH,4EAA4E;AAC5E,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,GAAG,IAAI,CAAC;AAEvD,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAClE,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAEhG,SAAS,qBAAqB,CAAC,KAAc;IAC3C,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,SAAS,CAAC,EAAE,CAAC,CACtE,MAAM,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAC9D,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,IAAI,EAAE,wBAAwB;IAC9B,QAAQ,EAAE,wBAAwB;IAClC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,+BAA+B,CAAC,CAAC,QAAQ,EAAE;CAC9E,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACzC,IAAI,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,GAAG,8BAA8B,EAAE,CAAC;QACvG,OAAO,CAAC,QAAQ,CAAC;YACf,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,wCAAwC,8BAA8B,mBAAmB;SACnG,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CAAC,KAAyB;IACnE,OAAO,qBAAqB,CAAC,wBAAwB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,wBAAwB,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACrE,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,OAAO;AACP,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,oBAAoB;IAC1B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACnC,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE;IAC1B,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC/B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC/D,qBAAqB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACjD,wBAAwB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACpD,qBAAqB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACjD,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7C,2BAA2B,EAAE,iCAAiC,CAAC,OAAO,CAAC,YAAY,CAAC;CACrF,CAAC,CAAC;AAEH,YAAY;AACZ,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,MAAM,EAAE,oBAAoB;IAC5B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,uBAAuB;CAChE,CAAC,CAAC;AAEH,+BAA+B;AAC/B,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,gDAAgD;AACjI,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,qBAAqB;AAC1G,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAEnE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAS,OAAO;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS;IACtC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAQ,KAAK;IAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAa,UAAU;IACvC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,kBAAkB;IAClD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAQ,OAAO;IACpC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,OAAO;IACvC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAM,UAAU;IACjD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,UAAU;IACjD,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,oBAAoB;IACzD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,qBAAqB;IACrD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,kBAAkB;IACpD,YAAY,EAAE,wBAAwB,CAAC,QAAQ,EAAE,EAAE,8BAA8B;IACjF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,cAAc;IACjD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,gBAAgB;IAC/C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,oBAAoB;IAChD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC9C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACvC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC9C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC/C,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACvC,cAAc,EAAE,oBAAoB,CAAC,QAAQ,EAAE;IAC/C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1C,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACvC,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAChD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAChD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACjD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAE7B,gBAAgB;IAChB,WAAW,EAAE,mBAAmB;IAChC,eAAe,EAAE,uBAAuB;IACxC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAM,mBAAmB;IAC/D,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,mBAAmB;IAE/D,eAAe;IACf,UAAU,EAAE,qBAAqB;IACjC,cAAc,EAAE,qBAAqB;IACrC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEzC,uBAAuB;IACvB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IAChC,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;QAC9F,OAAO,CAAC,QAAQ,CAAC;YACf,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,IAAI,EAAE,CAAC,cAAc,EAAE,WAAW,CAAC;YACnC,OAAO,EAAE,6CAA6C;SACvD,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,oEAAoE;AACpE,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAExF,SAAS;AACT,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC"}
|