@k8ts/instruments 0.1.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 (307) hide show
  1. package/LICENSE.md +7 -0
  2. package/README.md +3 -0
  3. package/dist/_embedder/base.d.ts +11 -0
  4. package/dist/_embedder/base.d.ts.map +1 -0
  5. package/dist/_embedder/base.js +39 -0
  6. package/dist/_embedder/base.js.map +1 -0
  7. package/dist/_embedder/index.d.ts +2 -0
  8. package/dist/_embedder/index.d.ts.map +1 -0
  9. package/dist/_embedder/index.js +18 -0
  10. package/dist/_embedder/index.js.map +1 -0
  11. package/dist/_string/index.d.ts +6 -0
  12. package/dist/_string/index.d.ts.map +1 -0
  13. package/dist/_string/index.js +22 -0
  14. package/dist/_string/index.js.map +1 -0
  15. package/dist/_string/markers.d.ts +3 -0
  16. package/dist/_string/markers.d.ts.map +1 -0
  17. package/dist/_string/markers.js +48 -0
  18. package/dist/_string/markers.js.map +1 -0
  19. package/dist/_string/post-processor.d.ts +7 -0
  20. package/dist/_string/post-processor.d.ts.map +1 -0
  21. package/dist/_string/post-processor.js +30 -0
  22. package/dist/_string/post-processor.js.map +1 -0
  23. package/dist/_string/pretty-objects.d.ts +27 -0
  24. package/dist/_string/pretty-objects.d.ts.map +1 -0
  25. package/dist/_string/pretty-objects.js +192 -0
  26. package/dist/_string/pretty-objects.js.map +1 -0
  27. package/dist/_string/pretty-print.d.ts +2 -0
  28. package/dist/_string/pretty-print.d.ts.map +1 -0
  29. package/dist/_string/pretty-print.js +27 -0
  30. package/dist/_string/pretty-print.js.map +1 -0
  31. package/dist/_string/super-script.d.ts +2 -0
  32. package/dist/_string/super-script.d.ts.map +1 -0
  33. package/dist/_string/super-script.js +20 -0
  34. package/dist/_string/super-script.js.map +1 -0
  35. package/dist/api-kind/index.d.ts +43 -0
  36. package/dist/api-kind/index.d.ts.map +1 -0
  37. package/dist/api-kind/index.js +102 -0
  38. package/dist/api-kind/index.js.map +1 -0
  39. package/dist/cmd/cli-command.d.ts +23 -0
  40. package/dist/cmd/cli-command.d.ts.map +1 -0
  41. package/dist/cmd/cli-command.js +73 -0
  42. package/dist/cmd/cli-command.js.map +1 -0
  43. package/dist/cmd/cli-term.d.ts +25 -0
  44. package/dist/cmd/cli-term.d.ts.map +1 -0
  45. package/dist/cmd/cli-term.js +55 -0
  46. package/dist/cmd/cli-term.js.map +1 -0
  47. package/dist/cmd/index.d.ts +3 -0
  48. package/dist/cmd/index.d.ts.map +1 -0
  49. package/dist/cmd/index.js +7 -0
  50. package/dist/cmd/index.js.map +1 -0
  51. package/dist/cmd/types.d.ts +5 -0
  52. package/dist/cmd/types.d.ts.map +1 -0
  53. package/dist/cmd/types.js +3 -0
  54. package/dist/cmd/types.js.map +1 -0
  55. package/dist/displayers/displayers.d.ts +33 -0
  56. package/dist/displayers/displayers.d.ts.map +1 -0
  57. package/dist/displayers/displayers.js +129 -0
  58. package/dist/displayers/displayers.js.map +1 -0
  59. package/dist/displayers/index.d.ts +2 -0
  60. package/dist/displayers/index.d.ts.map +1 -0
  61. package/dist/displayers/index.js +18 -0
  62. package/dist/displayers/index.js.map +1 -0
  63. package/dist/env/env.d.ts +20 -0
  64. package/dist/env/env.d.ts.map +1 -0
  65. package/dist/env/env.js +68 -0
  66. package/dist/env/env.js.map +1 -0
  67. package/dist/env/index.d.ts +3 -0
  68. package/dist/env/index.d.ts.map +1 -0
  69. package/dist/env/index.js +7 -0
  70. package/dist/env/index.js.map +1 -0
  71. package/dist/env/types.d.ts +4 -0
  72. package/dist/env/types.d.ts.map +1 -0
  73. package/dist/env/types.js +3 -0
  74. package/dist/env/types.js.map +1 -0
  75. package/dist/env/validate-name.d.ts +2 -0
  76. package/dist/env/validate-name.d.ts.map +1 -0
  77. package/dist/env/validate-name.js +12 -0
  78. package/dist/env/validate-name.js.map +1 -0
  79. package/dist/error.d.ts +8 -0
  80. package/dist/error.d.ts.map +1 -0
  81. package/dist/error.js +20 -0
  82. package/dist/error.js.map +1 -0
  83. package/dist/forward-exports/delayed-exports.d.ts +18 -0
  84. package/dist/forward-exports/delayed-exports.d.ts.map +1 -0
  85. package/dist/forward-exports/delayed-exports.js +119 -0
  86. package/dist/forward-exports/delayed-exports.js.map +1 -0
  87. package/dist/forward-exports/index.d.ts +2 -0
  88. package/dist/forward-exports/index.d.ts.map +1 -0
  89. package/dist/forward-exports/index.js +18 -0
  90. package/dist/forward-exports/index.js.map +1 -0
  91. package/dist/graph/base-node.d.ts +34 -0
  92. package/dist/graph/base-node.d.ts.map +1 -0
  93. package/dist/graph/base-node.js +102 -0
  94. package/dist/graph/base-node.js.map +1 -0
  95. package/dist/graph/base-origin-entity.d.ts +19 -0
  96. package/dist/graph/base-origin-entity.d.ts.map +1 -0
  97. package/dist/graph/base-origin-entity.js +105 -0
  98. package/dist/graph/base-origin-entity.js.map +1 -0
  99. package/dist/graph/dependencies.d.ts +12 -0
  100. package/dist/graph/dependencies.d.ts.map +1 -0
  101. package/dist/graph/dependencies.js +82 -0
  102. package/dist/graph/dependencies.js.map +1 -0
  103. package/dist/graph/index.d.ts +7 -0
  104. package/dist/graph/index.d.ts.map +1 -0
  105. package/dist/graph/index.js +23 -0
  106. package/dist/graph/index.js.map +1 -0
  107. package/dist/graph/origin-node.d.ts +32 -0
  108. package/dist/graph/origin-node.d.ts.map +1 -0
  109. package/dist/graph/origin-node.js +161 -0
  110. package/dist/graph/origin-node.js.map +1 -0
  111. package/dist/graph/relations.d.ts +26 -0
  112. package/dist/graph/relations.d.ts.map +1 -0
  113. package/dist/graph/relations.js +38 -0
  114. package/dist/graph/relations.js.map +1 -0
  115. package/dist/graph/resource-node.d.ts +28 -0
  116. package/dist/graph/resource-node.d.ts.map +1 -0
  117. package/dist/graph/resource-node.js +144 -0
  118. package/dist/graph/resource-node.js.map +1 -0
  119. package/dist/image/family.d.ts +26 -0
  120. package/dist/image/family.d.ts.map +1 -0
  121. package/dist/image/family.js +63 -0
  122. package/dist/image/family.js.map +1 -0
  123. package/dist/image/index.d.ts +2 -0
  124. package/dist/image/index.d.ts.map +1 -0
  125. package/dist/image/index.js +9 -0
  126. package/dist/image/index.js.map +1 -0
  127. package/dist/index.d.ts +19 -0
  128. package/dist/index.d.ts.map +1 -0
  129. package/dist/index.js +35 -0
  130. package/dist/index.js.map +1 -0
  131. package/dist/kind-map/index.d.ts +44 -0
  132. package/dist/kind-map/index.d.ts.map +1 -0
  133. package/dist/kind-map/index.js +123 -0
  134. package/dist/kind-map/index.js.map +1 -0
  135. package/dist/manifest/index.d.ts +46 -0
  136. package/dist/manifest/index.d.ts.map +1 -0
  137. package/dist/manifest/index.js +21 -0
  138. package/dist/manifest/index.js.map +1 -0
  139. package/dist/manifest/manifest-builder.d.ts +45 -0
  140. package/dist/manifest/manifest-builder.d.ts.map +1 -0
  141. package/dist/manifest/manifest-builder.js +66 -0
  142. package/dist/manifest/manifest-builder.js.map +1 -0
  143. package/dist/ports/error.d.ts +5 -0
  144. package/dist/ports/error.d.ts.map +1 -0
  145. package/dist/ports/error.js +13 -0
  146. package/dist/ports/error.js.map +1 -0
  147. package/dist/ports/index.d.ts +7 -0
  148. package/dist/ports/index.d.ts.map +1 -0
  149. package/dist/ports/index.js +13 -0
  150. package/dist/ports/index.js.map +1 -0
  151. package/dist/ports/map.d.ts +13 -0
  152. package/dist/ports/map.d.ts.map +1 -0
  153. package/dist/ports/map.js +38 -0
  154. package/dist/ports/map.js.map +1 -0
  155. package/dist/ports/set.d.ts +18 -0
  156. package/dist/ports/set.d.ts.map +1 -0
  157. package/dist/ports/set.js +60 -0
  158. package/dist/ports/set.js.map +1 -0
  159. package/dist/ports/tools/entry.d.ts +6 -0
  160. package/dist/ports/tools/entry.d.ts.map +1 -0
  161. package/dist/ports/tools/entry.js +36 -0
  162. package/dist/ports/tools/entry.js.map +1 -0
  163. package/dist/ports/tools/parse.d.ts +3 -0
  164. package/dist/ports/tools/parse.d.ts.map +1 -0
  165. package/dist/ports/tools/parse.js +35 -0
  166. package/dist/ports/tools/parse.js.map +1 -0
  167. package/dist/ports/types.d.ts +37 -0
  168. package/dist/ports/types.d.ts.map +1 -0
  169. package/dist/ports/types.js +3 -0
  170. package/dist/ports/types.js.map +1 -0
  171. package/dist/producer/index.d.ts +2 -0
  172. package/dist/producer/index.d.ts.map +1 -0
  173. package/dist/producer/index.js +18 -0
  174. package/dist/producer/index.js.map +1 -0
  175. package/dist/producer/producer.d.ts +6 -0
  176. package/dist/producer/producer.d.ts.map +1 -0
  177. package/dist/producer/producer.js +13 -0
  178. package/dist/producer/producer.js.map +1 -0
  179. package/dist/ref-key/index.d.ts +2 -0
  180. package/dist/ref-key/index.d.ts.map +1 -0
  181. package/dist/ref-key/index.js +18 -0
  182. package/dist/ref-key/index.js.map +1 -0
  183. package/dist/ref-key/ref-key.d.ts +23 -0
  184. package/dist/ref-key/ref-key.d.ts.map +1 -0
  185. package/dist/ref-key/ref-key.js +67 -0
  186. package/dist/ref-key/ref-key.js.map +1 -0
  187. package/dist/reference/forward-ref.d.ts +22 -0
  188. package/dist/reference/forward-ref.d.ts.map +1 -0
  189. package/dist/reference/forward-ref.js +126 -0
  190. package/dist/reference/forward-ref.js.map +1 -0
  191. package/dist/reference/index.d.ts +4 -0
  192. package/dist/reference/index.d.ts.map +1 -0
  193. package/dist/reference/index.js +8 -0
  194. package/dist/reference/index.js.map +1 -0
  195. package/dist/reference/refable.d.ts +12 -0
  196. package/dist/reference/refable.d.ts.map +1 -0
  197. package/dist/reference/refable.js +3 -0
  198. package/dist/reference/refable.js.map +1 -0
  199. package/dist/resources/index.d.ts +3 -0
  200. package/dist/resources/index.d.ts.map +1 -0
  201. package/dist/resources/index.js +19 -0
  202. package/dist/resources/index.js.map +1 -0
  203. package/dist/resources/objects.d.ts +22 -0
  204. package/dist/resources/objects.d.ts.map +1 -0
  205. package/dist/resources/objects.js +93 -0
  206. package/dist/resources/objects.js.map +1 -0
  207. package/dist/resources/parser.d.ts +4 -0
  208. package/dist/resources/parser.d.ts.map +1 -0
  209. package/dist/resources/parser.js +21 -0
  210. package/dist/resources/parser.js.map +1 -0
  211. package/dist/resources/types.d.ts +18 -0
  212. package/dist/resources/types.d.ts.map +1 -0
  213. package/dist/resources/types.js +3 -0
  214. package/dist/resources/types.js.map +1 -0
  215. package/dist/src.tsbuildinfo +1 -0
  216. package/dist/test.tsbuildinfo +1 -0
  217. package/dist/tracing/git.d.ts +19 -0
  218. package/dist/tracing/git.d.ts.map +1 -0
  219. package/dist/tracing/git.js +45 -0
  220. package/dist/tracing/git.js.map +1 -0
  221. package/dist/tracing/index.d.ts +4 -0
  222. package/dist/tracing/index.d.ts.map +1 -0
  223. package/dist/tracing/index.js +20 -0
  224. package/dist/tracing/index.js.map +1 -0
  225. package/dist/tracing/trace.d.ts +11 -0
  226. package/dist/tracing/trace.d.ts.map +1 -0
  227. package/dist/tracing/trace.js +27 -0
  228. package/dist/tracing/trace.js.map +1 -0
  229. package/dist/tracing/traced.d.ts +4 -0
  230. package/dist/tracing/traced.d.ts.map +1 -0
  231. package/dist/tracing/traced.js +6 -0
  232. package/dist/tracing/traced.js.map +1 -0
  233. package/dist/units/index.d.ts +3 -0
  234. package/dist/units/index.d.ts.map +1 -0
  235. package/dist/units/index.js +22 -0
  236. package/dist/units/index.js.map +1 -0
  237. package/dist/units/unit-parser.d.ts +19 -0
  238. package/dist/units/unit-parser.d.ts.map +1 -0
  239. package/dist/units/unit-parser.js +53 -0
  240. package/dist/units/unit-parser.js.map +1 -0
  241. package/dist/units/units.d.ts +37 -0
  242. package/dist/units/units.d.ts.map +1 -0
  243. package/dist/units/units.js +36 -0
  244. package/dist/units/units.js.map +1 -0
  245. package/package.json +89 -0
  246. package/src/_embedder/base.ts +42 -0
  247. package/src/_embedder/index.ts +1 -0
  248. package/src/_string/index.ts +5 -0
  249. package/src/_string/markers.ts +47 -0
  250. package/src/_string/post-processor.ts +25 -0
  251. package/src/_string/pretty-objects.ts +65 -0
  252. package/src/_string/pretty-print.ts +24 -0
  253. package/src/_string/super-script.ts +17 -0
  254. package/src/api-kind/index.ts +134 -0
  255. package/src/cmd/cli-command.ts +89 -0
  256. package/src/cmd/cli-term.ts +60 -0
  257. package/src/cmd/index.ts +2 -0
  258. package/src/cmd/types.ts +4 -0
  259. package/src/displayers/displayers.ts +147 -0
  260. package/src/displayers/index.ts +1 -0
  261. package/src/env/env.ts +74 -0
  262. package/src/env/index.ts +2 -0
  263. package/src/env/types.ts +7 -0
  264. package/src/env/validate-name.ts +10 -0
  265. package/src/error.ts +15 -0
  266. package/src/forward-exports/delayed-exports.ts +155 -0
  267. package/src/forward-exports/index.ts +1 -0
  268. package/src/graph/base-node.ts +125 -0
  269. package/src/graph/base-origin-entity.ts +44 -0
  270. package/src/graph/dependencies.ts +27 -0
  271. package/src/graph/index.ts +6 -0
  272. package/src/graph/origin-node.ts +118 -0
  273. package/src/graph/relations.ts +62 -0
  274. package/src/graph/resource-node.ts +104 -0
  275. package/src/image/family.ts +71 -0
  276. package/src/image/index.ts +1 -0
  277. package/src/index.ts +18 -0
  278. package/src/kind-map/index.ts +150 -0
  279. package/src/manifest/index.ts +53 -0
  280. package/src/manifest/manifest-builder.ts +98 -0
  281. package/src/ports/error.ts +8 -0
  282. package/src/ports/index.ts +8 -0
  283. package/src/ports/map.ts +41 -0
  284. package/src/ports/set.ts +79 -0
  285. package/src/ports/tools/entry.ts +43 -0
  286. package/src/ports/tools/parse.ts +40 -0
  287. package/src/ports/types.ts +42 -0
  288. package/src/producer/index.ts +1 -0
  289. package/src/producer/producer.ts +18 -0
  290. package/src/ref-key/index.ts +1 -0
  291. package/src/ref-key/ref-key.ts +76 -0
  292. package/src/reference/forward-ref.ts +122 -0
  293. package/src/reference/index.ts +3 -0
  294. package/src/reference/refable.ts +11 -0
  295. package/src/resources/index.ts +2 -0
  296. package/src/resources/objects.ts +99 -0
  297. package/src/resources/parser.ts +24 -0
  298. package/src/resources/types.ts +23 -0
  299. package/src/tracing/git.ts +51 -0
  300. package/src/tracing/index.ts +3 -0
  301. package/src/tracing/trace.ts +31 -0
  302. package/src/tracing/traced.ts +4 -0
  303. package/src/tsconfig.json +10 -0
  304. package/src/units/index.ts +2 -0
  305. package/src/units/unit-parser.ts +63 -0
  306. package/src/units/units.ts +53 -0
  307. package/tsconfig.json +15 -0
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Kind = void 0;
4
+ exports.kinded = kinded;
5
+ const immutable_1 = require("immutable");
6
+ const error_1 = require("../error");
7
+ var Kind;
8
+ (function (Kind_1) {
9
+ class Identifier {
10
+ constructor(name, parent) {
11
+ this.name = name;
12
+ this.parent = parent;
13
+ this.toString = () => this.text;
14
+ }
15
+ get text() {
16
+ return [this.parent?.text, this.name].filter(Boolean).join("/");
17
+ }
18
+ equals(other) {
19
+ if (typeof other !== "object" || !other) {
20
+ return false;
21
+ }
22
+ if (!(other instanceof Identifier)) {
23
+ return false;
24
+ }
25
+ return this.text === other.text;
26
+ }
27
+ hashCode() {
28
+ return (0, immutable_1.hash)(this.text);
29
+ }
30
+ }
31
+ Kind_1.Identifier = Identifier;
32
+ class Group extends Identifier {
33
+ constructor(name) {
34
+ super(name, null);
35
+ this.name = name;
36
+ }
37
+ version(apiVersion) {
38
+ return new Version(apiVersion, this);
39
+ }
40
+ child(name) {
41
+ if (!name.startsWith("v")) {
42
+ throw new error_1.InstrumentsError(`Invalid version name "${name}". Version name must start with "v".`);
43
+ }
44
+ return this.version(name);
45
+ }
46
+ }
47
+ Kind_1.Group = Group;
48
+ class Version extends Identifier {
49
+ kind(kind) {
50
+ return new Kind(kind, this);
51
+ }
52
+ get group() {
53
+ return this.parent;
54
+ }
55
+ child(name) {
56
+ return this.kind(name);
57
+ }
58
+ }
59
+ Kind_1.Version = Version;
60
+ class Kind extends Identifier {
61
+ get version() {
62
+ return this.parent;
63
+ }
64
+ get group() {
65
+ return this.parent?.parent;
66
+ }
67
+ subkind(subkind) {
68
+ return new SubKind(subkind, this);
69
+ }
70
+ child(name) {
71
+ return this.subkind(name);
72
+ }
73
+ }
74
+ Kind_1.Kind = Kind;
75
+ class SubKind extends Identifier {
76
+ constructor(name, parent) {
77
+ super(name, parent);
78
+ }
79
+ subkind(subkind) {
80
+ throw new error_1.InstrumentsError(`SubKind "${this.text}" cannot have subkind "${subkind}".`);
81
+ }
82
+ child(name) {
83
+ return this.subkind(name);
84
+ }
85
+ }
86
+ Kind_1.SubKind = SubKind;
87
+ function group(apiGroup) {
88
+ return new Group(apiGroup);
89
+ }
90
+ Kind_1.group = group;
91
+ function version(apiVersion) {
92
+ return new Version(apiVersion, group(""));
93
+ }
94
+ Kind_1.version = version;
95
+ })(Kind || (exports.Kind = Kind = {}));
96
+ function kinded(kind) {
97
+ return (ctor) => {
98
+ ctor.prototype.kind = kind;
99
+ return ctor;
100
+ };
101
+ }
102
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api-kind/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { List } from "immutable";
2
+ import { type CliTerm, type ValueTermJoiner } from "./cli-term";
3
+ import type { CliArgsMapping, CliKey } from "./types";
4
+ export interface CliCommandBuilderOptions {
5
+ joiner: ValueTermJoiner;
6
+ }
7
+ export declare class CmdBuilder {
8
+ readonly executable: string;
9
+ private readonly _terms;
10
+ private readonly _options;
11
+ protected constructor(executable: string, _terms: List<CliTerm>, _options: CliCommandBuilderOptions);
12
+ private _withArgs;
13
+ private _withOptions;
14
+ flag(...flags: CliKey[]): CmdBuilder;
15
+ verbatim(...values: string[]): CmdBuilder;
16
+ option(args: CliArgsMapping): CmdBuilder;
17
+ joiner(joiner: ValueTermJoiner): CmdBuilder;
18
+ toArray(): string[];
19
+ toString(): string;
20
+ static make(executable: string, options: CliCommandBuilderOptions): CmdBuilder;
21
+ }
22
+ export declare function Cmd(executable: string, options?: Partial<CliCommandBuilderOptions>): CmdBuilder;
23
+ //# sourceMappingURL=cli-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-command.d.ts","sourceRoot":"","sources":["../../src/cmd/cli-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAO,MAAM,WAAW,CAAA;AAErC,OAAO,EAIH,KAAK,OAAO,EACZ,KAAK,eAAe,EACvB,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAErD,MAAM,WAAW,wBAAwB;IACrC,MAAM,EAAE,eAAe,CAAA;CAC1B;AAED,qBAAa,UAAU;IAEf,QAAQ,CAAC,UAAU,EAAE,MAAM;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAH7B,SAAS,aACI,UAAU,EAAE,MAAM,EACV,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,EACrB,QAAQ,EAAE,wBAAwB;IAGvD,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,YAAY;IAIpB,IAAI,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE;IAKvB,QAAQ,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE;IAK5B,MAAM,CAAC,IAAI,EAAE,cAAc;IAiB3B,MAAM,CAAC,MAAM,EAAE,eAAe;IAI9B,OAAO;IAWP,QAAQ;IAIR,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB;CAGpE;AAMD,wBAAgB,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,cAGlF"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CmdBuilder = void 0;
4
+ exports.Cmd = Cmd;
5
+ const immutable_1 = require("immutable");
6
+ const lodash_1 = require("lodash");
7
+ const cli_term_1 = require("./cli-term");
8
+ class CmdBuilder {
9
+ constructor(executable, _terms, _options) {
10
+ this.executable = executable;
11
+ this._terms = _terms;
12
+ this._options = _options;
13
+ }
14
+ _withArgs(f) {
15
+ return new CmdBuilder(this.executable, f(this._terms), this._options);
16
+ }
17
+ _withOptions(f) {
18
+ return new CmdBuilder(this.executable, this._terms, f(this._options));
19
+ }
20
+ flag(...flags) {
21
+ const flagTerms = flags.map(flag => new cli_term_1.CliFlag(flag));
22
+ return this._withArgs(terms => terms.concat(flagTerms));
23
+ }
24
+ verbatim(...values) {
25
+ const verbatimTerms = values.map(value => new cli_term_1.VerbatimTerm(value));
26
+ return this._withArgs(terms => terms.concat(verbatimTerms));
27
+ }
28
+ option(args) {
29
+ const map = (0, immutable_1.Map)(args);
30
+ const optionTerms = map.entrySeq().map(([key, value]) => {
31
+ let joiner;
32
+ const lastChar = key.at(-1);
33
+ if (lastChar === "=") {
34
+ joiner = "=";
35
+ key = key.slice(0, -1);
36
+ }
37
+ else if (lastChar === " ") {
38
+ joiner = " ";
39
+ key = key.slice(0, -1);
40
+ }
41
+ return new cli_term_1.CliOptionValue(key, joiner, value);
42
+ });
43
+ return this._withArgs(terms => terms.concat(optionTerms));
44
+ }
45
+ joiner(joiner) {
46
+ return this._withOptions(options => (0, lodash_1.merge)({}, options, { joiner: joiner }));
47
+ }
48
+ toArray() {
49
+ const terms = this._terms
50
+ .filter(x => !x.isMissing)
51
+ .map(term => term.str(this._options.joiner))
52
+ .toArray();
53
+ if (this.executable !== "") {
54
+ terms.unshift(this.executable);
55
+ }
56
+ return terms;
57
+ }
58
+ toString() {
59
+ return this.toArray().join(" ");
60
+ }
61
+ static make(executable, options) {
62
+ return new CmdBuilder(executable, (0, immutable_1.List)(), options);
63
+ }
64
+ }
65
+ exports.CmdBuilder = CmdBuilder;
66
+ const defaultOptions = {
67
+ joiner: " "
68
+ };
69
+ function Cmd(executable, options) {
70
+ options = (0, lodash_1.defaultsDeep)({}, options, defaultOptions);
71
+ return CmdBuilder.make(executable, options);
72
+ }
73
+ //# sourceMappingURL=cli-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-command.js","sourceRoot":"","sources":["../../src/cmd/cli-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { CliValue } from "./types";
2
+ export declare class CliFlag {
3
+ readonly key: string;
4
+ constructor(key: string);
5
+ str(joiner: string): string;
6
+ get isMissing(): boolean;
7
+ }
8
+ export type ValueTermJoiner = "=" | " ";
9
+ export declare class CliOptionValue {
10
+ private readonly key;
11
+ private readonly overrideTermJoiner;
12
+ private readonly value;
13
+ constructor(key: string, overrideTermJoiner: string | undefined, value: CliValue);
14
+ get isMissing(): boolean;
15
+ private _valueStr;
16
+ str(joiner: string): string;
17
+ }
18
+ export declare class VerbatimTerm {
19
+ readonly value: string;
20
+ constructor(value: string);
21
+ str(joiner: string): string;
22
+ get isMissing(): boolean;
23
+ }
24
+ export type CliTerm = CliFlag | CliOptionValue | VerbatimTerm;
25
+ //# sourceMappingURL=cli-term.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-term.d.ts","sourceRoot":"","sources":["../../src/cmd/cli-term.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEvC,qBAAa,OAAO;IACJ,QAAQ,CAAC,GAAG,EAAE,MAAM;gBAAX,GAAG,EAAE,MAAM;IAEhC,GAAG,CAAC,MAAM,EAAE,MAAM;IAIlB,IAAI,SAAS,YAEZ;CACJ;AAED,MAAM,MAAM,eAAe,GAAG,GAAG,GAAG,GAAG,CAAA;AAEvC,qBAAa,cAAc;IAEnB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAFL,GAAG,EAAE,MAAM,EACX,kBAAkB,EAAE,MAAM,GAAG,SAAS,EACtC,KAAK,EAAE,QAAQ;IAGpC,IAAI,SAAS,YAEZ;IAED,OAAO,CAAC,SAAS;IAUjB,GAAG,CAAC,MAAM,EAAE,MAAM;CAOrB;AAED,qBAAa,YAAY;IACT,QAAQ,CAAC,KAAK,EAAE,MAAM;gBAAb,KAAK,EAAE,MAAM;IAElC,GAAG,CAAC,MAAM,EAAE,MAAM;IAIlB,IAAI,SAAS,YAEZ;CACJ;AAED,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,cAAc,GAAG,YAAY,CAAA"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VerbatimTerm = exports.CliOptionValue = exports.CliFlag = void 0;
4
+ const error_1 = require("../error");
5
+ class CliFlag {
6
+ constructor(key) {
7
+ this.key = key;
8
+ }
9
+ str(joiner) {
10
+ return this.key;
11
+ }
12
+ get isMissing() {
13
+ return false;
14
+ }
15
+ }
16
+ exports.CliFlag = CliFlag;
17
+ class CliOptionValue {
18
+ constructor(key, overrideTermJoiner, value) {
19
+ this.key = key;
20
+ this.overrideTermJoiner = overrideTermJoiner;
21
+ this.value = value;
22
+ }
23
+ get isMissing() {
24
+ return this.value === null;
25
+ }
26
+ _valueStr() {
27
+ if (this.value === null) {
28
+ throw new Error("Shouldn't be here");
29
+ }
30
+ if (this.value === "") {
31
+ return `""`;
32
+ }
33
+ return `${this.value}`;
34
+ }
35
+ str(joiner) {
36
+ if (this.value === undefined) {
37
+ throw new error_1.InstrumentsError("CliOptionValue cannot be undefined, use null instead");
38
+ }
39
+ return [this.key, this._valueStr()].join(this.overrideTermJoiner ?? joiner);
40
+ }
41
+ }
42
+ exports.CliOptionValue = CliOptionValue;
43
+ class VerbatimTerm {
44
+ constructor(value) {
45
+ this.value = value;
46
+ }
47
+ str(joiner) {
48
+ return this.value;
49
+ }
50
+ get isMissing() {
51
+ return false;
52
+ }
53
+ }
54
+ exports.VerbatimTerm = VerbatimTerm;
55
+ //# sourceMappingURL=cli-term.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-term.js","sourceRoot":"","sources":["../../src/cmd/cli-term.ts"],"names":[],"mappings":";;;AAAA,oCAA2C;AAG3C,MAAa,OAAO;IAChB,YAAqB,GAAW;QAAX,QAAG,GAAH,GAAG,CAAQ;IAAG,CAAC;IAEpC,GAAG,CAAC,MAAc;QACd,OAAO,IAAI,CAAC,GAAG,CAAA;IACnB,CAAC;IAED,IAAI,SAAS;QACT,OAAO,KAAK,CAAA;IAChB,CAAC;CACJ;AAVD,0BAUC;AAID,MAAa,cAAc;IACvB,YACqB,GAAW,EACX,kBAAsC,EACtC,KAAe;QAFf,QAAG,GAAH,GAAG,CAAQ;QACX,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,UAAK,GAAL,KAAK,CAAU;IACjC,CAAC;IAEJ,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,KAAK,KAAK,IAAI,CAAA;IAC9B,CAAC;IAEO,SAAS;QACb,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;QACxC,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,EAAE,CAAC;YACpB,OAAO,IAAI,CAAA;QACf,CAAC;QACD,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;IAC1B,CAAC;IAED,GAAG,CAAC,MAAc;QACd,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,wBAAgB,CAAC,sDAAsD,CAAC,CAAA;QACtF,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,MAAM,CAAC,CAAA;IAC/E,CAAC;CACJ;AA5BD,wCA4BC;AAED,MAAa,YAAY;IACrB,YAAqB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAEtC,GAAG,CAAC,MAAc;QACd,OAAO,IAAI,CAAC,KAAK,CAAA;IACrB,CAAC;IAED,IAAI,SAAS;QACT,OAAO,KAAK,CAAA;IAChB,CAAC;CACJ;AAVD,oCAUC"}
@@ -0,0 +1,3 @@
1
+ export { Cmd, CmdBuilder } from "./cli-command";
2
+ export { CliArgsMapping, CliKey, CliValue } from "./types";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cmd/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CmdBuilder = exports.Cmd = void 0;
4
+ var cli_command_1 = require("./cli-command");
5
+ Object.defineProperty(exports, "Cmd", { enumerable: true, get: function () { return cli_command_1.Cmd; } });
6
+ Object.defineProperty(exports, "CmdBuilder", { enumerable: true, get: function () { return cli_command_1.CmdBuilder; } });
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cmd/index.ts"],"names":[],"mappings":";;;AAAA,6CAA+C;AAAtC,kGAAA,GAAG,OAAA;AAAE,yGAAA,UAAU,OAAA"}
@@ -0,0 +1,5 @@
1
+ export type CliKey = `-${string}` | `--${string}`;
2
+ export type InputCliKey = `${CliKey}=` | `${CliKey} ` | CliKey;
3
+ export type CliValue = string | number | boolean | null | `${string}` | ` ${string}`;
4
+ export type CliArgsMapping = Record<InputCliKey, CliValue>;
5
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cmd/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,GAAG,KAAK,MAAM,EAAE,CAAA;AACjD,MAAM,MAAM,WAAW,GAAG,GAAG,MAAM,GAAG,GAAG,GAAG,MAAM,GAAG,GAAG,MAAM,CAAA;AAC9D,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,GAAG,MAAM,EAAE,GAAG,IAAI,MAAM,EAAE,CAAA;AACpF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/cmd/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,33 @@
1
+ export type KnownFormats = "local" | "global" | undefined;
2
+ export declare namespace Displayers {
3
+ interface Out {
4
+ default: (format?: string) => string;
5
+ simple: (format?: KnownFormats | string) => string;
6
+ pretty: (format?: KnownFormats | string) => string;
7
+ prefix?: () => string;
8
+ }
9
+ type In<Target extends object = object> = {
10
+ simple?: (this: Out, self: Target, format?: string) => string | object;
11
+ pretty?: (this: Out, self: Target, format?: string) => string | object;
12
+ prefix?: (this: Out, self: Target) => string;
13
+ };
14
+ type Modes = keyof In;
15
+ }
16
+ declare class DisplayerDecorator {
17
+ private _system;
18
+ private _lastMode;
19
+ private _withLastMode;
20
+ implement(ctor: abstract new (...args: any[]) => object, input: Displayers.In): void;
21
+ wrapRecursiveFallback(out: Displayers.Out): Displayers.Out;
22
+ tryGet(target: any): Displayers.Out | undefined;
23
+ get(target: object): Displayers.Out;
24
+ get decorator(): (<Target extends abstract new (...args: any[]) => object, Impl extends Displayers.In<InstanceType<Target>>>(input: Impl) => (ctor: Target) => Target) & {
25
+ get: (target: object) => Displayers.Out;
26
+ };
27
+ }
28
+ export declare const Displayers: DisplayerDecorator;
29
+ export declare const displayers: (<Target extends abstract new (...args: any[]) => object, Impl extends Displayers.In<InstanceType<Target>>>(input: Impl) => (ctor: Target) => Target) & {
30
+ get: (target: object) => Displayers.Out;
31
+ };
32
+ export {};
33
+ //# sourceMappingURL=displayers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"displayers.d.ts","sourceRoot":"","sources":["../../src/displayers/displayers.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAA;AACzD,yBAAiB,UAAU,CAAC;IACxB,UAAiB,GAAG;QAChB,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;QACpC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,KAAK,MAAM,CAAA;QAClD,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,KAAK,MAAM,CAAA;QAClD,MAAM,CAAC,EAAE,MAAM,MAAM,CAAA;KACxB;IACD,KAAY,EAAE,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,IAAI;QAC7C,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAAA;QACtE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAAA;QACtE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;KAC/C,CAAA;IACD,KAAY,KAAK,GAAG,MAAM,EAAE,CAAA;CAC/B;AAID,cAAM,kBAAkB;IACpB,OAAO,CAAC,OAAO,CAAoD;IACnE,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,aAAa;IASrB,SAAS,CAAC,IAAI,EAAE,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE;IAkB7E,qBAAqB,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG;IAiCzC,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,GAAG,SAAS;IAmC/C,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,GAAG;IAKnC,IAAI,SAAS,MAGD,MAAM,SAAS,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,EACtD,IAAI,SAAS,UAAU,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,SAEzC,IAAI,YAEG,MAAM;sBAMN,MAAM,KAAG,UAAU,CAAC,GAAG;MAKhD;CACJ;AACD,eAAO,MAAM,UAAU,oBAA2B,CAAA;AAClD,eAAO,MAAM,UAAU,IAnBP,MAAM,gCAAgC,GAAG,EAAE,KAAK,MAAM,EACtD,IAAI;kBAUU,MAAM,KAAG,UAAU,CAAC,GAAG;CAQP,CAAA"}
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.displayers = exports.Displayers = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const _embedder_1 = require("../_embedder");
9
+ const chalkNoColor = new chalk_1.default.Instance({
10
+ level: 0
11
+ });
12
+ class DisplayerDecorator {
13
+ constructor() {
14
+ this._system = new _embedder_1.Embedder("displayers");
15
+ this._lastMode = "simple";
16
+ }
17
+ _withLastMode(mode, fn) {
18
+ return (...args) => {
19
+ const oldMode = this._lastMode;
20
+ this._lastMode = mode;
21
+ const result = fn(...args);
22
+ this._lastMode = oldMode;
23
+ return result;
24
+ };
25
+ }
26
+ implement(ctor, input) {
27
+ this._system.set(ctor.prototype, input);
28
+ const decorator = this;
29
+ Object.defineProperties(ctor.prototype, {
30
+ [Symbol.toStringTag]: {
31
+ get() {
32
+ const a = decorator.get(this);
33
+ return a.default();
34
+ }
35
+ },
36
+ toString: {
37
+ value() {
38
+ return this[Symbol.toStringTag];
39
+ }
40
+ }
41
+ });
42
+ }
43
+ wrapRecursiveFallback(out) {
44
+ const oAny = out;
45
+ const self = this;
46
+ for (const k in out) {
47
+ const orig = oAny[k];
48
+ if (typeof orig === "function") {
49
+ oAny[k] = function (...args) {
50
+ const oldMode = self._lastMode;
51
+ if (k === "simple" || k === "pretty") {
52
+ self._lastMode = k;
53
+ }
54
+ try {
55
+ let result = orig.call(oAny, ...args);
56
+ if (!Array.isArray(result)) {
57
+ result = [result];
58
+ }
59
+ const terms = result.map((x) => {
60
+ const sndDisplayers = exports.Displayers.tryGet(x);
61
+ if (sndDisplayers) {
62
+ return sndDisplayers[k].call(sndDisplayers, x, ...args);
63
+ }
64
+ return x;
65
+ });
66
+ return terms.join(" ");
67
+ }
68
+ finally {
69
+ this._lastMode = oldMode;
70
+ }
71
+ };
72
+ }
73
+ }
74
+ return out;
75
+ }
76
+ tryGet(target) {
77
+ if (typeof target !== "object") {
78
+ return undefined;
79
+ }
80
+ const input = this._system.get(target);
81
+ if (!input) {
82
+ return undefined;
83
+ }
84
+ const o = {
85
+ default: (format) => {
86
+ const lastMode = this._lastMode;
87
+ const result = o[lastMode]?.call(o, format) ?? o.simple(format);
88
+ return result;
89
+ },
90
+ simple: format => {
91
+ const result = input.simple?.call(o, target, format);
92
+ if (!result) {
93
+ const pretty = input.pretty?.call(o, target, format);
94
+ if (typeof pretty === "string") {
95
+ return chalkNoColor(pretty);
96
+ }
97
+ return "?!!?";
98
+ }
99
+ return result;
100
+ },
101
+ prefix: input.prefix && (() => input.prefix.call(o, target)),
102
+ pretty: format => {
103
+ return (input.pretty?.call(o, target, format) ??
104
+ input.simple?.call(o, target, format) ??
105
+ "?!?");
106
+ }
107
+ };
108
+ return this.wrapRecursiveFallback(o);
109
+ }
110
+ get(target) {
111
+ this._system.get(target); // error if not there
112
+ return this.tryGet(target);
113
+ }
114
+ get decorator() {
115
+ return Object.assign((input) => {
116
+ return (ctor) => {
117
+ this.implement(ctor, input);
118
+ return ctor;
119
+ };
120
+ }, {
121
+ get: (target) => {
122
+ return this.get(target);
123
+ }
124
+ });
125
+ }
126
+ }
127
+ exports.Displayers = new DisplayerDecorator();
128
+ exports.displayers = exports.Displayers.decorator;
129
+ //# sourceMappingURL=displayers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"displayers.js","sourceRoot":"","sources":["../../src/displayers/displayers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from "./displayers";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/displayers/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./displayers"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/displayers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B"}
@@ -0,0 +1,20 @@
1
+ import { type MapOf } from "immutable";
2
+ import type { InputEnv, InputEnvMapping } from "./types";
3
+ type _EnvBuilderMap = MapOf<InputEnvMapping>;
4
+ export declare class EnvBuilder {
5
+ private readonly _env;
6
+ constructor(_env: _EnvBuilderMap);
7
+ get values(): _EnvBuilderMap;
8
+ private _withEnv;
9
+ add(name: string, value: string): EnvBuilder;
10
+ add(input: InputEnvMapping): EnvBuilder;
11
+ overwrite(name: string, value: string): EnvBuilder;
12
+ overwrite(input: InputEnvMapping): EnvBuilder;
13
+ toObject(): {
14
+ [key: string]: string;
15
+ };
16
+ static make(env?: InputEnv): EnvBuilder;
17
+ }
18
+ export declare function Env(env?: InputEnvMapping): EnvBuilder;
19
+ export {};
20
+ //# sourceMappingURL=env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/env/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,KAAK,EAAE,MAAM,WAAW,CAAA;AAE3C,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAGxD,KAAK,cAAc,GAAG,KAAK,CAAC,eAAe,CAAC,CAAA;AAC5C,qBAAa,UAAU;IACP,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,cAAc;IAUjD,IAAI,MAAM,mBAET;IAED,OAAO,CAAC,QAAQ;IAIhB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU;IAC5C,GAAG,CAAC,KAAK,EAAE,eAAe,GAAG,UAAU;IAgBvC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU;IAClD,SAAS,CAAC,KAAK,EAAE,eAAe,GAAG,UAAU;IAU7C,QAAQ;;;IAOR,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ;CAS7B;AAED,wBAAgB,GAAG,CAAC,GAAG,CAAC,EAAE,eAAe,cAExC"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EnvBuilder = void 0;
4
+ exports.Env = Env;
5
+ const immutable_1 = require("immutable");
6
+ const error_1 = require("../error");
7
+ const validate_name_1 = require("./validate-name");
8
+ class EnvBuilder {
9
+ constructor(_env) {
10
+ this._env = _env;
11
+ for (const key of _env.keys()) {
12
+ if (!(0, validate_name_1.isValidEnvVarName)(key)) {
13
+ throw new error_1.InstrumentsError("Invalid environment variable name", {
14
+ key: key
15
+ });
16
+ }
17
+ }
18
+ }
19
+ get values() {
20
+ return this._env;
21
+ }
22
+ _withEnv(f) {
23
+ return new EnvBuilder(f(this._env));
24
+ }
25
+ add(a, b) {
26
+ const pairs = typeof a === "string" ? [[a, b]] : Object.entries(a);
27
+ const map = (0, immutable_1.Map)(pairs);
28
+ const existingKeys = map
29
+ .keySeq()
30
+ .filter(k => this._env.has(k))
31
+ .toList();
32
+ if (existingKeys.size > 0) {
33
+ throw new error_1.InstrumentsError("Cannot overwrite existing keys using add", {
34
+ keys: existingKeys.toArray()
35
+ });
36
+ }
37
+ return this._withEnv(env => env.merge(map));
38
+ }
39
+ overwrite(a, b) {
40
+ if (typeof a === "string") {
41
+ return this._withEnv(env => env.set(a, b));
42
+ }
43
+ else {
44
+ const map = (0, immutable_1.Map)(a);
45
+ return this._withEnv(env => env.merge(map));
46
+ }
47
+ }
48
+ toObject() {
49
+ return this._env
50
+ .filter(v => v != null)
51
+ .map(x => `${x}`)
52
+ .toObject();
53
+ }
54
+ static make(env) {
55
+ if (!env) {
56
+ return new EnvBuilder((0, immutable_1.Map)({}));
57
+ }
58
+ if (env instanceof EnvBuilder) {
59
+ return env;
60
+ }
61
+ return new EnvBuilder((0, immutable_1.Map)(env ?? {}).filter(v => v != null));
62
+ }
63
+ }
64
+ exports.EnvBuilder = EnvBuilder;
65
+ function Env(env) {
66
+ return EnvBuilder.make(env);
67
+ }
68
+ //# sourceMappingURL=env.js.map