@todesktop/shared 7.191.0 → 7.191.1

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.
Files changed (59) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/lib/{base.d.ts → cjs/base.d.ts} +1 -0
  3. package/lib/cjs/base.js +22 -0
  4. package/lib/cjs/desktopify.js +79 -0
  5. package/lib/cjs/desktopify2.js +80 -0
  6. package/lib/cjs/getSiteInfo.js +2 -0
  7. package/lib/cjs/hsm.js +42 -0
  8. package/lib/cjs/index.d.ts +12 -0
  9. package/lib/cjs/index.js +33 -0
  10. package/lib/cjs/invitePermissionLabels.js +29 -0
  11. package/lib/cjs/personalAccessTokens.js +2 -0
  12. package/lib/cjs/plans.js +632 -0
  13. package/lib/cjs/plugin.js +2 -0
  14. package/lib/cjs/toDesktop.js +2 -0
  15. package/lib/cjs/translation.js +14 -0
  16. package/lib/cjs/validations.js +178 -0
  17. package/lib/esm/base.d.ts +326 -0
  18. package/lib/esm/desktopify.d.ts +339 -0
  19. package/lib/esm/desktopify2.d.ts +506 -0
  20. package/lib/esm/getSiteInfo.d.ts +24 -0
  21. package/lib/esm/hsm.d.ts +30 -0
  22. package/lib/{index.d.ts → esm/index.d.ts} +1 -1
  23. package/lib/{index.js → esm/index.js} +2 -1
  24. package/lib/esm/invitePermissionLabels.d.ts +13 -0
  25. package/lib/esm/personalAccessTokens.d.ts +24 -0
  26. package/lib/esm/plans.d.ts +130 -0
  27. package/lib/esm/plugin.d.ts +55 -0
  28. package/lib/esm/toDesktop.d.ts +191 -0
  29. package/lib/esm/translation.d.ts +2 -0
  30. package/lib/esm/validations.d.ts +102 -0
  31. package/package.json +20 -5
  32. package/src/base.ts +1 -0
  33. package/src/index.cjs.ts +19 -0
  34. package/src/index.ts +2 -1
  35. package/tsconfig.esm.json +15 -0
  36. package/tsconfig.json +3 -4
  37. /package/lib/{desktopify.d.ts → cjs/desktopify.d.ts} +0 -0
  38. /package/lib/{desktopify2.d.ts → cjs/desktopify2.d.ts} +0 -0
  39. /package/lib/{getSiteInfo.d.ts → cjs/getSiteInfo.d.ts} +0 -0
  40. /package/lib/{hsm.d.ts → cjs/hsm.d.ts} +0 -0
  41. /package/lib/{invitePermissionLabels.d.ts → cjs/invitePermissionLabels.d.ts} +0 -0
  42. /package/lib/{personalAccessTokens.d.ts → cjs/personalAccessTokens.d.ts} +0 -0
  43. /package/lib/{plans.d.ts → cjs/plans.d.ts} +0 -0
  44. /package/lib/{plugin.d.ts → cjs/plugin.d.ts} +0 -0
  45. /package/lib/{toDesktop.d.ts → cjs/toDesktop.d.ts} +0 -0
  46. /package/lib/{translation.d.ts → cjs/translation.d.ts} +0 -0
  47. /package/lib/{validations.d.ts → cjs/validations.d.ts} +0 -0
  48. /package/lib/{base.js → esm/base.js} +0 -0
  49. /package/lib/{desktopify.js → esm/desktopify.js} +0 -0
  50. /package/lib/{desktopify2.js → esm/desktopify2.js} +0 -0
  51. /package/lib/{getSiteInfo.js → esm/getSiteInfo.js} +0 -0
  52. /package/lib/{hsm.js → esm/hsm.js} +0 -0
  53. /package/lib/{invitePermissionLabels.js → esm/invitePermissionLabels.js} +0 -0
  54. /package/lib/{personalAccessTokens.js → esm/personalAccessTokens.js} +0 -0
  55. /package/lib/{plans.js → esm/plans.js} +0 -0
  56. /package/lib/{plugin.js → esm/plugin.js} +0 -0
  57. /package/lib/{toDesktop.js → esm/toDesktop.js} +0 -0
  58. /package/lib/{translation.js → esm/translation.js} +0 -0
  59. /package/lib/{validations.js → esm/validations.js} +0 -0
@@ -0,0 +1,178 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.shouldMinimizeToTrayIsActive = exports.appConfigValidation = exports.appProtocolValidation = exports.internalAppRegexValidation = exports.widthValidation = exports.heightValidation = exports.urlValidationForm = exports.urlValidation = exports.iconValidation = exports.forceVersionValidation = exports.appTitleValidation = void 0;
40
+ const is_regex_1 = __importDefault(require("is-regex"));
41
+ const semver_1 = __importDefault(require("semver"));
42
+ const yup = __importStar(require("yup"));
43
+ exports.appTitleValidation = yup
44
+ .string()
45
+ .label('App title')
46
+ .max(26)
47
+ .matches(/^[\w\-\s]+$/, 'App title may contain letters, numbers, spaces and dashes only')
48
+ .matches(/^[^\s]+(\s+[^\s]+)*$/, 'App title may not begin or end with space')
49
+ .required();
50
+ function isNumeric(str) {
51
+ if (typeof str !== 'string')
52
+ return false;
53
+ return !Number.isNaN(Number(str)) && !Number.isNaN(parseFloat(str));
54
+ }
55
+ function isNumericSemver(value) {
56
+ // check if valid semver
57
+ if (!semver_1.default.valid(value))
58
+ return false;
59
+ // ensure that all values are numbers
60
+ if (!value.split('.').every((num) => isNumeric(num)))
61
+ return false;
62
+ return true;
63
+ }
64
+ exports.forceVersionValidation = yup
65
+ .string()
66
+ .label('App version')
67
+ .required()
68
+ // can have multiple keys included - https://www.npmjs.com/package/yup#schemawhenkeys-string--string-builder-object--values-any-schema--schema-schema
69
+ .when('$currentVersion', ([currentVersion], schema) => schema.test('semantic-version', 'App version must follow a numeric SemVer versioning scheme (e.g. 1.0.0) and be greater than prior version.', (forceVersion) => {
70
+ return (isNumericSemver(forceVersion) &&
71
+ semver_1.default.gt(forceVersion, currentVersion));
72
+ }));
73
+ exports.iconValidation = yup
74
+ .string()
75
+ .label('Icon')
76
+ .url()
77
+ .required('You must upload an icon for your app');
78
+ exports.urlValidation = yup
79
+ .string()
80
+ .matches(/^(?:([a-z0-9+.-]+):\/\/)(?:\S+(?::\S*)?@)?(?:(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*\.?)(?::\d{2,5})?(?:[/?#]\S*)?$/, {
81
+ excludeEmptyString: true,
82
+ message: "Invalid URL. Don't forget to include the protocol (e.g.. https://).",
83
+ })
84
+ .label('Website URL')
85
+ .required();
86
+ exports.urlValidationForm = yup.object().shape({
87
+ url: exports.urlValidation,
88
+ });
89
+ exports.heightValidation = yup
90
+ .number()
91
+ .label('Height')
92
+ .moreThan(1)
93
+ .lessThan(2000)
94
+ .required();
95
+ exports.widthValidation = yup
96
+ .number()
97
+ .label('Width')
98
+ .moreThan(1)
99
+ .lessThan(3000)
100
+ .required();
101
+ exports.internalAppRegexValidation = yup
102
+ .string()
103
+ .required()
104
+ .label('Internal URLs')
105
+ .test('escape-forward-slash', "a forward-slash ('/') must be escaped with a back-slash ('\\')", (value) => {
106
+ if (value.includes('/')) {
107
+ const forwardSlashCount = value
108
+ .split('')
109
+ .map((char) => char === '/')
110
+ .filter((isTrue) => isTrue).length;
111
+ const backSlashEscapeCount = ((value || '').match(/(?=\\\/)/g) || [])
112
+ .length;
113
+ return forwardSlashCount === backSlashEscapeCount;
114
+ }
115
+ return true;
116
+ })
117
+ .test('is-regex',
118
+ // eslint-disable-next-line no-template-curly-in-string
119
+ '${path} must be valid regular expression', (value) => (0, is_regex_1.default)(RegExp(value)));
120
+ exports.appProtocolValidation = yup
121
+ .string()
122
+ .required()
123
+ .label('App Protocol')
124
+ .test('ends-with-protocol', 'Protocols must end with `://`', (value) => value.endsWith('://'))
125
+ .test('is-lowercase', 'Protocols must be lowercase', (value) => value === value.toLowerCase())
126
+ .matches(/^[a-zA-Z-.]+:\/\/$/, 'Protocols contain letters, dots (.) and dashes (-) only')
127
+ .min(5);
128
+ exports.appConfigValidation = yup.object({
129
+ customUserAgent: yup.string().required(),
130
+ disableDevTools: yup.boolean().required(),
131
+ iconUrl: exports.iconValidation,
132
+ id: yup.string().required(),
133
+ internalURLs: yup.string().required(),
134
+ isFrameBlocked: yup.boolean().required(),
135
+ meta: yup
136
+ .object({
137
+ appIterations: yup.number().required(),
138
+ hasAppChanged: yup.boolean().required(),
139
+ publishedVersions: yup.object({
140
+ desktopify: yup.string().notRequired(),
141
+ electron: yup.string().notRequired(),
142
+ version: yup.string().notRequired(),
143
+ }),
144
+ schemaVersion: yup.number().required(),
145
+ })
146
+ .required(),
147
+ name: exports.appTitleValidation,
148
+ secret: yup.string().required(),
149
+ singleInstance: yup.boolean().required(),
150
+ url: exports.urlValidation,
151
+ windowOptions: yup
152
+ .object({
153
+ hasMaxHeight: yup.boolean().required(),
154
+ hasMaxWidth: yup.boolean().required(),
155
+ hasMinHeight: yup.boolean().required(),
156
+ hasMinWidth: yup.boolean().required(),
157
+ height: yup.number().required(),
158
+ isFullscreenable: yup.boolean().required(),
159
+ isMaximizable: yup.boolean().required(),
160
+ isMinimizable: yup.boolean().required(),
161
+ isResizable: yup.boolean().required(),
162
+ maxHeight: yup.number().required(),
163
+ maxWidth: yup.number().required(),
164
+ minHeight: yup.number().required(),
165
+ minWidth: yup.number().required(),
166
+ startInFullscreenMode: yup.boolean().required(),
167
+ width: yup.number().required(),
168
+ alwaysOnTop: yup.boolean().required(),
169
+ autoHideMenuBar: yup.boolean().required(),
170
+ transparentInsetTitlebar: yup.boolean().required(),
171
+ transparentTitlebar: yup.boolean().required(),
172
+ })
173
+ .required(),
174
+ });
175
+ const shouldMinimizeToTrayIsActive = (desktopApp) => {
176
+ return desktopApp.trays.some((t) => t.leftClick.role === 'toggleMenu' || t.rightClick.role === 'toggleMenu');
177
+ };
178
+ exports.shouldMinimizeToTrayIsActive = shouldMinimizeToTrayIsActive;
@@ -0,0 +1,326 @@
1
+ import { CIRunner, ExtraFileReference, FilePath, IAppBuilderLib, PlatformName, Release } from './desktopify';
2
+ import { MacTarget, WindowsTarget } from './hsm';
3
+ export interface Schemable {
4
+ schemaVersion?: number;
5
+ }
6
+ type CompositeIdFileLocationKey = string;
7
+ export type StaticAnalysisItem = {
8
+ hidden: boolean;
9
+ };
10
+ export type ProgressTypes = 'done' | 'error' | 'progress' | 'queued';
11
+ export interface IChecklistItem {
12
+ [id: string]: boolean;
13
+ }
14
+ export interface IDownloadButtonOptions {
15
+ bgColor: string;
16
+ borderRadius: number;
17
+ btnText: string;
18
+ buttonSize: 'large' | 'medium' | 'small';
19
+ fgColor: string;
20
+ fontFamily: 'sans-serif' | 'serif';
21
+ showAppIcon: {
22
+ alignment: 'left' | 'right';
23
+ enabled: boolean;
24
+ };
25
+ showDownloadIcon: {
26
+ alignment: 'left' | 'right';
27
+ enabled: boolean;
28
+ };
29
+ }
30
+ export declare enum WindowsEVOnboardingSteps {
31
+ 'hasBeenVerified' = "hasBeenVerified",
32
+ 'hasChosenProvider' = "hasChosenProvider",
33
+ 'hasGeneratedCert' = "hasGeneratedCert",
34
+ 'hasOrderedCert' = "hasOrderedCert",
35
+ 'hasUploadedCert' = "hasUploadedCert"
36
+ }
37
+ export declare enum WindowsEVOnboardingProvider {
38
+ 'globalsign' = "globalsign",
39
+ 'other' = "other"
40
+ }
41
+ export interface IAppBuildProgress {
42
+ isBuilding: boolean;
43
+ message: string;
44
+ percent: number;
45
+ shouldSkip: boolean;
46
+ type: ProgressTypes;
47
+ }
48
+ export interface IAppMeta {
49
+ appIterations?: number;
50
+ autoSecurityUpdatesEnabled?: boolean;
51
+ ciRunner?: CIRunner;
52
+ completedChecklistItems?: IChecklistItem;
53
+ currentBuildProgress?: {
54
+ channel?: string;
55
+ id?: string;
56
+ linux?: IAppBuildProgress;
57
+ mac?: IAppBuildProgress;
58
+ projectConfig?: ToDesktopJson;
59
+ releaseId?: Release['id'];
60
+ shouldCodeSign?: boolean;
61
+ shouldRelease?: boolean;
62
+ shouldSendCompletionEmail?: boolean;
63
+ sourceArchiveDetails?: {
64
+ bucket: string;
65
+ hash?: string;
66
+ key: string;
67
+ url: string;
68
+ };
69
+ windows?: IAppBuildProgress;
70
+ };
71
+ downloadButtons?: {
72
+ linux: IDownloadButtonOptions;
73
+ mac: IDownloadButtonOptions;
74
+ universal: IDownloadButtonOptions;
75
+ windows: IDownloadButtonOptions;
76
+ };
77
+ firstSuccessfulBuildEndedAt?: string;
78
+ forceVersionNumber?: string;
79
+ isAppChanged?: boolean;
80
+ isFrameBlocked?: boolean;
81
+ isHttps?: boolean;
82
+ latestReleaseBuildId?: string;
83
+ previousInstallLockSha?: string;
84
+ publishedVersions: {
85
+ desktopify?: string;
86
+ electron?: string;
87
+ version?: string;
88
+ };
89
+ releaseRedirections?: ReleaseRedirectionRule[];
90
+ staticAnalysis?: Record<CompositeIdFileLocationKey, StaticAnalysisItem>;
91
+ webhookHMACKey?: string;
92
+ webhooks?: {
93
+ release?: string;
94
+ };
95
+ windowsEVOnboarding?: {
96
+ [WindowsEVOnboardingSteps.hasBeenVerified]: boolean;
97
+ [WindowsEVOnboardingSteps.hasChosenProvider]: boolean;
98
+ [WindowsEVOnboardingSteps.hasGeneratedCert]: boolean;
99
+ [WindowsEVOnboardingSteps.hasOrderedCert]: boolean;
100
+ [WindowsEVOnboardingSteps.hasUploadedCert]: boolean;
101
+ provider: WindowsEVOnboardingProvider;
102
+ tempHSMCertName: string;
103
+ };
104
+ }
105
+ export interface ToDesktopJson {
106
+ appBuilderLibVersion?: string;
107
+ appFiles?: string[];
108
+ appId?: string;
109
+ appPath?: FilePath;
110
+ appProtocolScheme?: string | string[];
111
+ asar?: boolean;
112
+ asarUnpack?: boolean | string[];
113
+ bucket?: string;
114
+ buildVersion?: string;
115
+ bytenode?: {
116
+ enabled?: boolean;
117
+ files?: string[];
118
+ };
119
+ copyright?: string;
120
+ dmg?: {
121
+ artifactName?: string;
122
+ background?: FilePath;
123
+ backgroundColor?: string;
124
+ contents?: NonNullable<IAppBuilderLib['config']['dmg']>['contents'];
125
+ iconSize?: number;
126
+ iconTextSize?: number;
127
+ title?: string;
128
+ window?: NonNullable<IAppBuilderLib['config']['dmg']>['window'];
129
+ };
130
+ electronMirror?: string;
131
+ electronVersion?: string;
132
+ extraContentFiles?: ExtraFileReference[];
133
+ extraResources?: ExtraFileReference[];
134
+ fileAssociations?: IAppBuilderLib['config']['fileAssociations'];
135
+ filesForDistribution?: string[];
136
+ icon: FilePath;
137
+ id: string;
138
+ includeSubNodeModules?: boolean;
139
+ linux?: {
140
+ category?: string;
141
+ icon?: FilePath;
142
+ imageVersion?: string;
143
+ noSandbox?: boolean;
144
+ };
145
+ mac?: {
146
+ additionalBinariesToSign?: FilePath[];
147
+ category?: string;
148
+ dmgBackground?: FilePath;
149
+ entitlements?: FilePath;
150
+ entitlementsInherit?: FilePath;
151
+ extendInfo?: NonNullable<IAppBuilderLib['config']['mac']>['extendInfo'];
152
+ icon?: FilePath;
153
+ provisioningProfile?: FilePath;
154
+ requirements?: FilePath;
155
+ };
156
+ mas?: {
157
+ entitlements?: FilePath;
158
+ entitlementsInherit?: FilePath;
159
+ minimumSystemVersion?: string;
160
+ provisioningProfile?: FilePath;
161
+ type?: 'development' | 'distribution';
162
+ x64ArchFiles?: string;
163
+ };
164
+ nodeVersion?: string;
165
+ npmVersion?: string;
166
+ packageManager?: 'npm' | 'pnpm' | 'yarn';
167
+ pnpmVersion?: string;
168
+ productName?: string;
169
+ rebuildLibrary?: '@electron/rebuild' | 'app-builder';
170
+ schemaVersion: number;
171
+ snap?: IAppBuilderLib['config']['snap'];
172
+ updateUrlBase?: string;
173
+ uploadSizeLimit?: number;
174
+ useCachedDependencies?: boolean;
175
+ windows?: {
176
+ icon?: FilePath;
177
+ nsisCustomBinary?: {
178
+ checksum?: string;
179
+ debugLogging?: boolean;
180
+ url: string;
181
+ version?: string;
182
+ };
183
+ nsisInclude?: FilePath;
184
+ publisherName?: string[];
185
+ };
186
+ yarnVersion?: string;
187
+ }
188
+ export declare enum WindowsHSMCertType {
189
+ azureTrustedSigning = "azureTrustedSigning",
190
+ ev = "ev",
191
+ file = "file"
192
+ }
193
+ export interface CustomWindowsCodeSignFile {
194
+ certType: string;
195
+ hsmCertName: string;
196
+ hsmCertType: WindowsHSMCertType.file;
197
+ }
198
+ export interface CustomWindowsCodeSignEV {
199
+ certType: 'hsm';
200
+ hsmCertName: string;
201
+ hsmCertType: WindowsHSMCertType.ev;
202
+ }
203
+ export interface CustomWindowsCodeSignAzureTrustedSigning {
204
+ azureBaseSettings: {
205
+ $azureClientSecretRef: string;
206
+ clientId: string;
207
+ codeSigningAccountName: string;
208
+ resourceGroupName: string;
209
+ subscriptionId: string;
210
+ tenantId: string;
211
+ };
212
+ azureCredentialsStored: boolean;
213
+ azureSettings?: {
214
+ accountUri: string;
215
+ certificateProfileId: string;
216
+ certificateProfileName: string;
217
+ publisherName: string;
218
+ };
219
+ certType: 'azureTrustedSigning';
220
+ }
221
+ export type CustomMacCodeSign = {
222
+ certName: string;
223
+ certPassword: string;
224
+ certUrl: string;
225
+ type: 'url';
226
+ } | {
227
+ type: 'hsm';
228
+ };
229
+ export type CustomLinuxPGPKey = {
230
+ $key: string;
231
+ $password?: string;
232
+ };
233
+ export type CustomMacNotarization = CustomNotarizationApiKeyAuth | CustomNotarizationPasswordHsmAuth;
234
+ export interface CustomNotarizationApiKeyAuth {
235
+ $appleApiKey: string;
236
+ appleApiIssuer: string;
237
+ appleApiKeyId: string;
238
+ type: 'hsm-api';
239
+ }
240
+ export interface CustomNotarizationPasswordHsmAuth {
241
+ $appSpecificPassword: string;
242
+ appleId: string;
243
+ teamId: string;
244
+ type: 'hsm';
245
+ }
246
+ export type ReleaseRedirectionRule = {
247
+ appId: string;
248
+ ipList: string[];
249
+ rule: 'appByIp';
250
+ } | {
251
+ appId: string;
252
+ rule: 'app';
253
+ } | {
254
+ buildId: string;
255
+ ipList: string[];
256
+ rule: 'buildByIp';
257
+ } | {
258
+ buildId: string;
259
+ platforms: PlatformName[];
260
+ rule: 'buildByPlatform';
261
+ } | {
262
+ feedUrl: string;
263
+ ipList: string[];
264
+ rule: 'appByIp';
265
+ } | {
266
+ feedUrl: string;
267
+ rule: 'app';
268
+ };
269
+ export interface BaseApp extends Schemable {
270
+ appModelId?: string;
271
+ appxConfig?: Partial<IAppBuilderLib['config']['appx']>;
272
+ customDomain?: string;
273
+ customLinuxPgpKey?: CustomLinuxPGPKey;
274
+ customMacCodeSign?: CustomMacCodeSign;
275
+ customNotarization?: CustomMacNotarization;
276
+ customWindowsCodeSign?: CustomWindowsCodeSignAzureTrustedSigning | CustomWindowsCodeSignEV | CustomWindowsCodeSignFile;
277
+ domainVerificationCode?: string;
278
+ id: string;
279
+ macHsmCertNames?: Record<MacTarget, string>;
280
+ macUniversalInstallerConfig?: {
281
+ shouldPinToVersion?: boolean;
282
+ };
283
+ masConfig?: {
284
+ arch?: 'arm64' | 'universal';
285
+ } & Partial<IAppBuilderLib['config']['mas']>;
286
+ meta?: IAppMeta;
287
+ nsisConfig?: Partial<IAppBuilderLib['config']['nsis']>;
288
+ parent?: {
289
+ id: string;
290
+ relationshipToParent: string;
291
+ } | null;
292
+ parentApp?: BaseApp;
293
+ shouldCreate32BitWindowsArtifacts?: boolean;
294
+ shouldCreateAppImages?: boolean;
295
+ shouldCreateAppleIntelArtifacts?: boolean;
296
+ shouldCreateAppleSiliconAssets?: boolean;
297
+ shouldCreateAppXFiles?: boolean;
298
+ shouldCreateArm64LinuxArtifacts?: boolean;
299
+ shouldCreateArm64WindowsArtifacts?: boolean;
300
+ shouldCreateDebianPackages?: boolean;
301
+ shouldCreateDMGs?: boolean;
302
+ shouldCreateMacAppStoreFiles?: boolean;
303
+ shouldCreateMacPKG?: boolean;
304
+ shouldCreateMacUniversalInstaller?: boolean;
305
+ shouldCreateMacZipInstallers?: boolean;
306
+ shouldCreateMSIInstallers?: boolean;
307
+ shouldCreateNSISInstallers?: boolean;
308
+ shouldCreateNSISWebInstaller?: boolean;
309
+ shouldCreateRPMPackages?: boolean;
310
+ shouldCreateSnapFiles?: boolean;
311
+ snapStore?: {
312
+ description?: string;
313
+ login?: string;
314
+ };
315
+ subscription?: Subscription;
316
+ windowsHsmCertNames?: Record<WindowsTarget, string>;
317
+ }
318
+ export type Subscription = {
319
+ itemId: string;
320
+ planId: string;
321
+ priceId?: string;
322
+ productId?: string;
323
+ status: string;
324
+ subscriptionId: string;
325
+ };
326
+ export {};