@astral/pack 1.5.1 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -0
- package/bin.js +1 -1
- package/cli/parseArgs/parseArgs.d.ts +1 -1
- package/cli/types.d.ts +1 -1
- package/commands/build/build.d.ts +1 -1
- package/commands/build/build.js +4 -4
- package/commands/compileJs/compileJs.d.ts +1 -1
- package/commands/compileJs/compileJs.js +1 -1
- package/commands/compileTs/compileTs.d.ts +1 -1
- package/commands/compileTs/compileTs.js +1 -1
- package/commands/copyDoc/copyDoc.d.ts +1 -1
- package/commands/copyDoc/copyDoc.js +1 -1
- package/commands/copyStatic/copyStatic.d.ts +1 -1
- package/commands/generatePackageJson/generatePackageJson.d.ts +1 -1
- package/commands/generatePackageJson/generatePackageJson.js +15 -3
- package/commands/semanticRelease/checkPackageVersion/checkPackageVersion.d.ts +1 -1
- package/commands/semanticRelease/checkPackageVersion/checkPackageVersion.js +1 -1
- package/commands/semanticRelease/createRelease/createRelease.d.ts +1 -1
- package/commands/telegram/sendTelegramFailRelease/sendTelegramFailRelease.d.ts +1 -1
- package/commands/telegram/sendTelegramSuccessRelease/sendTelegramSuccessRelease.d.ts +1 -1
- package/commands/telegram/sendTelegramSuccessRelease/sendTelegramSuccessRelease.js +1 -1
- package/config/ConfigService/ConfigService.d.ts +2 -1
- package/config/ConfigService/ConfigService.js +7 -4
- package/config/ConfigService/validation.js +1 -0
- package/config/defineConfig/defineConfig.d.ts +1 -1
- package/config/types.d.ts +4 -0
- package/package.json +1 -1
- package/services/SemanticRelease/SemanticRelease.d.ts +1 -1
- package/services/SemanticRelease/SemanticRelease.js +2 -2
- package/services/Telegram/Telegram.d.ts +1 -1
- package/services/Telegram/Telegram.js +1 -1
package/README.md
CHANGED
|
@@ -123,6 +123,29 @@ module.exports = defineConfig({
|
|
|
123
123
|
|
|
124
124
|
Результирующий package.json не будет содержать `engines`.
|
|
125
125
|
|
|
126
|
+
## Переопределение свойств package.json
|
|
127
|
+
|
|
128
|
+
Для переопределения свойств package.json необходимо использовать `overridePackageJson`:
|
|
129
|
+
```js
|
|
130
|
+
module.exports = defineConfig({
|
|
131
|
+
...config,
|
|
132
|
+
overridePackageJson: {
|
|
133
|
+
exports: {
|
|
134
|
+
'./base': './biome.json',
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
});
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
`exports` в результирующем package.json будет:
|
|
141
|
+
```json
|
|
142
|
+
{
|
|
143
|
+
"exports": {
|
|
144
|
+
"./base": "./biome.json"
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
126
149
|
## Отправка уведомлений в telegram
|
|
127
150
|
|
|
128
151
|
Отправляет в telegram уведомление об успешном релизе пакета:
|
package/bin.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const cli_1 = require("./cli");
|
|
4
5
|
const commands_1 = require("./commands");
|
|
5
6
|
const config_1 = require("./config");
|
|
6
|
-
const cli_1 = require("./cli");
|
|
7
7
|
const start = async () => {
|
|
8
8
|
const { command, packageVersion, telegram } = (0, cli_1.parseArgs)();
|
|
9
9
|
let configService;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { CLIArgs } from '../types';
|
|
1
|
+
import { type CLIArgs } from '../types';
|
|
2
2
|
export declare const parseArgs: () => CLIArgs;
|
package/cli/types.d.ts
CHANGED
package/commands/build/build.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.build = void 0;
|
|
4
|
+
const services_1 = require("../../services");
|
|
4
5
|
const compileJs_1 = require("../compileJs");
|
|
5
|
-
const generatePackageJson_1 = require("../generatePackageJson");
|
|
6
6
|
const compileTs_1 = require("../compileTs");
|
|
7
|
-
const services_1 = require("../../services");
|
|
8
|
-
const rmDist_1 = require("../rmDist");
|
|
9
|
-
const copyStatic_1 = require("../copyStatic");
|
|
10
7
|
const copyDoc_1 = require("../copyDoc");
|
|
8
|
+
const copyStatic_1 = require("../copyStatic");
|
|
9
|
+
const generatePackageJson_1 = require("../generatePackageJson");
|
|
10
|
+
const rmDist_1 = require("../rmDist");
|
|
11
11
|
const build = async (params, config) => {
|
|
12
12
|
let newPackageVersion = '';
|
|
13
13
|
if (params.packageVersion) {
|
|
@@ -5,8 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.compileJs = void 0;
|
|
7
7
|
const path_1 = __importDefault(require("path"));
|
|
8
|
-
const copyStatic_1 = require("../copyStatic");
|
|
9
8
|
const services_1 = require("../../services");
|
|
9
|
+
const copyStatic_1 = require("../copyStatic");
|
|
10
10
|
const compileJs = async ({ originPackageJson }, config) => {
|
|
11
11
|
const { main } = originPackageJson;
|
|
12
12
|
const srcDir = path_1.default.dirname(main).replace('./', '').replace('.', '') || 'src';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { ConfigService } from '../../config';
|
|
1
|
+
import { type ConfigService } from '../../config';
|
|
2
2
|
export declare const compileTs: (config: ConfigService) => Promise<void>;
|
|
@@ -4,8 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.compileTs = void 0;
|
|
7
|
-
const path_1 = __importDefault(require("path"));
|
|
8
7
|
const node_child_process_1 = require("node:child_process");
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
9
|
const services_1 = require("../../services");
|
|
10
10
|
const compileTs = (config) => {
|
|
11
11
|
const { tsConfigName, format, projectPath, distPath } = config;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.copyDoc = void 0;
|
|
4
|
-
const copyStatic_1 = require("../copyStatic");
|
|
5
4
|
const services_1 = require("../../services");
|
|
5
|
+
const copyStatic_1 = require("../copyStatic");
|
|
6
6
|
/**
|
|
7
7
|
* Копирует README и license
|
|
8
8
|
*/
|
|
@@ -4,8 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.generatePackageJson = void 0;
|
|
7
|
-
const path_1 = __importDefault(require("path"));
|
|
8
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
9
|
const services_1 = require("../../services");
|
|
10
10
|
const initOmitProps = ({ omitPackageJsonProps = [] }) => (originPackageJson) => {
|
|
11
11
|
const devProps = [
|
|
@@ -41,7 +41,6 @@ const initUpdatingReleaseGroup = (config, packageVersion) => (originPackageJson)
|
|
|
41
41
|
};
|
|
42
42
|
const initExportsGenerator = ({ packageExports, format, lang }) => (originPackageJson) => {
|
|
43
43
|
if (format.length === 1 && format.includes('cjs')) {
|
|
44
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
45
44
|
const { exports, ...packageJson } = originPackageJson;
|
|
46
45
|
return packageJson;
|
|
47
46
|
}
|
|
@@ -102,14 +101,27 @@ const initAdditionalCommonProps = (packageVersion, { semanticRelease, lang, targ
|
|
|
102
101
|
}
|
|
103
102
|
return packageJson;
|
|
104
103
|
};
|
|
104
|
+
const initOverridePackageJson = ({ overridePackageJson }) => (originPackageJson) => {
|
|
105
|
+
if (!overridePackageJson) {
|
|
106
|
+
return originPackageJson;
|
|
107
|
+
}
|
|
108
|
+
return {
|
|
109
|
+
...originPackageJson,
|
|
110
|
+
...overridePackageJson,
|
|
111
|
+
};
|
|
112
|
+
};
|
|
105
113
|
const generatePackageJson = async ({ packageVersion, originPackageJson }, config) => {
|
|
106
114
|
services_1.logger.progress('Генерация package.json');
|
|
107
115
|
const omitProps = initOmitProps(config);
|
|
108
116
|
const updateReleaseGroup = initUpdatingReleaseGroup(config, packageVersion);
|
|
109
117
|
const updateAdditionalCommonProps = initAdditionalCommonProps(packageVersion, config);
|
|
110
118
|
const generateExports = initExportsGenerator(config);
|
|
111
|
-
const
|
|
119
|
+
const overridePackageJson = initOverridePackageJson(config);
|
|
120
|
+
const packageJson = overridePackageJson(generateExports(omitProps(updateAdditionalCommonProps(updateReleaseGroup(originPackageJson)))));
|
|
112
121
|
const { distPath } = config;
|
|
122
|
+
if (!fs_1.default.existsSync(distPath)) {
|
|
123
|
+
fs_1.default.mkdirSync(distPath);
|
|
124
|
+
}
|
|
113
125
|
fs_1.default.writeFileSync(path_1.default.join(distPath, 'package.json'), JSON.stringify(packageJson, null, 2));
|
|
114
126
|
services_1.logger.success('package.json успешно сформирован в ', distPath);
|
|
115
127
|
};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { ConfigService } from '../../../config';
|
|
1
|
+
import { type ConfigService } from '../../../config';
|
|
2
2
|
export declare const checkPackageVersion: (config: ConfigService) => Promise<void>;
|
|
@@ -37,7 +37,7 @@ const checkPackageVersion = async (config) => {
|
|
|
37
37
|
throw err;
|
|
38
38
|
}
|
|
39
39
|
if (versions.currentVersion === versions.nextVersion) {
|
|
40
|
-
throw Error('Версии пакетов совпадают');
|
|
40
|
+
throw new Error('Версии пакетов совпадают');
|
|
41
41
|
}
|
|
42
42
|
const { projectPath, packPrivateDirName, semanticRelease: semanticReleaseConfig, } = config;
|
|
43
43
|
const versionFilePath = path_1.default.join(projectPath, packPrivateDirName, semanticReleaseConfig.versionsFileName);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { ConfigService } from '../../../config';
|
|
1
|
+
import { type ConfigService } from '../../../config';
|
|
2
2
|
export declare const createRelease: (config: ConfigService) => Promise<void>;
|
|
@@ -8,7 +8,7 @@ const sendTelegramSuccessRelease = async ({ chatId, packageName, botToken }, con
|
|
|
8
8
|
if (!chatId || !botToken) {
|
|
9
9
|
const errorMessage = 'Не указан chatId или botToken для Telegram';
|
|
10
10
|
services_1.logger.error(errorMessage);
|
|
11
|
-
throw Error(errorMessage);
|
|
11
|
+
throw new Error(errorMessage);
|
|
12
12
|
}
|
|
13
13
|
const semanticRelease = (0, services_1.createSemanticRelease)(config);
|
|
14
14
|
const newPackageVersion = semanticRelease.parseVersions().nextVersion;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CopyStaticFilesConfig, Lang, PackConfig } from '../types';
|
|
1
|
+
import { type CopyStaticFilesConfig, type Lang, type PackConfig } from '../types';
|
|
2
2
|
export type PackageJson = {
|
|
3
3
|
main: string;
|
|
4
4
|
name: string;
|
|
@@ -29,6 +29,7 @@ export declare class ConfigService {
|
|
|
29
29
|
};
|
|
30
30
|
get packageExports(): import("../types").PackageExports | undefined;
|
|
31
31
|
get omitPackageJsonProps(): string[] | undefined;
|
|
32
|
+
get overridePackageJson(): Record<string, unknown> | undefined;
|
|
32
33
|
parseOriginPackageJson: ({ ignoreMain, }?: {
|
|
33
34
|
ignoreMain?: boolean;
|
|
34
35
|
}) => PackageJson;
|
|
@@ -37,9 +37,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.ConfigService = void 0;
|
|
40
|
-
const path_1 = __importDefault(require("path"));
|
|
41
|
-
const fs_1 = __importDefault(require("fs"));
|
|
42
40
|
const v = __importStar(require("@astral/validations"));
|
|
41
|
+
const fs_1 = __importDefault(require("fs"));
|
|
42
|
+
const path_1 = __importDefault(require("path"));
|
|
43
43
|
const services_1 = require("../../services");
|
|
44
44
|
const validation_1 = require("./validation");
|
|
45
45
|
class ConfigService {
|
|
@@ -95,6 +95,9 @@ class ConfigService {
|
|
|
95
95
|
get omitPackageJsonProps() {
|
|
96
96
|
return this.config.omitPackageJsonProps;
|
|
97
97
|
}
|
|
98
|
+
get overridePackageJson() {
|
|
99
|
+
return this.config.overridePackageJson;
|
|
100
|
+
}
|
|
98
101
|
parseOriginPackageJson = ({ ignoreMain, } = {}) => {
|
|
99
102
|
const packageJson = JSON.parse(fs_1.default.readFileSync(path_1.default.join(this.projectPath, 'package.json'), 'utf8'));
|
|
100
103
|
if (!ignoreMain && !packageJson.main) {
|
|
@@ -109,9 +112,9 @@ class ConfigService {
|
|
|
109
112
|
const configPath = path_1.default.join(this.projectPath, this.configName);
|
|
110
113
|
if (!fs_1.default.existsSync(configPath)) {
|
|
111
114
|
this.logger.error('pack.config.js не найден');
|
|
112
|
-
throw Error('pack.config.js не найден');
|
|
115
|
+
throw new Error('pack.config.js не найден');
|
|
113
116
|
}
|
|
114
|
-
//
|
|
117
|
+
// biome-ignore lint/style/noCommonJs: <>
|
|
115
118
|
const config = require(configPath);
|
|
116
119
|
const validationError = (0, validation_1.validateConfig)(config);
|
|
117
120
|
if (validationError) {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { PackConfig } from '../types';
|
|
1
|
+
import { type PackConfig } from '../types';
|
|
2
2
|
export declare const defineConfig: (config: PackConfig) => PackConfig;
|
package/config/types.d.ts
CHANGED
|
@@ -55,5 +55,9 @@ export type PackConfig = {
|
|
|
55
55
|
* Удаляет указанные props в сгенерированном package.json
|
|
56
56
|
*/
|
|
57
57
|
omitPackageJsonProps?: string[];
|
|
58
|
+
/**
|
|
59
|
+
* Позволяет переопределить итоговый package.json
|
|
60
|
+
*/
|
|
61
|
+
overridePackageJson?: Record<string, unknown>;
|
|
58
62
|
};
|
|
59
63
|
export type Lang = 'js' | 'ts';
|
package/package.json
CHANGED
|
@@ -4,8 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.createSemanticRelease = exports.SemanticRelease = void 0;
|
|
7
|
-
const path_1 = __importDefault(require("path"));
|
|
8
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
9
|
const Logger_1 = require("../Logger");
|
|
10
10
|
class SemanticRelease {
|
|
11
11
|
_config;
|
|
@@ -16,7 +16,7 @@ class SemanticRelease {
|
|
|
16
16
|
const { semanticRelease } = this._config;
|
|
17
17
|
const versionsFilePath = path_1.default.join(this.getVersionsDirPath(), semanticRelease.versionsFileName);
|
|
18
18
|
if (!fs_1.default.existsSync(versionsFilePath)) {
|
|
19
|
-
throw Error('Файл с версиями не найден');
|
|
19
|
+
throw new Error('Файл с версиями не найден');
|
|
20
20
|
}
|
|
21
21
|
const { currentVersion, nextVersion } = JSON.parse(fs_1.default.readFileSync(versionsFilePath, 'utf8'));
|
|
22
22
|
const versions = {
|
|
@@ -13,7 +13,7 @@ class Telegram {
|
|
|
13
13
|
if (!params.chatId || !params.botToken) {
|
|
14
14
|
const errorMessage = 'Не указан chatId или botToken для Telegram';
|
|
15
15
|
Logger_1.logger.error(errorMessage);
|
|
16
|
-
throw Error(errorMessage);
|
|
16
|
+
throw new Error(errorMessage);
|
|
17
17
|
}
|
|
18
18
|
this._params = params;
|
|
19
19
|
}
|