@packtory/cli 0.0.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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) [2023]
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,34 @@
1
+ import path from 'node:path';
2
+ import { isReadonlyRecord } from 'effect/Predicate';
3
+ import { has } from 'effect/ReadonlyRecord';
4
+ function isFunction(value) {
5
+ return typeof value === 'function';
6
+ }
7
+ export function createConfigLoader(dependencies) {
8
+ const { currentWorkingDirectory, importModule } = dependencies;
9
+ async function importConfigModule() {
10
+ const configFilePath = path.join(currentWorkingDirectory, 'packtory.config.js');
11
+ const module = await importModule(configFilePath);
12
+ if (!isReadonlyRecord(module)) {
13
+ throw new Error('Invalid config file');
14
+ }
15
+ return module;
16
+ }
17
+ return {
18
+ async load() {
19
+ const module = await importConfigModule();
20
+ if (has(module, 'config')) {
21
+ return module.config;
22
+ }
23
+ if (has(module, 'buildConfig')) {
24
+ const { buildConfig } = module;
25
+ if (isFunction(buildConfig)) {
26
+ return buildConfig();
27
+ }
28
+ throw new Error('Named export of "buildConfig" config file is not a function');
29
+ }
30
+ throw new Error('Config file doesn’t have a named export "config" nor "buildConfig"');
31
+ }
32
+ };
33
+ }
34
+ //# sourceMappingURL=config-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../../../source/command-line-interface/config-loader.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,GAAG,EAAuB,MAAM,uBAAuB,CAAC;AAajE,SAAS,UAAU,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,YAAsC;IACrE,MAAM,EAAE,uBAAuB,EAAE,YAAY,EAAE,GAAG,YAAY,CAAC;IAE/D,KAAK,UAAU,kBAAkB;QAC7B,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,oBAAoB,CAAC,CAAC;QAChF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,cAAc,CAAC,CAAC;QAElD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,OAAO;QACH,KAAK,CAAC,IAAI;YACN,MAAM,MAAM,GAAG,MAAM,kBAAkB,EAAE,CAAC;YAE1C,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;gBACxB,OAAO,MAAM,CAAC,MAAM,CAAC;YACzB,CAAC;YAED,IAAI,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC;gBAC7B,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;gBAC/B,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC1B,OAAO,WAAW,EAAE,CAAC;gBACzB,CAAC;gBAED,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;YACnF,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;QAC1F,CAAC;KACJ,CAAC;AACN,CAAC"}
@@ -0,0 +1,94 @@
1
+ import { command, subcommands, flag, binary, run } from 'cmd-ts';
2
+ import kleur from 'kleur';
3
+ const errorSymbol = kleur.bold().red('✖');
4
+ const successSymbol = kleur.bold().green('✔');
5
+ const warningSymbol = kleur.yellow('⚠');
6
+ export function createCommandLineInterfaceRunner(dependencies) {
7
+ const { log, packtory, progressBroadcaster, spinnerRenderer, configLoader } = dependencies;
8
+ let exitCode = 0;
9
+ function printDryRunNote(flags) {
10
+ if (flags.noDryRun) {
11
+ return;
12
+ }
13
+ log(`${warningSymbol} ${kleur.dim(` Note: dry-run mode was enabled, so there was nothing really published; add the ${kleur.bold('--no-dry-run')} flag to disable dry-run mode`)}`);
14
+ }
15
+ function printInvalidConfigErrors(issues) {
16
+ const title = `${errorSymbol} The provided config is invalid, there are ${issues.length} issue(s)`;
17
+ const message = `${title}\n\n- ${issues.join('\n- ')}`;
18
+ log(message);
19
+ }
20
+ function printPartialErrorSummary(error) {
21
+ const total = error.succeeded.length + error.failures.length;
22
+ log(`${errorSymbol} ${kleur.red(error.failures.length)} from ${kleur.bold(total)} package(s) failed; ${kleur.green(error.succeeded.length)} succeeded`);
23
+ }
24
+ function printPublishFailure(error) {
25
+ if (error.type === 'config') {
26
+ printInvalidConfigErrors(error.issues);
27
+ }
28
+ else {
29
+ printPartialErrorSummary(error);
30
+ }
31
+ }
32
+ function printSuccessSummary(results) {
33
+ log(`${successSymbol} Success: all ${results.length} package(s) have been published`);
34
+ }
35
+ const baseCommand = subcommands({
36
+ name: 'packtory',
37
+ cmds: {
38
+ publish: command({
39
+ name: 'publish',
40
+ description: 'Builds and publishes all packages (dry-run enabled by default).',
41
+ args: {
42
+ noDryRun: flag({ long: 'no-dry-run' })
43
+ },
44
+ async handler({ noDryRun }) {
45
+ const config = await configLoader.load();
46
+ try {
47
+ const result = await packtory.buildAndPublishAll(config, { dryRun: !noDryRun });
48
+ if (result.isErr) {
49
+ exitCode = 1;
50
+ printPublishFailure(result.error);
51
+ }
52
+ else {
53
+ printSuccessSummary(result.value);
54
+ }
55
+ }
56
+ finally {
57
+ spinnerRenderer.stopAll();
58
+ printDryRunNote({ noDryRun });
59
+ }
60
+ }
61
+ })
62
+ }
63
+ });
64
+ return {
65
+ async run(programArguments) {
66
+ progressBroadcaster.on('scheduled', (payload) => {
67
+ spinnerRenderer.add(payload.packageName, payload.packageName, 'Scheduled …');
68
+ });
69
+ progressBroadcaster.on('error', (payload) => {
70
+ spinnerRenderer.stop(payload.packageName, 'failure', payload.error.message);
71
+ });
72
+ progressBroadcaster.on('done', (payload) => {
73
+ let message = `New version ${payload.version} published`;
74
+ if (payload.status === 'already-published') {
75
+ message = `Nothing has changed, published version ${payload.version} is already up-to-date`;
76
+ }
77
+ if (payload.status === 'initial-version') {
78
+ message = `First version ${payload.version} has been published`;
79
+ }
80
+ spinnerRenderer.stop(payload.packageName, 'success', message);
81
+ });
82
+ progressBroadcaster.on('building', (payload) => {
83
+ spinnerRenderer.updateMessage(payload.packageName, `Building package with version ${payload.version}`);
84
+ });
85
+ progressBroadcaster.on('rebuilding', (payload) => {
86
+ spinnerRenderer.updateMessage(payload.packageName, `Rebuilding package with version ${payload.version}`);
87
+ });
88
+ const program = binary(baseCommand);
89
+ await run(program, programArguments);
90
+ return exitCode;
91
+ }
92
+ };
93
+ }
94
+ //# sourceMappingURL=runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../../source/command-line-interface/runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ export function createTerminalSpinnerRenderer(dependencies) {
2
+ const { SpinnerClass } = dependencies;
3
+ const spinners = new Map();
4
+ function getSpinnerById(id) {
5
+ const spinner = spinners.get(id);
6
+ if (spinner === undefined) {
7
+ throw new Error(`Spinner with id ${id} does not exist`);
8
+ }
9
+ return spinner;
10
+ }
11
+ function ensureIdDoesNotExist(id) {
12
+ if (spinners.has(id)) {
13
+ throw new Error(`Spinner with id ${id} already exists`);
14
+ }
15
+ }
16
+ return {
17
+ add(id, label, message) {
18
+ ensureIdDoesNotExist(id);
19
+ const spinner = new SpinnerClass({ name: 'dots' });
20
+ spinners.set(id, { instance: spinner, isRunning: true });
21
+ spinner.start(message, { withPrefix: `${label}: ` });
22
+ },
23
+ updateMessage(id, message) {
24
+ const spinner = getSpinnerById(id);
25
+ spinner.instance.text = message;
26
+ },
27
+ stop(id, status, message) {
28
+ const spinner = getSpinnerById(id);
29
+ spinners.set(id, { instance: spinner.instance, isRunning: false });
30
+ if (status === 'failure') {
31
+ spinner.instance.failed(message);
32
+ }
33
+ else {
34
+ spinner.instance.succeed(message);
35
+ }
36
+ },
37
+ stopAll() {
38
+ for (const spinner of spinners.values()) {
39
+ if (spinner.isRunning) {
40
+ spinner.instance.failed('Canceled …');
41
+ }
42
+ }
43
+ SpinnerClass.reset();
44
+ }
45
+ };
46
+ }
47
+ //# sourceMappingURL=terminal-spinner-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-spinner-renderer.js","sourceRoot":"","sources":["../../../../source/command-line-interface/terminal-spinner-renderer.ts"],"names":[],"mappings":"AAoBA,MAAM,UAAU,6BAA6B,CACzC,YAAiD;IAEjD,MAAM,EAAE,YAAY,EAAE,GAAG,YAAY,CAAC;IACtC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA2B,CAAC;IAEpD,SAAS,cAAc,CAAC,EAAU;QAC9B,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,SAAS,oBAAoB,CAAC,EAAU;QACpC,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;QAC5D,CAAC;IACL,CAAC;IAED,OAAO;QACH,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO;YAClB,oBAAoB,CAAC,EAAE,CAAC,CAAC;YAEzB,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YACnD,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACzD,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,aAAa,CAAC,EAAE,EAAE,OAAO;YACrB,MAAM,OAAO,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;YACnC,OAAO,CAAC,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC;QACpC,CAAC;QAED,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO;YACpB,MAAM,OAAO,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;YAEnC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YAEnE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACtC,CAAC;QACL,CAAC;QAED,OAAO;YACH,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;gBACtC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;oBACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBAC1C,CAAC;YACL,CAAC;YACD,YAAY,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC;KACJ,CAAC;AACN,CAAC"}
package/package.json ADDED
@@ -0,0 +1,42 @@
1
+ {
2
+ "author": "Mathias Schreck <schreck.mathias@gmail.com>",
3
+ "bin": {
4
+ "packtory": "./command-line-interface.entry-point.js"
5
+ },
6
+ "contributors": {
7
+ "0": "Christian Rackerseder <github@echooff.de>"
8
+ },
9
+ "dependencies": {
10
+ "@topcli/spinner": "2.1.2",
11
+ "cmd-ts": "0.13.0",
12
+ "effect": "2.1.1",
13
+ "kleur": "4.1.5",
14
+ "packtory": "0.0.1"
15
+ },
16
+ "description": "Effortlessly bundle and publish npm packages from the command line with @packtory/cli.",
17
+ "engines": {
18
+ "node": "^20"
19
+ },
20
+ "keywords": {
21
+ "0": "bundler",
22
+ "1": "bundling",
23
+ "2": "npm",
24
+ "3": "publish",
25
+ "4": "modules",
26
+ "5": "versioning",
27
+ "6": "monorepo",
28
+ "7": "publishing",
29
+ "8": "package",
30
+ "9": "packaging"
31
+ },
32
+ "license": "MIT",
33
+ "main": "packages/command-line-interface/command-line-interface.entry-point.js",
34
+ "name": "@packtory/cli",
35
+ "repository": {
36
+ "type": "git",
37
+ "url": "git+ssh://git@github.com/enormora/packtory.git"
38
+ },
39
+ "type": "module",
40
+ "types": "packages/command-line-interface/command-line-interface.entry-point.d.ts",
41
+ "version": "0.0.1"
42
+ }
@@ -0,0 +1,2 @@
1
+ export type { PacktoryConfig } from 'packtory/packages/packtory/packtory.entry-point.d.ts';
2
+ //# sourceMappingURL=command-line-interface.entry-point.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-line-interface.entry-point.d.ts","sourceRoot":"","sources":["../../../../../source/packages/command-line-interface/command-line-interface.entry-point.ts"],"names":[],"mappings":"AA+BA,YAAY,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { Spinner } from '@topcli/spinner';
2
+ import { createCommandLineInterfaceRunner } from '../../command-line-interface/runner.js';
3
+ import { createTerminalSpinnerRenderer } from '../../command-line-interface/terminal-spinner-renderer.js';
4
+ import { createConfigLoader } from '../../command-line-interface/config-loader.js';
5
+ import { buildAndPublishAll, progressBroadcastConsumer } from 'packtory/packages/packtory/packtory.entry-point.js';
6
+ async function importModule(modulePath) {
7
+ return import(modulePath);
8
+ }
9
+ const commandLinerInterfaceRunner = createCommandLineInterfaceRunner({
10
+ packtory: { buildAndPublishAll },
11
+ progressBroadcaster: progressBroadcastConsumer,
12
+ spinnerRenderer: createTerminalSpinnerRenderer({ SpinnerClass: Spinner }),
13
+ configLoader: createConfigLoader({ currentWorkingDirectory: process.cwd(), importModule }),
14
+ log: console.log
15
+ });
16
+ async function main() {
17
+ const exitCode = await commandLinerInterfaceRunner.run(process.argv);
18
+ // eslint-disable-next-line require-atomic-updates -- we intentionally want to override the exitCode no matter what its current value is
19
+ process.exitCode = exitCode;
20
+ }
21
+ function crash(error) {
22
+ console.error(error);
23
+ process.exitCode = 1;
24
+ }
25
+ main().catch(crash);
26
+ //# sourceMappingURL=command-line-interface.entry-point.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-line-interface.entry-point.js","sourceRoot":"","sources":["../../../../../source/packages/command-line-interface/command-line-interface.entry-point.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,gCAAgC,EAAE,MAAM,wCAAwC,CAAC;AAC1F,OAAO,EAAE,6BAA6B,EAAE,MAAM,2DAA2D,CAAC;AAC1G,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAEpG,KAAK,UAAU,YAAY,CAAC,UAAkB;IAC1C,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,2BAA2B,GAAG,gCAAgC,CAAC;IACjE,QAAQ,EAAE,EAAE,kBAAkB,EAAE;IAChC,mBAAmB,EAAE,yBAAyB;IAC9C,eAAe,EAAE,6BAA6B,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;IACzE,YAAY,EAAE,kBAAkB,CAAC,EAAE,uBAAuB,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,CAAC;IAC1F,GAAG,EAAE,OAAO,CAAC,GAAG;CACnB,CAAC,CAAC;AAEH,KAAK,UAAU,IAAI;IACf,MAAM,QAAQ,GAAG,MAAM,2BAA2B,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,wIAAwI;IACxI,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAChC,CAAC;AAED,SAAS,KAAK,CAAC,KAAc;IACzB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC"}
package/readme.md ADDED
@@ -0,0 +1,29 @@
1
+ # @packtory/cli
2
+
3
+ **Command-Line Interface for packtory**
4
+
5
+ This package provides a command-line interface (CLI) for the packtory tool, simplifying the process of bundling and publishing npm packages. It allows you to execute common tasks easily through the command line.
6
+
7
+ **Installation:**
8
+
9
+ ```bash
10
+ npm install -D @packtory/cli
11
+ ```
12
+
13
+ **Usage:**
14
+
15
+ ```bash
16
+ packtory <command> [options]
17
+ ```
18
+
19
+ **Commands:**
20
+
21
+ - **publish:** Bundles and publishes npm packages based on the configuration in `packtory.config.js`.
22
+
23
+ **Options:**
24
+
25
+ - **--no-dry-run:** Disables dry-run mode (enabled by default), allowing actual publishing.
26
+
27
+ **Configuration:**
28
+
29
+ Create a `packtory.config.js` file in your project to define the configuration. Refer to the [full documentation](https://github.com/enormora/packtory/blob/main/readme.md) for detailed configuration options.