domainkit 0.0.1 → 0.1.0-beta.1

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-Vi-hhXbV.mjs +475 -0
  4. package/dist/auth-Vi-hhXbV.mjs.map +1 -0
  5. package/dist/client-BnD7QLRF.mjs +567 -0
  6. package/dist/client-BnD7QLRF.mjs.map +1 -0
  7. package/dist/cloudflare-C6ryPlCZ.mjs +48 -0
  8. package/dist/cloudflare-C6ryPlCZ.mjs.map +1 -0
  9. package/dist/cloudflare-tdjNS8vE.d.mts +23 -0
  10. package/dist/cloudflare.d.mts +3 -0
  11. package/dist/cloudflare.mjs +2 -0
  12. package/dist/dns-record-C_KwGPLf.mjs +269 -0
  13. package/dist/dns-record-C_KwGPLf.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 +73 -0
  19. package/dist/effect.mjs +28 -0
  20. package/dist/effect.mjs.map +1 -0
  21. package/dist/index-CEzk2gbZ.d.mts +94 -0
  22. package/dist/index-CS9Rl5LQ.d.mts +71 -0
  23. package/dist/index.d.mts +173 -0
  24. package/dist/index.mjs +261 -0
  25. package/dist/index.mjs.map +1 -0
  26. package/dist/manifest-CP85ePFn.d.mts +583 -0
  27. package/dist/receipt-CGSnfZQ6.mjs +28 -0
  28. package/dist/receipt-CGSnfZQ6.mjs.map +1 -0
  29. package/dist/resolver-BHPsADzE.d.mts +2387 -0
  30. package/dist/resolver-tEXpKxmH.mjs +200 -0
  31. package/dist/resolver-tEXpKxmH.mjs.map +1 -0
  32. package/dist/rolldown-runtime-D7D4PA-g.mjs +13 -0
  33. package/dist/testing.d.mts +53 -0
  34. package/dist/testing.mjs +165 -0
  35. package/dist/testing.mjs.map +1 -0
  36. package/dist/vercel-D-E2aqb1.d.mts +22 -0
  37. package/dist/vercel-DD89DCqH.mjs +40 -0
  38. package/dist/vercel-DD89DCqH.mjs.map +1 -0
  39. package/dist/vercel.d.mts +3 -0
  40. package/dist/vercel.mjs +2 -0
  41. package/dist/verify-B80xCBh2.d.mts +1407 -0
  42. package/dist/verify-Dvc-9Kgp.mjs +1401 -0
  43. package/dist/verify-Dvc-9Kgp.mjs.map +1 -0
  44. package/package.json +96 -6
  45. package/bun.lock +0 -66
  46. package/index.ts +0 -1
  47. package/tsconfig.json +0 -30
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":["decode","Connection.decode","Lifecycle.updateGrant","ConnectionStore.layerFromAsync","Lifecycle.detach","Lifecycle.Error","ProviderAuthorizationStore.layerFromAsync","CredentialStore.layerFromAsync","decode","ProviderAuthorization.decode","decode","ProviderAuth.decode","DnsPlan.decode","DnsPlan.decodeReceipt","create","DeletionEffect.create","DnsProvider.layerFromAsync","authorize","DeletionEffect.authorize","apply","DeletionEffect.apply","OAuthEffect.begin","OAuthStateStore.layerFromAsync","OAuthEffect.complete","ProviderAuthorizationStore.layerFromAsync","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","ProviderAuthorizationStore.layerFromAsync","CredentialStore.layerFromAsync","VerificationEffect.record","DnsProvider.layerFromAsync","DnsResolver.layerFromAsync","make","CloudflareDnsOverHttps.toAsync","DnsOverHttps.toAsync","packageJson.version"],"sources":["../src/promise/connection.ts","../src/promise/connection-lifecycle.ts","../src/promise/provider-authorization.ts","../src/promise/provider-auth.ts","../src/promise/dns-record.ts","../src/promise/domain-name.ts","../src/promise/dns-plan.ts","../src/promise/deletion.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 { assertGrant, AuthorizationError, encode, Grant, Schema } 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, Layer } from \"effect\";\n\nimport type * as Connection from \"../auth/connection.ts\";\nimport type * as ProviderAuthorization from \"../auth/authorization.ts\";\nimport * as Lifecycle from \"../auth/connection-lifecycle.ts\";\nimport * as ConnectionStore from \"../stores/connection.ts\";\nimport * as CredentialStore from \"../stores/credential.ts\";\nimport * as ProviderAuthorizationStore from \"../stores/authorization.ts\";\n\nexport function updateGrant(input: {\n readonly connection: Parameters<typeof Lifecycle.updateGrant>[0][\"connection\"];\n readonly connectionStore: ConnectionStore.AsyncInterface;\n readonly grant: Parameters<typeof Lifecycle.updateGrant>[0][\"grant\"];\n}): Promise<Connection.Connection> {\n return Effect.runPromise(\n Lifecycle.updateGrant({ connection: input.connection, grant: input.grant }).pipe(\n Effect.provide(ConnectionStore.layerFromAsync(input.connectionStore)),\n ),\n );\n}\n\nexport function detach(input: {\n readonly authorizationStore: ProviderAuthorizationStore.AsyncInterface;\n readonly connectionId: string;\n readonly connectionStore: ConnectionStore.AsyncInterface;\n readonly credentialStore: CredentialStore.AsyncInterface;\n readonly revokeAuthorization: (\n authorization: ProviderAuthorization.ProviderAuthorization,\n ) => Promise<void>;\n}): Promise<Lifecycle.DetachResult> {\n return Effect.runPromise(\n Lifecycle.detach({\n connectionId: input.connectionId,\n revokeAuthorization: (authorization) =>\n Effect.tryPromise({\n try: () => input.revokeAuthorization(authorization),\n catch: (cause) =>\n new Lifecycle.Error({\n message: cause instanceof globalThis.Error ? cause.message : String(cause),\n }),\n }),\n }).pipe(\n Effect.provide(\n Layer.mergeAll(\n ProviderAuthorizationStore.layerFromAsync(input.authorizationStore),\n ConnectionStore.layerFromAsync(input.connectionStore),\n CredentialStore.layerFromAsync(input.credentialStore),\n ),\n ),\n ),\n );\n}\n\nexport { Error } from \"../auth/connection-lifecycle.ts\";\nexport type { DetachResult } from \"../auth/connection-lifecycle.ts\";\n","import { Effect } from \"effect\";\n\nimport * as ProviderAuthorization from \"../auth/authorization.ts\";\n\nexport { Capability, encode, Schema } from \"../auth/authorization.ts\";\nexport type { ProviderAuthorization } from \"../auth/authorization.ts\";\n\nexport function decode(input: unknown): Promise<ProviderAuthorization.ProviderAuthorization> {\n return Effect.runPromise(ProviderAuthorization.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 { webCryptoLayer } from \"../plan/canonical-json.ts\";\nimport * as DeletionEffect from \"../plan/deletion.ts\";\nimport type * as DnsPlan from \"../plan/types.ts\";\nimport * as DnsProvider from \"../provider/provider.ts\";\n\nexport function create(input: {\n readonly plan: DnsPlan.DnsPlan;\n readonly provider: DnsProvider.AsyncInterface;\n readonly receipt: DnsPlan.ApplyReceipt;\n readonly ttlMs?: number;\n}): Promise<DeletionEffect.Plan> {\n return Effect.runPromise(\n DeletionEffect.create({\n plan: input.plan,\n receipt: input.receipt,\n ...(input.ttlMs === undefined ? {} : { ttlMs: input.ttlMs }),\n }).pipe(\n Effect.provide(Layer.merge(DnsProvider.layerFromAsync(input.provider), webCryptoLayer)),\n ),\n );\n}\n\nexport function authorize(\n plan: DeletionEffect.Plan,\n operationIds?: ReadonlyArray<string>,\n): Promise<DeletionEffect.Authorization> {\n return Effect.runPromise(\n DeletionEffect.authorize(plan, operationIds).pipe(Effect.provide(webCryptoLayer)),\n );\n}\n\nexport function apply(input: {\n readonly authorization: DeletionEffect.Authorization;\n readonly plan: DeletionEffect.Plan;\n readonly priorReceipt?: DeletionEffect.Receipt;\n readonly provider: DnsProvider.AsyncInterface;\n}): Promise<DeletionEffect.Receipt> {\n return Effect.runPromise(\n DeletionEffect.apply({\n authorization: input.authorization,\n plan: input.plan,\n ...(input.priorReceipt === undefined ? {} : { priorReceipt: input.priorReceipt }),\n }).pipe(\n Effect.provide(Layer.merge(DnsProvider.layerFromAsync(input.provider), webCryptoLayer)),\n ),\n );\n}\n\nexport { Authorization, Error, Operation, PartialError, Plan, Receipt } from \"../plan/deletion.ts\";\nexport type {\n ApplyError,\n Authorization as DeletionAuthorization,\n CreateError,\n Operation as DeletionOperation,\n Plan as DeletionPlan,\n Receipt as DeletionReceipt,\n} from \"../plan/deletion.ts\";\n","import { Effect, Layer } from \"effect\";\n\nimport * as Connection from \"../auth/connection.ts\";\nimport * as ProviderAuthorization from \"../auth/authorization.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 ProviderAuthorizationStore from \"../stores/authorization.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 authorizationStore: ProviderAuthorizationStore.AsyncInterface;\n readonly fetch?: OAuthEffect.Fetch;\n readonly providerId: string;\n readonly resolveSubject: ProviderAuth.AsyncOAuthSubjectResolver;\n readonly stateStore: OAuthStateStore.AsyncInterface;\n}): Promise<{\n readonly authorization: ProviderAuthorization.ProviderAuthorization;\n readonly connection: Connection.Connection;\n}> {\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 ProviderAuthorizationStore.layerFromAsync(input.authorizationStore),\n ConnectionStore.layerFromAsync(input.connectionStore),\n CredentialStore.layerFromAsync(input.credentialStore),\n webCryptoLayer,\n ),\n ),\n ),\n );\n}\n\nexport function refresh(input: {\n readonly authorization: ProviderAuthorization.ProviderAuthorization;\n readonly client: ProviderAuth.OAuthClientConfiguration;\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 authorization: input.authorization,\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 authorization: ProviderAuthorization.ProviderAuthorization;\n readonly client: ProviderAuth.OAuthClientConfiguration;\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 authorization: input.authorization,\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 type * as ProviderAuthorization from \"../auth/authorization.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 allowPartial?: boolean;\n readonly authorization: ProviderAuthorization.ProviderAuthorization;\n readonly connection: Connection.Connection;\n readonly domain: string;\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 * as ProviderAuthorization from \"../auth/authorization.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\";\nimport * as ProviderAuthorizationStore from \"../stores/authorization.ts\";\n\nexport function connect(input: {\n readonly connectionStore: ConnectionStore.AsyncInterface;\n readonly credentialStore: CredentialStore.AsyncInterface;\n readonly authorizationStore: ProviderAuthorizationStore.AsyncInterface;\n readonly grant: Connection.Grant;\n readonly ownerId: string;\n readonly providerId: string;\n readonly subjectId: string;\n readonly token: Secret;\n readonly validate: (token: Secret) => Promise<ProviderAuth.TokenValidation>;\n}): Promise<{\n readonly authorization: ProviderAuthorization.ProviderAuthorization;\n readonly connection: Connection.Connection;\n}> {\n return Effect.runPromise(\n TokenEffect.connect({\n grant: input.grant,\n ownerId: input.ownerId,\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 ProviderAuthorizationStore.layerFromAsync(input.authorizationStore),\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 ConnectionLifecycle from \"./promise/connection-lifecycle.ts\";\nexport * as ProviderAuthorization from \"./promise/provider-authorization.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 * as Deletion from \"./promise/deletion.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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"}
@@ -0,0 +1,583 @@
1
+ import { Context, Effect, Layer, Schema } from "effect";
2
+ import * as oauth from "oauth4webapi";
3
+ declare namespace invalid_input_d_exports {
4
+ export { Error$1 as Error };
5
+ }
6
+ declare const Error_base$1: Schema.Class<Error$1, Schema.TaggedStruct<"InvalidInputError", {
7
+ readonly message: Schema.String;
8
+ }>, import("effect/Cause").YieldableError>;
9
+ declare class Error$1 extends Error_base$1 {}
10
+ declare namespace domain_name_d_exports {
11
+ export { DomainName, Schema$3 as Schema, decode$2 as decode, parse$1 as parse };
12
+ }
13
+ declare const Type$1: Schema.brand<Schema.String, "DomainName">;
14
+ /** A lower-case, fully qualified DNS name without a trailing dot. */
15
+ type DomainName = typeof Type$1.Type;
16
+ /** Decodes user and wire strings into canonical domain names. */
17
+ declare const Schema$3: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
18
+ declare const decode$2: (input: unknown) => Effect.Effect<string & import("effect/Brand").Brand<"DomainName">, Error$1, never>;
19
+ declare function parse$1(input: unknown): DomainName;
20
+ declare namespace dns_record_d_exports {
21
+ export { A, Aaaa, Caa, Cname, DnsRecord, Encoded, Mx, Ns, Observed, Opaque, RequirementMetadata, Schema$2 as Schema, Srv, Txt, Type, data, decode$1 as decode, equals, parse };
22
+ }
23
+ declare const Type: Schema.Literals<readonly ["A", "AAAA", "CNAME", "TXT", "MX", "CAA", "NS", "SRV"]>;
24
+ type Type = typeof Type.Type;
25
+ declare const RequirementMetadata: Schema.Struct<{
26
+ readonly ownership: Schema.String;
27
+ readonly provenance: Schema.String;
28
+ readonly purpose: Schema.String;
29
+ }>;
30
+ interface RequirementMetadata extends Schema.Schema.Type<typeof RequirementMetadata> {}
31
+ declare const Schema$2: Schema.TaggedUnion<{
32
+ readonly A: Schema.TaggedStruct<"A", {
33
+ readonly metadata: Schema.Struct<{
34
+ readonly ownership: Schema.String;
35
+ readonly provenance: Schema.String;
36
+ readonly purpose: Schema.String;
37
+ }>;
38
+ readonly name: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
39
+ readonly policy: Schema.Literals<readonly ["exclusive", "append"]>;
40
+ readonly ttl: Schema.NullOr<Schema.Int>;
41
+ readonly address: Schema.String;
42
+ }>;
43
+ readonly AAAA: Schema.TaggedStruct<"AAAA", {
44
+ readonly metadata: Schema.Struct<{
45
+ readonly ownership: Schema.String;
46
+ readonly provenance: Schema.String;
47
+ readonly purpose: Schema.String;
48
+ }>;
49
+ readonly name: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
50
+ readonly policy: Schema.Literals<readonly ["exclusive", "append"]>;
51
+ readonly ttl: Schema.NullOr<Schema.Int>;
52
+ readonly address: Schema.String;
53
+ }>;
54
+ readonly CAA: Schema.TaggedStruct<"CAA", {
55
+ readonly metadata: Schema.Struct<{
56
+ readonly ownership: Schema.String;
57
+ readonly provenance: Schema.String;
58
+ readonly purpose: Schema.String;
59
+ }>;
60
+ readonly name: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
61
+ readonly policy: Schema.Literals<readonly ["exclusive", "append"]>;
62
+ readonly ttl: Schema.NullOr<Schema.Int>;
63
+ readonly flags: Schema.Int;
64
+ readonly tag: Schema.Literals<readonly ["issue", "issuewild", "iodef"]>;
65
+ readonly value: Schema.String;
66
+ }>;
67
+ readonly CNAME: Schema.TaggedStruct<"CNAME", {
68
+ readonly metadata: Schema.Struct<{
69
+ readonly ownership: Schema.String;
70
+ readonly provenance: Schema.String;
71
+ readonly purpose: Schema.String;
72
+ }>;
73
+ readonly name: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
74
+ readonly ttl: Schema.NullOr<Schema.Int>;
75
+ readonly policy: Schema.Literal<"exclusive">;
76
+ readonly target: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
77
+ }>;
78
+ readonly MX: Schema.TaggedStruct<"MX", {
79
+ readonly metadata: Schema.Struct<{
80
+ readonly ownership: Schema.String;
81
+ readonly provenance: Schema.String;
82
+ readonly purpose: Schema.String;
83
+ }>;
84
+ readonly name: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
85
+ readonly policy: Schema.Literals<readonly ["exclusive", "append"]>;
86
+ readonly ttl: Schema.NullOr<Schema.Int>;
87
+ readonly exchange: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
88
+ readonly priority: Schema.Int;
89
+ }>;
90
+ readonly NS: Schema.TaggedStruct<"NS", {
91
+ readonly metadata: Schema.Struct<{
92
+ readonly ownership: Schema.String;
93
+ readonly provenance: Schema.String;
94
+ readonly purpose: Schema.String;
95
+ }>;
96
+ readonly name: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
97
+ readonly policy: Schema.Literals<readonly ["exclusive", "append"]>;
98
+ readonly ttl: Schema.NullOr<Schema.Int>;
99
+ readonly target: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
100
+ }>;
101
+ readonly SRV: Schema.TaggedStruct<"SRV", {
102
+ readonly metadata: Schema.Struct<{
103
+ readonly ownership: Schema.String;
104
+ readonly provenance: Schema.String;
105
+ readonly purpose: Schema.String;
106
+ }>;
107
+ readonly name: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
108
+ readonly policy: Schema.Literals<readonly ["exclusive", "append"]>;
109
+ readonly ttl: Schema.NullOr<Schema.Int>;
110
+ readonly port: Schema.Int;
111
+ readonly priority: Schema.Int;
112
+ readonly target: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
113
+ readonly weight: Schema.Int;
114
+ }>;
115
+ readonly TXT: Schema.TaggedStruct<"TXT", {
116
+ readonly metadata: Schema.Struct<{
117
+ readonly ownership: Schema.String;
118
+ readonly provenance: Schema.String;
119
+ readonly purpose: Schema.String;
120
+ }>;
121
+ readonly name: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
122
+ readonly policy: Schema.Literals<readonly ["exclusive", "append"]>;
123
+ readonly ttl: Schema.NullOr<Schema.Int>;
124
+ readonly value: Schema.String;
125
+ }>;
126
+ }>;
127
+ declare const A: Schema.TaggedStruct<"A", {
128
+ readonly metadata: Schema.Struct<{
129
+ readonly ownership: Schema.String;
130
+ readonly provenance: Schema.String;
131
+ readonly purpose: Schema.String;
132
+ }>;
133
+ readonly name: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
134
+ readonly policy: Schema.Literals<readonly ["exclusive", "append"]>;
135
+ readonly ttl: Schema.NullOr<Schema.Int>;
136
+ readonly address: Schema.String;
137
+ }>, Aaaa: Schema.TaggedStruct<"AAAA", {
138
+ readonly metadata: Schema.Struct<{
139
+ readonly ownership: Schema.String;
140
+ readonly provenance: Schema.String;
141
+ readonly purpose: Schema.String;
142
+ }>;
143
+ readonly name: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
144
+ readonly policy: Schema.Literals<readonly ["exclusive", "append"]>;
145
+ readonly ttl: Schema.NullOr<Schema.Int>;
146
+ readonly address: Schema.String;
147
+ }>, Caa: Schema.TaggedStruct<"CAA", {
148
+ readonly metadata: Schema.Struct<{
149
+ readonly ownership: Schema.String;
150
+ readonly provenance: Schema.String;
151
+ readonly purpose: Schema.String;
152
+ }>;
153
+ readonly name: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
154
+ readonly policy: Schema.Literals<readonly ["exclusive", "append"]>;
155
+ readonly ttl: Schema.NullOr<Schema.Int>;
156
+ readonly flags: Schema.Int;
157
+ readonly tag: Schema.Literals<readonly ["issue", "issuewild", "iodef"]>;
158
+ readonly value: Schema.String;
159
+ }>, Cname: Schema.TaggedStruct<"CNAME", {
160
+ readonly metadata: Schema.Struct<{
161
+ readonly ownership: Schema.String;
162
+ readonly provenance: Schema.String;
163
+ readonly purpose: Schema.String;
164
+ }>;
165
+ readonly name: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
166
+ readonly ttl: Schema.NullOr<Schema.Int>;
167
+ readonly policy: Schema.Literal<"exclusive">;
168
+ readonly target: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
169
+ }>, Mx: Schema.TaggedStruct<"MX", {
170
+ readonly metadata: Schema.Struct<{
171
+ readonly ownership: Schema.String;
172
+ readonly provenance: Schema.String;
173
+ readonly purpose: Schema.String;
174
+ }>;
175
+ readonly name: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
176
+ readonly policy: Schema.Literals<readonly ["exclusive", "append"]>;
177
+ readonly ttl: Schema.NullOr<Schema.Int>;
178
+ readonly exchange: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
179
+ readonly priority: Schema.Int;
180
+ }>, Ns: Schema.TaggedStruct<"NS", {
181
+ readonly metadata: Schema.Struct<{
182
+ readonly ownership: Schema.String;
183
+ readonly provenance: Schema.String;
184
+ readonly purpose: Schema.String;
185
+ }>;
186
+ readonly name: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
187
+ readonly policy: Schema.Literals<readonly ["exclusive", "append"]>;
188
+ readonly ttl: Schema.NullOr<Schema.Int>;
189
+ readonly target: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
190
+ }>, Srv: Schema.TaggedStruct<"SRV", {
191
+ readonly metadata: Schema.Struct<{
192
+ readonly ownership: Schema.String;
193
+ readonly provenance: Schema.String;
194
+ readonly purpose: Schema.String;
195
+ }>;
196
+ readonly name: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
197
+ readonly policy: Schema.Literals<readonly ["exclusive", "append"]>;
198
+ readonly ttl: Schema.NullOr<Schema.Int>;
199
+ readonly port: Schema.Int;
200
+ readonly priority: Schema.Int;
201
+ readonly target: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
202
+ readonly weight: Schema.Int;
203
+ }>, Txt: Schema.TaggedStruct<"TXT", {
204
+ readonly metadata: Schema.Struct<{
205
+ readonly ownership: Schema.String;
206
+ readonly provenance: Schema.String;
207
+ readonly purpose: Schema.String;
208
+ }>;
209
+ readonly name: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
210
+ readonly policy: Schema.Literals<readonly ["exclusive", "append"]>;
211
+ readonly ttl: Schema.NullOr<Schema.Int>;
212
+ readonly value: Schema.String;
213
+ }>;
214
+ type DnsRecord = typeof Schema$2.Type;
215
+ type Encoded = typeof Schema$2.Encoded;
216
+ /** Provider state that DomainKit cannot create but must retain for safe reconciliation. */
217
+ declare const Opaque: Schema.Struct<{
218
+ readonly _tag: Schema.Literal<"Opaque">;
219
+ readonly name: Schema.String;
220
+ readonly providerRecordId: Schema.NullOr<Schema.String>;
221
+ readonly providerType: Schema.String;
222
+ }>;
223
+ interface Opaque extends Schema.Schema.Type<typeof Opaque> {}
224
+ /** Any DNS record observed through a provider, including non-portable record types. */
225
+ declare const Observed: Schema.Union<readonly [Schema.TaggedUnion<{
226
+ readonly A: Schema.TaggedStruct<"A", {
227
+ readonly metadata: Schema.Struct<{
228
+ readonly ownership: Schema.String;
229
+ readonly provenance: Schema.String;
230
+ readonly purpose: Schema.String;
231
+ }>;
232
+ readonly name: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
233
+ readonly policy: Schema.Literals<readonly ["exclusive", "append"]>;
234
+ readonly ttl: Schema.NullOr<Schema.Int>;
235
+ readonly address: Schema.String;
236
+ }>;
237
+ readonly AAAA: Schema.TaggedStruct<"AAAA", {
238
+ readonly metadata: Schema.Struct<{
239
+ readonly ownership: Schema.String;
240
+ readonly provenance: Schema.String;
241
+ readonly purpose: Schema.String;
242
+ }>;
243
+ readonly name: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
244
+ readonly policy: Schema.Literals<readonly ["exclusive", "append"]>;
245
+ readonly ttl: Schema.NullOr<Schema.Int>;
246
+ readonly address: Schema.String;
247
+ }>;
248
+ readonly CAA: Schema.TaggedStruct<"CAA", {
249
+ readonly metadata: Schema.Struct<{
250
+ readonly ownership: Schema.String;
251
+ readonly provenance: Schema.String;
252
+ readonly purpose: Schema.String;
253
+ }>;
254
+ readonly name: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
255
+ readonly policy: Schema.Literals<readonly ["exclusive", "append"]>;
256
+ readonly ttl: Schema.NullOr<Schema.Int>;
257
+ readonly flags: Schema.Int;
258
+ readonly tag: Schema.Literals<readonly ["issue", "issuewild", "iodef"]>;
259
+ readonly value: Schema.String;
260
+ }>;
261
+ readonly CNAME: Schema.TaggedStruct<"CNAME", {
262
+ readonly metadata: Schema.Struct<{
263
+ readonly ownership: Schema.String;
264
+ readonly provenance: Schema.String;
265
+ readonly purpose: Schema.String;
266
+ }>;
267
+ readonly name: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
268
+ readonly ttl: Schema.NullOr<Schema.Int>;
269
+ readonly policy: Schema.Literal<"exclusive">;
270
+ readonly target: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
271
+ }>;
272
+ readonly MX: Schema.TaggedStruct<"MX", {
273
+ readonly metadata: Schema.Struct<{
274
+ readonly ownership: Schema.String;
275
+ readonly provenance: Schema.String;
276
+ readonly purpose: Schema.String;
277
+ }>;
278
+ readonly name: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
279
+ readonly policy: Schema.Literals<readonly ["exclusive", "append"]>;
280
+ readonly ttl: Schema.NullOr<Schema.Int>;
281
+ readonly exchange: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
282
+ readonly priority: Schema.Int;
283
+ }>;
284
+ readonly NS: Schema.TaggedStruct<"NS", {
285
+ readonly metadata: Schema.Struct<{
286
+ readonly ownership: Schema.String;
287
+ readonly provenance: Schema.String;
288
+ readonly purpose: Schema.String;
289
+ }>;
290
+ readonly name: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
291
+ readonly policy: Schema.Literals<readonly ["exclusive", "append"]>;
292
+ readonly ttl: Schema.NullOr<Schema.Int>;
293
+ readonly target: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
294
+ }>;
295
+ readonly SRV: Schema.TaggedStruct<"SRV", {
296
+ readonly metadata: Schema.Struct<{
297
+ readonly ownership: Schema.String;
298
+ readonly provenance: Schema.String;
299
+ readonly purpose: Schema.String;
300
+ }>;
301
+ readonly name: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
302
+ readonly policy: Schema.Literals<readonly ["exclusive", "append"]>;
303
+ readonly ttl: Schema.NullOr<Schema.Int>;
304
+ readonly port: Schema.Int;
305
+ readonly priority: Schema.Int;
306
+ readonly target: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
307
+ readonly weight: Schema.Int;
308
+ }>;
309
+ readonly TXT: Schema.TaggedStruct<"TXT", {
310
+ readonly metadata: Schema.Struct<{
311
+ readonly ownership: Schema.String;
312
+ readonly provenance: Schema.String;
313
+ readonly purpose: Schema.String;
314
+ }>;
315
+ readonly name: Schema.decodeTo<Schema.brand<Schema.String, "DomainName">, Schema.String, never, never>;
316
+ readonly policy: Schema.Literals<readonly ["exclusive", "append"]>;
317
+ readonly ttl: Schema.NullOr<Schema.Int>;
318
+ readonly value: Schema.String;
319
+ }>;
320
+ }>, Schema.Struct<{
321
+ readonly _tag: Schema.Literal<"Opaque">;
322
+ readonly name: Schema.String;
323
+ readonly providerRecordId: Schema.NullOr<Schema.String>;
324
+ readonly providerType: Schema.String;
325
+ }>]>;
326
+ type Observed = typeof Observed.Type;
327
+ declare const decode$1: (input: unknown) => Effect.Effect<{
328
+ readonly _tag: "A";
329
+ readonly metadata: {
330
+ readonly ownership: string;
331
+ readonly provenance: string;
332
+ readonly purpose: string;
333
+ };
334
+ readonly name: string & import("effect/Brand").Brand<"DomainName">;
335
+ readonly policy: "append" | "exclusive";
336
+ readonly ttl: number | null;
337
+ readonly address: string;
338
+ } | {
339
+ readonly _tag: "AAAA";
340
+ readonly metadata: {
341
+ readonly ownership: string;
342
+ readonly provenance: string;
343
+ readonly purpose: string;
344
+ };
345
+ readonly name: string & import("effect/Brand").Brand<"DomainName">;
346
+ readonly policy: "append" | "exclusive";
347
+ readonly ttl: number | null;
348
+ readonly address: string;
349
+ } | {
350
+ readonly _tag: "CAA";
351
+ readonly metadata: {
352
+ readonly ownership: string;
353
+ readonly provenance: string;
354
+ readonly purpose: string;
355
+ };
356
+ readonly name: string & import("effect/Brand").Brand<"DomainName">;
357
+ readonly policy: "append" | "exclusive";
358
+ readonly ttl: number | null;
359
+ readonly flags: number;
360
+ readonly tag: "iodef" | "issue" | "issuewild";
361
+ readonly value: string;
362
+ } | {
363
+ readonly _tag: "CNAME";
364
+ readonly metadata: {
365
+ readonly ownership: string;
366
+ readonly provenance: string;
367
+ readonly purpose: string;
368
+ };
369
+ readonly name: string & import("effect/Brand").Brand<"DomainName">;
370
+ readonly ttl: number | null;
371
+ readonly policy: "exclusive";
372
+ readonly target: string & import("effect/Brand").Brand<"DomainName">;
373
+ } | {
374
+ readonly _tag: "MX";
375
+ readonly metadata: {
376
+ readonly ownership: string;
377
+ readonly provenance: string;
378
+ readonly purpose: string;
379
+ };
380
+ readonly name: string & import("effect/Brand").Brand<"DomainName">;
381
+ readonly policy: "append" | "exclusive";
382
+ readonly ttl: number | null;
383
+ readonly exchange: string & import("effect/Brand").Brand<"DomainName">;
384
+ readonly priority: number;
385
+ } | {
386
+ readonly _tag: "NS";
387
+ readonly metadata: {
388
+ readonly ownership: string;
389
+ readonly provenance: string;
390
+ readonly purpose: string;
391
+ };
392
+ readonly name: string & import("effect/Brand").Brand<"DomainName">;
393
+ readonly policy: "append" | "exclusive";
394
+ readonly ttl: number | null;
395
+ readonly target: string & import("effect/Brand").Brand<"DomainName">;
396
+ } | {
397
+ readonly _tag: "SRV";
398
+ readonly metadata: {
399
+ readonly ownership: string;
400
+ readonly provenance: string;
401
+ readonly purpose: string;
402
+ };
403
+ readonly name: string & import("effect/Brand").Brand<"DomainName">;
404
+ readonly policy: "append" | "exclusive";
405
+ readonly ttl: number | null;
406
+ readonly port: number;
407
+ readonly priority: number;
408
+ readonly target: string & import("effect/Brand").Brand<"DomainName">;
409
+ readonly weight: number;
410
+ } | {
411
+ readonly _tag: "TXT";
412
+ readonly metadata: {
413
+ readonly ownership: string;
414
+ readonly provenance: string;
415
+ readonly purpose: string;
416
+ };
417
+ readonly name: string & import("effect/Brand").Brand<"DomainName">;
418
+ readonly policy: "append" | "exclusive";
419
+ readonly ttl: number | null;
420
+ readonly value: string;
421
+ }, Error$1, never>;
422
+ declare function parse(input: unknown): DnsRecord;
423
+ declare function data(record: DnsRecord): Readonly<Record<string, number | string>>;
424
+ declare function equals(left: DnsRecord, right: DnsRecord): boolean;
425
+ declare namespace provider_d_exports {
426
+ export { AsyncInterface, CreateResult, Error, ErrorReason, Interface, Service, layerFromAsync, toAsync };
427
+ }
428
+ interface CreateResult {
429
+ readonly providerRecordId: string | null;
430
+ }
431
+ declare const ErrorReason: Schema.Literals<readonly ["authentication", "authorization", "conflict", "not_found", "rate_limit", "request", "response", "transport", "unsupported"]>;
432
+ type ErrorReason = typeof ErrorReason.Type;
433
+ declare const Error_base: Schema.Class<Error, Schema.TaggedStruct<"ProviderError", {
434
+ readonly cause: Schema.optionalKey<Schema.Unknown>;
435
+ readonly code: Schema.optionalKey<Schema.Union<readonly [Schema.Number, Schema.String]>>;
436
+ readonly message: Schema.String;
437
+ readonly operation: Schema.String;
438
+ readonly providerId: Schema.String;
439
+ readonly reason: Schema.optionalKey<Schema.Literals<readonly ["authentication", "authorization", "conflict", "not_found", "rate_limit", "request", "response", "transport", "unsupported"]>>;
440
+ readonly retryAfterMs: Schema.optionalKey<Schema.Number>;
441
+ readonly status: Schema.optionalKey<Schema.Number>;
442
+ }>, import("effect/Cause").YieldableError>;
443
+ declare class Error extends Error_base {}
444
+ /** The provider capability used by DNS planning, application, and verification. */
445
+ interface Interface {
446
+ readonly id: string;
447
+ readonly createRecord: (zone: DomainName, record: DnsRecord) => Effect.Effect<CreateResult, Error>;
448
+ readonly deleteRecord: (zone: DomainName, providerRecordId: string) => Effect.Effect<void, Error>;
449
+ readonly getRecord: (zone: DomainName, providerRecordId: string) => Effect.Effect<Observed | null, Error>;
450
+ readonly listRecords: (zone: DomainName) => Effect.Effect<ReadonlyArray<Observed>, Error>;
451
+ }
452
+ declare const Service_base: Context.ServiceClass<Service, "@domainkit/DnsProvider", Interface>;
453
+ declare class Service extends Service_base {}
454
+ /** Minimal Promise-shaped provider contract for hosts that do not use Effect directly. */
455
+ interface AsyncInterface {
456
+ readonly id: string;
457
+ readonly createRecord: (zone: DomainName, record: DnsRecord) => Promise<CreateResult>;
458
+ readonly deleteRecord: (zone: DomainName, providerRecordId: string) => Promise<void>;
459
+ readonly getRecord: (zone: DomainName, providerRecordId: string) => Promise<Observed | null>;
460
+ readonly listRecords: (zone: DomainName) => Promise<ReadonlyArray<Observed>>;
461
+ }
462
+ declare const layerFromAsync: (provider: AsyncInterface) => Layer.Layer<Service>;
463
+ declare const toAsync: (provider: Interface) => AsyncInterface;
464
+ declare namespace secret_d_exports {
465
+ export { Value, make };
466
+ }
467
+ /** A deliberately non-serializable credential value. */
468
+ declare class Value {
469
+ #private;
470
+ private constructor();
471
+ static from(value: string): Value;
472
+ expose(): string;
473
+ toJSON(): string;
474
+ toString(): string;
475
+ }
476
+ declare const make: typeof Value.from;
477
+ declare namespace manifest_d_exports {
478
+ export { AsyncOAuthSubjectResolver, IntegrationMethod, Manifest, Method, OAuthClientConfiguration, OAuthMethod, OAuthSubjectResolver, Schema$1 as Schema, TokenValidation, decode };
479
+ }
480
+ declare const Method: Schema.TaggedUnion<{
481
+ readonly integration: Schema.TaggedStruct<"integration", {
482
+ readonly capabilities: Schema.$Array<Schema.Literals<readonly ["dns:read", "dns:write"]>>;
483
+ readonly installUrl: Schema.String;
484
+ readonly tokenEndpoint: Schema.String;
485
+ }>;
486
+ readonly oauth2: Schema.TaggedStruct<"oauth2", {
487
+ readonly authorizationServer: Schema.Struct<{
488
+ readonly authorization_endpoint: Schema.String;
489
+ readonly issuer: Schema.String;
490
+ readonly revocation_endpoint: Schema.optionalKey<Schema.String>;
491
+ readonly token_endpoint: Schema.String;
492
+ }>;
493
+ readonly capabilities: Schema.$Array<Schema.Literals<readonly ["dns:read", "dns:write"]>>;
494
+ readonly clientAuth: Schema.Literals<readonly ["none", "client_secret_basic", "client_secret_post"]>;
495
+ readonly scopes: Schema.$Array<Schema.String>;
496
+ }>;
497
+ readonly token: Schema.TaggedStruct<"token", {
498
+ readonly capabilities: Schema.$Array<Schema.Literals<readonly ["dns:read", "dns:write"]>>;
499
+ readonly instructionsUrl: Schema.String;
500
+ }>;
501
+ }>;
502
+ declare const Schema$1: Schema.Struct<{
503
+ readonly methods: Schema.$Array<Schema.TaggedUnion<{
504
+ readonly integration: Schema.TaggedStruct<"integration", {
505
+ readonly capabilities: Schema.$Array<Schema.Literals<readonly ["dns:read", "dns:write"]>>;
506
+ readonly installUrl: Schema.String;
507
+ readonly tokenEndpoint: Schema.String;
508
+ }>;
509
+ readonly oauth2: Schema.TaggedStruct<"oauth2", {
510
+ readonly authorizationServer: Schema.Struct<{
511
+ readonly authorization_endpoint: Schema.String;
512
+ readonly issuer: Schema.String;
513
+ readonly revocation_endpoint: Schema.optionalKey<Schema.String>;
514
+ readonly token_endpoint: Schema.String;
515
+ }>;
516
+ readonly capabilities: Schema.$Array<Schema.Literals<readonly ["dns:read", "dns:write"]>>;
517
+ readonly clientAuth: Schema.Literals<readonly ["none", "client_secret_basic", "client_secret_post"]>;
518
+ readonly scopes: Schema.$Array<Schema.String>;
519
+ }>;
520
+ readonly token: Schema.TaggedStruct<"token", {
521
+ readonly capabilities: Schema.$Array<Schema.Literals<readonly ["dns:read", "dns:write"]>>;
522
+ readonly instructionsUrl: Schema.String;
523
+ }>;
524
+ }>>;
525
+ readonly providerId: Schema.String;
526
+ }>;
527
+ interface Manifest extends Schema.Schema.Type<typeof Schema$1> {}
528
+ type OAuthMethod = Extract<Manifest["methods"][number], {
529
+ readonly _tag: "oauth2";
530
+ }>;
531
+ /** A provider-owned installation flow that returns a credential from a one-time code. */
532
+ type IntegrationMethod = Extract<Manifest["methods"][number], {
533
+ readonly _tag: "integration";
534
+ }>;
535
+ declare const decode: (input: unknown) => Effect.Effect<{
536
+ readonly methods: readonly ({
537
+ readonly _tag: "integration";
538
+ readonly capabilities: readonly ("dns:read" | "dns:write")[];
539
+ readonly installUrl: string;
540
+ readonly tokenEndpoint: string;
541
+ } | {
542
+ readonly _tag: "oauth2";
543
+ readonly authorizationServer: {
544
+ readonly authorization_endpoint: string;
545
+ readonly issuer: string;
546
+ readonly revocation_endpoint?: string;
547
+ readonly token_endpoint: string;
548
+ };
549
+ readonly capabilities: readonly ("dns:read" | "dns:write")[];
550
+ readonly clientAuth: "client_secret_basic" | "client_secret_post" | "none";
551
+ readonly scopes: readonly string[];
552
+ } | {
553
+ readonly _tag: "token";
554
+ readonly capabilities: readonly ("dns:read" | "dns:write")[];
555
+ readonly instructionsUrl: string;
556
+ })[];
557
+ readonly providerId: string;
558
+ }, Error$1, never>;
559
+ interface OAuthClientConfiguration {
560
+ readonly clientId: string;
561
+ readonly clientSecret?: Value;
562
+ }
563
+ interface TokenValidation {
564
+ readonly accountId: string;
565
+ readonly capabilities: ReadonlyArray<"dns:read" | "dns:write">;
566
+ readonly expiresAt: Date | null;
567
+ readonly scopes: ReadonlyArray<string>;
568
+ }
569
+ interface OAuthSubjectResolver {
570
+ (tokens: oauth.TokenEndpointResponse, accessToken: Value): Effect.Effect<{
571
+ readonly accountId: string;
572
+ readonly expiresAt: Date | null;
573
+ }, Error>;
574
+ }
575
+ interface AsyncOAuthSubjectResolver {
576
+ (tokens: oauth.TokenEndpointResponse, accessToken: Value): Promise<{
577
+ readonly accountId: string;
578
+ readonly expiresAt: Date | null;
579
+ }>;
580
+ }
581
+ //#endregion
582
+ export { Schema$2 as A, domain_name_d_exports as B, DnsRecord as C, Observed as D, Ns as E, dns_record_d_exports as F, Error$1 as H, equals as I, parse as L, Txt as M, Type as N, Opaque as O, data as P, DomainName as R, Cname as S, Mx as T, invalid_input_d_exports as U, parse$1 as V, Service as _, OAuthClientConfiguration as a, Aaaa as b, Schema$1 as c, Value as d, secret_d_exports as f, Interface as g, Error as h, Method as i, Srv as j, RequirementMetadata as k, TokenValidation as l, CreateResult as m, IntegrationMethod as n, OAuthMethod as o, AsyncInterface as p, Manifest as r, OAuthSubjectResolver as s, AsyncOAuthSubjectResolver as t, manifest_d_exports as u, provider_d_exports as v, Encoded as w, Caa as x, A as y, Schema$3 as z };
583
+ //# sourceMappingURL=manifest-CP85ePFn.d.mts.map