@start9labs/start-sdk 1.0.0 → 1.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 (82) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/base/lib/actions/input/builder/inputSpec.d.ts +1 -1
  3. package/base/lib/actions/input/inputSpecConstants.js +1 -1
  4. package/base/lib/actions/input/inputSpecConstants.js.map +1 -1
  5. package/base/lib/actions/setupActions.d.ts +14 -20
  6. package/base/lib/actions/setupActions.js +16 -14
  7. package/base/lib/actions/setupActions.js.map +1 -1
  8. package/base/lib/coverage/lcov-report/block-navigation.js +1 -1
  9. package/base/lib/coverage/lcov-report/sorter.js +21 -7
  10. package/base/lib/osBindings/CountEntry.d.ts +4 -0
  11. package/base/lib/osBindings/CountEntry.js +4 -0
  12. package/base/lib/osBindings/CountEntry.js.map +1 -0
  13. package/base/lib/osBindings/DownloadsResponse.d.ts +7 -0
  14. package/base/lib/osBindings/DownloadsResponse.js +3 -0
  15. package/base/lib/osBindings/DownloadsResponse.js.map +1 -0
  16. package/base/lib/osBindings/GetDownloadsParams.d.ts +18 -0
  17. package/base/lib/osBindings/GetDownloadsParams.js +4 -0
  18. package/base/lib/osBindings/GetDownloadsParams.js.map +1 -0
  19. package/base/lib/osBindings/GetUsersParams.d.ts +10 -0
  20. package/base/lib/osBindings/GetUsersParams.js +4 -0
  21. package/base/lib/osBindings/GetUsersParams.js.map +1 -0
  22. package/base/lib/osBindings/Hostname.d.ts +1 -0
  23. package/base/lib/osBindings/Hostname.js +4 -0
  24. package/base/lib/osBindings/Hostname.js.map +1 -0
  25. package/base/lib/osBindings/MetricsSummary.d.ts +8 -0
  26. package/base/lib/osBindings/MetricsSummary.js +3 -0
  27. package/base/lib/osBindings/MetricsSummary.js.map +1 -0
  28. package/base/lib/osBindings/PackageVersionCount.d.ts +5 -0
  29. package/base/lib/osBindings/PackageVersionCount.js +4 -0
  30. package/base/lib/osBindings/PackageVersionCount.js.map +1 -0
  31. package/base/lib/osBindings/ServerInfo.d.ts +0 -2
  32. package/base/lib/osBindings/UsersResponse.d.ts +4 -0
  33. package/base/lib/osBindings/UsersResponse.js +4 -0
  34. package/base/lib/osBindings/UsersResponse.js.map +1 -0
  35. package/base/lib/osBindings/index.d.ts +7 -0
  36. package/base/lib/osBindings/index.js.map +1 -1
  37. package/base/lib/util/Drop.d.ts +1 -0
  38. package/base/lib/util/Drop.js +3 -1
  39. package/base/lib/util/Drop.js.map +1 -1
  40. package/package/lib/StartSdk.d.ts +35 -15
  41. package/package/lib/StartSdk.js +30 -10
  42. package/package/lib/StartSdk.js.map +1 -1
  43. package/package/lib/health/checkFns/HealthCheckResult.d.ts +11 -3
  44. package/package/lib/health/checkFns/checkPortListening.d.ts +12 -2
  45. package/package/lib/health/checkFns/checkPortListening.js +12 -2
  46. package/package/lib/health/checkFns/checkPortListening.js.map +1 -1
  47. package/package/lib/health/checkFns/checkWebUrl.d.ts +10 -4
  48. package/package/lib/health/checkFns/checkWebUrl.js +10 -4
  49. package/package/lib/health/checkFns/checkWebUrl.js.map +1 -1
  50. package/package/lib/health/checkFns/runHealthScript.d.ts +11 -5
  51. package/package/lib/health/checkFns/runHealthScript.js +11 -5
  52. package/package/lib/health/checkFns/runHealthScript.js.map +1 -1
  53. package/package/lib/mainFn/Daemons.d.ts +114 -34
  54. package/package/lib/mainFn/Daemons.js +9 -4
  55. package/package/lib/mainFn/Daemons.js.map +1 -1
  56. package/package/lib/test/output.d.ts +158 -0
  57. package/package/lib/test/output.js +446 -0
  58. package/package/lib/test/output.js.map +1 -0
  59. package/package/lib/test/output.sdk.d.ts +78 -698
  60. package/package/lib/trigger/TriggerInput.d.ts +7 -0
  61. package/package/lib/trigger/cooldownTrigger.d.ts +15 -0
  62. package/package/lib/trigger/cooldownTrigger.js +15 -0
  63. package/package/lib/trigger/cooldownTrigger.js.map +1 -1
  64. package/package/lib/trigger/defaultTrigger.d.ts +6 -0
  65. package/package/lib/trigger/defaultTrigger.js +11 -5
  66. package/package/lib/trigger/defaultTrigger.js.map +1 -1
  67. package/package/lib/trigger/index.d.ts +12 -1
  68. package/package/lib/trigger/index.js +3 -3
  69. package/package/lib/trigger/index.js.map +1 -1
  70. package/package/lib/trigger/statusTrigger.d.ts +24 -0
  71. package/package/lib/trigger/statusTrigger.js +33 -0
  72. package/package/lib/trigger/statusTrigger.js.map +1 -0
  73. package/package/lib/util/SubContainer.js +1 -1
  74. package/package/lib/util/SubContainer.js.map +1 -1
  75. package/package/lib/util/fileHelper.d.ts +28 -87
  76. package/package/lib/util/fileHelper.js +43 -87
  77. package/package/lib/util/fileHelper.js.map +1 -1
  78. package/package/lib/version/VersionInfo.d.ts +13 -11
  79. package/package/lib/version/VersionInfo.js +17 -25
  80. package/package/lib/version/VersionInfo.js.map +1 -1
  81. package/package/package.json +14 -14
  82. package/package.json +14 -14
@@ -1,4 +1,11 @@
1
1
  import { HealthStatus } from '../../../base/lib/types';
2
+ /**
3
+ * State provided to trigger functions on each iteration.
4
+ *
5
+ * Triggers can inspect `lastResult` to adapt their polling interval based
6
+ * on the most recent health check outcome.
7
+ */
2
8
  export type TriggerInput = {
9
+ /** The result of the most recent health check invocation, or `undefined` if it hasn't run yet */
3
10
  lastResult?: HealthStatus;
4
11
  };
@@ -1 +1,16 @@
1
+ /**
2
+ * A trigger that polls at a fixed interval.
3
+ *
4
+ * @param timeMs - Milliseconds to wait between each health check invocation
5
+ *
6
+ * @example
7
+ * ```ts
8
+ * // Poll every 30 seconds
9
+ * ready: {
10
+ * display: 'My Check',
11
+ * trigger: sdk.trigger.cooldownTrigger(30_000),
12
+ * fn: async () => { ... },
13
+ * }
14
+ * ```
15
+ */
1
16
  export declare function cooldownTrigger(timeMs: number): () => AsyncGenerator<undefined, never, unknown>;
@@ -1,6 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.cooldownTrigger = cooldownTrigger;
4
+ /**
5
+ * A trigger that polls at a fixed interval.
6
+ *
7
+ * @param timeMs - Milliseconds to wait between each health check invocation
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * // Poll every 30 seconds
12
+ * ready: {
13
+ * display: 'My Check',
14
+ * trigger: sdk.trigger.cooldownTrigger(30_000),
15
+ * fn: async () => { ... },
16
+ * }
17
+ * ```
18
+ */
4
19
  function cooldownTrigger(timeMs) {
5
20
  return async function* () {
6
21
  while (true) {
@@ -1 +1 @@
1
- {"version":3,"file":"cooldownTrigger.js","sourceRoot":"","sources":["../../../../package/lib/trigger/cooldownTrigger.ts"],"names":[],"mappings":";;AAAA,0CAOC;AAPD,SAAgB,eAAe,CAAC,MAAc;IAC5C,OAAO,KAAK,SAAS,CAAC;QACpB,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;YAC3D,KAAK,CAAA;QACP,CAAC;IACH,CAAC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"cooldownTrigger.js","sourceRoot":"","sources":["../../../../package/lib/trigger/cooldownTrigger.ts"],"names":[],"mappings":";;AAeA,0CAOC;AAtBD;;;;;;;;;;;;;;GAcG;AACH,SAAgB,eAAe,CAAC,MAAc;IAC5C,OAAO,KAAK,SAAS,CAAC;QACpB,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;YAC3D,KAAK,CAAA;QACP,CAAC;IACH,CAAC,CAAA;AACH,CAAC"}
@@ -1 +1,7 @@
1
+ /**
2
+ * The trigger used when no explicit `trigger` is set on a health check.
3
+ *
4
+ * Polls every 1 s while `starting`, `waiting`, or `failure`, then every
5
+ * 30 s for `success`, `loading`, or `disabled`.
6
+ */
1
7
  export declare const defaultTrigger: import(".").Trigger;
@@ -1,10 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.defaultTrigger = void 0;
4
- const cooldownTrigger_1 = require("./cooldownTrigger");
5
- const changeOnFirstSuccess_1 = require("./changeOnFirstSuccess");
6
- exports.defaultTrigger = (0, changeOnFirstSuccess_1.changeOnFirstSuccess)({
7
- beforeFirstSuccess: (0, cooldownTrigger_1.cooldownTrigger)(1000),
8
- afterFirstSuccess: (0, cooldownTrigger_1.cooldownTrigger)(30000),
4
+ const statusTrigger_1 = require("./statusTrigger");
5
+ /**
6
+ * The trigger used when no explicit `trigger` is set on a health check.
7
+ *
8
+ * Polls every 1 s while `starting`, `waiting`, or `failure`, then every
9
+ * 30 s for `success`, `loading`, or `disabled`.
10
+ */
11
+ exports.defaultTrigger = (0, statusTrigger_1.statusTrigger)(30_000, {
12
+ starting: 1_000,
13
+ waiting: 1_000,
14
+ failure: 1_000,
9
15
  });
10
16
  //# sourceMappingURL=defaultTrigger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaultTrigger.js","sourceRoot":"","sources":["../../../../package/lib/trigger/defaultTrigger.ts"],"names":[],"mappings":";;;AAAA,uDAAmD;AACnD,iEAA6D;AAEhD,QAAA,cAAc,GAAG,IAAA,2CAAoB,EAAC;IACjD,kBAAkB,EAAE,IAAA,iCAAe,EAAC,IAAI,CAAC;IACzC,iBAAiB,EAAE,IAAA,iCAAe,EAAC,KAAK,CAAC;CAC1C,CAAC,CAAA"}
1
+ {"version":3,"file":"defaultTrigger.js","sourceRoot":"","sources":["../../../../package/lib/trigger/defaultTrigger.ts"],"names":[],"mappings":";;;AAAA,mDAA+C;AAE/C;;;;;GAKG;AACU,QAAA,cAAc,GAAG,IAAA,6BAAa,EAAC,MAAM,EAAE;IAClD,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;CACf,CAAC,CAAA"}
@@ -1,4 +1,15 @@
1
1
  import { TriggerInput } from './TriggerInput';
2
- export { changeOnFirstSuccess } from './changeOnFirstSuccess';
3
2
  export { cooldownTrigger } from './cooldownTrigger';
3
+ export { statusTrigger } from './statusTrigger';
4
+ /**
5
+ * A function that controls the polling interval of a health check.
6
+ *
7
+ * A trigger is an async iterator factory: it receives a `getInput` callback
8
+ * that returns the latest {@link TriggerInput} (including the most recent
9
+ * health check result), and yields once each time the health check should
10
+ * run again. The time between yields determines the polling frequency.
11
+ *
12
+ * Most packages should use the built-in triggers (`sdk.trigger.*`) rather
13
+ * than implementing this interface directly.
14
+ */
4
15
  export type Trigger = (getInput: () => TriggerInput) => AsyncIterator<unknown, unknown, never>;
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.cooldownTrigger = exports.changeOnFirstSuccess = void 0;
4
- var changeOnFirstSuccess_1 = require("./changeOnFirstSuccess");
5
- Object.defineProperty(exports, "changeOnFirstSuccess", { enumerable: true, get: function () { return changeOnFirstSuccess_1.changeOnFirstSuccess; } });
3
+ exports.statusTrigger = exports.cooldownTrigger = void 0;
6
4
  var cooldownTrigger_1 = require("./cooldownTrigger");
7
5
  Object.defineProperty(exports, "cooldownTrigger", { enumerable: true, get: function () { return cooldownTrigger_1.cooldownTrigger; } });
6
+ var statusTrigger_1 = require("./statusTrigger");
7
+ Object.defineProperty(exports, "statusTrigger", { enumerable: true, get: function () { return statusTrigger_1.statusTrigger; } });
8
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../package/lib/trigger/index.ts"],"names":[],"mappings":";;;AACA,+DAA6D;AAApD,4HAAA,oBAAoB,OAAA;AAC7B,qDAAmD;AAA1C,kHAAA,eAAe,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../package/lib/trigger/index.ts"],"names":[],"mappings":";;;AACA,qDAAmD;AAA1C,kHAAA,eAAe,OAAA;AACxB,iDAA+C;AAAtC,8GAAA,aAAa,OAAA"}
@@ -0,0 +1,24 @@
1
+ import { HealthStatus } from '../../../base/lib/types';
2
+ import { Trigger } from '.';
3
+ type StatusIntervals = {
4
+ [K in HealthStatus]?: number;
5
+ };
6
+ /**
7
+ * A trigger with per-status polling intervals.
8
+ *
9
+ * Map each health check result to a cooldown duration in milliseconds.
10
+ * Any status without an explicit interval uses the default (30 s if omitted).
11
+ *
12
+ * @param defaultMs - Fallback interval (ms) for any status not listed. Defaults to 30 s.
13
+ * @param intervals - Per-status overrides
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * trigger: sdk.trigger.statusTrigger(30_000, {
18
+ * starting: 5_000,
19
+ * failure: 5_000,
20
+ * })
21
+ * ```
22
+ */
23
+ export declare function statusTrigger(defaultMs: number, intervals?: StatusIntervals): Trigger;
24
+ export {};
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.statusTrigger = statusTrigger;
4
+ /**
5
+ * A trigger with per-status polling intervals.
6
+ *
7
+ * Map each health check result to a cooldown duration in milliseconds.
8
+ * Any status without an explicit interval uses the default (30 s if omitted).
9
+ *
10
+ * @param defaultMs - Fallback interval (ms) for any status not listed. Defaults to 30 s.
11
+ * @param intervals - Per-status overrides
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * trigger: sdk.trigger.statusTrigger(30_000, {
16
+ * starting: 5_000,
17
+ * failure: 5_000,
18
+ * })
19
+ * ```
20
+ */
21
+ function statusTrigger(defaultMs, intervals = {}) {
22
+ return async function* (getInput) {
23
+ while (true) {
24
+ const { lastResult } = getInput();
25
+ const ms = lastResult
26
+ ? (intervals[lastResult] ?? defaultMs)
27
+ : (intervals.starting ?? defaultMs);
28
+ await new Promise((resolve) => setTimeout(resolve, ms));
29
+ yield;
30
+ }
31
+ };
32
+ }
33
+ //# sourceMappingURL=statusTrigger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statusTrigger.js","sourceRoot":"","sources":["../../../../package/lib/trigger/statusTrigger.ts"],"names":[],"mappings":";;AAsBA,sCAcC;AA/BD;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,aAAa,CAC3B,SAAiB,EACjB,YAA6B,EAAE;IAE/B,OAAO,KAAK,SAAS,CAAC,EAAE,QAAQ;QAC9B,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,EAAE,CAAA;YACjC,MAAM,EAAE,GAAG,UAAU;gBACnB,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC;gBACtC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAA;YACrC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;YACvD,KAAK,CAAA;QACP,CAAC;IACH,CAAC,CAAA;AACH,CAAC"}
@@ -48,7 +48,7 @@ async function prepBind(from, to, type) {
48
48
  const toMeta = await fs.stat(to).catch((_) => null);
49
49
  if (type === 'file' || (type === 'infer' && from && fromMeta?.isFile())) {
50
50
  if (toMeta && toMeta.isDirectory())
51
- await fs.rmdir(to, { recursive: false });
51
+ await fs.rmdir(to);
52
52
  if (from && !fromMeta) {
53
53
  await fs.mkdir(from.replace(/\/[^\/]*\/?$/, ''), { recursive: true });
54
54
  await fs.writeFile(from, '');
@@ -1 +1 @@
1
- {"version":3,"file":"SubContainer.js","sourceRoot":"","sources":["../../../../package/lib/util/SubContainer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SubContainer.js","sourceRoot":"","sources":["../../../../package/lib/util/SubContainer.ts"],"names":[],"mappings":"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"}
@@ -72,111 +72,52 @@ type ReadType<A> = {
72
72
  * )
73
73
  * ```
74
74
  */
75
- export declare class FileHelper<A> {
75
+ export interface FileHelper<A> {
76
76
  readonly path: string;
77
77
  readonly writeData: (dataIn: A) => string;
78
78
  readonly readData: (stringValue: string) => unknown;
79
79
  readonly validate: (value: unknown) => A;
80
- private consts;
81
- protected constructor(path: string, writeData: (dataIn: A) => string, readData: (stringValue: string) => unknown, validate: (value: unknown) => A);
82
- private writeFileRaw;
83
- /**
84
- * Accepts structured data and overwrites the existing file on disk.
85
- */
86
- private writeFile;
87
- private readFileRaw;
88
- private readFile;
89
- /**
90
- * Reads the file from disk and converts it to structured data.
91
- */
92
- private readOnce;
93
- private createFileWatchable;
94
- /**
95
- * Create a reactive reader for this file.
96
- *
97
- * Returns an object with multiple read strategies:
98
- * - `once()` - Read the file once and return the parsed value
99
- * - `const(effects)` - Read once but re-read when the file changes (for use with constRetry)
100
- * - `watch(effects)` - Async generator yielding new values on each file change
101
- * - `onChange(effects, callback)` - Fire a callback on each file change
102
- * - `waitFor(effects, predicate)` - Block until the file value satisfies a predicate
103
- *
104
- * @param map - Optional transform function applied after validation
105
- * @param eq - Optional equality function to deduplicate watch emissions
106
- */
107
80
  read(): ReadType<A>;
108
81
  read<B>(map: (value: A) => B, eq?: (left: B | null, right: B | null) => boolean): ReadType<B>;
109
- /**
110
- * Accepts full structured data and overwrites the existing file on disk if it exists.
111
- */
112
82
  write(effects: T.Effects, data: T.AllowReadonly<A> | A, options?: {
113
83
  allowWriteAfterConst?: boolean;
114
84
  }): Promise<null>;
115
- /**
116
- * Accepts partial structured data and performs a merge with the existing file on disk.
117
- */
118
85
  merge(effects: T.Effects, data: T.AllowReadonly<T.DeepPartial<A>>, options?: {
119
86
  allowWriteAfterConst?: boolean;
120
87
  }): Promise<null>;
121
- /**
122
- * We wanted to be able to have a fileHelper, and just modify the path later in time.
123
- * Like one behavior of another dependency or something similar.
124
- */
125
88
  withPath(path: ToPath): FileHelper<A>;
126
- /**
127
- * Create a File Helper for an arbitrary file type.
128
- *
129
- * Provide custom functions for translating data to/from the file format.
130
- */
131
- static raw<A>(path: ToPath, toFile: (dataIn: A) => string, fromFile: (rawData: string) => unknown, validate: (data: unknown) => A): FileHelper<A>;
132
- private static rawTransformed;
133
- /**
134
- * Create a File Helper for a text file
135
- */
136
- static string(path: ToPath): FileHelper<string>;
137
- static string<A extends string>(path: ToPath, shape: Validator<string, A>): FileHelper<A>;
138
- static string<A extends Transformed, Transformed = string>(path: ToPath, shape: Validator<Transformed, A>, transformers: Transformers<string, Transformed, A>): FileHelper<A>;
139
- /**
140
- * Create a File Helper for a .json file.
141
- */
142
- static json<A>(path: ToPath, shape: Validator<unknown, A>): FileHelper<A>;
143
- static json<A extends Transformed, Transformed = unknown>(path: ToPath, shape: Validator<unknown, A>, transformers: Transformers<unknown, Transformed, A>): FileHelper<A>;
144
- /**
145
- * Create a File Helper for a .yaml file
146
- */
147
- static yaml<A extends Record<string, unknown>>(path: ToPath, shape: Validator<Record<string, unknown>, A>): FileHelper<A>;
148
- static yaml<A extends Transformed, Transformed = Record<string, unknown>>(path: ToPath, shape: Validator<Transformed, A>, transformers: Transformers<Record<string, unknown>, Transformed, A>): FileHelper<A>;
149
- /**
150
- * Create a File Helper for a .toml file
151
- */
152
- static toml<A extends Record<string, unknown>>(path: ToPath, shape: Validator<Record<string, unknown>, A>): FileHelper<A>;
153
- static toml<A extends Transformed, Transformed = Record<string, unknown>>(path: ToPath, shape: Validator<Transformed, A>, transformers: Transformers<Record<string, unknown>, Transformed, A>): FileHelper<A>;
154
- /**
155
- * Create a File Helper for a .ini file.
156
- *
157
- * Supports optional encode/decode options and custom transformers.
158
- */
159
- static ini<A extends Record<string, unknown>>(path: ToPath, shape: Validator<Record<string, unknown>, A>, options?: INI.EncodeOptions & INI.DecodeOptions): FileHelper<A>;
160
- static ini<A extends Transformed, Transformed = Record<string, unknown>>(path: ToPath, shape: Validator<Transformed, A>, options: INI.EncodeOptions & INI.DecodeOptions, transformers: Transformers<Record<string, unknown>, Transformed, A>): FileHelper<A>;
161
- /**
162
- * Create a File Helper for a .env file (KEY=VALUE format, one per line).
163
- *
164
- * Lines starting with `#` are treated as comments and ignored on read.
165
- */
166
- static env<A extends Record<string, string>>(path: ToPath, shape: Validator<Record<string, string>, A>): FileHelper<A>;
167
- static env<A extends Transformed, Transformed = Record<string, string>>(path: ToPath, shape: Validator<Transformed, A>, transformers: Transformers<Record<string, string>, Transformed, A>): FileHelper<A>;
168
- /**
169
- * Create a File Helper for an .xml file.
170
- *
171
- * Supports optional parser/builder options from `fast-xml-parser`.
172
- */
173
- static xml<A extends Record<string, unknown>>(path: ToPath, shape: Validator<Record<string, unknown>, A>, options?: {
89
+ }
90
+ interface FileHelperStatic {
91
+ /** Create a File Helper for an arbitrary file type. */
92
+ raw<A>(path: ToPath, toFile: (dataIn: A) => string, fromFile: (rawData: string) => unknown, validate: (data: unknown) => A): FileHelper<A>;
93
+ /** Create a File Helper for a text file */
94
+ string(path: ToPath): FileHelper<string>;
95
+ string<A extends string>(path: ToPath, shape: Validator<string, A>): FileHelper<A>;
96
+ string<A extends Transformed, Transformed = string>(path: ToPath, shape: Validator<Transformed, A>, transformers: Transformers<string, Transformed, A>): FileHelper<A>;
97
+ /** Create a File Helper for a .json file. */
98
+ json<A>(path: ToPath, shape: Validator<unknown, A>): FileHelper<A>;
99
+ json<A extends Transformed, Transformed = unknown>(path: ToPath, shape: Validator<unknown, A>, transformers: Transformers<unknown, Transformed, A>): FileHelper<A>;
100
+ /** Create a File Helper for a .yaml file */
101
+ yaml<A extends Record<string, unknown>>(path: ToPath, shape: Validator<Record<string, unknown>, A>): FileHelper<A>;
102
+ yaml<A extends Transformed, Transformed = Record<string, unknown>>(path: ToPath, shape: Validator<Transformed, A>, transformers: Transformers<Record<string, unknown>, Transformed, A>): FileHelper<A>;
103
+ /** Create a File Helper for a .toml file */
104
+ toml<A extends Record<string, unknown>>(path: ToPath, shape: Validator<Record<string, unknown>, A>): FileHelper<A>;
105
+ toml<A extends Transformed, Transformed = Record<string, unknown>>(path: ToPath, shape: Validator<Transformed, A>, transformers: Transformers<Record<string, unknown>, Transformed, A>): FileHelper<A>;
106
+ /** Create a File Helper for a .ini file. */
107
+ ini<A extends Record<string, unknown>>(path: ToPath, shape: Validator<Record<string, unknown>, A>, options?: INI.EncodeOptions & INI.DecodeOptions): FileHelper<A>;
108
+ ini<A extends Transformed, Transformed = Record<string, unknown>>(path: ToPath, shape: Validator<Transformed, A>, options: INI.EncodeOptions & INI.DecodeOptions, transformers: Transformers<Record<string, unknown>, Transformed, A>): FileHelper<A>;
109
+ /** Create a File Helper for a .env file (KEY=VALUE format, one per line). */
110
+ env<A extends Record<string, string>>(path: ToPath, shape: Validator<Record<string, string>, A>): FileHelper<A>;
111
+ env<A extends Transformed, Transformed = Record<string, string>>(path: ToPath, shape: Validator<Transformed, A>, transformers: Transformers<Record<string, string>, Transformed, A>): FileHelper<A>;
112
+ /** Create a File Helper for an .xml file. */
113
+ xml<A extends Record<string, unknown>>(path: ToPath, shape: Validator<Record<string, unknown>, A>, options?: {
174
114
  parser?: X2jOptions;
175
115
  builder?: XmlBuilderOptions;
176
116
  }): FileHelper<A>;
177
- static xml<A extends Transformed, Transformed = Record<string, unknown>>(path: ToPath, shape: Validator<Transformed, A>, options: {
117
+ xml<A extends Transformed, Transformed = Record<string, unknown>>(path: ToPath, shape: Validator<Transformed, A>, options: {
178
118
  parser?: X2jOptions;
179
119
  builder?: XmlBuilderOptions;
180
120
  }, transformers: Transformers<Record<string, unknown>, Transformed, A>): FileHelper<A>;
181
121
  }
122
+ export declare const FileHelper: FileHelperStatic;
182
123
  export default FileHelper;
@@ -113,47 +113,7 @@ function toPath(path) {
113
113
  }
114
114
  return path.base.subpath(path.subpath);
115
115
  }
116
- /**
117
- * @description Use this class to read/write an underlying configuration file belonging to the upstream service.
118
- *
119
- * These type definitions should reflect the underlying file as closely as possible. For example, if the service does not require a particular value, it should be marked as optional(), even if your package requires it.
120
- *
121
- * It is recommended to use onMismatch() whenever possible. This provides an escape hatch in case the user edits the file manually and accidentally sets a value to an unsupported type.
122
- *
123
- * Officially supported file types are json, yaml, and toml. Other files types can use "raw"
124
- *
125
- * Choose between officially supported file formats (), or a custom format (raw).
126
- *
127
- * @example
128
- * Below are a few examples
129
- *
130
- * ```
131
- * import { matches, FileHelper } from '@start9labs/start-sdk'
132
- * const { arrayOf, boolean, literal, literals, object, natural, string } = matches
133
- *
134
- * export const jsonFile = FileHelper.json('./inputSpec.json', object({
135
- * passwords: arrayOf(string).onMismatch([])
136
- * type: literals('private', 'public').optional().onMismatch(undefined)
137
- * }))
138
- *
139
- * export const tomlFile = FileHelper.toml('./inputSpec.toml', object({
140
- * url: literal('https://start9.com').onMismatch('https://start9.com')
141
- * public: boolean.onMismatch(true)
142
- * }))
143
- *
144
- * export const yamlFile = FileHelper.yaml('./inputSpec.yml', object({
145
- * name: string.optional().onMismatch(undefined)
146
- * age: natural.optional().onMismatch(undefined)
147
- * }))
148
- *
149
- * export const bitcoinConfFile = FileHelper.raw(
150
- * './service.conf',
151
- * (obj: CustomType) => customConvertObjToFormattedString(obj),
152
- * (str) => customParseStringToTypedObj(str),
153
- * )
154
- * ```
155
- */
156
- class FileHelper {
116
+ class FileHelperImpl {
157
117
  constructor(path, writeData, readData, validate) {
158
118
  this.path = path;
159
119
  this.writeData = writeData;
@@ -319,46 +279,43 @@ class FileHelper {
319
279
  * Like one behavior of another dependency or something similar.
320
280
  */
321
281
  withPath(path) {
322
- return new FileHelper(toPath(path), this.writeData, this.readData, this.validate);
282
+ return new FileHelperImpl(toPath(path), this.writeData, this.readData, this.validate);
323
283
  }
324
- /**
325
- * Create a File Helper for an arbitrary file type.
326
- *
327
- * Provide custom functions for translating data to/from the file format.
328
- */
329
- static raw(path, toFile, fromFile, validate) {
330
- return new FileHelper(toPath(path), toFile, fromFile, validate);
331
- }
332
- static rawTransformed(path, toFile, fromFile, validate, transformers) {
333
- return FileHelper.raw(path, (inData) => {
334
- if (transformers) {
335
- return toFile(transformers.onWrite(inData));
336
- }
337
- return toFile(inData);
338
- }, (fileData) => {
339
- if (transformers) {
340
- return transformers.onRead(fromFile(fileData));
341
- }
342
- return fromFile(fileData);
343
- }, validate);
344
- }
345
- static string(path, shape, transformers) {
346
- return FileHelper.rawTransformed(path, (inData) => inData, (inString) => inString, (data) => (shape || zod_1.z.string()).parse(data), transformers);
347
- }
348
- static json(path, shape, transformers) {
349
- return FileHelper.rawTransformed(path, (inData) => JSON.stringify(inData, null, 2), (inString) => JSON.parse(inString), (data) => shape.parse(data), transformers);
350
- }
351
- static yaml(path, shape, transformers) {
352
- return FileHelper.rawTransformed(path, (inData) => YAML.stringify(inData, null, 2), (inString) => YAML.parse(inString), (data) => shape.parse(data), transformers);
353
- }
354
- static toml(path, shape, transformers) {
355
- return FileHelper.rawTransformed(path, (inData) => TOML.stringify(inData), (inString) => TOML.parse(inString), (data) => shape.parse(data), transformers);
356
- }
357
- static ini(path, shape, options, transformers) {
358
- return FileHelper.rawTransformed(path, (inData) => INI.stringify(filterUndefined(inData), options), (inString) => INI.parse(inString, options), (data) => shape.parse(data), transformers);
359
- }
360
- static env(path, shape, transformers) {
361
- return FileHelper.rawTransformed(path, (inData) => Object.entries(inData)
284
+ }
285
+ function rawTransformed(path, toFile, fromFile, validate, transformers) {
286
+ return exports.FileHelper.raw(path, (inData) => {
287
+ if (transformers) {
288
+ return toFile(transformers.onWrite(inData));
289
+ }
290
+ return toFile(inData);
291
+ }, (fileData) => {
292
+ if (transformers) {
293
+ return transformers.onRead(fromFile(fileData));
294
+ }
295
+ return fromFile(fileData);
296
+ }, validate);
297
+ }
298
+ exports.FileHelper = {
299
+ raw(path, toFile, fromFile, validate) {
300
+ return new FileHelperImpl(toPath(path), toFile, fromFile, validate);
301
+ },
302
+ string(path, shape, transformers) {
303
+ return rawTransformed(path, (inData) => inData, (inString) => inString, (data) => (shape || zod_1.z.string()).parse(data), transformers);
304
+ },
305
+ json(path, shape, transformers) {
306
+ return rawTransformed(path, (inData) => JSON.stringify(inData, null, 2), (inString) => JSON.parse(inString), (data) => shape.parse(data), transformers);
307
+ },
308
+ yaml(path, shape, transformers) {
309
+ return rawTransformed(path, (inData) => YAML.stringify(inData, null, 2), (inString) => YAML.parse(inString), (data) => shape.parse(data), transformers);
310
+ },
311
+ toml(path, shape, transformers) {
312
+ return rawTransformed(path, (inData) => TOML.stringify(inData), (inString) => TOML.parse(inString), (data) => shape.parse(data), transformers);
313
+ },
314
+ ini(path, shape, options, transformers) {
315
+ return rawTransformed(path, (inData) => INI.stringify(filterUndefined(inData), options), (inString) => INI.parse(inString, options), (data) => shape.parse(data), transformers);
316
+ },
317
+ env(path, shape, transformers) {
318
+ return rawTransformed(path, (inData) => Object.entries(inData)
362
319
  .map(([k, v]) => `${k}=${v}`)
363
320
  .join('\n'), (inString) => Object.fromEntries(inString
364
321
  .split('\n')
@@ -368,13 +325,12 @@ class FileHelper {
368
325
  const pos = line.indexOf('=');
369
326
  return [line.slice(0, pos), line.slice(pos + 1)];
370
327
  })), (data) => shape.parse(data), transformers);
371
- }
372
- static xml(path, shape, options, transformers) {
328
+ },
329
+ xml(path, shape, options, transformers) {
373
330
  const parser = new fast_xml_parser_1.XMLParser(options?.parser);
374
331
  const builder = new fast_xml_parser_1.XMLBuilder(options?.builder);
375
- return FileHelper.rawTransformed(path, (inData) => builder.build(inData), (inString) => parser.parse(inString), (data) => shape.parse(data), transformers);
376
- }
377
- }
378
- exports.FileHelper = FileHelper;
379
- exports.default = FileHelper;
332
+ return rawTransformed(path, (inData) => builder.build(inData), (inString) => parser.parse(inString), (data) => shape.parse(data), transformers);
333
+ },
334
+ };
335
+ exports.default = exports.FileHelper;
380
336
  //# sourceMappingURL=fileHelper.js.map