@tx5dr/plugin-api 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/README.md +475 -17
- package/dist/__tests__/adif.test.js +107 -0
- package/dist/__tests__/adif.test.js.map +1 -1
- package/dist/__tests__/capability-context.test.d.ts +2 -0
- package/dist/__tests__/capability-context.test.d.ts.map +1 -0
- package/dist/__tests__/capability-context.test.js +99 -0
- package/dist/__tests__/capability-context.test.js.map +1 -0
- package/dist/__tests__/testing-utils.test.js +234 -15
- package/dist/__tests__/testing-utils.test.js.map +1 -1
- package/dist/capabilities.d.ts +38 -0
- package/dist/capabilities.d.ts.map +1 -0
- package/dist/capabilities.js +50 -0
- package/dist/capabilities.js.map +1 -0
- package/dist/compatibility.d.ts +15 -0
- package/dist/compatibility.d.ts.map +1 -0
- package/dist/compatibility.js +71 -0
- package/dist/compatibility.js.map +1 -0
- package/dist/contest-logbook-ui/assets/contest-log.css +1 -0
- package/dist/contest-logbook-ui/assets/contest-log.js +40 -0
- package/dist/contest-logbook-ui/contest-log.html +13 -0
- package/dist/context.d.ts +125 -54
- package/dist/context.d.ts.map +1 -1
- package/dist/definition.d.ts +98 -21
- package/dist/definition.d.ts.map +1 -1
- package/dist/definition.js +8 -1
- package/dist/definition.js.map +1 -1
- package/dist/ft8/StandardQSOPluginRuntime.d.ts +142 -0
- package/dist/ft8/StandardQSOPluginRuntime.d.ts.map +1 -0
- package/dist/ft8/StandardQSOPluginRuntime.js +1592 -0
- package/dist/ft8/StandardQSOPluginRuntime.js.map +1 -0
- package/dist/ft8/index.d.ts +22 -0
- package/dist/ft8/index.d.ts.map +1 -0
- package/dist/ft8/index.js +176 -0
- package/dist/ft8/index.js.map +1 -0
- package/dist/helpers.d.ts +417 -132
- package/dist/helpers.d.ts.map +1 -1
- package/dist/hooks.d.ts +56 -34
- package/dist/hooks.d.ts.map +1 -1
- package/dist/host-dependencies.d.ts +101 -0
- package/dist/host-dependencies.d.ts.map +1 -1
- package/dist/index.d.ts +20 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -1
- package/dist/index.js.map +1 -1
- package/dist/runtime.d.ts +539 -13
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +9 -1
- package/dist/runtime.js.map +1 -1
- package/dist/settings.d.ts +31 -0
- package/dist/settings.d.ts.map +1 -1
- package/dist/simulation.d.ts +60 -0
- package/dist/simulation.d.ts.map +1 -0
- package/dist/simulation.js +2 -0
- package/dist/simulation.js.map +1 -0
- package/dist/sync.d.ts +98 -6
- package/dist/sync.d.ts.map +1 -1
- package/dist/sync.js +6 -0
- package/dist/sync.js.map +1 -1
- package/dist/testing/index.d.ts +74 -12
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +372 -105
- package/dist/testing/index.js.map +1 -1
- package/dist/toolkit/contest/CabrilloBuilder.d.ts +7 -0
- package/dist/toolkit/contest/CabrilloBuilder.d.ts.map +1 -0
- package/dist/toolkit/contest/CabrilloBuilder.js +11 -0
- package/dist/toolkit/contest/CabrilloBuilder.js.map +1 -0
- package/dist/toolkit/contest/ContestCategorySchema.d.ts +11 -0
- package/dist/toolkit/contest/ContestCategorySchema.d.ts.map +1 -0
- package/dist/toolkit/contest/ContestCategorySchema.js +6 -0
- package/dist/toolkit/contest/ContestCategorySchema.js.map +1 -0
- package/dist/toolkit/contest/ContestLogbook.d.ts +223 -0
- package/dist/toolkit/contest/ContestLogbook.d.ts.map +1 -0
- package/dist/toolkit/contest/ContestLogbook.js +845 -0
- package/dist/toolkit/contest/ContestLogbook.js.map +1 -0
- package/dist/toolkit/contest/ContestQsoEnvelopeAdapter.d.ts +28 -0
- package/dist/toolkit/contest/ContestQsoEnvelopeAdapter.d.ts.map +1 -0
- package/dist/toolkit/contest/ContestQsoEnvelopeAdapter.js +79 -0
- package/dist/toolkit/contest/ContestQsoEnvelopeAdapter.js.map +1 -0
- package/dist/toolkit/contest/ContestQsoProjector.d.ts +12 -0
- package/dist/toolkit/contest/ContestQsoProjector.d.ts.map +1 -0
- package/dist/toolkit/contest/ContestQsoProjector.js +13 -0
- package/dist/toolkit/contest/ContestQsoProjector.js.map +1 -0
- package/dist/toolkit/contest/ContestSessionNotifier.d.ts +9 -0
- package/dist/toolkit/contest/ContestSessionNotifier.d.ts.map +1 -0
- package/dist/toolkit/contest/ContestSessionNotifier.js +13 -0
- package/dist/toolkit/contest/ContestSessionNotifier.js.map +1 -0
- package/dist/toolkit/contest/ContestSessionRepository.d.ts +21 -0
- package/dist/toolkit/contest/ContestSessionRepository.d.ts.map +1 -0
- package/dist/toolkit/contest/ContestSessionRepository.js +27 -0
- package/dist/toolkit/contest/ContestSessionRepository.js.map +1 -0
- package/dist/toolkit/contest/DefaultContestSession.d.ts +105 -0
- package/dist/toolkit/contest/DefaultContestSession.d.ts.map +1 -0
- package/dist/toolkit/contest/DefaultContestSession.js +387 -0
- package/dist/toolkit/contest/DefaultContestSession.js.map +1 -0
- package/dist/toolkit/contest/DefaultContestWorkbench.d.ts +100 -0
- package/dist/toolkit/contest/DefaultContestWorkbench.d.ts.map +1 -0
- package/dist/toolkit/contest/DefaultContestWorkbench.js +33 -0
- package/dist/toolkit/contest/DefaultContestWorkbench.js.map +1 -0
- package/dist/toolkit/contest/FT8ContestDefinition.d.ts +83 -0
- package/dist/toolkit/contest/FT8ContestDefinition.d.ts.map +1 -0
- package/dist/toolkit/contest/FT8ContestDefinition.js +167 -0
- package/dist/toolkit/contest/FT8ContestDefinition.js.map +1 -0
- package/dist/toolkit/contest/FT8ContestModules.d.ts +178 -0
- package/dist/toolkit/contest/FT8ContestModules.d.ts.map +1 -0
- package/dist/toolkit/contest/FT8ContestModules.js +247 -0
- package/dist/toolkit/contest/FT8ContestModules.js.map +1 -0
- package/dist/toolkit/contest/FT8ContestPlugin.d.ts +55 -0
- package/dist/toolkit/contest/FT8ContestPlugin.d.ts.map +1 -0
- package/dist/toolkit/contest/FT8ContestPlugin.js +322 -0
- package/dist/toolkit/contest/FT8ContestPlugin.js.map +1 -0
- package/dist/toolkit/contest/FT8ContestTestKit.d.ts +12 -0
- package/dist/toolkit/contest/FT8ContestTestKit.d.ts.map +1 -0
- package/dist/toolkit/contest/FT8ContestTestKit.js +60 -0
- package/dist/toolkit/contest/FT8ContestTestKit.js.map +1 -0
- package/dist/toolkit/contest/contest-toolkit.test.d.ts +2 -0
- package/dist/toolkit/contest/contest-toolkit.test.d.ts.map +1 -0
- package/dist/toolkit/contest/contest-toolkit.test.js +1196 -0
- package/dist/toolkit/contest/contest-toolkit.test.js.map +1 -0
- package/dist/toolkit/contest/index.d.ts +14 -0
- package/dist/toolkit/contest/index.d.ts.map +1 -0
- package/dist/toolkit/contest/index.js +14 -0
- package/dist/toolkit/contest/index.js.map +1 -0
- package/dist/toolkit/index.d.ts +3 -0
- package/dist/toolkit/index.d.ts.map +1 -0
- package/dist/toolkit/index.js +3 -0
- package/dist/toolkit/index.js.map +1 -0
- package/dist/toolkit/parallel-qso/AuthorizationLease.d.ts +15 -0
- package/dist/toolkit/parallel-qso/AuthorizationLease.d.ts.map +1 -0
- package/dist/toolkit/parallel-qso/AuthorizationLease.js +25 -0
- package/dist/toolkit/parallel-qso/AuthorizationLease.js.map +1 -0
- package/dist/toolkit/parallel-qso/BoundedCallSessionController.d.ts +40 -0
- package/dist/toolkit/parallel-qso/BoundedCallSessionController.d.ts.map +1 -0
- package/dist/toolkit/parallel-qso/BoundedCallSessionController.js +81 -0
- package/dist/toolkit/parallel-qso/BoundedCallSessionController.js.map +1 -0
- package/dist/toolkit/parallel-qso/BoundedCallSessionController.test.d.ts +2 -0
- package/dist/toolkit/parallel-qso/BoundedCallSessionController.test.d.ts.map +1 -0
- package/dist/toolkit/parallel-qso/BoundedCallSessionController.test.js +31 -0
- package/dist/toolkit/parallel-qso/BoundedCallSessionController.test.js.map +1 -0
- package/dist/toolkit/parallel-qso/CompletionTracker.d.ts +20 -0
- package/dist/toolkit/parallel-qso/CompletionTracker.d.ts.map +1 -0
- package/dist/toolkit/parallel-qso/CompletionTracker.js +20 -0
- package/dist/toolkit/parallel-qso/CompletionTracker.js.map +1 -0
- package/dist/toolkit/parallel-qso/LaneFrequencyController.d.ts +19 -0
- package/dist/toolkit/parallel-qso/LaneFrequencyController.d.ts.map +1 -0
- package/dist/toolkit/parallel-qso/LaneFrequencyController.js +23 -0
- package/dist/toolkit/parallel-qso/LaneFrequencyController.js.map +1 -0
- package/dist/toolkit/parallel-qso/ParallelQSOCoordinator.d.ts +134 -0
- package/dist/toolkit/parallel-qso/ParallelQSOCoordinator.d.ts.map +1 -0
- package/dist/toolkit/parallel-qso/ParallelQSOCoordinator.js +554 -0
- package/dist/toolkit/parallel-qso/ParallelQSOCoordinator.js.map +1 -0
- package/dist/toolkit/parallel-qso/ParallelQSOCoordinator.test.d.ts +2 -0
- package/dist/toolkit/parallel-qso/ParallelQSOCoordinator.test.d.ts.map +1 -0
- package/dist/toolkit/parallel-qso/ParallelQSOCoordinator.test.js +470 -0
- package/dist/toolkit/parallel-qso/ParallelQSOCoordinator.test.js.map +1 -0
- package/dist/toolkit/parallel-qso/PostCompletionRecoveryLease.d.ts +20 -0
- package/dist/toolkit/parallel-qso/PostCompletionRecoveryLease.d.ts.map +1 -0
- package/dist/toolkit/parallel-qso/PostCompletionRecoveryLease.js +29 -0
- package/dist/toolkit/parallel-qso/PostCompletionRecoveryLease.js.map +1 -0
- package/dist/toolkit/parallel-qso/ProtocolLane.d.ts +50 -0
- package/dist/toolkit/parallel-qso/ProtocolLane.d.ts.map +1 -0
- package/dist/toolkit/parallel-qso/ProtocolLane.js +2 -0
- package/dist/toolkit/parallel-qso/ProtocolLane.js.map +1 -0
- package/dist/toolkit/parallel-qso/controllers.test.d.ts +2 -0
- package/dist/toolkit/parallel-qso/controllers.test.d.ts.map +1 -0
- package/dist/toolkit/parallel-qso/controllers.test.js +36 -0
- package/dist/toolkit/parallel-qso/controllers.test.js.map +1 -0
- package/dist/toolkit/parallel-qso/index.d.ts +8 -0
- package/dist/toolkit/parallel-qso/index.d.ts.map +1 -0
- package/dist/toolkit/parallel-qso/index.js +8 -0
- package/dist/toolkit/parallel-qso/index.js.map +1 -0
- package/dist/utils/adif.d.ts +1 -1
- package/dist/utils/adif.d.ts.map +1 -1
- package/dist/utils/adif.js +96 -51
- package/dist/utils/adif.js.map +1 -1
- package/dist/utils/qso-text-fields.d.ts +7 -1
- package/dist/utils/qso-text-fields.d.ts.map +1 -1
- package/dist/utils/qso-text-fields.js +74 -6
- package/dist/utils/qso-text-fields.js.map +1 -1
- package/package.json +28 -6
- package/src/bridge.d.ts +3 -0
- package/tokens.css +51 -0
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tx5dr/plugin-api",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.5.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Public plugin API for TX-5DR digital radio engine",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
|
-
"url": "https://github.com/boybook/tx-5dr
|
|
9
|
+
"url": "https://github.com/boybook/tx-5dr",
|
|
10
10
|
"directory": "packages/plugin-api"
|
|
11
11
|
},
|
|
12
12
|
"keywords": [
|
|
@@ -34,23 +34,45 @@
|
|
|
34
34
|
"require": "./dist/testing/index.js",
|
|
35
35
|
"types": "./dist/testing/index.d.ts"
|
|
36
36
|
},
|
|
37
|
+
"./toolkit": {
|
|
38
|
+
"import": "./dist/toolkit/index.js",
|
|
39
|
+
"require": "./dist/toolkit/index.js",
|
|
40
|
+
"types": "./dist/toolkit/index.d.ts"
|
|
41
|
+
},
|
|
42
|
+
"./contest": {
|
|
43
|
+
"import": "./dist/toolkit/contest/index.js",
|
|
44
|
+
"require": "./dist/toolkit/contest/index.js",
|
|
45
|
+
"types": "./dist/toolkit/contest/index.d.ts"
|
|
46
|
+
},
|
|
47
|
+
"./ft8": {
|
|
48
|
+
"import": "./dist/ft8/index.js",
|
|
49
|
+
"require": "./dist/ft8/index.js",
|
|
50
|
+
"types": "./dist/ft8/index.d.ts"
|
|
51
|
+
},
|
|
52
|
+
"./contest-logbook-ui/*": "./dist/contest-logbook-ui/*",
|
|
37
53
|
"./bridge": {
|
|
38
54
|
"types": "./src/bridge.d.ts"
|
|
39
55
|
}
|
|
40
56
|
},
|
|
41
57
|
"scripts": {
|
|
42
|
-
"build": "tsc",
|
|
58
|
+
"build": "tsc && npx vite build --config contest-logbook-ui/vite.config.ts",
|
|
43
59
|
"dev": "tsc --watch",
|
|
44
60
|
"lint": "eslint src/**/*.ts",
|
|
45
|
-
"test": "vitest run --passWithNoTests"
|
|
61
|
+
"test": "vitest run --passWithNoTests",
|
|
62
|
+
"smoke:pack": "node scripts/packed-consumer-smoke.mjs"
|
|
46
63
|
},
|
|
47
64
|
"dependencies": {
|
|
48
|
-
"@tx5dr/contracts": "
|
|
49
|
-
"@tx5dr/core": "
|
|
65
|
+
"@tx5dr/contracts": "2.5.0",
|
|
66
|
+
"@tx5dr/core": "2.5.0",
|
|
67
|
+
"@types/node": "^20.11.24"
|
|
50
68
|
},
|
|
51
69
|
"devDependencies": {
|
|
70
|
+
"@vitejs/plugin-react": "^4.3.4",
|
|
52
71
|
"eslint": "^8.0.0",
|
|
72
|
+
"react": "^18.3.1",
|
|
73
|
+
"react-dom": "^18.3.1",
|
|
53
74
|
"typescript": "^5.0.0",
|
|
75
|
+
"vite": "^6.3.4",
|
|
54
76
|
"vitest": "^1.0.0"
|
|
55
77
|
}
|
|
56
78
|
}
|
package/src/bridge.d.ts
CHANGED
|
@@ -160,6 +160,9 @@ interface Tx5drBridge {
|
|
|
160
160
|
/** Ask the parent component to close this iframe (e.g. close a modal). */
|
|
161
161
|
requestClose(): void;
|
|
162
162
|
|
|
163
|
+
/** Open an http(s) URL outside the plugin iframe. Electron uses the system default browser. */
|
|
164
|
+
openExternal(url: string): void;
|
|
165
|
+
|
|
163
166
|
/** Register a callback invoked when the host theme changes. Returns an unsubscribe function. */
|
|
164
167
|
onThemeChange(callback: (theme: 'dark' | 'light') => void): Tx5drBridgeUnsubscribe;
|
|
165
168
|
}
|
package/tokens.css
CHANGED
|
@@ -31,9 +31,24 @@
|
|
|
31
31
|
/* ── Semantic colors ── */
|
|
32
32
|
--tx5dr-primary: #006FEE;
|
|
33
33
|
--tx5dr-primary-hover: #005bc4;
|
|
34
|
+
--tx5dr-primary-soft: color-mix(in srgb, var(--tx5dr-primary) 14%, transparent);
|
|
35
|
+
--tx5dr-primary-soft-hover: color-mix(in srgb, var(--tx5dr-primary) 22%, transparent);
|
|
36
|
+
--tx5dr-primary-foreground: #ffffff;
|
|
34
37
|
--tx5dr-success: #17c964;
|
|
38
|
+
--tx5dr-success-hover: #12a150;
|
|
39
|
+
--tx5dr-success-soft: color-mix(in srgb, var(--tx5dr-success) 14%, transparent);
|
|
40
|
+
--tx5dr-success-soft-hover: color-mix(in srgb, var(--tx5dr-success) 22%, transparent);
|
|
41
|
+
--tx5dr-success-foreground: #052e16;
|
|
35
42
|
--tx5dr-warning: #f5a524;
|
|
43
|
+
--tx5dr-warning-hover: #c4841d;
|
|
44
|
+
--tx5dr-warning-soft: color-mix(in srgb, var(--tx5dr-warning) 14%, transparent);
|
|
45
|
+
--tx5dr-warning-soft-hover: color-mix(in srgb, var(--tx5dr-warning) 22%, transparent);
|
|
46
|
+
--tx5dr-warning-foreground: #3b2500;
|
|
36
47
|
--tx5dr-danger: #f31260;
|
|
48
|
+
--tx5dr-danger-hover: #c20e4d;
|
|
49
|
+
--tx5dr-danger-soft: color-mix(in srgb, var(--tx5dr-danger) 14%, transparent);
|
|
50
|
+
--tx5dr-danger-soft-hover: color-mix(in srgb, var(--tx5dr-danger) 22%, transparent);
|
|
51
|
+
--tx5dr-danger-foreground: #ffffff;
|
|
37
52
|
|
|
38
53
|
/* ── Border ── */
|
|
39
54
|
--tx5dr-border: #3f3f46;
|
|
@@ -43,6 +58,7 @@
|
|
|
43
58
|
--tx5dr-radius-sm: 8px;
|
|
44
59
|
--tx5dr-radius-md: 12px;
|
|
45
60
|
--tx5dr-radius-lg: 16px;
|
|
61
|
+
--tx5dr-radius-full: 9999px;
|
|
46
62
|
|
|
47
63
|
/* ── Spacing ── */
|
|
48
64
|
--tx5dr-spacing-xs: 4px;
|
|
@@ -57,4 +73,39 @@
|
|
|
57
73
|
--tx5dr-font-size-sm: 13px;
|
|
58
74
|
--tx5dr-font-size-md: 14px;
|
|
59
75
|
--tx5dr-font-size-lg: 16px;
|
|
76
|
+
|
|
77
|
+
/* ── Control primitives ── */
|
|
78
|
+
--tx5dr-control-height-xs: 24px;
|
|
79
|
+
--tx5dr-control-height-sm: 32px;
|
|
80
|
+
--tx5dr-control-height-md: 40px;
|
|
81
|
+
--tx5dr-control-height-lg: 48px;
|
|
82
|
+
--tx5dr-control-padding-x-xs: 8px;
|
|
83
|
+
--tx5dr-control-padding-x-sm: 12px;
|
|
84
|
+
--tx5dr-control-padding-x-md: 16px;
|
|
85
|
+
--tx5dr-control-padding-x-lg: 20px;
|
|
86
|
+
--tx5dr-control-font-size-xs: 11px;
|
|
87
|
+
--tx5dr-control-font-size-sm: 13px;
|
|
88
|
+
--tx5dr-control-font-size-md: 14px;
|
|
89
|
+
--tx5dr-control-font-size-lg: 16px;
|
|
90
|
+
--tx5dr-control-font-weight: 600;
|
|
91
|
+
--tx5dr-control-bg: var(--tx5dr-bg-content);
|
|
92
|
+
--tx5dr-control-bg-hover: var(--tx5dr-bg-hover);
|
|
93
|
+
--tx5dr-control-border: var(--tx5dr-border);
|
|
94
|
+
--tx5dr-control-text: var(--tx5dr-text);
|
|
95
|
+
--tx5dr-control-disabled-opacity: 0.55;
|
|
96
|
+
--tx5dr-control-transition: 140ms ease;
|
|
97
|
+
|
|
98
|
+
/* ── Compact status primitives ── */
|
|
99
|
+
--tx5dr-chip-height: 24px;
|
|
100
|
+
--tx5dr-chip-padding-x: 9px;
|
|
101
|
+
--tx5dr-chip-font-size: 11px;
|
|
102
|
+
--tx5dr-chip-font-weight: 600;
|
|
103
|
+
|
|
104
|
+
/* ── Data and feedback primitives ── */
|
|
105
|
+
--tx5dr-table-header-bg: var(--tx5dr-bg-content);
|
|
106
|
+
--tx5dr-table-row-hover: color-mix(in srgb, var(--tx5dr-bg-hover) 45%, transparent);
|
|
107
|
+
--tx5dr-table-divider: var(--tx5dr-border);
|
|
108
|
+
--tx5dr-alert-padding: 10px 12px;
|
|
109
|
+
--tx5dr-shadow-sm: 0 1px 2px color-mix(in srgb, var(--tx5dr-text) 8%, transparent);
|
|
110
|
+
--tx5dr-shadow-md: 0 4px 14px color-mix(in srgb, var(--tx5dr-text) 12%, transparent);
|
|
60
111
|
}
|