@tx5dr/contracts 1.7.7 → 1.7.8

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.
@@ -1,5 +1,5 @@
1
1
  import { describe, expect, it } from 'vitest';
2
- import { buildAbilityRules, Permission, PERMISSION_GROUPS, PERMISSION_RULE_MAP, } from '../ability.js';
2
+ import { buildRadioFrequencyPermissionGrants, buildAbilityRules, getPresetFrequenciesFromFrequencyGrants, getRangesFromFrequencyGrants, Permission, PERMISSION_GROUPS, PERMISSION_RULE_MAP, } from '../ability.js';
3
3
  import { UserRole } from '../auth.schema.js';
4
4
  describe('ability contracts', () => {
5
5
  it('maps CW decoder permissions to separate control and config capabilities', () => {
@@ -28,5 +28,51 @@ describe('ability contracts', () => {
28
28
  Permission.CW_DECODER_CONFIG,
29
29
  ]);
30
30
  });
31
+ it('builds preset and range frequency grants as separate OR rules', () => {
32
+ const grants = buildRadioFrequencyPermissionGrants([7_050_000, 7_050_000], [{ minFrequency: 14_000_000, maxFrequency: 14_350_000 }]);
33
+ expect(grants).toEqual([
34
+ {
35
+ permission: Permission.RADIO_SET_FREQUENCY,
36
+ conditions: { frequency: { $in: [7_050_000] } },
37
+ },
38
+ {
39
+ permission: Permission.RADIO_SET_FREQUENCY,
40
+ conditions: { frequency: { $gte: 14_000_000, $lte: 14_350_000 } },
41
+ },
42
+ ]);
43
+ });
44
+ it('uses an unconditional frequency grant when no preset or range restriction is provided', () => {
45
+ expect(buildRadioFrequencyPermissionGrants([], [])).toEqual([
46
+ { permission: Permission.RADIO_SET_FREQUENCY },
47
+ ]);
48
+ });
49
+ it('rejects invalid preset frequency restrictions instead of allowing all frequencies', () => {
50
+ expect(() => buildRadioFrequencyPermissionGrants([Number.NaN], []))
51
+ .toThrow('presetFrequencies[0]');
52
+ expect(() => buildRadioFrequencyPermissionGrants([0], []))
53
+ .toThrow('presetFrequencies[0]');
54
+ });
55
+ it('rejects invalid range restrictions instead of allowing all frequencies', () => {
56
+ expect(() => buildRadioFrequencyPermissionGrants([], [{ minFrequency: Number.NaN, maxFrequency: 14_350_000 }]))
57
+ .toThrow('ranges[0].minFrequency');
58
+ expect(() => buildRadioFrequencyPermissionGrants([], [{ minFrequency: 14_350_000, maxFrequency: 14_000_000 }]))
59
+ .toThrow('ranges[0]');
60
+ });
61
+ it('restores preset and range restrictions from existing frequency grants', () => {
62
+ const grants = [
63
+ {
64
+ permission: Permission.RADIO_SET_FREQUENCY,
65
+ conditions: { frequency: { $in: [7_050_000, 14_270_000] } },
66
+ },
67
+ {
68
+ permission: Permission.RADIO_SET_FREQUENCY,
69
+ conditions: { frequency: { $gte: 14_000_000, $lte: 14_350_000 } },
70
+ },
71
+ ];
72
+ expect(getPresetFrequenciesFromFrequencyGrants(grants)).toEqual([7_050_000, 14_270_000]);
73
+ expect(getRangesFromFrequencyGrants(grants)).toEqual([
74
+ { band: '20m', minFrequency: 14_000_000, maxFrequency: 14_350_000 },
75
+ ]);
76
+ });
31
77
  });
32
78
  //# sourceMappingURL=ability.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ability.test.js","sourceRoot":"","sources":["../../../src/schema/__tests__/ability.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QACjF,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC;YACjE,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,WAAW;SACrB,CAAC,CAAC;QACH,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC;YAChE,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,iBAAiB;SAC3B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qFAAqF,EAAE,GAAG,EAAE;QAC7F,MAAM,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aACzE,GAAG,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;QAEnE,MAAM,CAAC,iBAAiB,CAAC;YACvB,IAAI,EAAE,QAAQ,CAAC,QAAQ;YACvB,WAAW,EAAE,CAAC,KAAK,CAAC;YACpB,gBAAgB,EAAE,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,kBAAkB,EAAE,CAAC;SAClE,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;QACpE,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC;YACnC,UAAU,CAAC,kBAAkB;YAC7B,UAAU,CAAC,iBAAiB;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"ability.test.js","sourceRoot":"","sources":["../../../src/schema/__tests__/ability.test.ts"],"names":[],"mappings":"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"}
@@ -50,6 +50,7 @@ describe('plugin market schema', () => {
50
50
  expect(() => PluginMarketChannelSchema.parse('beta')).toThrow();
51
51
  });
52
52
  it('accepts host settings permissions', () => {
53
+ expect(PluginPermissionSchema.parse('host:hamlib')).toBe('host:hamlib');
53
54
  expect(PluginPermissionSchema.parse('settings:ft8')).toBe('settings:ft8');
54
55
  expect(PluginPermissionSchema.parse('settings:ntp')).toBe('settings:ntp');
55
56
  });
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-market.schema.test.js","sourceRoot":"","sources":["../../../src/schema/__tests__/plugin-market.schema.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin-market.schema.test.js","sourceRoot":"","sources":["../../../src/schema/__tests__/plugin-market.schema.test.ts"],"names":[],"mappings":"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"}
@@ -53,6 +53,16 @@ export declare const PermissionGrantSchema: z.ZodObject<{
53
53
  conditions?: Record<string, unknown> | undefined;
54
54
  }>;
55
55
  export type PermissionGrant = z.infer<typeof PermissionGrantSchema>;
56
+ export interface FrequencyPermissionRange {
57
+ band?: string;
58
+ minFrequency: number;
59
+ maxFrequency: number;
60
+ }
61
+ export declare const FREQUENCY_PERMISSION_BAND_RANGES: Record<string, FrequencyPermissionRange>;
62
+ export declare function getPresetFrequenciesFromFrequencyGrants(grants: PermissionGrant[] | undefined): number[];
63
+ export declare function getRangesFromFrequencyGrants(grants: PermissionGrant[] | undefined): FrequencyPermissionRange[];
64
+ export declare function inferFrequencyPermissionBand(minFrequency: number, maxFrequency: number): string | undefined;
65
+ export declare function buildRadioFrequencyPermissionGrants(presetFrequencies: number[], ranges: FrequencyPermissionRange[]): PermissionGrant[];
56
66
  export interface RawRule {
57
67
  action: AppAction | AppAction[];
58
68
  subject: AppSubject | AppSubject[];
@@ -1 +1 @@
1
- {"version":3,"file":"ability.d.ts","sourceRoot":"","sources":["../../src/schema/ability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAI5C,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAIvF;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GACrB,UAAU,GACV,cAAc,GACd,OAAO,GACP,YAAY,CAAC;AAEjB;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GACzB,gBAAgB,GAChB,YAAY,GACZ,WAAW,GACX,aAAa,GACb,gBAAgB,GAChB,cAAc,GACd,YAAY,GACZ,eAAe,GACf,QAAQ,GACR,YAAY,GACZ,WAAW,GACX,iBAAiB,GACjB,uBAAuB,GACvB,0BAA0B,GAC1B,aAAa,CAAC;AAElB,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,iBAAiB,GAAG,KAAK,CAAC;AAEnE,qDAAqD;AACrD,MAAM,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AAInD,oBAAY,UAAU;IACpB,mBAAmB,wBAAwB;IAC3C,eAAe,oBAAoB;IACnC,UAAU,eAAe;IACzB,YAAY,iBAAiB;IAC7B,eAAe,oBAAoB;IACnC,gCAAgC;IAChC,aAAa,kBAAkB;IAC/B,iDAAiD;IACjD,WAAW,gBAAgB;IAC3B,qDAAqD;IACrD,cAAc,mBAAmB;IACjC,iBAAiB,sBAAsB;IACvC,WAAW,gBAAgB;IAC3B,kBAAkB,uBAAuB;IACzC,iBAAiB,sBAAsB;IACvC,uBAAuB,4BAA4B;IACnD,0BAA0B,+BAA+B;IACzD,cAAc,mBAAmB;CAClC;AAED,eAAO,MAAM,gBAAgB,oCAA2B,CAAC;AAIzD,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,UAAU,EAAE;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,iBAAiB,CAAA;CAAE,CAgBrG,CAAC;AAIF,eAAO,MAAM,qBAAqB;;IAEhC,iFAAiF;;;;;;;;EAEjF,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAIpE,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;IAChC,OAAO,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAID;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACxC,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;CACtC,GAAG,OAAO,EAAE,CAsCZ;AAID,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,EA+BjD,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,uBAAuB,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE;IAC/D,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,KAAK,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CAMD,CAAC"}
1
+ {"version":3,"file":"ability.d.ts","sourceRoot":"","sources":["../../src/schema/ability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAI5C,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAIvF;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GACrB,UAAU,GACV,cAAc,GACd,OAAO,GACP,YAAY,CAAC;AAEjB;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GACzB,gBAAgB,GAChB,YAAY,GACZ,WAAW,GACX,aAAa,GACb,gBAAgB,GAChB,cAAc,GACd,YAAY,GACZ,eAAe,GACf,QAAQ,GACR,YAAY,GACZ,WAAW,GACX,iBAAiB,GACjB,uBAAuB,GACvB,0BAA0B,GAC1B,aAAa,CAAC;AAElB,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,iBAAiB,GAAG,KAAK,CAAC;AAEnE,qDAAqD;AACrD,MAAM,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AAInD,oBAAY,UAAU;IACpB,mBAAmB,wBAAwB;IAC3C,eAAe,oBAAoB;IACnC,UAAU,eAAe;IACzB,YAAY,iBAAiB;IAC7B,eAAe,oBAAoB;IACnC,gCAAgC;IAChC,aAAa,kBAAkB;IAC/B,iDAAiD;IACjD,WAAW,gBAAgB;IAC3B,qDAAqD;IACrD,cAAc,mBAAmB;IACjC,iBAAiB,sBAAsB;IACvC,WAAW,gBAAgB;IAC3B,kBAAkB,uBAAuB;IACzC,iBAAiB,sBAAsB;IACvC,uBAAuB,4BAA4B;IACnD,0BAA0B,+BAA+B;IACzD,cAAc,mBAAmB;CAClC;AAED,eAAO,MAAM,gBAAgB,oCAA2B,CAAC;AAIzD,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,UAAU,EAAE;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,iBAAiB,CAAA;CAAE,CAgBrG,CAAC;AAIF,eAAO,MAAM,qBAAqB;;IAEhC,iFAAiF;;;;;;;;EAEjF,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAIpE,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,gCAAgC,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAcrF,CAAC;AAuBF,wBAAgB,uCAAuC,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,SAAS,GAAG,MAAM,EAAE,CAmBvG;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,SAAS,GAAG,wBAAwB,EAAE,CAiB9G;AAED,wBAAgB,4BAA4B,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAI3G;AAED,wBAAgB,mCAAmC,CACjD,iBAAiB,EAAE,MAAM,EAAE,EAC3B,MAAM,EAAE,wBAAwB,EAAE,GACjC,eAAe,EAAE,CAkCnB;AAID,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;IAChC,OAAO,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAID;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACxC,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;CACtC,GAAG,OAAO,EAAE,CAsCZ;AAID,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,EA+BjD,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,uBAAuB,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE;IAC/D,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,KAAK,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CAMD,CAAC"}
@@ -47,6 +47,111 @@ export const PermissionGrantSchema = z.object({
47
47
  /** MongoDB-style conditions for CASL, e.g. { frequency: { $in: [14074000] } } */
48
48
  conditions: z.record(z.unknown()).optional(),
49
49
  });
50
+ export const FREQUENCY_PERMISSION_BAND_RANGES = {
51
+ '160m': { band: '160m', minFrequency: 1_800_000, maxFrequency: 2_000_000 },
52
+ '80m': { band: '80m', minFrequency: 3_500_000, maxFrequency: 4_000_000 },
53
+ '60m': { band: '60m', minFrequency: 5_000_000, maxFrequency: 5_500_000 },
54
+ '40m': { band: '40m', minFrequency: 7_000_000, maxFrequency: 7_300_000 },
55
+ '30m': { band: '30m', minFrequency: 10_100_000, maxFrequency: 10_150_000 },
56
+ '20m': { band: '20m', minFrequency: 14_000_000, maxFrequency: 14_350_000 },
57
+ '17m': { band: '17m', minFrequency: 18_068_000, maxFrequency: 18_168_000 },
58
+ '15m': { band: '15m', minFrequency: 21_000_000, maxFrequency: 21_450_000 },
59
+ '12m': { band: '12m', minFrequency: 24_890_000, maxFrequency: 24_990_000 },
60
+ '10m': { band: '10m', minFrequency: 28_000_000, maxFrequency: 29_700_000 },
61
+ '6m': { band: '6m', minFrequency: 50_000_000, maxFrequency: 54_000_000 },
62
+ '2m': { band: '2m', minFrequency: 144_000_000, maxFrequency: 148_000_000 },
63
+ '70cm': { band: '70cm', minFrequency: 420_000_000, maxFrequency: 450_000_000 },
64
+ };
65
+ function getFrequencyCondition(grant) {
66
+ if (grant.permission !== Permission.RADIO_SET_FREQUENCY)
67
+ return null;
68
+ const frequency = grant.conditions?.frequency;
69
+ if (!frequency || typeof frequency !== 'object' || Array.isArray(frequency))
70
+ return null;
71
+ return frequency;
72
+ }
73
+ function normalizeFrequency(value) {
74
+ return typeof value === 'number' && Number.isFinite(value) && value > 0
75
+ ? Math.round(value)
76
+ : null;
77
+ }
78
+ function requireFrequency(value, label) {
79
+ const frequency = normalizeFrequency(value);
80
+ if (frequency === null) {
81
+ throw new Error(`${label} must be a finite positive frequency in Hz`);
82
+ }
83
+ return frequency;
84
+ }
85
+ export function getPresetFrequenciesFromFrequencyGrants(grants) {
86
+ const result = [];
87
+ const seen = new Set();
88
+ for (const grant of grants ?? []) {
89
+ const condition = getFrequencyCondition(grant);
90
+ const values = condition?.$in;
91
+ if (!Array.isArray(values))
92
+ continue;
93
+ for (const value of values) {
94
+ const frequency = normalizeFrequency(value);
95
+ if (frequency !== null && !seen.has(frequency)) {
96
+ seen.add(frequency);
97
+ result.push(frequency);
98
+ }
99
+ }
100
+ }
101
+ return result;
102
+ }
103
+ export function getRangesFromFrequencyGrants(grants) {
104
+ const result = [];
105
+ for (const grant of grants ?? []) {
106
+ const condition = getFrequencyCondition(grant);
107
+ const minFrequency = normalizeFrequency(condition?.$gte);
108
+ const maxFrequency = normalizeFrequency(condition?.$lte);
109
+ if (minFrequency === null || maxFrequency === null || minFrequency > maxFrequency)
110
+ continue;
111
+ result.push({
112
+ minFrequency,
113
+ maxFrequency,
114
+ band: inferFrequencyPermissionBand(minFrequency, maxFrequency),
115
+ });
116
+ }
117
+ return result;
118
+ }
119
+ export function inferFrequencyPermissionBand(minFrequency, maxFrequency) {
120
+ const entry = Object.entries(FREQUENCY_PERMISSION_BAND_RANGES)
121
+ .find(([, range]) => range.minFrequency === minFrequency && range.maxFrequency === maxFrequency);
122
+ return entry?.[0];
123
+ }
124
+ export function buildRadioFrequencyPermissionGrants(presetFrequencies, ranges) {
125
+ const grants = [];
126
+ const normalizedPresetFrequencies = [...new Set(presetFrequencies.map((value, index) => requireFrequency(value, `presetFrequencies[${index}]`)))];
127
+ if (normalizedPresetFrequencies.length > 0) {
128
+ grants.push({
129
+ permission: Permission.RADIO_SET_FREQUENCY,
130
+ conditions: {
131
+ frequency: { $in: normalizedPresetFrequencies },
132
+ },
133
+ });
134
+ }
135
+ for (const [index, range] of ranges.entries()) {
136
+ const minFrequency = requireFrequency(range.minFrequency, `ranges[${index}].minFrequency`);
137
+ const maxFrequency = requireFrequency(range.maxFrequency, `ranges[${index}].maxFrequency`);
138
+ if (minFrequency > maxFrequency) {
139
+ throw new Error(`ranges[${index}] minFrequency must be less than or equal to maxFrequency`);
140
+ }
141
+ grants.push({
142
+ permission: Permission.RADIO_SET_FREQUENCY,
143
+ conditions: {
144
+ frequency: {
145
+ $gte: minFrequency,
146
+ $lte: maxFrequency,
147
+ },
148
+ },
149
+ });
150
+ }
151
+ return grants.length > 0
152
+ ? grants
153
+ : [{ permission: Permission.RADIO_SET_FREQUENCY }];
154
+ }
50
155
  // ===== Ability rules builder =====
51
156
  /**
52
157
  * Build CASL-compatible rules from role + operatorIds + permission grants.
@@ -1 +1 @@
1
- {"version":3,"file":"ability.js","sourceRoot":"","sources":["../../src/schema/ability.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ability.js","sourceRoot":"","sources":["../../src/schema/ability.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,7 @@ export type PluginInstanceScope = z.infer<typeof PluginInstanceScopeSchema>;
29
29
  * Permissions let the host gate sensitive capabilities behind manifest-level
30
30
  * intent. Plugins should request the smallest possible set.
31
31
  */
32
- export declare const PluginPermissionSchema: z.ZodEnum<["network", "radio:read", "radio:control", "radio:power", "settings:ft8", "settings:decode-windows", "settings:realtime", "settings:frequency-presets", "settings:station", "settings:psk-reporter", "settings:ntp"]>;
32
+ export declare const PluginPermissionSchema: z.ZodEnum<["network", "host:hamlib", "radio:read", "radio:control", "radio:power", "settings:ft8", "settings:decode-windows", "settings:realtime", "settings:frequency-presets", "settings:station", "settings:psk-reporter", "settings:ntp"]>;
33
33
  /**
34
34
  * Explicit permission declarations requested by a plugin.
35
35
  */
@@ -746,7 +746,7 @@ export declare const PluginManifestSchema: z.ZodObject<{
746
746
  type: z.ZodEnum<["strategy", "utility"]>;
747
747
  instanceScope: z.ZodDefault<z.ZodOptional<z.ZodEnum<["operator", "global"]>>>;
748
748
  description: z.ZodOptional<z.ZodString>;
749
- permissions: z.ZodOptional<z.ZodArray<z.ZodEnum<["network", "radio:read", "radio:control", "radio:power", "settings:ft8", "settings:decode-windows", "settings:realtime", "settings:frequency-presets", "settings:station", "settings:psk-reporter", "settings:ntp"]>, "many">>;
749
+ permissions: z.ZodOptional<z.ZodArray<z.ZodEnum<["network", "host:hamlib", "radio:read", "radio:control", "radio:power", "settings:ft8", "settings:decode-windows", "settings:realtime", "settings:frequency-presets", "settings:station", "settings:psk-reporter", "settings:ntp"]>, "many">>;
750
750
  settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
751
751
  type: z.ZodEnum<["boolean", "number", "string", "string[]", "object[]", "keyedStringArrays", "info"]>;
752
752
  default: z.ZodUnknown;
@@ -1053,7 +1053,7 @@ export declare const PluginManifestSchema: z.ZodObject<{
1053
1053
  icon?: string | undefined;
1054
1054
  }[];
1055
1055
  } | undefined;
1056
- permissions?: ("network" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
1056
+ permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
1057
1057
  settings?: Record<string, {
1058
1058
  type: "string" | "number" | "boolean" | "string[]" | "object[]" | "keyedStringArrays" | "info";
1059
1059
  label: string;
@@ -1126,7 +1126,7 @@ export declare const PluginManifestSchema: z.ZodObject<{
1126
1126
  }[] | undefined;
1127
1127
  } | undefined;
1128
1128
  instanceScope?: "operator" | "global" | undefined;
1129
- permissions?: ("network" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
1129
+ permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
1130
1130
  settings?: Record<string, {
1131
1131
  type: "string" | "number" | "boolean" | "string[]" | "object[]" | "keyedStringArrays" | "info";
1132
1132
  label: string;
@@ -1440,7 +1440,7 @@ export declare const PluginStatusSchema: z.ZodObject<{
1440
1440
  openMode?: "popover" | "modal" | undefined;
1441
1441
  uiSize?: "sm" | "md" | "lg" | undefined;
1442
1442
  }>, "many">>;
1443
- permissions: z.ZodOptional<z.ZodArray<z.ZodEnum<["network", "radio:read", "radio:control", "radio:power", "settings:ft8", "settings:decode-windows", "settings:realtime", "settings:frequency-presets", "settings:station", "settings:psk-reporter", "settings:ntp"]>, "many">>;
1443
+ permissions: z.ZodOptional<z.ZodArray<z.ZodEnum<["network", "host:hamlib", "radio:read", "radio:control", "radio:power", "settings:ft8", "settings:decode-windows", "settings:realtime", "settings:frequency-presets", "settings:station", "settings:psk-reporter", "settings:ntp"]>, "many">>;
1444
1444
  capabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<["auto_call_candidate", "auto_call_execution"]>, "many">>;
1445
1445
  ui: z.ZodOptional<z.ZodObject<{
1446
1446
  /** Static file directory relative to the plugin root (default: 'ui'). */
@@ -1560,7 +1560,7 @@ export declare const PluginStatusSchema: z.ZodObject<{
1560
1560
  icon?: string | undefined;
1561
1561
  }[];
1562
1562
  } | undefined;
1563
- permissions?: ("network" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
1563
+ permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
1564
1564
  settings?: Record<string, {
1565
1565
  type: "string" | "number" | "boolean" | "string[]" | "object[]" | "keyedStringArrays" | "info";
1566
1566
  label: string;
@@ -1645,7 +1645,7 @@ export declare const PluginStatusSchema: z.ZodObject<{
1645
1645
  }[] | undefined;
1646
1646
  } | undefined;
1647
1647
  instanceScope?: "operator" | "global" | undefined;
1648
- permissions?: ("network" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
1648
+ permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
1649
1649
  settings?: Record<string, {
1650
1650
  type: "string" | "number" | "boolean" | "string[]" | "object[]" | "keyedStringArrays" | "info";
1651
1651
  label: string;
@@ -1991,7 +1991,7 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
1991
1991
  openMode?: "popover" | "modal" | undefined;
1992
1992
  uiSize?: "sm" | "md" | "lg" | undefined;
1993
1993
  }>, "many">>;
1994
- permissions: z.ZodOptional<z.ZodArray<z.ZodEnum<["network", "radio:read", "radio:control", "radio:power", "settings:ft8", "settings:decode-windows", "settings:realtime", "settings:frequency-presets", "settings:station", "settings:psk-reporter", "settings:ntp"]>, "many">>;
1994
+ permissions: z.ZodOptional<z.ZodArray<z.ZodEnum<["network", "host:hamlib", "radio:read", "radio:control", "radio:power", "settings:ft8", "settings:decode-windows", "settings:realtime", "settings:frequency-presets", "settings:station", "settings:psk-reporter", "settings:ntp"]>, "many">>;
1995
1995
  capabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<["auto_call_candidate", "auto_call_execution"]>, "many">>;
1996
1996
  ui: z.ZodOptional<z.ZodObject<{
1997
1997
  /** Static file directory relative to the plugin root (default: 'ui'). */
@@ -2111,7 +2111,7 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
2111
2111
  icon?: string | undefined;
2112
2112
  }[];
2113
2113
  } | undefined;
2114
- permissions?: ("network" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
2114
+ permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
2115
2115
  settings?: Record<string, {
2116
2116
  type: "string" | "number" | "boolean" | "string[]" | "object[]" | "keyedStringArrays" | "info";
2117
2117
  label: string;
@@ -2196,7 +2196,7 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
2196
2196
  }[] | undefined;
2197
2197
  } | undefined;
2198
2198
  instanceScope?: "operator" | "global" | undefined;
2199
- permissions?: ("network" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
2199
+ permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
2200
2200
  settings?: Record<string, {
2201
2201
  type: "string" | "number" | "boolean" | "string[]" | "object[]" | "keyedStringArrays" | "info";
2202
2202
  label: string;
@@ -2454,7 +2454,7 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
2454
2454
  icon?: string | undefined;
2455
2455
  }[];
2456
2456
  } | undefined;
2457
- permissions?: ("network" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
2457
+ permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
2458
2458
  settings?: Record<string, {
2459
2459
  type: "string" | "number" | "boolean" | "string[]" | "object[]" | "keyedStringArrays" | "info";
2460
2460
  label: string;
@@ -2577,7 +2577,7 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
2577
2577
  }[] | undefined;
2578
2578
  } | undefined;
2579
2579
  instanceScope?: "operator" | "global" | undefined;
2580
- permissions?: ("network" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
2580
+ permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
2581
2581
  settings?: Record<string, {
2582
2582
  type: "string" | "number" | "boolean" | "string[]" | "object[]" | "keyedStringArrays" | "info";
2583
2583
  label: string;
@@ -2730,7 +2730,7 @@ export declare const PluginMarketCatalogEntrySchema: z.ZodObject<{
2730
2730
  homepage: z.ZodOptional<z.ZodString>;
2731
2731
  categories: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
2732
2732
  keywords: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
2733
- permissions: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodEnum<["network", "radio:read", "radio:control", "radio:power", "settings:ft8", "settings:decode-windows", "settings:realtime", "settings:frequency-presets", "settings:station", "settings:psk-reporter", "settings:ntp"]>, "many">>>;
2733
+ permissions: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodEnum<["network", "host:hamlib", "radio:read", "radio:control", "radio:power", "settings:ft8", "settings:decode-windows", "settings:realtime", "settings:frequency-presets", "settings:station", "settings:psk-reporter", "settings:ntp"]>, "many">>>;
2734
2734
  screenshots: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
2735
2735
  src: z.ZodString;
2736
2736
  alt: z.ZodOptional<z.ZodString>;
@@ -2749,7 +2749,7 @@ export declare const PluginMarketCatalogEntrySchema: z.ZodObject<{
2749
2749
  name: string;
2750
2750
  description: string;
2751
2751
  title: string;
2752
- permissions: ("network" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[];
2752
+ permissions: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[];
2753
2753
  artifactUrl: string;
2754
2754
  sha256: string;
2755
2755
  latestVersion: string;
@@ -2777,7 +2777,7 @@ export declare const PluginMarketCatalogEntrySchema: z.ZodObject<{
2777
2777
  minHostVersion: string;
2778
2778
  size: number;
2779
2779
  publishedAt: string;
2780
- permissions?: ("network" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
2780
+ permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
2781
2781
  locales?: Record<string, Record<string, string>> | undefined;
2782
2782
  author?: string | undefined;
2783
2783
  license?: string | undefined;
@@ -2808,7 +2808,7 @@ export declare const PluginMarketCatalogSchema: z.ZodObject<{
2808
2808
  homepage: z.ZodOptional<z.ZodString>;
2809
2809
  categories: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
2810
2810
  keywords: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
2811
- permissions: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodEnum<["network", "radio:read", "radio:control", "radio:power", "settings:ft8", "settings:decode-windows", "settings:realtime", "settings:frequency-presets", "settings:station", "settings:psk-reporter", "settings:ntp"]>, "many">>>;
2811
+ permissions: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodEnum<["network", "host:hamlib", "radio:read", "radio:control", "radio:power", "settings:ft8", "settings:decode-windows", "settings:realtime", "settings:frequency-presets", "settings:station", "settings:psk-reporter", "settings:ntp"]>, "many">>>;
2812
2812
  screenshots: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
2813
2813
  src: z.ZodString;
2814
2814
  alt: z.ZodOptional<z.ZodString>;
@@ -2827,7 +2827,7 @@ export declare const PluginMarketCatalogSchema: z.ZodObject<{
2827
2827
  name: string;
2828
2828
  description: string;
2829
2829
  title: string;
2830
- permissions: ("network" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[];
2830
+ permissions: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[];
2831
2831
  artifactUrl: string;
2832
2832
  sha256: string;
2833
2833
  latestVersion: string;
@@ -2855,7 +2855,7 @@ export declare const PluginMarketCatalogSchema: z.ZodObject<{
2855
2855
  minHostVersion: string;
2856
2856
  size: number;
2857
2857
  publishedAt: string;
2858
- permissions?: ("network" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
2858
+ permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
2859
2859
  locales?: Record<string, Record<string, string>> | undefined;
2860
2860
  author?: string | undefined;
2861
2861
  license?: string | undefined;
@@ -2874,7 +2874,7 @@ export declare const PluginMarketCatalogSchema: z.ZodObject<{
2874
2874
  name: string;
2875
2875
  description: string;
2876
2876
  title: string;
2877
- permissions: ("network" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[];
2877
+ permissions: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[];
2878
2878
  artifactUrl: string;
2879
2879
  sha256: string;
2880
2880
  latestVersion: string;
@@ -2907,7 +2907,7 @@ export declare const PluginMarketCatalogSchema: z.ZodObject<{
2907
2907
  minHostVersion: string;
2908
2908
  size: number;
2909
2909
  publishedAt: string;
2910
- permissions?: ("network" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
2910
+ permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
2911
2911
  locales?: Record<string, Record<string, string>> | undefined;
2912
2912
  author?: string | undefined;
2913
2913
  license?: string | undefined;
@@ -2942,7 +2942,7 @@ export declare const PluginMarketCatalogResponseSchema: z.ZodObject<{
2942
2942
  homepage: z.ZodOptional<z.ZodString>;
2943
2943
  categories: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
2944
2944
  keywords: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
2945
- permissions: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodEnum<["network", "radio:read", "radio:control", "radio:power", "settings:ft8", "settings:decode-windows", "settings:realtime", "settings:frequency-presets", "settings:station", "settings:psk-reporter", "settings:ntp"]>, "many">>>;
2945
+ permissions: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodEnum<["network", "host:hamlib", "radio:read", "radio:control", "radio:power", "settings:ft8", "settings:decode-windows", "settings:realtime", "settings:frequency-presets", "settings:station", "settings:psk-reporter", "settings:ntp"]>, "many">>>;
2946
2946
  screenshots: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
2947
2947
  src: z.ZodString;
2948
2948
  alt: z.ZodOptional<z.ZodString>;
@@ -2961,7 +2961,7 @@ export declare const PluginMarketCatalogResponseSchema: z.ZodObject<{
2961
2961
  name: string;
2962
2962
  description: string;
2963
2963
  title: string;
2964
- permissions: ("network" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[];
2964
+ permissions: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[];
2965
2965
  artifactUrl: string;
2966
2966
  sha256: string;
2967
2967
  latestVersion: string;
@@ -2989,7 +2989,7 @@ export declare const PluginMarketCatalogResponseSchema: z.ZodObject<{
2989
2989
  minHostVersion: string;
2990
2990
  size: number;
2991
2991
  publishedAt: string;
2992
- permissions?: ("network" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
2992
+ permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
2993
2993
  locales?: Record<string, Record<string, string>> | undefined;
2994
2994
  author?: string | undefined;
2995
2995
  license?: string | undefined;
@@ -3008,7 +3008,7 @@ export declare const PluginMarketCatalogResponseSchema: z.ZodObject<{
3008
3008
  name: string;
3009
3009
  description: string;
3010
3010
  title: string;
3011
- permissions: ("network" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[];
3011
+ permissions: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[];
3012
3012
  artifactUrl: string;
3013
3013
  sha256: string;
3014
3014
  latestVersion: string;
@@ -3041,7 +3041,7 @@ export declare const PluginMarketCatalogResponseSchema: z.ZodObject<{
3041
3041
  minHostVersion: string;
3042
3042
  size: number;
3043
3043
  publishedAt: string;
3044
- permissions?: ("network" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
3044
+ permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
3045
3045
  locales?: Record<string, Record<string, string>> | undefined;
3046
3046
  author?: string | undefined;
3047
3047
  license?: string | undefined;
@@ -3065,7 +3065,7 @@ export declare const PluginMarketCatalogResponseSchema: z.ZodObject<{
3065
3065
  name: string;
3066
3066
  description: string;
3067
3067
  title: string;
3068
- permissions: ("network" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[];
3068
+ permissions: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[];
3069
3069
  artifactUrl: string;
3070
3070
  sha256: string;
3071
3071
  latestVersion: string;
@@ -3101,7 +3101,7 @@ export declare const PluginMarketCatalogResponseSchema: z.ZodObject<{
3101
3101
  minHostVersion: string;
3102
3102
  size: number;
3103
3103
  publishedAt: string;
3104
- permissions?: ("network" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
3104
+ permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
3105
3105
  locales?: Record<string, Record<string, string>> | undefined;
3106
3106
  author?: string | undefined;
3107
3107
  license?: string | undefined;
@@ -3134,7 +3134,7 @@ export declare const PluginMarketCatalogEntryResponseSchema: z.ZodObject<{
3134
3134
  homepage: z.ZodOptional<z.ZodString>;
3135
3135
  categories: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
3136
3136
  keywords: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
3137
- permissions: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodEnum<["network", "radio:read", "radio:control", "radio:power", "settings:ft8", "settings:decode-windows", "settings:realtime", "settings:frequency-presets", "settings:station", "settings:psk-reporter", "settings:ntp"]>, "many">>>;
3137
+ permissions: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodEnum<["network", "host:hamlib", "radio:read", "radio:control", "radio:power", "settings:ft8", "settings:decode-windows", "settings:realtime", "settings:frequency-presets", "settings:station", "settings:psk-reporter", "settings:ntp"]>, "many">>>;
3138
3138
  screenshots: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
3139
3139
  src: z.ZodString;
3140
3140
  alt: z.ZodOptional<z.ZodString>;
@@ -3153,7 +3153,7 @@ export declare const PluginMarketCatalogEntryResponseSchema: z.ZodObject<{
3153
3153
  name: string;
3154
3154
  description: string;
3155
3155
  title: string;
3156
- permissions: ("network" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[];
3156
+ permissions: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[];
3157
3157
  artifactUrl: string;
3158
3158
  sha256: string;
3159
3159
  latestVersion: string;
@@ -3181,7 +3181,7 @@ export declare const PluginMarketCatalogEntryResponseSchema: z.ZodObject<{
3181
3181
  minHostVersion: string;
3182
3182
  size: number;
3183
3183
  publishedAt: string;
3184
- permissions?: ("network" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
3184
+ permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
3185
3185
  locales?: Record<string, Record<string, string>> | undefined;
3186
3186
  author?: string | undefined;
3187
3187
  license?: string | undefined;
@@ -3203,7 +3203,7 @@ export declare const PluginMarketCatalogEntryResponseSchema: z.ZodObject<{
3203
3203
  name: string;
3204
3204
  description: string;
3205
3205
  title: string;
3206
- permissions: ("network" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[];
3206
+ permissions: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[];
3207
3207
  artifactUrl: string;
3208
3208
  sha256: string;
3209
3209
  latestVersion: string;
@@ -3235,7 +3235,7 @@ export declare const PluginMarketCatalogEntryResponseSchema: z.ZodObject<{
3235
3235
  minHostVersion: string;
3236
3236
  size: number;
3237
3237
  publishedAt: string;
3238
- permissions?: ("network" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
3238
+ permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
3239
3239
  locales?: Record<string, Record<string, string>> | undefined;
3240
3240
  author?: string | undefined;
3241
3241
  license?: string | undefined;