zarro 1.168.0 → 1.168.3

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/types.d.ts CHANGED
@@ -1,2035 +1,2037 @@
1
- // noinspection JSUnusedGlobalSymbols
2
-
3
- import * as fs from "fs";
4
- import { StatsBase } from "fs";
5
- import { Stream, Transform } from "stream";
6
- import ansiColors, { StyleFunction } from "ansi-colors";
7
- import { RimrafOptions } from "./gulp-tasks/modules/rimraf";
8
- import { ExecFileOptionsWithBufferEncoding } from "child_process";
9
- import * as vinyl from "vinyl";
10
- import { BufferFile } from "vinyl";
11
- // noinspection ES6PreferShortImport
12
- import { FetchReleaseOptions, ListReleasesOptions, ReleaseInfo } from "./gulp-tasks/modules/fetch-github-release/src";
13
- import { DecompressOptions, File } from "decompress";
14
-
15
- export * from "./gulp-tasks/modules/fetch-github-release/src";
16
-
17
- type RequireModuleFunction<T> = (module: string) => T
18
-
19
- interface RequireModule<T>
20
- extends RequireModuleFunction<T> {
21
- debug(): DebugFactory;
22
- }
23
-
24
- declare global {
25
- function requireModule<T>(module: string): T;
26
-
27
- // copied out of @types/fancy-log because imports are being stupid
28
- interface Logger {
29
- (...args: any[]): Logger;
30
-
31
- dir(...args: any[]): Logger;
32
-
33
- error(...args: any[]): Logger;
34
-
35
- info(...args: any[]): Logger;
36
-
37
- warn(...args: any[]): Logger;
38
- }
39
-
40
- interface LogLevels {
41
- Debug: number;
42
- Info: number;
43
- Notice: number;
44
- Warning: number;
45
- Error: number;
46
- }
47
-
48
- enum LogThreshold {
49
- debug = 1,
50
- info = 2,
51
- notice = 3,
52
- warning = 4,
53
- error = 5
54
- }
55
-
56
- interface ZarroLogger {
57
- LogLevels: LogLevels;
58
- threshold: LogThreshold;
59
-
60
- setThreshold(threshold: number | string): void;
61
-
62
- debug(...args: any[]): void;
63
-
64
- info(...args: any[]): void;
65
-
66
- notice(...args: any[]): void;
67
-
68
- warning(...args: any[]): void;
69
-
70
- error(...args: any[]): void;
71
-
72
- fail(...args: any[]): void;
73
-
74
- ok(...args: any[]): void;
75
-
76
- notice(...args: any[]): void;
77
-
78
- suppressTimestamps(): void;
79
-
80
- showTimestamps(): void;
81
-
82
- }
83
-
84
- interface Log {
85
- setThreshold(level: number): void;
86
-
87
- debug(...args: any[]): void;
88
-
89
- info(...args: any[]): void;
90
-
91
- notice(...args: any[]): void;
92
-
93
- warn(...args: any[]): void;
94
-
95
- /**
96
- * @deprecated this is a link back to .warn(...)
97
- */
98
- warning(...args: any[]): void;
99
-
100
- error(...args: any[]): void;
101
-
102
- /**
103
- * @deprecated this is a link back to .error(...)
104
- */
105
- fail(...args: any[]): void;
106
-
107
- ok(): void;
108
-
109
- suppressTimestamps(): void;
110
-
111
- showTimestamps(): void;
112
-
113
- LogLevels: LogLevels;
114
-
115
- threshold: LogThreshold;
116
-
117
- }
118
-
119
-
120
- type Func<T> = () => T;
121
- type DebugLogFunction = (...args: any[]) => void;
122
- type DebugFactory = (label: string) => DebugLogFunction;
123
- type VoidVoid = () => void;
124
- type AsyncVoidVoid = () => Promise<void>;
125
- type AsyncVoidFunc<T> = () => Promise<T>;
126
- type AsyncTVoid<T> = (arg: T) => Promise<void>;
127
- type OptionsFactory<T> = (file: vinyl.BufferFile) => T | Promise<T>;
128
- type ErrorReporter = (e: Error) => Promise<void> | void;
129
- type GulpCallback =
130
- (() => Promise<any> | NodeJS.EventEmitter) |
131
- ((done: VoidVoid) => Promise<any> | NodeJS.EventEmitter | void)
132
- type TryDo<T> = (
133
- logic: AsyncVoidFunc<T>,
134
- retries: number | string,
135
- onTransientError?: ErrorReporter,
136
- onFinalFailure?: VoidVoid
137
- ) => Promise<T>;
138
- type Optional<T> = T | undefined;
139
- type Nullable<T> = T | null;
140
- type DownloadNuget = (targetFolder: string, quiet?: boolean) => Promise<string>;
141
-
142
- interface ResolveNugetConfig {
143
- localNuget: string;
144
- nugetDownloadUrl: string;
145
- }
146
-
147
- type FindNpmBase = () => string;
148
- type ResolveNugetConfigGenerator = () => ResolveNugetConfig;
149
- type ResolveNuget = (nugetPath?: string, errorOnMissing?: boolean) => string;
150
- type FindLocalNuget = (quiet?: boolean) => Promise<string>;
151
-
152
- type Fetch = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
153
-
154
- interface Streamify {
155
- streamify<T>(
156
- fn: AsyncTVoid<T>,
157
- optionsFactory: OptionsFactory<T>,
158
- pluginName: string,
159
- operation: string
160
- ): Transform;
161
- }
162
-
163
- interface HttpClient {
164
- new(): HttpClient;
165
-
166
- suppressProgress: boolean;
167
- assumeDownloadedIfExistsAndSizeMatches: boolean;
168
- aborted: boolean;
169
-
170
- download(url: string, target: string): Promise<string>;
171
-
172
- exists(url: string): Promise<boolean>;
173
- }
174
-
175
- interface Decompress {
176
- decompress(data: string | Buffer, target: string | DecompressOptions): Promise<File[]>;
177
- }
178
-
179
- type LogFunction = (s: string) => void;
180
-
181
- interface HttpClientModule {
182
- create(
183
- infoLogFunction?: LogFunction,
184
- debugLogFunction?: LogFunction
185
- ): HttpClient;
186
- }
187
-
188
- interface SrcOptions {
189
- allowEmpty?: boolean;
190
- read?: boolean
191
- }
192
-
193
- interface GulpWithHelp {
194
- task(name: string, callback: GulpCallback): void;
195
-
196
- task(name: string, help: string, callback: GulpCallback): void;
197
-
198
- task(name: string, dependencies: string[], callback?: GulpCallback): void;
199
-
200
- task(name: string, help: string, dependencies: string[], callback?: GulpCallback): void;
201
-
202
- src(mask: string | string[], opts?: SrcOptions): NodeJS.ReadableStream;
203
-
204
- dest(target: string): NodeJS.WritableStream;
205
-
206
- series(...tasks: string[]): (fn: Function) => void;
207
- }
208
-
209
- type RunSequence = (...args: (string | Function)[]) => void;
210
- type RunTaskFn = (task: string) => Promise<void>;
211
- type RunTasksFn = (...tasks: string[]) => Promise<void>;
212
-
213
- interface RunTask {
214
- runTask: RunTaskFn;
215
- runSeries: RunTasksFn;
216
- runParallel: RunTasksFn;
217
- }
218
-
219
- interface TemporaryEnvironmentRunner {
220
- run<T>(fn: (() => T | Promise<T>)): Promise<T>;
221
- }
222
-
223
- interface EnvDictionary {
224
- [key: AnyEnvVar | string]: string;
225
- }
226
-
227
- type WithEnvironment = (
228
- env: EnvDictionary,
229
- /**
230
- * If you'd like to replace the entire environment instead of augmenting it,
231
- * set this to true
232
- */
233
- replaceExistingEnvironment?: boolean
234
- ) => TemporaryEnvironmentRunner;
235
- type TemporaryEnvironment = {
236
- withEnvironment: WithEnvironment;
237
- }
238
-
239
- type Gulp = GulpWithHelp;
240
- type RunInParallel = (
241
- maxConcurrency: number,
242
- ...actions: AsyncVoidVoid[]
243
- ) => Promise<void>;
244
- type Seed = (howMany: number) => any[];
245
- type LineBuffer = {
246
- new(writer: LogFunction): LineBuffer;
247
- append(data: string | Buffer): void;
248
- flush(): void;
249
- };
250
-
251
- interface TestResults {
252
- quackersEnabled: boolean;
253
- passed: number;
254
- skipped: number;
255
- failed: number;
256
- started: number;
257
- failureSummary: string[];
258
- slowSummary: string[];
259
- fullLog: string[];
260
- }
261
-
262
- type DotNetTester = (configuration: string, source: string[]) => Promise<TestResults>;
263
-
264
- interface TestDotNetLogic {
265
- runTests: () => Promise<void>;
266
- testWithNunitCli: DotNetTester;
267
- testAsDotNetCore: DotNetTester;
268
- shouldTestInParallel: (testProjectPaths: string[]) => Promise<boolean>;
269
- testOneDotNetCoreProject: (
270
- target: string,
271
- configuration: string,
272
- verbosity: string,
273
- testResults: TestResults,
274
- runningInParallel: boolean,
275
- forceBuild?: boolean,
276
- suppressOutput?: boolean
277
- ) => Promise<SystemResult | SystemError>;
278
- }
279
-
280
- type VerifyExe = (path: string) => Promise<void>;
281
-
282
- interface VersionInfo {
283
- major: number;
284
- minor?: number;
285
- patch?: number;
286
- tag?: string;
287
- }
288
-
289
- interface Version {
290
- major: number;
291
- minor: number;
292
- patch: number;
293
- tag: string;
294
- isPreRelease: boolean;
295
- version: number[];
296
-
297
- new(version: string | number[] | VersionInfo): Version;
298
-
299
- new(major: number, minor?: number, patch?: number, tag?: string): Version;
300
-
301
- isGreaterThan(other: Version | string | number[]): boolean;
302
-
303
- isLessThan(other: Version | string | number[]): boolean;
304
-
305
- equals(other: Version | string | number): boolean;
306
-
307
- compareWith(other: Version | string | number): number;
308
- }
309
-
310
- interface NUnitRunnerOptions {
311
- result: string;
312
- agents: number;
313
- labels: string;
314
- process: string;
315
- }
316
-
317
- interface GulpNUnitRunnerOptions {
318
- executable: Optional<string>;
319
- options: NUnitRunnerOptions;
320
- }
321
-
322
- type GulpNunitRunner = (options: GulpNUnitRunnerOptions) => Transform;
323
-
324
- interface GulpVersion {
325
- major: number;
326
- minor: number;
327
- patch: number;
328
- }
329
-
330
- type SetTaskName = (task: any, name: string) => any;
331
-
332
- type StringMap = (input: string) => string;
333
-
334
- interface Dictionary<TValue> {
335
- [key: string]: TValue;
336
- }
337
-
338
- interface Author {
339
- name: string;
340
- url: string;
341
- }
342
-
343
- interface PackageIndex {
344
- name: string;
345
- version: string;
346
- description?: string;
347
- bin?: Dictionary<string>;
348
- homepage?: string;
349
- main?: string;
350
- scripts?: Dictionary<string>;
351
- dependencies?: Dictionary<string>;
352
- devDependencies?: Dictionary<string>;
353
- files?: string[];
354
- author: Author; // I'm sure there's a multi-author construct too
355
- license: LicenseIdentifier
356
- }
357
-
358
- type ResolveMasks = (
359
- includeVar: StringEnvVar | StringEnvVar[],
360
- excludeVar: StringEnvVar | StringEnvVar[],
361
- modifierFunction?: StringMap
362
- ) => string[];
363
-
364
- type ShimNuget = (pathToNuget: string) => string;
365
- type Retry<T> = (fn: (() => Promise<T>), attempt?: number, maxAttempts?: number, wait?: number) => Promise<T>;
366
-
367
- type VersionIncrementStrategy =
368
- "major" | "minor" | "patch" | "prerelease";
369
-
370
- type StringEnvVar =
371
- "BUILD_CONFIGURATION" |
372
- "BUILD_PLATFORM" |
373
- "BUILD_ARCHITECTURE" |
374
- "BUILD_INCLUDE" |
375
- "BUILD_EXCLUDE" |
376
- "BUILD_ADDITIONAL_EXCLUDE" |
377
- "BUILD_FRAMEWORK" |
378
- "BUILD_RUNTIME" |
379
- "NUNIT_ARCHITECTURE" |
380
- "BUILD_REPORT_XML" |
381
- "NUNIT_LABELS" |
382
- "NUNIT_PROCESS" |
383
- "TEST_INCLUDE" |
384
- "TEST_ADDITIONAL_INCLUDE" |
385
- "TEST_EXCLUDE" |
386
- "TEST_ADDITIONAL_EXCLUDE" |
387
- "TEST_VERBOSITY" |
388
- "BUILD_TOOLSVERSION" |
389
- "BUILD_TARGETS" |
390
- "BUILD_VERBOSITY" |
391
- "COVERAGE_EXCLUDE" |
392
- "COVERAGE_INCLUDE" |
393
- "COVERAGE_ADDITIONAL_EXCLUDE" |
394
- "COVERAGE_XML" |
395
- "COVERAGE_REPORTING_EXCLUDE" |
396
- "GIT_OVERRIDE_BRANCH" |
397
- "GIT_BRANCH" |
398
- "GIT_MAIN_BRANCH" |
399
- "GIT_DEFAULT_UPSTREAM" |
400
- "GIT_VERIFY_BRANCH" |
401
- "GIT_OVERRIDE_REMOTE" |
402
- "GIT_REMOTE" |
403
- "NUGET_API_KEY" |
404
- "NUGET_API_KEYS" |
405
- "NUGET_PUSH_SOURCE" |
406
- "NUGET_SOURCE" |
407
- "NUGET_SOURCES" |
408
- "DOTNET_PUBLISH_RUNTIMES" |
409
- "DOTNET_PUBLISH_BUILD_CONFIGURATION" |
410
- "DOTNET_PUBLISH_OS" |
411
- "DOTNET_PUBLISH_ARCH" |
412
- "DOTNET_PUBLISH_FRAMEWORK" |
413
- "DOTNET_PUBLISH_MANIFEST" |
414
- "DOTNET_PUBLISH_VERSION_SUFFIX" |
415
- "DOTNET_PUBLISH_VERBOSITY" |
416
- "OUTPUT" |
417
- "PURGE_JS_DIRS" |
418
- "PURGE_DOTNET_DIRS" |
419
- "PURGE_ADDITIONAL_DIRS" |
420
- "PACK_TARGET_FOLDER" |
421
- "PACK_INCLUDE_CSPROJ" |
422
- "PACK_EXCLUDE_CSPROJ" |
423
- "PACK_INCLUDE_NUSPEC" |
424
- "PACK_EXCLUDE_NUSPEC" |
425
- "PACK_CONFIGURATION" |
426
- "PACK_SUPPLEMENTARY_NUSPEC" |
427
- "PACK_BASE_PATH" |
428
- "PACK_VERSION" |
429
- "PACK_VERBOSITY" |
430
- "PACKAGE_JSON" |
431
- "INCLUDE_PACKAGE_JSON" |
432
- "EXCLUDE_PACKAGE_JSON" |
433
- "NPM_PUBLISH_ACCESS" |
434
- "DOTNET_TEST_PREFIXES" |
435
- "VERSION_INCREMENT_STRATEGY" |
436
- "BUILD_TOOLS_FOLDER" |
437
- "MSBUILD_PROPERTIES" |
438
- "DEV_SMTP_BIND_IP" |
439
- "DEV_SMTP_INTERFACE_BIND_IP" |
440
- "DOTNET_PUBLISH_INCLUDE" |
441
- "DOTNET_PUBLISH_EXCLUDE" |
442
- "DOTNET_PUBLISH_ADDITIONAL_EXCLUDE" |
443
- "DOTNET_PUBLISH_CONTAINER_REGISTRY" |
444
- "DOTNET_PUBLISH_CONTAINER_IMAGE_TAG" |
445
- "DOTNET_PUBLISH_CONTAINER_IMAGE_NAME" |
446
- "TAG" |
447
- "GIT_TAG" |
448
- "GIT_VERSION_INCREMENT_MESSAGE" |
449
- string; // allow client-side extension, encourage usage of env.associate & env.register
450
-
451
- type NumericEnvVar =
452
- "BUILD_MAX_CPU_COUNT" |
453
- "MAX_NUNIT_AGENTS" |
454
- "GIT_FETCH_TIMEOUT" |
455
- "GIT_VERIFY_TIMEOUT" |
456
- "GIT_FETCH_RECENT_TIME" |
457
- "NUGET_PUSH_TIMEOUT" |
458
- "PACK_INCREMENT_VERSION_BY" |
459
- "MAX_RETRIES" |
460
- "BUILD_RETRIES" |
461
- "RESTORE_RETRIES" |
462
- "MAX_CONCURRENCY" |
463
- "DEV_SMTP_PORT" |
464
- "DEV_SMTP_INTERFACE_PORT" |
465
- "DOTNET_PARALLEL_STAGGER_MS" |
466
- string;
467
-
468
- type FlagEnvVar =
469
- "ENABLE_NUGET_PARALLEL_PROCESSING" |
470
- "BUILD_SHOW_INFO" |
471
- "BUILD_FAIL_ON_ERROR" |
472
- "BUILD_MSBUILD_NODE_REUSE" |
473
- "DOTNET_TEST_PARALLEL" |
474
- "DOTNET_TEST_REBUILD" |
475
- "DOTNET_CORE" |
476
- "DRY_RUN" |
477
- "ENFORCE_VERIFICATION" |
478
- "INTERACTIVE" |
479
- "SKIP_FETCH_ON_VERIFY" |
480
- "NO_UNICODE" |
481
- "NO_COLOR" |
482
- "NUGET_IGNORE_DUPLICATE_PACKAGES" |
483
- "PACK_INCREMENT_VERSION" |
484
- "PACK_INCLUDE_EMPTY_DIRECTORIES" |
485
- "PACK_INCLUDE_SYMBOLS" |
486
- "PACK_INCLUDE_SOURCE" |
487
- "PACK_LEGACY_SYMBOLS" |
488
- "PACK_IGNORE_MISSING_DEFAULT_NUSPEC" |
489
- "INITIAL_RELEASE" |
490
- "VERSION_INCREMENT_ZERO" |
491
- "BETA" |
492
- "RETAIN_TEST_DIAGNOSTICS" |
493
- "DOTNET_TEST_QUIET_QUACKERS" |
494
- "UPDATE_SUBMODULES_TO_LATEST" |
495
- "USE_SYSTEM_NUGET" |
496
- "DOTNET_DISABLE_BUILD_SERVERS" |
497
- "DOTNET_PUBLISH_SELF_CONTAINED" |
498
- "DOTNET_PUBLISH_NO_BUILD" |
499
- "DOTNET_PUBLISH_NO_RESTORE" |
500
- "DOTNET_PUBLISH_USE_CURRENT_RUNTIME" |
501
- "PACK_NO_BUILD" |
502
- "PACK_NO_RESTORE" |
503
- "ZARRO_ENABLE_CONFIGURATION_FILES" |
504
- "DEV_SMTP_DETACHED" |
505
- "DEV_SMTP_IGNORE_ERRORS" |
506
- "DEV_SMTP_OPEN_INTERFACE" |
507
- "DOTNET_PUBLISH_CONTAINER" |
508
- "ZARRO_ALLOW_FILE_RESOLUTION" |
509
- "NPM_PUBLISH_SKIP_OTP" |
510
- "SKIP_NUGET_UPDATE" |
511
- "PACK_INCREMENT_MINOR_ON_FIRST_PRERELEASE" |
512
- "BUILD_TOOLS_INSTALL_FORCE_NUGET_EXE" |
513
- string;
514
-
515
- type AnyEnvVar = StringEnvVar | NumericEnvVar | FlagEnvVar | VersionIncrementStrategy;
516
- type OverrideWhen = (existing: Optional<string>, potential: Optional<string>) => boolean;
517
-
518
- interface EnvRegistration {
519
- name: string | (keyof Env);
520
- help: string | string[];
521
- tasks?: string | string[];
522
- overriddenBy?: string | string[];
523
- when?: OverrideWhen;
524
- default?: string;
525
- }
526
-
527
- type GetToolsFolder = (overrideEnv?: Env) => string;
528
-
529
- interface Open {
530
- open(url: string): Promise<void>;
531
- }
532
-
533
- type ResolveNugetApiKey = (forSource?: string) => Optional<string>;
534
-
535
- interface Env
536
- extends Dictionary<any> {
537
- resolve(...names: (StringEnvVar | VersionIncrementStrategy)[]): string;
538
-
539
- /**
540
- * @description resolve an object from json set as an environment variable - note that the type annotation is for convenience: types _are not_ checked
541
- */
542
- resolveObject<T>(...names: (StringEnvVar | VersionIncrementStrategy)[]): T;
543
-
544
- resolveRequired(...names: (StringEnvVar | VersionIncrementStrategy)[]): string;
545
-
546
- resolveArray(name: AnyEnvVar | AnyEnvVar[], delimiter?: string): string[];
547
-
548
- resolveMergedArray(name: AnyEnvVar | AnyEnvVar[], delimiter?: string): string[];
549
-
550
- resolveNumber(name: NumericEnvVar): number;
551
-
552
- resolveFlag(name: FlagEnvVar, fallback?: boolean): boolean;
553
-
554
- associate(varName: AnyEnvVar | AnyEnvVar[], tasks: string | string[]): void;
555
-
556
- resolveWithFallback<T>(varName: AnyEnvVar, fallback: T): T;
557
-
558
- resolveMap(varName: AnyEnvVar, fallback?: Dictionary<string>, delimiter?: string): Dictionary<string>;
559
-
560
- register(reg: EnvRegistration): void;
561
-
562
- // these are generated on the js output by register-environment-variables
563
- // -> included here to avoid typos: use env.CONSTANT_NAME when you want
564
- // the constant name somewhere, eg in association
565
- BUILD_CONFIGURATION: StringEnvVar;
566
- BUILD_PLATFORM: StringEnvVar;
567
- BUILD_ARCHITECTURE: StringEnvVar;
568
- BUILD_INCLUDE: StringEnvVar;
569
- BUILD_EXCLUDE: StringEnvVar;
570
- BUILD_ADDITIONAL_EXCLUDE: StringEnvVar;
571
- BUILD_FRAMEWORK: StringEnvVar;
572
- BUILD_RUNTIME: StringEnvVar;
573
- NUNIT_ARCHITECTURE: StringEnvVar;
574
- BUILD_REPORT_XML: StringEnvVar;
575
- NUNIT_LABELS: StringEnvVar; // for now, at least
576
- NUNIT_PROCESS: StringEnvVar;
577
- TEST_INCLUDE: StringEnvVar;
578
- TEST_ADDITIONAL_INCLUDE: StringEnvVar;
579
- TEST_EXCLUDE: StringEnvVar;
580
- TEST_ADDITIONAL_EXCLUDE: StringEnvVar;
581
- TEST_VERBOSITY: StringEnvVar; // for now, at least
582
- BUILD_TOOLSVERSION: StringEnvVar;
583
- BUILD_TARGETS: StringEnvVar;
584
- BUILD_VERBOSITY: StringEnvVar;
585
- COVERAGE_INCLUDE: StringEnvVar;
586
- COVERAGE_EXCLUDE: StringEnvVar;
587
- COVERAGE_ADDITIONAL_EXCLUDE: StringEnvVar;
588
- COVERAGE_XML: StringEnvVar;
589
- COVERAGE_REPORTING_EXCLUDE: StringEnvVar;
590
- GIT_OVERRIDE_BRANCH: StringEnvVar;
591
- GIT_BRANCH: StringEnvVar;
592
- GIT_MAIN_BRANCH: StringEnvVar;
593
- GIT_DEFAULT_UPSTREAM: StringEnvVar;
594
- GIT_VERIFY_BRANCH: StringEnvVar;
595
- GIT_OVERRIDE_REMOTE: StringEnvVar;
596
- GIT_REMOTE: StringEnvVar;
597
- NUGET_API_KEY: StringEnvVar;
598
- NUGET_API_KEYS: StringEnvVar;
599
- NUGET_PUSH_SOURCE: StringEnvVar;
600
- NUGET_SOURCES: StringEnvVar;
601
- NUGET_SOURCE: StringEnvVar;
602
- DOTNET_PUBLISH_RUNTIMES: StringEnvVar;
603
- DOTNET_PUBLISH_BUILD_CONFIGURATION: StringEnvVar;
604
- DOTNET_PUBLISH_OS: StringEnvVar;
605
- DOTNET_PUBLISH_ARCH: StringEnvVar;
606
- DOTNET_PUBLISH_FRAMEWORK: StringEnvVar;
607
- DOTNET_PUBLISH_MANIFEST: StringEnvVar;
608
- DOTNET_PUBLISH_VERSION_SUFFIX: StringEnvVar;
609
- DOTNET_PUBLISH_VERBOSITY: StringEnvVar;
610
- OUTPUT: StringEnvVar;
611
- PURGE_JS_DIRS: StringEnvVar;
612
- PURGE_DOTNET_DIRS: StringEnvVar;
613
- PURGE_ADDITIONAL_DIRS: StringEnvVar;
614
- PACK_TARGET_FOLDER: StringEnvVar;
615
- PACK_INCLUDE_CSPROJ: StringEnvVar;
616
- PACK_EXCLUDE_CSPROJ: StringEnvVar;
617
- PACK_INCLUDE_NUSPEC: StringEnvVar;
618
- PACK_EXCLUDE_NUSPEC: StringEnvVar;
619
- PACK_CONFIGURATION: StringEnvVar;
620
- PACK_SUPPLEMENTARY_NUSPEC: StringEnvVar;
621
- PACK_BASE_PATH: StringEnvVar;
622
- PACK_VERSION: StringEnvVar;
623
- PACK_VERBOSITY: DotNetVerbosity;
624
- PACKAGE_JSON: StringEnvVar;
625
- INCLUDE_PACKAGE_JSON: StringEnvVar;
626
- EXCLUDE_PACKAGE_JSON: StringEnvVar;
627
- NPM_PUBLISH_ACCESS: StringEnvVar;
628
- DOTNET_TEST_PREFIXES: StringEnvVar;
629
- VERSION_INCREMENT_STRATEGY: VersionIncrementStrategy;
630
- BUILD_TOOLS_FOLDER: StringEnvVar;
631
- MSBUILD_PROPERTIES: StringEnvVar;
632
- DEV_SMTP_BIND_IP: StringEnvVar;
633
- DEV_SMTP_INTERFACE_BIND_IP: StringEnvVar;
634
- DOTNET_PUBLISH_INCLUDE: StringEnvVar;
635
- DOTNET_PUBLISH_EXCLUDE: StringEnvVar;
636
- DOTNET_PUBLISH_ADDITIONAL_EXCLUDE: StringEnvVar;
637
- DOTNET_PUBLISH_CONTAINER_REGISTRY: StringEnvVar;
638
- DOTNET_PUBLISH_CONTAINER_IMAGE_TAG: StringEnvVar;
639
- DOTNET_PUBLISH_CONTAINER_IMAGE_NAME: StringEnvVar;
640
- TAG: StringEnvVar;
641
- GIT_TAG: StringEnvVar;
642
- GIT_VERSION_INCREMENT_MESSAGE: StringEnvVar;
643
-
644
- ENABLE_NUGET_PARALLEL_PROCESSING: FlagEnvVar;
645
- BUILD_SHOW_INFO: FlagEnvVar;
646
- BUILD_FAIL_ON_ERROR: FlagEnvVar;
647
- BUILD_MSBUILD_NODE_REUSE: FlagEnvVar;
648
- DOTNET_TEST_PARALLEL: FlagEnvVar;
649
- DOTNET_TEST_REBUILD: FlagEnvVar;
650
- DOTNET_CORE: FlagEnvVar;
651
- DRY_RUN: FlagEnvVar;
652
- ENFORCE_VERIFICATION: FlagEnvVar;
653
- INTERACTIVE: FlagEnvVar;
654
- SKIP_FETCH_ON_VERIFY: FlagEnvVar;
655
- NO_UNICODE: FlagEnvVar;
656
- NO_COLOR: FlagEnvVar;
657
- NUGET_IGNORE_DUPLICATE_PACKAGES: FlagEnvVar;
658
- PACK_INCREMENT_VERSION: FlagEnvVar;
659
- PACK_INCLUDE_EMPTY_DIRECTORIES: FlagEnvVar;
660
- PACK_INCLUDE_SYMBOLS: FlagEnvVar;
661
- PACK_INCLUDE_SOURCE: FlagEnvVar;
662
- PACK_LEGACY_SYMBOLS: FlagEnvVar;
663
- INITIAL_RELEASE: FlagEnvVar;
664
- VERSION_INCREMENT_ZERO: FlagEnvVar;
665
- BETA: FlagEnvVar;
666
- RETAIN_TEST_DIAGNOSTICS: FlagEnvVar;
667
- DOTNET_TEST_QUIET_QUACKERS: FlagEnvVar;
668
- UPDATE_SUBMODULES_TO_LATEST: FlagEnvVar;
669
- USE_SYSTEM_NUGET: FlagEnvVar;
670
- DOTNET_DISABLE_BUILD_SERVERS: FlagEnvVar;
671
- DOTNET_PUBLISH_SELF_CONTAINED: FlagEnvVar;
672
- DOTNET_PUBLISH_NO_BUILD: FlagEnvVar;
673
- DOTNET_PUBLISH_NO_RESTORE: FlagEnvVar;
674
- DOTNET_PUBLISH_USE_CURRENT_RUNTIME: FlagEnvVar;
675
- PACK_NO_BUILD: FlagEnvVar;
676
- PACK_NO_RESTORE: FlagEnvVar;
677
- PACK_IGNORE_MISSING_DEFAULT_NUSPEC: FlagEnvVar;
678
- ZARRO_ENABLE_CONFIGURATION_FILES: FlagEnvVar;
679
- DEV_SMTP_DETACHED: FlagEnvVar;
680
- DEV_SMTP_IGNORE_ERRORS: FlagEnvVar;
681
- DEV_SMTP_OPEN_INTERFACE: FlagEnvVar;
682
- DOTNET_PUBLISH_CONTAINER: FlagEnvVar;
683
- ZARRO_ALLOW_FILE_RESOLUTION: FlagEnvVar;
684
- NPM_PUBLISH_SKIP_OTP: FlagEnvVar;
685
- SKIP_NUGET_UPDATE: FlagEnvVar;
686
- PACK_INCREMENT_MINOR_ON_FIRST_PRERELEASE: FlagEnvVar;
687
- BUILD_TOOLS_INSTALL_FORCE_NUGET_EXE: FlagEnvVar;
688
-
689
- BUILD_MAX_CPU_COUNT: NumericEnvVar;
690
- MAX_NUNIT_AGENTS: NumericEnvVar;
691
- GIT_FETCH_TIMEOUT: NumericEnvVar;
692
- GIT_VERIFY_TIMEOUT: NumericEnvVar;
693
- GIT_FETCH_RECENT_TIME: NumericEnvVar;
694
- NUGET_PUSH_TIMEOUT: NumericEnvVar;
695
- PACK_INCREMENT_VERSION_BY: NumericEnvVar;
696
- MAX_RETRIES: NumericEnvVar;
697
- BUILD_RETRIES: NumericEnvVar;
698
- RESTORE_RETRIES: NumericEnvVar;
699
- MAX_CONCURRENCY: NumericEnvVar;
700
- DEV_SMTP_PORT: NumericEnvVar;
701
- DEV_SMTP_INTERFACE_PORT: NumericEnvVar;
702
- DOTNET_PARALLEL_STAGGER_MS: NumericEnvVar;
703
- }
704
-
705
- type StatFunction = (path: string) => Promise<fs.Stats | null>
706
-
707
- interface GitSha {
708
- fetchGitSha(
709
- forRepo?: string,
710
- short?: boolean
711
- ): Promise<string>;
712
-
713
- init(): Promise<void>;
714
-
715
- currentShortSHA: () => string;
716
- currentGitSHA: () => string;
717
- }
718
-
719
- interface ZarroError
720
- extends Error {
721
- new(message: string): ZarroError;
722
- }
723
-
724
- interface ZarroErrorModule {
725
-
726
- }
727
-
728
- // module defs: get these via requireModule<T>("module-name");
729
- type ReadTextFile = (path: string) => Promise<string>;
730
- type WriteTextFile = (path: string, data: string, options?: {
731
- encoding?: string | null,
732
- mode?: string | number,
733
- flag?: string | number
734
- } | string | null) => Promise<void>
735
- type ParseXml = (data: string) => Promise<Dictionary<any>>;
736
- type IncrementVersion = (
737
- version: string,
738
- strategy: string,
739
- zeroLowerOrder?: boolean,
740
- incrementBy?: number
741
- ) => string;
742
- type ReadPackageVersion = (packageJsonPath?: string) => Promise<string | undefined>;
743
- type ReadNuspecVersion = (pathToNuspec: string) => Promise<string | undefined>;
744
- // FIXME: is this used anywhere? should be supplanted by csproj-utils
745
- type ReadCsProjVersion = (pathToCsProj: string) => string | undefined;
746
- type ReadCsProjPackageVersion = (pathToCsProj: string) => string | undefined;
747
- type GatherPaths = (pathSpecs: string | string[], throwForNoMatches?: boolean) => Promise<string[]>;
748
- type PromisifyStream = (stream: Stream) => Promise<void>;
749
-
750
- interface AlterPackageJsonVersionOptions {
751
- packageJsonPath?: string;
752
- dryRun?: boolean;
753
- strategy?: string;
754
- zero?: boolean;
755
- loadUnsetFromEnvironment?: boolean;
756
- incrementBy?: number
757
- }
758
-
759
- type GuessIndent = (text: string) => number;
760
-
761
- type AlterPackageJson = (opts?: AlterPackageJsonVersionOptions) => Promise<void>;
762
- type Rimraf = (at: string, opts?: RimrafOptions) => Promise<void>;
763
- type ReadPackageJson = (at?: string) => Promise<PackageIndex>;
764
-
765
- type IoConsumer = (d: string) => void
766
-
767
- interface IoHandlers {
768
- stdout?: IoConsumer;
769
- stderr?: IoConsumer;
770
- }
771
-
772
- interface ExecError
773
- extends Error {
774
- info: {
775
- exitCode: number;
776
- cmd: string;
777
- args: string[];
778
- opts?: ExecOpts;
779
- stdout: string[];
780
- stderr: string[];
781
- timedOut: boolean;
782
- }
783
- }
784
-
785
- type Exec =
786
- ((cmd: string, args?: string[], opts?: ExecOpts, handlers?: IoHandlers) => Promise<string>) & {
787
- alwaysSuppressOutput: boolean
788
- };
789
-
790
- type Uniq = (values: any[]) => any[];
791
- type EnvHelpers = {
792
- env: (name: string, fallback?: string) => string;
793
- envNumber: (name: string, fallback?: number) => number;
794
- envFlag: (name: string, fallback?: boolean) => boolean;
795
- };
796
-
797
- interface Version {
798
- }
799
-
800
- interface PackageInfo {
801
- id: string;
802
- version: Version;
803
- }
804
-
805
- interface PathUtils {
806
- splitPath: (path: string) => string[];
807
- baseName: (path: string) => string;
808
- chopExtension: (path: string) => string;
809
- }
810
-
811
- interface ObsoleteWarning {
812
- reason: string;
813
- expires: string;
814
- }
815
-
816
- type MakeObsolete = (module: any, data: ObsoleteWarning) => any;
817
-
818
- interface TestUtils {
819
- resolveTestPrefixFor: (path: string) => string;
820
- }
821
-
822
- type GulpIncrementNugetPackageDependencyVersion =
823
- (packageMatch: RegExp | string) => any;
824
-
825
- // @ts-ignore
826
- export interface ExecOpts
827
- extends ExecFileOptionsWithBufferEncoding {
828
- // force usage of execfile
829
- _useExecFile?: boolean;
830
- // exec normally mirrors output (and returns it)
831
- // -> set this to true to only return the output
832
- suppressOutput?: boolean;
833
-
834
- // merge stdout & stderr into one output
835
- mergeIo?: boolean;
836
-
837
- encoding?: string | null;
838
- }
839
-
840
- export interface NugetPushOpts {
841
- skipDuplicates?: boolean;
842
- }
843
-
844
- type IsWindows = () => boolean;
845
-
846
- type PackOptions = {
847
- basePath?: string;
848
- excludeEmptyDirectories?: boolean;
849
- version?: string;
850
- symbols?: boolean;
851
- legacySymbols?: boolean;
852
- };
853
- type Pack = (opts?: PackOptions) => Stream;
854
-
855
- type Colors = "black"
856
- | "red"
857
- | "green"
858
- | "yellow"
859
- | "blue"
860
- | "magenta"
861
- | "cyan"
862
- | "white"
863
- | "gray"
864
- | "grey"
865
- // bright colors
866
- | "blackBright"
867
- | "redBright"
868
- | "greenBright"
869
- | "yellowBright"
870
- | "blueBright"
871
- | "magentaBright"
872
- | "cyanBright"
873
- | "whiteBright"
874
-
875
- type Status = {
876
- start(message: string, color?: Colors): void;
877
- ok(): void;
878
- fail(): void;
879
- run<T>(message: string, action: (() => T | Promise<T>)): void;
880
- };
881
- type Sleep = (ms: number) => Promise<void>;
882
- type Which = (executable: string) => Optional<string>;
883
-
884
- interface Failer {
885
- promise: Promise<void>;
886
-
887
- cancel(): void;
888
- }
889
-
890
- type FailAfter = (ms: number, message?: string) => Failer;
891
-
892
- type NugetUpdateSelf = (nugetPath: string) => Promise<void>;
893
-
894
- interface TestUtilFinderOptions {
895
- x86?: boolean;
896
- platform?: string;
897
- architecture?: string;
898
- ignoreBetas?: boolean;
899
- }
900
-
901
- interface TestUtilFinder {
902
- latestNUnit(opts?: TestUtilFinderOptions): Optional<string>;
903
-
904
- latestDotCover(opts?: TestUtilFinderOptions): Optional<string>;
905
-
906
- latestOpenCover(): Optional<string>;
907
-
908
- findTool(exeName: string, underFolder?: string): Optional<string>;
909
-
910
- /**
911
- * @deprecated
912
- */
913
- nunit2Finder(): Optional<string>;
914
-
915
- /**
916
- * @description used to sort arrays of versioned folders
917
- */
918
- compareVersionArrays(x: number[], y: number[]): number;
919
- }
920
-
921
- /**
922
- * @deprecated rather require("yafs")
923
- */
924
- export interface FileSystemUtils {
925
- folderExists(at: string): Promise<boolean>;
926
-
927
- fileExists(at: string): Promise<boolean>;
928
-
929
- stat(p: string): Promise<StatsBase<any>>;
930
-
931
- readFile(p: string, opts: any): Promise<Buffer | string>;
932
-
933
- readdir(p: string): Promise<string[]>;
934
-
935
- mkdir(p: string, opts: any): Promise<void>;
936
-
937
- existsSync(p: string): boolean;
938
-
939
- writeFileSync(p: string, contents: Buffer): void;
940
- }
941
-
942
- // simple-git wrappers
943
- // resolves the (assumed primary) git remote at the current folder or provided override, allowing an environment override via GIT_REMOTE
944
- type ResolveGitRemote = (at?: string) => Promise<string | undefined>;
945
- // attempt to read the primary git remote, if there is one
946
- type ReadGitRemote = (at?: string) => Promise<string | undefined>;
947
- type ReadAllGitRemotes = (at?: string) => Promise<GitRemote[]>;
948
- // resolves the git branch at the current folder or provided override, allowing an environment override via GIT_BRANCH
949
- type ResolveGitBranch = (at?: string) => Promise<string | undefined>;
950
- // reads the checked out branch name at the current folder or provided override
951
- type ReadCurrentGitBranch = (at?: string) => Promise<string | undefined>;
952
- type ReadAllGitBranches = (at?: string) => Promise<string[]>;
953
- type ReadLastFetchTime = (at?: string) => Promise<Date | undefined>;
954
- // runs some git functionality, returning undefined if that functionality is run outside a repo folder
955
- type SafeGit = ((fn: () => Promise<any>, defaultValue?: any) => Promise<any | undefined>)
956
-
957
- type PromisifyFunction = (fn: Function, parent?: any, cannotError?: any) => ((...args: any[]) => Promise<any>);
958
-
959
- type ParseXmlString = (str: string) => any; // TODO: get xml types in here?
960
- type LoadXmlFile = (str: string) => any; // TODO: get xml types in here?
961
-
962
- type GitTagFromCsProj = (options?: GitTagOptions) => Stream;
963
- type GitFetch = (all: boolean) => Promise<void>;
964
- type NugetPush = (packageFile: string, sourceName?: string, options?: NugetPushOpts) => Promise<void>;
965
-
966
- interface ParseNugetVersion {
967
- parseNugetVersion(versionStringOrFileName: string): Version;
968
- }
969
-
970
- type ReadGitCommitDeltaCount = (mainBranch: string, otherBranch: string) => Promise<GitCommitDeltaCount>;
971
- type ReadMainBranchName = () => Promise<string | undefined>;
972
-
973
- interface GitCommitDeltaCount {
974
- behind: number;
975
- ahead: number;
976
- }
977
-
978
- type AnsiColors = typeof ansiColors;
979
-
980
- type ReadGitInfo = (at?: string) => Promise<GitInfo>;
981
-
982
- enum GitRemoteUsage {
983
- fetch,
984
- push,
985
- fetchAndPush
986
- }
987
-
988
- interface GitRemote {
989
- name: string;
990
- url: string;
991
- usage: GitRemoteUsage
992
- }
993
-
994
- interface GitInfo {
995
- isGitRepository: boolean;
996
- remotes: GitRemote[];
997
- primaryRemote: string;
998
- branches: string[];
999
- currentBranch: string;
1000
- }
1001
-
1002
- interface GitTagOptions {
1003
- tag: string;
1004
- comment?: string;
1005
- where?: string;
1006
- dryRun?: boolean;
1007
- ignorePreRelease?: boolean;
1008
- push?: boolean;
1009
- }
1010
-
1011
- interface GitPushOptions {
1012
- dryRun?: boolean;
1013
- quiet?: boolean;
1014
- where?: string
1015
- }
1016
-
1017
- type GitTag = (tag: string | GitTagOptions, comment?: string, where?: string) => Promise<void>;
1018
- type GitPush = (dryRun?: boolean | GitPushOptions, quiet?: boolean, where?: string) => Promise<void>;
1019
- type GitPushTags = (dryRun?: boolean | GitPushOptions, comment?: string, where?: string) => Promise<void>;
1020
- type QuoteIfRequired = (str?: string) => string;
1021
-
1022
- type StdioOptions = "pipe" | "ignore" | "inherit" |
1023
- Array<("pipe" | "ipc" | "ignore" | "inherit" | any | number | null | undefined)>;
1024
-
1025
- type StringConsumer = (data: string) => void;
1026
- type ProcessIO = string | StringConsumer;
1027
-
1028
- type UpdateNuspecVersion = (fileOrXml: string, newVersion: string) => Promise<string>;
1029
-
1030
- interface SpawnOptions {
1031
- windowsHide?: boolean;
1032
- timeout?: number;
1033
- argv0?: string;
1034
- stdio?: StdioOptions;
1035
- shell?: boolean | string;
1036
- windowsVerbatimArguments?: boolean;
1037
-
1038
- uid?: number;
1039
- gid?: number;
1040
- cwd?: string;
1041
- env?: NodeJS.ProcessEnv;
1042
-
1043
- stdout?: ProcessIO;
1044
- stderr?: ProcessIO;
1045
- lineBuffer?: boolean;
1046
-
1047
- detached?: boolean;
1048
-
1049
- /*
1050
- * when a process is marked as interactive, no stderr/stdout
1051
- * collection is done as the IO is left as "inherit"
1052
- */
1053
- interactive?: boolean;
1054
- suppressStdIoInErrors?: boolean;
1055
-
1056
- /*
1057
- * quotes can be hard, so if things aren't working out and
1058
- * you'd like to take full control, set this
1059
- */
1060
- disableAutomaticQuoting?: boolean;
1061
-
1062
- /**
1063
- * when set true, output will not be echoed back on the
1064
- * console but you will be able to get it from a custom
1065
- * io writer or the result from after spawn completes
1066
- */
1067
- suppressOutput?: boolean;
1068
- }
1069
-
1070
- interface SystemOptions {
1071
- windowsHide?: boolean;
1072
- timeout?: number;
1073
- argv0?: string;
1074
- shell?: boolean | string;
1075
- windowsVerbatimArguments?: boolean;
1076
-
1077
- uid?: number;
1078
- gid?: number;
1079
- cwd?: string;
1080
- env?: NodeJS.ProcessEnv;
1081
-
1082
- stdout?: ProcessIO;
1083
- stderr?: ProcessIO;
1084
-
1085
- detached?: boolean;
1086
-
1087
- /*
1088
- * when a process is marked as interactive, no stderr/stdout
1089
- * collection is done as the IO is left as "inherit"
1090
- */
1091
- interactive?: boolean;
1092
- suppressStdIoInErrors?: boolean;
1093
-
1094
- /**
1095
- * when set true, output will not be echoed back on the
1096
- * console but you will be able to get it from a custom
1097
- * io writer or the result from after spawn completes
1098
- */
1099
- suppressOutput?: boolean;
1100
-
1101
- /**
1102
- * when set to true, if a temporary file for launching your command was
1103
- * required, it won't be cleaned up. It will appear in the spawn output
1104
- * / error as the first argument, with the exe set to either cmd or sh
1105
- */
1106
- keepTempFiles?: boolean;
1107
- }
1108
-
1109
- /**
1110
- * @deprecated rather use the better-tested `system` module and SystemError
1111
- */
1112
- interface SpawnError
1113
- extends Error {
1114
- new(
1115
- message: string,
1116
- exe: string,
1117
- args: string[] | undefined,
1118
- exitCode: number,
1119
- stdout: Nullable<string[]>,
1120
- stderr: Nullable<string[]>
1121
- ): SpawnError;
1122
-
1123
- exe: string;
1124
- args: string[];
1125
- exitCode: number;
1126
- stderr: string[];
1127
- stdout: string[];
1128
-
1129
- isSpawnError(o: any): o is SpawnError
1130
- }
1131
-
1132
- /**
1133
- * @deprecated rather use the better-tested `system` module and SystemResult
1134
- */
1135
- interface SpawnResult {
1136
- new(
1137
- executable: string,
1138
- args: string[],
1139
- exitCode: number,
1140
- stderr: string[],
1141
- stdout: string[]
1142
- ): SpawnResult;
1143
-
1144
- executable: string;
1145
- args: string[];
1146
- exitCode: number;
1147
- stderr: string[];
1148
- stdout: string[];
1149
-
1150
- isSpawnResult(o: any): o is SpawnResult
1151
- }
1152
-
1153
- interface Linq {
1154
- last<T>(arr: T[]): Optional<T>;
1155
-
1156
- first<T>(arr: T[]): Optional<T>;
1157
-
1158
- skip<T>(arr: T[] | IterableIterator<T>, howMany: number): IterableIterator<T>;
1159
-
1160
- take<T>(arr: T[] | IterableIterator<T>, howMany: number): IterableIterator<T>;
1161
- }
1162
-
1163
- type RequireModuleFn = <T>(name: string) => T;
1164
-
1165
- type SpawnFunction = (program: string, args?: string[], options?: SpawnOptions)
1166
- => Promise<SpawnResult>;
1167
-
1168
- interface Spawn
1169
- extends SpawnFunction {
1170
- SpawnResult: Function;
1171
- SpawnError: Function;
1172
- isSpawnError: (o: any) => o is SpawnError;
1173
- isSpawnResult: (o: any) => o is SpawnResult;
1174
- }
1175
-
1176
- interface SystemCommand {
1177
- exe: string;
1178
- args: string[];
1179
- }
1180
-
1181
- interface SystemResultImpl
1182
- extends SystemCommand {
1183
- new(
1184
- exe: string,
1185
- args: string[],
1186
- exitCode: Optional<number>,
1187
- stderr: string[],
1188
- stdout: string[]
1189
- ): SystemResult;
1190
-
1191
- exitCode?: number;
1192
- stderr: string[];
1193
- stdout: string[];
1194
-
1195
- isResult(): this is SystemResult;
1196
- isError(): this is SystemError;
1197
- }
1198
-
1199
- interface SystemResultBuilder {
1200
- withExe(exe: string): SystemResultBuilder;
1201
- withArgs(args: string[]): SystemResultBuilder;
1202
- withExitCode(code: number): SystemResultBuilder;
1203
- withStdErr(lines: string[] | string): SystemResultBuilder;
1204
- withStdOut(lines: string[] | string): SystemResultBuilder;
1205
- build(): SystemResult;
1206
- }
1207
-
1208
- type SystemResult = {
1209
- create(): SystemResultBuilder;
1210
- } & SystemResultImpl;
1211
-
1212
- interface SystemError
1213
- extends Error, SystemCommand {
1214
- new(
1215
- message: string,
1216
- exe: string,
1217
- args: string[] | undefined,
1218
- exitCode: number,
1219
- stdout: Nullable<string[]>,
1220
- stderr: Nullable<string[]>
1221
- ): SystemError;
1222
-
1223
- exitCode: number;
1224
- stderr: string[];
1225
- stdout: string[];
1226
-
1227
- isError(o: any): o is SystemError;
1228
-
1229
- isResult(o: any): o is SystemError;
1230
- }
1231
-
1232
- type SystemFunction = (program: string, args?: string[], options?: SystemOptions)
1233
- => Promise<SystemResult | SystemError>;
1234
-
1235
- interface System
1236
- extends SystemFunction {
1237
- isError(o: any): o is SystemError;
1238
- isResult(o: any): o is SystemResult;
1239
- }
1240
-
1241
- interface TempFile {
1242
- path: string;
1243
- destroy(): void;
1244
- }
1245
-
1246
- type ThrowIfNoFiles = (msg: string) => Transform;
1247
- type LogConfig = (config: any, labels: Dictionary<string>) => void;
1248
-
1249
- interface NugetRestoreOptions {
1250
- debug?: boolean;
1251
- force?: boolean;
1252
- nuget?: string;
1253
- }
1254
-
1255
- type ZarroTestPackage = "local" | "beta" | "latest" | string;
1256
- interface TestZarroOptions {
1257
- packageVersion: ZarroTestPackage;
1258
- tasks: string | string[];
1259
- rollback?: boolean;
1260
- }
1261
- type TestZarro = (opts: TestZarroOptions) => Promise<void>;
1262
-
1263
- type GulpNugetRestore = (opts: NugetRestoreOptions) => Stream;
1264
- type LongestStringLength = (strings: string[]) => number;
1265
- /**
1266
- * @description generates a version suffix based on the current timestamp and git SHA
1267
- */
1268
- type GenerateVersionSuffix = () => string;
1269
-
1270
- interface GulpPurgeOptions {
1271
- dryRun?: boolean;
1272
- debug?: boolean;
1273
- stopOnErrors?: boolean;
1274
- }
1275
-
1276
- type GulpPurge = (options: GulpPurgeOptions) => Transform;
1277
-
1278
- interface GulpNpmRun {
1279
- gulpNpmRun: (gulp: Gulp) => void;
1280
- isNpmScript: (name: string) => boolean;
1281
- }
1282
- type Nuget = (args: string[], opts?: SystemOptions) => Promise<void>;
1283
-
1284
- interface CliSupport {
1285
- pushIfSet: (args: string[], value: Optional<string | number>, cliSwitch: string) => void;
1286
- pushFlag: (args: string[], value: Optional<boolean>, cliSwitch: string) => void;
1287
- }
1288
-
1289
- interface NugetInstallOptions {
1290
- packageId: string;
1291
- version?: string;
1292
- outputDirectory?: string;
1293
- dependencyVersion?: string;
1294
- framework?: string;
1295
- excludeVersion?: string;
1296
- preRelease?: boolean;
1297
- requireConsent?: boolean;
1298
- solutionDirectory?: string;
1299
- source?: string;
1300
- fallbackSource?: string;
1301
- noCache?: boolean;
1302
- directDownload?: boolean;
1303
- disableParallelProcessing?: boolean;
1304
- packageSaveMode?: NugetPackageSaveMode;
1305
- verbosity?: NugetVerbosity;
1306
- nonInteractive?: boolean;
1307
- configFile?: string;
1308
- forceEnglishOutput?: boolean;
1309
-
1310
- systemOptions?: SystemOptions;
1311
- }
1312
-
1313
- type NugetPackageSaveMode = "nuspec" | "nupkg" | "nuspec;nupkg";
1314
- type NugetVerbosity = "normal" | "quiet" | "detailed";
1315
-
1316
- interface NugetCli {
1317
- install: (opts: NugetInstallOptions) => Promise<void>;
1318
- clearAllCache(): Promise<void>;
1319
- clearHttpCache(): Promise<void>;
1320
- listSources(): Promise<NugetSource[]>;
1321
- addSource(src: NugetAddSourceOptions): Promise<void>;
1322
- enableSource(name: string): Promise<void>;
1323
- disableSource(name: string): Promise<void>;
1324
- }
1325
-
1326
- type ParseNugetSources = (lines: string[]) => NugetSource[];
1327
-
1328
- type CreateTempFile = (contents?: string | Buffer, at?: string) => Promise<TempFile>;
1329
- type MultiSplit = (str: string, delimiters: string[]) => string[];
1330
-
1331
- type GulpNetFXTestAssemblyFilter = (configuration: string) => ((f: BufferFile) => boolean);
1332
- type Pad = (str: string, len: number, isRight?: boolean, padString?: string) => string;
1333
- type PadLeft = (str: string, len: number, padString?: string) => string;
1334
- type PadRight = (str: string, len: number, padString?: string) => string;
1335
- type PathUnquote = (str: string) => string;
1336
- type ResolveTestMasks = (isDotnetCore?: boolean) => string[];
1337
-
1338
- interface AskOptions {
1339
- inputStream?: NodeJS.ReadStream,
1340
- outputStream?: NodeJS.WriteStream,
1341
- validator?: (s: string) => boolean;
1342
- }
1343
- type AskFunction = (message: string, options?: AskOptions) => Promise<string>;
1344
- type Ask = {
1345
- ask: AskFunction
1346
- };
1347
-
1348
- interface GulpUtil {
1349
- PluginError: PluginError;
1350
- log: Logger;
1351
- colors: StyleFunction;
1352
- }
1353
-
1354
- interface PluginError
1355
- extends Error {
1356
- new(pluginName: string, err: string | Error): void;
1357
-
1358
- verbosity?: string;
1359
- }
1360
-
1361
- type DotNetVerbosity = "q" | "quiet" | "m" | "minimal" | "n" | "normal" | "d" | "detailed" | "diag" | "diagnostic";
1362
-
1363
- type DotNetTestLoggers = Dictionary<Dictionary<string>>;
1364
-
1365
- interface DotNetBaseOptions
1366
- extends IoConsumers {
1367
- msbuildProperties?: Dictionary<string>;
1368
- additionalArguments?: string[];
1369
- verbosity?: DotNetVerbosity | string;
1370
- // when set, errors are returned instead of thrown
1371
- suppressErrors?: boolean;
1372
- suppressStdIoInErrors?: boolean;
1373
- suppressOutput?: boolean;
1374
-
1375
- env?: Dictionary<string>;
1376
- }
1377
-
1378
- type GulpXBuild = (opts?: any) => Transform;
1379
- type GulpMsBuild = (opts?: any) => Transform;
1380
-
1381
- interface GulpXBuildOptions {
1382
- target: string | string[],
1383
- noConsoleLogger?: boolean;
1384
- configuration?: string;
1385
- verbosity?: string;
1386
- platform?: string;
1387
- nologo?: boolean;
1388
- }
1389
-
1390
- interface GulpDotNetCoverExec {
1391
- dotCover?: string;
1392
- openCover?: string;
1393
- nunit?: string;
1394
- }
1395
-
1396
- interface GulpDotNetCoverOptions {
1397
- failOnError?: boolean;
1398
- exec?: GulpDotNetCoverExec;
1399
- baseFilters?: string;
1400
- exclude?: string[];
1401
- nunitOptions?: string;
1402
- allowProjectAssemblyMismatch?: boolean;
1403
- nunitOutput?: string;
1404
- coverageReportBase?: string;
1405
- coverageOutput?: string;
1406
- agents?: number;
1407
- testAssemblyFilter?: ((f: string) => boolean) | RegExp;
1408
- coverageTool?: string;
1409
- testAssemblies?: string[];
1410
- debug?: boolean;
1411
-
1412
- x86?: boolean;
1413
- platform?: string;
1414
- architecture?: string;
1415
- }
1416
-
1417
- type GulpDotNetCover = (opts?: GulpDotNetCoverOptions) => Transform;
1418
-
1419
- interface DotNetCommonBuildOptions
1420
- extends DotNetBaseOptions {
1421
- target: string;
1422
- configuration?: string | string[];
1423
- framework?: string;
1424
- runtime?: string;
1425
- output?: string;
1426
- arch?: string;
1427
- os?: string;
1428
- disableBuildServers?: boolean;
1429
- }
1430
-
1431
- interface DotNetPublishContainerOptions {
1432
- publishContainer?: boolean;
1433
- containerImageTag?: string;
1434
- containerRegistry?: string;
1435
- containerImageName?: string;
1436
- }
1437
-
1438
- interface DotNetPublishOptions
1439
- extends DotNetCommonBuildOptions,
1440
- DotNetPublishContainerOptions {
1441
- useCurrentRuntime?: boolean;
1442
- manifest?: string;
1443
- noBuild?: boolean;
1444
- noRestore?: boolean;
1445
- selfContained?: boolean;
1446
- versionSuffix?: string;
1447
- }
1448
-
1449
- interface DotNetPackOptions
1450
- extends DotNetBaseOptions {
1451
- target: string;
1452
- output?: string;
1453
- configuration?: string | string[];
1454
- noBuild?: boolean;
1455
- includeSymbols?: boolean;
1456
- includeSource?: boolean;
1457
- noRestore?: boolean;
1458
- versionSuffix?: string;
1459
- nuspec?: string;
1460
- /**
1461
- * @description when the specified Package.nuspec is not
1462
- * found and this flag is set, then pack() will silently
1463
- * drop the option; otherwise an error will be thrown.
1464
- */
1465
- ignoreMissingNuspec?: boolean
1466
- }
1467
-
1468
- interface DotNetBuildOptions
1469
- extends DotNetCommonBuildOptions {
1470
- noIncremental?: boolean;
1471
- disableBuildServers?: boolean;
1472
- selfContained?: boolean;
1473
- noDependencies?: boolean;
1474
- noRestore?: boolean;
1475
- versionSuffix?: string;
1476
- }
1477
-
1478
- interface DotNetCleanOptions
1479
- extends DotNetBaseOptions {
1480
- target: string;
1481
- framework?: string;
1482
- runtime?: string;
1483
- configuration?: string | string[],
1484
- output?: string;
1485
- }
1486
-
1487
- interface DotNetNugetPushOptions
1488
- extends DotNetBaseOptions {
1489
- target: string;
1490
- apiKey?: string;
1491
- symbolApiKey?: string;
1492
- disableBuffering?: boolean;
1493
- noSymbols?: boolean;
1494
- skipDuplicate?: boolean;
1495
- noServiceEndpoint?: boolean;
1496
- forceEnglishOutput?: boolean;
1497
- source?: string;
1498
- symbolSource?: string;
1499
- timeout?: number;
1500
- }
1501
-
1502
- interface IoConsumers {
1503
- stdout?: IoConsumer;
1504
- stderr?: IoConsumer;
1505
- }
1506
-
1507
- interface DotNetTestOptions
1508
- extends DotNetCommonBuildOptions {
1509
- noBuild?: boolean;
1510
- noRestore?: boolean;
1511
- loggers?: DotNetTestLoggers;
1512
- settingsFile?: string;
1513
- env?: Dictionary<string>;
1514
- filter?: string;
1515
- diagnostics?: string;
1516
- label?: string;
1517
- }
1518
-
1519
- interface NugetSource {
1520
- name: string;
1521
- url: string;
1522
- enabled: boolean;
1523
- }
1524
-
1525
- interface NugetAddSourceOptions {
1526
- name: string;
1527
- url: string;
1528
- username?: string;
1529
- password?: string;
1530
- storePasswordInClearText?: boolean;
1531
- validAuthenticationTypes?: string;
1532
- configFile?: string;
1533
- enabled?: boolean;
1534
- }
1535
-
1536
- interface DotNetPackageReference {
1537
- id: string;
1538
- version: string;
1539
- }
1540
-
1541
- interface ResolvedContainerOption {
1542
- value: string;
1543
- environmentVariable: string;
1544
- option: keyof DotNetPublishContainerOptions;
1545
- usingFallback: boolean;
1546
- }
1547
-
1548
- type DotNetTestFunction = (opts: DotNetTestOptions) => Promise<SystemResult | SystemError>;
1549
- type DotNetBuildFunction = (opts: DotNetBuildOptions) => Promise<SystemResult | SystemError>;
1550
- type DotNetPackFunction = (opts: DotNetPackOptions) => Promise<SystemResult | SystemError>;
1551
- type DotNetNugetPushFunction = (opts: DotNetNugetPushOptions) => Promise<SystemResult | SystemError>;
1552
- type DotNetCleanFunction = (opts: DotNetCleanOptions) => Promise<SystemResult | SystemError>;
1553
- type DotNetPublishFunction = (opts: DotNetPublishOptions) => Promise<SystemResult | SystemError>;
1554
- type DotNetListPackagesFunction = (projectPath: string) => Promise<DotNetPackageReference[]>;
1555
- type DotNetPublishResolveContainerOptions = (opts: DotNetPublishOptions) => Promise<ResolvedContainerOption[]>;
1556
- type DotNetNugetAddSourceFunction = (opts: NugetAddSourceOptions) => Promise<void>;
1557
- type DotNetRemoveNugetSourceFunction = (source: string | NugetSource) => Promise<void>;
1558
- type DotNetListNugetSourcesFunction = () => Promise<NugetSource[]>;
1559
- type DotNetEnableNugetSourceFunction = (source: string | NugetSource) => Promise<void>;
1560
- type DotNetDisableNugetSourceFunction = (source: string | NugetSource) => Promise<void>;
1561
- type DotNetTryMatchNugetSourceFunction = (nameOrUrlOrHostOrSpec: string | Partial<NugetSource> | RegExp) => Promise<Optional<NugetSource>>;
1562
-
1563
- interface DotNetCli {
1564
- clean: DotNetCleanFunction;
1565
- build: DotNetBuildFunction;
1566
- test: DotNetTestFunction;
1567
- pack: DotNetPackFunction;
1568
- nugetPush: DotNetNugetPushFunction;
1569
- publish: DotNetPublishFunction;
1570
- listPackages: DotNetListPackagesFunction;
1571
- resolveContainerOptions: DotNetPublishResolveContainerOptions;
1572
- listNugetSources: DotNetListNugetSourcesFunction;
1573
- addNugetSource: DotNetNugetAddSourceFunction;
1574
- removeNugetSource: DotNetRemoveNugetSourceFunction;
1575
- enableNugetSource: DotNetEnableNugetSourceFunction;
1576
- disableNugetSource: DotNetDisableNugetSourceFunction;
1577
- tryFindConfiguredNugetSource: DotNetTryMatchNugetSourceFunction;
1578
- incrementTempDbPortHintIfFound: (env: Dictionary<string>) => void;
1579
- }
1580
-
1581
- type ReadCsProjNode = (csproj: string) => Promise<string>;
1582
- type ReadCsProjProperty = (
1583
- pathToCsProj: string,
1584
- property: string,
1585
- fallback?: string | (() => Promise<string>)
1586
- ) => Promise<Optional<string>>;
1587
-
1588
- interface GulpIncrementNugetPackageVersion {
1589
- incrementPackageVersion: TransformFunction<void>;
1590
- }
1591
-
1592
- interface CsProjUtils {
1593
- readPackageVersion: ReadCsProjNode;
1594
- readAssemblyVersion: ReadCsProjNode;
1595
- readAssemblyName: ReadCsProjNode;
1596
- readProjectVersion: ReadCsProjNode;
1597
- readCsProjProperty: ReadCsProjProperty;
1598
- }
1599
-
1600
- type VoidTransformFunction = () => Transform;
1601
- type TransformFunctionWithOptionalArgs<T> = (opts?: T) => Transform;
1602
- type TransformFunction<T> = (opts: T) => Transform;
1603
- type GulpDotNetTestFunction = TransformFunction<DotNetTestOptions>;
1604
- type GulpDotNetBuildFunction = TransformFunction<DotNetBuildOptions>;
1605
- type GulpDotNetPackFunction = TransformFunction<DotNetPackOptions>;
1606
- type GulpDotNetNugetPushFunction = TransformFunction<DotNetNugetPushOptions>;
1607
- type GulpDotNetCleanFunction = TransformFunction<DotNetCleanOptions>;
1608
- type GulpDotNetPublishFunction = TransformFunction<DotNetPublishOptions>;
1609
-
1610
- interface GulpDotNetCli {
1611
- build: GulpDotNetBuildFunction;
1612
- clean: GulpDotNetCleanFunction;
1613
- test: GulpDotNetTestFunction;
1614
- pack: GulpDotNetPackFunction;
1615
- nugetPush: GulpDotNetNugetPushFunction;
1616
- publish: GulpDotNetPublishFunction;
1617
- }
1618
-
1619
- interface FetchGithubRelease {
1620
- fetchLatestRelease(options: Omit<FetchReleaseOptions, "getRelease">): Promise<string[]>
1621
-
1622
- fetchReleaseByTag(options: Omit<FetchReleaseOptions, "getRelease"> & { tag: string; }): Promise<string[]>;
1623
-
1624
- fetchLatestReleaseInfo(options: ListReleasesOptions): Promise<ReleaseInfo>;
1625
-
1626
- listReleases(options: ListReleasesOptions): Promise<ReleaseInfo[]>;
1627
- }
1628
-
1629
- interface InstallLocalTools {
1630
- install: (required: string | string[], overrideToolsFolder?: string) => Promise<void>;
1631
- clean: (overrideToolsFolder?: string) => Promise<void>;
1632
- }
1633
-
1634
- interface RewriteFile {
1635
- rewriteFile: (transform?: ((s: Buffer) => Buffer)) => Transform;
1636
- }
1637
-
1638
- interface GulpNugetPack {
1639
- pack: TransformFunctionWithOptionalArgs<PackOptions>;
1640
- }
1641
-
1642
- type SpawnNuget = (args: string[], opts?: SystemOptions) => Promise<SystemResult>;
1643
- type IsPromise = (obj: any) => obj is Promise<any>;
1644
-
1645
- type GitTagAndPush = (tag?: string, dryRun?: boolean) => Promise<void>;
1646
-
1647
- // scraped from https://spdx.org/licenses/
1648
- // with the following fragment from FF dev console
1649
- // copy(Array.from(document.querySelector("table").querySelectorAll("tr")).map(tr => {
1650
- // return Array.from(tr.querySelectorAll("td"))[1]
1651
- // }).filter(td => !!td).map(td => td.innerText))
1652
- type LicenseIdentifier =
1653
- "0BSD" |
1654
- "AAL" |
1655
- "Abstyles" |
1656
- "Adobe-2006" |
1657
- "Adobe-Glyph" |
1658
- "ADSL" |
1659
- "AFL-1.1" |
1660
- "AFL-1.2" |
1661
- "AFL-2.0" |
1662
- "AFL-2.1" |
1663
- "AFL-3.0" |
1664
- "Afmparse" |
1665
- "AGPL-1.0-only" |
1666
- "AGPL-1.0-or-later" |
1667
- "AGPL-3.0-only" |
1668
- "AGPL-3.0-or-later" |
1669
- "Aladdin" |
1670
- "AMDPLPA" |
1671
- "AML" |
1672
- "AMPAS" |
1673
- "ANTLR-PD" |
1674
- "Apache-1.0" |
1675
- "Apache-1.1" |
1676
- "Apache-2.0" |
1677
- "APAFML" |
1678
- "APL-1.0" |
1679
- "APSL-1.0" |
1680
- "APSL-1.1" |
1681
- "APSL-1.2" |
1682
- "APSL-2.0" |
1683
- "Artistic-1.0" |
1684
- "Artistic-1.0-cl8" |
1685
- "Artistic-1.0-Perl" |
1686
- "Artistic-2.0" |
1687
- "Bahyph" |
1688
- "Barr" |
1689
- "Beerware" |
1690
- "BitTorrent-1.0" |
1691
- "BitTorrent-1.1" |
1692
- "blessing" |
1693
- "BlueOak-1.0.0" |
1694
- "Borceux" |
1695
- "BSD-1-Clause" |
1696
- "BSD-2-Clause" |
1697
- "BSD-2-Clause-FreeBSD" |
1698
- "BSD-2-Clause-NetBSD" |
1699
- "BSD-2-Clause-Patent" |
1700
- "BSD-3-Clause" |
1701
- "BSD-3-Clause-Attribution" |
1702
- "BSD-3-Clause-Clear" |
1703
- "BSD-3-Clause-LBNL" |
1704
- "BSD-3-Clause-No-Nuclear-License" |
1705
- "BSD-3-Clause-No-Nuclear-License-2014" |
1706
- "BSD-3-Clause-No-Nuclear-Warranty" |
1707
- "BSD-3-Clause-Open-MPI" |
1708
- "BSD-4-Clause" |
1709
- "BSD-4-Clause-UC" |
1710
- "BSD-Protection" |
1711
- "BSD-Source-Code" |
1712
- "BSL-1.0" |
1713
- "bzip2-1.0.5" |
1714
- "bzip2-1.0.6" |
1715
- "Caldera" |
1716
- "CATOSL-1.1" |
1717
- "CC-BY-1.0" |
1718
- "CC-BY-2.0" |
1719
- "CC-BY-2.5" |
1720
- "CC-BY-3.0" |
1721
- "CC-BY-4.0" |
1722
- "CC-BY-NC-1.0" |
1723
- "CC-BY-NC-2.0" |
1724
- "CC-BY-NC-2.5" |
1725
- "CC-BY-NC-3.0" |
1726
- "CC-BY-NC-4.0" |
1727
- "CC-BY-NC-ND-1.0" |
1728
- "CC-BY-NC-ND-2.0" |
1729
- "CC-BY-NC-ND-2.5" |
1730
- "CC-BY-NC-ND-3.0" |
1731
- "CC-BY-NC-ND-4.0" |
1732
- "CC-BY-NC-SA-1.0" |
1733
- "CC-BY-NC-SA-2.0" |
1734
- "CC-BY-NC-SA-2.5" |
1735
- "CC-BY-NC-SA-3.0" |
1736
- "CC-BY-NC-SA-4.0" |
1737
- "CC-BY-ND-1.0" |
1738
- "CC-BY-ND-2.0" |
1739
- "CC-BY-ND-2.5" |
1740
- "CC-BY-ND-3.0" |
1741
- "CC-BY-ND-4.0" |
1742
- "CC-BY-SA-1.0" |
1743
- "CC-BY-SA-2.0" |
1744
- "CC-BY-SA-2.5" |
1745
- "CC-BY-SA-3.0" |
1746
- "CC-BY-SA-4.0" |
1747
- "CC-PDDC" |
1748
- "CC0-1.0" |
1749
- "CDDL-1.0" |
1750
- "CDDL-1.1" |
1751
- "CDLA-Permissive-1.0" |
1752
- "CDLA-Sharing-1.0" |
1753
- "CECILL-1.0" |
1754
- "CECILL-1.1" |
1755
- "CECILL-2.0" |
1756
- "CECILL-2.1" |
1757
- "CECILL-B" |
1758
- "CECILL-C" |
1759
- "CERN-OHL-1.1" |
1760
- "CERN-OHL-1.2" |
1761
- "ClArtistic" |
1762
- "CNRI-Jython" |
1763
- "CNRI-Python" |
1764
- "CNRI-Python-GPL-Compatible" |
1765
- "Condor-1.1" |
1766
- "copyleft-next-0.3.0" |
1767
- "copyleft-next-0.3.1" |
1768
- "CPAL-1.0" |
1769
- "CPL-1.0" |
1770
- "CPOL-1.02" |
1771
- "Crossword" |
1772
- "CrystalStacker" |
1773
- "CUA-OPL-1.0" |
1774
- "Cube" |
1775
- "curl" |
1776
- "D-FSL-1.0" |
1777
- "diffmark" |
1778
- "DOC" |
1779
- "Dotseqn" |
1780
- "DSDP" |
1781
- "dvipdfm" |
1782
- "ECL-1.0" |
1783
- "ECL-2.0" |
1784
- "EFL-1.0" |
1785
- "EFL-2.0" |
1786
- "eGenix" |
1787
- "Entessa" |
1788
- "EPL-1.0" |
1789
- "EPL-2.0" |
1790
- "ErlPL-1.1" |
1791
- "etalab-2.0" |
1792
- "EUDatagrid" |
1793
- "EUPL-1.0" |
1794
- "EUPL-1.1" |
1795
- "EUPL-1.2" |
1796
- "Eurosym" |
1797
- "Fair" |
1798
- "Frameworx-1.0" |
1799
- "FreeImage" |
1800
- "FSFAP" |
1801
- "FSFUL" |
1802
- "FSFULLR" |
1803
- "FTL" |
1804
- "GFDL-1.1-only" |
1805
- "GFDL-1.1-or-later" |
1806
- "GFDL-1.2-only" |
1807
- "GFDL-1.2-or-later" |
1808
- "GFDL-1.3-only" |
1809
- "GFDL-1.3-or-later" |
1810
- "Giftware" |
1811
- "GL2PS" |
1812
- "Glide" |
1813
- "Glulxe" |
1814
- "gnuplot" |
1815
- "GPL-1.0-only" |
1816
- "GPL-1.0-or-later" |
1817
- "GPL-2.0-only" |
1818
- "GPL-2.0-or-later" |
1819
- "GPL-3.0-only" |
1820
- "GPL-3.0-or-later" |
1821
- "gSOAP-1.3b" |
1822
- "HaskellReport" |
1823
- "HPND" |
1824
- "HPND-sell-variant" |
1825
- "IBM-pibs" |
1826
- "ICU" |
1827
- "IJG" |
1828
- "ImageMagick" |
1829
- "iMatix" |
1830
- "Imlib2" |
1831
- "Info-ZIP" |
1832
- "Intel" |
1833
- "Intel-ACPI" |
1834
- "Interbase-1.0" |
1835
- "IPA" |
1836
- "IPL-1.0" |
1837
- "ISC" |
1838
- "JasPer-2.0" |
1839
- "JPNIC" |
1840
- "JSON" |
1841
- "LAL-1.2" |
1842
- "LAL-1.3" |
1843
- "Latex2e" |
1844
- "Leptonica" |
1845
- "LGPL-2.0-only" |
1846
- "LGPL-2.0-or-later" |
1847
- "LGPL-2.1-only" |
1848
- "LGPL-2.1-or-later" |
1849
- "LGPL-3.0-only" |
1850
- "LGPL-3.0-or-later" |
1851
- "LGPLLR" |
1852
- "Libpng" |
1853
- "libpng-2.0" |
1854
- "libselinux-1.0" |
1855
- "libtiff" |
1856
- "LiLiQ-P-1.1" |
1857
- "LiLiQ-R-1.1" |
1858
- "LiLiQ-Rplus-1.1" |
1859
- "Linux-OpenIB" |
1860
- "LPL-1.0" |
1861
- "LPL-1.02" |
1862
- "LPPL-1.0" |
1863
- "LPPL-1.1" |
1864
- "LPPL-1.2" |
1865
- "LPPL-1.3a" |
1866
- "LPPL-1.3c" |
1867
- "MakeIndex" |
1868
- "MirOS" |
1869
- "MIT" |
1870
- "MIT-0" |
1871
- "MIT-advertising" |
1872
- "MIT-CMU" |
1873
- "MIT-enna" |
1874
- "MIT-feh" |
1875
- "MITNFA" |
1876
- "Motosoto" |
1877
- "mpich2" |
1878
- "MPL-1.0" |
1879
- "MPL-1.1" |
1880
- "MPL-2.0" |
1881
- "MPL-2.0-no-copyleft-exception" |
1882
- "MS-PL" |
1883
- "MS-RL" |
1884
- "MTLL" |
1885
- "MulanPSL-1.0" |
1886
- "Multics" |
1887
- "Mup" |
1888
- "NASA-1.3" |
1889
- "Naumen" |
1890
- "NBPL-1.0" |
1891
- "NCSA" |
1892
- "Net-SNMP" |
1893
- "NetCDF" |
1894
- "Newsletr" |
1895
- "NGPL" |
1896
- "NLOD-1.0" |
1897
- "NLPL" |
1898
- "Nokia" |
1899
- "NOSL" |
1900
- "Noweb" |
1901
- "NPL-1.0" |
1902
- "NPL-1.1" |
1903
- "NPOSL-3.0" |
1904
- "NRL" |
1905
- "NTP" |
1906
- "NTP-0" |
1907
- "OCCT-PL" |
1908
- "OCLC-2.0" |
1909
- "ODbL-1.0" |
1910
- "ODC-By-1.0" |
1911
- "OFL-1.0" |
1912
- "OFL-1.0-no-RFN" |
1913
- "OFL-1.0-RFN" |
1914
- "OFL-1.1" |
1915
- "OFL-1.1-no-RFN" |
1916
- "OFL-1.1-RFN" |
1917
- "OGL-Canada-2.0" |
1918
- "OGL-UK-1.0" |
1919
- "OGL-UK-2.0" |
1920
- "OGL-UK-3.0" |
1921
- "OGTSL" |
1922
- "OLDAP-1.1" |
1923
- "OLDAP-1.2" |
1924
- "OLDAP-1.3" |
1925
- "OLDAP-1.4" |
1926
- "OLDAP-2.0" |
1927
- "OLDAP-2.0.1" |
1928
- "OLDAP-2.1" |
1929
- "OLDAP-2.2" |
1930
- "OLDAP-2.2.1" |
1931
- "OLDAP-2.2.2" |
1932
- "OLDAP-2.3" |
1933
- "OLDAP-2.4" |
1934
- "OLDAP-2.5" |
1935
- "OLDAP-2.6" |
1936
- "OLDAP-2.7" |
1937
- "OLDAP-2.8" |
1938
- "OML" |
1939
- "OpenSSL" |
1940
- "OPL-1.0" |
1941
- "OSET-PL-2.1" |
1942
- "OSL-1.0" |
1943
- "OSL-1.1" |
1944
- "OSL-2.0" |
1945
- "OSL-2.1" |
1946
- "OSL-3.0" |
1947
- "Parity-6.0.0" |
1948
- "PDDL-1.0" |
1949
- "PHP-3.0" |
1950
- "PHP-3.01" |
1951
- "Plexus" |
1952
- "PostgreSQL" |
1953
- "PSF-2.0" |
1954
- "psfrag" |
1955
- "psutils" |
1956
- "Python-2.0" |
1957
- "Qhull" |
1958
- "QPL-1.0" |
1959
- "Rdisc" |
1960
- "RHeCos-1.1" |
1961
- "RPL-1.1" |
1962
- "RPL-1.5" |
1963
- "RPSL-1.0" |
1964
- "RSA-MD" |
1965
- "RSCPL" |
1966
- "Ruby" |
1967
- "SAX-PD" |
1968
- "Saxpath" |
1969
- "SCEA" |
1970
- "Sendmail" |
1971
- "Sendmail-8.23" |
1972
- "SGI-B-1.0" |
1973
- "SGI-B-1.1" |
1974
- "SGI-B-2.0" |
1975
- "SHL-0.5" |
1976
- "SHL-0.51" |
1977
- "SimPL-2.0" |
1978
- "SISSL" |
1979
- "SISSL-1.2" |
1980
- "Sleepycat" |
1981
- "SMLNJ" |
1982
- "SMPPL" |
1983
- "SNIA" |
1984
- "Spencer-86" |
1985
- "Spencer-94" |
1986
- "Spencer-99" |
1987
- "SPL-1.0" |
1988
- "SSH-OpenSSH" |
1989
- "SSH-short" |
1990
- "SSPL-1.0" |
1991
- "SugarCRM-1.1.3" |
1992
- "SWL" |
1993
- "TAPR-OHL-1.0" |
1994
- "TCL" |
1995
- "TCP-wrappers" |
1996
- "TMate" |
1997
- "TORQUE-1.1" |
1998
- "TOSL" |
1999
- "TU-Berlin-1.0" |
2000
- "TU-Berlin-2.0" |
2001
- "UCL-1.0" |
2002
- "Unicode-DFS-2015" |
2003
- "Unicode-DFS-2016" |
2004
- "Unicode-TOU" |
2005
- "Unlicense" |
2006
- "UPL-1.0" |
2007
- "Vim" |
2008
- "VOSTROM" |
2009
- "VSL-1.0" |
2010
- "W3C" |
2011
- "W3C-19980720" |
2012
- "W3C-20150513" |
2013
- "Watcom-1.0" |
2014
- "Wsuipa" |
2015
- "WTFPL" |
2016
- "X11" |
2017
- "Xerox" |
2018
- "XFree86-1.1" |
2019
- "xinetd" |
2020
- "Xnet" |
2021
- "xpp" |
2022
- "XSkat" |
2023
- "YPL-1.0" |
2024
- "YPL-1.1" |
2025
- "Zed" |
2026
- "Zend-2.0" |
2027
- "Zimbra-1.3" |
2028
- "Zimbra-1.4" |
2029
- "Zlib" |
2030
- "zlib-acknowledgement" |
2031
- "ZPL-1.1" |
2032
- "ZPL-2.0" |
2033
- "ZPL-2.1"
2034
- }
2035
-
1
+ // noinspection JSUnusedGlobalSymbols
2
+
3
+ import * as fs from "fs";
4
+ import { StatsBase } from "fs";
5
+ import { Stream, Transform } from "stream";
6
+ import ansiColors, { StyleFunction } from "ansi-colors";
7
+ import { RimrafOptions } from "./gulp-tasks/modules/rimraf";
8
+ import { ExecFileOptionsWithBufferEncoding } from "child_process";
9
+ import * as vinyl from "vinyl";
10
+ import { BufferFile } from "vinyl";
11
+ // noinspection ES6PreferShortImport
12
+ import { FetchReleaseOptions, ListReleasesOptions, ReleaseInfo } from "./gulp-tasks/modules/fetch-github-release/src";
13
+ import { DecompressOptions, File } from "decompress";
14
+
15
+ export * from "./gulp-tasks/modules/fetch-github-release/src";
16
+
17
+ type RequireModuleFunction<T> = (module: string) => T
18
+
19
+ interface RequireModule<T>
20
+ extends RequireModuleFunction<T> {
21
+ debug(): DebugFactory;
22
+ }
23
+
24
+ declare global {
25
+ function requireModule<T>(module: string): T;
26
+
27
+ // copied out of @types/fancy-log because imports are being stupid
28
+ interface Logger {
29
+ (...args: any[]): Logger;
30
+
31
+ dir(...args: any[]): Logger;
32
+
33
+ error(...args: any[]): Logger;
34
+
35
+ info(...args: any[]): Logger;
36
+
37
+ warn(...args: any[]): Logger;
38
+ }
39
+
40
+ interface LogLevels {
41
+ Debug: number;
42
+ Info: number;
43
+ Notice: number;
44
+ Warning: number;
45
+ Error: number;
46
+ }
47
+
48
+ enum LogThreshold {
49
+ debug = 1,
50
+ info = 2,
51
+ notice = 3,
52
+ warning = 4,
53
+ error = 5
54
+ }
55
+
56
+ interface ZarroLogger {
57
+ LogLevels: LogLevels;
58
+ threshold: LogThreshold;
59
+
60
+ setThreshold(threshold: number | string): void;
61
+
62
+ debug(...args: any[]): void;
63
+
64
+ info(...args: any[]): void;
65
+
66
+ notice(...args: any[]): void;
67
+
68
+ warning(...args: any[]): void;
69
+
70
+ error(...args: any[]): void;
71
+
72
+ fail(...args: any[]): void;
73
+
74
+ ok(...args: any[]): void;
75
+
76
+ notice(...args: any[]): void;
77
+
78
+ suppressTimestamps(): void;
79
+
80
+ showTimestamps(): void;
81
+
82
+ }
83
+
84
+ interface Log {
85
+ setThreshold(level: number): void;
86
+
87
+ debug(...args: any[]): void;
88
+
89
+ info(...args: any[]): void;
90
+
91
+ notice(...args: any[]): void;
92
+
93
+ warn(...args: any[]): void;
94
+
95
+ /**
96
+ * @deprecated this is a link back to .warn(...)
97
+ */
98
+ warning(...args: any[]): void;
99
+
100
+ error(...args: any[]): void;
101
+
102
+ /**
103
+ * @deprecated this is a link back to .error(...)
104
+ */
105
+ fail(...args: any[]): void;
106
+
107
+ ok(): void;
108
+
109
+ suppressTimestamps(): void;
110
+
111
+ showTimestamps(): void;
112
+
113
+ LogLevels: LogLevels;
114
+
115
+ threshold: LogThreshold;
116
+
117
+ }
118
+
119
+
120
+ type Func<T> = () => T;
121
+ type DebugLogFunction = (...args: any[]) => void;
122
+ type DebugFactory = (label: string) => DebugLogFunction;
123
+ type VoidVoid = () => void;
124
+ type AsyncVoidVoid = () => Promise<void>;
125
+ type AsyncVoidFunc<T> = () => Promise<T>;
126
+ type AsyncTVoid<T> = (arg: T) => Promise<void>;
127
+ type OptionsFactory<T> = (file: vinyl.BufferFile) => T | Promise<T>;
128
+ type ErrorReporter = (e: Error) => Promise<void> | void;
129
+ type GulpCallback =
130
+ (() => Promise<any> | NodeJS.EventEmitter) |
131
+ ((done: VoidVoid) => Promise<any> | NodeJS.EventEmitter | void)
132
+ type TryDo<T> = (
133
+ logic: AsyncVoidFunc<T>,
134
+ retries: number | string,
135
+ onTransientError?: ErrorReporter,
136
+ onFinalFailure?: VoidVoid
137
+ ) => Promise<T>;
138
+ type Optional<T> = T | undefined;
139
+ type Nullable<T> = T | null;
140
+ type DownloadNuget = (targetFolder: string, quiet?: boolean) => Promise<string>;
141
+
142
+ interface ResolveNugetConfig {
143
+ localNuget: string;
144
+ nugetDownloadUrl: string;
145
+ }
146
+
147
+ type FindNpmBase = () => string;
148
+ type ResolveNugetConfigGenerator = () => ResolveNugetConfig;
149
+ type ResolveNuget = (nugetPath?: string, errorOnMissing?: boolean) => string;
150
+ type FindLocalNuget = (quiet?: boolean) => Promise<string>;
151
+
152
+ type Fetch = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
153
+
154
+ interface Streamify {
155
+ streamify<T>(
156
+ fn: AsyncTVoid<T>,
157
+ optionsFactory: OptionsFactory<T>,
158
+ pluginName: string,
159
+ operation: string
160
+ ): Transform;
161
+ }
162
+
163
+ interface HttpClient {
164
+ new(): HttpClient;
165
+
166
+ suppressProgress: boolean;
167
+ assumeDownloadedIfExistsAndSizeMatches: boolean;
168
+ aborted: boolean;
169
+
170
+ download(url: string, target: string): Promise<string>;
171
+
172
+ exists(url: string): Promise<boolean>;
173
+ }
174
+
175
+ interface Decompress {
176
+ decompress(data: string | Buffer, target: string | DecompressOptions): Promise<File[]>;
177
+ }
178
+
179
+ type LogFunction = (s: string) => void;
180
+
181
+ interface HttpClientModule {
182
+ create(
183
+ infoLogFunction?: LogFunction,
184
+ debugLogFunction?: LogFunction
185
+ ): HttpClient;
186
+ }
187
+
188
+ interface SrcOptions {
189
+ allowEmpty?: boolean;
190
+ read?: boolean
191
+ }
192
+
193
+ interface GulpWithHelp {
194
+ task(name: string, callback: GulpCallback): void;
195
+
196
+ task(name: string, help: string, callback: GulpCallback): void;
197
+
198
+ task(name: string, dependencies: string[], callback?: GulpCallback): void;
199
+
200
+ task(name: string, help: string, dependencies: string[], callback?: GulpCallback): void;
201
+
202
+ src(mask: string | string[], opts?: SrcOptions): NodeJS.ReadableStream;
203
+
204
+ dest(target: string): NodeJS.WritableStream;
205
+
206
+ series(...tasks: string[]): (fn: Function) => void;
207
+ }
208
+
209
+ type RunSequence = (...args: (string | Function)[]) => void;
210
+ type RunTaskFn = (task: string) => Promise<void>;
211
+ type RunTasksFn = (...tasks: string[]) => Promise<void>;
212
+
213
+ interface RunTask {
214
+ runTask: RunTaskFn;
215
+ runSeries: RunTasksFn;
216
+ runParallel: RunTasksFn;
217
+ }
218
+
219
+ interface TemporaryEnvironmentRunner {
220
+ run<T>(fn: (() => T | Promise<T>)): Promise<T>;
221
+ }
222
+
223
+ interface EnvDictionary {
224
+ [key: AnyEnvVar | string]: string;
225
+ }
226
+
227
+ type WithEnvironment = (
228
+ env: EnvDictionary,
229
+ /**
230
+ * If you'd like to replace the entire environment instead of augmenting it,
231
+ * set this to true
232
+ */
233
+ replaceExistingEnvironment?: boolean
234
+ ) => TemporaryEnvironmentRunner;
235
+ type TemporaryEnvironment = {
236
+ withEnvironment: WithEnvironment;
237
+ }
238
+
239
+ type Gulp = GulpWithHelp;
240
+ type RunInParallel = (
241
+ maxConcurrency: number,
242
+ ...actions: AsyncVoidVoid[]
243
+ ) => Promise<void>;
244
+ type Seed = (howMany: number) => any[];
245
+ type LineBuffer = {
246
+ new(writer: LogFunction): LineBuffer;
247
+ append(data: string | Buffer): void;
248
+ flush(): void;
249
+ };
250
+
251
+ interface TestResults {
252
+ quackersEnabled: boolean;
253
+ passed: number;
254
+ skipped: number;
255
+ failed: number;
256
+ started: number;
257
+ failureSummary: string[];
258
+ slowSummary: string[];
259
+ fullLog: string[];
260
+ }
261
+
262
+ type DotNetTester = (configuration: string, source: string[]) => Promise<TestResults>;
263
+
264
+ interface TestDotNetLogic {
265
+ runTests: () => Promise<void>;
266
+ testWithNunitCli: DotNetTester;
267
+ testAsDotNetCore: DotNetTester;
268
+ shouldTestInParallel: (testProjectPaths: string[]) => Promise<boolean>;
269
+ testOneDotNetCoreProject: (
270
+ target: string,
271
+ configuration: string,
272
+ verbosity: string,
273
+ testResults: TestResults,
274
+ runningInParallel: boolean,
275
+ forceBuild?: boolean,
276
+ suppressOutput?: boolean
277
+ ) => Promise<SystemResult | SystemError>;
278
+ }
279
+
280
+ type VerifyExe = (path: string) => Promise<void>;
281
+
282
+ interface VersionInfo {
283
+ major: number;
284
+ minor?: number;
285
+ patch?: number;
286
+ tag?: string;
287
+ }
288
+
289
+ interface Version {
290
+ major: number;
291
+ minor: number;
292
+ patch: number;
293
+ tag: string;
294
+ isPreRelease: boolean;
295
+ version: number[];
296
+
297
+ new(version: string | number[] | VersionInfo): Version;
298
+
299
+ new(major: number, minor?: number, patch?: number, tag?: string): Version;
300
+
301
+ isGreaterThan(other: Version | string | number[]): boolean;
302
+
303
+ isLessThan(other: Version | string | number[]): boolean;
304
+
305
+ equals(other: Version | string | number): boolean;
306
+
307
+ compareWith(other: Version | string | number): number;
308
+ }
309
+
310
+ interface NUnitRunnerOptions {
311
+ result: string;
312
+ agents: number;
313
+ labels: string;
314
+ process: string;
315
+ }
316
+
317
+ interface GulpNUnitRunnerOptions {
318
+ executable: Optional<string>;
319
+ options: NUnitRunnerOptions;
320
+ }
321
+
322
+ type GulpNunitRunner = (options: GulpNUnitRunnerOptions) => Transform;
323
+
324
+ interface GulpVersion {
325
+ major: number;
326
+ minor: number;
327
+ patch: number;
328
+ }
329
+
330
+ type SetTaskName = (task: any, name: string) => any;
331
+
332
+ type StringMap = (input: string) => string;
333
+
334
+ interface Dictionary<TValue> {
335
+ [key: string]: TValue;
336
+ }
337
+
338
+ interface Author {
339
+ name: string;
340
+ url: string;
341
+ }
342
+
343
+ interface PackageIndex {
344
+ name: string;
345
+ version: string;
346
+ description?: string;
347
+ bin?: Dictionary<string>;
348
+ homepage?: string;
349
+ main?: string;
350
+ scripts?: Dictionary<string>;
351
+ dependencies?: Dictionary<string>;
352
+ devDependencies?: Dictionary<string>;
353
+ files?: string[];
354
+ author: Author; // I'm sure there's a multi-author construct too
355
+ license: LicenseIdentifier
356
+ }
357
+
358
+ type ResolveMasks = (
359
+ includeVar: StringEnvVar | StringEnvVar[],
360
+ excludeVar: StringEnvVar | StringEnvVar[],
361
+ modifierFunction?: StringMap
362
+ ) => string[];
363
+
364
+ type ShimNuget = (pathToNuget: string) => string;
365
+ type Retry<T> = (fn: (() => Promise<T>), attempt?: number, maxAttempts?: number, wait?: number) => Promise<T>;
366
+
367
+ type VersionIncrementStrategy =
368
+ "major" | "minor" | "patch" | "prerelease";
369
+
370
+ type StringEnvVar =
371
+ "BUILD_CONFIGURATION" |
372
+ "BUILD_PLATFORM" |
373
+ "BUILD_ARCHITECTURE" |
374
+ "BUILD_INCLUDE" |
375
+ "BUILD_EXCLUDE" |
376
+ "BUILD_ADDITIONAL_EXCLUDE" |
377
+ "BUILD_FRAMEWORK" |
378
+ "BUILD_RUNTIME" |
379
+ "NUNIT_ARCHITECTURE" |
380
+ "BUILD_REPORT_XML" |
381
+ "NUNIT_LABELS" |
382
+ "NUNIT_PROCESS" |
383
+ "TEST_INCLUDE" |
384
+ "TEST_ADDITIONAL_INCLUDE" |
385
+ "TEST_EXCLUDE" |
386
+ "TEST_ADDITIONAL_EXCLUDE" |
387
+ "TEST_VERBOSITY" |
388
+ "BUILD_TOOLSVERSION" |
389
+ "BUILD_TARGETS" |
390
+ "BUILD_VERBOSITY" |
391
+ "COVERAGE_EXCLUDE" |
392
+ "COVERAGE_INCLUDE" |
393
+ "COVERAGE_ADDITIONAL_EXCLUDE" |
394
+ "COVERAGE_XML" |
395
+ "COVERAGE_REPORTING_EXCLUDE" |
396
+ "GIT_OVERRIDE_BRANCH" |
397
+ "GIT_BRANCH" |
398
+ "GIT_MAIN_BRANCH" |
399
+ "GIT_DEFAULT_UPSTREAM" |
400
+ "GIT_VERIFY_BRANCH" |
401
+ "GIT_OVERRIDE_REMOTE" |
402
+ "GIT_REMOTE" |
403
+ "NUGET_API_KEY" |
404
+ "NUGET_API_KEYS" |
405
+ "NUGET_PUSH_SOURCE" |
406
+ "NUGET_SOURCE" |
407
+ "NUGET_SOURCES" |
408
+ "DOTNET_PUBLISH_RUNTIMES" |
409
+ "DOTNET_PUBLISH_BUILD_CONFIGURATION" |
410
+ "DOTNET_PUBLISH_OS" |
411
+ "DOTNET_PUBLISH_ARCH" |
412
+ "DOTNET_PUBLISH_FRAMEWORK" |
413
+ "DOTNET_PUBLISH_MANIFEST" |
414
+ "DOTNET_PUBLISH_VERSION_SUFFIX" |
415
+ "DOTNET_PUBLISH_VERBOSITY" |
416
+ "OUTPUT" |
417
+ "PURGE_JS_DIRS" |
418
+ "PURGE_DOTNET_DIRS" |
419
+ "PURGE_ADDITIONAL_DIRS" |
420
+ "PACK_TARGET_FOLDER" |
421
+ "PACK_INCLUDE_CSPROJ" |
422
+ "PACK_EXCLUDE_CSPROJ" |
423
+ "PACK_INCLUDE_NUSPEC" |
424
+ "PACK_EXCLUDE_NUSPEC" |
425
+ "PACK_CONFIGURATION" |
426
+ "PACK_SUPPLEMENTARY_NUSPEC" |
427
+ "PACK_BASE_PATH" |
428
+ "PACK_VERSION" |
429
+ "PACK_VERBOSITY" |
430
+ "PACKAGE_JSON" |
431
+ "INCLUDE_PACKAGE_JSON" |
432
+ "EXCLUDE_PACKAGE_JSON" |
433
+ "NPM_PUBLISH_ACCESS" |
434
+ "DOTNET_TEST_PREFIXES" |
435
+ "VERSION_INCREMENT_STRATEGY" |
436
+ "BUILD_TOOLS_FOLDER" |
437
+ "MSBUILD_PROPERTIES" |
438
+ "DEV_SMTP_BIND_IP" |
439
+ "DEV_SMTP_INTERFACE_BIND_IP" |
440
+ "DOTNET_PUBLISH_INCLUDE" |
441
+ "DOTNET_PUBLISH_EXCLUDE" |
442
+ "DOTNET_PUBLISH_ADDITIONAL_EXCLUDE" |
443
+ "DOTNET_PUBLISH_CONTAINER_REGISTRY" |
444
+ "DOTNET_PUBLISH_CONTAINER_IMAGE_TAG" |
445
+ "DOTNET_PUBLISH_CONTAINER_IMAGE_NAME" |
446
+ "TAG" |
447
+ "GIT_TAG" |
448
+ "GIT_VERSION_INCREMENT_MESSAGE" |
449
+ string; // allow client-side extension, encourage usage of env.associate & env.register
450
+
451
+ type NumericEnvVar =
452
+ "BUILD_MAX_CPU_COUNT" |
453
+ "MAX_NUNIT_AGENTS" |
454
+ "GIT_FETCH_TIMEOUT" |
455
+ "GIT_VERIFY_TIMEOUT" |
456
+ "GIT_FETCH_RECENT_TIME" |
457
+ "NUGET_PUSH_TIMEOUT" |
458
+ "PACK_INCREMENT_VERSION_BY" |
459
+ "MAX_RETRIES" |
460
+ "BUILD_RETRIES" |
461
+ "RESTORE_RETRIES" |
462
+ "MAX_CONCURRENCY" |
463
+ "DEV_SMTP_PORT" |
464
+ "DEV_SMTP_INTERFACE_PORT" |
465
+ "DOTNET_PARALLEL_STAGGER_MS" |
466
+ string;
467
+
468
+ type FlagEnvVar =
469
+ "ENABLE_NUGET_PARALLEL_PROCESSING" |
470
+ "BUILD_SHOW_INFO" |
471
+ "BUILD_FAIL_ON_ERROR" |
472
+ "BUILD_MSBUILD_NODE_REUSE" |
473
+ "DOTNET_TEST_PARALLEL" |
474
+ "DOTNET_TEST_REBUILD" |
475
+ "DOTNET_CORE" |
476
+ "DRY_RUN" |
477
+ "ENFORCE_VERIFICATION" |
478
+ "INTERACTIVE" |
479
+ "SKIP_FETCH_ON_VERIFY" |
480
+ "NO_UNICODE" |
481
+ "NO_COLOR" |
482
+ "NUGET_IGNORE_DUPLICATE_PACKAGES" |
483
+ "PACK_INCREMENT_VERSION" |
484
+ "PACK_SYNC_PROJECT_VERSION" |
485
+ "PACK_INCLUDE_EMPTY_DIRECTORIES" |
486
+ "PACK_INCLUDE_SYMBOLS" |
487
+ "PACK_INCLUDE_SOURCE" |
488
+ "PACK_LEGACY_SYMBOLS" |
489
+ "PACK_IGNORE_MISSING_DEFAULT_NUSPEC" |
490
+ "INITIAL_RELEASE" |
491
+ "VERSION_INCREMENT_ZERO" |
492
+ "BETA" |
493
+ "RETAIN_TEST_DIAGNOSTICS" |
494
+ "DOTNET_TEST_QUIET_QUACKERS" |
495
+ "UPDATE_SUBMODULES_TO_LATEST" |
496
+ "USE_SYSTEM_NUGET" |
497
+ "DOTNET_DISABLE_BUILD_SERVERS" |
498
+ "DOTNET_PUBLISH_SELF_CONTAINED" |
499
+ "DOTNET_PUBLISH_NO_BUILD" |
500
+ "DOTNET_PUBLISH_NO_RESTORE" |
501
+ "DOTNET_PUBLISH_USE_CURRENT_RUNTIME" |
502
+ "PACK_NO_BUILD" |
503
+ "PACK_NO_RESTORE" |
504
+ "ZARRO_ENABLE_CONFIGURATION_FILES" |
505
+ "DEV_SMTP_DETACHED" |
506
+ "DEV_SMTP_IGNORE_ERRORS" |
507
+ "DEV_SMTP_OPEN_INTERFACE" |
508
+ "DOTNET_PUBLISH_CONTAINER" |
509
+ "ZARRO_ALLOW_FILE_RESOLUTION" |
510
+ "NPM_PUBLISH_SKIP_OTP" |
511
+ "SKIP_NUGET_UPDATE" |
512
+ "PACK_INCREMENT_MINOR_ON_FIRST_PRERELEASE" |
513
+ "BUILD_TOOLS_INSTALL_FORCE_NUGET_EXE" |
514
+ string;
515
+
516
+ type AnyEnvVar = StringEnvVar | NumericEnvVar | FlagEnvVar | VersionIncrementStrategy;
517
+ type OverrideWhen = (existing: Optional<string>, potential: Optional<string>) => boolean;
518
+
519
+ interface EnvRegistration {
520
+ name: string | (keyof Env);
521
+ help: string | string[];
522
+ tasks?: string | string[];
523
+ overriddenBy?: string | string[];
524
+ when?: OverrideWhen;
525
+ default?: string;
526
+ }
527
+
528
+ type GetToolsFolder = (overrideEnv?: Env) => string;
529
+
530
+ interface Open {
531
+ open(url: string): Promise<void>;
532
+ }
533
+
534
+ type ResolveNugetApiKey = (forSource?: string) => Optional<string>;
535
+
536
+ interface Env
537
+ extends Dictionary<any> {
538
+ resolve(...names: (StringEnvVar | VersionIncrementStrategy)[]): string;
539
+
540
+ /**
541
+ * @description resolve an object from json set as an environment variable - note that the type annotation is for convenience: types _are not_ checked
542
+ */
543
+ resolveObject<T>(...names: (StringEnvVar | VersionIncrementStrategy)[]): T;
544
+
545
+ resolveRequired(...names: (StringEnvVar | VersionIncrementStrategy)[]): string;
546
+
547
+ resolveArray(name: AnyEnvVar | AnyEnvVar[], delimiter?: string): string[];
548
+
549
+ resolveMergedArray(name: AnyEnvVar | AnyEnvVar[], delimiter?: string): string[];
550
+
551
+ resolveNumber(name: NumericEnvVar): number;
552
+
553
+ resolveFlag(name: FlagEnvVar, fallback?: boolean): boolean;
554
+
555
+ associate(varName: AnyEnvVar | AnyEnvVar[], tasks: string | string[]): void;
556
+
557
+ resolveWithFallback<T>(varName: AnyEnvVar, fallback: T): T;
558
+
559
+ resolveMap(varName: AnyEnvVar, fallback?: Dictionary<string>, delimiter?: string): Dictionary<string>;
560
+
561
+ register(reg: EnvRegistration): void;
562
+
563
+ // these are generated on the js output by register-environment-variables
564
+ // -> included here to avoid typos: use env.CONSTANT_NAME when you want
565
+ // the constant name somewhere, eg in association
566
+ BUILD_CONFIGURATION: StringEnvVar;
567
+ BUILD_PLATFORM: StringEnvVar;
568
+ BUILD_ARCHITECTURE: StringEnvVar;
569
+ BUILD_INCLUDE: StringEnvVar;
570
+ BUILD_EXCLUDE: StringEnvVar;
571
+ BUILD_ADDITIONAL_EXCLUDE: StringEnvVar;
572
+ BUILD_FRAMEWORK: StringEnvVar;
573
+ BUILD_RUNTIME: StringEnvVar;
574
+ NUNIT_ARCHITECTURE: StringEnvVar;
575
+ BUILD_REPORT_XML: StringEnvVar;
576
+ NUNIT_LABELS: StringEnvVar; // for now, at least
577
+ NUNIT_PROCESS: StringEnvVar;
578
+ TEST_INCLUDE: StringEnvVar;
579
+ TEST_ADDITIONAL_INCLUDE: StringEnvVar;
580
+ TEST_EXCLUDE: StringEnvVar;
581
+ TEST_ADDITIONAL_EXCLUDE: StringEnvVar;
582
+ TEST_VERBOSITY: StringEnvVar; // for now, at least
583
+ BUILD_TOOLSVERSION: StringEnvVar;
584
+ BUILD_TARGETS: StringEnvVar;
585
+ BUILD_VERBOSITY: StringEnvVar;
586
+ COVERAGE_INCLUDE: StringEnvVar;
587
+ COVERAGE_EXCLUDE: StringEnvVar;
588
+ COVERAGE_ADDITIONAL_EXCLUDE: StringEnvVar;
589
+ COVERAGE_XML: StringEnvVar;
590
+ COVERAGE_REPORTING_EXCLUDE: StringEnvVar;
591
+ GIT_OVERRIDE_BRANCH: StringEnvVar;
592
+ GIT_BRANCH: StringEnvVar;
593
+ GIT_MAIN_BRANCH: StringEnvVar;
594
+ GIT_DEFAULT_UPSTREAM: StringEnvVar;
595
+ GIT_VERIFY_BRANCH: StringEnvVar;
596
+ GIT_OVERRIDE_REMOTE: StringEnvVar;
597
+ GIT_REMOTE: StringEnvVar;
598
+ NUGET_API_KEY: StringEnvVar;
599
+ NUGET_API_KEYS: StringEnvVar;
600
+ NUGET_PUSH_SOURCE: StringEnvVar;
601
+ NUGET_SOURCES: StringEnvVar;
602
+ NUGET_SOURCE: StringEnvVar;
603
+ DOTNET_PUBLISH_RUNTIMES: StringEnvVar;
604
+ DOTNET_PUBLISH_BUILD_CONFIGURATION: StringEnvVar;
605
+ DOTNET_PUBLISH_OS: StringEnvVar;
606
+ DOTNET_PUBLISH_ARCH: StringEnvVar;
607
+ DOTNET_PUBLISH_FRAMEWORK: StringEnvVar;
608
+ DOTNET_PUBLISH_MANIFEST: StringEnvVar;
609
+ DOTNET_PUBLISH_VERSION_SUFFIX: StringEnvVar;
610
+ DOTNET_PUBLISH_VERBOSITY: StringEnvVar;
611
+ OUTPUT: StringEnvVar;
612
+ PURGE_JS_DIRS: StringEnvVar;
613
+ PURGE_DOTNET_DIRS: StringEnvVar;
614
+ PURGE_ADDITIONAL_DIRS: StringEnvVar;
615
+ PACK_TARGET_FOLDER: StringEnvVar;
616
+ PACK_INCLUDE_CSPROJ: StringEnvVar;
617
+ PACK_EXCLUDE_CSPROJ: StringEnvVar;
618
+ PACK_INCLUDE_NUSPEC: StringEnvVar;
619
+ PACK_EXCLUDE_NUSPEC: StringEnvVar;
620
+ PACK_CONFIGURATION: StringEnvVar;
621
+ PACK_SUPPLEMENTARY_NUSPEC: StringEnvVar;
622
+ PACK_BASE_PATH: StringEnvVar;
623
+ PACK_VERSION: StringEnvVar;
624
+ PACK_VERBOSITY: DotNetVerbosity;
625
+ PACKAGE_JSON: StringEnvVar;
626
+ INCLUDE_PACKAGE_JSON: StringEnvVar;
627
+ EXCLUDE_PACKAGE_JSON: StringEnvVar;
628
+ NPM_PUBLISH_ACCESS: StringEnvVar;
629
+ DOTNET_TEST_PREFIXES: StringEnvVar;
630
+ VERSION_INCREMENT_STRATEGY: VersionIncrementStrategy;
631
+ BUILD_TOOLS_FOLDER: StringEnvVar;
632
+ MSBUILD_PROPERTIES: StringEnvVar;
633
+ DEV_SMTP_BIND_IP: StringEnvVar;
634
+ DEV_SMTP_INTERFACE_BIND_IP: StringEnvVar;
635
+ DOTNET_PUBLISH_INCLUDE: StringEnvVar;
636
+ DOTNET_PUBLISH_EXCLUDE: StringEnvVar;
637
+ DOTNET_PUBLISH_ADDITIONAL_EXCLUDE: StringEnvVar;
638
+ DOTNET_PUBLISH_CONTAINER_REGISTRY: StringEnvVar;
639
+ DOTNET_PUBLISH_CONTAINER_IMAGE_TAG: StringEnvVar;
640
+ DOTNET_PUBLISH_CONTAINER_IMAGE_NAME: StringEnvVar;
641
+ TAG: StringEnvVar;
642
+ GIT_TAG: StringEnvVar;
643
+ GIT_VERSION_INCREMENT_MESSAGE: StringEnvVar;
644
+
645
+ ENABLE_NUGET_PARALLEL_PROCESSING: FlagEnvVar;
646
+ BUILD_SHOW_INFO: FlagEnvVar;
647
+ BUILD_FAIL_ON_ERROR: FlagEnvVar;
648
+ BUILD_MSBUILD_NODE_REUSE: FlagEnvVar;
649
+ DOTNET_TEST_PARALLEL: FlagEnvVar;
650
+ DOTNET_TEST_REBUILD: FlagEnvVar;
651
+ DOTNET_CORE: FlagEnvVar;
652
+ DRY_RUN: FlagEnvVar;
653
+ ENFORCE_VERIFICATION: FlagEnvVar;
654
+ INTERACTIVE: FlagEnvVar;
655
+ SKIP_FETCH_ON_VERIFY: FlagEnvVar;
656
+ NO_UNICODE: FlagEnvVar;
657
+ NO_COLOR: FlagEnvVar;
658
+ NUGET_IGNORE_DUPLICATE_PACKAGES: FlagEnvVar;
659
+ PACK_INCREMENT_VERSION: FlagEnvVar;
660
+ PACK_SYNC_PROJECT_VERSION: FlagEnvVar;
661
+ PACK_INCLUDE_EMPTY_DIRECTORIES: FlagEnvVar;
662
+ PACK_INCLUDE_SYMBOLS: FlagEnvVar;
663
+ PACK_INCLUDE_SOURCE: FlagEnvVar;
664
+ PACK_LEGACY_SYMBOLS: FlagEnvVar;
665
+ INITIAL_RELEASE: FlagEnvVar;
666
+ VERSION_INCREMENT_ZERO: FlagEnvVar;
667
+ BETA: FlagEnvVar;
668
+ RETAIN_TEST_DIAGNOSTICS: FlagEnvVar;
669
+ DOTNET_TEST_QUIET_QUACKERS: FlagEnvVar;
670
+ UPDATE_SUBMODULES_TO_LATEST: FlagEnvVar;
671
+ USE_SYSTEM_NUGET: FlagEnvVar;
672
+ DOTNET_DISABLE_BUILD_SERVERS: FlagEnvVar;
673
+ DOTNET_PUBLISH_SELF_CONTAINED: FlagEnvVar;
674
+ DOTNET_PUBLISH_NO_BUILD: FlagEnvVar;
675
+ DOTNET_PUBLISH_NO_RESTORE: FlagEnvVar;
676
+ DOTNET_PUBLISH_USE_CURRENT_RUNTIME: FlagEnvVar;
677
+ PACK_NO_BUILD: FlagEnvVar;
678
+ PACK_NO_RESTORE: FlagEnvVar;
679
+ PACK_IGNORE_MISSING_DEFAULT_NUSPEC: FlagEnvVar;
680
+ ZARRO_ENABLE_CONFIGURATION_FILES: FlagEnvVar;
681
+ DEV_SMTP_DETACHED: FlagEnvVar;
682
+ DEV_SMTP_IGNORE_ERRORS: FlagEnvVar;
683
+ DEV_SMTP_OPEN_INTERFACE: FlagEnvVar;
684
+ DOTNET_PUBLISH_CONTAINER: FlagEnvVar;
685
+ ZARRO_ALLOW_FILE_RESOLUTION: FlagEnvVar;
686
+ NPM_PUBLISH_SKIP_OTP: FlagEnvVar;
687
+ SKIP_NUGET_UPDATE: FlagEnvVar;
688
+ PACK_INCREMENT_MINOR_ON_FIRST_PRERELEASE: FlagEnvVar;
689
+ BUILD_TOOLS_INSTALL_FORCE_NUGET_EXE: FlagEnvVar;
690
+
691
+ BUILD_MAX_CPU_COUNT: NumericEnvVar;
692
+ MAX_NUNIT_AGENTS: NumericEnvVar;
693
+ GIT_FETCH_TIMEOUT: NumericEnvVar;
694
+ GIT_VERIFY_TIMEOUT: NumericEnvVar;
695
+ GIT_FETCH_RECENT_TIME: NumericEnvVar;
696
+ NUGET_PUSH_TIMEOUT: NumericEnvVar;
697
+ PACK_INCREMENT_VERSION_BY: NumericEnvVar;
698
+ MAX_RETRIES: NumericEnvVar;
699
+ BUILD_RETRIES: NumericEnvVar;
700
+ RESTORE_RETRIES: NumericEnvVar;
701
+ MAX_CONCURRENCY: NumericEnvVar;
702
+ DEV_SMTP_PORT: NumericEnvVar;
703
+ DEV_SMTP_INTERFACE_PORT: NumericEnvVar;
704
+ DOTNET_PARALLEL_STAGGER_MS: NumericEnvVar;
705
+ }
706
+
707
+ type StatFunction = (path: string) => Promise<fs.Stats | null>
708
+
709
+ interface GitSha {
710
+ fetchGitSha(
711
+ forRepo?: string,
712
+ short?: boolean
713
+ ): Promise<string>;
714
+
715
+ init(): Promise<void>;
716
+
717
+ currentShortSHA: () => string;
718
+ currentGitSHA: () => string;
719
+ }
720
+
721
+ interface ZarroError
722
+ extends Error {
723
+ new(message: string): ZarroError;
724
+ }
725
+
726
+ interface ZarroErrorModule {
727
+
728
+ }
729
+
730
+ // module defs: get these via requireModule<T>("module-name");
731
+ type ReadTextFile = (path: string) => Promise<string>;
732
+ type WriteTextFile = (path: string, data: string, options?: {
733
+ encoding?: string | null,
734
+ mode?: string | number,
735
+ flag?: string | number
736
+ } | string | null) => Promise<void>
737
+ type ParseXml = (data: string) => Promise<Dictionary<any>>;
738
+ type IncrementVersion = (
739
+ version: string,
740
+ strategy: string,
741
+ zeroLowerOrder?: boolean,
742
+ incrementBy?: number
743
+ ) => string;
744
+ type ReadPackageVersion = (packageJsonPath?: string) => Promise<string | undefined>;
745
+ type ReadNuspecVersion = (pathToNuspec: string) => Promise<string | undefined>;
746
+ // FIXME: is this used anywhere? should be supplanted by csproj-utils
747
+ type ReadCsProjVersion = (pathToCsProj: string) => Promise<string | undefined>;
748
+ type ReadCsProjPackageVersion = (pathToCsProj: string) => string | undefined;
749
+ type GatherPaths = (pathSpecs: string | string[], throwForNoMatches?: boolean) => Promise<string[]>;
750
+ type PromisifyStream = (stream: Stream) => Promise<void>;
751
+
752
+ interface AlterPackageJsonVersionOptions {
753
+ packageJsonPath?: string;
754
+ dryRun?: boolean;
755
+ strategy?: string;
756
+ zero?: boolean;
757
+ loadUnsetFromEnvironment?: boolean;
758
+ incrementBy?: number
759
+ }
760
+
761
+ type GuessIndent = (text: string) => number;
762
+
763
+ type AlterPackageJson = (opts?: AlterPackageJsonVersionOptions) => Promise<void>;
764
+ type Rimraf = (at: string, opts?: RimrafOptions) => Promise<void>;
765
+ type ReadPackageJson = (at?: string) => Promise<PackageIndex>;
766
+
767
+ type IoConsumer = (d: string) => void
768
+
769
+ interface IoHandlers {
770
+ stdout?: IoConsumer;
771
+ stderr?: IoConsumer;
772
+ }
773
+
774
+ interface ExecError
775
+ extends Error {
776
+ info: {
777
+ exitCode: number;
778
+ cmd: string;
779
+ args: string[];
780
+ opts?: ExecOpts;
781
+ stdout: string[];
782
+ stderr: string[];
783
+ timedOut: boolean;
784
+ }
785
+ }
786
+
787
+ type Exec =
788
+ ((cmd: string, args?: string[], opts?: ExecOpts, handlers?: IoHandlers) => Promise<string>) & {
789
+ alwaysSuppressOutput: boolean
790
+ };
791
+
792
+ type Uniq = (values: any[]) => any[];
793
+ type EnvHelpers = {
794
+ env: (name: string, fallback?: string) => string;
795
+ envNumber: (name: string, fallback?: number) => number;
796
+ envFlag: (name: string, fallback?: boolean) => boolean;
797
+ };
798
+
799
+ interface Version {
800
+ }
801
+
802
+ interface PackageInfo {
803
+ id: string;
804
+ version: Version;
805
+ }
806
+
807
+ interface PathUtils {
808
+ splitPath: (path: string) => string[];
809
+ baseName: (path: string) => string;
810
+ chopExtension: (path: string) => string;
811
+ }
812
+
813
+ interface ObsoleteWarning {
814
+ reason: string;
815
+ expires: string;
816
+ }
817
+
818
+ type MakeObsolete = (module: any, data: ObsoleteWarning) => any;
819
+
820
+ interface TestUtils {
821
+ resolveTestPrefixFor: (path: string) => string;
822
+ }
823
+
824
+ type GulpIncrementNugetPackageDependencyVersion =
825
+ (packageMatch: RegExp | string) => any;
826
+
827
+ // @ts-ignore
828
+ export interface ExecOpts
829
+ extends ExecFileOptionsWithBufferEncoding {
830
+ // force usage of execfile
831
+ _useExecFile?: boolean;
832
+ // exec normally mirrors output (and returns it)
833
+ // -> set this to true to only return the output
834
+ suppressOutput?: boolean;
835
+
836
+ // merge stdout & stderr into one output
837
+ mergeIo?: boolean;
838
+
839
+ encoding?: string | null;
840
+ }
841
+
842
+ export interface NugetPushOpts {
843
+ skipDuplicates?: boolean;
844
+ }
845
+
846
+ type IsWindows = () => boolean;
847
+
848
+ type PackOptions = {
849
+ basePath?: string;
850
+ excludeEmptyDirectories?: boolean;
851
+ version?: string;
852
+ symbols?: boolean;
853
+ legacySymbols?: boolean;
854
+ };
855
+ type Pack = (opts?: PackOptions) => Stream;
856
+
857
+ type Colors = "black"
858
+ | "red"
859
+ | "green"
860
+ | "yellow"
861
+ | "blue"
862
+ | "magenta"
863
+ | "cyan"
864
+ | "white"
865
+ | "gray"
866
+ | "grey"
867
+ // bright colors
868
+ | "blackBright"
869
+ | "redBright"
870
+ | "greenBright"
871
+ | "yellowBright"
872
+ | "blueBright"
873
+ | "magentaBright"
874
+ | "cyanBright"
875
+ | "whiteBright"
876
+
877
+ type Status = {
878
+ start(message: string, color?: Colors): void;
879
+ ok(): void;
880
+ fail(): void;
881
+ run<T>(message: string, action: (() => T | Promise<T>)): void;
882
+ };
883
+ type Sleep = (ms: number) => Promise<void>;
884
+ type Which = (executable: string) => Optional<string>;
885
+
886
+ interface Failer {
887
+ promise: Promise<void>;
888
+
889
+ cancel(): void;
890
+ }
891
+
892
+ type FailAfter = (ms: number, message?: string) => Failer;
893
+
894
+ type NugetUpdateSelf = (nugetPath: string) => Promise<void>;
895
+
896
+ interface TestUtilFinderOptions {
897
+ x86?: boolean;
898
+ platform?: string;
899
+ architecture?: string;
900
+ ignoreBetas?: boolean;
901
+ }
902
+
903
+ interface TestUtilFinder {
904
+ latestNUnit(opts?: TestUtilFinderOptions): Optional<string>;
905
+
906
+ latestDotCover(opts?: TestUtilFinderOptions): Optional<string>;
907
+
908
+ latestOpenCover(): Optional<string>;
909
+
910
+ findTool(exeName: string, underFolder?: string): Optional<string>;
911
+
912
+ /**
913
+ * @deprecated
914
+ */
915
+ nunit2Finder(): Optional<string>;
916
+
917
+ /**
918
+ * @description used to sort arrays of versioned folders
919
+ */
920
+ compareVersionArrays(x: number[], y: number[]): number;
921
+ }
922
+
923
+ /**
924
+ * @deprecated rather require("yafs")
925
+ */
926
+ export interface FileSystemUtils {
927
+ folderExists(at: string): Promise<boolean>;
928
+
929
+ fileExists(at: string): Promise<boolean>;
930
+
931
+ stat(p: string): Promise<StatsBase<any>>;
932
+
933
+ readFile(p: string, opts: any): Promise<Buffer | string>;
934
+
935
+ readdir(p: string): Promise<string[]>;
936
+
937
+ mkdir(p: string, opts: any): Promise<void>;
938
+
939
+ existsSync(p: string): boolean;
940
+
941
+ writeFileSync(p: string, contents: Buffer): void;
942
+ }
943
+
944
+ // simple-git wrappers
945
+ // resolves the (assumed primary) git remote at the current folder or provided override, allowing an environment override via GIT_REMOTE
946
+ type ResolveGitRemote = (at?: string) => Promise<string | undefined>;
947
+ // attempt to read the primary git remote, if there is one
948
+ type ReadGitRemote = (at?: string) => Promise<string | undefined>;
949
+ type ReadAllGitRemotes = (at?: string) => Promise<GitRemote[]>;
950
+ // resolves the git branch at the current folder or provided override, allowing an environment override via GIT_BRANCH
951
+ type ResolveGitBranch = (at?: string) => Promise<string | undefined>;
952
+ // reads the checked out branch name at the current folder or provided override
953
+ type ReadCurrentGitBranch = (at?: string) => Promise<string | undefined>;
954
+ type ReadAllGitBranches = (at?: string) => Promise<string[]>;
955
+ type ReadLastFetchTime = (at?: string) => Promise<Date | undefined>;
956
+ // runs some git functionality, returning undefined if that functionality is run outside a repo folder
957
+ type SafeGit = ((fn: () => Promise<any>, defaultValue?: any) => Promise<any | undefined>)
958
+
959
+ type PromisifyFunction = (fn: Function, parent?: any, cannotError?: any) => ((...args: any[]) => Promise<any>);
960
+
961
+ type ParseXmlString = (str: string) => any; // TODO: get xml types in here?
962
+ type LoadXmlFile = (str: string) => any; // TODO: get xml types in here?
963
+
964
+ type GitTagFromCsProj = (options?: GitTagOptions) => Stream;
965
+ type GitFetch = (all: boolean) => Promise<void>;
966
+ type NugetPush = (packageFile: string, sourceName?: string, options?: NugetPushOpts) => Promise<void>;
967
+
968
+ interface ParseNugetVersion {
969
+ parseNugetVersion(versionStringOrFileName: string): Version;
970
+ }
971
+
972
+ type ReadGitCommitDeltaCount = (mainBranch: string, otherBranch: string) => Promise<GitCommitDeltaCount>;
973
+ type ReadMainBranchName = () => Promise<string | undefined>;
974
+
975
+ interface GitCommitDeltaCount {
976
+ behind: number;
977
+ ahead: number;
978
+ }
979
+
980
+ type AnsiColors = typeof ansiColors;
981
+
982
+ type ReadGitInfo = (at?: string) => Promise<GitInfo>;
983
+
984
+ enum GitRemoteUsage {
985
+ fetch,
986
+ push,
987
+ fetchAndPush
988
+ }
989
+
990
+ interface GitRemote {
991
+ name: string;
992
+ url: string;
993
+ usage: GitRemoteUsage
994
+ }
995
+
996
+ interface GitInfo {
997
+ isGitRepository: boolean;
998
+ remotes: GitRemote[];
999
+ primaryRemote: string;
1000
+ branches: string[];
1001
+ currentBranch: string;
1002
+ }
1003
+
1004
+ interface GitTagOptions {
1005
+ tag: string;
1006
+ comment?: string;
1007
+ where?: string;
1008
+ dryRun?: boolean;
1009
+ ignorePreRelease?: boolean;
1010
+ push?: boolean;
1011
+ }
1012
+
1013
+ interface GitPushOptions {
1014
+ dryRun?: boolean;
1015
+ quiet?: boolean;
1016
+ where?: string
1017
+ }
1018
+
1019
+ type GitTag = (tag: string | GitTagOptions, comment?: string, where?: string) => Promise<void>;
1020
+ type GitPush = (dryRun?: boolean | GitPushOptions, quiet?: boolean, where?: string) => Promise<void>;
1021
+ type GitPushTags = (dryRun?: boolean | GitPushOptions, comment?: string, where?: string) => Promise<void>;
1022
+ type QuoteIfRequired = (str?: string) => string;
1023
+
1024
+ type StdioOptions = "pipe" | "ignore" | "inherit" |
1025
+ Array<("pipe" | "ipc" | "ignore" | "inherit" | any | number | null | undefined)>;
1026
+
1027
+ type StringConsumer = (data: string) => void;
1028
+ type ProcessIO = string | StringConsumer;
1029
+
1030
+ type UpdateNuspecVersion = (fileOrXml: string, newVersion: string) => Promise<string>;
1031
+
1032
+ interface SpawnOptions {
1033
+ windowsHide?: boolean;
1034
+ timeout?: number;
1035
+ argv0?: string;
1036
+ stdio?: StdioOptions;
1037
+ shell?: boolean | string;
1038
+ windowsVerbatimArguments?: boolean;
1039
+
1040
+ uid?: number;
1041
+ gid?: number;
1042
+ cwd?: string;
1043
+ env?: NodeJS.ProcessEnv;
1044
+
1045
+ stdout?: ProcessIO;
1046
+ stderr?: ProcessIO;
1047
+ lineBuffer?: boolean;
1048
+
1049
+ detached?: boolean;
1050
+
1051
+ /*
1052
+ * when a process is marked as interactive, no stderr/stdout
1053
+ * collection is done as the IO is left as "inherit"
1054
+ */
1055
+ interactive?: boolean;
1056
+ suppressStdIoInErrors?: boolean;
1057
+
1058
+ /*
1059
+ * quotes can be hard, so if things aren't working out and
1060
+ * you'd like to take full control, set this
1061
+ */
1062
+ disableAutomaticQuoting?: boolean;
1063
+
1064
+ /**
1065
+ * when set true, output will not be echoed back on the
1066
+ * console but you will be able to get it from a custom
1067
+ * io writer or the result from after spawn completes
1068
+ */
1069
+ suppressOutput?: boolean;
1070
+ }
1071
+
1072
+ interface SystemOptions {
1073
+ windowsHide?: boolean;
1074
+ timeout?: number;
1075
+ argv0?: string;
1076
+ shell?: boolean | string;
1077
+ windowsVerbatimArguments?: boolean;
1078
+
1079
+ uid?: number;
1080
+ gid?: number;
1081
+ cwd?: string;
1082
+ env?: NodeJS.ProcessEnv;
1083
+
1084
+ stdout?: ProcessIO;
1085
+ stderr?: ProcessIO;
1086
+
1087
+ detached?: boolean;
1088
+
1089
+ /*
1090
+ * when a process is marked as interactive, no stderr/stdout
1091
+ * collection is done as the IO is left as "inherit"
1092
+ */
1093
+ interactive?: boolean;
1094
+ suppressStdIoInErrors?: boolean;
1095
+
1096
+ /**
1097
+ * when set true, output will not be echoed back on the
1098
+ * console but you will be able to get it from a custom
1099
+ * io writer or the result from after spawn completes
1100
+ */
1101
+ suppressOutput?: boolean;
1102
+
1103
+ /**
1104
+ * when set to true, if a temporary file for launching your command was
1105
+ * required, it won't be cleaned up. It will appear in the spawn output
1106
+ * / error as the first argument, with the exe set to either cmd or sh
1107
+ */
1108
+ keepTempFiles?: boolean;
1109
+ }
1110
+
1111
+ /**
1112
+ * @deprecated rather use the better-tested `system` module and SystemError
1113
+ */
1114
+ interface SpawnError
1115
+ extends Error {
1116
+ new(
1117
+ message: string,
1118
+ exe: string,
1119
+ args: string[] | undefined,
1120
+ exitCode: number,
1121
+ stdout: Nullable<string[]>,
1122
+ stderr: Nullable<string[]>
1123
+ ): SpawnError;
1124
+
1125
+ exe: string;
1126
+ args: string[];
1127
+ exitCode: number;
1128
+ stderr: string[];
1129
+ stdout: string[];
1130
+
1131
+ isSpawnError(o: any): o is SpawnError
1132
+ }
1133
+
1134
+ /**
1135
+ * @deprecated rather use the better-tested `system` module and SystemResult
1136
+ */
1137
+ interface SpawnResult {
1138
+ new(
1139
+ executable: string,
1140
+ args: string[],
1141
+ exitCode: number,
1142
+ stderr: string[],
1143
+ stdout: string[]
1144
+ ): SpawnResult;
1145
+
1146
+ executable: string;
1147
+ args: string[];
1148
+ exitCode: number;
1149
+ stderr: string[];
1150
+ stdout: string[];
1151
+
1152
+ isSpawnResult(o: any): o is SpawnResult
1153
+ }
1154
+
1155
+ interface Linq {
1156
+ last<T>(arr: T[]): Optional<T>;
1157
+
1158
+ first<T>(arr: T[]): Optional<T>;
1159
+
1160
+ skip<T>(arr: T[] | IterableIterator<T>, howMany: number): IterableIterator<T>;
1161
+
1162
+ take<T>(arr: T[] | IterableIterator<T>, howMany: number): IterableIterator<T>;
1163
+ }
1164
+
1165
+ type RequireModuleFn = <T>(name: string) => T;
1166
+
1167
+ type SpawnFunction = (program: string, args?: string[], options?: SpawnOptions)
1168
+ => Promise<SpawnResult>;
1169
+
1170
+ interface Spawn
1171
+ extends SpawnFunction {
1172
+ SpawnResult: Function;
1173
+ SpawnError: Function;
1174
+ isSpawnError: (o: any) => o is SpawnError;
1175
+ isSpawnResult: (o: any) => o is SpawnResult;
1176
+ }
1177
+
1178
+ interface SystemCommand {
1179
+ exe: string;
1180
+ args: string[];
1181
+ }
1182
+
1183
+ interface SystemResultImpl
1184
+ extends SystemCommand {
1185
+ new(
1186
+ exe: string,
1187
+ args: string[],
1188
+ exitCode: Optional<number>,
1189
+ stderr: string[],
1190
+ stdout: string[]
1191
+ ): SystemResult;
1192
+
1193
+ exitCode?: number;
1194
+ stderr: string[];
1195
+ stdout: string[];
1196
+
1197
+ isResult(): this is SystemResult;
1198
+ isError(): this is SystemError;
1199
+ }
1200
+
1201
+ interface SystemResultBuilder {
1202
+ withExe(exe: string): SystemResultBuilder;
1203
+ withArgs(args: string[]): SystemResultBuilder;
1204
+ withExitCode(code: number): SystemResultBuilder;
1205
+ withStdErr(lines: string[] | string): SystemResultBuilder;
1206
+ withStdOut(lines: string[] | string): SystemResultBuilder;
1207
+ build(): SystemResult;
1208
+ }
1209
+
1210
+ type SystemResult = {
1211
+ create(): SystemResultBuilder;
1212
+ } & SystemResultImpl;
1213
+
1214
+ interface SystemError
1215
+ extends Error, SystemCommand {
1216
+ new(
1217
+ message: string,
1218
+ exe: string,
1219
+ args: string[] | undefined,
1220
+ exitCode: number,
1221
+ stdout: Nullable<string[]>,
1222
+ stderr: Nullable<string[]>
1223
+ ): SystemError;
1224
+
1225
+ exitCode: number;
1226
+ stderr: string[];
1227
+ stdout: string[];
1228
+
1229
+ isError(o: any): o is SystemError;
1230
+
1231
+ isResult(o: any): o is SystemError;
1232
+ }
1233
+
1234
+ type SystemFunction = (program: string, args?: string[], options?: SystemOptions)
1235
+ => Promise<SystemResult | SystemError>;
1236
+
1237
+ interface System
1238
+ extends SystemFunction {
1239
+ isError(o: any): o is SystemError;
1240
+ isResult(o: any): o is SystemResult;
1241
+ }
1242
+
1243
+ interface TempFile {
1244
+ path: string;
1245
+ destroy(): void;
1246
+ }
1247
+
1248
+ type ThrowIfNoFiles = (msg: string) => Transform;
1249
+ type LogConfig = (config: any, labels: Dictionary<string>) => void;
1250
+
1251
+ interface NugetRestoreOptions {
1252
+ debug?: boolean;
1253
+ force?: boolean;
1254
+ nuget?: string;
1255
+ }
1256
+
1257
+ type ZarroTestPackage = "local" | "beta" | "latest" | string;
1258
+ interface TestZarroOptions {
1259
+ packageVersion: ZarroTestPackage;
1260
+ tasks: string | string[];
1261
+ rollback?: boolean;
1262
+ }
1263
+ type TestZarro = (opts: TestZarroOptions) => Promise<void>;
1264
+
1265
+ type GulpNugetRestore = (opts: NugetRestoreOptions) => Stream;
1266
+ type LongestStringLength = (strings: string[]) => number;
1267
+ /**
1268
+ * @description generates a version suffix based on the current timestamp and git SHA
1269
+ */
1270
+ type GenerateVersionSuffix = () => string;
1271
+
1272
+ interface GulpPurgeOptions {
1273
+ dryRun?: boolean;
1274
+ debug?: boolean;
1275
+ stopOnErrors?: boolean;
1276
+ }
1277
+
1278
+ type GulpPurge = (options: GulpPurgeOptions) => Transform;
1279
+
1280
+ interface GulpNpmRun {
1281
+ gulpNpmRun: (gulp: Gulp) => void;
1282
+ isNpmScript: (name: string) => boolean;
1283
+ }
1284
+ type Nuget = (args: string[], opts?: SystemOptions) => Promise<void>;
1285
+
1286
+ interface CliSupport {
1287
+ pushIfSet: (args: string[], value: Optional<string | number>, cliSwitch: string) => void;
1288
+ pushFlag: (args: string[], value: Optional<boolean>, cliSwitch: string) => void;
1289
+ }
1290
+
1291
+ interface NugetInstallOptions {
1292
+ packageId: string;
1293
+ version?: string;
1294
+ outputDirectory?: string;
1295
+ dependencyVersion?: string;
1296
+ framework?: string;
1297
+ excludeVersion?: string;
1298
+ preRelease?: boolean;
1299
+ requireConsent?: boolean;
1300
+ solutionDirectory?: string;
1301
+ source?: string;
1302
+ fallbackSource?: string;
1303
+ noCache?: boolean;
1304
+ directDownload?: boolean;
1305
+ disableParallelProcessing?: boolean;
1306
+ packageSaveMode?: NugetPackageSaveMode;
1307
+ verbosity?: NugetVerbosity;
1308
+ nonInteractive?: boolean;
1309
+ configFile?: string;
1310
+ forceEnglishOutput?: boolean;
1311
+
1312
+ systemOptions?: SystemOptions;
1313
+ }
1314
+
1315
+ type NugetPackageSaveMode = "nuspec" | "nupkg" | "nuspec;nupkg";
1316
+ type NugetVerbosity = "normal" | "quiet" | "detailed";
1317
+
1318
+ interface NugetCli {
1319
+ install: (opts: NugetInstallOptions) => Promise<void>;
1320
+ clearAllCache(): Promise<void>;
1321
+ clearHttpCache(): Promise<void>;
1322
+ listSources(): Promise<NugetSource[]>;
1323
+ addSource(src: NugetAddSourceOptions): Promise<void>;
1324
+ enableSource(name: string): Promise<void>;
1325
+ disableSource(name: string): Promise<void>;
1326
+ }
1327
+
1328
+ type ParseNugetSources = (lines: string[]) => NugetSource[];
1329
+
1330
+ type CreateTempFile = (contents?: string | Buffer, at?: string) => Promise<TempFile>;
1331
+ type MultiSplit = (str: string, delimiters: string[]) => string[];
1332
+
1333
+ type GulpNetFXTestAssemblyFilter = (configuration: string) => ((f: BufferFile) => boolean);
1334
+ type Pad = (str: string, len: number, isRight?: boolean, padString?: string) => string;
1335
+ type PadLeft = (str: string, len: number, padString?: string) => string;
1336
+ type PadRight = (str: string, len: number, padString?: string) => string;
1337
+ type PathUnquote = (str: string) => string;
1338
+ type ResolveTestMasks = (isDotnetCore?: boolean) => string[];
1339
+
1340
+ interface AskOptions {
1341
+ inputStream?: NodeJS.ReadStream,
1342
+ outputStream?: NodeJS.WriteStream,
1343
+ validator?: (s: string) => boolean;
1344
+ }
1345
+ type AskFunction = (message: string, options?: AskOptions) => Promise<string>;
1346
+ type Ask = {
1347
+ ask: AskFunction
1348
+ };
1349
+
1350
+ interface GulpUtil {
1351
+ PluginError: PluginError;
1352
+ log: Logger;
1353
+ colors: StyleFunction;
1354
+ }
1355
+
1356
+ interface PluginError
1357
+ extends Error {
1358
+ new(pluginName: string, err: string | Error): void;
1359
+
1360
+ verbosity?: string;
1361
+ }
1362
+
1363
+ type DotNetVerbosity = "q" | "quiet" | "m" | "minimal" | "n" | "normal" | "d" | "detailed" | "diag" | "diagnostic";
1364
+
1365
+ type DotNetTestLoggers = Dictionary<Dictionary<string>>;
1366
+
1367
+ interface DotNetBaseOptions
1368
+ extends IoConsumers {
1369
+ msbuildProperties?: Dictionary<string>;
1370
+ additionalArguments?: string[];
1371
+ verbosity?: DotNetVerbosity | string;
1372
+ // when set, errors are returned instead of thrown
1373
+ suppressErrors?: boolean;
1374
+ suppressStdIoInErrors?: boolean;
1375
+ suppressOutput?: boolean;
1376
+
1377
+ env?: Dictionary<string>;
1378
+ }
1379
+
1380
+ type GulpXBuild = (opts?: any) => Transform;
1381
+ type GulpMsBuild = (opts?: any) => Transform;
1382
+
1383
+ interface GulpXBuildOptions {
1384
+ target: string | string[],
1385
+ noConsoleLogger?: boolean;
1386
+ configuration?: string;
1387
+ verbosity?: string;
1388
+ platform?: string;
1389
+ nologo?: boolean;
1390
+ }
1391
+
1392
+ interface GulpDotNetCoverExec {
1393
+ dotCover?: string;
1394
+ openCover?: string;
1395
+ nunit?: string;
1396
+ }
1397
+
1398
+ interface GulpDotNetCoverOptions {
1399
+ failOnError?: boolean;
1400
+ exec?: GulpDotNetCoverExec;
1401
+ baseFilters?: string;
1402
+ exclude?: string[];
1403
+ nunitOptions?: string;
1404
+ allowProjectAssemblyMismatch?: boolean;
1405
+ nunitOutput?: string;
1406
+ coverageReportBase?: string;
1407
+ coverageOutput?: string;
1408
+ agents?: number;
1409
+ testAssemblyFilter?: ((f: string) => boolean) | RegExp;
1410
+ coverageTool?: string;
1411
+ testAssemblies?: string[];
1412
+ debug?: boolean;
1413
+
1414
+ x86?: boolean;
1415
+ platform?: string;
1416
+ architecture?: string;
1417
+ }
1418
+
1419
+ type GulpDotNetCover = (opts?: GulpDotNetCoverOptions) => Transform;
1420
+
1421
+ interface DotNetCommonBuildOptions
1422
+ extends DotNetBaseOptions {
1423
+ target: string;
1424
+ configuration?: string | string[];
1425
+ framework?: string;
1426
+ runtime?: string;
1427
+ output?: string;
1428
+ arch?: string;
1429
+ os?: string;
1430
+ disableBuildServers?: boolean;
1431
+ }
1432
+
1433
+ interface DotNetPublishContainerOptions {
1434
+ publishContainer?: boolean;
1435
+ containerImageTag?: string;
1436
+ containerRegistry?: string;
1437
+ containerImageName?: string;
1438
+ }
1439
+
1440
+ interface DotNetPublishOptions
1441
+ extends DotNetCommonBuildOptions,
1442
+ DotNetPublishContainerOptions {
1443
+ useCurrentRuntime?: boolean;
1444
+ manifest?: string;
1445
+ noBuild?: boolean;
1446
+ noRestore?: boolean;
1447
+ selfContained?: boolean;
1448
+ versionSuffix?: string;
1449
+ }
1450
+
1451
+ interface DotNetPackOptions
1452
+ extends DotNetBaseOptions {
1453
+ target: string;
1454
+ output?: string;
1455
+ configuration?: string | string[];
1456
+ noBuild?: boolean;
1457
+ includeSymbols?: boolean;
1458
+ includeSource?: boolean;
1459
+ noRestore?: boolean;
1460
+ versionSuffix?: string;
1461
+ nuspec?: string;
1462
+ /**
1463
+ * @description when the specified Package.nuspec is not
1464
+ * found and this flag is set, then pack() will silently
1465
+ * drop the option; otherwise an error will be thrown.
1466
+ */
1467
+ ignoreMissingNuspec?: boolean
1468
+ }
1469
+
1470
+ interface DotNetBuildOptions
1471
+ extends DotNetCommonBuildOptions {
1472
+ noIncremental?: boolean;
1473
+ disableBuildServers?: boolean;
1474
+ selfContained?: boolean;
1475
+ noDependencies?: boolean;
1476
+ noRestore?: boolean;
1477
+ versionSuffix?: string;
1478
+ }
1479
+
1480
+ interface DotNetCleanOptions
1481
+ extends DotNetBaseOptions {
1482
+ target: string;
1483
+ framework?: string;
1484
+ runtime?: string;
1485
+ configuration?: string | string[],
1486
+ output?: string;
1487
+ }
1488
+
1489
+ interface DotNetNugetPushOptions
1490
+ extends DotNetBaseOptions {
1491
+ target: string;
1492
+ apiKey?: string;
1493
+ symbolApiKey?: string;
1494
+ disableBuffering?: boolean;
1495
+ noSymbols?: boolean;
1496
+ skipDuplicate?: boolean;
1497
+ noServiceEndpoint?: boolean;
1498
+ forceEnglishOutput?: boolean;
1499
+ source?: string;
1500
+ symbolSource?: string;
1501
+ timeout?: number;
1502
+ }
1503
+
1504
+ interface IoConsumers {
1505
+ stdout?: IoConsumer;
1506
+ stderr?: IoConsumer;
1507
+ }
1508
+
1509
+ interface DotNetTestOptions
1510
+ extends DotNetCommonBuildOptions {
1511
+ noBuild?: boolean;
1512
+ noRestore?: boolean;
1513
+ loggers?: DotNetTestLoggers;
1514
+ settingsFile?: string;
1515
+ env?: Dictionary<string>;
1516
+ filter?: string;
1517
+ diagnostics?: string;
1518
+ label?: string;
1519
+ }
1520
+
1521
+ interface NugetSource {
1522
+ name: string;
1523
+ url: string;
1524
+ enabled: boolean;
1525
+ }
1526
+
1527
+ interface NugetAddSourceOptions {
1528
+ name: string;
1529
+ url: string;
1530
+ username?: string;
1531
+ password?: string;
1532
+ storePasswordInClearText?: boolean;
1533
+ validAuthenticationTypes?: string;
1534
+ configFile?: string;
1535
+ enabled?: boolean;
1536
+ }
1537
+
1538
+ interface DotNetPackageReference {
1539
+ id: string;
1540
+ version: string;
1541
+ }
1542
+
1543
+ interface ResolvedContainerOption {
1544
+ value: string;
1545
+ environmentVariable: string;
1546
+ option: keyof DotNetPublishContainerOptions;
1547
+ usingFallback: boolean;
1548
+ }
1549
+
1550
+ type DotNetTestFunction = (opts: DotNetTestOptions) => Promise<SystemResult | SystemError>;
1551
+ type DotNetBuildFunction = (opts: DotNetBuildOptions) => Promise<SystemResult | SystemError>;
1552
+ type DotNetPackFunction = (opts: DotNetPackOptions) => Promise<SystemResult | SystemError>;
1553
+ type DotNetNugetPushFunction = (opts: DotNetNugetPushOptions) => Promise<SystemResult | SystemError>;
1554
+ type DotNetCleanFunction = (opts: DotNetCleanOptions) => Promise<SystemResult | SystemError>;
1555
+ type DotNetPublishFunction = (opts: DotNetPublishOptions) => Promise<SystemResult | SystemError>;
1556
+ type DotNetListPackagesFunction = (projectPath: string) => Promise<DotNetPackageReference[]>;
1557
+ type DotNetPublishResolveContainerOptions = (opts: DotNetPublishOptions) => Promise<ResolvedContainerOption[]>;
1558
+ type DotNetNugetAddSourceFunction = (opts: NugetAddSourceOptions) => Promise<void>;
1559
+ type DotNetRemoveNugetSourceFunction = (source: string | NugetSource) => Promise<void>;
1560
+ type DotNetListNugetSourcesFunction = () => Promise<NugetSource[]>;
1561
+ type DotNetEnableNugetSourceFunction = (source: string | NugetSource) => Promise<void>;
1562
+ type DotNetDisableNugetSourceFunction = (source: string | NugetSource) => Promise<void>;
1563
+ type DotNetTryMatchNugetSourceFunction = (nameOrUrlOrHostOrSpec: string | Partial<NugetSource> | RegExp) => Promise<Optional<NugetSource>>;
1564
+
1565
+ interface DotNetCli {
1566
+ clean: DotNetCleanFunction;
1567
+ build: DotNetBuildFunction;
1568
+ test: DotNetTestFunction;
1569
+ pack: DotNetPackFunction;
1570
+ nugetPush: DotNetNugetPushFunction;
1571
+ publish: DotNetPublishFunction;
1572
+ listPackages: DotNetListPackagesFunction;
1573
+ resolveContainerOptions: DotNetPublishResolveContainerOptions;
1574
+ listNugetSources: DotNetListNugetSourcesFunction;
1575
+ addNugetSource: DotNetNugetAddSourceFunction;
1576
+ removeNugetSource: DotNetRemoveNugetSourceFunction;
1577
+ enableNugetSource: DotNetEnableNugetSourceFunction;
1578
+ disableNugetSource: DotNetDisableNugetSourceFunction;
1579
+ tryFindConfiguredNugetSource: DotNetTryMatchNugetSourceFunction;
1580
+ incrementTempDbPortHintIfFound: (env: Dictionary<string>) => void;
1581
+ }
1582
+
1583
+ type ReadCsProjNode = (csproj: string) => Promise<string>;
1584
+ type ReadCsProjProperty = (
1585
+ pathToCsProj: string,
1586
+ property: string,
1587
+ fallback?: string | (() => Promise<string>)
1588
+ ) => Promise<Optional<string>>;
1589
+
1590
+ interface GulpIncrementNugetPackageVersion {
1591
+ incrementPackageVersion: TransformFunction<void>;
1592
+ }
1593
+
1594
+ interface CsProjUtils {
1595
+ readPackageVersion: ReadCsProjNode;
1596
+ readAssemblyVersion: ReadCsProjNode;
1597
+ readAssemblyName: ReadCsProjNode;
1598
+ readProjectVersion: ReadCsProjNode;
1599
+ readCsProjProperty: ReadCsProjProperty;
1600
+ }
1601
+
1602
+ type VoidTransformFunction = () => Transform;
1603
+ type TransformFunctionWithOptionalArgs<T> = (opts?: T) => Transform;
1604
+ type TransformFunction<T> = (opts: T) => Transform;
1605
+ type GulpDotNetTestFunction = TransformFunction<DotNetTestOptions>;
1606
+ type GulpDotNetBuildFunction = TransformFunction<DotNetBuildOptions>;
1607
+ type GulpDotNetPackFunction = TransformFunction<DotNetPackOptions>;
1608
+ type GulpDotNetNugetPushFunction = TransformFunction<DotNetNugetPushOptions>;
1609
+ type GulpDotNetCleanFunction = TransformFunction<DotNetCleanOptions>;
1610
+ type GulpDotNetPublishFunction = TransformFunction<DotNetPublishOptions>;
1611
+
1612
+ interface GulpDotNetCli {
1613
+ build: GulpDotNetBuildFunction;
1614
+ clean: GulpDotNetCleanFunction;
1615
+ test: GulpDotNetTestFunction;
1616
+ pack: GulpDotNetPackFunction;
1617
+ nugetPush: GulpDotNetNugetPushFunction;
1618
+ publish: GulpDotNetPublishFunction;
1619
+ }
1620
+
1621
+ interface FetchGithubRelease {
1622
+ fetchLatestRelease(options: Omit<FetchReleaseOptions, "getRelease">): Promise<string[]>
1623
+
1624
+ fetchReleaseByTag(options: Omit<FetchReleaseOptions, "getRelease"> & { tag: string; }): Promise<string[]>;
1625
+
1626
+ fetchLatestReleaseInfo(options: ListReleasesOptions): Promise<ReleaseInfo>;
1627
+
1628
+ listReleases(options: ListReleasesOptions): Promise<ReleaseInfo[]>;
1629
+ }
1630
+
1631
+ interface InstallLocalTools {
1632
+ install: (required: string | string[], overrideToolsFolder?: string) => Promise<void>;
1633
+ clean: (overrideToolsFolder?: string) => Promise<void>;
1634
+ }
1635
+
1636
+ interface RewriteFile {
1637
+ rewriteFile: (transform?: ((s: Buffer) => Buffer)) => Transform;
1638
+ }
1639
+
1640
+ interface GulpNugetPack {
1641
+ pack: TransformFunctionWithOptionalArgs<PackOptions>;
1642
+ }
1643
+
1644
+ type SpawnNuget = (args: string[], opts?: SystemOptions) => Promise<SystemResult>;
1645
+ type IsPromise = (obj: any) => obj is Promise<any>;
1646
+
1647
+ type GitTagAndPush = (tag?: string, dryRun?: boolean) => Promise<void>;
1648
+
1649
+ // scraped from https://spdx.org/licenses/
1650
+ // with the following fragment from FF dev console
1651
+ // copy(Array.from(document.querySelector("table").querySelectorAll("tr")).map(tr => {
1652
+ // return Array.from(tr.querySelectorAll("td"))[1]
1653
+ // }).filter(td => !!td).map(td => td.innerText))
1654
+ type LicenseIdentifier =
1655
+ "0BSD" |
1656
+ "AAL" |
1657
+ "Abstyles" |
1658
+ "Adobe-2006" |
1659
+ "Adobe-Glyph" |
1660
+ "ADSL" |
1661
+ "AFL-1.1" |
1662
+ "AFL-1.2" |
1663
+ "AFL-2.0" |
1664
+ "AFL-2.1" |
1665
+ "AFL-3.0" |
1666
+ "Afmparse" |
1667
+ "AGPL-1.0-only" |
1668
+ "AGPL-1.0-or-later" |
1669
+ "AGPL-3.0-only" |
1670
+ "AGPL-3.0-or-later" |
1671
+ "Aladdin" |
1672
+ "AMDPLPA" |
1673
+ "AML" |
1674
+ "AMPAS" |
1675
+ "ANTLR-PD" |
1676
+ "Apache-1.0" |
1677
+ "Apache-1.1" |
1678
+ "Apache-2.0" |
1679
+ "APAFML" |
1680
+ "APL-1.0" |
1681
+ "APSL-1.0" |
1682
+ "APSL-1.1" |
1683
+ "APSL-1.2" |
1684
+ "APSL-2.0" |
1685
+ "Artistic-1.0" |
1686
+ "Artistic-1.0-cl8" |
1687
+ "Artistic-1.0-Perl" |
1688
+ "Artistic-2.0" |
1689
+ "Bahyph" |
1690
+ "Barr" |
1691
+ "Beerware" |
1692
+ "BitTorrent-1.0" |
1693
+ "BitTorrent-1.1" |
1694
+ "blessing" |
1695
+ "BlueOak-1.0.0" |
1696
+ "Borceux" |
1697
+ "BSD-1-Clause" |
1698
+ "BSD-2-Clause" |
1699
+ "BSD-2-Clause-FreeBSD" |
1700
+ "BSD-2-Clause-NetBSD" |
1701
+ "BSD-2-Clause-Patent" |
1702
+ "BSD-3-Clause" |
1703
+ "BSD-3-Clause-Attribution" |
1704
+ "BSD-3-Clause-Clear" |
1705
+ "BSD-3-Clause-LBNL" |
1706
+ "BSD-3-Clause-No-Nuclear-License" |
1707
+ "BSD-3-Clause-No-Nuclear-License-2014" |
1708
+ "BSD-3-Clause-No-Nuclear-Warranty" |
1709
+ "BSD-3-Clause-Open-MPI" |
1710
+ "BSD-4-Clause" |
1711
+ "BSD-4-Clause-UC" |
1712
+ "BSD-Protection" |
1713
+ "BSD-Source-Code" |
1714
+ "BSL-1.0" |
1715
+ "bzip2-1.0.5" |
1716
+ "bzip2-1.0.6" |
1717
+ "Caldera" |
1718
+ "CATOSL-1.1" |
1719
+ "CC-BY-1.0" |
1720
+ "CC-BY-2.0" |
1721
+ "CC-BY-2.5" |
1722
+ "CC-BY-3.0" |
1723
+ "CC-BY-4.0" |
1724
+ "CC-BY-NC-1.0" |
1725
+ "CC-BY-NC-2.0" |
1726
+ "CC-BY-NC-2.5" |
1727
+ "CC-BY-NC-3.0" |
1728
+ "CC-BY-NC-4.0" |
1729
+ "CC-BY-NC-ND-1.0" |
1730
+ "CC-BY-NC-ND-2.0" |
1731
+ "CC-BY-NC-ND-2.5" |
1732
+ "CC-BY-NC-ND-3.0" |
1733
+ "CC-BY-NC-ND-4.0" |
1734
+ "CC-BY-NC-SA-1.0" |
1735
+ "CC-BY-NC-SA-2.0" |
1736
+ "CC-BY-NC-SA-2.5" |
1737
+ "CC-BY-NC-SA-3.0" |
1738
+ "CC-BY-NC-SA-4.0" |
1739
+ "CC-BY-ND-1.0" |
1740
+ "CC-BY-ND-2.0" |
1741
+ "CC-BY-ND-2.5" |
1742
+ "CC-BY-ND-3.0" |
1743
+ "CC-BY-ND-4.0" |
1744
+ "CC-BY-SA-1.0" |
1745
+ "CC-BY-SA-2.0" |
1746
+ "CC-BY-SA-2.5" |
1747
+ "CC-BY-SA-3.0" |
1748
+ "CC-BY-SA-4.0" |
1749
+ "CC-PDDC" |
1750
+ "CC0-1.0" |
1751
+ "CDDL-1.0" |
1752
+ "CDDL-1.1" |
1753
+ "CDLA-Permissive-1.0" |
1754
+ "CDLA-Sharing-1.0" |
1755
+ "CECILL-1.0" |
1756
+ "CECILL-1.1" |
1757
+ "CECILL-2.0" |
1758
+ "CECILL-2.1" |
1759
+ "CECILL-B" |
1760
+ "CECILL-C" |
1761
+ "CERN-OHL-1.1" |
1762
+ "CERN-OHL-1.2" |
1763
+ "ClArtistic" |
1764
+ "CNRI-Jython" |
1765
+ "CNRI-Python" |
1766
+ "CNRI-Python-GPL-Compatible" |
1767
+ "Condor-1.1" |
1768
+ "copyleft-next-0.3.0" |
1769
+ "copyleft-next-0.3.1" |
1770
+ "CPAL-1.0" |
1771
+ "CPL-1.0" |
1772
+ "CPOL-1.02" |
1773
+ "Crossword" |
1774
+ "CrystalStacker" |
1775
+ "CUA-OPL-1.0" |
1776
+ "Cube" |
1777
+ "curl" |
1778
+ "D-FSL-1.0" |
1779
+ "diffmark" |
1780
+ "DOC" |
1781
+ "Dotseqn" |
1782
+ "DSDP" |
1783
+ "dvipdfm" |
1784
+ "ECL-1.0" |
1785
+ "ECL-2.0" |
1786
+ "EFL-1.0" |
1787
+ "EFL-2.0" |
1788
+ "eGenix" |
1789
+ "Entessa" |
1790
+ "EPL-1.0" |
1791
+ "EPL-2.0" |
1792
+ "ErlPL-1.1" |
1793
+ "etalab-2.0" |
1794
+ "EUDatagrid" |
1795
+ "EUPL-1.0" |
1796
+ "EUPL-1.1" |
1797
+ "EUPL-1.2" |
1798
+ "Eurosym" |
1799
+ "Fair" |
1800
+ "Frameworx-1.0" |
1801
+ "FreeImage" |
1802
+ "FSFAP" |
1803
+ "FSFUL" |
1804
+ "FSFULLR" |
1805
+ "FTL" |
1806
+ "GFDL-1.1-only" |
1807
+ "GFDL-1.1-or-later" |
1808
+ "GFDL-1.2-only" |
1809
+ "GFDL-1.2-or-later" |
1810
+ "GFDL-1.3-only" |
1811
+ "GFDL-1.3-or-later" |
1812
+ "Giftware" |
1813
+ "GL2PS" |
1814
+ "Glide" |
1815
+ "Glulxe" |
1816
+ "gnuplot" |
1817
+ "GPL-1.0-only" |
1818
+ "GPL-1.0-or-later" |
1819
+ "GPL-2.0-only" |
1820
+ "GPL-2.0-or-later" |
1821
+ "GPL-3.0-only" |
1822
+ "GPL-3.0-or-later" |
1823
+ "gSOAP-1.3b" |
1824
+ "HaskellReport" |
1825
+ "HPND" |
1826
+ "HPND-sell-variant" |
1827
+ "IBM-pibs" |
1828
+ "ICU" |
1829
+ "IJG" |
1830
+ "ImageMagick" |
1831
+ "iMatix" |
1832
+ "Imlib2" |
1833
+ "Info-ZIP" |
1834
+ "Intel" |
1835
+ "Intel-ACPI" |
1836
+ "Interbase-1.0" |
1837
+ "IPA" |
1838
+ "IPL-1.0" |
1839
+ "ISC" |
1840
+ "JasPer-2.0" |
1841
+ "JPNIC" |
1842
+ "JSON" |
1843
+ "LAL-1.2" |
1844
+ "LAL-1.3" |
1845
+ "Latex2e" |
1846
+ "Leptonica" |
1847
+ "LGPL-2.0-only" |
1848
+ "LGPL-2.0-or-later" |
1849
+ "LGPL-2.1-only" |
1850
+ "LGPL-2.1-or-later" |
1851
+ "LGPL-3.0-only" |
1852
+ "LGPL-3.0-or-later" |
1853
+ "LGPLLR" |
1854
+ "Libpng" |
1855
+ "libpng-2.0" |
1856
+ "libselinux-1.0" |
1857
+ "libtiff" |
1858
+ "LiLiQ-P-1.1" |
1859
+ "LiLiQ-R-1.1" |
1860
+ "LiLiQ-Rplus-1.1" |
1861
+ "Linux-OpenIB" |
1862
+ "LPL-1.0" |
1863
+ "LPL-1.02" |
1864
+ "LPPL-1.0" |
1865
+ "LPPL-1.1" |
1866
+ "LPPL-1.2" |
1867
+ "LPPL-1.3a" |
1868
+ "LPPL-1.3c" |
1869
+ "MakeIndex" |
1870
+ "MirOS" |
1871
+ "MIT" |
1872
+ "MIT-0" |
1873
+ "MIT-advertising" |
1874
+ "MIT-CMU" |
1875
+ "MIT-enna" |
1876
+ "MIT-feh" |
1877
+ "MITNFA" |
1878
+ "Motosoto" |
1879
+ "mpich2" |
1880
+ "MPL-1.0" |
1881
+ "MPL-1.1" |
1882
+ "MPL-2.0" |
1883
+ "MPL-2.0-no-copyleft-exception" |
1884
+ "MS-PL" |
1885
+ "MS-RL" |
1886
+ "MTLL" |
1887
+ "MulanPSL-1.0" |
1888
+ "Multics" |
1889
+ "Mup" |
1890
+ "NASA-1.3" |
1891
+ "Naumen" |
1892
+ "NBPL-1.0" |
1893
+ "NCSA" |
1894
+ "Net-SNMP" |
1895
+ "NetCDF" |
1896
+ "Newsletr" |
1897
+ "NGPL" |
1898
+ "NLOD-1.0" |
1899
+ "NLPL" |
1900
+ "Nokia" |
1901
+ "NOSL" |
1902
+ "Noweb" |
1903
+ "NPL-1.0" |
1904
+ "NPL-1.1" |
1905
+ "NPOSL-3.0" |
1906
+ "NRL" |
1907
+ "NTP" |
1908
+ "NTP-0" |
1909
+ "OCCT-PL" |
1910
+ "OCLC-2.0" |
1911
+ "ODbL-1.0" |
1912
+ "ODC-By-1.0" |
1913
+ "OFL-1.0" |
1914
+ "OFL-1.0-no-RFN" |
1915
+ "OFL-1.0-RFN" |
1916
+ "OFL-1.1" |
1917
+ "OFL-1.1-no-RFN" |
1918
+ "OFL-1.1-RFN" |
1919
+ "OGL-Canada-2.0" |
1920
+ "OGL-UK-1.0" |
1921
+ "OGL-UK-2.0" |
1922
+ "OGL-UK-3.0" |
1923
+ "OGTSL" |
1924
+ "OLDAP-1.1" |
1925
+ "OLDAP-1.2" |
1926
+ "OLDAP-1.3" |
1927
+ "OLDAP-1.4" |
1928
+ "OLDAP-2.0" |
1929
+ "OLDAP-2.0.1" |
1930
+ "OLDAP-2.1" |
1931
+ "OLDAP-2.2" |
1932
+ "OLDAP-2.2.1" |
1933
+ "OLDAP-2.2.2" |
1934
+ "OLDAP-2.3" |
1935
+ "OLDAP-2.4" |
1936
+ "OLDAP-2.5" |
1937
+ "OLDAP-2.6" |
1938
+ "OLDAP-2.7" |
1939
+ "OLDAP-2.8" |
1940
+ "OML" |
1941
+ "OpenSSL" |
1942
+ "OPL-1.0" |
1943
+ "OSET-PL-2.1" |
1944
+ "OSL-1.0" |
1945
+ "OSL-1.1" |
1946
+ "OSL-2.0" |
1947
+ "OSL-2.1" |
1948
+ "OSL-3.0" |
1949
+ "Parity-6.0.0" |
1950
+ "PDDL-1.0" |
1951
+ "PHP-3.0" |
1952
+ "PHP-3.01" |
1953
+ "Plexus" |
1954
+ "PostgreSQL" |
1955
+ "PSF-2.0" |
1956
+ "psfrag" |
1957
+ "psutils" |
1958
+ "Python-2.0" |
1959
+ "Qhull" |
1960
+ "QPL-1.0" |
1961
+ "Rdisc" |
1962
+ "RHeCos-1.1" |
1963
+ "RPL-1.1" |
1964
+ "RPL-1.5" |
1965
+ "RPSL-1.0" |
1966
+ "RSA-MD" |
1967
+ "RSCPL" |
1968
+ "Ruby" |
1969
+ "SAX-PD" |
1970
+ "Saxpath" |
1971
+ "SCEA" |
1972
+ "Sendmail" |
1973
+ "Sendmail-8.23" |
1974
+ "SGI-B-1.0" |
1975
+ "SGI-B-1.1" |
1976
+ "SGI-B-2.0" |
1977
+ "SHL-0.5" |
1978
+ "SHL-0.51" |
1979
+ "SimPL-2.0" |
1980
+ "SISSL" |
1981
+ "SISSL-1.2" |
1982
+ "Sleepycat" |
1983
+ "SMLNJ" |
1984
+ "SMPPL" |
1985
+ "SNIA" |
1986
+ "Spencer-86" |
1987
+ "Spencer-94" |
1988
+ "Spencer-99" |
1989
+ "SPL-1.0" |
1990
+ "SSH-OpenSSH" |
1991
+ "SSH-short" |
1992
+ "SSPL-1.0" |
1993
+ "SugarCRM-1.1.3" |
1994
+ "SWL" |
1995
+ "TAPR-OHL-1.0" |
1996
+ "TCL" |
1997
+ "TCP-wrappers" |
1998
+ "TMate" |
1999
+ "TORQUE-1.1" |
2000
+ "TOSL" |
2001
+ "TU-Berlin-1.0" |
2002
+ "TU-Berlin-2.0" |
2003
+ "UCL-1.0" |
2004
+ "Unicode-DFS-2015" |
2005
+ "Unicode-DFS-2016" |
2006
+ "Unicode-TOU" |
2007
+ "Unlicense" |
2008
+ "UPL-1.0" |
2009
+ "Vim" |
2010
+ "VOSTROM" |
2011
+ "VSL-1.0" |
2012
+ "W3C" |
2013
+ "W3C-19980720" |
2014
+ "W3C-20150513" |
2015
+ "Watcom-1.0" |
2016
+ "Wsuipa" |
2017
+ "WTFPL" |
2018
+ "X11" |
2019
+ "Xerox" |
2020
+ "XFree86-1.1" |
2021
+ "xinetd" |
2022
+ "Xnet" |
2023
+ "xpp" |
2024
+ "XSkat" |
2025
+ "YPL-1.0" |
2026
+ "YPL-1.1" |
2027
+ "Zed" |
2028
+ "Zend-2.0" |
2029
+ "Zimbra-1.3" |
2030
+ "Zimbra-1.4" |
2031
+ "Zlib" |
2032
+ "zlib-acknowledgement" |
2033
+ "ZPL-1.1" |
2034
+ "ZPL-2.0" |
2035
+ "ZPL-2.1"
2036
+ }
2037
+