@boostd/boost 0.0.2 → 0.0.4
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 +16 -2
- package/dist/haiku-lexicon.d.ts +9 -0
- package/dist/haiku-lexicon.js +97 -0
- package/dist/haiku-lexicon.js.map +1 -0
- package/dist/haiku.d.ts +11 -0
- package/dist/haiku.js +67 -0
- package/dist/haiku.js.map +1 -0
- package/dist/index.d.ts +2 -4
- package/dist/index.js +14 -1
- package/dist/index.js.map +1 -1
- package/package.json +17 -2
package/README.md
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
# @boostd/boost
|
|
2
2
|
|
|
3
|
+

|
|
4
|
+
|
|
3
5
|
`@boostd/boost` is a small placeholder CLI published ahead of the full Boost toolchain.
|
|
4
6
|
|
|
5
|
-
Right now it does
|
|
6
|
-
|
|
7
|
+
Right now it does two small things:
|
|
8
|
+
|
|
9
|
+
- `boost up` boots, runs, and **reports “ok.”**
|
|
10
|
+
- `boost haiku` prints a randomly generated observability haiku.
|
|
7
11
|
|
|
8
12
|
## Installation
|
|
9
13
|
|
|
@@ -15,6 +19,8 @@ npm install -g @boostd/boost
|
|
|
15
19
|
|
|
16
20
|
- `boost up`
|
|
17
21
|
Starts the CLI and reports ok.
|
|
22
|
+
- `boost haiku`
|
|
23
|
+
Generates and prints an original haiku.
|
|
18
24
|
|
|
19
25
|
## Why this exists
|
|
20
26
|
|
|
@@ -34,3 +40,11 @@ npm install # install dependencies
|
|
|
34
40
|
npm run build # emit compiled files into dist/
|
|
35
41
|
npm run test # build + sanity-check the CLI output
|
|
36
42
|
```
|
|
43
|
+
|
|
44
|
+
## Releasing
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
npm run release:patch # test -> npm version patch -> npm publish
|
|
48
|
+
npm run release:minor
|
|
49
|
+
npm run release:major
|
|
50
|
+
```
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.haikuLexicon = void 0;
|
|
4
|
+
exports.haikuLexicon = {
|
|
5
|
+
starters: [
|
|
6
|
+
// 5 syllables (good for 5-line by itself, or 7-line +2 end)
|
|
7
|
+
{ syllables: 5, text: "service mesh stays calm" },
|
|
8
|
+
{ syllables: 5, text: "event streams stay bright" },
|
|
9
|
+
{ syllables: 5, text: "cold starts fade to hush" },
|
|
10
|
+
{ syllables: 5, text: "hot paths learn to wait" },
|
|
11
|
+
{ syllables: 5, text: "load balancers breathe" },
|
|
12
|
+
{ syllables: 5, text: "the cache remembers" },
|
|
13
|
+
{ syllables: 5, text: "packets find their home" },
|
|
14
|
+
{ syllables: 5, text: "threads untie their knots" },
|
|
15
|
+
{ syllables: 5, text: "deploys land like snow" },
|
|
16
|
+
{ syllables: 5, text: "shards drift into place" },
|
|
17
|
+
// 4 syllables (pairs nicely with 3 or with 2)
|
|
18
|
+
{ syllables: 4, text: "database breathes" },
|
|
19
|
+
{ syllables: 4, text: "feature flags glow" },
|
|
20
|
+
{ syllables: 4, text: "runtime hums soft" },
|
|
21
|
+
{ syllables: 4, text: "packet storms pass" },
|
|
22
|
+
{ syllables: 4, text: "cloud edges breathe" },
|
|
23
|
+
{ syllables: 4, text: "metrics read clean" },
|
|
24
|
+
{ syllables: 4, text: "logs fall like rain" },
|
|
25
|
+
{ syllables: 4, text: "traces weave slow" },
|
|
26
|
+
{ syllables: 4, text: "workers drift back" },
|
|
27
|
+
{ syllables: 4, text: "timeouts loosen" },
|
|
28
|
+
{ syllables: 4, text: "backoffs settle" },
|
|
29
|
+
{ syllables: 4, text: "shadows in prod" },
|
|
30
|
+
// 3 syllables (must pair cleanly with BOTH 2-syllable and 5-syllable ends)
|
|
31
|
+
{ syllables: 3, text: "backend winds" },
|
|
32
|
+
{ syllables: 3, text: "release trains" },
|
|
33
|
+
{ syllables: 3, text: "debug lights" },
|
|
34
|
+
{ syllables: 3, text: "version clocks" },
|
|
35
|
+
{ syllables: 3, text: "caching tides" },
|
|
36
|
+
{ syllables: 3, text: "queue echoes" },
|
|
37
|
+
{ syllables: 3, text: "trace lanterns" },
|
|
38
|
+
{ syllables: 3, text: "retry songs" },
|
|
39
|
+
{ syllables: 3, text: "pagers blare" },
|
|
40
|
+
{ syllables: 3, text: "docker dreams" },
|
|
41
|
+
// 2 syllables (these should be very “attachable”)
|
|
42
|
+
{ syllables: 2, text: "ops dawn" },
|
|
43
|
+
{ syllables: 2, text: "stack trace" },
|
|
44
|
+
{ syllables: 2, text: "queues hum" },
|
|
45
|
+
{ syllables: 2, text: "logs drift" },
|
|
46
|
+
{ syllables: 2, text: "heaps churn" },
|
|
47
|
+
{ syllables: 2, text: "builds pass" },
|
|
48
|
+
{ syllables: 2, text: "nodes blink" },
|
|
49
|
+
{ syllables: 2, text: "bits fall" },
|
|
50
|
+
{ syllables: 2, text: "fans whir" },
|
|
51
|
+
],
|
|
52
|
+
enders: [
|
|
53
|
+
// 5 syllables (works after 0/2/3 starters for 5 or 7 lines depending)
|
|
54
|
+
{ syllables: 5, text: "where metrics paint night" },
|
|
55
|
+
{ syllables: 5, text: "till pagers learn rest" },
|
|
56
|
+
{ syllables: 5, text: "when clusters bloom slow" },
|
|
57
|
+
{ syllables: 5, text: "while errors turn shy" },
|
|
58
|
+
{ syllables: 5, text: "as dashboards breathe out" },
|
|
59
|
+
{ syllables: 5, text: "where traces hum low" },
|
|
60
|
+
{ syllables: 5, text: "when rollbacks feel kind" },
|
|
61
|
+
{ syllables: 5, text: "as latency falls" },
|
|
62
|
+
{ syllables: 5, text: "beneath status lights" },
|
|
63
|
+
{ syllables: 5, text: "where uptime holds true" },
|
|
64
|
+
// 4 syllables (often best as a prepositional phrase / adverbial tail)
|
|
65
|
+
{ syllables: 4, text: "through neon rain" },
|
|
66
|
+
{ syllables: 4, text: "with new builds queued" },
|
|
67
|
+
{ syllables: 4, text: "shapes steady time" },
|
|
68
|
+
{ syllables: 4, text: "beyond paged dreams" },
|
|
69
|
+
{ syllables: 4, text: "by quiet graphs" },
|
|
70
|
+
{ syllables: 4, text: "in release light" },
|
|
71
|
+
{ syllables: 4, text: "past red alerts" },
|
|
72
|
+
{ syllables: 4, text: "with soft edges" },
|
|
73
|
+
{ syllables: 4, text: "into warm logs" },
|
|
74
|
+
{ syllables: 4, text: "over cool racks" },
|
|
75
|
+
// 3 syllables (short attachable tails)
|
|
76
|
+
{ syllables: 3, text: "running hot" },
|
|
77
|
+
{ syllables: 3, text: "guarding dawn" },
|
|
78
|
+
{ syllables: 3, text: "mapping stars" },
|
|
79
|
+
{ syllables: 3, text: "learning still" },
|
|
80
|
+
{ syllables: 3, text: "drinking calm" },
|
|
81
|
+
{ syllables: 3, text: "under load" },
|
|
82
|
+
{ syllables: 3, text: "without fear" },
|
|
83
|
+
{ syllables: 3, text: "in the mist" },
|
|
84
|
+
{ syllables: 3, text: "past the noise" },
|
|
85
|
+
{ syllables: 3, text: "with clear eyes" },
|
|
86
|
+
// 2 syllables (must work after almost anything)
|
|
87
|
+
{ syllables: 2, text: "stay warm" },
|
|
88
|
+
{ syllables: 2, text: "burn slow" },
|
|
89
|
+
{ syllables: 2, text: "keep watch" },
|
|
90
|
+
{ syllables: 2, text: "dream light" },
|
|
91
|
+
{ syllables: 2, text: "hold still" },
|
|
92
|
+
{ syllables: 2, text: "ease up" },
|
|
93
|
+
{ syllables: 2, text: "drift on" },
|
|
94
|
+
{ syllables: 2, text: "sleep soon" },
|
|
95
|
+
],
|
|
96
|
+
};
|
|
97
|
+
//# sourceMappingURL=haiku-lexicon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"haiku-lexicon.js","sourceRoot":"","sources":["../src/haiku-lexicon.ts"],"names":[],"mappings":"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"}
|
package/dist/haiku.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type Lexicon } from "./haiku-lexicon";
|
|
2
|
+
export declare class HaikuMaker {
|
|
3
|
+
private readonly lexicon;
|
|
4
|
+
private readonly starters;
|
|
5
|
+
private readonly endersByCount;
|
|
6
|
+
constructor(lexicon?: Lexicon);
|
|
7
|
+
private pickStarter;
|
|
8
|
+
private pickEnding;
|
|
9
|
+
private makeLine;
|
|
10
|
+
write(): string;
|
|
11
|
+
}
|
package/dist/haiku.js
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HaikuMaker = void 0;
|
|
4
|
+
const haiku_lexicon_1 = require("./haiku-lexicon");
|
|
5
|
+
const HAIKU_FORM = [5, 7, 5];
|
|
6
|
+
const rand = (arr) => arr[Math.floor(Math.random() * arr.length)];
|
|
7
|
+
const groupBySyllables = (fragments) => {
|
|
8
|
+
var _a;
|
|
9
|
+
const map = new Map();
|
|
10
|
+
for (const fragment of fragments) {
|
|
11
|
+
const bucket = (_a = map.get(fragment.syllables)) !== null && _a !== void 0 ? _a : [];
|
|
12
|
+
bucket.push(fragment);
|
|
13
|
+
map.set(fragment.syllables, bucket);
|
|
14
|
+
}
|
|
15
|
+
return map;
|
|
16
|
+
};
|
|
17
|
+
class HaikuMaker {
|
|
18
|
+
constructor(lexicon = haiku_lexicon_1.haikuLexicon) {
|
|
19
|
+
this.lexicon = lexicon;
|
|
20
|
+
this.starters = lexicon.starters;
|
|
21
|
+
this.endersByCount = groupBySyllables(lexicon.enders);
|
|
22
|
+
}
|
|
23
|
+
pickStarter(total, usedFragments) {
|
|
24
|
+
const options = this.starters.filter((starter) => {
|
|
25
|
+
if (usedFragments.has(starter))
|
|
26
|
+
return false;
|
|
27
|
+
const remaining = total - starter.syllables;
|
|
28
|
+
if (remaining <= 0)
|
|
29
|
+
return false;
|
|
30
|
+
const endings = this.endersByCount.get(remaining);
|
|
31
|
+
if (!endings)
|
|
32
|
+
return false;
|
|
33
|
+
return endings.some((ending) => !usedFragments.has(ending));
|
|
34
|
+
});
|
|
35
|
+
if (options.length === 0) {
|
|
36
|
+
throw new Error(`No haiku starter available for ${total} syllables.`);
|
|
37
|
+
}
|
|
38
|
+
return rand(options);
|
|
39
|
+
}
|
|
40
|
+
pickEnding(remaining, usedFragments) {
|
|
41
|
+
var _a;
|
|
42
|
+
const endings = (_a = this.endersByCount
|
|
43
|
+
.get(remaining)) === null || _a === void 0 ? void 0 : _a.filter((ending) => !usedFragments.has(ending));
|
|
44
|
+
if (!endings || endings.length === 0) {
|
|
45
|
+
throw new Error(`No haiku ending available for ${remaining} syllables.`);
|
|
46
|
+
}
|
|
47
|
+
return rand(endings);
|
|
48
|
+
}
|
|
49
|
+
makeLine(total, usedFragments) {
|
|
50
|
+
const start = this.pickStarter(total, usedFragments);
|
|
51
|
+
usedFragments.add(start);
|
|
52
|
+
const remaining = total - start.syllables;
|
|
53
|
+
const end = this.pickEnding(remaining, usedFragments);
|
|
54
|
+
usedFragments.add(end);
|
|
55
|
+
return `${start.text} ${end.text}`;
|
|
56
|
+
}
|
|
57
|
+
write() {
|
|
58
|
+
const usedFragments = new Set();
|
|
59
|
+
return HAIKU_FORM.map((count) => this.makeLine(count, usedFragments)).join("\n");
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.HaikuMaker = HaikuMaker;
|
|
63
|
+
if (require.main === module) {
|
|
64
|
+
const writer = new HaikuMaker();
|
|
65
|
+
console.log(writer.write());
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=haiku.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"haiku.js","sourceRoot":"","sources":["../src/haiku.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
1
2
|
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const haiku_1 = require("./haiku");
|
|
2
5
|
const args = process.argv.slice(2);
|
|
3
6
|
const cmd = args[0];
|
|
4
7
|
function banner() {
|
|
@@ -16,12 +19,18 @@ function help() {
|
|
|
16
19
|
console.log(`boost
|
|
17
20
|
|
|
18
21
|
Commands:
|
|
19
|
-
boost up
|
|
22
|
+
boost up reports back ok
|
|
23
|
+
boost haiku prints a random observability haiku
|
|
20
24
|
|
|
21
25
|
Examples:
|
|
22
26
|
boost up
|
|
27
|
+
boost haiku
|
|
23
28
|
`);
|
|
24
29
|
}
|
|
30
|
+
function doHaiku() {
|
|
31
|
+
const maker = new haiku_1.HaikuMaker();
|
|
32
|
+
console.log(maker.write());
|
|
33
|
+
}
|
|
25
34
|
if (!cmd || cmd === "help" || cmd === "-h" || cmd === "--help") {
|
|
26
35
|
help();
|
|
27
36
|
process.exit(0);
|
|
@@ -30,6 +39,10 @@ if (cmd === "up") {
|
|
|
30
39
|
banner();
|
|
31
40
|
process.exit(0);
|
|
32
41
|
}
|
|
42
|
+
if (cmd === "haiku") {
|
|
43
|
+
doHaiku();
|
|
44
|
+
process.exit(0);
|
|
45
|
+
}
|
|
33
46
|
console.error(`Unknown command: ${cmd}\n`);
|
|
34
47
|
help();
|
|
35
48
|
process.exit(1);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,mCAAqC;AAErC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAEpB,SAAS,MAAM;IACX,OAAO,CAAC,GAAG,CAAC;;;;;;;;qBAQK,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,IAAI;IACT,OAAO,CAAC,GAAG,CAAC;;;;;;;;;CASf,CAAC,CAAC;AACH,CAAC;AAED,SAAS,OAAO;IACZ,MAAM,KAAK,GAAG,IAAI,kBAAU,EAAE,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;AAC/B,CAAC;AAED,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;IAC7D,IAAI,EAAE,CAAC;IACP,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;IACf,MAAM,EAAE,CAAC;IACT,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;IAClB,OAAO,EAAE,CAAC;IACV,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,OAAO,CAAC,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;AAC3C,IAAI,EAAE,CAAC;AACP,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@boostd/boost",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"description": "Placeholder CLI for boost",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=18"
|
|
@@ -16,7 +16,12 @@
|
|
|
16
16
|
"scripts": {
|
|
17
17
|
"build": "tsc",
|
|
18
18
|
"prepublishOnly": "npm run build",
|
|
19
|
-
"test": "npm run build &&
|
|
19
|
+
"test": "npm run build && npm run test:cli && npm run test:haiku",
|
|
20
|
+
"test:cli": "node dist/index.js up",
|
|
21
|
+
"test:haiku": "jest",
|
|
22
|
+
"release:patch": "npm run test && npm version patch && npm publish",
|
|
23
|
+
"release:minor": "npm run test && npm version minor && npm publish",
|
|
24
|
+
"release:major": "npm run test && npm version major && npm publish"
|
|
20
25
|
},
|
|
21
26
|
"keywords": [
|
|
22
27
|
"boost",
|
|
@@ -25,7 +30,17 @@
|
|
|
25
30
|
"author": "",
|
|
26
31
|
"license": "ISC",
|
|
27
32
|
"devDependencies": {
|
|
33
|
+
"@types/jest": "^29.5.14",
|
|
28
34
|
"@types/node": "^25.1.0",
|
|
35
|
+
"jest": "^29.7.0",
|
|
36
|
+
"ts-jest": "^29.2.5",
|
|
29
37
|
"typescript": "^5.9.3"
|
|
38
|
+
},
|
|
39
|
+
"jest": {
|
|
40
|
+
"preset": "ts-jest",
|
|
41
|
+
"testEnvironment": "node",
|
|
42
|
+
"testMatch": [
|
|
43
|
+
"**/__tests__/**/*.test.ts"
|
|
44
|
+
]
|
|
30
45
|
}
|
|
31
46
|
}
|