@nan0web/release 1.0.1 → 1.0.2
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 +24 -42
- package/bin/nan0release.js +27 -42
- package/package.json +21 -14
- package/src/Release/Document.js +13 -19
- package/src/Release/MarkdownToTest.js +35 -33
- package/src/Release/Person.js +3 -8
- package/src/Release/Scanner.js +179 -0
- package/src/Release.js +19 -12
- package/src/Team.js +9 -9
- package/src/architecture/ProjectManagementAsCode.js +8 -8
- package/src/cli/index.js +9 -0
- package/src/co/AppCommandOptions.js +4 -6
- package/src/commands/CloseCommand.js +67 -0
- package/src/commands/Command.js +48 -0
- package/src/commands/DepsCommand.js +143 -0
- package/src/commands/InitCommand.js +48 -56
- package/src/commands/PublishCommand.js +80 -119
- package/src/commands/SpecCommand.js +41 -0
- package/src/commands/StatusCommand.js +26 -0
- package/src/db/ReleaseDB.js +5 -5
- package/src/index.js +18 -0
- package/src/ui/cli/ReleaseCLi.js +52 -0
- package/src/utils/runSpawn.js +0 -0
- package/types/Release/Document.d.ts +2 -2
- package/types/Release/Person.d.ts +3 -3
- package/types/Release/Scanner.d.ts +90 -0
- package/types/Release.d.ts +37 -33
- package/types/ReleaseCLI.d.ts +29 -28
- package/types/Team.d.ts +3 -3
- package/types/architecture/ProjectManagementAsCode.d.ts +1 -1
- package/types/cli/index.d.ts +2 -0
- package/types/co/AppCommandMessage.d.ts +10 -11
- package/types/co/AppCommandOptions.d.ts +1 -2
- package/types/commands/BaseCommand.d.ts +23 -0
- package/types/commands/ChatCommand.d.ts +9 -9
- package/types/commands/ChatMessage.d.ts +36 -0
- package/types/commands/CloseCommand.d.ts +25 -0
- package/types/commands/Command.d.ts +28 -0
- package/types/commands/DepsCommand.d.ts +32 -0
- package/types/commands/DepsMessage.d.ts +28 -0
- package/types/commands/HostCommand.d.ts +7 -7
- package/types/commands/HostMessage.d.ts +44 -0
- package/types/commands/InitCommand.d.ts +24 -19
- package/types/commands/InitMessage.d.ts +24 -0
- package/types/commands/ListCommand.d.ts +8 -8
- package/types/commands/ListMessage.d.ts +30 -0
- package/types/commands/PublishCommand.d.ts +36 -47
- package/types/commands/PublishMessage.d.ts +39 -0
- package/types/commands/SealCommand.d.ts +7 -7
- package/types/commands/SealMessage.d.ts +28 -0
- package/types/commands/ServeCommand.d.ts +7 -7
- package/types/commands/ServeMessage.d.ts +30 -0
- package/types/commands/ShowCommand.d.ts +7 -7
- package/types/commands/SpecCommand.d.ts +25 -0
- package/types/commands/StatusCommand.d.ts +9 -0
- package/types/commands/SubCommand.d.ts +9 -7
- package/types/commands/ValidateCommand.d.ts +7 -7
- package/types/commands/ValidateMessage.d.ts +20 -0
- package/types/db/ReleaseDB.d.ts +2 -2
- package/types/index.d.ts +10 -0
- package/types/ui/cli/ReleaseCLi.d.ts +10 -0
- package/types/ui/cli/index.d.ts +0 -0
- package/types/utils/runSpawn.d.ts +0 -0
- package/.datasets/README.dataset.jsonl +0 -19
- package/.editorconfig +0 -20
- package/CHANGELOG.md +0 -6
- package/CONTRIBUTING.md +0 -42
- package/bin/commands/InitCommand.js +0 -10
- package/bin/lib/functions.js +0 -240
- package/bin/lib/functions.test.js +0 -138
- package/bin/release.js +0 -12
- package/bin/release.test.js +0 -73
- package/bin/temp/package.json +0 -1
- package/docs/system.uk.md +0 -413
- package/docs/uk/README.md +0 -284
- package/legacy/PrepareCommand.js +0 -154
- package/legacy/PrepareCommand.test.js +0 -189
- package/legacy/changelog.js +0 -446
- package/releases/1/0/v1.0.0/models/Person.js +0 -26
- package/releases/1/0/v1.0.0/models/Person.test.js +0 -44
- package/releases/1/0/v1.0.0/models/company.js +0 -11
- package/releases/1/0/v1.0.0/models/members.js +0 -14
- package/releases/1/0/v1.0.0/models/members.test.js +0 -21
- package/releases/1/0/v1.0.0/models/teams/DevTeam.js +0 -6
- package/releases/1/0/v1.0.0/models/teams/DevTeam.test.js +0 -15
- package/releases/1/0/v1.0.0/models/teams/index.js +0 -5
- package/releases/1/0/v1.0.0/release.js +0 -12
- package/releases/1/0/v1.0.0/release.md +0 -121
- package/releases/1/0/v1.0.0/release.test.js +0 -36
- package/releases/1/0/v1.0.0/test/YaRaSLove/git-native.test.js +0 -14
- package/releases/current.js +0 -3
- package/releases/index.js +0 -11
- package/src/README.md.js +0 -468
- package/src/Release/MarkdownToTest.test.js +0 -60
- package/src/ReleaseCLI.js +0 -122
- package/src/architecture/ProjectManagementAsCode.test.js +0 -128
- package/src/co/AppCommandMessage.js +0 -22
- package/src/commands/ChatCommand.js +0 -56
- package/src/commands/HostCommand.js +0 -63
- package/src/commands/ListCommand.js +0 -56
- package/src/commands/SealCommand.js +0 -51
- package/src/commands/ServeCommand.js +0 -53
- package/src/commands/ShowCommand.js +0 -58
- package/src/commands/SubCommand.js +0 -21
- package/src/commands/ValidateCommand.js +0 -66
- package/system.md +0 -571
- package/tsconfig.json +0 -23
- /package/{bin/lib/temp/pnpm-lock.yaml → src/ui/cli/index.js} +0 -0
|
@@ -1,49 +1,38 @@
|
|
|
1
|
-
export class PublishCommandOptions {
|
|
2
|
-
/**
|
|
3
|
-
* @param {any} input
|
|
4
|
-
* @returns {PublishCommandOptions}
|
|
5
|
-
*/
|
|
6
|
-
static from(input: any): PublishCommandOptions;
|
|
7
|
-
constructor(input?: {});
|
|
8
|
-
/** @type {string} */
|
|
9
|
-
tag: string;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* @extends {CommandMessage}
|
|
13
|
-
*/
|
|
14
|
-
export class PublishCommandMessage extends CommandMessage {
|
|
15
|
-
constructor(input?: {});
|
|
16
|
-
set opts(arg: PublishCommandOptions);
|
|
17
|
-
/** @returns {PublishCommandOptions} */
|
|
18
|
-
get opts(): PublishCommandOptions;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* @extends {Command}
|
|
22
|
-
*/
|
|
23
1
|
export default class PublishCommand extends Command {
|
|
24
|
-
static
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
2
|
+
static name: string;
|
|
3
|
+
static help: string;
|
|
4
|
+
static Body: typeof PublishBody;
|
|
5
|
+
/** @param {Partial<Command> & { body?: Partial<PublishBody> }} [input={}] */
|
|
6
|
+
constructor(input?: Partial<Command> & {
|
|
7
|
+
body?: Partial<PublishBody>;
|
|
8
|
+
});
|
|
9
|
+
/** @type {PublishBody} */
|
|
10
|
+
body: PublishBody;
|
|
11
|
+
}
|
|
12
|
+
import Command from './Command.js';
|
|
13
|
+
declare class PublishBody {
|
|
14
|
+
static major: {
|
|
15
|
+
help: string;
|
|
16
|
+
defaultValue: boolean;
|
|
17
|
+
};
|
|
18
|
+
static minor: {
|
|
19
|
+
help: string;
|
|
20
|
+
defaultValue: boolean;
|
|
21
|
+
};
|
|
22
|
+
static patch: {
|
|
23
|
+
help: string;
|
|
24
|
+
defaultValue: boolean;
|
|
25
|
+
};
|
|
26
|
+
constructor({ major, minor, patch }?: {
|
|
27
|
+
major?: boolean | undefined;
|
|
28
|
+
minor?: boolean | undefined;
|
|
29
|
+
patch?: boolean | undefined;
|
|
30
|
+
});
|
|
31
|
+
/** @type {boolean} */
|
|
32
|
+
major: boolean;
|
|
33
|
+
/** @type {boolean} */
|
|
34
|
+
minor: boolean;
|
|
35
|
+
/** @type {boolean} */
|
|
36
|
+
patch: boolean;
|
|
47
37
|
}
|
|
48
|
-
|
|
49
|
-
import { Command } from "@nan0web/co";
|
|
38
|
+
export {};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export class PublisBody {
|
|
2
|
+
static major: {
|
|
3
|
+
help: string
|
|
4
|
+
defaultValue: boolean
|
|
5
|
+
}
|
|
6
|
+
static minor: {
|
|
7
|
+
help: string
|
|
8
|
+
defaultValue: boolean
|
|
9
|
+
}
|
|
10
|
+
static patch: {
|
|
11
|
+
help: string
|
|
12
|
+
defaultValue: boolean
|
|
13
|
+
}
|
|
14
|
+
constructor({
|
|
15
|
+
major,
|
|
16
|
+
minor,
|
|
17
|
+
patch,
|
|
18
|
+
}?: {
|
|
19
|
+
major?: boolean | undefined
|
|
20
|
+
minor?: boolean | undefined
|
|
21
|
+
patch?: boolean | undefined
|
|
22
|
+
})
|
|
23
|
+
/** @type {boolean} */
|
|
24
|
+
major: boolean
|
|
25
|
+
/** @type {boolean} */
|
|
26
|
+
minor: boolean
|
|
27
|
+
/** @type {boolean} */
|
|
28
|
+
patch: boolean
|
|
29
|
+
}
|
|
30
|
+
export default class PublishMessage extends Message {
|
|
31
|
+
static Body: typeof PublisBody
|
|
32
|
+
constructor(input?: {})
|
|
33
|
+
/** @type {PublisBody} */
|
|
34
|
+
body: PublisBody
|
|
35
|
+
/** @returns {AsyncGenerator<OutputMessage>} */
|
|
36
|
+
run(): AsyncGenerator<OutputMessage>
|
|
37
|
+
}
|
|
38
|
+
import { Message } from '@nan0web/co'
|
|
39
|
+
import { OutputMessage } from '@nan0web/co'
|
|
@@ -11,11 +11,11 @@
|
|
|
11
11
|
* --message – optional retro‑reflection text
|
|
12
12
|
*/
|
|
13
13
|
export default class SealCommand extends SubCommand {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Seal the current release.
|
|
16
|
+
*
|
|
17
|
+
* @param {Object} ctx – command context
|
|
18
|
+
*/
|
|
19
|
+
run(ctx: any): Promise<void>
|
|
20
20
|
}
|
|
21
|
-
import SubCommand from
|
|
21
|
+
import SubCommand from './SubCommand.js'
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export default class SealMessage extends Message {
|
|
2
|
+
static Body: {
|
|
3
|
+
new ({ message }?: { message?: string | undefined }): {
|
|
4
|
+
/** @type {string} */
|
|
5
|
+
message: string
|
|
6
|
+
}
|
|
7
|
+
message: {
|
|
8
|
+
help: string
|
|
9
|
+
defaultValue: string
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
constructor(input?: {})
|
|
13
|
+
/** @type {SealMessage.Body} */
|
|
14
|
+
body: {
|
|
15
|
+
new ({ message }?: { message?: string | undefined }): {
|
|
16
|
+
/** @type {string} */
|
|
17
|
+
message: string
|
|
18
|
+
}
|
|
19
|
+
message: {
|
|
20
|
+
help: string
|
|
21
|
+
defaultValue: string
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/** @returns {AsyncGenerator<OutputMessage>} */
|
|
25
|
+
run(): AsyncGenerator<OutputMessage>
|
|
26
|
+
}
|
|
27
|
+
import { Message } from '@nan0web/co'
|
|
28
|
+
import { OutputMessage } from '@nan0web/co'
|
|
@@ -7,11 +7,11 @@
|
|
|
7
7
|
* release serve [--port <number>]
|
|
8
8
|
*/
|
|
9
9
|
export default class ServeCommand extends SubCommand {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Start the static server.
|
|
12
|
+
*
|
|
13
|
+
* @param {Object} ctx – command context
|
|
14
|
+
*/
|
|
15
|
+
run(ctx: any): Promise<void>
|
|
16
16
|
}
|
|
17
|
-
import SubCommand from
|
|
17
|
+
import SubCommand from './SubCommand.js'
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export default class ServeMessage extends Message {
|
|
2
|
+
static Body: {
|
|
3
|
+
new ({ port }?: { port?: number | undefined }): {
|
|
4
|
+
/** @type {number} */
|
|
5
|
+
port: number
|
|
6
|
+
}
|
|
7
|
+
port: {
|
|
8
|
+
help: string
|
|
9
|
+
defaultValue: number
|
|
10
|
+
type: string
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
constructor(input?: {})
|
|
14
|
+
/** @type {ServeMessage.Body} */
|
|
15
|
+
body: {
|
|
16
|
+
new ({ port }?: { port?: number | undefined }): {
|
|
17
|
+
/** @type {number} */
|
|
18
|
+
port: number
|
|
19
|
+
}
|
|
20
|
+
port: {
|
|
21
|
+
help: string
|
|
22
|
+
defaultValue: number
|
|
23
|
+
type: string
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/** @returns {AsyncGenerator<OutputMessage>} */
|
|
27
|
+
run(): AsyncGenerator<OutputMessage>
|
|
28
|
+
}
|
|
29
|
+
import { Message } from '@nan0web/co'
|
|
30
|
+
import { OutputMessage } from '@nan0web/co'
|
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
* --full – dump the whole release.md file
|
|
10
10
|
*/
|
|
11
11
|
export default class ShowCommand extends SubCommand {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Render the release information.
|
|
14
|
+
*
|
|
15
|
+
* @param {Object} ctx – command context
|
|
16
|
+
*/
|
|
17
|
+
run(ctx: any): Promise<void>
|
|
18
18
|
}
|
|
19
|
-
import SubCommand from
|
|
19
|
+
import SubCommand from './SubCommand.js'
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export default class SpecCommand extends Command {
|
|
2
|
+
static name: string;
|
|
3
|
+
static help: string;
|
|
4
|
+
static Body: typeof SpecBody;
|
|
5
|
+
/** @param {Partial<Command> & { body?: Partial<SpecBody> }} [input={}] */
|
|
6
|
+
constructor(input?: Partial<Command> & {
|
|
7
|
+
body?: Partial<SpecBody>;
|
|
8
|
+
});
|
|
9
|
+
body: SpecBody;
|
|
10
|
+
run(): AsyncGenerator<OutputMessage, void, unknown>;
|
|
11
|
+
}
|
|
12
|
+
import Command from './Command.js';
|
|
13
|
+
declare class SpecBody {
|
|
14
|
+
static version: {
|
|
15
|
+
help: string;
|
|
16
|
+
defaultValue: string;
|
|
17
|
+
};
|
|
18
|
+
constructor({ version }?: {
|
|
19
|
+
version?: string | undefined;
|
|
20
|
+
});
|
|
21
|
+
/** @type {string} */
|
|
22
|
+
version: string;
|
|
23
|
+
}
|
|
24
|
+
import { OutputMessage } from '@nan0web/co';
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export default class StatusCommand extends Command {
|
|
2
|
+
static name: string;
|
|
3
|
+
static help: string;
|
|
4
|
+
constructor(input?: {});
|
|
5
|
+
body: {};
|
|
6
|
+
run(): AsyncGenerator<OutputMessage, void, unknown>;
|
|
7
|
+
}
|
|
8
|
+
import Command from './Command.js';
|
|
9
|
+
import { OutputMessage } from '@nan0web/co';
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
export default SubCommand
|
|
2
|
-
declare class SubCommand
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
export default SubCommand
|
|
2
|
+
declare class SubCommand {
|
|
3
|
+
constructor(options?: {})
|
|
4
|
+
/** @type {Logger} */
|
|
5
|
+
logger: Logger
|
|
6
|
+
/** @type {ReleaseDB?} */
|
|
7
|
+
db: ReleaseDB | null
|
|
6
8
|
}
|
|
7
|
-
import
|
|
8
|
-
import ReleaseDB from '../db/ReleaseDB.js'
|
|
9
|
+
import Logger from '@nan0web/log'
|
|
10
|
+
import ReleaseDB from '../db/ReleaseDB.js'
|
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
* --ignore-fail – do not treat failed tasks as a validation error
|
|
10
10
|
*/
|
|
11
11
|
export default class ValidateCommand extends SubCommand {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Execute validation.
|
|
14
|
+
*
|
|
15
|
+
* @param {Object} ctx – command context
|
|
16
|
+
*/
|
|
17
|
+
run(ctx: any): Promise<void>
|
|
18
18
|
}
|
|
19
|
-
import SubCommand from
|
|
19
|
+
import SubCommand from './SubCommand.js'
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export class ValidateBody {
|
|
2
|
+
static ignoreFailTests: {
|
|
3
|
+
help: string
|
|
4
|
+
defaultValue: boolean
|
|
5
|
+
type: string
|
|
6
|
+
}
|
|
7
|
+
constructor({ ignoreFailTests }?: { ignoreFailTests?: boolean | undefined })
|
|
8
|
+
/** @type {boolean} */
|
|
9
|
+
ignoreFailTests: boolean
|
|
10
|
+
}
|
|
11
|
+
export default class ValidateMessage extends Message {
|
|
12
|
+
static Body: typeof ValidateBody
|
|
13
|
+
constructor(input?: {})
|
|
14
|
+
/** @type {ValidateBody} */
|
|
15
|
+
body: ValidateBody
|
|
16
|
+
/** @returns {AsyncGenerator<OutputMessage>} */
|
|
17
|
+
run(): AsyncGenerator<OutputMessage>
|
|
18
|
+
}
|
|
19
|
+
import { Message } from '@nan0web/co'
|
|
20
|
+
import { OutputMessage } from '@nan0web/co'
|
package/types/db/ReleaseDB.d.ts
CHANGED
|
@@ -25,6 +25,6 @@ declare class ReleaseDB extends DBFS {
|
|
|
25
25
|
/**
|
|
26
26
|
* @returns {Array<string>} List of discovered release root paths
|
|
27
27
|
*/
|
|
28
|
-
get releases(): string
|
|
28
|
+
get releases(): Array<string>;
|
|
29
29
|
}
|
|
30
|
-
import DBFS from
|
|
30
|
+
import DBFS from '@nan0web/db-fs';
|
package/types/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import Release from './Release.js';
|
|
2
|
+
import ReleaseDocument from './Release/Document.js';
|
|
3
|
+
import Person from './Release/Person.js';
|
|
4
|
+
import Scanner from './Release/Scanner.js';
|
|
5
|
+
import MarkdownToTest from './Release/MarkdownToTest.js';
|
|
6
|
+
import { ProjectManagement } from './architecture/ProjectManagementAsCode.js';
|
|
7
|
+
import { ReleaseManager } from './architecture/ProjectManagementAsCode.js';
|
|
8
|
+
import { TaskTestSuite } from './architecture/ProjectManagementAsCode.js';
|
|
9
|
+
import { ChangelogTaskManager } from './architecture/ProjectManagementAsCode.js';
|
|
10
|
+
export { Release, ReleaseDocument, Person, Scanner, MarkdownToTest, ProjectManagement, ReleaseManager, TaskTestSuite, ChangelogTaskManager };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export default function createReleaseCLI(argv?: string[], logger?: Logger, fs?: {}): ReleaseCLi;
|
|
2
|
+
import Logger from '@nan0web/log';
|
|
3
|
+
declare class ReleaseCLi extends CLI {
|
|
4
|
+
constructor(input: any);
|
|
5
|
+
/** @type {DBFS} */
|
|
6
|
+
fs: DBFS;
|
|
7
|
+
}
|
|
8
|
+
import { CLI } from '@nan0web/ui-cli';
|
|
9
|
+
import DBFS from '@nan0web/db-fs';
|
|
10
|
+
export {};
|
|
File without changes
|
|
File without changes
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
{"instruction":"How to install with pnpm?","output":"```bash\npnpm add @nan0web/release\n```\n","context":["h1:@nan0web/release","h2:Installation"],"input":"## Installation\n\n","tags":["@nan0web/release","Installation"],"proven":"assert-in-@nan0web/release"}
|
|
2
|
-
{"instruction":"How to install with npm?","output":"```bash\nnpm install @nan0web/release\n```\n","context":["h1:@nan0web/release","h2:Installation"],"input":"## Installation\n\n","tags":["@nan0web/release","Installation"],"proven":"assert-in-@nan0web/release"}
|
|
3
|
-
{"instruction":"How to install with yarn?","output":"```bash\nyarn add @nan0web/release\n```\n","context":["h1:@nan0web/release","h2:Installation"],"input":"## Installation\n\n","tags":["@nan0web/release","Installation"],"proven":"assert-in-@nan0web/release"}
|
|
4
|
-
{"instruction":"How to initialize a new release version?","output":"```bash\nrelease init v1.0.0\n```\n","context":["h1:@nan0web/release","h2:CLI Usage"],"input":"## CLI Usage\n\nStart by initializing a new release:\n\n","tags":["@nan0web/release","CLI Usage"],"proven":"assert-in-@nan0web/release"}
|
|
5
|
-
{"instruction":"How to show release information?","output":"```bash\nrelease show [--full]\n```\n","context":["h1:@nan0web/release","h2:CLI Usage"],"input":"## CLI Usage\n\nStart by initializing a new release:\n\nconst cli = new ReleaseCLI()\nShow release details:\n\n","tags":["@nan0web/release","CLI Usage"],"proven":"assert-in-@nan0web/release"}
|
|
6
|
-
{"instruction":"How to list all releases?","output":"```bash\nrelease list [--json]\n```\n","context":["h1:@nan0web/release","h2:CLI Usage"],"input":"## CLI Usage\n\nStart by initializing a new release:\n\nconst cli = new ReleaseCLI()\nShow release details:\n\nconst release = new Release({\nversion: \"v1.0.0\",\ncreatedAt: new Date(\"2025-08-20\")\n})\nconsole.info(release.version) // v1.0.0\nList all releases in the project:\n\n","tags":["@nan0web/release","CLI Usage"],"proven":"assert-in-@nan0web/release"}
|
|
7
|
-
{"instruction":"How to write a release chat message?","output":"```bash\nrelease chat write --user alice \"Issue with the build pipeline\"\n```\n","context":["h1:@nan0web/release","h2:CLI Usage"],"input":"## CLI Usage\n\nStart by initializing a new release:\n\nconst cli = new ReleaseCLI()\nShow release details:\n\nconst release = new Release({\nversion: \"v1.0.0\",\ncreatedAt: new Date(\"2025-08-20\")\n})\nconsole.info(release.version) // v1.0.0\nList all releases in the project:\n\nconst cli = new ReleaseCLI()\nAdd a chat message to the current release:\n\n","tags":["@nan0web/release","CLI Usage"],"proven":"assert-in-@nan0web/release"}
|
|
8
|
-
{"instruction":"How to host release UI?","output":"```bash\nrelease host [--webui] [--port 3000]\n```\n","context":["h1:@nan0web/release","h2:CLI Usage"],"input":"## CLI Usage\n\nStart by initializing a new release:\n\nconst cli = new ReleaseCLI()\nShow release details:\n\nconst release = new Release({\nversion: \"v1.0.0\",\ncreatedAt: new Date(\"2025-08-20\")\n})\nconsole.info(release.version) // v1.0.0\nList all releases in the project:\n\nconst cli = new ReleaseCLI()\nAdd a chat message to the current release:\n\nconst cli = new ReleaseCLI()\nHost a static server for viewing releases:\n\n","tags":["@nan0web/release","CLI Usage"],"proven":"assert-in-@nan0web/release"}
|
|
9
|
-
{"instruction":"How to serve release static assets?","output":"```bash\nrelease serve [--port 8080]\n```\n","context":["h1:@nan0web/release","h2:CLI Usage"],"input":"## CLI Usage\n\nStart by initializing a new release:\n\nconst cli = new ReleaseCLI()\nShow release details:\n\nconst release = new Release({\nversion: \"v1.0.0\",\ncreatedAt: new Date(\"2025-08-20\")\n})\nconsole.info(release.version) // v1.0.0\nList all releases in the project:\n\nconst cli = new ReleaseCLI()\nAdd a chat message to the current release:\n\nconst cli = new ReleaseCLI()\nHost a static server for viewing releases:\n\nconst cli = new ReleaseCLI()\nServe all release files for local inspection:\n\n","tags":["@nan0web/release","CLI Usage"],"proven":"assert-in-@nan0web/release"}
|
|
10
|
-
{"instruction":"How to validate release tasks?","output":"```bash\nrelease validate [--ignore-fail]\n```\n","context":["h1:@nan0web/release","h2:CLI Usage"],"input":"## CLI Usage\n\nStart by initializing a new release:\n\nconst cli = new ReleaseCLI()\nShow release details:\n\nconst release = new Release({\nversion: \"v1.0.0\",\ncreatedAt: new Date(\"2025-08-20\")\n})\nconsole.info(release.version) // v1.0.0\nList all releases in the project:\n\nconst cli = new ReleaseCLI()\nAdd a chat message to the current release:\n\nconst cli = new ReleaseCLI()\nHost a static server for viewing releases:\n\nconst cli = new ReleaseCLI()\nServe all release files for local inspection:\n\nconst cli = new ReleaseCLI()\nValidate release tasks and integrity:\n\n","tags":["@nan0web/release","CLI Usage"],"proven":"assert-in-@nan0web/release"}
|
|
11
|
-
{"instruction":"How to seal a release?","output":"```bash\nrelease seal [--message \"All core APIs are stable and tested\"]\n```\n","context":["h1:@nan0web/release","h2:CLI Usage"],"input":"## CLI Usage\n\nStart by initializing a new release:\n\nconst cli = new ReleaseCLI()\nShow release details:\n\nconst release = new Release({\nversion: \"v1.0.0\",\ncreatedAt: new Date(\"2025-08-20\")\n})\nconsole.info(release.version) // v1.0.0\nList all releases in the project:\n\nconst cli = new ReleaseCLI()\nAdd a chat message to the current release:\n\nconst cli = new ReleaseCLI()\nHost a static server for viewing releases:\n\nconst cli = new ReleaseCLI()\nServe all release files for local inspection:\n\nconst cli = new ReleaseCLI()\nValidate release tasks and integrity:\n\nconst release = new Release({\nversion: \"v1.0.0\",\ncreatedAt: new Date(\"2025-08-20\")\n})\nSeal the release with retro reflection:\n\n","tags":["@nan0web/release","CLI Usage"],"proven":"assert-in-@nan0web/release"}
|
|
12
|
-
{"instruction":"How to instantiate a Release?","output":"```js\nimport { Release } from '@nan0web/release'\nconst release = new Release({\n\tversion: \"v1.0.0\",\n\tcreatedAt: \"2025-08-20T10:00:00Z\"\n})\nconsole.info(release.version) // ← v1.0.0\nconsole.info(release.createdAt instanceof Date) // ← true\n\n```\n","context":["h1:@nan0web/release","h2:Core Concepts","h3:1. Release as Object"],"input":"### 1. Release as Object\n\nA `Release` is a structured class containing:\n\n- `version`: release identifier (vX.Y.Z).\n- `createdAt`, `startAt`, `planAt`, `completeAt`: datetime milestones.\n- `document`: parsed markdown document with structure-aware parsing.\n\nEach property is typed and validated automatically via JSDoc and runtime parsing.\n\n","tags":["@nan0web/release","Core Concepts","1. Release as Object"],"proven":"assert-in-@nan0web/release"}
|
|
13
|
-
{"instruction":"How to parse release notes markdown into structured data?","output":"```js\nimport { ReleaseDocument } from '@nan0web/release'\nconst md = `# v1.0.0 - 2025-08-20\n\n## Overview\nRelease milestone includes UI polish and core API stabilization.\n\n### Tasks\n### Done **Implement core UI design** [ui.core-design]\n### InProgress **Fix responsive issues in mobile layout** [ui.mobile-fixes]`\n\nconst doc = ReleaseDocument.from(md)\nconsole.info(doc.version) // ← v1.0.0\nconsole.info(doc.date instanceof Date) // ← true\nconsole.info(doc.document.children instanceof Array) // ← true\n\n```\n","context":["h1:@nan0web/release","h2:Core Concepts","h3:2. Release Document Parsing"],"input":"### 2. Release Document Parsing\n\nA `ReleaseDocument` extends `@nan0web/markdown` with:\n\n- Structured parsing of markdown release notes\n- Extraction of sections and tasks\n- Team and role parsing from markdown frontmatter or code\n\n","tags":["@nan0web/release","Core Concepts","2. Release Document Parsing"],"proven":"assert-in-@nan0web/release"}
|
|
14
|
-
{"instruction":"How to create a Person with typed properties?","output":"```js\nimport { Person } from '@nan0web/release'\nconst person = new Person({\n\tname: [\"Alice\", \"Developer\"],\n\tgender: \"female\",\n\tcontacts: [\"mailto:alice@example.com\"]\n})\nconsole.info(person.name.firstName) // ← Alice\nconsole.info(person.contacts.length >= 0) // ← true\n\n```\n","context":["h1:@nan0web/release","h2:Core Concepts","h3:3. Person & Team Structures"],"input":"### 3. Person & Team Structures\n\nA `Person` instance includes:\n\n- `name`: HumanName\n- `gender`: HumanGender\n- `contacts`: array of HumanContact\n\n","tags":["@nan0web/release","Core Concepts","3. Person & Team Structures"],"proven":"assert-in-@nan0web/release"}
|
|
15
|
-
{"instruction":"How to register and validate tasks as tests?","output":"```js\nimport { ProjectManagement } from '@nan0web/release'\nconst pm = new ProjectManagement()\npm.registerTask(\"task-1\", \"./tests/task1.test.js\")\npm.registerTask(\"task-2\", \"./tests/task2.test.js\")\n\nconst mockResults = {\n\tpassed: [\"task-1\"],\n\tfailed: [],\n\tpending: [\"task-2\"]\n}\n\npm.validateProjectState = async () => mockResults\nconst results = await pm.validateProjectState()\n\nconsole.info(results.passed.includes(\"task-1\")) // ← true\nconsole.info(results.pending.includes(\"task-2\")) // ← true\n\n```\n","context":["h1:@nan0web/release","h2:Architecture: Project Management as Code","h3:Task Management"],"input":"### Task Management\n\nTasks are registered as `taskId` → `testFilePath` in `ProjectManagement`.\nTheir status is derived by running `node:test` suites.\n\n","tags":["@nan0web/release","Architecture: Project Management as Code","Task Management"],"proven":"assert-in-@nan0web/release"}
|
|
16
|
-
{"instruction":"How to execute a release after validation?","output":"```js\nimport { ReleaseManager, ProjectManagement } from '@nan0web/release'\nconst pm = new ProjectManagement()\nconst rm = new ReleaseManager(pm)\n\nrm.calculateVersion = () => \"v1.0.1\"\nrm.publish = async () => true\n\nconst result = await rm.executeRelease(\"patch\")\nconsole.info(result.version) // ← v1.0.1\nconsole.info(result.published) // ← true\n\n```\n","context":["h1:@nan0web/release","h2:Architecture: Project Management as Code","h3:Release Processing"],"input":"### Release Processing\n\nThe `ReleaseManager` coordinates releases and validates readiness.\nIt ensures:\n\n- All registered tests pass\n- Version is correctly incremented\n- Git tag is applied if all validations succeed\n\n","tags":["@nan0web/release","Architecture: Project Management as Code","Release Processing"],"proven":"assert-in-@nan0web/release"}
|
|
17
|
-
{"instruction":"How to parse changelog and extract tasks?","output":"```js\nimport { ChangelogTaskManager } from '@nan0web/release'\nconst ctm = new ChangelogTaskManager()\nconst changelog = `# Changelog\n\n## [1.0.0] - 2025-08-20\n### Added\n- Initial structure [core.init]\n- Release notes support [docs.release-notes]`\n\nconst tasks = ctm.parseChangelog(changelog)\nconsole.info(Array.isArray(tasks)) // ← true\nconsole.info(tasks.length >= 0) // ← true\n\n```\n","context":["h1:@nan0web/release","h2:Architecture: Project Management as Code","h3:Changelog Integration"],"input":"### Changelog Integration\n\nUsing `ChangelogTaskManager`, you can:\n\n- Extract task definitions from changelog entries\n- Generate corresponding test files\n- Automate task progression in CI\n\n","tags":["@nan0web/release","Architecture: Project Management as Code","Changelog Integration"],"proven":"assert-in-@nan0web/release"}
|
|
18
|
-
{"instruction":"How to run playground demo?","output":"```bash\ngit clone https://github.com/nan0web/release.git\ncd release\npnpm install\npnpm run playground\n```\n","context":["h1:@nan0web/release","h2:CLI Playground"],"input":"## CLI Playground\n\nTry the package in the terminal:\n\n","tags":["@nan0web/release","CLI Playground"],"proven":"assert-in-@nan0web/release"}
|
|
19
|
-
{"instruction":"How to check project status before publishing?","output":"```bash\nnpm test\nnpm run test:coverage\nnpm run test:status\n```\n","context":["h1:@nan0web/release","h2:Project Status"],"input":"## Project Status\n\nTo verify the project is ready, run:\n\n","tags":["@nan0web/release","Project Status"],"proven":"assert-in-@nan0web/release"}
|
package/.editorconfig
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
root = true
|
|
2
|
-
|
|
3
|
-
[*]
|
|
4
|
-
indent_style = tab
|
|
5
|
-
indent_size = 2
|
|
6
|
-
charset = utf-8
|
|
7
|
-
end_of_line = lf
|
|
8
|
-
trim_trailing_whitespace = true
|
|
9
|
-
insert_final_newline = true
|
|
10
|
-
|
|
11
|
-
[*.md]
|
|
12
|
-
trim_trailing_whitespace = false
|
|
13
|
-
|
|
14
|
-
[*.{jsx}]
|
|
15
|
-
indent_style = tab
|
|
16
|
-
indent_size = 2
|
|
17
|
-
|
|
18
|
-
[*.{nano,yaml}]
|
|
19
|
-
indent_style = space
|
|
20
|
-
indent_size = 2
|
package/CHANGELOG.md
DELETED
package/CONTRIBUTING.md
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# Contributing
|
|
2
|
-
|
|
3
|
-
## Developer Certificate of Origin and License
|
|
4
|
-
By contributing, You accept and agree to the following terms and conditions for your present and future contributions submitted.
|
|
5
|
-
Except for the license granted herein, You reserve all right, title, and interest in and to your Contributions.
|
|
6
|
-
All contributions are subject to the Developer Certificate of Origin and license as set out in the LICENSE file.
|
|
7
|
-
|
|
8
|
-
## Code of Conduct
|
|
9
|
-
As contributors and maintainers of this project, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
|
|
10
|
-
|
|
11
|
-
We are committed to making participation in this project a harassment-free experience for everyone, regardless of:
|
|
12
|
-
- Level of experience,
|
|
13
|
-
- Gender,
|
|
14
|
-
- Gender identity and expression,
|
|
15
|
-
- Sexual orientation,
|
|
16
|
-
- Disability,
|
|
17
|
-
- Personal appearance,
|
|
18
|
-
- Body size,
|
|
19
|
-
- Race,
|
|
20
|
-
- Ethnicity,
|
|
21
|
-
- Age,
|
|
22
|
-
- Religion.
|
|
23
|
-
|
|
24
|
-
> We recognize all people as the foundation of humanity, and our actions contribute to the continued existence and growth of our shared humanity.
|
|
25
|
-
|
|
26
|
-
### Release versioning
|
|
27
|
-
- Keep releases close to the minor versions and publish patches only if required.
|
|
28
|
-
|
|
29
|
-
### Examples of unacceptable behavior by participants:
|
|
30
|
-
- Use of sexual language or imagery.
|
|
31
|
-
- Derogatory comments or personal attacks.
|
|
32
|
-
- Trolling, public or private harassment.
|
|
33
|
-
- Insults or other unprofessional conduct.
|
|
34
|
-
|
|
35
|
-
### Enforcement
|
|
36
|
-
Project maintainers have the right and responsibility to:
|
|
37
|
-
- Remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions not aligned with this Code of Conduct.
|
|
38
|
-
- Remove maintainers who violate this Code of Conduct.
|
|
39
|
-
|
|
40
|
-
Instances of unacceptable behavior can be reported by contacting the project team.
|
|
41
|
-
|
|
42
|
-
This Code of Conduct is adapted from the [Contributor Covenant, version 1.1.0](https://contributor-covenant.org/version/1/1/0/).
|