onreza-release 1.0.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +169 -45
- package/dist/binaries.d.ts +8 -66
- package/dist/cli.js +1307 -6439
- package/dist/cli.js.map +20 -51
- package/dist/config.d.ts +8 -4
- package/dist/index.d.ts +8 -6
- package/dist/index.js +1313 -6391
- package/dist/index.js.map +18 -49
- package/dist/providers/detector.d.ts +71 -0
- package/dist/providers/github.d.ts +53 -0
- package/dist/providers/gitverse.d.ts +48 -0
- package/dist/providers/index.d.ts +67 -0
- package/dist/providers/limits.d.ts +75 -0
- package/dist/providers/tokens.d.ts +42 -0
- package/dist/providers/types.d.ts +151 -0
- package/dist/types.d.ts +137 -131
- package/dist/utils/binary-distribution-provider.d.ts +50 -0
- package/dist/utils/binary-platforms.d.ts +1 -25
- package/dist/utils/binary-postinstall-generator.d.ts +34 -0
- package/dist/utils/git.d.ts +1 -1
- package/package.json +8 -4
- package/schema.json +41 -61
- package/dist/gitverse.d.ts +0 -91
- package/dist/utils/binary-package-generator.d.ts +0 -24
- package/dist/utils/binary-publisher.d.ts +0 -53
- package/dist/utils/binary-wrapper-generator.d.ts +0 -34
package/dist/types.d.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Поддерживаемые Git платформы
|
|
3
|
+
*/
|
|
4
|
+
export type GitPlatform = "gitverse" | "github" | "gitlab";
|
|
5
|
+
/**
|
|
6
|
+
* Конфигурация для onreza-release
|
|
3
7
|
*/
|
|
4
8
|
export interface ReleaseConfig {
|
|
5
9
|
/**
|
|
@@ -19,9 +23,9 @@ export interface ReleaseConfig {
|
|
|
19
23
|
*/
|
|
20
24
|
versioning?: VersioningConfig;
|
|
21
25
|
/**
|
|
22
|
-
* Настройки GitVerse
|
|
26
|
+
* Настройки создания Release (GitVerse, GitHub, GitLab)
|
|
23
27
|
*/
|
|
24
|
-
|
|
28
|
+
release?: ReleaseProviderConfig;
|
|
25
29
|
/**
|
|
26
30
|
* Настройки retry механизма
|
|
27
31
|
*/
|
|
@@ -224,6 +228,14 @@ export interface GitRepoInfo {
|
|
|
224
228
|
* Текущая ветка
|
|
225
229
|
*/
|
|
226
230
|
branch: string;
|
|
231
|
+
/**
|
|
232
|
+
* Git платформа (gitverse, github, gitlab)
|
|
233
|
+
*/
|
|
234
|
+
platform?: GitPlatform;
|
|
235
|
+
/**
|
|
236
|
+
* Хост платформы (например: github.com, gitverse.ru)
|
|
237
|
+
*/
|
|
238
|
+
host?: string;
|
|
227
239
|
}
|
|
228
240
|
/**
|
|
229
241
|
* Conventional Commit
|
|
@@ -374,22 +386,37 @@ export interface ReleaseResult {
|
|
|
374
386
|
warnings: string[];
|
|
375
387
|
}
|
|
376
388
|
/**
|
|
377
|
-
* Конфигурация GitVerse
|
|
389
|
+
* Конфигурация Release Provider (GitVerse, GitHub, GitLab)
|
|
378
390
|
*/
|
|
379
|
-
export interface
|
|
391
|
+
export interface ReleaseProviderConfig {
|
|
380
392
|
/**
|
|
381
|
-
* Включить создание релиза через
|
|
382
|
-
* Требует
|
|
393
|
+
* Включить создание релиза через API платформы
|
|
394
|
+
* Требует соответствующий токен:
|
|
395
|
+
* - GitVerse: GVR_TOKEN
|
|
396
|
+
* - GitHub: GITHUB_TOKEN или GH_TOKEN
|
|
397
|
+
* - GitLab: GITLAB_TOKEN или GL_TOKEN
|
|
398
|
+
* @default true
|
|
383
399
|
*/
|
|
384
400
|
enabled: boolean;
|
|
401
|
+
/**
|
|
402
|
+
* Платформа для создания релиза
|
|
403
|
+
* - "auto": автоопределение по git remote или CI окружению
|
|
404
|
+
* - "gitverse": GitVerse
|
|
405
|
+
* - "github": GitHub
|
|
406
|
+
* - "gitlab": GitLab
|
|
407
|
+
* @default "auto"
|
|
408
|
+
*/
|
|
409
|
+
platform: GitPlatform | "auto";
|
|
385
410
|
/**
|
|
386
411
|
* Прерывать процесс релиза при ошибке создания release (после retry)
|
|
387
412
|
* Если false, ошибки логируются как warnings
|
|
413
|
+
* @default true
|
|
388
414
|
*/
|
|
389
415
|
failOnError: boolean;
|
|
390
416
|
/**
|
|
391
417
|
* Проверять существование релиза перед созданием (идемпотентность)
|
|
392
418
|
* Позволяет безопасно перезапускать pipeline
|
|
419
|
+
* @default true
|
|
393
420
|
*/
|
|
394
421
|
checkExisting: boolean;
|
|
395
422
|
}
|
|
@@ -508,7 +535,7 @@ export interface CommitlintGeneratorConfig {
|
|
|
508
535
|
export interface GenerateCommitlintOptions {
|
|
509
536
|
/**
|
|
510
537
|
* Путь к release конфигу
|
|
511
|
-
* @default ".
|
|
538
|
+
* @default ".onrezarelease.json"
|
|
512
539
|
*/
|
|
513
540
|
configPath?: string;
|
|
514
541
|
/**
|
|
@@ -596,31 +623,54 @@ export type BinaryPlatform = "linux-x64" | "linux-arm64" | "darwin-x64" | "darwi
|
|
|
596
623
|
*/
|
|
597
624
|
export type BinaryInputFormat = "directory" | "tar.gz";
|
|
598
625
|
/**
|
|
599
|
-
*
|
|
626
|
+
* Расширение исполняемого файла
|
|
600
627
|
*/
|
|
601
|
-
export type
|
|
628
|
+
export type BinaryExtension = "" | ".exe";
|
|
602
629
|
/**
|
|
603
|
-
*
|
|
630
|
+
* Маппинг платформы на os/arch значения
|
|
604
631
|
*/
|
|
605
|
-
export
|
|
632
|
+
export interface PlatformMapping {
|
|
633
|
+
/** Значение для os (linux, darwin, win32) */
|
|
634
|
+
os: string;
|
|
635
|
+
/** Значение для arch (x64, arm64) */
|
|
636
|
+
arch: string;
|
|
637
|
+
/** Расширение исполняемого файла */
|
|
638
|
+
extension: BinaryExtension;
|
|
639
|
+
}
|
|
606
640
|
/**
|
|
607
|
-
*
|
|
641
|
+
* Результат загрузки asset в GitVerse Release
|
|
608
642
|
*/
|
|
609
|
-
export
|
|
643
|
+
export interface BinaryAssetUploadResult {
|
|
644
|
+
/** Платформа */
|
|
645
|
+
platform: BinaryPlatform;
|
|
646
|
+
/** Имя загруженного asset */
|
|
647
|
+
assetName: string;
|
|
648
|
+
/** URL для скачивания */
|
|
649
|
+
downloadUrl: string;
|
|
650
|
+
/** Успешно ли загружен */
|
|
651
|
+
success: boolean;
|
|
652
|
+
/** Сообщение об ошибке */
|
|
653
|
+
error?: string;
|
|
654
|
+
}
|
|
610
655
|
/**
|
|
611
|
-
*
|
|
656
|
+
* Провайдер дистрибуции бинарников (абстракция)
|
|
612
657
|
*/
|
|
613
|
-
export
|
|
658
|
+
export interface BinaryDistributionProvider {
|
|
659
|
+
/** Загружает файл и возвращает URL для скачивания */
|
|
660
|
+
uploadAsset(filePath: string, assetName: string): Promise<{
|
|
661
|
+
downloadUrl: string;
|
|
662
|
+
}>;
|
|
663
|
+
}
|
|
614
664
|
/**
|
|
615
|
-
*
|
|
665
|
+
* Манифест с URL-ами для скачивания бинарников
|
|
616
666
|
*/
|
|
617
|
-
export interface
|
|
618
|
-
/**
|
|
619
|
-
|
|
620
|
-
/**
|
|
621
|
-
|
|
622
|
-
/**
|
|
623
|
-
|
|
667
|
+
export interface BinaryManifest {
|
|
668
|
+
/** Версия */
|
|
669
|
+
version: string;
|
|
670
|
+
/** Имя бинарника */
|
|
671
|
+
binName: string;
|
|
672
|
+
/** Маппинг платформ на URL-ы для скачивания */
|
|
673
|
+
assets: Record<BinaryPlatform, string>;
|
|
624
674
|
}
|
|
625
675
|
/**
|
|
626
676
|
* Конфигурация бинарной дистрибуции
|
|
@@ -632,25 +682,7 @@ export interface BinariesConfig {
|
|
|
632
682
|
*/
|
|
633
683
|
enabled: boolean;
|
|
634
684
|
/**
|
|
635
|
-
*
|
|
636
|
-
* Опционален — если не указан, пакеты публикуются без scope
|
|
637
|
-
*/
|
|
638
|
-
scope?: string;
|
|
639
|
-
/**
|
|
640
|
-
* Шаблон имени пакета
|
|
641
|
-
* Плейсхолдеры: {{scope}}, {{name}}, {{platform}}
|
|
642
|
-
*
|
|
643
|
-
* @default "{{name}}-{{platform}}" (без scope)
|
|
644
|
-
* @default "@{{scope}}/{{name}}-{{platform}}" (со scope)
|
|
645
|
-
*
|
|
646
|
-
* @example
|
|
647
|
-
* "{{name}}-{{platform}}" → "myapp-linux-x64"
|
|
648
|
-
* "@{{scope}}/{{name}}-{{platform}}" → "@org/myapp-linux-x64"
|
|
649
|
-
* "{{name}}-bin-{{platform}}" → "myapp-bin-linux-x64"
|
|
650
|
-
*/
|
|
651
|
-
packageNameTemplate?: string;
|
|
652
|
-
/**
|
|
653
|
-
* Базовое имя пакетов (например: yougile)
|
|
685
|
+
* Базовое имя бинарника (например: yougile)
|
|
654
686
|
*/
|
|
655
687
|
name: string;
|
|
656
688
|
/**
|
|
@@ -663,60 +695,32 @@ export interface BinariesConfig {
|
|
|
663
695
|
* @default "./dist"
|
|
664
696
|
*/
|
|
665
697
|
distDir: string;
|
|
666
|
-
/**
|
|
667
|
-
* Директория для генерации пакетов
|
|
668
|
-
* @default "./npm"
|
|
669
|
-
*/
|
|
670
|
-
outDir: string;
|
|
671
698
|
/**
|
|
672
699
|
* Список платформ для публикации
|
|
673
700
|
* @default ["linux-x64", "linux-arm64", "darwin-x64", "darwin-arm64", "win32-x64"]
|
|
674
701
|
*/
|
|
675
702
|
platforms: BinaryPlatform[];
|
|
676
|
-
/**
|
|
677
|
-
* Команда для публикации пакетов
|
|
678
|
-
* Поддерживает плейсхолдеры: {{packageDir}}, {{version}}, {{platform}}
|
|
679
|
-
* @default "npm publish --access public"
|
|
680
|
-
*/
|
|
681
|
-
publishCommand: string;
|
|
682
|
-
/**
|
|
683
|
-
* Путь к основному package.json для обновления optionalDependencies
|
|
684
|
-
* @default "./package.json"
|
|
685
|
-
*/
|
|
686
|
-
mainPackage: string;
|
|
687
|
-
/**
|
|
688
|
-
* Продолжать при ошибке публикации отдельной платформы
|
|
689
|
-
* @default false
|
|
690
|
-
*/
|
|
691
|
-
continueOnError: boolean;
|
|
692
|
-
/**
|
|
693
|
-
* Количество попыток retry при ошибке публикации
|
|
694
|
-
* @default 3
|
|
695
|
-
*/
|
|
696
|
-
retryAttempts: number;
|
|
697
703
|
/**
|
|
698
704
|
* Формат входных данных для бинарников
|
|
699
705
|
* - "directory": бинарники в директориях (dist/name-platform/name)
|
|
700
706
|
* - "tar.gz": бинарники в tar.gz архивах (dist/name-platform.tar.gz)
|
|
701
|
-
* @default "
|
|
707
|
+
* @default "tar.gz"
|
|
702
708
|
*/
|
|
703
709
|
inputFormat?: BinaryInputFormat;
|
|
704
710
|
/**
|
|
705
711
|
* Шаблон имени архива.
|
|
706
712
|
* Плейсхолдеры: {{name}}, {{platform}}
|
|
707
|
-
* Используется только при inputFormat: "tar.gz"
|
|
708
713
|
* @default "{{name}}-{{platform}}.tar.gz"
|
|
709
714
|
*/
|
|
710
715
|
archiveNameTemplate?: string;
|
|
711
716
|
/**
|
|
712
717
|
* Имя бинарника внутри архива (если отличается от name)
|
|
713
|
-
* Используется только при inputFormat: "tar.gz"
|
|
714
718
|
*/
|
|
715
719
|
sourceBinName?: string;
|
|
716
720
|
/**
|
|
717
|
-
* Маппинг имён файлов/директорий источника на
|
|
721
|
+
* Маппинг имён файлов/директорий источника на платформы
|
|
718
722
|
* Ключ - идентификатор в имени файла (например: "linux-x64")
|
|
719
|
-
* Значение -
|
|
723
|
+
* Значение - платформа (например: "linux-x64")
|
|
720
724
|
*
|
|
721
725
|
* @example
|
|
722
726
|
* {
|
|
@@ -726,61 +730,41 @@ export interface BinariesConfig {
|
|
|
726
730
|
* }
|
|
727
731
|
*/
|
|
728
732
|
platformMap?: Record<string, BinaryPlatform>;
|
|
733
|
+
/**
|
|
734
|
+
* Количество попыток retry при ошибке загрузки
|
|
735
|
+
* @default 3
|
|
736
|
+
*/
|
|
737
|
+
retryAttempts: number;
|
|
738
|
+
/**
|
|
739
|
+
* Продолжать при ошибке загрузки отдельной платформы
|
|
740
|
+
* @default false
|
|
741
|
+
*/
|
|
742
|
+
continueOnError: boolean;
|
|
729
743
|
}
|
|
730
744
|
/**
|
|
731
|
-
* Успешный результат
|
|
732
|
-
*/
|
|
733
|
-
export interface BinaryPackageSuccess {
|
|
734
|
-
/** Платформа */
|
|
735
|
-
platform: BinaryPlatform;
|
|
736
|
-
/** Путь к сгенерированному пакету */
|
|
737
|
-
packageDir: string;
|
|
738
|
-
/** Полное имя пакета (например: @rainypixel/yougile-linux-x64) */
|
|
739
|
-
packageName: string;
|
|
740
|
-
/** Успешно сгенерирован */
|
|
741
|
-
success: true;
|
|
742
|
-
}
|
|
743
|
-
/**
|
|
744
|
-
* Неуспешный результат генерации платформенного пакета
|
|
745
|
-
*/
|
|
746
|
-
export interface BinaryPackageFailure {
|
|
747
|
-
/** Платформа */
|
|
748
|
-
platform: BinaryPlatform;
|
|
749
|
-
/** Путь к сгенерированному пакету (может отсутствовать при ошибке) */
|
|
750
|
-
packageDir: string;
|
|
751
|
-
/** Полное имя пакета */
|
|
752
|
-
packageName: string;
|
|
753
|
-
/** Не удалось сгенерировать */
|
|
754
|
-
success: false;
|
|
755
|
-
/** Сообщение об ошибке */
|
|
756
|
-
error: string;
|
|
757
|
-
}
|
|
758
|
-
/**
|
|
759
|
-
* Результат генерации платформенного пакета (discriminated union)
|
|
760
|
-
*/
|
|
761
|
-
export type BinaryPackageResult = BinaryPackageSuccess | BinaryPackageFailure;
|
|
762
|
-
/**
|
|
763
|
-
* Успешный результат публикации платформенного пакета
|
|
745
|
+
* Успешный результат загрузки asset
|
|
764
746
|
*/
|
|
765
|
-
export interface
|
|
747
|
+
export interface BinaryUploadSuccess {
|
|
766
748
|
/** Платформа */
|
|
767
749
|
platform: BinaryPlatform;
|
|
768
|
-
/**
|
|
769
|
-
|
|
770
|
-
/**
|
|
750
|
+
/** Имя asset */
|
|
751
|
+
assetName: string;
|
|
752
|
+
/** URL для скачивания */
|
|
753
|
+
downloadUrl: string;
|
|
754
|
+
/** Успешно загружен */
|
|
771
755
|
success: true;
|
|
772
756
|
/** Количество попыток */
|
|
773
757
|
attempts: number;
|
|
774
758
|
}
|
|
775
759
|
/**
|
|
776
|
-
* Неуспешный результат
|
|
760
|
+
* Неуспешный результат загрузки asset
|
|
777
761
|
*/
|
|
778
|
-
export interface
|
|
762
|
+
export interface BinaryUploadFailure {
|
|
779
763
|
/** Платформа */
|
|
780
764
|
platform: BinaryPlatform;
|
|
781
|
-
/**
|
|
782
|
-
|
|
783
|
-
/** Не удалось
|
|
765
|
+
/** Имя asset */
|
|
766
|
+
assetName: string;
|
|
767
|
+
/** Не удалось загрузить */
|
|
784
768
|
success: false;
|
|
785
769
|
/** Сообщение об ошибке */
|
|
786
770
|
error: string;
|
|
@@ -788,9 +772,9 @@ export interface BinaryPublishFailure {
|
|
|
788
772
|
attempts: number;
|
|
789
773
|
}
|
|
790
774
|
/**
|
|
791
|
-
* Результат
|
|
775
|
+
* Результат загрузки asset (discriminated union)
|
|
792
776
|
*/
|
|
793
|
-
export type
|
|
777
|
+
export type BinaryUploadResult = BinaryUploadSuccess | BinaryUploadFailure;
|
|
794
778
|
/**
|
|
795
779
|
* Общий результат бинарной дистрибуции
|
|
796
780
|
*/
|
|
@@ -799,10 +783,12 @@ export interface BinaryDistributionResult {
|
|
|
799
783
|
success: boolean;
|
|
800
784
|
/** Версия */
|
|
801
785
|
version: string;
|
|
802
|
-
/**
|
|
803
|
-
|
|
804
|
-
/**
|
|
805
|
-
|
|
786
|
+
/** ID созданного релиза */
|
|
787
|
+
releaseId?: number;
|
|
788
|
+
/** URL релиза */
|
|
789
|
+
releaseUrl?: string;
|
|
790
|
+
/** Результаты загрузки assets */
|
|
791
|
+
uploads: BinaryUploadResult[];
|
|
806
792
|
/** Ошибки */
|
|
807
793
|
errors: string[];
|
|
808
794
|
/** Предупреждения */
|
|
@@ -832,7 +818,7 @@ export type BinaryExtractionResult = BinaryExtractionSuccess | BinaryExtractionF
|
|
|
832
818
|
*/
|
|
833
819
|
export interface BinaryCliOptions {
|
|
834
820
|
/**
|
|
835
|
-
* Тестовый прогон (не
|
|
821
|
+
* Тестовый прогон (не загружать)
|
|
836
822
|
*/
|
|
837
823
|
dryRun?: boolean;
|
|
838
824
|
/**
|
|
@@ -843,20 +829,40 @@ export interface BinaryCliOptions {
|
|
|
843
829
|
* Override версии
|
|
844
830
|
*/
|
|
845
831
|
version?: string;
|
|
846
|
-
/**
|
|
847
|
-
* Только генерация пакетов (без публикации)
|
|
848
|
-
*/
|
|
849
|
-
generateOnly?: boolean;
|
|
850
|
-
/**
|
|
851
|
-
* Не обновлять основной package.json
|
|
852
|
-
*/
|
|
853
|
-
skipMainPackage?: boolean;
|
|
854
832
|
/**
|
|
855
833
|
* Конкретные платформы для обработки
|
|
856
834
|
*/
|
|
857
835
|
platforms?: BinaryPlatform[];
|
|
836
|
+
/**
|
|
837
|
+
* Тег релиза (по умолчанию создаётся новый релиз)
|
|
838
|
+
*/
|
|
839
|
+
tag?: string;
|
|
858
840
|
/**
|
|
859
841
|
* Подробный вывод
|
|
860
842
|
*/
|
|
861
843
|
verbose?: boolean;
|
|
862
844
|
}
|
|
845
|
+
/**
|
|
846
|
+
* Лимиты GitVerse для артефактов релиза
|
|
847
|
+
*/
|
|
848
|
+
export interface GitVerseAssetLimits {
|
|
849
|
+
/** Максимальный размер одного файла (100 МБ) */
|
|
850
|
+
maxFileSizeBytes: number;
|
|
851
|
+
/** Максимальное количество файлов за раз */
|
|
852
|
+
maxFilesPerUpload: number;
|
|
853
|
+
/** Максимальный совокупный размер за раз (500 МБ) */
|
|
854
|
+
maxTotalSizeBytes: number;
|
|
855
|
+
/** Допустимые расширения файлов */
|
|
856
|
+
allowedExtensions: string[];
|
|
857
|
+
}
|
|
858
|
+
/**
|
|
859
|
+
* Результат валидации asset
|
|
860
|
+
*/
|
|
861
|
+
export interface AssetValidationResult {
|
|
862
|
+
/** Валиден ли файл */
|
|
863
|
+
valid: boolean;
|
|
864
|
+
/** Сообщение об ошибке */
|
|
865
|
+
error?: string;
|
|
866
|
+
/** Размер файла */
|
|
867
|
+
sizeBytes?: number;
|
|
868
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { GitVerseReleaseProvider } from "../providers";
|
|
2
|
+
import type { AssetValidationResult, BinaryDistributionProvider, GitVerseAssetLimits } from "../types";
|
|
3
|
+
/**
|
|
4
|
+
* Лимиты GitVerse для артефактов релиза
|
|
5
|
+
*/
|
|
6
|
+
export declare const GITVERSE_ASSET_LIMITS: GitVerseAssetLimits;
|
|
7
|
+
/**
|
|
8
|
+
* Форматирует размер файла в человекочитаемый формат
|
|
9
|
+
*/
|
|
10
|
+
export declare function formatFileSize(bytes: number): string;
|
|
11
|
+
/**
|
|
12
|
+
* Валидирует файл для загрузки в GitVerse Release
|
|
13
|
+
*
|
|
14
|
+
* @param filePath - Путь к файлу
|
|
15
|
+
* @returns Результат валидации
|
|
16
|
+
*/
|
|
17
|
+
export declare function validateAssetFile(filePath: string): Promise<AssetValidationResult>;
|
|
18
|
+
/**
|
|
19
|
+
* Валидирует набор файлов для загрузки
|
|
20
|
+
*
|
|
21
|
+
* @param filePaths - Массив путей к файлам
|
|
22
|
+
* @returns Результат валидации с совокупным размером
|
|
23
|
+
*/
|
|
24
|
+
export declare function validateAssetBatch(filePaths: string[]): Promise<{
|
|
25
|
+
valid: boolean;
|
|
26
|
+
errors: string[];
|
|
27
|
+
totalSize: number;
|
|
28
|
+
}>;
|
|
29
|
+
/**
|
|
30
|
+
* GitVerse провайдер дистрибуции бинарников
|
|
31
|
+
*/
|
|
32
|
+
export declare class GitVerseDistributionProvider implements BinaryDistributionProvider {
|
|
33
|
+
private client;
|
|
34
|
+
private releaseId;
|
|
35
|
+
constructor(client: GitVerseReleaseProvider, releaseId: number);
|
|
36
|
+
/**
|
|
37
|
+
* Загружает файл как asset в релиз
|
|
38
|
+
*
|
|
39
|
+
* @param filePath - Путь к файлу
|
|
40
|
+
* @param assetName - Имя asset в релизе
|
|
41
|
+
* @returns URL для скачивания
|
|
42
|
+
*/
|
|
43
|
+
uploadAsset(filePath: string, assetName: string): Promise<{
|
|
44
|
+
downloadUrl: string;
|
|
45
|
+
}>;
|
|
46
|
+
/**
|
|
47
|
+
* Возвращает ID релиза
|
|
48
|
+
*/
|
|
49
|
+
get id(): number;
|
|
50
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { BinariesConfig, BinaryPlatform, PlatformMapping } from "../types";
|
|
2
2
|
/**
|
|
3
|
-
* Маппинг платформ на os/
|
|
3
|
+
* Маппинг платформ на os/arch значения
|
|
4
4
|
*/
|
|
5
5
|
export declare const PLATFORM_MAPPINGS: Record<BinaryPlatform, PlatformMapping>;
|
|
6
6
|
/**
|
|
@@ -35,30 +35,6 @@ export declare function validateBinaryExists(distDir: string, name: string, plat
|
|
|
35
35
|
* @returns Массив отсутствующих платформ
|
|
36
36
|
*/
|
|
37
37
|
export declare function validateAllBinaries(distDir: string, name: string, platforms: BinaryPlatform[]): Promise<BinaryPlatform[]>;
|
|
38
|
-
/**
|
|
39
|
-
* Возвращает дефолтный шаблон имени пакета
|
|
40
|
-
*/
|
|
41
|
-
export declare function getDefaultPackageNameTemplate(scope?: string): string;
|
|
42
|
-
/**
|
|
43
|
-
* Генерирует полное имя пакета для платформы.
|
|
44
|
-
* Поддерживает кастомный шаблон через packageNameTemplate.
|
|
45
|
-
*/
|
|
46
|
-
export declare function getPackageName(config: BinariesConfig, platform: BinaryPlatform): string;
|
|
47
|
-
/**
|
|
48
|
-
* Генерирует путь к пакету в output директории.
|
|
49
|
-
* Создаёт структуру директорий на основе имени пакета.
|
|
50
|
-
*/
|
|
51
|
-
export declare function getPackageOutputPath(config: BinariesConfig, platform: BinaryPlatform): string;
|
|
52
|
-
/**
|
|
53
|
-
* Раскрывает плейсхолдеры в строке
|
|
54
|
-
*/
|
|
55
|
-
export declare function expandPlaceholders(template: string, values: {
|
|
56
|
-
packageDir?: string;
|
|
57
|
-
version?: string;
|
|
58
|
-
platform?: string;
|
|
59
|
-
scope?: string;
|
|
60
|
-
name?: string;
|
|
61
|
-
}): string;
|
|
62
38
|
/**
|
|
63
39
|
* Конвертирует платформу в Node.js process.platform и process.arch
|
|
64
40
|
*/
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { BinaryManifest, BinaryPlatform } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* Генерирует postinstall скрипт для скачивания бинарника
|
|
4
|
+
*
|
|
5
|
+
* @param manifest - Манифест с URL-ами для скачивания
|
|
6
|
+
* @returns JavaScript код postinstall скрипта
|
|
7
|
+
*/
|
|
8
|
+
export declare function generatePostinstallScript(manifest: BinaryManifest): string;
|
|
9
|
+
/**
|
|
10
|
+
* Генерирует простой wrapper скрипт для bin/
|
|
11
|
+
*
|
|
12
|
+
* @param binName - Имя бинарника
|
|
13
|
+
* @returns JavaScript код wrapper скрипта
|
|
14
|
+
*/
|
|
15
|
+
export declare function generateBinWrapper(binName: string): string;
|
|
16
|
+
/**
|
|
17
|
+
* Создаёт манифест для бинарной дистрибуции
|
|
18
|
+
*
|
|
19
|
+
* @param version - Версия
|
|
20
|
+
* @param binName - Имя бинарника
|
|
21
|
+
* @param assets - Маппинг платформ на URL-ы
|
|
22
|
+
* @returns Манифест
|
|
23
|
+
*/
|
|
24
|
+
export declare function createBinaryManifest(version: string, binName: string, assets: Partial<Record<BinaryPlatform, string>>): BinaryManifest;
|
|
25
|
+
/**
|
|
26
|
+
* Генерирует package.json для мастер-пакета с postinstall
|
|
27
|
+
*
|
|
28
|
+
* @param name - Имя пакета
|
|
29
|
+
* @param version - Версия
|
|
30
|
+
* @param binName - Имя бинарника
|
|
31
|
+
* @param description - Описание пакета
|
|
32
|
+
* @returns Содержимое package.json
|
|
33
|
+
*/
|
|
34
|
+
export declare function generateMasterPackageJson(name: string, version: string, binName: string, description?: string): string;
|
package/dist/utils/git.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ export declare function gitCommand(command: string): Promise<string>;
|
|
|
18
18
|
* Получает информацию о Git репозитории
|
|
19
19
|
*
|
|
20
20
|
* Приоритет источников данных:
|
|
21
|
-
* 1. Переменные окружения GitVerse Actions
|
|
21
|
+
* 1. Переменные окружения CI (GitVerse Actions, GitHub Actions, GitLab CI)
|
|
22
22
|
* 2. Git remote URL (для локального использования)
|
|
23
23
|
*/
|
|
24
24
|
export declare function getRepoInfo(): Promise<GitRepoInfo>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "onreza-release",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "Conventional Commits release automation tool with GitVerse and GitHub support",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"release",
|
|
@@ -40,7 +40,11 @@
|
|
|
40
40
|
"bin": {
|
|
41
41
|
"onreza-release": "./dist/cli.js"
|
|
42
42
|
},
|
|
43
|
-
"files": [
|
|
43
|
+
"files": [
|
|
44
|
+
"dist",
|
|
45
|
+
"schema.json",
|
|
46
|
+
"README.md"
|
|
47
|
+
],
|
|
44
48
|
"scripts": {
|
|
45
49
|
"build": "bun build.ts",
|
|
46
50
|
"dev": "bun build.ts --watch",
|
|
@@ -51,13 +55,13 @@
|
|
|
51
55
|
"typecheck": "tsc --noEmit"
|
|
52
56
|
},
|
|
53
57
|
"dependencies": {
|
|
54
|
-
"@onreza/gitverse-sdk": ">=
|
|
58
|
+
"@onreza/gitverse-sdk": ">=1.0.2",
|
|
55
59
|
"jsonc-parser": "^3.3.1",
|
|
56
60
|
"tar": "^7.5.3"
|
|
57
61
|
},
|
|
58
62
|
"devDependencies": {
|
|
59
63
|
"@biomejs/biome": "^2.3.11",
|
|
60
|
-
"@types/bun": "1.3.
|
|
64
|
+
"@types/bun": "1.3.8",
|
|
61
65
|
"typescript": "^5.9.3"
|
|
62
66
|
},
|
|
63
67
|
"publishConfig": {
|