domainkit 0.0.1 → 0.1.0-beta.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 (47) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +115 -1
  3. package/dist/auth-Df9BuC25.mjs +460 -0
  4. package/dist/auth-Df9BuC25.mjs.map +1 -0
  5. package/dist/client-DvXfJx_E.mjs +534 -0
  6. package/dist/client-DvXfJx_E.mjs.map +1 -0
  7. package/dist/cloudflare-C_ixZsJo.mjs +46 -0
  8. package/dist/cloudflare-C_ixZsJo.mjs.map +1 -0
  9. package/dist/cloudflare-DClWuAm8.d.mts +23 -0
  10. package/dist/cloudflare.d.mts +3 -0
  11. package/dist/cloudflare.mjs +2 -0
  12. package/dist/dns-record-Dzo4flM5.mjs +259 -0
  13. package/dist/dns-record-Dzo4flM5.mjs.map +1 -0
  14. package/dist/effect-cloudflare.d.mts +2 -0
  15. package/dist/effect-cloudflare.mjs +2 -0
  16. package/dist/effect-vercel.d.mts +2 -0
  17. package/dist/effect-vercel.mjs +2 -0
  18. package/dist/effect.d.mts +63 -0
  19. package/dist/effect.mjs +28 -0
  20. package/dist/effect.mjs.map +1 -0
  21. package/dist/index-D1KtyjuI.d.mts +71 -0
  22. package/dist/index-DQAjUrZu.d.mts +94 -0
  23. package/dist/index.d.mts +128 -0
  24. package/dist/index.mjs +198 -0
  25. package/dist/index.mjs.map +1 -0
  26. package/dist/manifest-DjH3BVB9.d.mts +579 -0
  27. package/dist/receipt-C7PjnibZ.mjs +28 -0
  28. package/dist/receipt-C7PjnibZ.mjs.map +1 -0
  29. package/dist/resolver-BjZwN2JE.d.mts +2327 -0
  30. package/dist/resolver-D5nVrR10.mjs +153 -0
  31. package/dist/resolver-D5nVrR10.mjs.map +1 -0
  32. package/dist/rolldown-runtime-D7D4PA-g.mjs +13 -0
  33. package/dist/testing.d.mts +47 -0
  34. package/dist/testing.mjs +117 -0
  35. package/dist/testing.mjs.map +1 -0
  36. package/dist/vercel-BWz_9Y1v.mjs +38 -0
  37. package/dist/vercel-BWz_9Y1v.mjs.map +1 -0
  38. package/dist/vercel-Vc_K_87s.d.mts +22 -0
  39. package/dist/vercel.d.mts +3 -0
  40. package/dist/vercel.mjs +2 -0
  41. package/dist/verify-CeMW6XtK.mjs +1109 -0
  42. package/dist/verify-CeMW6XtK.mjs.map +1 -0
  43. package/dist/verify-DPB1OfZ5.d.mts +979 -0
  44. package/package.json +94 -6
  45. package/bun.lock +0 -66
  46. package/index.ts +0 -1
  47. package/tsconfig.json +0 -30
@@ -0,0 +1,71 @@
1
+ import { R as DomainName, d as Value, g as Interface$1, h as Error, l as TokenValidation, o as OAuthMethod, r as Manifest, s as OAuthSubjectResolver } from "./manifest-DjH3BVB9.mjs";
2
+ import { Effect, Schema } from "effect";
3
+ //#region src/providers/cloudflare/protocol.d.ts
4
+ declare const Account$1: Schema.Struct<{
5
+ readonly id: Schema.String;
6
+ readonly name: Schema.String;
7
+ }>;
8
+ interface Account$1 extends Schema.Schema.Type<typeof Account$1> {}
9
+ declare namespace client_d_exports {
10
+ export { Account, Fetch, Interface, ListZonesInput, Options, Zone, make };
11
+ }
12
+ type Fetch = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
13
+ /** Configuration for an Effect-native Cloudflare authoritative-DNS client. */
14
+ interface Options {
15
+ readonly accountId: string;
16
+ readonly baseUrl?: string;
17
+ /** Capabilities the host required when issuing or authorizing this credential. */
18
+ readonly capabilities: TokenValidation["capabilities"];
19
+ readonly fetch?: Fetch;
20
+ readonly token: Value;
21
+ readonly tokenKind?: "account" | "user";
22
+ }
23
+ interface ListZonesInput {
24
+ readonly accountId?: string;
25
+ readonly name?: DomainName;
26
+ }
27
+ type Account = Account$1;
28
+ /** A portable Cloudflare authoritative zone with normalized nameserver evidence. */
29
+ interface Zone {
30
+ readonly accountId: string;
31
+ readonly id: string;
32
+ readonly name: DomainName;
33
+ readonly nameservers: ReadonlyArray<DomainName>;
34
+ readonly status: string | null;
35
+ }
36
+ interface Interface extends Interface$1 {
37
+ readonly listAccounts: () => Effect.Effect<ReadonlyArray<Account>, Error>;
38
+ readonly listZones: (input?: ListZonesInput) => Effect.Effect<ReadonlyArray<Zone>, Error>;
39
+ readonly validateToken: () => Effect.Effect<TokenValidation, Error>;
40
+ }
41
+ /** Creates an Effect-native Cloudflare client without owning the credential lifecycle. */
42
+ declare function make(options: Options): Interface;
43
+ declare namespace auth_d_exports {
44
+ export { OAuthMethodOptions, SubjectResolverOptions, manifest, oauthMethod, subjectResolver, tokenMethod, tokenValidator };
45
+ }
46
+ /** Describes Cloudflare's caller-created API-token authorization method. */
47
+ declare function tokenMethod(capabilities: TokenValidation["capabilities"]): Extract<Manifest["methods"][number], {
48
+ readonly _tag: "token";
49
+ }>;
50
+ interface OAuthMethodOptions {
51
+ /** Scope IDs assigned to the OAuth client by Cloudflare. */
52
+ readonly scopes: ReadonlyArray<string>;
53
+ /** Capabilities represented by those assigned scope IDs. */
54
+ readonly capabilities: TokenValidation["capabilities"];
55
+ readonly clientAuth: OAuthMethod["clientAuth"];
56
+ }
57
+ /** Describes a registered Cloudflare OAuth client and its assigned scope IDs. */
58
+ declare function oauthMethod(options: OAuthMethodOptions): OAuthMethod;
59
+ /** Creates the Cloudflare token and OAuth authorization manifest. */
60
+ declare function manifest(options: OAuthMethodOptions): Manifest;
61
+ interface SubjectResolverOptions extends Omit<Options, "token" | "tokenKind"> {}
62
+ /** Resolves the Cloudflare account selected by a completed OAuth grant. */
63
+ declare function subjectResolver(options: SubjectResolverOptions): OAuthSubjectResolver;
64
+ /** Creates a host callback that validates a Cloudflare API token. */
65
+ declare function tokenValidator(options: Omit<Options, "token">): (token: Value) => ReturnType<Interface["validateToken"]>;
66
+ declare namespace index_d_exports {
67
+ export { Account, auth_d_exports as Auth, client_d_exports as Client, Fetch, Interface, ListZonesInput, Options, Zone, make };
68
+ }
69
+ //#endregion
70
+ export { manifest as a, Account as c, ListZonesInput as d, Options as f, make as h, auth_d_exports as i, Fetch as l, client_d_exports as m, OAuthMethodOptions as n, oauthMethod as o, Zone as p, SubjectResolverOptions as r, tokenMethod as s, index_d_exports as t, Interface as u };
71
+ //# sourceMappingURL=index-D1KtyjuI.d.mts.map
@@ -0,0 +1,94 @@
1
+ import { R as DomainName, d as Value, g as Interface$1, h as Error, l as TokenValidation, n as IntegrationMethod, r as Manifest } from "./manifest-DjH3BVB9.mjs";
2
+ import { Effect } from "effect";
3
+ declare namespace client_d_exports {
4
+ export { Account, AccountContext, Fetch, Interface, ListZonesInput, Options, Zone, make };
5
+ }
6
+ type Fetch = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
7
+ /** Selects whether Vercel requests operate on a personal account or a team. */
8
+ type AccountContext = {
9
+ readonly _tag: "personal";
10
+ } | {
11
+ readonly _tag: "team";
12
+ readonly teamId: string;
13
+ };
14
+ /** Configuration for an Effect-native Vercel authoritative-DNS client. */
15
+ interface Options {
16
+ readonly baseUrl?: string;
17
+ /** Capabilities the host required when issuing or authorizing this credential. */
18
+ readonly capabilities: TokenValidation["capabilities"];
19
+ readonly context: AccountContext;
20
+ readonly fetch?: Fetch;
21
+ readonly token: Value;
22
+ }
23
+ interface ListZonesInput {
24
+ readonly name?: DomainName;
25
+ }
26
+ /** A Vercel account visible to the supplied credential. */
27
+ interface Account {
28
+ readonly id: string;
29
+ readonly name: string;
30
+ readonly type: "personal" | "team";
31
+ }
32
+ /** A Vercel-managed authoritative zone with normalized nameserver evidence. */
33
+ interface Zone {
34
+ readonly accountId: string;
35
+ readonly id: string;
36
+ readonly name: DomainName;
37
+ readonly nameservers: ReadonlyArray<DomainName>;
38
+ readonly status: "active" | "pending";
39
+ }
40
+ interface Interface extends Interface$1 {
41
+ readonly listAccounts: () => Effect.Effect<ReadonlyArray<Account>, Error>;
42
+ readonly listZones: (input?: ListZonesInput) => Effect.Effect<ReadonlyArray<Zone>, Error>;
43
+ readonly validateToken: () => Effect.Effect<TokenValidation, Error>;
44
+ }
45
+ /** Creates an Effect-native Vercel client without owning the credential lifecycle. */
46
+ declare function make(options: Options): Interface;
47
+ declare namespace auth_d_exports {
48
+ export { ExchangeCodeOptions, IntegrationCredential, IntegrationMethodOptions, exchangeCode, integrationMethod, manifest, tokenMethod };
49
+ }
50
+ /** Describes Vercel's caller-created personal access-token method. */
51
+ declare function tokenMethod(capabilities: TokenValidation["capabilities"]): Extract<Manifest["methods"][number], {
52
+ readonly _tag: "token";
53
+ }>;
54
+ interface IntegrationMethodOptions {
55
+ readonly capabilities: TokenValidation["capabilities"];
56
+ readonly slug: string;
57
+ }
58
+ /** Describes Vercel's provider-specific integration installation flow. */
59
+ declare function integrationMethod(options: IntegrationMethodOptions): IntegrationMethod;
60
+ /** Creates the Vercel token and integration authorization manifest. */
61
+ declare function manifest(options: IntegrationMethodOptions): Manifest;
62
+ interface ExchangeCodeOptions {
63
+ readonly baseUrl?: string;
64
+ readonly clientId: string;
65
+ readonly clientSecret: Value;
66
+ readonly code: Value;
67
+ readonly fetch?: Fetch;
68
+ readonly redirectUri: string;
69
+ }
70
+ interface IntegrationCredential {
71
+ readonly accessToken: Value;
72
+ readonly context: AccountContext;
73
+ readonly installationId: string | null;
74
+ readonly userId: string;
75
+ }
76
+ /** Exchanges Vercel's one-time integration code and preserves its account context. */
77
+ declare const exchangeCode: (options: ExchangeCodeOptions) => Effect.Effect<{
78
+ accessToken: Value;
79
+ context: {
80
+ readonly _tag: "personal";
81
+ readonly teamId?: never;
82
+ } | {
83
+ readonly _tag: "team";
84
+ readonly teamId: string;
85
+ };
86
+ installationId: string | null;
87
+ userId: string;
88
+ }, Error, never>;
89
+ declare namespace index_d_exports {
90
+ export { Account, AccountContext, auth_d_exports as Auth, client_d_exports as Client, Fetch, Interface, ListZonesInput, Options, Zone, make };
91
+ }
92
+ //#endregion
93
+ export { make as _, auth_d_exports as a, tokenMethod as c, Fetch as d, Interface as f, client_d_exports as g, Zone as h, IntegrationMethodOptions as i, Account as l, Options as m, ExchangeCodeOptions as n, integrationMethod as o, ListZonesInput as p, IntegrationCredential as r, manifest as s, index_d_exports as t, AccountContext as u };
94
+ //# sourceMappingURL=index-DQAjUrZu.d.mts.map
@@ -0,0 +1,128 @@
1
+ import { A as Schema$1, C as DnsRecord, D as Observed, E as Ns, I as equals, L as parse, M as Txt, N as Type, O as Opaque, P as data, R as DomainName, S as Cname, T as Mx, U as invalid_input_d_exports, V as parse$1, a as OAuthClientConfiguration, b as Aaaa, c as Schema, d as Value, f as secret_d_exports, i as Method, j as Srv, k as RequirementMetadata, l as TokenValidation, m as CreateResult, o as OAuthMethod, p as AsyncInterface, r as Manifest, t as AsyncOAuthSubjectResolver, w as Encoded, x as Caa, y as A, z as Schema$2 } from "./manifest-DjH3BVB9.mjs";
2
+ import { n as cloudflare_d_exports } from "./cloudflare-DClWuAm8.mjs";
3
+ import { B as Connection, G as assertGrant, H as OAuthContinuation, M as AsyncInterface$3, O as AsyncInterface$4, R as AuthorizationError, S as encodeReceipt, U as Schema$3, V as Grant, W as StoredCredential, _ as Operation, b as Schema$4, g as DnsPlan, h as Authorization, m as ApplyReceipt, n as AsyncInterface$1, o as Query, q as encode, r as AsyncResolution, t as Answer, u as AsyncInterface$5, v as PlanAuthorization, w as AsyncInterface$2, x as encode$1, y as Receipt, z as Capability } from "./resolver-BjZwN2JE.mjs";
4
+ import { a as Options$3, c as CreateInput$1, d as zones_d_exports, f as selection_d_exports, m as Fetch$1, p as BeginInput$1, r as Options$2, t as Result, u as renderManualInstructions$1 } from "./verify-DPB1OfZ5.mjs";
5
+ import { r as vercel_d_exports } from "./vercel-Vc_K_87s.mjs";
6
+ declare namespace connection_d_exports {
7
+ export { AuthorizationError, Capability, Connection, Grant, OAuthContinuation, Schema$3 as Schema, StoredCredential, assertGrant, decode$2 as decode, encode };
8
+ }
9
+ declare function decode$2(input: unknown): Promise<Connection>;
10
+ declare namespace provider_auth_d_exports {
11
+ export { Manifest, Method, OAuthClientConfiguration, OAuthMethod, AsyncOAuthSubjectResolver as OAuthSubjectResolver, Schema, TokenValidation, decode$1 as decode };
12
+ }
13
+ declare function decode$1(input: unknown): Promise<Manifest>;
14
+ declare namespace dns_record_d_exports {
15
+ export { A, Aaaa, Caa, Cname, DnsRecord, Encoded, Mx, Ns, Observed, Opaque, RequirementMetadata, Schema$1 as Schema, Srv, Txt, Type, data, equals, parse };
16
+ }
17
+ declare namespace domain_name_d_exports {
18
+ export { DomainName, Schema$2 as Schema, parse$1 as parse };
19
+ }
20
+ declare namespace dns_plan_d_exports {
21
+ export { ApplyReceipt, Authorization, DnsPlan, Operation, PlanAuthorization, Receipt, Schema$4 as Schema, decode, decodeReceipt, encode$1 as encode, encodeReceipt };
22
+ }
23
+ declare function decode(input: unknown): Promise<DnsPlan>;
24
+ declare function decodeReceipt(input: unknown): Promise<ApplyReceipt>;
25
+ declare namespace dns_provider_d_exports {
26
+ export { CreateResult, AsyncInterface as Interface };
27
+ }
28
+ declare namespace dns_resolver_d_exports {
29
+ export { Answer, AsyncInterface$1 as Interface, Query, AsyncResolution as Resolution };
30
+ }
31
+ declare namespace oauth_d_exports {
32
+ export { BeginInput, Fetch, begin, complete, refresh, revoke };
33
+ }
34
+ interface BeginInput extends BeginInput$1 {
35
+ readonly stateStore: AsyncInterface$2;
36
+ }
37
+ declare function begin(input: BeginInput): Promise<{
38
+ readonly authorizationUrl: URL;
39
+ }>;
40
+ declare function complete(input: {
41
+ readonly callbackUrl: URL;
42
+ readonly client: OAuthClientConfiguration;
43
+ readonly connectionStore: AsyncInterface$3;
44
+ readonly credentialStore: AsyncInterface$4;
45
+ readonly fetch?: Fetch$1;
46
+ readonly providerId: string;
47
+ readonly resolveSubject: AsyncOAuthSubjectResolver;
48
+ readonly stateStore: AsyncInterface$2;
49
+ }): Promise<Connection>;
50
+ declare function refresh(input: {
51
+ readonly client: OAuthClientConfiguration;
52
+ readonly connection: Connection;
53
+ readonly credentialStore: AsyncInterface$4;
54
+ readonly fetch?: Fetch$1;
55
+ readonly method: OAuthMethod;
56
+ }): Promise<void>;
57
+ declare function revoke(input: {
58
+ readonly client: OAuthClientConfiguration;
59
+ readonly connection: Connection;
60
+ readonly credentialStore: AsyncInterface$4;
61
+ readonly fetch?: Fetch$1;
62
+ readonly method: OAuthMethod;
63
+ }): Promise<void>;
64
+ type Fetch = Fetch$1;
65
+ declare namespace provisioning_d_exports {
66
+ export { CreateInput, apply, authorize, authorizeForConnection, create, renderManualInstructions };
67
+ }
68
+ interface CreateInput extends CreateInput$1 {
69
+ readonly provider: AsyncInterface;
70
+ }
71
+ declare function create(input: CreateInput): Promise<DnsPlan>;
72
+ declare function authorize(plan: DnsPlan, operationIds?: ReadonlyArray<string>, options?: {
73
+ readonly allowPartial?: boolean;
74
+ }): Promise<PlanAuthorization>;
75
+ declare function apply(input: {
76
+ readonly authorization: PlanAuthorization;
77
+ readonly plan: DnsPlan;
78
+ readonly provider: AsyncInterface;
79
+ }): Promise<ApplyReceipt>;
80
+ declare function authorizeForConnection(input: {
81
+ readonly accountId: string;
82
+ readonly allowPartial?: boolean;
83
+ readonly connection: Connection;
84
+ readonly operationIds?: ReadonlyArray<string>;
85
+ readonly plan: DnsPlan;
86
+ }): Promise<PlanAuthorization>;
87
+ declare const renderManualInstructions: typeof renderManualInstructions$1;
88
+ declare namespace stores_d_exports {
89
+ export { AsyncInterface$3 as Connection, AsyncInterface$4 as Credential, AsyncInterface$2 as OAuthState, AsyncInterface$5 as Receipt };
90
+ }
91
+ declare namespace token_d_exports {
92
+ export { connect };
93
+ }
94
+ declare function connect(input: {
95
+ readonly connectionStore: AsyncInterface$3;
96
+ readonly credentialStore: AsyncInterface$4;
97
+ readonly grant: Grant;
98
+ readonly providerId: string;
99
+ readonly subjectId: string;
100
+ readonly token: Value;
101
+ readonly validate: (token: Value) => Promise<TokenValidation>;
102
+ }): Promise<Connection>;
103
+ declare namespace verification_d_exports {
104
+ export { record };
105
+ }
106
+ declare function record(input: {
107
+ readonly provider: AsyncInterface;
108
+ readonly record: DnsRecord;
109
+ readonly resolver: AsyncInterface$1;
110
+ readonly zone: DomainName;
111
+ }): Promise<Result>;
112
+ declare namespace cloudflare_doh_d_exports {
113
+ export { Options$1 as Options, make$1 as make };
114
+ }
115
+ type Options$1 = Options$2;
116
+ declare function make$1(options?: Options$1): AsyncInterface$1;
117
+ declare namespace doh_d_exports {
118
+ export { Options, make };
119
+ }
120
+ type Options = Options$3;
121
+ declare function make(options: Options): AsyncInterface$1;
122
+ //#endregion
123
+ //#region src/index.d.ts
124
+ /** The current package version from the package manifest. */
125
+ declare const VERSION: string;
126
+ //#endregion
127
+ export { cloudflare_d_exports as Cloudflare, cloudflare_doh_d_exports as CloudflareDnsOverHttps, connection_d_exports as Connection, doh_d_exports as DnsOverHttps, dns_plan_d_exports as DnsPlan, type dns_provider_d_exports as DnsProvider, dns_record_d_exports as DnsRecord, type dns_resolver_d_exports as DnsResolver, domain_name_d_exports as DomainName, invalid_input_d_exports as InvalidInput, oauth_d_exports as OAuth, provider_auth_d_exports as ProviderAuth, selection_d_exports as ProviderDiscovery, provisioning_d_exports as Provisioning, secret_d_exports as Secret, type stores_d_exports as Stores, token_d_exports as TokenConnection, VERSION, vercel_d_exports as Vercel, verification_d_exports as Verification, zones_d_exports as Zones };
128
+ //# sourceMappingURL=index.d.mts.map
package/dist/index.mjs ADDED
@@ -0,0 +1,198 @@
1
+ import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.mjs";
2
+ import { D as parse$1, O as Error$1, _ as equals, a as Mx, c as Opaque, d as Srv, f as Txt, i as Cname, k as invalid_input_exports, l as RequirementMetadata, m as data, n as Aaaa, o as Ns, p as Type, r as Caa, s as Observed, t as A, u as Schema$1, v as parse, w as Schema$2, x as layerFromAsync, y as Error$2 } from "./dns-record-Dzo4flM5.mjs";
3
+ import { t as cloudflare_exports } from "./cloudflare-C_ixZsJo.mjs";
4
+ import { A as decode$4, B as Capability, E as connect$1, F as refresh$1, G as decode$3, H as Schema$3, I as revoke$1, K as encode, M as begin$1, N as complete$1, O as Method, R as webCryptoLayer, S as encodeReceipt, T as zones_exports, U as assertGrant, V as Grant, _ as Receipt, b as decodeReceipt$1, c as authorize$2, d as authorize$1, f as create$1, g as Operation, h as Authorization, i as toAsync, k as Schema$4, m as renderManualInstructions$1, o as toAsync$1, q as version, t as record$1, u as apply$1, v as Schema$5, w as selection_exports, x as encode$1, y as decode$5, z as AuthorizationError } from "./verify-CeMW6XtK.mjs";
5
+ import { f as layerFromAsync$3, g as layerFromAsync$2, r as layerFromAsync$4, s as layerFromAsync$1 } from "./resolver-D5nVrR10.mjs";
6
+ import { l as secret_exports } from "./client-DvXfJx_E.mjs";
7
+ import { n as vercel_exports } from "./vercel-BWz_9Y1v.mjs";
8
+ import { Effect, Layer } from "effect";
9
+ //#region src/promise/connection.ts
10
+ var connection_exports = /* @__PURE__ */ __exportAll({
11
+ AuthorizationError: () => AuthorizationError,
12
+ Capability: () => Capability,
13
+ Grant: () => Grant,
14
+ Schema: () => Schema$3,
15
+ assertGrant: () => assertGrant,
16
+ decode: () => decode$2,
17
+ encode: () => encode
18
+ });
19
+ function decode$2(input) {
20
+ return Effect.runPromise(decode$3(input));
21
+ }
22
+ //#endregion
23
+ //#region src/promise/provider-auth.ts
24
+ var provider_auth_exports = /* @__PURE__ */ __exportAll({
25
+ Method: () => Method,
26
+ Schema: () => Schema$4,
27
+ decode: () => decode$1
28
+ });
29
+ function decode$1(input) {
30
+ return Effect.runPromise(decode$4(input));
31
+ }
32
+ //#endregion
33
+ //#region src/promise/dns-record.ts
34
+ var dns_record_exports = /* @__PURE__ */ __exportAll({
35
+ A: () => A,
36
+ Aaaa: () => Aaaa,
37
+ Caa: () => Caa,
38
+ Cname: () => Cname,
39
+ Mx: () => Mx,
40
+ Ns: () => Ns,
41
+ Observed: () => Observed,
42
+ Opaque: () => Opaque,
43
+ RequirementMetadata: () => RequirementMetadata,
44
+ Schema: () => Schema$1,
45
+ Srv: () => Srv,
46
+ Txt: () => Txt,
47
+ Type: () => Type,
48
+ data: () => data,
49
+ equals: () => equals,
50
+ parse: () => parse
51
+ });
52
+ //#endregion
53
+ //#region src/promise/domain-name.ts
54
+ var domain_name_exports = /* @__PURE__ */ __exportAll({
55
+ Schema: () => Schema$2,
56
+ parse: () => parse$1
57
+ });
58
+ //#endregion
59
+ //#region src/promise/dns-plan.ts
60
+ var dns_plan_exports = /* @__PURE__ */ __exportAll({
61
+ Authorization: () => Authorization,
62
+ Operation: () => Operation,
63
+ Receipt: () => Receipt,
64
+ Schema: () => Schema$5,
65
+ decode: () => decode,
66
+ decodeReceipt: () => decodeReceipt,
67
+ encode: () => encode$1,
68
+ encodeReceipt: () => encodeReceipt
69
+ });
70
+ function decode(input) {
71
+ return Effect.runPromise(decode$5(input));
72
+ }
73
+ function decodeReceipt(input) {
74
+ return Effect.runPromise(decodeReceipt$1(input));
75
+ }
76
+ //#endregion
77
+ //#region src/promise/oauth.ts
78
+ var oauth_exports = /* @__PURE__ */ __exportAll({
79
+ begin: () => begin,
80
+ complete: () => complete,
81
+ refresh: () => refresh,
82
+ revoke: () => revoke
83
+ });
84
+ function begin(input) {
85
+ const { stateStore, ...programInput } = input;
86
+ return Effect.runPromise(begin$1(programInput).pipe(Effect.provide(Layer.merge(layerFromAsync$1(stateStore), webCryptoLayer))));
87
+ }
88
+ function complete(input) {
89
+ return Effect.runPromise(complete$1({
90
+ callbackUrl: input.callbackUrl,
91
+ client: input.client,
92
+ ...input.fetch === void 0 ? {} : { fetch: input.fetch },
93
+ providerId: input.providerId,
94
+ resolveSubject: (tokens, accessToken) => Effect.tryPromise({
95
+ try: () => input.resolveSubject(tokens, accessToken),
96
+ catch: (cause) => providerFailure(input.providerId, "resolveSubject", cause)
97
+ })
98
+ }).pipe(Effect.provide(Layer.mergeAll(layerFromAsync$1(input.stateStore), layerFromAsync$2(input.connectionStore), layerFromAsync$3(input.credentialStore), webCryptoLayer))));
99
+ }
100
+ function refresh(input) {
101
+ return Effect.runPromise(refresh$1({
102
+ client: input.client,
103
+ connection: input.connection,
104
+ ...input.fetch === void 0 ? {} : { fetch: input.fetch },
105
+ method: input.method
106
+ }).pipe(Effect.provide(layerFromAsync$3(input.credentialStore))));
107
+ }
108
+ function revoke(input) {
109
+ return Effect.runPromise(revoke$1({
110
+ client: input.client,
111
+ connection: input.connection,
112
+ ...input.fetch === void 0 ? {} : { fetch: input.fetch },
113
+ method: input.method
114
+ }).pipe(Effect.provide(layerFromAsync$3(input.credentialStore))));
115
+ }
116
+ function providerFailure(providerId, operation, cause) {
117
+ return cause instanceof Error$1 || cause instanceof Error$2 ? cause : new Error$2({
118
+ cause,
119
+ message: cause instanceof Error ? cause.message : "Provider callback failed",
120
+ operation,
121
+ providerId
122
+ });
123
+ }
124
+ //#endregion
125
+ //#region src/promise/provisioning.ts
126
+ var provisioning_exports = /* @__PURE__ */ __exportAll({
127
+ apply: () => apply,
128
+ authorize: () => authorize,
129
+ authorizeForConnection: () => authorizeForConnection,
130
+ create: () => create,
131
+ renderManualInstructions: () => renderManualInstructions
132
+ });
133
+ function create(input) {
134
+ const { provider, ...programInput } = input;
135
+ return Effect.runPromise(create$1(programInput).pipe(Effect.provide(Layer.merge(layerFromAsync(provider), webCryptoLayer))));
136
+ }
137
+ function authorize(plan, operationIds, options = {}) {
138
+ return Effect.runPromise(authorize$1(plan, operationIds, options).pipe(Effect.provide(webCryptoLayer)));
139
+ }
140
+ function apply(input) {
141
+ return Effect.runPromise(apply$1({
142
+ authorization: input.authorization,
143
+ plan: input.plan
144
+ }).pipe(Effect.provide(Layer.merge(layerFromAsync(input.provider), webCryptoLayer))));
145
+ }
146
+ function authorizeForConnection(input) {
147
+ return Effect.runPromise(authorize$2(input).pipe(Effect.provide(webCryptoLayer)));
148
+ }
149
+ const renderManualInstructions = renderManualInstructions$1;
150
+ //#endregion
151
+ //#region src/promise/token.ts
152
+ var token_exports = /* @__PURE__ */ __exportAll({ connect: () => connect });
153
+ function connect(input) {
154
+ return Effect.runPromise(connect$1({
155
+ grant: input.grant,
156
+ providerId: input.providerId,
157
+ subjectId: input.subjectId,
158
+ token: input.token,
159
+ validate: (token) => Effect.tryPromise({
160
+ try: () => input.validate(token),
161
+ catch: (cause) => cause instanceof Error$1 || cause instanceof Error$2 ? cause : new Error$2({
162
+ cause,
163
+ message: cause instanceof Error ? cause.message : "Token validation failed",
164
+ operation: "validateToken",
165
+ providerId: input.providerId
166
+ })
167
+ })
168
+ }).pipe(Effect.provide(Layer.mergeAll(layerFromAsync$2(input.connectionStore), layerFromAsync$3(input.credentialStore), webCryptoLayer))));
169
+ }
170
+ //#endregion
171
+ //#region src/promise/verification.ts
172
+ var verification_exports = /* @__PURE__ */ __exportAll({ record: () => record });
173
+ function record(input) {
174
+ return Effect.runPromise(record$1({
175
+ record: input.record,
176
+ zone: input.zone
177
+ }).pipe(Effect.provide(Layer.merge(layerFromAsync(input.provider), layerFromAsync$4(input.resolver)))));
178
+ }
179
+ //#endregion
180
+ //#region src/promise/cloudflare-doh.ts
181
+ var cloudflare_doh_exports = /* @__PURE__ */ __exportAll({ make: () => make$1 });
182
+ function make$1(options = {}) {
183
+ return toAsync(options);
184
+ }
185
+ //#endregion
186
+ //#region src/promise/doh.ts
187
+ var doh_exports = /* @__PURE__ */ __exportAll({ make: () => make });
188
+ function make(options) {
189
+ return toAsync$1(options);
190
+ }
191
+ //#endregion
192
+ //#region src/index.ts
193
+ /** The current package version from the package manifest. */
194
+ const VERSION = version;
195
+ //#endregion
196
+ export { cloudflare_exports as Cloudflare, cloudflare_doh_exports as CloudflareDnsOverHttps, connection_exports as Connection, doh_exports as DnsOverHttps, dns_plan_exports as DnsPlan, dns_record_exports as DnsRecord, domain_name_exports as DomainName, invalid_input_exports as InvalidInput, oauth_exports as OAuth, provider_auth_exports as ProviderAuth, selection_exports as ProviderDiscovery, provisioning_exports as Provisioning, secret_exports as Secret, token_exports as TokenConnection, VERSION, vercel_exports as Vercel, verification_exports as Verification, zones_exports as Zones };
197
+
198
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":["decode","Connection.decode","decode","ProviderAuth.decode","DnsPlan.decode","DnsPlan.decodeReceipt","OAuthEffect.begin","OAuthStateStore.layerFromAsync","OAuthEffect.complete","ConnectionStore.layerFromAsync","CredentialStore.layerFromAsync","OAuthEffect.refresh","OAuthEffect.revoke","InvalidInputError","DnsProvider.Error","ProvisioningEffect.create","DnsProvider.layerFromAsync","ProvisioningEffect.authorize","ProvisioningEffect.apply","ConnectionAuthorization.authorize","ProvisioningEffect.renderManualInstructions","TokenEffect.connect","InvalidInputError","DnsProvider.Error","ConnectionStore.layerFromAsync","CredentialStore.layerFromAsync","VerificationEffect.record","DnsProvider.layerFromAsync","DnsResolver.layerFromAsync","make","CloudflareDnsOverHttps.toAsync","DnsOverHttps.toAsync","packageJson.version"],"sources":["../src/promise/connection.ts","../src/promise/provider-auth.ts","../src/promise/dns-record.ts","../src/promise/domain-name.ts","../src/promise/dns-plan.ts","../src/promise/oauth.ts","../src/promise/provisioning.ts","../src/promise/token.ts","../src/promise/verification.ts","../src/promise/cloudflare-doh.ts","../src/promise/doh.ts","../src/index.ts"],"sourcesContent":["import { Effect } from \"effect\";\n\nimport * as Connection from \"../auth/connection.ts\";\n\nexport {\n assertGrant,\n AuthorizationError,\n Capability,\n encode,\n Grant,\n Schema,\n} from \"../auth/connection.ts\";\nexport type { Connection, OAuthContinuation, StoredCredential } from \"../auth/connection.ts\";\n\nexport function decode(input: unknown): Promise<Connection.Connection> {\n return Effect.runPromise(Connection.decode(input));\n}\n","import { Effect } from \"effect\";\n\nimport * as ProviderAuth from \"../auth/manifest.ts\";\n\nexport { Method, Schema } from \"../auth/manifest.ts\";\nexport type {\n AsyncOAuthSubjectResolver as OAuthSubjectResolver,\n Manifest,\n OAuthClientConfiguration,\n OAuthMethod,\n TokenValidation,\n} from \"../auth/manifest.ts\";\n\nexport function decode(input: unknown): Promise<ProviderAuth.Manifest> {\n return Effect.runPromise(ProviderAuth.decode(input));\n}\n","export {\n A,\n Aaaa,\n Caa,\n Cname,\n data,\n equals,\n Mx,\n Ns,\n Opaque,\n Observed,\n parse,\n RequirementMetadata,\n Schema,\n Srv,\n Txt,\n Type,\n} from \"../domain/dns-record.ts\";\nexport type { DnsRecord, Encoded } from \"../domain/dns-record.ts\";\n","export { parse, Schema } from \"../domain/domain-name.ts\";\nexport type { DomainName } from \"../domain/domain-name.ts\";\n","import { Effect } from \"effect\";\n\nimport * as DnsPlan from \"../plan/types.ts\";\n\nexport { Authorization, encode, encodeReceipt, Operation, Receipt, Schema } from \"../plan/types.ts\";\nexport type { ApplyReceipt, DnsPlan, PlanAuthorization } from \"../plan/types.ts\";\n\nexport function decode(input: unknown): Promise<DnsPlan.DnsPlan> {\n return Effect.runPromise(DnsPlan.decode(input));\n}\n\nexport function decodeReceipt(input: unknown): Promise<DnsPlan.ApplyReceipt> {\n return Effect.runPromise(DnsPlan.decodeReceipt(input));\n}\n","import { Effect, Layer } from \"effect\";\n\nimport * as Connection from \"../auth/connection.ts\";\nimport * as OAuthEffect from \"../auth/oauth.ts\";\nimport type * as ProviderAuth from \"../auth/manifest.ts\";\nimport { Error as InvalidInputError } from \"../invalid-input.ts\";\nimport { webCryptoLayer } from \"../plan/canonical-json.ts\";\nimport * as DnsProvider from \"../provider/provider.ts\";\nimport * as ConnectionStore from \"../stores/connection.ts\";\nimport * as CredentialStore from \"../stores/credential.ts\";\nimport * as OAuthStateStore from \"../stores/oauth-state.ts\";\n\nexport interface BeginInput extends OAuthEffect.BeginInput {\n readonly stateStore: OAuthStateStore.AsyncInterface;\n}\n\nexport function begin(input: BeginInput): Promise<{ readonly authorizationUrl: URL }> {\n const { stateStore, ...programInput } = input;\n return Effect.runPromise(\n OAuthEffect.begin(programInput).pipe(\n Effect.provide(Layer.merge(OAuthStateStore.layerFromAsync(stateStore), webCryptoLayer)),\n ),\n );\n}\n\nexport function complete(input: {\n readonly callbackUrl: URL;\n readonly client: ProviderAuth.OAuthClientConfiguration;\n readonly connectionStore: ConnectionStore.AsyncInterface;\n readonly credentialStore: CredentialStore.AsyncInterface;\n readonly fetch?: OAuthEffect.Fetch;\n readonly providerId: string;\n readonly resolveSubject: ProviderAuth.AsyncOAuthSubjectResolver;\n readonly stateStore: OAuthStateStore.AsyncInterface;\n}): Promise<Connection.Connection> {\n return Effect.runPromise(\n OAuthEffect.complete({\n callbackUrl: input.callbackUrl,\n client: input.client,\n ...(input.fetch === undefined ? {} : { fetch: input.fetch }),\n providerId: input.providerId,\n resolveSubject: (tokens, accessToken) =>\n Effect.tryPromise({\n try: () => input.resolveSubject(tokens, accessToken),\n catch: (cause) => providerFailure(input.providerId, \"resolveSubject\", cause),\n }),\n }).pipe(\n Effect.provide(\n Layer.mergeAll(\n OAuthStateStore.layerFromAsync(input.stateStore),\n ConnectionStore.layerFromAsync(input.connectionStore),\n CredentialStore.layerFromAsync(input.credentialStore),\n webCryptoLayer,\n ),\n ),\n ),\n );\n}\n\nexport function refresh(input: {\n readonly client: ProviderAuth.OAuthClientConfiguration;\n readonly connection: Connection.Connection;\n readonly credentialStore: CredentialStore.AsyncInterface;\n readonly fetch?: OAuthEffect.Fetch;\n readonly method: ProviderAuth.OAuthMethod;\n}): Promise<void> {\n return Effect.runPromise(\n OAuthEffect.refresh({\n client: input.client,\n connection: input.connection,\n ...(input.fetch === undefined ? {} : { fetch: input.fetch }),\n method: input.method,\n }).pipe(Effect.provide(CredentialStore.layerFromAsync(input.credentialStore))),\n );\n}\n\nexport function revoke(input: {\n readonly client: ProviderAuth.OAuthClientConfiguration;\n readonly connection: Connection.Connection;\n readonly credentialStore: CredentialStore.AsyncInterface;\n readonly fetch?: OAuthEffect.Fetch;\n readonly method: ProviderAuth.OAuthMethod;\n}): Promise<void> {\n return Effect.runPromise(\n OAuthEffect.revoke({\n client: input.client,\n connection: input.connection,\n ...(input.fetch === undefined ? {} : { fetch: input.fetch }),\n method: input.method,\n }).pipe(Effect.provide(CredentialStore.layerFromAsync(input.credentialStore))),\n );\n}\n\nfunction providerFailure(\n providerId: string,\n operation: string,\n cause: unknown,\n): DnsProvider.Error | InvalidInputError {\n return cause instanceof InvalidInputError || cause instanceof DnsProvider.Error\n ? cause\n : new DnsProvider.Error({\n cause,\n message: cause instanceof Error ? cause.message : \"Provider callback failed\",\n operation,\n providerId,\n });\n}\n\nexport type Fetch = OAuthEffect.Fetch;\n","import { Effect, Layer } from \"effect\";\n\nimport type * as Connection from \"../auth/connection.ts\";\nimport * as ConnectionAuthorization from \"../plan/connection-authorization.ts\";\nimport { webCryptoLayer } from \"../plan/canonical-json.ts\";\nimport * as ProvisioningEffect from \"../plan/plan.ts\";\nimport type * as DnsPlan from \"../plan/types.ts\";\nimport * as DnsProvider from \"../provider/provider.ts\";\n\nexport interface CreateInput extends ProvisioningEffect.CreateInput {\n readonly provider: DnsProvider.AsyncInterface;\n}\n\nexport function create(input: CreateInput): Promise<DnsPlan.DnsPlan> {\n const { provider, ...programInput } = input;\n return Effect.runPromise(\n ProvisioningEffect.create(programInput).pipe(\n Effect.provide(Layer.merge(DnsProvider.layerFromAsync(provider), webCryptoLayer)),\n ),\n );\n}\n\nexport function authorize(\n plan: DnsPlan.DnsPlan,\n operationIds?: ReadonlyArray<string>,\n options: { readonly allowPartial?: boolean } = {},\n): Promise<DnsPlan.PlanAuthorization> {\n return Effect.runPromise(\n ProvisioningEffect.authorize(plan, operationIds, options).pipe(Effect.provide(webCryptoLayer)),\n );\n}\n\nexport function apply(input: {\n readonly authorization: DnsPlan.PlanAuthorization;\n readonly plan: DnsPlan.DnsPlan;\n readonly provider: DnsProvider.AsyncInterface;\n}): Promise<DnsPlan.ApplyReceipt> {\n return Effect.runPromise(\n ProvisioningEffect.apply({ authorization: input.authorization, plan: input.plan }).pipe(\n Effect.provide(Layer.merge(DnsProvider.layerFromAsync(input.provider), webCryptoLayer)),\n ),\n );\n}\n\nexport function authorizeForConnection(input: {\n readonly accountId: string;\n readonly allowPartial?: boolean;\n readonly connection: Connection.Connection;\n readonly operationIds?: ReadonlyArray<string>;\n readonly plan: DnsPlan.DnsPlan;\n}): Promise<DnsPlan.PlanAuthorization> {\n return Effect.runPromise(\n ConnectionAuthorization.authorize(input).pipe(Effect.provide(webCryptoLayer)),\n );\n}\n\nexport const renderManualInstructions = ProvisioningEffect.renderManualInstructions;\n","import { Effect, Layer } from \"effect\";\n\nimport * as Connection from \"../auth/connection.ts\";\nimport type * as ProviderAuth from \"../auth/manifest.ts\";\nimport { Value as Secret } from \"../auth/secret.ts\";\nimport * as TokenEffect from \"../auth/token.ts\";\nimport { Error as InvalidInputError } from \"../invalid-input.ts\";\nimport { webCryptoLayer } from \"../plan/canonical-json.ts\";\nimport * as DnsProvider from \"../provider/provider.ts\";\nimport * as ConnectionStore from \"../stores/connection.ts\";\nimport * as CredentialStore from \"../stores/credential.ts\";\n\nexport function connect(input: {\n readonly connectionStore: ConnectionStore.AsyncInterface;\n readonly credentialStore: CredentialStore.AsyncInterface;\n readonly grant: Connection.Grant;\n readonly providerId: string;\n readonly subjectId: string;\n readonly token: Secret;\n readonly validate: (token: Secret) => Promise<ProviderAuth.TokenValidation>;\n}): Promise<Connection.Connection> {\n return Effect.runPromise(\n TokenEffect.connect({\n grant: input.grant,\n providerId: input.providerId,\n subjectId: input.subjectId,\n token: input.token,\n validate: (token) =>\n Effect.tryPromise({\n try: () => input.validate(token),\n catch: (cause) =>\n cause instanceof InvalidInputError || cause instanceof DnsProvider.Error\n ? cause\n : new DnsProvider.Error({\n cause,\n message: cause instanceof Error ? cause.message : \"Token validation failed\",\n operation: \"validateToken\",\n providerId: input.providerId,\n }),\n }),\n }).pipe(\n Effect.provide(\n Layer.mergeAll(\n ConnectionStore.layerFromAsync(input.connectionStore),\n CredentialStore.layerFromAsync(input.credentialStore),\n webCryptoLayer,\n ),\n ),\n ),\n );\n}\n","import { Effect, Layer } from \"effect\";\n\nimport type * as DomainName from \"../domain/domain-name.ts\";\nimport type * as DnsRecord from \"../domain/dns-record.ts\";\nimport * as DnsProvider from \"../provider/provider.ts\";\nimport * as DnsResolver from \"../verification/resolver.ts\";\nimport * as VerificationEffect from \"../verification/verify.ts\";\n\nexport function record(input: {\n readonly provider: DnsProvider.AsyncInterface;\n readonly record: DnsRecord.DnsRecord;\n readonly resolver: DnsResolver.AsyncInterface;\n readonly zone: DomainName.DomainName;\n}): Promise<VerificationEffect.Result> {\n return Effect.runPromise(\n VerificationEffect.record({ record: input.record, zone: input.zone }).pipe(\n Effect.provide(\n Layer.merge(\n DnsProvider.layerFromAsync(input.provider),\n DnsResolver.layerFromAsync(input.resolver),\n ),\n ),\n ),\n );\n}\n","import * as CloudflareDnsOverHttps from \"../verification/cloudflare-doh.ts\";\nimport type * as DnsResolver from \"../verification/resolver.ts\";\n\nexport type Options = CloudflareDnsOverHttps.Options;\n\nexport function make(options: Options = {}): DnsResolver.AsyncInterface {\n return CloudflareDnsOverHttps.toAsync(options);\n}\n","import * as DnsOverHttps from \"../verification/doh.ts\";\nimport type * as DnsResolver from \"../verification/resolver.ts\";\n\nexport type Options = DnsOverHttps.Options;\n\nexport function make(options: Options): DnsResolver.AsyncInterface {\n return DnsOverHttps.toAsync(options);\n}\n","import packageJson from \"../package.json\" with { type: \"json\" };\n\n/** The current package version from the package manifest. */\nexport const VERSION = packageJson.version;\n\nexport * as Connection from \"./promise/connection.ts\";\nexport * as ProviderAuth from \"./promise/provider-auth.ts\";\nexport * as Secret from \"./auth/secret.ts\";\nexport * as ProviderDiscovery from \"./discovery/selection.ts\";\nexport * as Zones from \"./discovery/zones.ts\";\nexport * as DnsRecord from \"./promise/dns-record.ts\";\nexport * as DomainName from \"./promise/domain-name.ts\";\nexport * as InvalidInput from \"./invalid-input.ts\";\nexport * as DnsPlan from \"./promise/dns-plan.ts\";\nexport type * as DnsProvider from \"./promise/dns-provider.ts\";\nexport * as Cloudflare from \"./promise/cloudflare.ts\";\nexport * as Vercel from \"./promise/vercel.ts\";\nexport type * as DnsResolver from \"./promise/dns-resolver.ts\";\nexport * as OAuth from \"./promise/oauth.ts\";\nexport * as Provisioning from \"./promise/provisioning.ts\";\nexport type * as Stores from \"./promise/stores.ts\";\nexport * as TokenConnection from \"./promise/token.ts\";\nexport * as Verification from \"./promise/verification.ts\";\nexport * as CloudflareDnsOverHttps from \"./promise/cloudflare-doh.ts\";\nexport * as DnsOverHttps from \"./promise/doh.ts\";\n"],"mappings":"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"}