@atcute/util-fetch 1.0.4 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,3 +1,9 @@
1
1
  # @atcute/util-fetch
2
2
 
3
- random fetch utilities.
3
+ fetch response utilities used internally by atcute packages.
4
+
5
+ ```sh
6
+ npm install @atcute/util-fetch
7
+ ```
8
+
9
+ this library provides composable fetch response transformers.
@@ -0,0 +1,65 @@
1
+ import * as v from '@badrap/valita';
2
+ /** DoH JSON response schema for TXT record queries */
3
+ export declare const dohJsonTxtResult: v.ObjectType<{
4
+ /** DNS response code */
5
+ Status: v.Type<number>;
6
+ /** whether response is truncated */
7
+ TC: v.Type<boolean>;
8
+ /** whether recursive desired bit is set, always true for Google and Cloudflare DoH */
9
+ RD: v.Type<boolean>;
10
+ /** whether recursive available bit is set, always true for Google and Cloudflare DoH */
11
+ RA: v.Type<boolean>;
12
+ /** whether response data was validated with DNSSEC */
13
+ AD: v.Type<boolean>;
14
+ /** whether client asked to disable DNSSEC validation */
15
+ CD: v.Type<boolean>;
16
+ /** requested records */
17
+ Question: v.TupleType<[v.ObjectType<{
18
+ name: v.Type<string>;
19
+ type: v.Type<16>;
20
+ }, undefined>]>;
21
+ /** answers */
22
+ Answer: v.Type<{
23
+ name: string;
24
+ type: 16;
25
+ TTL: number;
26
+ data: string;
27
+ }[]>;
28
+ /** authority */
29
+ Authority: v.Optional<{
30
+ name: string;
31
+ type: number;
32
+ TTL: number;
33
+ data: string;
34
+ }[]>;
35
+ /** comment from the DNS server */
36
+ Comment: v.Optional<string | string[]>;
37
+ }, undefined>;
38
+ export type DohJsonTxtResult = v.Infer<typeof dohJsonTxtResult>;
39
+ /** fetch handler pipeline for DoH JSON TXT record responses */
40
+ export declare const fetchDohJsonTxt: (input: Response) => Promise<import("./transformers.js").ParsedJsonResponse<{
41
+ Status: number;
42
+ TC: boolean;
43
+ RD: boolean;
44
+ RA: boolean;
45
+ AD: boolean;
46
+ CD: boolean;
47
+ Question: [{
48
+ name: string;
49
+ type: 16;
50
+ }];
51
+ Answer: {
52
+ name: string;
53
+ type: 16;
54
+ TTL: number;
55
+ data: string;
56
+ }[];
57
+ Authority?: {
58
+ name: string;
59
+ type: number;
60
+ TTL: number;
61
+ data: string;
62
+ }[] | undefined;
63
+ Comment?: string | string[] | undefined;
64
+ }>>;
65
+ //# sourceMappingURL=doh-json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doh-json.d.ts","sourceRoot":"","sources":["../lib/doh-json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AA4BpC,sDAAsD;AACtD,eAAO,MAAM,gBAAgB;IAC5B,wBAAwB;;IAExB,oCAAoC;;IAEpC,sFAAsF;;IAEtF,wFAAwF;;IAExF,sDAAsD;;IAEtD,wDAAwD;;IAExD,wBAAwB;;;;;IAExB,cAAc;;;;;;;IAEd,gBAAgB;;;;;;;IAEhB,kCAAkC;;aAEjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE,+DAA+D;AAC/D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;GAI3B,CAAC"}
@@ -0,0 +1,48 @@
1
+ import * as v from '@badrap/valita';
2
+ import { pipe } from './pipeline.js';
3
+ import { isResponseOk, parseResponseAsJson, validateJsonWith } from './transformers.js';
4
+ const uint32 = v.number().assert((input) => Number.isInteger(input) && input >= 0 && input <= 2 ** 32 - 1);
5
+ const question = v.object({
6
+ name: v.string(),
7
+ type: v.literal(16), // TXT
8
+ });
9
+ const answer = v.object({
10
+ name: v.string(),
11
+ type: v.literal(16), // TXT
12
+ TTL: uint32,
13
+ data: v.string().chain((input) => {
14
+ return v.ok(input.replace(/^"|"$/g, '').replace(/\\"/g, '"'));
15
+ }),
16
+ });
17
+ const authority = v.object({
18
+ name: v.string(),
19
+ type: uint32,
20
+ TTL: uint32,
21
+ data: v.string(),
22
+ });
23
+ /** DoH JSON response schema for TXT record queries */
24
+ export const dohJsonTxtResult = v.object({
25
+ /** DNS response code */
26
+ Status: uint32,
27
+ /** whether response is truncated */
28
+ TC: v.boolean(),
29
+ /** whether recursive desired bit is set, always true for Google and Cloudflare DoH */
30
+ RD: v.boolean(),
31
+ /** whether recursive available bit is set, always true for Google and Cloudflare DoH */
32
+ RA: v.boolean(),
33
+ /** whether response data was validated with DNSSEC */
34
+ AD: v.boolean(),
35
+ /** whether client asked to disable DNSSEC validation */
36
+ CD: v.boolean(),
37
+ /** requested records */
38
+ Question: v.tuple([question]),
39
+ /** answers */
40
+ Answer: v.array(answer).optional(() => []),
41
+ /** authority */
42
+ Authority: v.array(authority).optional(),
43
+ /** comment from the DNS server */
44
+ Comment: v.union(v.string(), v.array(v.string())).optional(),
45
+ });
46
+ /** fetch handler pipeline for DoH JSON TXT record responses */
47
+ export const fetchDohJsonTxt = pipe(isResponseOk, parseResponseAsJson(/^application\/(dns-)?json$/, 16 * 1024), validateJsonWith(dohJsonTxtResult, { mode: 'passthrough' }));
48
+ //# sourceMappingURL=doh-json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doh-json.js","sourceRoot":"","sources":["../lib/doh-json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAEpC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAExF,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;AAE3G,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC;IACzB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM;CAC3B,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM;IAC3B,GAAG,EAAE,MAAM;IACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QACjC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAAA,CAC9D,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,MAAM;IACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CAChB,CAAC,CAAC;AAEH,sDAAsD;AACtD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,wBAAwB;IACxB,MAAM,EAAE,MAAM;IACd,oCAAoC;IACpC,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE;IACf,sFAAsF;IACtF,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE;IACf,wFAAwF;IACxF,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE;IACf,sDAAsD;IACtD,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE;IACf,wDAAwD;IACxD,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE;IACf,wBAAwB;IACxB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC7B,cAAc;IACd,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;IAC1C,gBAAgB;IAChB,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;IACxC,kCAAkC;IAClC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC5D,CAAC,CAAC;AAIH,+DAA+D;AAC/D,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAClC,YAAY,EACZ,mBAAmB,CAAC,4BAA4B,EAAE,EAAE,GAAG,IAAI,CAAC,EAC5D,gBAAgB,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAC3D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../lib/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,kBAAmB,SAAQ,KAAK;IACnC,IAAI,SAAwB;CACrC;AAED,qBAAa,mBAAoB,SAAQ,kBAAkB;IAGvC,QAAQ,EAAE,QAAQ;IAF5B,IAAI,SAAyB;gBAEnB,QAAQ,EAAE,QAAQ;IAIrC,IAAI,MAAM,IAAI,MAAM,CAEnB;CACD;AAED,qBAAa,wBAAyB,SAAQ,kBAAkB;IAIvD,WAAW,EAAE,MAAM,GAAG,IAAI;IAHzB,IAAI,SAA8B;gBAGnC,WAAW,EAAE,MAAM,GAAG,IAAI,EACjC,MAAM,EAAE,MAAM;CAIf;AAED,qBAAa,0BAA2B,SAAQ,kBAAkB;IAIzD,YAAY,EAAE,MAAM;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI;IAJxB,IAAI,SAAgC;gBAGrC,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GAAG,IAAI,EAChC,MAAM,EAAE,MAAM;CAIf;AAED,qBAAa,qBAAsB,SAAQ,kBAAkB;IACnD,IAAI,SAA2B;gBAE5B,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAGlD"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../lib/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,kBAAmB,SAAQ,KAAK;IACnC,IAAI,SAAwB;CACrC;AAED,qBAAa,mBAAoB,SAAQ,kBAAkB;IAGvC,QAAQ,EAAE,QAAQ;IAF5B,IAAI,SAAyB;IAEtC,YAAmB,QAAQ,EAAE,QAAQ,EAEpC;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;CACD;AAED,qBAAa,wBAAyB,SAAQ,kBAAkB;IAIvD,WAAW,EAAE,MAAM,GAAG,IAAI;IAHzB,IAAI,SAA8B;IAE3C,YACQ,WAAW,EAAE,MAAM,GAAG,IAAI,EACjC,MAAM,EAAE,MAAM,EAGd;CACD;AAED,qBAAa,0BAA2B,SAAQ,kBAAkB;IAIzD,YAAY,EAAE,MAAM;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI;IAJxB,IAAI,SAAgC;IAE7C,YACQ,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GAAG,IAAI,EAChC,MAAM,EAAE,MAAM,EAGd;CACD;AAED,qBAAa,qBAAsB,SAAQ,kBAAkB;IACnD,IAAI,SAA2B;IAExC,YAAY,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,EAEjD;CACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../lib/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IACnC,IAAI,GAAG,oBAAoB,CAAC;CACrC;AAED,MAAM,OAAO,mBAAoB,SAAQ,kBAAkB;IAGvC;IAFV,IAAI,GAAG,qBAAqB,CAAC;IAEtC,YAAmB,QAAkB;QACpC,KAAK,CAAC,YAAY,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QADnB,aAAQ,GAAR,QAAQ,CAAU;IAErC,CAAC;IAED,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC7B,CAAC;CACD;AAED,MAAM,OAAO,wBAAyB,SAAQ,kBAAkB;IAIvD;IAHC,IAAI,GAAG,0BAA0B,CAAC;IAE3C,YACQ,WAA0B,EACjC,MAAc;QAEd,KAAK,CAAC,MAAM,CAAC,CAAC;QAHP,gBAAW,GAAX,WAAW,CAAe;IAIlC,CAAC;CACD;AAED,MAAM,OAAO,0BAA2B,SAAQ,kBAAkB;IAIzD;IACA;IAJC,IAAI,GAAG,4BAA4B,CAAC;IAE7C,YACQ,YAAoB,EACpB,UAAyB,EAChC,MAAc;QAEd,KAAK,CAAC,MAAM,CAAC,CAAC;QAJP,iBAAY,GAAZ,YAAY,CAAQ;QACpB,eAAU,GAAV,UAAU,CAAe;IAIjC,CAAC;CACD;AAED,MAAM,OAAO,qBAAsB,SAAQ,kBAAkB;IACnD,IAAI,GAAG,uBAAuB,CAAC;IAExC,YAAY,MAAc,EAAE,OAAsB;QACjD,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxB,CAAC;CACD"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../lib/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IACnC,IAAI,GAAG,oBAAoB,CAAC;CACrC;AAED,MAAM,OAAO,mBAAoB,SAAQ,kBAAkB;IAGvC,QAAQ;IAFlB,IAAI,GAAG,qBAAqB,CAAC;IAEtC,YAAmB,QAAkB,EAAE;QACtC,KAAK,CAAC,YAAY,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;wBADnB,QAAQ;IACW,CACrC;IAED,IAAI,MAAM,GAAW;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAAA,CAC5B;CACD;AAED,MAAM,OAAO,wBAAyB,SAAQ,kBAAkB;IAIvD,WAAW;IAHV,IAAI,GAAG,0BAA0B,CAAC;IAE3C,YACQ,WAA0B,EACjC,MAAc,EACb;QACD,KAAK,CAAC,MAAM,CAAC,CAAC;2BAHP,WAAW;IAGJ,CACd;CACD;AAED,MAAM,OAAO,0BAA2B,SAAQ,kBAAkB;IAIzD,YAAY;IACZ,UAAU;IAJT,IAAI,GAAG,4BAA4B,CAAC;IAE7C,YACQ,YAAoB,EACpB,UAAyB,EAChC,MAAc,EACb;QACD,KAAK,CAAC,MAAM,CAAC,CAAC;4BAJP,YAAY;0BACZ,UAAU;IAGH,CACd;CACD;AAED,MAAM,OAAO,qBAAsB,SAAQ,kBAAkB;IACnD,IAAI,GAAG,uBAAuB,CAAC;IAExC,YAAY,MAAc,EAAE,OAAsB,EAAE;QACnD,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAA,CACvB;CACD"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export * from './doh-json.js';
1
2
  export * from './errors.js';
2
3
  export * from './pipeline.js';
3
4
  export * from './transformers.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ export * from './doh-json.js';
1
2
  export * from './errors.js';
2
3
  export * from './pipeline.js';
3
4
  export * from './transformers.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../lib/pipeline.ts"],"names":[],"mappings":"AA6BA,MAAM,UAAU,IAAI,CACnB,GAAG,QAAiD;IAEpD,OAAO,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,OAAO,GAAG,CACf,KAAwB,EACxB,MAAyB,EACI,EAAE;IAC/B,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7C,CAAC,CAAC"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../lib/pipeline.ts"],"names":[],"mappings":"AA6BA,MAAM,UAAU,IAAI,CACnB,GAAG,QAAiD,EACM;IAC1D,OAAO,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAAA,CAChC;AAED,MAAM,OAAO,GAAG,CACf,KAAwB,EACxB,MAAyB,EACI,EAAE,CAAC;IAChC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAAA,CAC5C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"size-limit.d.ts","sourceRoot":"","sources":["../../lib/streams/size-limit.ts"],"names":[],"mappings":"AAEA,qBAAa,eAAgB,SAAQ,eAAe,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;gBACzF,OAAO,EAAE,MAAM;CAmB3B"}
1
+ {"version":3,"file":"size-limit.d.ts","sourceRoot":"","sources":["../../lib/streams/size-limit.ts"],"names":[],"mappings":"AAEA,qBAAa,eAAgB,SAAQ,eAAe,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IACrG,YAAY,OAAO,EAAE,MAAM,EAkB1B;CACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"size-limit.js","sourceRoot":"","sources":["../../lib/streams/size-limit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AAEpC,MAAM,OAAO,eAAgB,SAAQ,eAAiE;IACrG,YAAY,OAAe;QAC1B,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,KAAK,CAAC;YACL,SAAS,CAAC,KAAK,EAAE,UAAU;gBAC1B,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC;gBAE1B,IAAI,SAAS,GAAG,OAAO,EAAE,CAAC;oBACzB,UAAU,CAAC,KAAK,CACf,IAAI,GAAG,CAAC,0BAA0B,CAAC,OAAO,EAAE,SAAS,EAAE,mCAAmC,CAAC,CAC3F,CAAC;oBAEF,OAAO;gBACR,CAAC;gBAED,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;SACD,CAAC,CAAC;IACJ,CAAC;CACD"}
1
+ {"version":3,"file":"size-limit.js","sourceRoot":"","sources":["../../lib/streams/size-limit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AAEpC,MAAM,OAAO,eAAgB,SAAQ,eAAiE;IACrG,YAAY,OAAe,EAAE;QAC5B,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,KAAK,CAAC;YACL,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE;gBAC5B,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC;gBAE1B,IAAI,SAAS,GAAG,OAAO,EAAE,CAAC;oBACzB,UAAU,CAAC,KAAK,CACf,IAAI,GAAG,CAAC,0BAA0B,CAAC,OAAO,EAAE,SAAS,EAAE,mCAAmC,CAAC,CAC3F,CAAC;oBAEF,OAAO;gBACR,CAAC;gBAED,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAAA,CAC1B;SACD,CAAC,CAAC;IAAA,CACH;CACD"}
@@ -9,8 +9,6 @@ export type ParsedJsonResponse<T = unknown> = {
9
9
  };
10
10
  export declare const isResponseOk: (response: Response) => Promise<Response>;
11
11
  export declare const readResponseAsText: (maxSize: number) => (response: Response) => Promise<TextResponse>;
12
- export declare const parseResponseAsJson: (typeRegex: RegExp, maxSize: number) => (response: Response) => Promise<ParsedJsonResponse>;
13
- type ParseOptions = NonNullable<Parameters<v.Type['parse']>[1]>;
14
- export declare const validateJsonWith: <T>(schema: v.Type<T>, options?: ParseOptions) => (parsed: ParsedJsonResponse) => Promise<ParsedJsonResponse<T>>;
15
- export {};
12
+ export declare const parseResponseAsJson: (typeRegex: RegExp, maxSize: number) => (response: Response) => Promise<ParsedJsonResponse<unknown>>;
13
+ export declare const validateJsonWith: <T>(schema: v.Type<T>, options?: v.ParseOptions | undefined) => (parsed: ParsedJsonResponse<unknown>) => Promise<ParsedJsonResponse<T>>;
16
14
  //# sourceMappingURL=transformers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transformers.d.ts","sourceRoot":"","sources":["../lib/transformers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAKpC,MAAM,MAAM,YAAY,GAAG;IAC1B,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAAC,CAAC,GAAG,OAAO,IAAI;IAC7C,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,CAAC,CAAC;CACR,CAAC;AAEF,eAAO,MAAM,YAAY,GAAU,UAAU,QAAQ,KAAG,OAAO,CAAC,QAAQ,CAMvE,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,SAAS,MAAM,MACT,UAAU,QAAQ,KAAG,OAAO,CAAC,YAAY,CAG/C,CAAC;AAEH,eAAO,MAAM,mBAAmB,GAC9B,WAAW,MAAM,EAAE,SAAS,MAAM,MAC5B,UAAU,QAAQ,KAAG,OAAO,CAAC,kBAAkB,CAWrD,CAAC;AAEH,KAAK,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEhE,eAAO,MAAM,gBAAgB,GAC3B,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,YAAY,MACtC,QAAQ,kBAAkB,KAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAGhE,CAAC"}
1
+ {"version":3,"file":"transformers.d.ts","sourceRoot":"","sources":["../lib/transformers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAKpC,MAAM,MAAM,YAAY,GAAG;IAC1B,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAAC,CAAC,GAAG,OAAO,IAAI;IAC7C,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,CAAC,CAAC;CACR,CAAC;AAEF,eAAO,MAAM,YAAY,2CAMxB,CAAC;AAEF,eAAO,MAAM,kBAAkB,oEAK7B,CAAC;AAEH,eAAO,MAAM,mBAAmB,sGAa9B,CAAC;AAIH,eAAO,MAAM,gBAAgB,GAC3B,CAAC,qIAID,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"transformers.js","sourceRoot":"","sources":["../lib/transformers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transformers.js","sourceRoot":"","sources":["../lib/transformers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import * as v from '@badrap/valita';
2
+
3
+ import { pipe } from './pipeline.js';
4
+ import { isResponseOk, parseResponseAsJson, validateJsonWith } from './transformers.js';
5
+
6
+ const uint32 = v.number().assert((input) => Number.isInteger(input) && input >= 0 && input <= 2 ** 32 - 1);
7
+
8
+ const question = v.object({
9
+ name: v.string(),
10
+ type: v.literal(16), // TXT
11
+ });
12
+
13
+ const answer = v.object({
14
+ name: v.string(),
15
+ type: v.literal(16), // TXT
16
+ TTL: uint32,
17
+ data: v.string().chain((input) => {
18
+ return v.ok(input.replace(/^"|"$/g, '').replace(/\\"/g, '"'));
19
+ }),
20
+ });
21
+
22
+ const authority = v.object({
23
+ name: v.string(),
24
+ type: uint32,
25
+ TTL: uint32,
26
+ data: v.string(),
27
+ });
28
+
29
+ /** DoH JSON response schema for TXT record queries */
30
+ export const dohJsonTxtResult = v.object({
31
+ /** DNS response code */
32
+ Status: uint32,
33
+ /** whether response is truncated */
34
+ TC: v.boolean(),
35
+ /** whether recursive desired bit is set, always true for Google and Cloudflare DoH */
36
+ RD: v.boolean(),
37
+ /** whether recursive available bit is set, always true for Google and Cloudflare DoH */
38
+ RA: v.boolean(),
39
+ /** whether response data was validated with DNSSEC */
40
+ AD: v.boolean(),
41
+ /** whether client asked to disable DNSSEC validation */
42
+ CD: v.boolean(),
43
+ /** requested records */
44
+ Question: v.tuple([question]),
45
+ /** answers */
46
+ Answer: v.array(answer).optional(() => []),
47
+ /** authority */
48
+ Authority: v.array(authority).optional(),
49
+ /** comment from the DNS server */
50
+ Comment: v.union(v.string(), v.array(v.string())).optional(),
51
+ });
52
+
53
+ export type DohJsonTxtResult = v.Infer<typeof dohJsonTxtResult>;
54
+
55
+ /** fetch handler pipeline for DoH JSON TXT record responses */
56
+ export const fetchDohJsonTxt = pipe(
57
+ isResponseOk,
58
+ parseResponseAsJson(/^application\/(dns-)?json$/, 16 * 1024),
59
+ validateJsonWith(dohJsonTxtResult, { mode: 'passthrough' }),
60
+ );
package/lib/index.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export * from './doh-json.js';
1
2
  export * from './errors.js';
2
3
  export * from './pipeline.js';
3
4
  export * from './transformers.js';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@atcute/util-fetch",
4
- "version": "1.0.4",
4
+ "version": "1.0.5",
5
5
  "description": "internal fetch utilities",
6
6
  "keywords": [
7
7
  "atproto",
@@ -12,6 +12,9 @@
12
12
  "url": "https://github.com/mary-ext/atcute",
13
13
  "directory": "packages/misc/util-fetch"
14
14
  },
15
+ "publishConfig": {
16
+ "access": "public"
17
+ },
15
18
  "files": [
16
19
  "dist/",
17
20
  "lib/",
@@ -26,7 +29,7 @@
26
29
  "@badrap/valita": "^0.4.6"
27
30
  },
28
31
  "scripts": {
29
- "build": "tsc --project tsconfig.build.json",
32
+ "build": "tsgo --project tsconfig.build.json",
30
33
  "prepublish": "rm -rf dist; pnpm run build"
31
34
  }
32
35
  }