@hekonsek/scriptz 0.8.0 → 0.10.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.
Files changed (27) hide show
  1. package/dist/{cli → adapters/in/cli}/cli.d.ts +2 -1
  2. package/dist/{cli → adapters/in/cli}/cli.js +9 -15
  3. package/dist/adapters/in/cli/cli.js.map +1 -0
  4. package/dist/services/shell-prompt/shell-prompt.service.d.ts +4 -0
  5. package/dist/{core/shell-prompt.js → services/shell-prompt/shell-prompt.service.js} +7 -2
  6. package/dist/services/shell-prompt/shell-prompt.service.js.map +1 -0
  7. package/dist/services/terminal-scripts/adapters/out/file-system-terminal-scripts-store.d.ts +10 -0
  8. package/dist/services/terminal-scripts/adapters/out/file-system-terminal-scripts-store.js +38 -0
  9. package/dist/services/terminal-scripts/adapters/out/file-system-terminal-scripts-store.js.map +1 -0
  10. package/dist/services/terminal-scripts/adapters/out/script-process-runner.d.ts +4 -0
  11. package/dist/services/terminal-scripts/adapters/out/script-process-runner.js +22 -0
  12. package/dist/services/terminal-scripts/adapters/out/script-process-runner.js.map +1 -0
  13. package/dist/services/terminal-scripts/terminal-scripts-listener.js.map +1 -0
  14. package/dist/{core/terminal-scripts.d.ts → services/terminal-scripts/terminal-scripts.service.d.ts} +14 -5
  15. package/dist/{core/terminal-scripts.js → services/terminal-scripts/terminal-scripts.service.js} +14 -45
  16. package/dist/services/terminal-scripts/terminal-scripts.service.js.map +1 -0
  17. package/dist/services/version/version.service.d.ts +3 -0
  18. package/dist/services/version/version.service.js +7 -0
  19. package/dist/services/version/version.service.js.map +1 -0
  20. package/package.json +3 -3
  21. package/dist/cli/cli.js.map +0 -1
  22. package/dist/core/shell-prompt.d.ts +0 -1
  23. package/dist/core/shell-prompt.js.map +0 -1
  24. package/dist/core/terminal-scripts-listener.js.map +0 -1
  25. package/dist/core/terminal-scripts.js.map +0 -1
  26. /package/dist/{core → services/terminal-scripts}/terminal-scripts-listener.d.ts +0 -0
  27. /package/dist/{core → services/terminal-scripts}/terminal-scripts-listener.js +0 -0
@@ -1,11 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import { Command } from "commander";
3
+ import { VersionService } from "../../../services/version/version.service.js";
3
4
  export interface CliDependencies {
4
5
  readonly homeDirectory: string;
5
6
  readonly writeOut: (line: string) => void;
6
7
  readonly writeErr: (line: string) => void;
7
8
  readonly setExitCode: (code: number) => void;
8
- readVersion: () => Promise<string>;
9
+ readonly versionService: Pick<VersionService, "packageVersion">;
9
10
  }
10
11
  export declare function createCli(deps?: CliDependencies): Command;
11
12
  export declare function runCli(argv?: string[]): Promise<void>;
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
- import { readFile } from "node:fs/promises";
3
2
  import { homedir } from "node:os";
4
3
  import { join } from "node:path";
5
4
  import chalk from "chalk";
6
5
  import { Command } from "commander";
7
- import { ScriptCommandNotFoundError, TerminalScripts, } from "../core/terminal-scripts.js";
8
- import { buildPromptAssignment } from "../core/shell-prompt.js";
6
+ import { ScriptCommandNotFoundError, TerminalScriptsService, } from "../../../services/terminal-scripts/terminal-scripts.service.js";
7
+ import { ShellPromptService } from "../../../services/shell-prompt/shell-prompt.service.js";
8
+ import { VersionService } from "../../../services/version/version.service.js";
9
9
  const defaultDependencies = {
10
10
  homeDirectory: homedir(),
11
11
  writeOut: (line) => {
@@ -17,7 +17,7 @@ const defaultDependencies = {
17
17
  setExitCode: (code) => {
18
18
  process.exitCode = code;
19
19
  },
20
- readVersion,
20
+ versionService: new VersionService(),
21
21
  };
22
22
  export function createCli(deps = defaultDependencies) {
23
23
  const program = new Command();
@@ -28,14 +28,14 @@ export function createCli(deps = defaultDependencies) {
28
28
  program
29
29
  .command("version")
30
30
  .description("Display the installed package version.")
31
- .action(async () => {
32
- deps.writeOut(await deps.readVersion());
31
+ .action(() => {
32
+ deps.writeOut(deps.versionService.packageVersion());
33
33
  });
34
34
  program
35
35
  .command("record")
36
36
  .description("Start a script(1) recording session.")
37
37
  .action(async () => {
38
- const scripts = new TerminalScripts(join(deps.homeDirectory, ".cache", "script"));
38
+ const scripts = new TerminalScriptsService(join(deps.homeDirectory, ".cache", "script"));
39
39
  try {
40
40
  deps.setExitCode(await scripts.record());
41
41
  }
@@ -52,7 +52,7 @@ export function createCli(deps = defaultDependencies) {
52
52
  .command("prompt")
53
53
  .description("Print a Bash prompt assignment with a random terminal title.")
54
54
  .action(() => {
55
- deps.writeOut(buildPromptAssignment());
55
+ deps.writeOut(new ShellPromptService().buildAssignment());
56
56
  });
57
57
  program
58
58
  .command("clean")
@@ -60,7 +60,7 @@ export function createCli(deps = defaultDependencies) {
60
60
  .option("-q, --quiet", "Suppress command output.", false)
61
61
  .action(async (options) => {
62
62
  const listener = buildCleanListener(options.quiet, deps);
63
- const scripts = new TerminalScripts(join(deps.homeDirectory, ".cache", "script"), listener);
63
+ const scripts = new TerminalScriptsService(join(deps.homeDirectory, ".cache", "script"), listener);
64
64
  const result = await scripts.clean(15);
65
65
  if (options.quiet) {
66
66
  return;
@@ -85,12 +85,6 @@ export async function runCli(argv = process.argv) {
85
85
  }
86
86
  await program.parseAsync(argv);
87
87
  }
88
- async function readVersion() {
89
- const packageJsonPath = new URL("../../package.json", import.meta.url);
90
- const packageJsonRaw = await readFile(packageJsonPath, "utf8");
91
- const packageJson = JSON.parse(packageJsonRaw);
92
- return packageJson.version ?? "0.0.0";
93
- }
94
88
  function buildCleanListener(quiet, deps) {
95
89
  if (quiet) {
96
90
  return { onEvent: () => undefined };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../../src/adapters/in/cli/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare class ShellPromptService {
2
+ buildAssignment(name?: string): string;
3
+ }
4
+ export declare function buildPromptAssignment(name?: string): string;
@@ -21,10 +21,15 @@ const promptNames = [
21
21
  "terra",
22
22
  "vector",
23
23
  ];
24
+ export class ShellPromptService {
25
+ buildAssignment(name = randomPromptName()) {
26
+ return `PS1='\\[\\e]0;\\u@${name}: \\w\\a\\]\${debian_chroot:+($debian_chroot)}\\[\\033[01;32m\\]\\u@${name}\\[\\033[00m\\]:\\[\\033[01;34m\\]\\w\\[\\033[00m\\]\\$ '`;
27
+ }
28
+ }
24
29
  export function buildPromptAssignment(name = randomPromptName()) {
25
- return `PS1='\\[\\e]0;\\u@${name}: \\w\\a\\]\${debian_chroot:+($debian_chroot)}\\[\\033[01;32m\\]\\u@${name}\\[\\033[00m\\]:\\[\\033[01;34m\\]\\w\\[\\033[00m\\]\\$ '`;
30
+ return new ShellPromptService().buildAssignment(name);
26
31
  }
27
32
  function randomPromptName() {
28
33
  return promptNames[randomInt(promptNames.length)];
29
34
  }
30
- //# sourceMappingURL=shell-prompt.js.map
35
+ //# sourceMappingURL=shell-prompt.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell-prompt.service.js","sourceRoot":"","sources":["../../../src/services/shell-prompt/shell-prompt.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,WAAW,GAAG;IAClB,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,MAAM;IACN,QAAQ;IACR,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;CACT,CAAC;AAEF,MAAM,OAAO,kBAAkB;IAC7B,eAAe,CAAC,IAAI,GAAG,gBAAgB,EAAE;QACvC,OAAO,qBAAqB,IAAI,uEAAuE,IAAI,2DAA2D,CAAC;IACzK,CAAC;CACF;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAI,GAAG,gBAAgB,EAAE;IAC7D,OAAO,IAAI,kBAAkB,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;AACpD,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { TerminalScriptsEntry, TerminalScriptsStore } from "../../terminal-scripts.service.js";
2
+ export declare class FileSystemTerminalScriptsStore implements TerminalScriptsStore {
3
+ private readonly directory;
4
+ constructor(directory: string);
5
+ ensureDirectory(): Promise<void>;
6
+ isDirectory(): Promise<boolean>;
7
+ listFiles(): Promise<TerminalScriptsEntry[]>;
8
+ modifiedAtMs(entryName: string): Promise<number>;
9
+ remove(entryName: string): Promise<void>;
10
+ }
@@ -0,0 +1,38 @@
1
+ import { mkdir, readdir, stat, unlink } from "node:fs/promises";
2
+ import { join } from "node:path";
3
+ export class FileSystemTerminalScriptsStore {
4
+ directory;
5
+ constructor(directory) {
6
+ this.directory = directory;
7
+ }
8
+ async ensureDirectory() {
9
+ await mkdir(this.directory, { recursive: true });
10
+ }
11
+ async isDirectory() {
12
+ try {
13
+ const directoryStat = await stat(this.directory);
14
+ return directoryStat.isDirectory();
15
+ }
16
+ catch (error) {
17
+ const typedError = error;
18
+ if (typedError.code === "ENOENT") {
19
+ return false;
20
+ }
21
+ throw error;
22
+ }
23
+ }
24
+ async listFiles() {
25
+ const entries = await readdir(this.directory, { withFileTypes: true });
26
+ return entries
27
+ .filter((entry) => entry.isFile())
28
+ .map((entry) => ({ name: entry.name }));
29
+ }
30
+ async modifiedAtMs(entryName) {
31
+ const fileStat = await stat(join(this.directory, entryName));
32
+ return fileStat.mtimeMs;
33
+ }
34
+ async remove(entryName) {
35
+ await unlink(join(this.directory, entryName));
36
+ }
37
+ }
38
+ //# sourceMappingURL=file-system-terminal-scripts-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-system-terminal-scripts-store.js","sourceRoot":"","sources":["../../../../../src/services/terminal-scripts/adapters/out/file-system-terminal-scripts-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAOjC,MAAM,OAAO,8BAA8B;IACZ;IAA7B,YAA6B,SAAiB;QAAjB,cAAS,GAAT,SAAS,CAAQ;IAAG,CAAC;IAElD,KAAK,CAAC,eAAe;QACnB,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjD,OAAO,aAAa,CAAC,WAAW,EAAE,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,UAAU,GAAG,KAA8B,CAAC;YAClD,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACjC,OAAO,KAAK,CAAC;YACf,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAEvE,OAAO,OAAO;aACX,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;aACjC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAiB;QAClC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QAC7D,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,SAAiB;QAC5B,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAChD,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ import { type RecordProcessRunner } from "../../terminal-scripts.service.js";
2
+ export declare class ScriptProcessRunner implements RecordProcessRunner {
3
+ run(logPath: string): Promise<number>;
4
+ }
@@ -0,0 +1,22 @@
1
+ import { spawn } from "node:child_process";
2
+ import { ScriptCommandNotFoundError, } from "../../terminal-scripts.service.js";
3
+ export class ScriptProcessRunner {
4
+ async run(logPath) {
5
+ return new Promise((resolve, reject) => {
6
+ const child = spawn("script", ["-q", "-f", logPath], {
7
+ stdio: "inherit",
8
+ });
9
+ child.once("error", (error) => {
10
+ if (error.code === "ENOENT") {
11
+ reject(new ScriptCommandNotFoundError());
12
+ return;
13
+ }
14
+ reject(error);
15
+ });
16
+ child.once("close", (code) => {
17
+ resolve(code ?? 1);
18
+ });
19
+ });
20
+ }
21
+ }
22
+ //# sourceMappingURL=script-process-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"script-process-runner.js","sourceRoot":"","sources":["../../../../../src/services/terminal-scripts/adapters/out/script-process-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EACL,0BAA0B,GAE3B,MAAM,mCAAmC,CAAC;AAE3C,MAAM,OAAO,mBAAmB;IAC9B,KAAK,CAAC,GAAG,CAAC,OAAe;QACvB,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE;gBACnD,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;YAEH,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAA4B,EAAE,EAAE;gBACnD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC5B,MAAM,CAAC,IAAI,0BAA0B,EAAE,CAAC,CAAC;oBACzC,OAAO;gBACT,CAAC;gBAED,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAmB,EAAE,EAAE;gBAC1C,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-scripts-listener.js","sourceRoot":"","sources":["../../../src/services/terminal-scripts/terminal-scripts-listener.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,2BAA2B,GAA4B;IAClE,OAAO;QACL,sBAAsB;IACxB,CAAC;CACF,CAAC"}
@@ -1,4 +1,14 @@
1
1
  import { type TerminalScriptsListener } from "./terminal-scripts-listener.js";
2
+ export interface TerminalScriptsEntry {
3
+ readonly name: string;
4
+ }
5
+ export interface TerminalScriptsStore {
6
+ ensureDirectory(): Promise<void>;
7
+ isDirectory(): Promise<boolean>;
8
+ listFiles(): Promise<TerminalScriptsEntry[]>;
9
+ modifiedAtMs(entryName: string): Promise<number>;
10
+ remove(entryName: string): Promise<void>;
11
+ }
2
12
  export interface RecordProcessRunner {
3
13
  run(logPath: string): Promise<number>;
4
14
  }
@@ -9,14 +19,13 @@ export interface CleanResult {
9
19
  export declare class ScriptCommandNotFoundError extends Error {
10
20
  constructor();
11
21
  }
12
- export declare class ScriptProcessRunner implements RecordProcessRunner {
13
- run(logPath: string): Promise<number>;
14
- }
15
- export declare class TerminalScripts {
22
+ export declare class TerminalScriptsService {
16
23
  private readonly directory;
17
24
  private readonly listener;
25
+ private readonly store;
18
26
  private readonly processRunner;
19
- constructor(directory: string, listener?: TerminalScriptsListener, processRunner?: RecordProcessRunner);
27
+ constructor(directory: string, listener?: TerminalScriptsListener, store?: TerminalScriptsStore, processRunner?: RecordProcessRunner);
20
28
  record(): Promise<number>;
21
29
  clean(maxAgeMinutes?: number): Promise<CleanResult>;
22
30
  }
31
+ export { TerminalScriptsService as TerminalScripts };
@@ -1,6 +1,6 @@
1
- import { mkdir, readdir, stat, unlink } from "node:fs/promises";
2
- import { spawn } from "node:child_process";
3
1
  import { join } from "node:path";
2
+ import { FileSystemTerminalScriptsStore } from "./adapters/out/file-system-terminal-scripts-store.js";
3
+ import { ScriptProcessRunner } from "./adapters/out/script-process-runner.js";
4
4
  import { noopTerminalScriptsListener, } from "./terminal-scripts-listener.js";
5
5
  export class ScriptCommandNotFoundError extends Error {
6
6
  constructor() {
@@ -8,66 +8,34 @@ export class ScriptCommandNotFoundError extends Error {
8
8
  this.name = "ScriptCommandNotFoundError";
9
9
  }
10
10
  }
11
- export class ScriptProcessRunner {
12
- async run(logPath) {
13
- return new Promise((resolve, reject) => {
14
- const child = spawn("script", ["-q", "-f", logPath], {
15
- stdio: "inherit",
16
- });
17
- child.once("error", (error) => {
18
- if (error.code === "ENOENT") {
19
- reject(new ScriptCommandNotFoundError());
20
- return;
21
- }
22
- reject(error);
23
- });
24
- child.once("close", (code) => {
25
- resolve(code ?? 1);
26
- });
27
- });
28
- }
29
- }
30
- export class TerminalScripts {
11
+ export class TerminalScriptsService {
31
12
  directory;
32
13
  listener;
14
+ store;
33
15
  processRunner;
34
- constructor(directory, listener = noopTerminalScriptsListener, processRunner = new ScriptProcessRunner()) {
16
+ constructor(directory, listener = noopTerminalScriptsListener, store = new FileSystemTerminalScriptsStore(directory), processRunner = new ScriptProcessRunner()) {
35
17
  this.directory = directory;
36
18
  this.listener = listener;
19
+ this.store = store;
37
20
  this.processRunner = processRunner;
38
21
  }
39
22
  async record() {
40
- await mkdir(this.directory, { recursive: true });
23
+ await this.store.ensureDirectory();
41
24
  const logPath = join(this.directory, `${buildTimestamp()}.log`);
42
25
  this.listener.onEvent({ type: "record_started", logPath });
43
26
  return this.processRunner.run(logPath);
44
27
  }
45
28
  async clean(maxAgeMinutes = 15) {
46
- try {
47
- const directoryStat = await stat(this.directory);
48
- if (!directoryStat.isDirectory()) {
49
- return { directoryExists: false, removed: 0 };
50
- }
29
+ if (!(await this.store.isDirectory())) {
30
+ return { directoryExists: false, removed: 0 };
51
31
  }
52
- catch (error) {
53
- const typedError = error;
54
- if (typedError.code === "ENOENT") {
55
- return { directoryExists: false, removed: 0 };
56
- }
57
- throw error;
58
- }
59
- const entries = await readdir(this.directory, { withFileTypes: true });
32
+ const entries = await this.store.listFiles();
60
33
  const cutoff = Date.now() - maxAgeMinutes * 60 * 1000;
61
34
  let removed = 0;
62
35
  for (const entry of entries) {
63
- if (!entry.isFile()) {
64
- continue;
65
- }
66
- const filePath = join(this.directory, entry.name);
67
36
  let modifiedAtMs;
68
37
  try {
69
- const fileStat = await stat(filePath);
70
- modifiedAtMs = fileStat.mtimeMs;
38
+ modifiedAtMs = await this.store.modifiedAtMs(entry.name);
71
39
  }
72
40
  catch (error) {
73
41
  const reason = toErrorMessage(error);
@@ -82,7 +50,7 @@ export class TerminalScripts {
82
50
  continue;
83
51
  }
84
52
  try {
85
- await unlink(filePath);
53
+ await this.store.remove(entry.name);
86
54
  removed += 1;
87
55
  }
88
56
  catch (error) {
@@ -119,4 +87,5 @@ function toErrorMessage(error) {
119
87
  }
120
88
  return String(error);
121
89
  }
122
- //# sourceMappingURL=terminal-scripts.js.map
90
+ export { TerminalScriptsService as TerminalScripts };
91
+ //# sourceMappingURL=terminal-scripts.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-scripts.service.js","sourceRoot":"","sources":["../../../src/services/terminal-scripts/terminal-scripts.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare class VersionService {
2
+ packageVersion(): string;
3
+ }
@@ -0,0 +1,7 @@
1
+ import packageJson from "../../../package.json" with { type: "json" };
2
+ export class VersionService {
3
+ packageVersion() {
4
+ return packageJson.version;
5
+ }
6
+ }
7
+ //# sourceMappingURL=version.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.service.js","sourceRoot":"","sources":["../../../src/services/version/version.service.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,uBAAuB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEtE,MAAM,OAAO,cAAc;IACzB,cAAc;QACZ,OAAO,WAAW,CAAC,OAAO,CAAC;IAC7B,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hekonsek/scriptz",
3
- "version": "0.8.0",
3
+ "version": "0.10.0",
4
4
  "description": "CLI utilities for recording terminal sessions",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -13,7 +13,7 @@
13
13
  "url": "https://github.com/hekonsek/scriptz/issues"
14
14
  },
15
15
  "bin": {
16
- "scriptz": "dist/cli/cli.js"
16
+ "scriptz": "dist/adapters/in/cli/cli.js"
17
17
  },
18
18
  "files": [
19
19
  "dist"
@@ -24,7 +24,7 @@
24
24
  "scripts": {
25
25
  "build": "tsc -p tsconfig.json",
26
26
  "clean": "rm -rf dist",
27
- "dev": "tsx src/cli/cli.ts",
27
+ "dev": "tsx src/adapters/in/cli/cli.ts",
28
28
  "test": "vitest run",
29
29
  "typecheck": "tsc --noEmit",
30
30
  "release": "npm version minor && git push --follow-tags",
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export declare function buildPromptAssignment(name?: string): string;
@@ -1 +0,0 @@
1
- {"version":3,"file":"shell-prompt.js","sourceRoot":"","sources":["../../src/core/shell-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,WAAW,GAAG;IAClB,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,MAAM;IACN,QAAQ;IACR,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;CACT,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,IAAI,GAAG,gBAAgB,EAAE;IAC7D,OAAO,qBAAqB,IAAI,uEAAuE,IAAI,2DAA2D,CAAC;AACzK,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;AACpD,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"terminal-scripts-listener.js","sourceRoot":"","sources":["../../src/core/terminal-scripts-listener.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,2BAA2B,GAA4B;IAClE,OAAO;QACL,sBAAsB;IACxB,CAAC;CACF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"terminal-scripts.js","sourceRoot":"","sources":["../../src/core/terminal-scripts.ts"],"names":[],"mappings":"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"}