@everfur/sdk 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +74 -0
- package/LICENSE +21 -0
- package/README.md +161 -0
- package/animations/package.json +8 -0
- package/chat/package.json +8 -0
- package/client/package.json +8 -0
- package/core/package.json +8 -0
- package/dist/CameraPort-Cv31Pz7g.d.cts +29 -0
- package/dist/CameraPort-Cv31Pz7g.d.ts +29 -0
- package/dist/ChatController-CKdBvPj2.d.ts +146 -0
- package/dist/ChatController-CpUMvvZf.d.cts +146 -0
- package/dist/EverfurResult-D92-uL82.d.cts +240 -0
- package/dist/EverfurResult-D92-uL82.d.ts +240 -0
- package/dist/FilePort-BabWrv7I.d.cts +22 -0
- package/dist/FilePort-BabWrv7I.d.ts +22 -0
- package/dist/PhotoController-BItt5M7u.d.cts +43 -0
- package/dist/PhotoController-D8zMTdcW.d.ts +43 -0
- package/dist/TelemetryPort-BDNr00hu.d.cts +12 -0
- package/dist/TelemetryPort-BDNr00hu.d.ts +12 -0
- package/dist/animations/index.cjs +1997 -0
- package/dist/animations/index.d.cts +517 -0
- package/dist/animations/index.d.ts +517 -0
- package/dist/animations/index.js +1972 -0
- package/dist/cacheEpoch-DknKn3S0.d.cts +36 -0
- package/dist/cacheEpoch-DknKn3S0.d.ts +36 -0
- package/dist/chat/index.cjs +1170 -0
- package/dist/chat/index.d.cts +59 -0
- package/dist/chat/index.d.ts +59 -0
- package/dist/chat/index.js +1167 -0
- package/dist/client/index.cjs +2317 -0
- package/dist/client/index.d.cts +65 -0
- package/dist/client/index.d.ts +65 -0
- package/dist/client/index.js +2217 -0
- package/dist/config-BSjBdxrZ.d.cts +501 -0
- package/dist/config-CiJ0PVBB.d.ts +501 -0
- package/dist/core/index.cjs +3175 -0
- package/dist/core/index.d.cts +70 -0
- package/dist/core/index.d.ts +70 -0
- package/dist/core/index.js +3163 -0
- package/dist/identity-Brl-lDd6.d.cts +91 -0
- package/dist/identity-DK9zORrG.d.ts +91 -0
- package/dist/ids-CJ1S6adf.d.cts +46 -0
- package/dist/ids-CJ1S6adf.d.ts +46 -0
- package/dist/index.cjs +4488 -0
- package/dist/index.d.cts +156 -0
- package/dist/index.d.ts +156 -0
- package/dist/index.js +4464 -0
- package/dist/petsRepository-BEGb97M9.d.cts +326 -0
- package/dist/petsRepository-Bu18r2kK.d.ts +326 -0
- package/dist/photo/index.cjs +2189 -0
- package/dist/photo/index.d.cts +43 -0
- package/dist/photo/index.d.ts +43 -0
- package/dist/photo/index.js +2186 -0
- package/dist/projection-CeIUsbSk.d.cts +8 -0
- package/dist/projection-CeIUsbSk.d.ts +8 -0
- package/dist/records/index.cjs +2840 -0
- package/dist/records/index.d.cts +224 -0
- package/dist/records/index.d.ts +224 -0
- package/dist/records/index.js +2834 -0
- package/dist/requestFunnel-DuUH-kAe.d.cts +28 -0
- package/dist/requestFunnel-dio5OmR9.d.ts +28 -0
- package/dist/resolve-Dq_4_agU.d.cts +86 -0
- package/dist/resolve-Dq_4_agU.d.ts +86 -0
- package/dist/runtime-BgQnA594.d.cts +349 -0
- package/dist/runtime-CBA-LvdM.d.ts +349 -0
- package/dist/server/index.cjs +533 -0
- package/dist/server/index.d.cts +48 -0
- package/dist/server/index.d.ts +48 -0
- package/dist/server/index.js +530 -0
- package/dist/testing/index.cjs +825 -0
- package/dist/testing/index.d.cts +113 -0
- package/dist/testing/index.d.ts +113 -0
- package/dist/testing/index.js +822 -0
- package/dist/testing/rn/index.cjs +449 -0
- package/dist/testing/rn/index.d.cts +49 -0
- package/dist/testing/rn/index.d.ts +49 -0
- package/dist/testing/rn/index.js +444 -0
- package/dist/video/index.cjs +1941 -0
- package/dist/video/index.d.cts +66 -0
- package/dist/video/index.d.ts +66 -0
- package/dist/video/index.js +1938 -0
- package/package.json +311 -0
- package/photo/package.json +8 -0
- package/records/package.json +8 -0
- package/server/device-blocked.cjs +15 -0
- package/server/package.json +9 -0
- package/testing/package.json +8 -0
- package/testing/rn/package.json +8 -0
- package/video/package.json +8 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { a as EverfurErrorCode } from '../EverfurResult-D92-uL82.cjs';
|
|
2
|
+
export { A as AUTO_RETRYABLE_CODES, B as BACKOFF_BASE_MS, b as BACKOFF_CAP_MS, c as EVERFUR_ERROR_CATEGORIES, d as EVERFUR_ERROR_CODES, e as EverfurConfigError, f as EverfurError, g as EverfurErrorCategory, E as EverfurResult, h as EverfurThrownError, M as MAX_RETRY_ATTEMPTS, i as MakeEverfurErrorOptions, R as RETRYABLE_CONTRACT_CODES, j as backoffDelayMs, k as canRecreateOnNotFound, l as categoryFor, m as err, n as fromHttpStatus, o as fromWire, p as isAutoRetryable, q as isErr, r as isOk, s as isRetryableCode, t as makeEverfurError, u as ok, v as shouldRetry, w as unwrap, x as userFacingError } from '../EverfurResult-D92-uL82.cjs';
|
|
3
|
+
export { A as AcceptedFrame, b as AnalysisCompleteFrame, c as AnalysisStartedFrame, B as ByteSource, C as ClientConfigFailure, d as ClientConfigFailureReason, e as ClientConfigOutcome, D as DEFAULT_CONTRACT_VERSION, f as DeltaFrame, g as DoneFrame, h as EMPTY_FRAME_ARRAYS, i as ENV_API_BASE_URL, j as ErrorFrame, k as EventSourceFactory, l as EventSourceInit, m as EventSourceLike, n as EventSourceMessage, o as EverfurConfig, E as EverfurRequest, p as EverfurRequestBase, q as FetchInit, a as FetchLike, r as FetchResponseLike, F as Frame, s as FrameBase, t as FrameKind, H as HeartbeatFrame, u as HttpMethod, M as MultipartBody, R as RawResponse, v as ReadableStreamLike, w as ResolvedClientConfig, S as SDK_PLATFORM, x as SDK_VERSION, y as ServerRequestIdSource, z as TransportDeps, T as TransportPort, U as UnknownFrame, G as UrgencyLevel, I as acceptedFrame, J as analysisCompleteFrame, K as analysisStartedFrame, L as assertNever, N as bufferedTextByteSource, O as buildBaseHeaders, P as checkPublishableKey, Q as createHttpTransport, V as deltaFrame, W as doneFrame, X as errorFrame, Y as errorFromResponse, Z as eventSourceByteSource, _ as eventSourceRequestId, $ as fetchByteSource, a0 as getGlobalFetch, a1 as heartbeatFrame, a2 as networkError, a3 as parseSse, a4 as requestIdOf, a5 as requestJson, a6 as requestRaw, a7 as resolveApiBaseUrl, a8 as resolveClientConfig, a9 as tryResolveApiBaseUrl, aa as tryResolveClientConfig, ab as unknownFrame } from '../config-BSjBdxrZ.cjs';
|
|
4
|
+
export { B as Brand, C as ClientId, a as ConversationId, D as DocumentId, J as JobId, P as PetRef, R as RecordsRequestId, b as ResponseId, U as UserRef, _ as __brand, c as conversationId, p as petRef, u as unsafeClientId, d as unsafeConversationId, e as unsafeDocumentId, f as unsafeJobId, g as unsafePetRef, h as unsafeRecordsRequestId, i as unsafeResponseId, j as unsafeUserRef, k as userRef } from '../ids-CJ1S6adf.cjs';
|
|
5
|
+
export { A as AuthContext, D as DeviceAuth, I as IdentityProvider, T as TokenProvider, a as authHeaders, b as authedSend, c as createIdentityProvider, n as newSessionId, w as withAuthHeaders } from '../identity-Brl-lDd6.cjs';
|
|
6
|
+
export { C as CapabilityDecision, a as CapabilityDisabled, b as CapabilityName, D as DecideOptions, c as DisabledLevel, E as EntitlementDecision, L as LevelGrant, R as ResolvedEntitlements, d as decideCapability, e as deniedDecisionsFor, r as requires, f as resolveEntitlements } from '../resolve-Dq_4_agU.cjs';
|
|
7
|
+
export { C as ClientBranding, E as ENTITLEMENTS_PATH, a as EVERFUR_DARK, b as EVERFUR_LIGHT, c as EntitlementResolution, d as EverfurColorTokens, e as EverfurFontWeight, f as EverfurLetterSpacingTokens, g as EverfurLineHeightTokens, h as EverfurMotionDurationTokens, i as EverfurMotionTokens, j as EverfurRadiusTokens, k as EverfurSpaceTokens, l as EverfurSpringToken, m as EverfurTextColorTokens, n as EverfurTheme, o as EverfurThemeMeta, p as EverfurTypeSizeTokens, q as EverfurTypeTokens, r as EverfurWeightTokens, F as FetchEntitlementsArgs, P as PET_AGE_YEARS_MAX, s as PET_BREED_MAX, t as PET_NAME_MAX, u as PET_SPECIES_MAX, v as PET_WEIGHT_KG_MAX, w as PetProfileInput, x as PetsRepository, R as RegisteredPet, y as ResolveThemeInput, z as createPetsRepository, A as deepFreeze, B as fetchEntitlements, D as hardenHttpsUrl, G as isEmptyBranding, H as parseClientBranding, I as parseColor, J as readableOn, K as resolveTheme, L as withServerBranding } from '../petsRepository-BEGb97M9.cjs';
|
|
8
|
+
import '../requestFunnel-DuUH-kAe.cjs';
|
|
9
|
+
|
|
10
|
+
/** Which wire shape a code arrives in. The two envelopes are different objects, not casings. */
|
|
11
|
+
type ContractErrorEnvelope = "http_envelope" | "sse_frame";
|
|
12
|
+
/** Every wire error code the contract declares, spelled EXACTLY as the server sends it. */
|
|
13
|
+
type ContractWireErrorCode = "AccessDeniedException" | "AuthorizationException" | "ConflictException" | "DAILY_QUOTA_EXCEEDED" | "IDEMPOTENCY_KEY_IN_FLIGHT" | "IDEMPOTENCY_KEY_REUSED_DIFFERENT_REQUEST" | "InternalFailureException" | "NotImplementedException" | "PaymentRequiredException" | "ResourceNotFoundException" | "ServiceUnavailableException" | "TIER_UPGRADE_REQUIRED" | "ThrottlingException" | "ValidationException" | "accessDenied" | "authExpired" | "internal_error" | "invalidRequest" | "not_found" | "session_required" | "timeout" | "unavailable";
|
|
14
|
+
|
|
15
|
+
/** One registry row, reduced to the facts the SDK needs at runtime. */
|
|
16
|
+
interface ContractErrorRow {
|
|
17
|
+
/**
|
|
18
|
+
* The wire `code` string EXACTLY as the server sends it. Typed as `string`, not as the generated
|
|
19
|
+
* `ContractWireErrorCode` union: a row is looked up from a value that arrived off the network, and
|
|
20
|
+
* narrowing this field would push that unavoidable widening onto every caller.
|
|
21
|
+
*/
|
|
22
|
+
readonly wireCode: string;
|
|
23
|
+
readonly envelope: ContractErrorEnvelope;
|
|
24
|
+
/** The registry's own retryable claim. Documentation of server semantics, not the SDK retry policy. */
|
|
25
|
+
readonly retryable: boolean;
|
|
26
|
+
/** The normalized taxonomy member this code folds to. */
|
|
27
|
+
readonly normalized: EverfurErrorCode;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Every code in the contract, joined to the member it folds to. Frozen.
|
|
31
|
+
*
|
|
32
|
+
* The wire code, its envelope and the server's own `retryable` claim are GENERATED (see the note above
|
|
33
|
+
* `NORMALIZED_FOLD`); only the fold is hand-written, and `Record<ContractWireErrorCode, ...>` makes it
|
|
34
|
+
* exhaustive, so a code added to the contract fails `tsc` here rather than silently becoming `unknown`.
|
|
35
|
+
*/
|
|
36
|
+
declare const CONTRACT_ERROR_ROWS: readonly ContractErrorRow[];
|
|
37
|
+
/** The registry row for a raw wire code, or undefined when the code is not in the contract. */
|
|
38
|
+
declare function contractErrorFor(wireCode: string | null | undefined): ContractErrorRow | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* The registry's `doc_url` for a row. SITE-RELATIVE by construction: the contract records that there is
|
|
41
|
+
* no confirmed public documentation host to prefix it with, so the SDK publishes the path and never
|
|
42
|
+
* fabricates an origin. The SSE frames are namespaced (`#sse-timeout`) because a frame code and an HTTP
|
|
43
|
+
* code can share a name; `tests/contract/errorRegistry.test.ts` asserts this derivation reproduces the
|
|
44
|
+
* registry's own `doc_url` for all 22 rows, so the pattern cannot drift unnoticed.
|
|
45
|
+
*/
|
|
46
|
+
declare function contractDocUrl(entry: ContractErrorRow): string;
|
|
47
|
+
/**
|
|
48
|
+
* Is the `/errors` reference page actually published?
|
|
49
|
+
*
|
|
50
|
+
* Measured 2026-08-23: it is NOT. `everfur-frontend` has no `errors` route, so every `docUrl` the SDK
|
|
51
|
+
* emitted was a dangling pointer — a partner received the string `/errors#RATE_LIMITED`, with no origin to
|
|
52
|
+
* resolve it against and no page behind it if they guessed one. Handing out a link that cannot be opened is
|
|
53
|
+
* worse than handing out none: it reads as documentation that exists.
|
|
54
|
+
*
|
|
55
|
+
* `EverfurError.docUrl` is OPTIONAL and its own contract already says an unregistered code "simply yields
|
|
56
|
+
* no docUrl", so omitting it is contract-compatible rather than a breaking change.
|
|
57
|
+
*
|
|
58
|
+
* TO PUBLISH: add the route, set this to the origin (e.g. `'https://everfur.com'`), and `contractDocUrl`
|
|
59
|
+
* becomes an absolute URL. That is the whole change.
|
|
60
|
+
*/
|
|
61
|
+
declare const DOC_SITE_ORIGIN: string | null;
|
|
62
|
+
/** The emitted `docUrl`, or null while no page exists to point at. */
|
|
63
|
+
declare function publishedDocUrl(entry: ContractErrorRow): string | null;
|
|
64
|
+
|
|
65
|
+
export { CONTRACT_ERROR_ROWS, type ContractErrorEnvelope, type ContractErrorRow, type ContractWireErrorCode, DOC_SITE_ORIGIN, EverfurErrorCode, contractDocUrl, contractErrorFor, publishedDocUrl };
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { a as EverfurErrorCode } from '../EverfurResult-D92-uL82.js';
|
|
2
|
+
export { A as AUTO_RETRYABLE_CODES, B as BACKOFF_BASE_MS, b as BACKOFF_CAP_MS, c as EVERFUR_ERROR_CATEGORIES, d as EVERFUR_ERROR_CODES, e as EverfurConfigError, f as EverfurError, g as EverfurErrorCategory, E as EverfurResult, h as EverfurThrownError, M as MAX_RETRY_ATTEMPTS, i as MakeEverfurErrorOptions, R as RETRYABLE_CONTRACT_CODES, j as backoffDelayMs, k as canRecreateOnNotFound, l as categoryFor, m as err, n as fromHttpStatus, o as fromWire, p as isAutoRetryable, q as isErr, r as isOk, s as isRetryableCode, t as makeEverfurError, u as ok, v as shouldRetry, w as unwrap, x as userFacingError } from '../EverfurResult-D92-uL82.js';
|
|
3
|
+
export { A as AcceptedFrame, b as AnalysisCompleteFrame, c as AnalysisStartedFrame, B as ByteSource, C as ClientConfigFailure, d as ClientConfigFailureReason, e as ClientConfigOutcome, D as DEFAULT_CONTRACT_VERSION, f as DeltaFrame, g as DoneFrame, h as EMPTY_FRAME_ARRAYS, i as ENV_API_BASE_URL, j as ErrorFrame, k as EventSourceFactory, l as EventSourceInit, m as EventSourceLike, n as EventSourceMessage, o as EverfurConfig, E as EverfurRequest, p as EverfurRequestBase, q as FetchInit, a as FetchLike, r as FetchResponseLike, F as Frame, s as FrameBase, t as FrameKind, H as HeartbeatFrame, u as HttpMethod, M as MultipartBody, R as RawResponse, v as ReadableStreamLike, w as ResolvedClientConfig, S as SDK_PLATFORM, x as SDK_VERSION, y as ServerRequestIdSource, z as TransportDeps, T as TransportPort, U as UnknownFrame, G as UrgencyLevel, I as acceptedFrame, J as analysisCompleteFrame, K as analysisStartedFrame, L as assertNever, N as bufferedTextByteSource, O as buildBaseHeaders, P as checkPublishableKey, Q as createHttpTransport, V as deltaFrame, W as doneFrame, X as errorFrame, Y as errorFromResponse, Z as eventSourceByteSource, _ as eventSourceRequestId, $ as fetchByteSource, a0 as getGlobalFetch, a1 as heartbeatFrame, a2 as networkError, a3 as parseSse, a4 as requestIdOf, a5 as requestJson, a6 as requestRaw, a7 as resolveApiBaseUrl, a8 as resolveClientConfig, a9 as tryResolveApiBaseUrl, aa as tryResolveClientConfig, ab as unknownFrame } from '../config-CiJ0PVBB.js';
|
|
4
|
+
export { B as Brand, C as ClientId, a as ConversationId, D as DocumentId, J as JobId, P as PetRef, R as RecordsRequestId, b as ResponseId, U as UserRef, _ as __brand, c as conversationId, p as petRef, u as unsafeClientId, d as unsafeConversationId, e as unsafeDocumentId, f as unsafeJobId, g as unsafePetRef, h as unsafeRecordsRequestId, i as unsafeResponseId, j as unsafeUserRef, k as userRef } from '../ids-CJ1S6adf.js';
|
|
5
|
+
export { A as AuthContext, D as DeviceAuth, I as IdentityProvider, T as TokenProvider, a as authHeaders, b as authedSend, c as createIdentityProvider, n as newSessionId, w as withAuthHeaders } from '../identity-DK9zORrG.js';
|
|
6
|
+
export { C as CapabilityDecision, a as CapabilityDisabled, b as CapabilityName, D as DecideOptions, c as DisabledLevel, E as EntitlementDecision, L as LevelGrant, R as ResolvedEntitlements, d as decideCapability, e as deniedDecisionsFor, r as requires, f as resolveEntitlements } from '../resolve-Dq_4_agU.js';
|
|
7
|
+
export { C as ClientBranding, E as ENTITLEMENTS_PATH, a as EVERFUR_DARK, b as EVERFUR_LIGHT, c as EntitlementResolution, d as EverfurColorTokens, e as EverfurFontWeight, f as EverfurLetterSpacingTokens, g as EverfurLineHeightTokens, h as EverfurMotionDurationTokens, i as EverfurMotionTokens, j as EverfurRadiusTokens, k as EverfurSpaceTokens, l as EverfurSpringToken, m as EverfurTextColorTokens, n as EverfurTheme, o as EverfurThemeMeta, p as EverfurTypeSizeTokens, q as EverfurTypeTokens, r as EverfurWeightTokens, F as FetchEntitlementsArgs, P as PET_AGE_YEARS_MAX, s as PET_BREED_MAX, t as PET_NAME_MAX, u as PET_SPECIES_MAX, v as PET_WEIGHT_KG_MAX, w as PetProfileInput, x as PetsRepository, R as RegisteredPet, y as ResolveThemeInput, z as createPetsRepository, A as deepFreeze, B as fetchEntitlements, D as hardenHttpsUrl, G as isEmptyBranding, H as parseClientBranding, I as parseColor, J as readableOn, K as resolveTheme, L as withServerBranding } from '../petsRepository-Bu18r2kK.js';
|
|
8
|
+
import '../requestFunnel-dio5OmR9.js';
|
|
9
|
+
|
|
10
|
+
/** Which wire shape a code arrives in. The two envelopes are different objects, not casings. */
|
|
11
|
+
type ContractErrorEnvelope = "http_envelope" | "sse_frame";
|
|
12
|
+
/** Every wire error code the contract declares, spelled EXACTLY as the server sends it. */
|
|
13
|
+
type ContractWireErrorCode = "AccessDeniedException" | "AuthorizationException" | "ConflictException" | "DAILY_QUOTA_EXCEEDED" | "IDEMPOTENCY_KEY_IN_FLIGHT" | "IDEMPOTENCY_KEY_REUSED_DIFFERENT_REQUEST" | "InternalFailureException" | "NotImplementedException" | "PaymentRequiredException" | "ResourceNotFoundException" | "ServiceUnavailableException" | "TIER_UPGRADE_REQUIRED" | "ThrottlingException" | "ValidationException" | "accessDenied" | "authExpired" | "internal_error" | "invalidRequest" | "not_found" | "session_required" | "timeout" | "unavailable";
|
|
14
|
+
|
|
15
|
+
/** One registry row, reduced to the facts the SDK needs at runtime. */
|
|
16
|
+
interface ContractErrorRow {
|
|
17
|
+
/**
|
|
18
|
+
* The wire `code` string EXACTLY as the server sends it. Typed as `string`, not as the generated
|
|
19
|
+
* `ContractWireErrorCode` union: a row is looked up from a value that arrived off the network, and
|
|
20
|
+
* narrowing this field would push that unavoidable widening onto every caller.
|
|
21
|
+
*/
|
|
22
|
+
readonly wireCode: string;
|
|
23
|
+
readonly envelope: ContractErrorEnvelope;
|
|
24
|
+
/** The registry's own retryable claim. Documentation of server semantics, not the SDK retry policy. */
|
|
25
|
+
readonly retryable: boolean;
|
|
26
|
+
/** The normalized taxonomy member this code folds to. */
|
|
27
|
+
readonly normalized: EverfurErrorCode;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Every code in the contract, joined to the member it folds to. Frozen.
|
|
31
|
+
*
|
|
32
|
+
* The wire code, its envelope and the server's own `retryable` claim are GENERATED (see the note above
|
|
33
|
+
* `NORMALIZED_FOLD`); only the fold is hand-written, and `Record<ContractWireErrorCode, ...>` makes it
|
|
34
|
+
* exhaustive, so a code added to the contract fails `tsc` here rather than silently becoming `unknown`.
|
|
35
|
+
*/
|
|
36
|
+
declare const CONTRACT_ERROR_ROWS: readonly ContractErrorRow[];
|
|
37
|
+
/** The registry row for a raw wire code, or undefined when the code is not in the contract. */
|
|
38
|
+
declare function contractErrorFor(wireCode: string | null | undefined): ContractErrorRow | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* The registry's `doc_url` for a row. SITE-RELATIVE by construction: the contract records that there is
|
|
41
|
+
* no confirmed public documentation host to prefix it with, so the SDK publishes the path and never
|
|
42
|
+
* fabricates an origin. The SSE frames are namespaced (`#sse-timeout`) because a frame code and an HTTP
|
|
43
|
+
* code can share a name; `tests/contract/errorRegistry.test.ts` asserts this derivation reproduces the
|
|
44
|
+
* registry's own `doc_url` for all 22 rows, so the pattern cannot drift unnoticed.
|
|
45
|
+
*/
|
|
46
|
+
declare function contractDocUrl(entry: ContractErrorRow): string;
|
|
47
|
+
/**
|
|
48
|
+
* Is the `/errors` reference page actually published?
|
|
49
|
+
*
|
|
50
|
+
* Measured 2026-08-23: it is NOT. `everfur-frontend` has no `errors` route, so every `docUrl` the SDK
|
|
51
|
+
* emitted was a dangling pointer — a partner received the string `/errors#RATE_LIMITED`, with no origin to
|
|
52
|
+
* resolve it against and no page behind it if they guessed one. Handing out a link that cannot be opened is
|
|
53
|
+
* worse than handing out none: it reads as documentation that exists.
|
|
54
|
+
*
|
|
55
|
+
* `EverfurError.docUrl` is OPTIONAL and its own contract already says an unregistered code "simply yields
|
|
56
|
+
* no docUrl", so omitting it is contract-compatible rather than a breaking change.
|
|
57
|
+
*
|
|
58
|
+
* TO PUBLISH: add the route, set this to the origin (e.g. `'https://everfur.com'`), and `contractDocUrl`
|
|
59
|
+
* becomes an absolute URL. That is the whole change.
|
|
60
|
+
*/
|
|
61
|
+
declare const DOC_SITE_ORIGIN: string | null;
|
|
62
|
+
/** The emitted `docUrl`, or null while no page exists to point at. */
|
|
63
|
+
declare function publishedDocUrl(entry: ContractErrorRow): string | null;
|
|
64
|
+
|
|
65
|
+
export { CONTRACT_ERROR_ROWS, type ContractErrorEnvelope, type ContractErrorRow, type ContractWireErrorCode, DOC_SITE_ORIGIN, EverfurErrorCode, contractDocUrl, contractErrorFor, publishedDocUrl };
|