@t4h.framework/http 0.6.2 → 0.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,39 @@
1
1
  # @t4h.framework/http
2
2
 
3
+ ## 0.6.4
4
+
5
+ ### Patch Changes
6
+
7
+ - [#175](https://github.com/tech4humans-brasil/framework/pull/175) [`6e6d3de`](https://github.com/tech4humans-brasil/framework/commit/6e6d3de20895bae1b6faf1bdc32aa4f7c136ef0f) Thanks [@gusteycamargo](https://github.com/gusteycamargo)! - Adds `HttpBodyRef`, a value in a JSON body resolved when the request is made,
8
+ and a raw `{ binary }` request body.
9
+
10
+ The body of a request is the activity's input, and inputs are persisted. That
11
+ makes two common attachment shapes traps. An encoded file writes the whole file
12
+ into the history, once per request. And a pre-signed URL expires: between
13
+ persisting the input and the request going out there is a queue with no bound
14
+ on how long it holds a message, so a URL minted beforehand can arrive expired.
15
+
16
+ `HttpBodyRef` keeps both out of the history — what is persisted is what the
17
+ subclass serializes, the recipe rather than the result. It is the body
18
+ counterpart of `HttpAuth`, which for the same reason stores how to get a token
19
+ and never the token. `HttpBodyUpload` is the ready-made case: it asks an
20
+ endpoint for a signed destination, uploads the `Binary`, and resolves to the
21
+ URL, configured by data so one class covers any mint-then-upload flow.
22
+
23
+ A `{ binary }` body streams from storage to the wire instead of being buffered.
24
+
25
+ - Updated dependencies [[`7cd75e4`](https://github.com/tech4humans-brasil/framework/commit/7cd75e4f557d9f5fbe3e486d5a3981186fa38797)]:
26
+ - @t4h.framework/fs@0.9.5
27
+
28
+ ## 0.6.3
29
+
30
+ ### Patch Changes
31
+
32
+ - Updated dependencies [[`aa72268`](https://github.com/tech4humans-brasil/framework/commit/aa72268d040a743743cac31cc14e26b8620b0e3f)]:
33
+ - @t4h.framework/core@0.14.0
34
+ - @t4h.framework/cache@0.6.4
35
+ - @t4h.framework/fs@0.9.4
36
+
3
37
  ## 0.6.2
4
38
 
5
39
  ### Patch Changes
@@ -17,14 +17,22 @@ export type HttpBody = {
17
17
  json: Serializable;
18
18
  text?: never;
19
19
  form?: never;
20
+ binary?: never;
20
21
  } | {
21
22
  json?: never;
22
23
  text: string;
23
24
  form?: never;
25
+ binary?: never;
24
26
  } | {
25
27
  json?: never;
26
28
  text?: never;
27
29
  form: HttpRequestActivityInputBodyFormData;
30
+ binary?: never;
31
+ } | {
32
+ json?: never;
33
+ text?: never;
34
+ form?: never;
35
+ binary: Binary;
28
36
  };
29
37
  export type HttpRequestActivityInput = {
30
38
  url: string;
@@ -63,6 +71,12 @@ export declare abstract class AbstractHttpRequestActivity<TArgs extends readonly
63
71
  } | {
64
72
  body: FormData;
65
73
  headers?: undefined;
74
+ } | {
75
+ body: import("node:stream").Readable;
76
+ headers: {
77
+ 'Content-Type': string;
78
+ 'Content-Length': string;
79
+ };
66
80
  }>;
67
81
  run(input: TInput): Promise<TSerializableOutput>;
68
82
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractHttpRequestActivity.d.ts","sourceRoot":"","sources":["../../src/activities/AbstractHttpRequestActivity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractHttpRequestActivity.d.ts","sourceRoot":"","sources":["../../src/activities/AbstractHttpRequestActivity.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import { uuidv7 } from 'uuidv7';
7
7
  import { Body } from '../models/Body.js';
8
8
  import { HttpAuth } from '../models/HttpAuth.js';
9
9
  import { HttpClientRequestClaim } from '../models/HttpClientRequestClaim.js';
10
+ import { resolveBodyRefs } from '../tools/resolve-body-refs.js';
10
11
  import { withDefaultUserAgent } from '../tools/with-default-user-agent.js';
11
12
  const CLAIMS_KEY = Symbol('http-request-activity-claims');
12
13
  export class AbstractHttpRequestActivity extends SyncActivity {
@@ -45,7 +46,7 @@ export class AbstractHttpRequestActivity extends SyncActivity {
45
46
  headers: undefined,
46
47
  };
47
48
  if (body.json !== undefined) {
48
- const json = JSON.stringify(body.json);
49
+ const json = JSON.stringify(await resolveBodyRefs(body.json));
49
50
  const buffer = Buffer.from(json);
50
51
  return {
51
52
  body: buffer,
@@ -69,6 +70,14 @@ export class AbstractHttpRequestActivity extends SyncActivity {
69
70
  const form = await this.getFormData(body.form);
70
71
  return { body: form };
71
72
  }
73
+ if (body.binary !== undefined)
74
+ return {
75
+ body: await body.binary.stream(),
76
+ headers: {
77
+ 'Content-Type': body.binary.contentType,
78
+ 'Content-Length': body.binary.contentLength.toString(),
79
+ },
80
+ };
72
81
  throw new Error('Invalid body');
73
82
  }
74
83
  async run(input) {
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractHttpRequestActivity.js","sourceRoot":"","sources":["../../src/activities/AbstractHttpRequestActivity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractHttpRequestActivity.js","sourceRoot":"","sources":["../../src/activities/AbstractHttpRequestActivity.ts"],"names":[],"mappings":"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"}
package/dist/http.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  export * from './activities/AbstractHttpRequestActivity.js';
2
2
  export * from './activities/HttpRequestActivity.js';
3
3
  export * from './models/Body.js';
4
+ export * from './models/HttpBodyRef.js';
5
+ export * from './models/HttpBodyUpload.js';
4
6
  export * from './models/HttpAuth.js';
5
7
  export * from './models/HttpClient.js';
6
8
  export * from './models/HttpClientRequestClaim.js';
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,cAAc,6CAA6C,CAAA;AAC3D,cAAc,qCAAqC,CAAA;AACnD,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AACpC,cAAc,wBAAwB,CAAA;AACtC,cAAc,oCAAoC,CAAA;AAClD,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,0CAA0C,CAAA;AACxD,cAAc,8CAA8C,CAAA"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,cAAc,6CAA6C,CAAA;AAC3D,cAAc,qCAAqC,CAAA;AACnD,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,sBAAsB,CAAA;AACpC,cAAc,wBAAwB,CAAA;AACtC,cAAc,oCAAoC,CAAA;AAClD,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,0CAA0C,CAAA;AACxD,cAAc,8CAA8C,CAAA"}
package/dist/http.js CHANGED
@@ -1,6 +1,8 @@
1
1
  export * from './activities/AbstractHttpRequestActivity.js';
2
2
  export * from './activities/HttpRequestActivity.js';
3
3
  export * from './models/Body.js';
4
+ export * from './models/HttpBodyRef.js';
5
+ export * from './models/HttpBodyUpload.js';
4
6
  export * from './models/HttpAuth.js';
5
7
  export * from './models/HttpClient.js';
6
8
  export * from './models/HttpClientRequestClaim.js';
package/dist/http.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,cAAc,6CAA6C,CAAA;AAC3D,cAAc,qCAAqC,CAAA;AACnD,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AACpC,cAAc,wBAAwB,CAAA;AACtC,cAAc,oCAAoC,CAAA;AAClD,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,0CAA0C,CAAA;AACxD,cAAc,8CAA8C,CAAA"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,cAAc,6CAA6C,CAAA;AAC3D,cAAc,qCAAqC,CAAA;AACnD,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,sBAAsB,CAAA;AACpC,cAAc,wBAAwB,CAAA;AACtC,cAAc,oCAAoC,CAAA;AAClD,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,0CAA0C,CAAA;AACxD,cAAc,8CAA8C,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { SerializableClass, type Serializable } from '@t4h.framework/core';
2
+ export declare abstract class HttpBodyRef<T extends Serializable = string> extends SerializableClass {
3
+ abstract resolve(): T | Promise<T>;
4
+ }
5
+ //# sourceMappingURL=HttpBodyRef.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpBodyRef.d.ts","sourceRoot":"","sources":["../../src/models/HttpBodyRef.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAE1E,8BAAsB,WAAW,CAC/B,CAAC,SAAS,YAAY,GAAG,MAAM,CAC/B,SAAQ,iBAAiB;aACT,OAAO,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAC1C"}
@@ -0,0 +1,4 @@
1
+ import { SerializableClass } from '@t4h.framework/core';
2
+ export class HttpBodyRef extends SerializableClass {
3
+ }
4
+ //# sourceMappingURL=HttpBodyRef.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpBodyRef.js","sourceRoot":"","sources":["../../src/models/HttpBodyRef.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAqB,MAAM,qBAAqB,CAAA;AAE1E,MAAM,OAAgB,WAEpB,SAAQ,iBAAiB;CAE1B"}
@@ -0,0 +1,33 @@
1
+ import { type Binary, type Deserializer, type PromiseLikeType, type Serializable, type Serializer } from '@t4h.framework/core';
2
+ import { HttpBodyRef } from './HttpBodyRef.js';
3
+ import type { HttpMethod } from '../activities/AbstractHttpRequestActivity.js';
4
+ export type HttpBodyUploadConfig = {
5
+ signer: {
6
+ url: string;
7
+ method?: HttpMethod;
8
+ json?: Serializable;
9
+ headers?: Record<string, string>;
10
+ };
11
+ urlPath?: string;
12
+ upload?: {
13
+ method?: HttpMethod;
14
+ headers?: Record<string, string>;
15
+ };
16
+ };
17
+ type HttpBodyUploadSerialized = {
18
+ binary: Serializable;
19
+ config: HttpBodyUploadConfig;
20
+ };
21
+ export declare class HttpBodyUpload extends HttpBodyRef<string> {
22
+ readonly binary: Binary;
23
+ readonly config: HttpBodyUploadConfig;
24
+ private readonly claims;
25
+ constructor(binary: Binary, config: HttpBodyUploadConfig);
26
+ toSerializable(serializer: Serializer): Promise<HttpBodyUploadSerialized>;
27
+ protected fromSerializable(serialized: PromiseLikeType<ReturnType<this['toSerializable']>>, deserializer: Deserializer): Promise<void>;
28
+ resolve(): Promise<string>;
29
+ private toSignedUrl;
30
+ private upload;
31
+ }
32
+ export {};
33
+ //# sourceMappingURL=HttpBodyUpload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpBodyUpload.d.ts","sourceRoot":"","sources":["../../src/models/HttpBodyUpload.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,UAAU,EAChB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8CAA8C,CAAA;AAK9E,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,CAAA;QACX,MAAM,CAAC,EAAE,UAAU,CAAA;QACnB,IAAI,CAAC,EAAE,YAAY,CAAA;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KACjC,CAAA;IACD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE;QACP,MAAM,CAAC,EAAE,UAAU,CAAA;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KACjC,CAAA;CACF,CAAA;AAED,KAAK,wBAAwB,GAAG;IAC9B,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,oBAAoB,CAAA;CAC7B,CAAA;AAYD,qBAAa,cAAe,SAAQ,WAAW,CAAC,MAAM,CAAC;aAInC,MAAM,EAAE,MAAM;aACd,MAAM,EAAE,oBAAoB;IAJ9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8C;gBAGnD,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,oBAAoB;IAKjC,cAAc,CACzB,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,wBAAwB,CAAC;cAOpB,gBAAgB,CAC9B,UAAU,EAAE,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAC/D,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,IAAI,CAAC;IAOH,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;YAQzB,WAAW;YAoDX,MAAM;CA0BrB"}
@@ -0,0 +1,95 @@
1
+ import { Claim, } from '@t4h.framework/core';
2
+ import { HttpBodyRef } from './HttpBodyRef.js';
3
+ import { HttpClientRequestClaim } from './HttpClientRequestClaim.js';
4
+ import { withDefaultUserAgent } from '../tools/with-default-user-agent.js';
5
+ const SIGNER_ERROR_BODY_LIMIT = 512;
6
+ function pick(value, path) {
7
+ return path.split('.').reduce((current, key) => {
8
+ if (current === null)
9
+ return undefined;
10
+ if (typeof current !== 'object')
11
+ return undefined;
12
+ return current[key];
13
+ }, value);
14
+ }
15
+ export class HttpBodyUpload extends HttpBodyRef {
16
+ binary;
17
+ config;
18
+ claims = new Claim({ http: HttpClientRequestClaim });
19
+ constructor(binary, config) {
20
+ super();
21
+ this.binary = binary;
22
+ this.config = config;
23
+ }
24
+ async toSerializable(serializer) {
25
+ return {
26
+ binary: await serializer(this.binary),
27
+ config: this.config,
28
+ };
29
+ }
30
+ async fromSerializable(serialized, deserializer) {
31
+ const binary = await deserializer(serialized.binary);
32
+ Object.defineProperty(this, 'binary', { value: binary });
33
+ Object.defineProperty(this, 'config', { value: serialized.config });
34
+ }
35
+ async resolve() {
36
+ const url = await this.toSignedUrl();
37
+ await this.upload(url);
38
+ return url;
39
+ }
40
+ async toSignedUrl() {
41
+ const { signer } = this.config;
42
+ const body = signer.json === undefined
43
+ ? undefined
44
+ : Buffer.from(JSON.stringify(signer.json));
45
+ const response = await this.claims.http.request({
46
+ url: new URL(signer.url),
47
+ method: signer.method ?? 'POST',
48
+ body,
49
+ redirect: 'follow',
50
+ retry: true,
51
+ headers: withDefaultUserAgent({
52
+ ...(body && {
53
+ 'Content-Type': 'application/json',
54
+ 'Content-Length': body.byteLength.toString(),
55
+ }),
56
+ Accept: 'application/json',
57
+ ...signer.headers,
58
+ }),
59
+ });
60
+ const text = Buffer.concat(await response.body.toArray()).toString('utf-8');
61
+ if (response.status < 200 || response.status >= 300)
62
+ throw new Error(`Signed upload request to ${signer.url} failed with status ${response.status}: ${text.slice(0, SIGNER_ERROR_BODY_LIMIT)}`);
63
+ const path = this.config.urlPath ?? 'url';
64
+ let url;
65
+ try {
66
+ url = pick(JSON.parse(text), path);
67
+ }
68
+ catch (cause) {
69
+ throw new Error(`Signed upload request to ${signer.url} returned a body that is not valid JSON: ${text.slice(0, SIGNER_ERROR_BODY_LIMIT)}`, { cause });
70
+ }
71
+ if (typeof url !== 'string' || !url)
72
+ throw new Error(`Signed upload request to ${signer.url} returned no URL at "${path}": ${text.slice(0, SIGNER_ERROR_BODY_LIMIT)}`);
73
+ return url;
74
+ }
75
+ async upload(url) {
76
+ const { upload } = this.config;
77
+ const response = await this.claims.http.request({
78
+ url: new URL(url),
79
+ method: upload?.method ?? 'PUT',
80
+ body: await this.binary.stream(),
81
+ redirect: 'follow',
82
+ retry: true,
83
+ headers: withDefaultUserAgent({
84
+ 'Content-Type': this.binary.contentType,
85
+ 'Content-Length': this.binary.contentLength.toString(),
86
+ ...upload?.headers,
87
+ }),
88
+ });
89
+ if (response.status < 200 || response.status >= 300) {
90
+ const text = Buffer.concat(await response.body.toArray()).toString('utf-8');
91
+ throw new Error(`Upload to the signed URL failed with status ${response.status}: ${text.slice(0, SIGNER_ERROR_BODY_LIMIT)}`);
92
+ }
93
+ }
94
+ }
95
+ //# sourceMappingURL=HttpBodyUpload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpBodyUpload.js","sourceRoot":"","sources":["../../src/models/HttpBodyUpload.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Serializable } from '@t4h.framework/core';
2
+ export declare function resolveBodyRefs(value: Serializable): Promise<Serializable>;
3
+ //# sourceMappingURL=resolve-body-refs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-body-refs.d.ts","sourceRoot":"","sources":["../../src/tools/resolve-body-refs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAIvD,wBAAsB,eAAe,CACnC,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,YAAY,CAAC,CAkBvB"}
@@ -0,0 +1,18 @@
1
+ import { HttpBodyRef } from '../models/HttpBodyRef.js';
2
+ export async function resolveBodyRefs(value) {
3
+ if (value instanceof HttpBodyRef)
4
+ return await value.resolve();
5
+ if (Array.isArray(value))
6
+ return await Promise.all(value.map(item => resolveBodyRefs(item)));
7
+ if (value === null)
8
+ return value;
9
+ if (typeof value !== 'object')
10
+ return value;
11
+ if (value.constructor !== Object)
12
+ return value;
13
+ const out = {};
14
+ for (const [key, item] of Object.entries(value))
15
+ out[key] = await resolveBodyRefs(item);
16
+ return out;
17
+ }
18
+ //# sourceMappingURL=resolve-body-refs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-body-refs.js","sourceRoot":"","sources":["../../src/tools/resolve-body-refs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAmB;IAEnB,IAAI,KAAK,YAAY,WAAW;QAAE,OAAO,MAAM,KAAK,CAAC,OAAO,EAAE,CAAA;IAE9D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACtB,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAEpE,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAA;IAEhC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAE3C,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM;QAAE,OAAO,KAAK,CAAA;IAE9C,MAAM,GAAG,GAAiC,EAAE,CAAA;IAE5C,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QAC7C,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,eAAe,CAAC,IAAoB,CAAC,CAAA;IAExD,OAAO,GAAG,CAAA;AACZ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@t4h.framework/http",
3
- "version": "0.6.2",
3
+ "version": "0.6.4",
4
4
  "description": "HTTP module for the T4H Framework",
5
5
  "homepage": "https://github.com/tech4humans-brasil/framework/tree/main/packages/http",
6
6
  "bugs": "https://github.com/tech4humans-brasil/framework/issues",
@@ -38,18 +38,18 @@
38
38
  "uuidv7": "^1.1.0"
39
39
  },
40
40
  "devDependencies": {
41
- "@t4h.framework/cache": "^0.6.3",
42
- "@t4h.framework/core": "^0.13.0",
43
- "@t4h.framework/fs": "^0.9.3",
41
+ "@t4h.framework/cache": "^0.6.4",
42
+ "@t4h.framework/core": "^0.14.0",
43
+ "@t4h.framework/fs": "^0.9.5",
44
44
  "@types/type-is": "^1.6.7",
45
45
  "@vitest/coverage-v8": "^4.0.18",
46
46
  "typescript": "^5.9.3",
47
47
  "vitest": "^4.0.18"
48
48
  },
49
49
  "peerDependencies": {
50
- "@t4h.framework/cache": "^0.6.3",
51
- "@t4h.framework/core": "^0.13.0",
52
- "@t4h.framework/fs": "^0.9.3"
50
+ "@t4h.framework/cache": "^0.6.4",
51
+ "@t4h.framework/core": "^0.14.0",
52
+ "@t4h.framework/fs": "^0.9.5"
53
53
  },
54
54
  "packageManager": "yarn@4.12.0",
55
55
  "engines": {