@warmhub/sdk-ts 0.132.0 → 0.133.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/dist/index.d.ts CHANGED
@@ -1795,6 +1795,8 @@ type GrantCreateInput = {
1795
1795
  exclude?: Array<string>;
1796
1796
  };
1797
1797
  shapes?: Array<string>;
1798
+ shapesAll?: Array<string>;
1799
+ shapesNot?: Array<string>;
1798
1800
  shapeless?: boolean;
1799
1801
  fields?: Array<string>;
1800
1802
  } | {
@@ -1829,6 +1831,8 @@ type GrantListResult$1 = {
1829
1831
  exclude?: Array<string>;
1830
1832
  };
1831
1833
  shapes?: Array<string>;
1834
+ shapesAll?: Array<string>;
1835
+ shapesNot?: Array<string>;
1832
1836
  shapeless?: boolean;
1833
1837
  fields?: Array<string>;
1834
1838
  } | null;
@@ -1864,6 +1868,8 @@ type GrantView = {
1864
1868
  exclude?: Array<string>;
1865
1869
  };
1866
1870
  shapes?: Array<string>;
1871
+ shapesAll?: Array<string>;
1872
+ shapesNot?: Array<string>;
1867
1873
  shapeless?: boolean;
1868
1874
  fields?: Array<string>;
1869
1875
  } | null;
@@ -5738,6 +5744,12 @@ type TokenCreateInput = {
5738
5744
  resource?: string;
5739
5745
  permissions: Array<string>;
5740
5746
  allowedMatches?: Array<string>;
5747
+ allowedShapes?: {
5748
+ shapes?: Array<string>;
5749
+ shapesAll?: Array<string>;
5750
+ shapesNot?: Array<string>;
5751
+ shapeless?: boolean;
5752
+ };
5741
5753
  }>;
5742
5754
  structured?: boolean;
5743
5755
  description?: string;
@@ -5751,6 +5763,12 @@ type TokenCreateResult = {
5751
5763
  resource?: string;
5752
5764
  permissions: Array<string>;
5753
5765
  allowedMatches?: Array<string>;
5766
+ allowedShapes?: {
5767
+ shapes?: Array<string>;
5768
+ shapesAll?: Array<string>;
5769
+ shapesNot?: Array<string>;
5770
+ shapeless?: boolean;
5771
+ };
5754
5772
  }>;
5755
5773
  warnings?: Array<string>;
5756
5774
  expiresAt: number;
@@ -5763,6 +5781,12 @@ type WireScopeEntry$1 = {
5763
5781
  resource?: string;
5764
5782
  permissions: Array<string>;
5765
5783
  allowedMatches?: Array<string>;
5784
+ allowedShapes?: {
5785
+ shapes?: Array<string>;
5786
+ shapesAll?: Array<string>;
5787
+ shapesNot?: Array<string>;
5788
+ shapeless?: boolean;
5789
+ };
5766
5790
  };
5767
5791
  type ViewEvaluateInput = {
5768
5792
  orgName: string;
@@ -8504,12 +8528,20 @@ type CurrentUserInfo = {
8504
8528
  knockUserToken: string | null;
8505
8529
  personalOrgName: string | null;
8506
8530
  } | null;
8531
+ /** @internal Shape clause of a scope entry, rendered as Shape names. */
8532
+ type ScopeAllowedShapes = {
8533
+ shapes?: string[];
8534
+ shapesAll?: string[];
8535
+ shapesNot?: string[];
8536
+ shapeless?: boolean;
8537
+ };
8507
8538
  /** @internal */
8508
8539
  type WhoamiScopeEntry = {
8509
8540
  resource?: string;
8510
8541
  redactedResource?: true;
8511
8542
  permissions: string[];
8512
8543
  allowedMatches?: string[];
8544
+ allowedShapes?: ScopeAllowedShapes;
8513
8545
  };
8514
8546
  /** @internal */
8515
8547
  type WhoamiInfo = {
@@ -8953,6 +8985,7 @@ type TokenInfo = {
8953
8985
  resource?: string;
8954
8986
  permissions: Array<string>;
8955
8987
  allowedMatches?: Array<string>;
8988
+ allowedShapes?: ScopeAllowedShapes;
8956
8989
  redactedResource?: true;
8957
8990
  }>;
8958
8991
  expiresAt: number | null;
@@ -11356,4 +11389,4 @@ declare class WarmHubClient {
11356
11389
  private watchRepoQuery;
11357
11390
  }
11358
11391
 
11359
- export { type AboutOptions, type AboutResult, type AccessResolveInput, type AccessResolveResult, type AccessTokenProvider, type ActionAttemptInfo, type ActionDeliveryTarget, type ActionLeaseAcquire, type ActionLeaseOp, type ActionListNotificationsOptions, type ActionListRunsOptions, type ActionLiveFeed, type ActionLiveFeedItem, type ActionLiveFeedOptions, type ActionNotificationInfo, type ActionRunInfo, type ActionRunStatsInfo, type ActionRunStatsOptions, type AddOp, type AddOperation, AllStreamOperationsFailedError, type Assertion, CLI_INSTALL_REPO_HEADER, CLI_SIGNATURE_HEADER, CLI_TIMESTAMP_HEADER, CONTENT_FIELD_LIMIT_ERROR, type CliCallSecrets, CliCallVerificationError, type CliCallVerificationFailureReason, type CollectionAddOp, type CollectionAddType, type CollectionContainsOptions, type CollectionContainsResult, type CollectionCreateOptions, type CollectionDiffOptions, type CollectionDiffResult, type CollectionMember, type CollectionMembersOptions, type CollectionMembersPage, type CollectionMembershipRole, type CollectionMutationResult, type CollectionQuerySourceOptions, type CollectionReadDataMode, type CollectionReadSummary, type CollectionReviseOptions, type CollectionStatsOptions, type CollectionStatsResult, type CollectionTag, type CollectionType, type CollectionWriteType, type CommitApplyCompatibilityResult, type CommitDiagnostic, type CommitRealOperationResult, type CommitValidateInput, type CommitValidateOptions, type CommitValidateResult, type ComponentHistory, type ComponentHistoryOptions, type ComponentInfo, type ComponentInstallOptions, type ComponentInstallResult, type ComponentList, type ComponentListOptions, type ComponentUninstallOptions, type ComponentUninstallResult, type ComponentView, type CoreErrorKind, type CountOptions, type CountResult, type CredentialAuditEntry, type CredentialDeleteResult, type CredentialGrantResult, type CredentialInfo, type CredentialKeyMutationResult, type CredentialRevokeResult, type CredentialUngrantResult, type CurrentUserInfo, DEFAULT_API_URL, DEFAULT_STREAM_CHUNK_SIZE, type DeclaredFieldEntry, type ErrorKind, type FieldIndexCarryingMarker, type FieldIndexCarryingShape, type FieldIndexConsistency, type FieldIndexPinResult, type FilterOptions, type FilterResult, type FunctionLogMode, type GlobalSearchOptions, type GlobalSearchResult, type GlobalSearchResultItem, type Grant, type GrantCreateOptions, type GrantListOptions, type GrantListResult, type GrantRecipientSelector, type GrantRevokeResult, type HeadResult, type HistoryResult, type HistoryVersion, type HomepageFeaturedListsResult, type IndexedFieldEntry, type IndexedFieldsReport, type LiveHandle, type LiveRepoEvent, type LiveSubscriptionLogOptions, type LiveThingHeadOptions, type LiveThingHistoryOptions, type LiveWatchResult, MAX_COMMIT_VALIDATION_ENCODED_BYTES, MAX_COMMIT_VALIDATION_OPERATIONS, MAX_CONTENT_FIELD_BYTES, MAX_STREAM_APPEND_OPERATION_COUNT, MAX_WREFS_PER_THING_VERSION, ORG_AUTH_SCOPES, type Operation, OperationBuilder, type OperationBuilderAddInput, type OperationBuilderClient, type OperationBuilderOp, type OperationBuilderOptions, type OperationEventReceipt, type OperationEventReceiptV1, type OperationSource, type OperationSubmitResult, type OrgAccessResult, type OrgAuthScope, type OrgInfo, type OrgList, type OrgListMembersOptions, type OrgListOptions, type OrgMemberInfo, type OrgMemberList, type OrgRef, type OrgRole, type Page, type PageRequest, PartialStreamSubmissionError, type PingResult, REPO_AUTH_SCOPES, type ReaffirmOperation, type RefLink, type RefsOptions, type RefsResult, type RenameOperation, type RenameOptions, type RenameResult, type RepoAccessResult, type RepoAuthScope, type RepoConfigureStatsView, type RepoDescribeResult, type RepoExploreBrowseOptions, type RepoExploreItem, type RepoExploreOptions, type RepoExploreResult, type RepoInfo, type RepoLicense, type RepoList, type RepoListForCallerOptions, type RepoListOptions, type RepoListPageOptions, type RepoListPageResult, type RepoLocator, type RepoRecentInfo, type RepoRef, type RepoShapeInstanceCountsView, type RepoSort, type RepoStatsBatchResult, type RepoStatsView, type RepoWithStatsInfo, type RepositoryCheckpointAccess, type RepositoryCheckpointStatus, RepositoryExportError, type RepositoryExportErrorReason, type RepositoryExportExpectation, type RepositoryExportOptions, type RepositoryExportPreparation, type RepositoryExportPrepareOptions, type RepositoryExportRestoreOptions, type RepositoryExportRowMap, type RepositoryExportRows, type RepositoryExportSegmentOptions, RepositoryExportSession, type RequestEvent, type ResolveWrefResult, type RetractOp, type RetractOperation, type RetryPolicyOptions, type ReviseOp, type ReviseOperation, SDK_VERSION, type SearchOptions, type SearchResult, type Shape, type ShapeChange, type ShapeCreateOptions, type ShapeFields, type ShapeGetOptions, type ShapeHistory, type ShapeHistoryOptions, type ShapeList, type ShapeListOptions, type ShapeRef, type ShapeRemove, type ShapeRemoveOptions, type ShapeReviseOptions, type ShapeValidatorResult, type StreamAppendInput, type StreamAppendResult, type StreamContinuationState, StreamSubmissionAggregator, type StreamingSubmissionHandle, type StreamingSubmissionOptions, StreamingSubmissionOutcomeUnknownError, type StreamingSubmissionRetryIdentity, type StreamingSubmissionRow, type SubscriptionBindCredentialsResult, type SubscriptionCompatCreateInput, type SubscriptionCompatUpdateInput, type SubscriptionInfo, type SubscriptionList, type SubscriptionUnbindCredentialsResult, type SynthesizedRepoContent, type ThingChanges, type ThingDetail, type ThingGet, type ThingGetManyResult, type ThingGetOptions, type ThingGetWithLease, type ThingGraphOptions, type ThingGraphResult, type ThingGraphValue, type ThingHead, type ThingHeadChangesOptions, type ThingHeadOptions, type ThingHeadRequest, type ThingHeadVersionsResult, type ThingHistory, type ThingHistoryOptions, type ThingItem, type ThingMetadata, type ThingQueryChangesOptions, type TokenInfo, type TokenResult, type UndeclaredFieldsWarning, type ValidationDiagnostic, type ValidationResult, type VerifiedCliCall, type ViewEvaluateOptions, type ViewEvaluateResult, WarmHubClient, type WarmHubClientOptions, type WarmHubDecorations, WarmHubError, type WarmHubErrorDetails, type WherePredicate, type WhoamiInfo, type WhoamiScopeEntry, type WireScopeEntry, applyRepositoryExportDelta, collectDurableTokens, commitValidateRequestBodyBytes, connectionErrorMessage, contentFieldLimitError, countStreamAppendResultStatuses, createCommitValidateInput, createOperationEventRequestId, createOperationEventSubmissionId, createRepositoryExportSession, encodeCommitValidateRequestBody, getResponseDecorations, isConnectionError, isDefiniteStreamAppendRejection, isKnownOrgAuthScope, isKnownRepoAuthScope, isRetryable, isWarmHubError, normalizeWref, operationEventStreamRequestId, readRepositoryExportStream, resolveFunctionLogMode, restoreRepositoryExportSession, sanitizeErrorMessage, sdkVersionIsBelowMinimum, streamAppendResultStatus, submitOperationsViaStream, toWarmHubError, validateAgainstShape, verifyCliCall };
11392
+ export { type AboutOptions, type AboutResult, type AccessResolveInput, type AccessResolveResult, type AccessTokenProvider, type ActionAttemptInfo, type ActionDeliveryTarget, type ActionLeaseAcquire, type ActionLeaseOp, type ActionListNotificationsOptions, type ActionListRunsOptions, type ActionLiveFeed, type ActionLiveFeedItem, type ActionLiveFeedOptions, type ActionNotificationInfo, type ActionRunInfo, type ActionRunStatsInfo, type ActionRunStatsOptions, type AddOp, type AddOperation, AllStreamOperationsFailedError, type Assertion, CLI_INSTALL_REPO_HEADER, CLI_SIGNATURE_HEADER, CLI_TIMESTAMP_HEADER, CONTENT_FIELD_LIMIT_ERROR, type CliCallSecrets, CliCallVerificationError, type CliCallVerificationFailureReason, type CollectionAddOp, type CollectionAddType, type CollectionContainsOptions, type CollectionContainsResult, type CollectionCreateOptions, type CollectionDiffOptions, type CollectionDiffResult, type CollectionMember, type CollectionMembersOptions, type CollectionMembersPage, type CollectionMembershipRole, type CollectionMutationResult, type CollectionQuerySourceOptions, type CollectionReadDataMode, type CollectionReadSummary, type CollectionReviseOptions, type CollectionStatsOptions, type CollectionStatsResult, type CollectionTag, type CollectionType, type CollectionWriteType, type CommitApplyCompatibilityResult, type CommitDiagnostic, type CommitRealOperationResult, type CommitValidateInput, type CommitValidateOptions, type CommitValidateResult, type ComponentHistory, type ComponentHistoryOptions, type ComponentInfo, type ComponentInstallOptions, type ComponentInstallResult, type ComponentList, type ComponentListOptions, type ComponentUninstallOptions, type ComponentUninstallResult, type ComponentView, type CoreErrorKind, type CountOptions, type CountResult, type CredentialAuditEntry, type CredentialDeleteResult, type CredentialGrantResult, type CredentialInfo, type CredentialKeyMutationResult, type CredentialRevokeResult, type CredentialUngrantResult, type CurrentUserInfo, DEFAULT_API_URL, DEFAULT_STREAM_CHUNK_SIZE, type DeclaredFieldEntry, type ErrorKind, type FieldIndexCarryingMarker, type FieldIndexCarryingShape, type FieldIndexConsistency, type FieldIndexPinResult, type FilterOptions, type FilterResult, type FunctionLogMode, type GlobalSearchOptions, type GlobalSearchResult, type GlobalSearchResultItem, type Grant, type GrantCreateOptions, type GrantListOptions, type GrantListResult, type GrantRecipientSelector, type GrantRevokeResult, type HeadResult, type HistoryResult, type HistoryVersion, type HomepageFeaturedListsResult, type IndexedFieldEntry, type IndexedFieldsReport, type LiveHandle, type LiveRepoEvent, type LiveSubscriptionLogOptions, type LiveThingHeadOptions, type LiveThingHistoryOptions, type LiveWatchResult, MAX_COMMIT_VALIDATION_ENCODED_BYTES, MAX_COMMIT_VALIDATION_OPERATIONS, MAX_CONTENT_FIELD_BYTES, MAX_STREAM_APPEND_OPERATION_COUNT, MAX_WREFS_PER_THING_VERSION, ORG_AUTH_SCOPES, type Operation, OperationBuilder, type OperationBuilderAddInput, type OperationBuilderClient, type OperationBuilderOp, type OperationBuilderOptions, type OperationEventReceipt, type OperationEventReceiptV1, type OperationSource, type OperationSubmitResult, type OrgAccessResult, type OrgAuthScope, type OrgInfo, type OrgList, type OrgListMembersOptions, type OrgListOptions, type OrgMemberInfo, type OrgMemberList, type OrgRef, type OrgRole, type Page, type PageRequest, PartialStreamSubmissionError, type PingResult, REPO_AUTH_SCOPES, type ReaffirmOperation, type RefLink, type RefsOptions, type RefsResult, type RenameOperation, type RenameOptions, type RenameResult, type RepoAccessResult, type RepoAuthScope, type RepoConfigureStatsView, type RepoDescribeResult, type RepoExploreBrowseOptions, type RepoExploreItem, type RepoExploreOptions, type RepoExploreResult, type RepoInfo, type RepoLicense, type RepoList, type RepoListForCallerOptions, type RepoListOptions, type RepoListPageOptions, type RepoListPageResult, type RepoLocator, type RepoRecentInfo, type RepoRef, type RepoShapeInstanceCountsView, type RepoSort, type RepoStatsBatchResult, type RepoStatsView, type RepoWithStatsInfo, type RepositoryCheckpointAccess, type RepositoryCheckpointStatus, RepositoryExportError, type RepositoryExportErrorReason, type RepositoryExportExpectation, type RepositoryExportOptions, type RepositoryExportPreparation, type RepositoryExportPrepareOptions, type RepositoryExportRestoreOptions, type RepositoryExportRowMap, type RepositoryExportRows, type RepositoryExportSegmentOptions, RepositoryExportSession, type RequestEvent, type ResolveWrefResult, type RetractOp, type RetractOperation, type RetryPolicyOptions, type ReviseOp, type ReviseOperation, SDK_VERSION, type ScopeAllowedShapes, type SearchOptions, type SearchResult, type Shape, type ShapeChange, type ShapeCreateOptions, type ShapeFields, type ShapeGetOptions, type ShapeHistory, type ShapeHistoryOptions, type ShapeList, type ShapeListOptions, type ShapeRef, type ShapeRemove, type ShapeRemoveOptions, type ShapeReviseOptions, type ShapeValidatorResult, type StreamAppendInput, type StreamAppendResult, type StreamContinuationState, StreamSubmissionAggregator, type StreamingSubmissionHandle, type StreamingSubmissionOptions, StreamingSubmissionOutcomeUnknownError, type StreamingSubmissionRetryIdentity, type StreamingSubmissionRow, type SubscriptionBindCredentialsResult, type SubscriptionCompatCreateInput, type SubscriptionCompatUpdateInput, type SubscriptionInfo, type SubscriptionList, type SubscriptionUnbindCredentialsResult, type SynthesizedRepoContent, type ThingChanges, type ThingDetail, type ThingGet, type ThingGetManyResult, type ThingGetOptions, type ThingGetWithLease, type ThingGraphOptions, type ThingGraphResult, type ThingGraphValue, type ThingHead, type ThingHeadChangesOptions, type ThingHeadOptions, type ThingHeadRequest, type ThingHeadVersionsResult, type ThingHistory, type ThingHistoryOptions, type ThingItem, type ThingMetadata, type ThingQueryChangesOptions, type TokenInfo, type TokenResult, type UndeclaredFieldsWarning, type ValidationDiagnostic, type ValidationResult, type VerifiedCliCall, type ViewEvaluateOptions, type ViewEvaluateResult, WarmHubClient, type WarmHubClientOptions, type WarmHubDecorations, WarmHubError, type WarmHubErrorDetails, type WherePredicate, type WhoamiInfo, type WhoamiScopeEntry, type WireScopeEntry, applyRepositoryExportDelta, collectDurableTokens, commitValidateRequestBodyBytes, connectionErrorMessage, contentFieldLimitError, countStreamAppendResultStatuses, createCommitValidateInput, createOperationEventRequestId, createOperationEventSubmissionId, createRepositoryExportSession, encodeCommitValidateRequestBody, getResponseDecorations, isConnectionError, isDefiniteStreamAppendRejection, isKnownOrgAuthScope, isKnownRepoAuthScope, isRetryable, isWarmHubError, normalizeWref, operationEventStreamRequestId, readRepositoryExportStream, resolveFunctionLogMode, restoreRepositoryExportSession, sanitizeErrorMessage, sdkVersionIsBelowMinimum, streamAppendResultStatus, submitOperationsViaStream, toWarmHubError, validateAgainstShape, verifyCliCall };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export{t as AllStreamOperationsFailedError,A as CliCallVerificationError,E as DEFAULT_API_URL,q as DEFAULT_STREAM_CHUNK_SIZE,b as MAX_COMMIT_VALIDATION_ENCODED_BYTES,a as MAX_COMMIT_VALIDATION_OPERATIONS,r as MAX_STREAM_APPEND_OPERATION_COUNT,C as OperationBuilder,s as PartialStreamSubmissionError,i as RepositoryExportError,j as RepositoryExportSession,z as SDK_VERSION,n as StreamSubmissionAggregator,y as StreamingSubmissionOutcomeUnknownError,O as WarmHubClient,H as WarmHubError,h as applyRepositoryExportDelta,f as collectDurableTokens,e as commitValidateRequestBodyBytes,M as connectionErrorMessage,v as countStreamAppendResultStatuses,c as createCommitValidateInput,p as createOperationEventRequestId,o as createOperationEventSubmissionId,k as createRepositoryExportSession,d as encodeCommitValidateRequestBody,g as getResponseDecorations,L as isConnectionError,w as isDefiniteStreamAppendRejection,K as isRetryable,J as isWarmHubError,D as normalizeWref,l as readRepositoryExportStream,F as resolveFunctionLogMode,m as restoreRepositoryExportSession,G as sanitizeErrorMessage,N as sdkVersionIsBelowMinimum,u as streamAppendResultStatus,x as submitOperationsViaStream,I as toWarmHubError,B as verifyCliCall}from'./chunk-CS26Y4KA.js';export{t as CLI_INSTALL_REPO_HEADER,u as CLI_SIGNATURE_HEADER,v as CLI_TIMESTAMP_HEADER,d as CONTENT_FIELD_LIMIT_ERROR,c as MAX_CONTENT_FIELD_BYTES,o as MAX_WREFS_PER_THING_VERSION,C as ORG_AUTH_SCOPES,y as REPO_AUTH_SCOPES,e as contentFieldLimitError,D as isKnownOrgAuthScope,z as isKnownRepoAuthScope,E as operationEventStreamRequestId,$ as validateAgainstShape}from'./chunk-QDF4TEJA.js';//# sourceMappingURL=index.js.map
1
+ export{t as AllStreamOperationsFailedError,A as CliCallVerificationError,E as DEFAULT_API_URL,q as DEFAULT_STREAM_CHUNK_SIZE,b as MAX_COMMIT_VALIDATION_ENCODED_BYTES,a as MAX_COMMIT_VALIDATION_OPERATIONS,r as MAX_STREAM_APPEND_OPERATION_COUNT,C as OperationBuilder,s as PartialStreamSubmissionError,i as RepositoryExportError,j as RepositoryExportSession,z as SDK_VERSION,n as StreamSubmissionAggregator,y as StreamingSubmissionOutcomeUnknownError,O as WarmHubClient,H as WarmHubError,h as applyRepositoryExportDelta,f as collectDurableTokens,e as commitValidateRequestBodyBytes,M as connectionErrorMessage,v as countStreamAppendResultStatuses,c as createCommitValidateInput,p as createOperationEventRequestId,o as createOperationEventSubmissionId,k as createRepositoryExportSession,d as encodeCommitValidateRequestBody,g as getResponseDecorations,L as isConnectionError,w as isDefiniteStreamAppendRejection,K as isRetryable,J as isWarmHubError,D as normalizeWref,l as readRepositoryExportStream,F as resolveFunctionLogMode,m as restoreRepositoryExportSession,G as sanitizeErrorMessage,N as sdkVersionIsBelowMinimum,u as streamAppendResultStatus,x as submitOperationsViaStream,I as toWarmHubError,B as verifyCliCall}from'./chunk-6JOOPV4Q.js';export{v as CLI_INSTALL_REPO_HEADER,w as CLI_SIGNATURE_HEADER,x as CLI_TIMESTAMP_HEADER,f as CONTENT_FIELD_LIMIT_ERROR,e as MAX_CONTENT_FIELD_BYTES,q as MAX_WREFS_PER_THING_VERSION,E as ORG_AUTH_SCOPES,A as REPO_AUTH_SCOPES,g as contentFieldLimitError,F as isKnownOrgAuthScope,B as isKnownRepoAuthScope,G as operationEventStreamRequestId,ba as validateAgainstShape}from'./chunk-LUVEYT45.js';//# sourceMappingURL=index.js.map
2
2
  //# sourceMappingURL=index.js.map
package/dist/react.js CHANGED
@@ -1,2 +1,2 @@
1
- import {O}from'./chunk-CS26Y4KA.js';export{E as DEFAULT_API_URL,z as SDK_VERSION,O as WarmHubClient,H as WarmHubError,I as toWarmHubError}from'./chunk-CS26Y4KA.js';import'./chunk-QDF4TEJA.js';import {createContext,useMemo,useState,useEffect,useContext}from'react';import {jsx}from'react/jsx-runtime';var p=createContext(null),f=createContext({isAuthenticated:false,isLoading:true});function P({apiUrl:e,children:t,auth:o,client:s,decorateResponses:r}){let n=s?.name,u=s?.version,i=o.getAccessToken,a=useMemo(()=>new O({apiUrl:e,accessToken:async()=>await i()??void 0,client:{name:n,version:u},decorateResponses:r}),[e,n,u,r,i]);return jsx(p.Provider,{value:a,children:jsx(g,{auth:o,client:a,children:t})})}function g({auth:e,client:t,children:o}){let[s,r]=useState(null),n=e.isAuthenticated&&s===t;useEffect(()=>{if(!e.isAuthenticated){r(null);return}let i=false;return t.auth.sync().then(()=>{i||r(t);}).catch(a=>{console.error("auth.sync failed:",a),i||r(t);}),()=>{i=true;}},[e.isAuthenticated,t]);let u=useMemo(()=>({isAuthenticated:e.isAuthenticated&&n,isLoading:e.isLoading||e.isAuthenticated&&!n}),[e.isAuthenticated,e.isLoading,n]);return e.isLoading||e.isAuthenticated&&!n?null:jsx(f.Provider,{value:u,children:o})}function v(){let e=useContext(p);if(!e)throw new Error("useWarmHubClient must be used within a WarmHubProvider");return e}function S(){return useContext(f)}export{P as WarmHubProvider,S as useWarmHubAuth,v as useWarmHubClient};//# sourceMappingURL=react.js.map
1
+ import {O}from'./chunk-6JOOPV4Q.js';export{E as DEFAULT_API_URL,z as SDK_VERSION,O as WarmHubClient,H as WarmHubError,I as toWarmHubError}from'./chunk-6JOOPV4Q.js';import'./chunk-LUVEYT45.js';import {createContext,useMemo,useState,useEffect,useContext}from'react';import {jsx}from'react/jsx-runtime';var p=createContext(null),f=createContext({isAuthenticated:false,isLoading:true});function P({apiUrl:e,children:t,auth:o,client:s,decorateResponses:r}){let n=s?.name,u=s?.version,i=o.getAccessToken,a=useMemo(()=>new O({apiUrl:e,accessToken:async()=>await i()??void 0,client:{name:n,version:u},decorateResponses:r}),[e,n,u,r,i]);return jsx(p.Provider,{value:a,children:jsx(g,{auth:o,client:a,children:t})})}function g({auth:e,client:t,children:o}){let[s,r]=useState(null),n=e.isAuthenticated&&s===t;useEffect(()=>{if(!e.isAuthenticated){r(null);return}let i=false;return t.auth.sync().then(()=>{i||r(t);}).catch(a=>{console.error("auth.sync failed:",a),i||r(t);}),()=>{i=true;}},[e.isAuthenticated,t]);let u=useMemo(()=>({isAuthenticated:e.isAuthenticated&&n,isLoading:e.isLoading||e.isAuthenticated&&!n}),[e.isAuthenticated,e.isLoading,n]);return e.isLoading||e.isAuthenticated&&!n?null:jsx(f.Provider,{value:u,children:o})}function v(){let e=useContext(p);if(!e)throw new Error("useWarmHubClient must be used within a WarmHubProvider");return e}function S(){return useContext(f)}export{P as WarmHubProvider,S as useWarmHubAuth,v as useWarmHubClient};//# sourceMappingURL=react.js.map
2
2
  //# sourceMappingURL=react.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@warmhub/sdk-ts",
3
- "version": "0.132.0",
3
+ "version": "0.133.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "The TypeScript SDK for WarmHub — create repos, commit and query data, and compound knowledge with your AI agents.",
@@ -1,10 +0,0 @@
1
- import {p as p$1,Y as Y$1,I,U as U$1,V as V$1,X as X$1,H as H$1,t,w as w$1,u,v,x as x$1,$ as $$1,G,A as A$1,B as B$1,g,l,k,j as j$1,n,f as f$1,i,E,a,W as W$1,S,s,b,F as F$1,e,_ as _$1,Z as Z$1,q,h,r,T as T$1,m}from'./chunk-QDF4TEJA.js';import {TRPCClientError,createTRPCProxyClient,splitLink,httpBatchLink,httpLink}from'@trpc/client';import {observable}from'@trpc/server/observable';import {z as z$1}from'zod';var qe="0123456789ABCDEFGHJKMNPQRSTVWXYZ",Be=new Uint8Array(256).fill(255);for(let r=0;r<qe.length;r++){let e=qe.charCodeAt(r);Be[e]=r,e>=65&&(Be[e+32]=r);}function It(r){let e=r.length*8,t=Math.ceil(e/5),n="";for(let i=0;i<t;i++){let o=i*5,s=o>>3,a=o&7,c=r[s]??0,u;if(a<=3)u=c>>3-a&31;else {let l=r[s+1]??0;u=(c<<a-3|l>>11-a)&31;}n+=qe[u];}return n}function At(r){let e=Math.floor(r.length*5/8),t=new Uint8Array(e),n=0,i=0,o=0;for(let s=0;s<r.length;s++){let a=r.charCodeAt(s),c=Be[a];if(c===void 0||c===255)return null;n=n<<5|c,i+=5,i>=8&&(i-=8,o<e&&(t[o++]=n>>i&255));}return t}var Wr=1;var vt=16,Tt=4;function $r(r){return Math.ceil((1+r+Tt)*8/5)}var Gr=(()=>{let e=new Uint32Array(256);for(let t=0;t<256;t++){let n=t;for(let i=0;i<8;i++)n=n&1?n>>>1^2197175160:n>>>1;e[t]=n>>>0;}return e})();function Kr(r){let e=4294967295;for(let t of r)e=(e>>>8^(Gr[(e^t)&255]??0))>>>0;return (e^4294967295)>>>0}function kt(r,e=0){let t=Array.from(r.slice(e,e+16)).map(n=>n.toString(16).padStart(2,"0")).join("");return [t.slice(0,8),t.slice(8,12),t.slice(12,16),t.slice(16,20),t.slice(20,32)].join("-")}function zr(r,e,t){let n=e.startsWith("wh:")?e.slice(3):e;if(n.length!==$r(t))return null;let i=At(n);if(!i||i.length!==1+t+Tt||i[0]!==r)return null;let o=1+t,s=(i[o]??0)<<24|(i[o+1]??0)<<16|(i[o+2]??0)<<8|(i[o+3]??0),a=Kr(i.slice(0,o));return s>>>0!==a>>>0||It(i)!==n.toUpperCase()?null:i.slice(1,1+t)}function jr(r){let e=zr(Wr,r,vt*2);return e?{repoId:kt(e,0),thingId:kt(e,vt)}:null}var Yr=/^(?:v0*[1-9]\d*|[Hh][Ee][Aa][Dd]|[Aa][Ll][Ll])$/;function _t(r){let e=r.lastIndexOf("@"),t=e>=0&&Yr.test(r.slice(e+1))?r.slice(e+1):null,n=t===null?r:r.slice(0,e);return jr(n)===null?null:{durableId:(n.startsWith("wh:")?n.slice(3):n).toUpperCase(),selector:t}}function Nt(r,e){let{childContext:t,onStringValue:n,onObjectKey:i}=e,o=[{value:r,context:e.rootContext}];for(;o.length>0;){let{value:s,context:a$1}=o.pop();if(typeof s=="string"){n(s,a$1);continue}if(Array.isArray(s)){for(let u=s.length-1;u>=0;u--)o.push({value:s[u],context:t(a$1,u)});continue}if(!a(s))continue;let c=Object.entries(s).map(([u,l])=>[u,t(a$1,u),l]);if(i)for(let[u,l]of c)i(u,l);for(let u=c.length-1;u>=0;u--){let l=c[u];l&&o.push({value:l[2],context:l[1]});}}}var Jr=new Set(["arc","bond","pair","set","list"]);function z(r,e){let t=Pt(r,e,"add");return {operation:"add",kind:"collection",name:t.name,type:t.type,members:t.members,...r.skipExisting===true?{skipExisting:true}:{}}}function me(r,e){let t=Pt(r,e,"revise");if(!t.name)throw new Error(`${e}: collection revise requires a target name`);return {operation:"revise",kind:"collection",name:t.name,type:t.type,members:t.members,...typeof r.expectedVersion=="number"?{expectedVersion:r.expectedVersion}:{},...typeof r.leaseId=="string"&&r.leaseId.length>0?{leaseId:r.leaseId}:{}}}function Pt(r,e,t){let n=G({operation:t,kind:"collection",name:typeof r.name=="string"?r.name:void 0,type:typeof r.type=="string"?r.type:void 0,members:Array.isArray(r.members)?r.members:void 0},0);if(n.length>0)throw new Error(`${e}: ${n.map(s=>s.message).join("; ")}`);let i=Xr(r.type);if(!i)throw new Error(`${e}: collection ${t} requires 'type'. Use one of: arc, bond, set, list`);if(!Array.isArray(r.members))throw new Error(`${e}: collection ${t} requires a 'members' array`);let o=Zr(r.name);if(!o)throw new Error(`${e}: collection ${t} name must be a non-empty string`);return Qr(r,e,t),{name:o,type:i,members:r.members}}function Qr(r,e,t){let n=["about","aboutWref","shapeWref","data",...t==="revise"?["skipExisting"]:[]].filter(i=>r[i]!==void 0);if(n.length>0)throw new Error(`${e}: collection ${t} does not support ${n.map(i=>`'${i}'`).join(", ")}`)}function Xr(r){if(typeof r!="string")return;let e=r.trim();if(Jr.has(e))return e}function Zr(r){if(typeof r=="string"&&!(r.length===0||r.trim()!==r))return r}var Ue="thing add operation does not accept top-level 'about' \u2014 put the target in data.about, or use kind: 'assertion' for the deprecated envelope form";function D(r){if(r.expectedVersion!==void 0&&r.operation!=="revise"&&r.operation!=="retract"&&r.operation!=="reaffirm")throw new Error("expectedVersion is only valid on revise, retract, or reaffirm operations \u2014 set an explicit operation discriminator");if(r.operation==="retract")return {operation:"retract",name:r.name,...r.kind?{kind:r.kind}:{},...r.reason?{reason:r.reason}:{},...r.expectedVersion!==void 0?{expectedVersion:r.expectedVersion}:{},...r.leaseId?{leaseId:r.leaseId}:{}};if(r.operation==="reaffirm")return {operation:"reaffirm",name:r.name,...r.expectedVersion!==void 0?{expectedVersion:r.expectedVersion}:{},...r.kind?{kind:r.kind}:{},...r.add?{add:r.add}:{},...r.remove?{remove:r.remove}:{},...r.leaseId?{leaseId:r.leaseId}:{}};if(r.operation==="rename")return {operation:"rename",name:r.name,newName:r.newName,...r.kind?{kind:r.kind}:{}};if(r.operation==="revise"){let n=r.name??r.wref;if(!n)throw new Error("revise operation requires a target");let i=s({kind:r.kind,name:n});if(Object.hasOwn(r,"active"))throw new Error(`${i} revise operation no longer supports 'active' \u2014 use retract('${n}') instead`);if(i!=="assertion"&&r.affirmedTargets!==void 0)throw new Error(`${i} revise operation does not support 'affirmedTargets' \u2014 it applies only to assertions; set kind: 'assertion' explicitly`);if(i==="collection")return me(r,"commit.apply");if(r.data===void 0)throw new Error(`${i} revise operation requires 'data'`);return i==="assertion"?{operation:"revise",kind:"assertion",name:n,data:r.data,...r.affirmedTargets?{affirmedTargets:r.affirmedTargets}:{},...r.expectedVersion!==void 0?{expectedVersion:r.expectedVersion}:{},...r.leaseId?{leaseId:r.leaseId}:{}}:{operation:"revise",kind:i,name:n,data:r.data,...r.expectedVersion!==void 0?{expectedVersion:r.expectedVersion}:{},...r.leaseId?{leaseId:r.leaseId}:{}}}let e=s(r);if(e==="thing"&&"about"in r&&r.about!==void 0)throw new Error(Ue);let t="skipExisting"in r?r.skipExisting:void 0;if(e!=="collection"&&("type"in r&&r.type!==void 0||"members"in r&&r.members!==void 0))throw new Error(`add operation '${r.name??""}' has collection fields but resolved kind '${e}' \u2014 collection adds require both 'type' and 'members', or set kind: 'collection'`);if(e!=="assertion"&&r.affirmedTargets!==void 0)throw new Error(`${e} add operation does not support 'affirmedTargets' \u2014 it applies only to assertions; set kind: 'assertion' explicitly`);if(e==="collection")return z({...r,skipExisting:t},"commit.apply");if(!r.name)throw new Error("add operation requires a name");if(e==="assertion"){let n="about"in r&&r.about!==void 0?r.about:b(r.data);if(n===void 0)throw new Error("assertion add operation requires 'about', on the envelope or as data.about");if(typeof n!="string")throw new Error(F$1);if(r.data===void 0)throw new Error("assertion add operation requires 'data'");return {operation:"add",kind:"assertion",name:r.name,about:n,data:r.data,...r.affirmedTargets?{affirmedTargets:r.affirmedTargets}:{},...t===true?{skipExisting:t}:{}}}if(r.data===void 0)throw new Error(`${e} add operation requires 'data'`);return {operation:"add",kind:e,name:r.name,data:r.data,...t===true?{skipExisting:t}:{}}}var en=1e4,tn=4*1024*1024,Ve=class extends Error{code="VALIDATION_ERROR";status=400;constructor(e){super(e),this.name="WarmHubError";}};function He(r,e){return r.map((t,n)=>{let i;try{i=D(t);}catch(o){let s=o instanceof Error?o.message:String(o);throw new Ve(`Invalid operation at index ${n}: ${s}`)}return e===true&&i.operation==="add"?{...i,skipExisting:true}:i})}function rn(r,e,t,n){return {orgName:r,repoName:e,...n?.committer!==void 0?{committer:n.committer}:{},...n?.message!==void 0?{message:n.message}:{},...n?.componentRef!==void 0?{componentRef:n.componentRef}:{},operations:He(t,n?.skipExisting),...n?.includeWouldBeBody!==void 0?{includeWouldBeBody:n.includeWouldBeBody}:{}}}function Dt(r){return JSON.stringify(r)}function nn(r){return new TextEncoder().encode(Dt(r)).byteLength}function ge(r){let e=new Set;return Nt(r,{rootContext:{key:null,parentKey:null,insideData:false},childContext:(t,n)=>({key:n,parentKey:t.key,insideData:t.insideData||n==="data"}),onStringValue:(t,n)=>{if(n.key==="durableId"&&n.parentKey==="metadata"&&!n.insideData)return;let i=_t(t);i&&e.add(i.durableId);}}),e}function an(r){let e={};for(let t of r)e[t.durableId]=t.canonicalWref;return e}function Fe(r){return typeof r=="object"&&r!==null&&!Array.isArray(r)}function cn(r){if(!Fe(r))return;let e=r.decorations;return Fe(e)?e:void 0}function pn(r){let e=r instanceof Error?r:new Error(String(r));return Object.assign(e,{decorationFailure:true})}function Lt(r){return ()=>({op:e,next:t})=>!r.enabled||e.type!=="query"||e.path==="thing.headVersions"?t(e):observable(n=>{let i=false,o=false,s=false,a=()=>{!i&&o&&!s&&n.complete();},c=t(e).subscribe({next:u=>{let l=u.result?.data;if(!Fe(l)){n.next(u);return}let m=ge(l);if(m.size===0){n.next(u);return}s=true,r.getClient().thing.headVersions(void 0,void 0,[...m]).then(({items:g})=>{i||n.next({...u,result:{...u.result,data:{...l,decorations:an(g)}}});}).catch(g=>{i||n.error(TRPCClientError.from(pn(g)));}).finally(()=>{s=false,a();});},error:u=>n.error(u),complete:()=>{o=true,a();}});return ()=>{i=true,c.unsubscribe();}})}function Mt(r,e){return {create:async(t,n,i)=>{try{return await r().grant.create.mutate({orgName:t,repoName:n,...i})}catch(o){throw e(o)}},get:async(t,n,i)=>{try{return await r().grant.get.query({orgName:t,repoName:n,grantId:i})}catch(o){throw e(o)}},list:async(t,n,i)=>{try{return await r().grant.list.query({orgName:t,repoName:n,limit:i?.limit,cursor:i?.cursor})}catch(o){throw e(o)}},revoke:async(t,n,i,o)=>{try{return await r().grant.revoke.mutate({orgName:t,repoName:n,grantId:i,reason:o?.reason})}catch(s){throw e(s)}}}}function qt(r){return {...r,createdAt:new Date(r.createdAt),updatedAt:new Date(r.updatedAt),runStartedAt:new Date(r.runStartedAt),...r.state==="complete"||r.state==="failed"?{completedAt:new Date(r.completedAt)}:{}}}function un(r){return {...r,expiresAt:new Date(r.expiresAt)}}function Bt(r){if(typeof r.checkpointId=="string"&&typeof r.repoSeq!="number")return {by:"id",checkpointId:r.checkpointId};if(typeof r.repoSeq=="number"&&typeof r.checkpointId!="string")return {by:"repoSeq",repoSeq:r.repoSeq};throw new TypeError("Repository checkpoint selector must contain exactly one of checkpointId or repoSeq")}function Ut(r,e){return {status:async(t,n,i)=>{try{let o=await r().repo.checkpoint.status.query({orgName:t,repoName:n,selector:Bt(i)});return qt(o)}catch(o){throw e(o)}},latest:async(t,n)=>{try{let i=await r().repo.checkpoint.latest.query({orgName:t,repoName:n});return i.checkpoint?qt(i.checkpoint):null}catch(i){throw e(i)}},getAccess:async(t,n,i)=>{try{let o=await r().repo.checkpoint.access.query({orgName:t,repoName:n,selector:i.checkpoint==="latest"?{by:"latest"}:Bt(i.checkpoint),artifact:i.artifact==="archive"||i.artifact==="manifest"?{kind:i.artifact}:{kind:"chunk",path:i.artifact.chunkPath}});return un(o)}catch(o){throw e(o)}}}}function dn(r){return typeof r.get=="function"}function Vt(r){return dn(r)?r.values():r}function Ht(r,e){let t=new Map;for(let n of Vt(r))n.active?t.set(n.durableId,n):t.delete(n.durableId);for(let n of Vt(e))n.active?t.set(n.durableId,n):t.delete(n.durableId);return t}var y=class extends Error{constructor(t,n){super(n??ln[t]);this.reason=t;}reason;name="RepositoryExportError"},ln={count_mismatch:"Repository export trailer record count does not match the rows read",digest_mismatch:"Repository export content digest does not match the trailer",fence_mismatch:"Repository export header and trailer disagree about atRepoSeq",header_invalid:"Repository export header is invalid",row_invalid:"Repository export row is invalid or not canonical",row_out_of_order:"Repository export rows are not strictly increasing by durableId",since_below_epoch_floor:"Repository export delta base is below the epoch floor",trailer_invalid:"Repository export trailer is invalid",truncated:"Repository export stream ended before its trailer"},j=class{#n=Y$1();#i=Y$1();#o=0;#t;#e;#a;#s=false;#c=false;#r;get header(){return this.#t}get lastDurableId(){return this.#e}get rowCount(){return this.#n.rowCount}get segmentRowCount(){return this.#o}get contentSha256(){return this.#r}finalizeContentSha256(){return this.#r===void 0&&(this.#r=this.#n.finalize(),this.#s=true),this.#r}beginSegment(){this.assertResumable(),this.#i=Y$1(),this.#o=0;}markUnverifiable(){this.#c=true;}finalizeSegment(){return this.#i.finalize()}get token(){return this.#a}set token(e){this.#a=e;}get complete(){return this.#s}markComplete(){this.finalizeContentSha256();}assertResumable(){if(this.#c)throw new y("digest_mismatch","Repository export session failed verification and cannot be resumed; start a new session");if(this.#s)throw new y("header_invalid","Repository export session is already complete; start a new session")}adoptHeader(e){this.assertResumable();let t=this.#t;if(t!==void 0&&(t.repo!==e.repo||t.mode!==e.mode||t.sinceRepoSeq!==e.sinceRepoSeq||t.atRepoSeq!==e.atRepoSeq))throw new y("header_invalid","Resumed repository export header does not match the opening header");this.#t=e;}recordRow(e,t){if(this.#t?.mode==="heads"&&this.#e!==void 0&&I(this.#e,e)>=0)throw new y("row_out_of_order",`Repository export row '${e}' does not follow '${this.#e}'`);this.#n.update(t),this.#i.update(t),this.#o+=1,this.#e=e;}};function B(){return new j}var Ft=10,mn=new TextDecoder;function gn(r){let e=r.header;if(!e)throw new y("header_invalid","Repository export resumed without an opening header to inherit");return e}async function hn(r,e,t){let n=await r.next();if(n.done)throw new y("truncated");let i;try{i=W$1(n.value);}catch(o){We("header_invalid",o);}if(i.formatVersion!==S||t!==void 0&&(i.repo!==t.repo||i.mode!==t.mode||t.sinceRepoSeq!==void 0&&i.sinceRepoSeq!==t.sinceRepoSeq||t.atRepoSeq!==void 0&&i.atRepoSeq!==t.atRepoSeq))throw new y("header_invalid",t===void 0?`Repository export header declares format version ${i.formatVersion}; expected ${S}`:`Repository export header describes ${i.repo} (${i.mode}, ${i.sinceRepoSeq}..${i.atRepoSeq}); expected ${t.repo} (${t.mode}${t.sinceRepoSeq!==void 0?`, since ${t.sinceRepoSeq}`:""}${t.atRepoSeq!==void 0?`, at ${t.atRepoSeq}`:""})`);return e.adoptHeader(i),i}async function*yn(r,e){let t=new Uint8Array(0);for await(let n of fn(r)){let i=new Uint8Array(t.length+n.length);i.set(t),i.set(n,t.length),t=i;let o=t.indexOf(Ft);for(;o!==-1;)yield t.subarray(0,o+1),t=t.subarray(o+1),o=t.indexOf(Ft);}e.unterminated=t.length>0;}function fn(r){return Symbol.asyncIterator in r?r:{async*[Symbol.asyncIterator](){let e=r.getReader();try{for(;;){let{done:t,value:n}=await e.read();if(t)return;n&&(yield n);}}finally{e.releaseLock();}}}}function Rn(r){try{let e=JSON.parse(mn.decode(r));if(e!==null&&typeof e=="object"&&"kind"in e){let t=e.kind;if(typeof t=="string")return t}}catch{}return ""}function We(r,e){throw e instanceof y?e:new y(r,e instanceof Error?e.message:void 0)}async function*Y(r,e,t,n={}){yield*$t(r,e,t,n);}async function Wt(r,e={}){let t=B(),n=$t(r,t,void 0,e),i=await n.next();for(;!i.done;)i=await n.next();return t}async function*$t(r,e,t,n){let i={unterminated:false},o=yn(r,i);try{yield*bn(o,i,e,t,n);}finally{await o.return(void 0);}}async function*bn(r,e,t,n,i){t.assertResumable();let o=i.resumed===true?gn(t):await hn(r,t,n),s=U$1(o);for(t.beginSegment();;){let a=await r.next();if(a.done){if(i.partial===true)return;throw new y("truncated")}let c=a.value;if(Rn(c)!=="trailer"){let l;try{l=V$1(c);}catch(m){We("row_invalid",m);}if(!l.active&&!s)throw new y("row_invalid","Repository export tombstone is not legal in a full export");t.recordRow(l.durableId,c),yield l;continue}let u;try{if(u=X$1(c),u.atRepoSeq!==o.atRepoSeq)throw new y("fence_mismatch");if(u.recordCount!==t.segmentRowCount)throw new y("count_mismatch");if(u.contentSha256!==t.finalizeSegment())throw new y("digest_mismatch")}catch(l){if(t.markUnverifiable(),l instanceof y)throw l;We("trailer_invalid",l);}if(!(await r.next()).done||e.unterminated)throw new y("trailer_invalid","Repository export stream continues past its trailer");t.markComplete();return}}var Sn="since-below-epoch-floor",wn=1e3,Cn=50,xn=3;function $e(r,e,t){let n=new URLSearchParams;for(let[o,s]of Object.entries(t))s!==void 0&&n.set(o,String(s));let i=n.toString();return `/api/repos/${encodeURIComponent(r)}/${encodeURIComponent(e)}/export${i?`?${i}`:""}`}function Gt(r){let e=r?.reason;return e instanceof Error?e:new Error("Repository export was aborted")}function On(r){return r===void 0||!Number.isFinite(r)?wn:Math.max(r,Cn)}async function En(r,e){if(e?.aborted)throw Gt(e);await new Promise((t,n)=>{let i=()=>{clearTimeout(o),n(Gt(e));},o=setTimeout(()=>{e?.removeEventListener("abort",i),t();},r);e?.addEventListener("abort",i,{once:true});});}async function In(r,e){let t;try{t=await r.clone().json();}catch{}return (t?.code??t?.error?.code)===Sn?new y("since_below_epoch_floor",t?.message):t?.code!==void 0&&t.error===void 0?await e(new Response(JSON.stringify({error:t}),{status:r.status,headers:{"content-type":"application/json"}})):await e(r)}function An(r){let e=r;return typeof e?.url=="string"&&e.url!==""&&typeof e.expiresAt=="number"&&typeof e.atRepoSeq=="number"&&typeof e.recordCount=="number"&&typeof e.contentSha256=="string"}async function vn(r){let e;try{e=await r.json();}catch{throw new y("header_invalid","Repository export redemption did not return a JSON download envelope")}if(!An(e))throw new y("header_invalid","Repository export download envelope must carry url, expiresAt, atRepoSeq, recordCount, and contentSha256");return e}function kn(r,e){let t=r.header?.atRepoSeq;if(t!==e.atRepoSeq)throw new y("fence_mismatch",`Repository export download is pinned to ${t}; the redemption named ${e.atRepoSeq}`);if(r.rowCount!==e.recordCount)throw new y("count_mismatch",`Repository export download carried ${r.rowCount} rows; the redemption named ${e.recordCount}`);if(r.contentSha256!==e.contentSha256)throw new y("digest_mismatch","Repository export download digest does not match the digest the redemption named")}function Ge(r,e,t=(n,i)=>globalThis.fetch(n,i)){let n=async(a,c)=>{let u=await r(a,{method:"GET",headers:{accept:T$1},...c?{signal:c}:{}});if(!u.ok&&u.status!==202)throw await In(u,e);return u},i=async(a,c,u={})=>{let m=await(await n($e(a,c,{mode:u.mode??"heads",sinceRepoSeq:u.sinceRepoSeq,atRepoSeq:u.atRepoSeq,prefer:"async"}),u.signal)).json();if(typeof m.exportToken!="string"||typeof m.atRepoSeq!="number")throw new y("header_invalid","Repository export async request did not return an exportToken and atRepoSeq");return {exportToken:m.exportToken,atRepoSeq:m.atRepoSeq}};return {prepare:i,stream:(a,c,u={})=>{let l=u.session?.lastDurableId??u.afterDurableId;if(l!==void 0&&(u.token!==void 0||u.session?.token!==void 0||u.prefer==="async"))throw new y("header_invalid",`Repository export token download cannot continue from '${l}': redemption returns the whole prepared object. Start a new session and redeem the token again.`);if(u.afterDurableId!==void 0&&u.session?.header===void 0)throw new y("header_invalid","Repository export afterDurableId needs a session carrying the opening header; reuse the session the broken stream wrote, or rebuild one with restoreRepositoryExportSession");return s(a,c,u)}};async function*s(a,c,u){let l=u.session??B(),m=l.header,g=u.signal,h={mode:m?.mode??u.mode??"heads",sinceRepoSeq:m?.sinceRepoSeq??u.sinceRepoSeq,atRepoSeq:m?.atRepoSeq??u.atRepoSeq,afterDurableId:l.lastDurableId??u.afterDurableId},O={repo:`${a}/${c}`,mode:h.mode,...u.sinceRepoSeq===void 0?{}:{sinceRepoSeq:u.sinceRepoSeq},...u.atRepoSeq===void 0?{}:{atRepoSeq:u.atRepoSeq}};if(u.token!==void 0&&l.token!==void 0&&u.token!==l.token)throw new y("header_invalid",`Repository export session was redeeming token ${l.token}; resuming it with token ${u.token} would splice two exports`);let R=u.token??l.token;if(R!==void 0){l.token=R,yield*E(R);return}if(u.prefer==="async"){let v=await i(a,c,{mode:h.mode,...h.sinceRepoSeq===void 0?{}:{sinceRepoSeq:h.sinceRepoSeq},...h.atRepoSeq===void 0?{}:{atRepoSeq:h.atRepoSeq},...g?{signal:g}:{}});l.token=v.exportToken,yield*E(v.exportToken);return}let b=await n($e(a,c,h),g);if(!b.body)throw new y("truncated");yield*Y(b.body,l,O,{resumed:h.afterDurableId!==void 0});async function*E(v){for(let I=1;;I+=1){let te=await P(v);try{yield*S(te);return}catch(Te){if(!(!(Te instanceof y)||Te.reason==="truncated")||l.rowCount>0||I>=xn||g?.aborted===true)throw Te}}}async function*S(v){let I=await t(v.url,g?{signal:g}:{});if(!I.ok||!I.body)throw await I.body?.cancel(),new y("truncated",`Repository export download returned HTTP ${I.status}`);yield*Y(I.body,l,O,{resumed:false}),kn(l,v);}async function P(v){let I=$e(a,c,{token:v});for(;;){let te=await n(I,g);if(te.status!==202)return await vn(te);await En(On(u.pollIntervalMs),g);}}}}function J(r,e,t){let n=_$1(e,t==="revise"?{allowUnsafeFieldNamePaths:Z$1(e)}:void 0);return n.valid?null:`Invalid shape definition for "${r}": ${n.errors.join("; ")}`}function Tn(r,e,t){let n=r.operation===void 0||r.operation==="noop"?t?.operation??"add":r.operation,i={opIndex:e,name:r.name??"",operation:n,...r.affirmations?{affirmations:r.affirmations}:{},...r.resolvedName!==void 0?{resolvedName:r.resolvedName}:{},...r.warnings?{warnings:r.warnings}:{}};return r.status==="failed"?{...i,status:"error",errors:[{code:r.error?.code??"BACKEND",message:r.error?.message??`Operation on "${r.name}" failed`,...r.error?.details?{details:r.error.details}:{},...r.retryable!==void 0?{retryable:r.retryable}:{}}],...t?.name!==void 0?{submittedName:t.name}:{}}:{...i,status:r.status==="noop"||r.operation==="noop"?"noop":"applied",...r.version!==void 0?{version:r.version}:{},...r.dataHash!==void 0?{dataHash:r.dataHash}:{}}}var U=class{receipts=[];operations=[];statusCounts={applied:0,noop:0,error:0};get allFailed(){return this.operations.length>0&&this.statusCounts.error===this.operations.length}addChunk(e){if(e.result.schemaVersion==="operation-event-receipt/v2"){e.result.results.forEach(t=>{this.statusCounts[t.status]++,this.operations.push({...t,opIndex:e.chunkStart+t.opIndex});});return}e.result.results.forEach((t,n)=>{let i=t.opIndex??n,o=e.submittedOperations[i],s=Tn(t,e.chunkStart+i,o);this.statusCounts[s.status]++,this.operations.push(s);});}addReceipt(e){this.receipts.push(e);}completedOperations(){return this.operations.filter(e=>e.status!=="error")}toResult(e){let t=this.statusCounts.error>0;return {...e.committer!==void 0?{committer:e.committer}:{},...e.createdByEmail!==void 0?{createdByEmail:e.createdByEmail}:{},message:e.message,operationCount:this.operations.length,...e.repoSeq!==void 0?{repoSeq:e.repoSeq}:{},...t?{partial:t,statusCounts:{...this.statusCounts}}:{},operations:this.operations,receipts:this.receipts}}};function V(){let r=globalThis.crypto?.randomUUID?.();if(!r)throw new Error("This runtime cannot mint a cryptographically secure UUID");return r.toLowerCase()}var _n=V;var he=1e3,ye=1e4,A=class extends Error{code="PARTIAL_STREAM_SUBMISSION";completedReceipts;completedOperations;submissionId;eventRequestId;chunkOrdinal;pendingOutcome;acknowledgedOperationCount;lastAcknowledgedRepoSeq;attemptedAppendOutcome;cause;constructor(e){super(e.pendingOutcome==="unknown"?`Stream submission outcome is unknown for event request ${e.eventRequestId}. Look up its immutable receipt before retrying.`:`Stream submission stopped at event request ${e.eventRequestId} after earlier chunks committed.`),this.name="WarmHubError",this.cause=e.cause,this.completedReceipts=e.completedReceipts,this.completedOperations=e.completedOperations??[],this.submissionId=e.submissionId,this.eventRequestId=e.eventRequestId,this.chunkOrdinal=e.chunkOrdinal,this.pendingOutcome=e.pendingOutcome,this.acknowledgedOperationCount=e.acknowledgedOperationCount??e.completedReceipts.length,this.attemptedAppendOutcome=e.attemptedAppendOutcome,e.lastAcknowledgedRepoSeq!==void 0&&(this.lastAcknowledgedRepoSeq=e.lastAcknowledgedRepoSeq);}},_=class extends Error{code="STREAM_ALL_OPERATIONS_FAILED";receipts;result;operations;statusCounts;cause;constructor(e){let t=e.operations.find(n=>n.status==="error")?.errors[0];super(t?`All ${e.operationCount} stream operations failed: ${t.message}`:`All ${e.operationCount} stream operations failed.`),this.name="WarmHubError",this.cause=t,this.result=e,this.receipts=e.receipts,this.operations=e.operations,this.statusCounts=e.statusCounts??{applied:0,noop:0,error:e.operationCount};}};function Ke(r){let e="status"in r?r.status:void 0;return e==="failed"||e==="error"?"error":e==="noop"||r.operation==="noop"?"noop":"applied"}function jt(r){let e={applied:0,noop:0,error:0};for(let t of r)e[Ke(t)]++;return e}var Nn={maxAttempts:3,baseDelayMs:250,maxDelayMs:8e3},Pn=10,Kt=6e4;function ze(r){if(r===false)return false;let e={};r!==void 0&&(Number.isFinite(r.maxAttempts)&&(e.maxAttempts=r.maxAttempts),Number.isFinite(r.baseDelayMs)&&(e.baseDelayMs=r.baseDelayMs),Number.isFinite(r.maxDelayMs)&&(e.maxDelayMs=r.maxDelayMs));let t={...Nn,...e};return {maxAttempts:Math.min(Pn,Math.max(1,Math.trunc(t.maxAttempts))),baseDelayMs:Math.min(Kt,Math.max(0,Math.trunc(t.baseDelayMs))),maxDelayMs:Math.min(Kt,Math.max(0,Math.trunc(t.maxDelayMs)))}}var Dn=new Set(["BAD_REQUEST","METHOD_NOT_SUPPORTED","PARSE_ERROR","PAYLOAD_TOO_LARGE","PRECONDITION_FAILED","UNAUTHORIZED","UNPROCESSABLE_CONTENT","UNSUPPORTED_MEDIA_TYPE","UNAUTHENTICATED","FORBIDDEN","VALIDATION_ERROR","SHAPE_MISMATCH","RESERVED_NAME","ILLEGAL_OP_SEQUENCE","NOT_FOUND","KIND_MISMATCH","CONFLICT","ALREADY_RETRACTED","ARCHIVED","RATE_LIMITED","TOO_MANY_REQUESTS","UNRESOLVED_TOKEN"]),Ln=new Set(["COMMIT_OUTCOME_UNKNOWN"]);function Yt(r){if(!r||typeof r!="object")return;let e=r.code;if(typeof e=="string")return e;let t=r.data,n=t?.warmhub?.code;if(typeof n=="string")return n;let i=t?.code;if(typeof i=="string")return i}function Mn(r){if(!r||typeof r!="object")return;let e=r.data?.httpStatus;if(typeof e=="number")return e;let t=r.data?.warmhub?.status;if(typeof t=="number")return t;let n=r.status;return typeof n=="number"?n:void 0}function qn(r){return r!==void 0&&r>=400&&r<500&&r!==408}function Jt(r){let e=Yt(r);return e!==void 0&&Ln.has(e)}function Q(r){if(Jt(r))return false;let e=Yt(r);return e!==void 0&&Dn.has(e)||qn(Mn(r))}function je(r){if(Jt(r)||Q(r))return false;if(zt(r))return true;if(r instanceof TypeError||r instanceof SyntaxError)return false;let e=r?.cause;return zt(e)?true:!(e instanceof TypeError||e instanceof SyntaxError)}function zt(r){return r instanceof TypeError&&/fetch/i.test(r.message)}function Ye(r,e){let t=e.baseDelayMs*2**Math.max(0,r-1),n=Math.random()*e.baseDelayMs;return Math.min(e.maxDelayMs,t+n)}function Je(r){return new Promise(e=>setTimeout(e,r))}var X=class extends Error{code;status=400;constructor(e,t="VALIDATION_ERROR"){super(e),this.code=t,this.name="WarmHubError";}},fe=class extends Error{constructor(t){super("operation source failed");this.reason=t;}reason};async function H(r,e){let t=be(e.chunkSize),n=e.submissionId??V(),i=e.streamId??n,o=ze(e.retry),s=new U,a=[],c,u,l=0,m,g=0,h=R=>new A({cause:R.cause,completedReceipts:s.receipts,completedOperations:s.completedOperations(),acknowledgedOperationCount:l,lastAcknowledgedRepoSeq:m,attemptedAppendOutcome:R.pendingOutcome==="absent"?"not_applied":"unknown",submissionId:n,eventRequestId:E(n,g),chunkOrdinal:g,pendingOutcome:R.pendingOutcome});try{for await(let R of Bn(e.operations,t,e.skipExisting===!0)){let b=1,E=!1;for(;;)try{let S=await r.stream.append({allocatedTokenRanges:a,chunkOrdinal:g,orgName:e.orgName,repoName:e.repoName,streamId:i,submissionId:n,componentRef:e.componentRef,committer:e.committer,message:e.message,...e.returnRepoSeq!==void 0?{returnRepoSeq:e.returnRepoSeq}:{},operations:R.operations});s.addReceipt(S.receipt),a=S.allocatedTokenRanges,c=S.createdByEmail??c,u=S.repoSeq??u,s.addChunk({result:S,chunkStart:R.start,submittedOperations:R.operations}),l+=R.operations.length;let P=Vn(S.receipt);P!==void 0&&(m=P);break}catch(S){let P=Q(S);if(s.receipts.length===0&&!E&&P)throw S;if(o!==!1&&b<o.maxAttempts&&je(S)){await Je(Ye(b,o)),b+=1,E=!0;continue}throw h({cause:S,pendingOutcome:E||!P?"unknown":"absent"})}g+=1;}}catch(R){throw R instanceof fe?s.receipts.length===0?R.reason:h({cause:R.reason,pendingOutcome:"absent"}):R}if(g===0)throw new X("At least one operation is required for stream submission.");let O=s.toResult({committer:e.committer,createdByEmail:c,message:e.message,repoSeq:u});if(s.allFailed)throw new _(O);return O}async function*Bn(r,e,t){try{if(Array.isArray(r)){let o=r.map((s,a)=>Qe(s,a,t));Zt(o,0);for(let s=0;s<o.length;s+=e)yield {operations:o.slice(s,s+e),start:s};return}let n=0,i=[];for await(let o of Xt(r,t))i.push(o),n+=1,!(i.length<e)&&(yield Qt(i,n),i=[]);i.length>0&&(yield Qt(i,n));}catch(n){throw new fe(n)}}function Qt(r,e){let t=e-r.length;return Zt(r,t),{operations:r,start:t}}function Qe(r,e,t){let n;try{n=D(r);}catch(i){let o=i instanceof Error?i.message:String(i);throw new X(`Invalid operation at index ${e}: ${o}`)}return t&&n.operation==="add"?{...n,skipExisting:true}:n}async function*Xt(r,e){let t=Re(r,e);try{for(;;){let n=await t.next();if(n.done)return;yield n.value;}}finally{let n=t.returnSourceOnce();n&&await n;}}function Re(r,e){let t,n=0,i=false,o=false,s=()=>t||(t=Symbol.asyncIterator in r?r[Symbol.asyncIterator]():r[Symbol.iterator](),t);return {async next(){let a=await s().next();if(a.done)return o=true,{done:true,value:void 0};let c=Qe(a.value,n,e);return n+=1,{done:false,value:c}},returnSourceOnce(){if(!i&&(i=true,!o))return t?.return?.()}}}function Xe(r){return Un.encode(`${JSON.stringify(r)}
2
- `)}var Un=new TextEncoder;function Vn(r){let e=r.event?.repoSeq;if(e===void 0)return;let t=Number(e);return Number.isSafeInteger(t)?t:void 0}function Zt(r,e){let t=H$1(r).find(n=>!Hn(n));if(t)throw new X(`Invalid operation at index ${e+t.operationIndex}: ${t.message}`,t.code)}function Hn(r){return r.code==="ILLEGAL_OP_SEQUENCE"&&r.message.includes("Cannot revise then add ")}function be(r){return Number.isFinite(r)?Math.max(1,Math.min(ye,Math.trunc(r))):he}var rr="warmhub/streaming-submission-manifest/v1",Fn=new TextEncoder,et=z$1.string().regex(/^sha256:[0-9a-f]{64}$/),nr={type:z$1.literal("result"),chunkOrdinal:z$1.number().int().nonnegative(),opIndex:z$1.number().int().nonnegative(),submissionIndex:z$1.number().int().nonnegative(),name:z$1.string()},Wn=z$1.enum(p$1),$n=z$1.enum([...p$1,"noop"]),ir=z$1.object({path:z$1.string(),message:z$1.string()}),or=z$1.object({undeclaredFields:z$1.array(z$1.string()).optional(),undeclaredFieldsTruncated:z$1.literal(true).optional(),totalUndeclared:z$1.number().int().nonnegative().optional(),coalescedWrefs:z$1.array(z$1.object({fieldPath:z$1.string(),wref:z$1.string(),reason:z$1.string()})).optional(),coalescedWrefsTruncated:z$1.literal(true).optional(),totalCoalescedWrefs:z$1.number().int().nonnegative().optional(),deprecations:z$1.array(z$1.object({shape:z$1.string(),message:z$1.string(),removalMilestone:z$1.string()})).optional()}).optional(),sr=z$1.object({added:z$1.array(z$1.string()),removed:z$1.array(z$1.string()),ignored:z$1.array(z$1.string())}),Gn=z$1.discriminatedUnion("reason",[z$1.object({reason:z$1.literal("expected_version_mismatch"),expectedVersion:z$1.number().int().positive(),currentVersion:z$1.number().int().positive()}),z$1.object({reason:z$1.literal("lease_held"),leaseExpiresAt:z$1.iso.datetime()}),z$1.object({reason:z$1.literal("validation_failed"),issues:z$1.array(ir)}),z$1.object({reason:z$1.literal("rate_limit_reset"),retryAfterSeconds:z$1.number().int().positive(),resetAt:z$1.iso.datetime()}),z$1.object({reason:z$1.literal("cursor_fence_unavailable"),cause:z$1.enum(["not_ready","below_floor","above_head"]),retryFromStart:z$1.literal(true)})]),Kn=z$1.discriminatedUnion("reason",[z$1.object({reason:z$1.literal("expected_version_mismatch"),expectedVersion:z$1.number().int().nonnegative(),currentVersion:z$1.number().int().nonnegative()}).strict(),z$1.object({reason:z$1.literal("lease_held"),leaseExpiresAt:z$1.iso.datetime()}).strict(),z$1.object({reason:z$1.literal("validation_failed"),issues:z$1.array(ir.strict())}).strict(),z$1.object({reason:z$1.literal("rate_limit_reset"),retryAfterSeconds:z$1.number().nonnegative(),resetAt:z$1.iso.datetime()}).strict(),z$1.object({reason:z$1.literal("cursor_fence_unavailable"),cause:z$1.enum(["not_ready","below_floor","above_head"]),retryFromStart:z$1.literal(true)}).strict(),z$1.object({reason:z$1.literal("dependency_failed"),producerOpIndexes:z$1.array(z$1.number().int().nonnegative()).min(1)}).strict()]),er={...nr,operation:Wn,submittedName:z$1.string().optional(),resolvedName:z$1.string().optional(),warnings:or,affirmations:sr.optional()},zn=z$1.union([z$1.looseObject({...nr,operation:$n.optional(),version:z$1.number().optional(),dataHash:z$1.string().optional(),status:z$1.enum(["success","noop","failed"]).optional(),error:z$1.object({code:z$1.string(),message:z$1.string(),details:Gn.optional()}).optional(),resolvedName:z$1.string().optional(),retryable:z$1.boolean().optional(),warnings:or,affirmations:sr.optional()}),z$1.looseObject({...er,status:z$1.enum(["applied","noop"]),version:z$1.number().int().positive().optional(),dataHash:z$1.string().min(1).optional()}),z$1.looseObject({...er,status:z$1.literal("error"),errors:z$1.array(z$1.object({code:z$1.string().min(1),message:z$1.string(),path:z$1.string().min(1).optional(),details:Kn.optional(),retryable:z$1.boolean().optional()}).strict()).min(1)})]),ar=z$1.object({applied:z$1.number().int().nonnegative(),noop:z$1.number().int().nonnegative(),failed:z$1.number().int().nonnegative()}),jn=z$1.looseObject({type:z$1.literal("group"),chunkOrdinal:z$1.number().int().nonnegative(),eventRequestId:z$1.uuid(),requestDigest:et,outcome:z$1.enum(["event","no_event"]),repoSeq:z$1.number().int().nonnegative().optional(),operations:ar,manifestDigest:et}),Yn=z$1.looseObject({type:z$1.literal("summary"),submissionId:z$1.uuid(),streamId:z$1.string().min(1),groupSize:z$1.number().int().positive(),groups:z$1.number().int().nonnegative(),operations:ar.extend({total:z$1.number().int().nonnegative()}),repoSeq:z$1.object({first:z$1.number().int().nonnegative().nullable(),last:z$1.number().int().nonnegative().nullable()}),verdict:z$1.string().min(1),durationMs:z$1.number().nonnegative(),truncatedAt:z$1.object({lineNumber:z$1.number().int().positive(),message:z$1.string()}).optional(),manifest:z$1.object({groups:z$1.number().int().nonnegative(),digest:et})}),Jn=z$1.looseObject({type:z$1.literal("error"),code:z$1.string().min(1),message:z$1.string().optional()}),Qn=z$1.union([zn,jn,Yn,Jn]),Ze=()=>({applied:0,noop:0,failed:0}),tr=(r,e)=>r.applied===e.applied&&r.noop===e.noop&&r.failed===e.failed,Xn=new Set(["complete","operation-limit-reached","group-limit-reached"]),T=class extends Error{constructor(t,n){super(`Streaming submission protocol error at row ${n}: ${t}`);this.rowIndex=n;this.name="StreamingSubmissionProtocolError";}rowIndex};async function cr(r){let e=Fn.encode(r),t=await globalThis.crypto.subtle.digest("SHA-256",e);return `sha256:${Array.from(new Uint8Array(t),n=>n.toString(16).padStart(2,"0")).join("")}`}async function Zn(r,e,t){return cr(`${rr}\0${r}\0${e}\0${t}`)}function ei(r){return r.status==="failed"||r.status==="error"?"failed":r.status==="noop"||r.operation==="noop"?"noop":"applied"}var tt=class{index=0;groupCount=0;resultCount=0;pendingCount=0;pendingCounts=Ze();totalCounts=Ze();firstRepoSeq=null;lastRepoSeq=null;manifestDigest=cr(rr);terminalSeen=false;accept(e){let t=n=>{throw new T(n,this.index)};if(this.terminalSeen&&t("No row may follow the terminal row"),e.type==="result"){e.chunkOrdinal!==this.groupCount&&t(`Expected result chunkOrdinal ${this.groupCount}`),e.opIndex!==this.pendingCount&&t(`Expected result opIndex ${this.pendingCount}`),e.submissionIndex!==this.resultCount&&t(`Expected submissionIndex ${this.resultCount}`);let n=ei(e);this.pendingCounts[n]+=1,this.totalCounts[n]+=1,this.pendingCount+=1,this.resultCount+=1,this.index+=1;return}if(e.type==="group")return e.chunkOrdinal!==this.groupCount&&t(`Expected group chunkOrdinal ${this.groupCount}`),this.pendingCount===0&&t("A group must close result rows"),tr(this.pendingCounts,e.operations)||t("Group operation counters do not match its result rows"),this.acceptGroup(e,t);if(this.terminalSeen=true,this.pendingCount>0&&t("Terminal row cannot close a partial group"),e.type==="summary")return this.acceptSummary(e,t);this.index+=1;}async acceptGroup(e,t){this.manifestDigest=this.manifestDigest.then(n=>Zn(n,e.chunkOrdinal,e.requestDigest)),e.manifestDigest!==await this.manifestDigest&&t("Group manifest digest does not match the receipt chain"),e.repoSeq!==void 0&&(this.firstRepoSeq??=e.repoSeq,this.lastRepoSeq=e.repoSeq),this.groupCount+=1,this.pendingCount=0,this.pendingCounts=Ze(),this.index+=1;}async acceptSummary(e,t){tr(this.totalCounts,e.operations)||t("Summary operation counters do not match result rows"),(e.groups!==this.groupCount||e.manifest.groups!==this.groupCount)&&t("Summary group counters do not match group rows"),e.manifest.digest!==await this.manifestDigest&&t("Summary manifest digest does not match the receipt chain"),(e.repoSeq.first!==this.firstRepoSeq||e.repoSeq.last!==this.lastRepoSeq)&&t("Summary repo sequence does not match group rows"),(Xn.has(e.verdict)?e.operations.total!==this.resultCount:e.operations.total<this.resultCount)&&t("Summary total is incompatible with its verdict"),e.verdict==="truncated-by-parse-error"!=(e.truncatedAt!==void 0)&&t("truncatedAt must appear only for a parse-truncated verdict"),this.index+=1;}finish(){if(!this.terminalSeen)throw new T("Response must end with a summary or error row",this.index)}};function ti(r,e){let t;try{t=JSON.parse(r);}catch(i){throw new T(i instanceof Error?i.message:"Invalid JSON",e)}let n=Qn.safeParse(t);if(!n.success)throw new T(n.error.issues[0]?.message??"Malformed row",e);return n.data}async function*pr(r,e){let t=r.body?.getReader();if(!t)throw new T("Missing response body",0);let n=new tt,i=new TextDecoder,o="",s=0,a=false,c,u=m=>{if(m.endsWith("\r")&&(m=m.slice(0,-1)),m.length===0)throw new T("Blank response row",s);let g=ti(m,s);return {pending:n.accept(g),row:g}},l=m=>{if(m.type==="summary"&&e!==void 0&&(m.submissionId!==e.submissionId||m.streamId!==e.streamId||m.groupSize!==e.groupSize))throw new T("Summary identity does not match the submission handle",s);s+=1;};try{for(;;){let{done:m,value:g}=await t.read();if(m)break;for(o+=i.decode(g,{stream:!0});;){let h=o.indexOf(`
3
- `);if(h===-1)break;let O=o.slice(0,h);o=o.slice(h+1);let{pending:R,row:b}=u(O);R&&await R,l(b),b.type==="summary"||b.type==="error"?c=b:yield b;}}if(o+=i.decode(),o.length>0){let{pending:m,row:g}=u(o);m&&await m,l(g),g.type==="summary"||g.type==="error"?c=g:yield g;}n.finish(),a=!0,c&&(yield c);}finally{if(!a)try{await t.cancel();}catch{}t.releaseLock();}}var N=class extends Error{code="STREAMING_SUBMISSION_OUTCOME_UNKNOWN";outcome="unknown";retryable=false;retryIdentity;cause;constructor(e,t){super(`Streaming submission outcome is unknown for ${e.submissionId}. Reconstruct the original source and copy every retryIdentity field into the next applyStreaming call.`),this.name="StreamingSubmissionOutcomeUnknownError",this.retryIdentity=e,this.cause=t;}};function Se(r){return r===void 0||r===""?void 0:r}function ri(){let r=globalThis;if(r.Bun!==void 0)return true;let e=r.process?.versions?.node;if(!e)return false;let[t=0,n=0]=e.split(".").map(Number);return t>22||t===22&&n>=2}function ni(r){let e=new URLSearchParams({submissionId:r.submissionId,groupSize:String(r.groupSize)});return r.message!==void 0&&e.set("message",r.message),r.committer!==void 0&&e.set("committer",r.committer),`/api/repos/${encodeURIComponent(r.orgName)}/${encodeURIComponent(r.repoName)}/streams/${encodeURIComponent(r.streamId)}/submissions?${e}`}function ii(r){let e=Re(r,false),t=false,n=async s=>{try{await s;}catch{}},i=()=>{if(!t){t=true;try{let s=e.returnSourceOnce();s&&n(s);}catch{}}};return {stream:new ReadableStream({async pull(s){try{let a=await e.next();if(t)return;if(a.done){s.close();return}s.enqueue(Xe(a.value));}catch(a){s.error(a),i();}},cancel(){i();}}),returnSourceOnce:i}}function oi(r,e){if(!r)return ()=>{};let t=()=>e.abort(r.reason);return r.aborted?t():r.addEventListener("abort",t,{once:true}),()=>r.removeEventListener("abort",t)}function si(r){let e=r.options?.submissionId??V();return {orgName:r.orgName,repoName:r.repoName,streamId:r.options.streamId,submissionId:e,groupSize:be(r.options.groupSize),...Se(r.message)!==void 0?{message:Se(r.message)}:{},...Se(r.options?.committer)!==void 0?{committer:Se(r.options?.committer)}:{}}}function dr(r,e){if(!r.options.streamId)throw e.localError("VALIDATION_ERROR","Streaming submissions require a non-empty streamId.");let t=si(r),n=new AbortController,i=()=>{},o,s=false,a=async function*(){let c=false,u=false,l;try{if(!(e.runtimeSupported??ri)())throw e.localError("VALIDATION_ERROR","Streaming submissions require Bun or Node.js 22.2 or newer.");if(i=oi(r.options.signal,n),n.signal.aborted)throw e.localError("CANCELLED","Streaming submission was aborted.");let m=await e.prepare(ni(t));if(n.signal.aborted)throw e.localError("CANCELLED","Streaming submission was aborted.");l=ii(r.operations),c=!0;let g=await m.dispatch(l.stream,n.signal);if(!g.ok)throw u=!0,await m.httpError(g);for await(let h of pr(g,t))yield h;}catch(m){throw m instanceof N?m:c&&!u?new N(t,m):e.normalizeLocalError(m)}finally{n.abort(),l?.returnSourceOnce(),i(),s=true;}};return {retryIdentity:t,[Symbol.asyncIterator](){return this},next(){return s?Promise.resolve({done:true,value:void 0}):(o??=a(),o.next())},async return(c){return n.abort(),o?o.return(c):(s=true,i(),{done:true,value:c})},async throw(c){if(n.abort(c),!o)throw s=true,i(),c;return o.throw(c)}}}var ai="0.0.0-development";function F(r){return r===ai}var rt="0.132.0";var lr=2;function ci(r){return r===l?"Run: wh update --yes":r===k?"Run: npm install @warmhub/sdk-ts@latest (or your package manager's equivalent).":r===m?"Run: pip install --upgrade warmhub":`Deploy a released ${r} build that satisfies the backend compatibility contract.`}function mr(r,e){if(typeof r?.minSupportedClients!="object"||r.minSupportedClients===null||!Number.isSafeInteger(r.writeContractVersion)||r.writeContractVersion<1)return {message:"The backend does not advertise valid per-client write compatibility data.",hint:"Upgrade the WarmHub backend before retrying this write."};let t=r.minSupportedClients[e.name],n=typeof t=="string"?A$1(t):null;if(!n)return {message:`The backend does not advertise a valid compatibility floor for ${e.name}.`,hint:"Upgrade the WarmHub backend or register this first-party client family before writing."};if(!F(e.version)){let i=A$1(e.version);if(!i)return {message:`${e.name} reported malformed version "${e.version}".`,hint:"Use a released WarmHub client with a SemVer package version."};if(B$1(i,n)<0)return {message:`${e.name} ${e.version} is older than the backend's minimum supported version ${n}.`,hint:ci(e.name)}}if(r.writeContractVersion<lr)return {message:`${e.name} requires write contract ${lr}, but the backend provides ${r.writeContractVersion}.`,hint:"Upgrade the WarmHub backend before retrying this write."}}function gr(r,e){try{return new URL(r).origin===new URL(e).origin}catch{return false}}var pi=new Set(["GET","POST","PUT","PATCH","DELETE"]),x=class extends Error{reason;constructor(e,t){super(t),this.name="CliCallVerificationError",this.reason=e;}};async function ui(r,e,t$1){let n=r.method.toUpperCase();if(!pi.has(n))throw new x("unsupported-method",`Unsupported HTTP method "${r.method}" \u2014 component CLI dispatch only emits GET, POST, PUT, or PATCH`);let i=n,o=r.headers.get(t);if(!o)throw new x("missing-install-repo",`Missing ${t} header`);let s=W(e.CLI_SIGNING_SECRET),a=W(e.CLI_BEARER_TOKEN),c=W(e.CLI_API_KEY),u$1=W(e.CLI_BASIC_USERNAME)&&W(e.CLI_BASIC_PASSWORD);if(!s&&!a&&!c&&!u$1)throw new x("no-scheme-configured","no-scheme-configured: need at least one of CLI_SIGNING_SECRET, CLI_BEARER_TOKEN, CLI_API_KEY, or CLI_BASIC_USERNAME + CLI_BASIC_PASSWORD");if(a&&u$1)throw new x("no-scheme-configured","unsupported-scheme-combination: CLI_BEARER_TOKEN and CLI_BASIC_USERNAME + CLI_BASIC_PASSWORD both use the Authorization header and cannot be configured together");let l=new URL(r.url),m=l.pathname,g,h,O;if(w$1(i)?g={}:(g=Object.fromEntries(l.searchParams.entries()),h="",O={...g}),s){let R=r.headers.get(u);if(!R)throw new x("missing-signature",`Missing ${u} header`);let b=r.headers.get(v);if(!b)throw new x("missing-timestamp",`Missing ${v} header`);let E=Number(b);if(!Number.isFinite(E)||!Number.isInteger(E))throw new x("invalid-timestamp",`${v} must be an integer unix seconds value; got "${b}"`);h=await hr(r,i,h);let S=await x$1({secret:e.CLI_SIGNING_SECRET,method:i,path:m,query:g,installRepo:o,body:h,signature:R,timestamp:E,nowUnixSeconds:t$1?.nowUnixSeconds??Math.floor(Date.now()/1e3),toleranceSec:t$1?.toleranceSec});if(!S.ok)throw new x(S.reason,`HMAC verification failed: ${S.reason}`)}if(a){let R=`Bearer ${e.CLI_BEARER_TOKEN}`,b=r.headers.get("authorization")??"";if(!await nt(b,R))throw new x("invalid-bearer","invalid-bearer: bearer token mismatch")}if(c){let R=W(e.CLI_API_KEY_HEADER)?e.CLI_API_KEY_HEADER:"X-API-Key",b=r.headers.get(R)??"";if(!await nt(b,e.CLI_API_KEY))throw new x("invalid-api-key",`invalid-api-key: mismatch on header "${R}"`)}if(u$1){let R=`Basic ${btoa(`${e.CLI_BASIC_USERNAME}:${e.CLI_BASIC_PASSWORD}`)}`,b=r.headers.get("authorization")??"";if(!await nt(b,R))throw new x("invalid-basic","invalid-basic: basic auth mismatch")}return O===void 0&&(h=await hr(r,i,h),O=di(h)),{method:i,installRepo:o,args:O}}async function hr(r,e,t){return w$1(e)?t!==void 0?t:r.text():""}function di(r){let e;try{e=JSON.parse(r);}catch{throw new x("invalid-body","POST body is not valid JSON")}if(!li(e))throw new x("invalid-body","POST body must be a JSON object of primitive args (string / number / boolean)");return e}function W(r){return typeof r=="string"&&r.length>0}function li(r){if(typeof r!="object"||r===null||Array.isArray(r))return false;for(let e of Object.values(r))if(e!==void 0&&typeof e!="string"&&typeof e!="number"&&typeof e!="boolean")return false;return true}async function nt(r,e){let[t,n]=await Promise.all([yr(r),yr(e)]),i=0;for(let o=0;o<t.length;o++)i|=t[o]^n[o];return i===0}async function yr(r){return new Uint8Array(await crypto.subtle.digest("SHA-256",new TextEncoder().encode(r)))}function ot(r){if(r.includes("/"))return r.split("/")[0]}function Rr(r){if("shapeWref"in r&&typeof r.shapeWref=="string")return r.shapeWref;if(r.name)return ot(r.name)}function it(r){if(typeof r!="string")return;let e=r.trim();return e.length>0?e:void 0}function $(r){return s({kind:r.kind,name:r.name,about:st(r),type:we(r),members:Ce(r)})}function st(r){if("about"in r&&r.about!==void 0)return r.about;if("aboutWref"in r)return r.aboutWref}function at(r){return st(r)??b(xe(r))}function xe(r){return "data"in r?r.data:void 0}function we(r){return "type"in r?r.type:void 0}function Ce(r){return "members"in r?r.members:void 0}function Z(r,e){return s({kind:r.kind,name:e})}function fr(r){return r.data??{}}function br(r){if(r.operation==="retract")return D(r);if(r.operation==="reaffirm")return D({operation:"reaffirm",name:r.name,...r.expectedVersion!==void 0?{expectedVersion:r.expectedVersion}:{},...r.kind?{kind:r.kind}:{},...r.add?{add:[...r.add]}:{},...r.remove?{remove:[...r.remove]}:{},...r.leaseId?{leaseId:r.leaseId}:{}});if(r.operation==="add"){let n=$(r);if(n==="thing"&&st(r)!==void 0)throw new Error(Ue);if(n==="collection")return z(r,"OperationBuilder");let i=r,o=fr(i),s=it(i.name);if(!s)throw new Error("OperationBuilder: add operation missing name");if(n==="assertion"){let a=at(i);if(a===void 0)throw new Error(`OperationBuilder: assertion add '${s}' missing required 'about'`);if(typeof a!="string")throw new Error(F$1);return {operation:"add",kind:n,name:s,about:a,data:o,...i.affirmedTargets?{affirmedTargets:[...i.affirmedTargets]}:{},...i.skipExisting===true?{skipExisting:true}:{}}}return {operation:"add",kind:n,name:s,data:o,...i.skipExisting===true?{skipExisting:true}:{}}}let e=it(r.name)??it(r.wref);if(!e)throw new Error("OperationBuilder: revise operation missing required target ('name' or 'wref')");let t=Z(r,e);if(t==="collection")return me({...r,name:e},"OperationBuilder");if(t==="assertion")return {operation:"revise",kind:t,name:e,data:r.data??{},...r.affirmedTargets?{affirmedTargets:[...r.affirmedTargets]}:{},...r.expectedVersion!==void 0?{expectedVersion:r.expectedVersion}:{},...r.leaseId?{leaseId:r.leaseId}:{}};if(r.affirmedTargets!==void 0)throw new Error(`OperationBuilder: REVISE '${e}' has affirmedTargets but inferred kind '${t}' \u2014 affirmedTargets applies only to assertions; set kind: 'assertion'`);return {operation:"revise",kind:t,name:e,data:fr(r),...r.expectedVersion!==void 0?{expectedVersion:r.expectedVersion}:{},...r.leaseId?{leaseId:r.leaseId}:{}}}function L(r,e){return r.operation==="add"?{operation:r.operation,kind:e,name:r.name,about:at(r),type:we(r),members:Ce(r)}:{operation:r.operation,kind:e,name:r.name??r.wref,type:we(r),members:Ce(r)}}function Sr(r){if(r.length!==0)throw new Error(r.join("; "))}function wr(r$1,e,t,n){let i=[];if((e==="thing"||e==="assertion"||e==="collection"&&r$1==="REVISE")&&(r(t)||i.push(`${r$1} ${e} name must be a local path (Shape/name), got: "${t}"`)),e==="shape"&&(r$1==="ADD"||r$1==="REVISE")&&n!==void 0){let s=J(t,n,r$1==="REVISE"?"revise":"add");s&&i.push(s);}return i}function Cr(r,e){let t=[];if(r.name&&t.push(...wr("ADD",e,r.name,xe(r))),e==="assertion"&&at(r)===void 0&&t.push(`ADD assertion '${r.name}' missing required 'about' \u2014 for hierarchical thing names set kind: 'thing' explicitly`),e!=="collection"&&(we(r)!==void 0||Ce(r)!==void 0)&&t.push(`ADD '${r.name}' has collection fields but inferred kind '${e}' \u2014 collection adds require both 'type' and 'members', or set kind: 'collection'`),e!=="assertion"&&"affirmedTargets"in r&&r.affirmedTargets!==void 0&&t.push(`ADD '${r.name}' has affirmedTargets but inferred kind '${e}' \u2014 affirmedTargets applies only to assertions; set kind: 'assertion'`),e==="collection")try{z(r,"OperationBuilder");}catch(n){t.push(n instanceof Error?n.message:String(n));}for(let n of G(L(r,e),0))t.push(n.message);Sr(t);}function xr(r,e,t){let n=[];r!=="collection"&&t.data===void 0&&n.push(`OperationBuilder: ${r} revise requires 'data'`),r!=="assertion"&&t.affirmedTargets!==void 0&&n.push(`REVISE '${e}' has affirmedTargets but inferred kind '${r}' \u2014 affirmedTargets applies only to assertions; set kind: 'assertion'`),n.push(...wr("REVISE",r,e,t.data),...G(L({...t,name:e},r),0).map(i=>i.message)),Sr(n);}var Oe=class{ops=[];pendingNames=new Set;shapes;wrefToShape=new Map;submitted=false;inFlight=false;constructor(e){this.shapes=e?.shapes;}add(e){this.assertCanModify();let t={...e};delete t.operation;let n=Rr(t),i=xe(t);if(this.shapes&&n&&i!==void 0){let c=this.shapes[n];if(c){let u=$$1(i,c);if(!u.valid)throw new Error(`Shape validation failed for '${t.name}' (shape: ${n}): ${u.errors.join("; ")}`)}}let o={operation:"add",...t},s=$(o);(o.name||s==="collection")&&Cr(o,s);let a=Object.freeze({operation:"add",...t});return this.ops.push(a),t.name&&(this.pendingNames.add(t.name),n&&this.wrefToShape.set(t.name,n)),this}revise(e){this.assertCanModify();let t={...e};delete t.operation;let n=t.name??t.wref;if(this.shapes&&n&&t.data!==void 0){let o=this.wrefToShape.get(n)??ot(n);if(o){let s=this.shapes[o];if(s){let a=$$1(t.data,s);if(!a.valid)throw new Error(`Shape validation failed for revise '${n}' (shape: ${o}): ${a.errors.join("; ")}`)}}}if(n){let o=Z({...t},n);xr(o,n,{operation:"revise",...t});}let i=Object.freeze({operation:"revise",...t});return this.ops.push(i),this}retract(e){this.assertCanModify();let t=Object.freeze(typeof e=="string"?{operation:"retract",name:e}:{operation:"retract",name:e.name,...e.kind?{kind:e.kind}:{},...e.reason?{reason:e.reason}:{},...e.expectedVersion!==void 0?{expectedVersion:e.expectedVersion}:{},...e.leaseId?{leaseId:e.leaseId}:{}});return this.ops.push(t),this}reaffirm(e){this.assertCanModify();let t=Object.freeze({operation:"reaffirm",name:e.name,...e.expectedVersion!==void 0?{expectedVersion:e.expectedVersion}:{},...e.kind?{kind:e.kind}:{},...e.add?{add:Object.freeze([...e.add])}:{},...e.remove?{remove:Object.freeze([...e.remove])}:{},...e.leaseId?{leaseId:e.leaseId}:{}});return this.ops.push(t),this}get operations(){return Object.freeze([...this.ops])}get size(){return this.ops.length}has(e){return this.pendingNames.has(e)}validate(){let e=[],t=[],n=new Set,i=new Set;for(let c=0;c<this.ops.length;c+=1){let u=this.ops[c];if(u){if(u.operation==="add"){let l=$(u);!u.name&&l!=="collection"?e.push({code:"MISSING_NAME",operationIndex:c,message:`Add operation at index ${c} is missing required 'name' field`}):u.name&&(n.has(u.name)&&e.push({code:"DUPLICATE_NAME",operationIndex:c,message:`Duplicate name '${u.name}' at index ${c} (already added earlier in commit)`}),n.add(u.name));}if(u.operation==="revise"){let l=u.name??u.wref;l?i.has(l)?e.push({code:"REVISE_AFTER_RETRACT",operationIndex:c,message:`Revise at index ${c} targets '${l}' which was already retracted in this commit`}):n.has(l)||t.push({code:"REVISE_UNKNOWN_WREF",operationIndex:c,message:`Revise at index ${c} references '${l}' which was not added in this commit (assuming it exists server-side)`}):e.push({code:"MISSING_WREF",operationIndex:c,message:`Revise operation at index ${c} is missing required target ('name' or 'wref')`});}u.operation==="retract"&&(u.name?i.has(u.name)?t.push({code:"RETRACT_AFTER_RETRACT",operationIndex:c,message:`Retract at index ${c} targets '${u.name}' which was already retracted in this commit`}):(n.has(u.name)||t.push({code:"RETRACT_UNKNOWN_WREF",operationIndex:c,message:`Retract at index ${c} references '${u.name}' which was not added in this commit (assuming it exists server-side)`}),i.add(u.name)):e.push({code:"MISSING_NAME",operationIndex:c,message:`Retract operation at index ${c} is missing required 'name' field`}));}}let o=this.ops.flatMap((c,u)=>{if(c.operation==="add")return G(L(c,$(c)),u);if(c.operation==="revise"){let l=c.name??c.wref;return G(L(c,l?Z(c,l):"thing"),u)}return G({operation:"retract",kind:c.kind,name:c.name},u)});for(let c of o)e.push({code:c.code,operationIndex:c.operationIndex,message:c.message});let s=this.ops.flatMap((c,u)=>{if(c.operation==="retract"||c.operation==="reaffirm")return [];if(c.operation==="add")return [{op:L(c,$(c)),operationIndex:u}];let l=c.name??c.wref;return [{op:L(c,l?Z(c,l):"thing"),operationIndex:u}]}),a=H$1(s.map(({op:c})=>c),{checkAddAdd:false,sourceOperationIndexes:s.map(({operationIndex:c})=>c)});for(let c of a)e.push({code:c.code,operationIndex:c.operationIndex,message:c.message});return this.ops.length===0&&e.push({code:"EMPTY_COMMIT",operationIndex:-1,message:"OperationBuilder has no operations"}),{valid:e.length===0,errors:e,warnings:t}}async commit(e){if(this.assertNotSubmitted(),this.inFlight)throw new Error("OperationBuilder: stream submission already in flight");let t=this.validate();if(!t.valid){let n=t.errors.map(i=>i.message).join("; ");throw new Error(`OperationBuilder validation failed: ${n}`)}this.inFlight=true;try{let n=this.ops.map(o=>br(o)),i=await H(e.client,{orgName:e.orgName,repoName:e.repoName,committer:e.committer,message:e.message,chunkSize:e.chunkSize,streamId:e.streamId,submissionId:e.submissionId,returnRepoSeq:e.returnRepoSeq,retry:e.retry,operations:n});return this.submitted=!0,i}catch(n){throw n instanceof A&&(this.submitted=true),n}finally{this.inFlight=false;}}assertNotSubmitted(){if(this.submitted)throw new Error("OperationBuilder: already submitted, cannot modify")}assertCanModify(){if(this.assertNotSubmitted(),this.inFlight)throw new Error("OperationBuilder: stream submission already in flight, cannot modify")}};function Gs(r){return r.replace(/@(?:v\d+|HEAD|ALL)$/i,"")}var Si={apiUrl:true,fetch:true,accessToken:true,auth:true,functionLogs:true,client:true,clientFlags:true,decorateResponses:true},qr=Object.keys(Si),wi=new Set(qr),Ci=new Set(["token","apiKey","bearer"]);function xi(r){if(r)for(let e of Object.keys(r)){if(wi.has(e))continue;let t=Ci.has(e)?'; did you mean "accessToken"?':`. Valid options are: ${qr.join(", ")}.`;throw new TypeError(`Unknown WarmHubClient option "${e}"${t}`)}}function Oi(r){if(!r||r.length===0)return [];for(let e of r)if(!h(e))throw new TypeError(`Invalid client flag "${e}": expected lowercase tokens matching [a-z0-9-]+.`);return [...new Set(r)].sort()}var Or="https://api.warmhub.ai",Ei=new Set(["commit.validate","repo.shapeInstanceCounts","thing.getMany","thing.headVersions"]),Er=500,Ir=500,Ar=1,vr=8;function Ae(r){return {...r,actionContainer:void 0,actionContainerConfig:void 0}}function Ii(r){return r.map(e=>Ae(e))}function Br(r,e,t){if(e===r||t.has(e))throw new f("VALIDATION_ERROR","Paginated result cursor did not advance")}function kr(r){if(r===void 0)throw new f("VALIDATION_ERROR","sinceRepoSeq is required for an incremental read")}async function*Ur(r,e){let t=e,n=new Set;for(;;){t&&n.add(t);let i=await r(t);if(yield i,!i.nextCursor)return;Br(t,i.nextCursor,n),t=i.nextCursor;}}async function*w(r,e,t){for await(let n of Ur(r,t))yield*e(n);}async function C(r,e,t,n){if(t!==void 0&&(!Number.isFinite(t)||Math.trunc(t)!==t||t<0))throw new f("VALIDATION_ERROR","max must be a nonnegative integer");let i=[];for await(let o of Ur(r,n)){let s=e(o);if(t!==void 0&&i.length+s.length>t)throw new f("VALIDATION_ERROR",`Paginated result exceeded max=${t}`);i.push(...s);}return i}function Tr(r){if(r?.slugs!==void 0)throw new f("VALIDATION_ERROR","repo.explore pagination helpers do not support slugs mode")}async function _r(r){let e=[],t,n=new Set;for(;;){t&&n.add(t);let i=await r(t);if(e.push(...i.items),!i.nextCursor){if(i.repoSeq===void 0)throw new f("VALIDATION_ERROR","Incremental read completed without repoSeq");return {items:e,repoSeq:i.repoSeq}}Br(t,i.nextCursor,n),t=i.nextCursor;}}function Ee(r,e,t){return Number.isFinite(r)?Math.max(1,Math.min(t,Math.trunc(r))):e}function Nr(r,e){let t=[];for(let n=0;n<r.length;n+=e)t.push(r.slice(n,n+e));return t}function Ie(r){return r!==void 0&&q.includes(r)?r:void 0}function ee(r){let[e,t,n]=r;return typeof e=="string"?{orgName:e,repoName:t,name:n}:e}function Ai(r){let[e,t]=r;return typeof e=="string"?{orgName:e,repoName:t}:e}function vi(r){let[e,t,n,i]=r;return typeof e=="string"?{orgName:e,repoName:t,subscriptionName:n,credentialSetName:i}:e}function ki(r){let[e,t,n]=r;return typeof e=="string"?{orgName:e,repoName:t,subscriptionName:n}:e}function Ti(r){let{actionContainer:e,actionContainerConfig:t,...n}=r;return n}function _i(r){let{actionContainer:e,actionContainerConfig:t,...n}=r;return n}function ve(r){return !!r&&(!!r.shape||!!r.kind||!!r.about||!!r.match||!!r.componentRef||r.excludeComponents===true||(r.where?.length??0)>0)}function ke(r){return !!r&&(!!r.shape||!!r.about||!!r.match||!!r.componentRef||(r.where?.length??0)>0)}function Vr(r){let e=r.members;return Array.isArray(e)&&e.length>0}function Ni(r){let t=r.replace(/^wh:[^/]+\/[^/]+\//,"").replace(/@(?:HEAD|ALL|v\d+)$/,"").split("/")[0]?.toLowerCase();return t==="arc"||t==="bond"||t==="pair"||t==="set"||t==="list"?t:void 0}function Pi(r,e){if(ve(e.query)&&!ke(e.query))throw new f("VALIDATION_ERROR","Selector-backed collection sources require shape, about, match, componentRef, or where; kind and excludeComponents only narrow an existing selector.");if(e.sourceRepo&&!ke(e.query))throw new f("VALIDATION_ERROR","sourceRepo requires a selector-backed collection query");if(e.sourceRepo&&Vr(e))throw new f("VALIDATION_ERROR","sourceRepo cannot be combined with explicit members; use canonical wh:org/repo/... member wrefs or omit sourceRepo.");if(ve(e.query)&&r!=="set")throw new f("VALIDATION_ERROR","Selector-backed collection sources are only supported for set collections")}function Ks(r){return r??"off"}function Di(r){if(r!==void 0)switch(r){case "BAD_REQUEST":case "PARSE_ERROR":case "PAYLOAD_TOO_LARGE":case "UNPROCESSABLE_CONTENT":case "UNSUPPORTED_MEDIA_TYPE":return "VALIDATION_ERROR";case "METHOD_NOT_SUPPORTED":return "NOT_FOUND";case "UNAUTHORIZED":return "UNAUTHENTICATED";case "FORBIDDEN":return "FORBIDDEN";case "NOT_FOUND":return "NOT_FOUND";case "CONFLICT":return "CONFLICT";case "PRECONDITION_FAILED":return "PRECONDITION_FAILED";case "TOO_MANY_REQUESTS":return "RATE_LIMITED";default:return}}function Li(r){if(r===void 0||r===408)return;if(r===405)return "NOT_FOUND";if(r===412)return "PRECONDITION_FAILED";if(r===422)return "VALIDATION_ERROR";let e=Fr(r);return e!=="BACKEND"?e:r>=400&&r<500?"VALIDATION_ERROR":e}var Mi=[/\bselect\b.+?\bfrom\b/i,/\binsert\b.+?\binto\b/i,/\bupdate\b.+?\bset\b/i,/\bdelete\b.+?\bfrom\b/i,/\bparams:\s/i,/\.ts\(\d+,\d+\)/,/at\s+\S+\s+\(.*:\d+:\d+\)/,/node_modules\//,/drizzle/i];function ct(r){for(let e of Mi)if(e.test(r))return "An internal error occurred. Please try again or contact support.";return r}var f=class extends Error{code;status;hint;retryAfter;errorCode;backendCode;details;constructor(e,t,n,i,o,s,a){super(t),this.name="WarmHubError",this.code=e,this.status=n,this.hint=i,this.retryAfter=o,this.errorCode=s,this.backendCode=s,this.details=a;}get kind(){return this.code}};function Pr(r,e$1){if(typeof e$1!="string")return;let t=e(r,e$1);if(t)throw new f("VALIDATION_ERROR",t)}function p(r){if(r instanceof f)return r;if(r instanceof TRPCClientError){if(r.cause instanceof f)return r.cause;let e=r.data,t=e?.warmhub?.code,n=typeof e?.code=="string"?Di(e.code):void 0,i=Li(e?.httpStatus),o=e?.warmhub?.message??ct(r.message);return new f(t??n??i??"BACKEND",o,e?.warmhub?.status??e?.httpStatus,e?.warmhub?.hint,e?.warmhub?.retryAfter??e?.retryAfter,t,e?.warmhub?.details)}if(r instanceof Error){let e=r;return r.name==="WarmHubError"&&typeof e.code=="string"?new f(e.code,ct(r.message),typeof e.status=="number"?e.status:void 0,typeof e.hint=="string"?e.hint:void 0,typeof e.retryAfter=="number"?e.retryAfter:void 0,typeof e.errorCode=="string"?e.errorCode:typeof e.backendCode=="string"?e.backendCode:void 0,e.details):r.name==="AbortError"?new f("CANCELLED",r.message):r instanceof TypeError&&/fetch/i.test(r.message)?new f("NETWORK",r.message):new f("BACKEND",ct(r.message))}return new f("BACKEND","Unknown SDK error")}function qi(r){return r instanceof f}function zs(r){if(r instanceof N)return false;let e=p(r);return e.kind==="NETWORK"||e.kind==="CANCELLED"||e.kind==="BACKEND"||e.kind==="RATE_LIMITED"}var Bi=new Set(["ConnectionRefused","ECONNREFUSED","ENOTFOUND","ETIMEDOUT","EAI_AGAIN"]);function Ui(r){if(r instanceof TypeError&&/fetch/i.test(r.message))return true;if(r&&typeof r=="object"){let e=r.code;if(typeof e=="string"&&Bi.has(e))return true}return false}function Vi(r){return `Unable to connect to ${r}. Is the computer able to access the url?`}function js(r,e){if(F(r))return false;let t=A$1(r),n=A$1(e);return !t||!n?false:B$1(t,n)<0}function Hr(r,e){return new f("CLIENT_INCOMPATIBLE",r,412,e)}function Hi(r,e){let t=mr(r,e);if(t)throw Hr(t.message,t.hint)}var Dr=class r{apiUrl;fetchImpl;accessToken;clientIdentity;clientFlags;decorateResponses;functionLogMode;getToken;compatibilityCheck;overrideNoticePrinted=false;repositoryExport=Ge((e,t)=>this.fetchWithAuth(`${this.apiUrl.replace(/\/$/,"")}${e}`,t),e=>this.httpResponseError(e),(e,t)=>(this.fetchImpl??globalThis.fetch)(e,t));noteCompatibilityOverride(){this.overrideNoticePrinted||(this.overrideNoticePrinted=true,console.error(`warmhub: compatibility checks overridden by client flag ${g}; the server remains authoritative.`));}assertWriteCompatible(){return this.clientFlags.includes(g)?(this.noteCompatibilityOverride(),Promise.resolve()):F(this.clientIdentity.version)&&gr(this.apiUrl,Or)?Promise.reject(Hr(`Development client ${this.clientIdentity.name}/${this.clientIdentity.version} cannot write to production.`,"Install a released WarmHub client artifact before writing to api.warmhub.ai.")):F(this.clientIdentity.version)&&this.clientIdentity.name!==l?Promise.resolve():this.diagnostics.assertCompatible()}createCompatibilityLink(){return ()=>({op:e,next:t})=>e.type!=="mutation"||e.path==="commit.validate"?t(e):observable(n=>{let i=false,o;return (async()=>{try{await this.assertWriteCompatible();}catch(s){if(i)return;n.error(TRPCClientError.from(s));return}i||(o=t(e).subscribe(n));})(),()=>{i=true,o?.unsubscribe();}})}auth={getClientId:async()=>{try{return await this.trpc.auth.getClientId.query()}catch(e){throw p(e)}},sync:async()=>{try{return await this.trpc.auth.sync.mutate()}catch(e){throw p(e)}},currentUser:async()=>{try{return await this.trpc.auth.currentUser.query()}catch(e){throw p(e)}},whoami:async()=>{try{return await this.trpc.auth.whoami.query()}catch(e){throw p(e)}}};homepage={featuredLists:async()=>{try{return await this.trpc.homepage.featuredLists.query()}catch(e){throw p(e)}}};access={resolve:async e=>{try{return await this.trpc.access.resolve.query(e)}catch(t){throw p(t)}}};diagnostics={ping:async()=>{let e=await this.fetchWithAuth(`${this.apiUrl.replace(/\/$/,"")}/health`);if(!e.ok)throw new f("BACKEND",`Health request failed with status ${e.status}`,e.status);return await e.json()},capabilities:async()=>{try{return await this.trpc.diagnostics.capabilities.query()}catch(e){throw p(e)}},assertCompatible:()=>{if(this.compatibilityCheck)return this.compatibilityCheck;let e=(async()=>{let t=await this.diagnostics.capabilities();Hi(t,this.clientIdentity);})();return this.compatibilityCheck=e,e.catch(t=>{qi(t)&&t.code==="CLIENT_INCOMPATIBLE"||this.compatibilityCheck===e&&(this.compatibilityCheck=void 0);}),e}};component={list:async(e,t,n)=>{try{return await this.trpc.component.list.query({orgName:e,repoName:t,limit:n?.limit,cursor:n?.cursor})}catch(i){throw p(i)}},listIter:(e,t,n)=>w(i=>this.component.list(e,t,{...n,cursor:i}),i=>i.items,n?.cursor),listAll:async(e,t,n)=>{let{max:i,...o}=n??{};return await C(s=>this.component.list(e,t,{...o,cursor:s}),s=>s.items,i,o.cursor)},search:async(e,t)=>{try{return await this.trpc.component.search.query({query:e,limit:t?.limit,cursor:t?.cursor})}catch(n){throw p(n)}},searchIter:(e,t)=>w(n=>this.component.search(e,{...t,cursor:n}),n=>n.items,t?.cursor),searchAll:async(e,t)=>{let{max:n,...i}=t??{};return await C(o=>this.component.search(e,{...i,cursor:o}),o=>o.items,n,i.cursor)},get:async(e,t,n)=>{try{return await this.trpc.component.get.query({orgName:e,repoName:t,componentRef:n})}catch(i){throw p(i)}},history:async(e,t,n)=>{try{return await this.trpc.component.history.query({orgName:e,repoName:t,componentRef:n?.componentRef,limit:n?.limit})}catch(i){throw p(i)}},install:async(e,t,n,i)=>{try{return await this.trpc.component.install.mutate({orgName:e,repoName:t,componentRef:n,submissionId:i.submissionId})}catch(o){throw p(o)}},uninstall:async(e,t,n,i)=>{try{return await this.trpc.component.uninstall.mutate({orgName:e,repoName:t,componentRef:n,submissionId:i.submissionId})}catch(o){throw p(o)}},registry:{register:async(e,t,n)=>{try{return await this.trpc.component.registry.register.mutate({orgName:e,componentName:t,...n})}catch(i){throw p(i)}},unregister:async(e,t)=>{try{return await this.trpc.component.registry.unregister.mutate({orgName:e,componentName:t})}catch(n){throw p(n)}},list:async e=>{try{return await this.trpc.component.registry.list.query({orgName:e})}catch(t){throw p(t)}},view:async(e,t)=>{try{return await this.trpc.component.registry.view.query({orgName:e,componentName:t})}catch(n){throw p(n)}},update:async(e,t,n)=>{try{return await this.trpc.component.registry.update.mutate({orgName:e,componentName:t,...n})}catch(i){throw p(i)}},resolve:async(e,t,n)=>await this.requestJson(`/api/component-registry/${encodeURIComponent(e)}/${encodeURIComponent(t)}/resolve`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({installRepo:n})}),setupCall:async(e,t,n)=>(await this.assertWriteCompatible(),await this.requestJson(`/api/component-registry/${encodeURIComponent(e)}/${encodeURIComponent(t)}/setup-call`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(n)}))},cli:{call:async(e,t,n,i)=>(await this.assertWriteCompatible(),await this.requestJson(`/api/component-registry/${encodeURIComponent(e)}/${encodeURIComponent(t)}/cli/${encodeURIComponent(n)}`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(i)}))}};commit={validate:async(e,t,n,i)=>{try{return await this.trpc.commit.validate.mutate({orgName:e,repoName:t,committer:i?.committer,message:i?.message,componentRef:i?.componentRef,operations:He(n,i?.skipExisting),includeWouldBeBody:i?.includeWouldBeBody},{signal:i?.signal})}catch(o){throw p(o)}},apply:async(e,t,n,i,o)=>{try{return await H(this,{orgName:e,repoName:t,committer:o?.committer,message:n,componentRef:o?.componentRef,chunkSize:o?.chunkSize,skipExisting:o?.skipExisting,streamId:o?.streamId,submissionId:o?.submissionId,returnRepoSeq:o?.returnRepoSeq,retry:o?.retry,operations:i})}catch(s){throw s instanceof A||s instanceof _?s:p(s)}},applyStreaming:(e,t,n,i,o)=>dr({orgName:e,repoName:t,message:n,operations:i,options:o},{prepare:async s=>await this.prepareStreamingSubmissionRequest(s),localError:(s,a)=>new f(s,a),normalizeLocalError:p}),getReceipt:async(e,t,n)=>{try{return await this.trpc.commit.getReceipt.query({orgName:e,repoName:t,eventRequestId:n})}catch(i){throw p(i)}}};org={get:async e=>{try{return await this.trpc.org.get.query({orgName:e})}catch(t){throw p(t)}},getCallerRole:async e=>{try{return await this.trpc.org.getCallerRole.query({orgName:e})}catch(t){throw p(t)}},list:async e=>{try{return {items:await this.trpc.org.list.query({includeArchived:e?.includeArchived})}}catch(t){throw p(t)}},create:async(e,t,n)=>{try{return await this.trpc.org.create.mutate({name:e,displayName:t,description:n})}catch(i){throw p(i)}},setDescription:async(e,t)=>{try{return await this.trpc.org.setDescription.mutate({orgName:e,description:t})}catch(n){throw p(n)}},setDisplayName:async(e,t)=>{try{return await this.trpc.org.setDisplayName.mutate({orgName:e,displayName:t})}catch(n){throw p(n)}},rename:async(e,t)=>{try{return await this.trpc.org.rename.mutate({orgName:e,newName:t})}catch(n){throw p(n)}},update:async e=>{try{return await this.trpc.org.update.mutate(e)}catch(t){throw p(t)}},addMember:async(e,t,n="editor")=>{try{return await this.trpc.org.addMember.mutate({orgName:e,email:t,role:n})}catch(i){throw p(i)}},removeMember:async(e,t)=>{try{await this.trpc.org.removeMember.mutate({orgName:e,email:t});}catch(n){throw p(n)}},leave:async e=>{try{await this.trpc.org.leave.mutate({orgName:e});}catch(t){throw p(t)}},changeMemberRole:async(e,t,n)=>{try{return await this.trpc.org.changeMemberRole.mutate({orgName:e,email:t,role:n})}catch(i){throw p(i)}},setMemberScopes:async(e,t,n)=>{try{await this.trpc.org.setMemberScopes.mutate({orgName:e,email:t,scopes:n});}catch(i){throw p(i)}},clearMemberScopes:async(e,t)=>{try{await this.trpc.org.clearMemberScopes.mutate({orgName:e,email:t});}catch(n){throw p(n)}},listMembers:async(e,t)=>{try{return await this.trpc.org.listMembers.query({orgName:e,pending:t?.pending})}catch(n){throw p(n)}},archive:async e=>{try{return await this.trpc.org.archive.mutate({orgName:e})}catch(t){throw p(t)}},unarchive:async e=>{try{return await this.trpc.org.unarchive.mutate({orgName:e})}catch(t){throw p(t)}}};repo={checkpoint:Ut(()=>this.trpc,p),export:(e,t,n)=>this.repositoryExport.stream(e,t,n),exportPrepare:(e,t,n)=>this.repositoryExport.prepare(e,t,n),get:async(e,t)=>{try{return await this.trpc.repo.get.query({orgName:e,repoName:t})}catch(n){throw p(n)}},getStats:async(e,t)=>{try{return await this.trpc.repo.stats.query({orgName:e,repoName:t})}catch(n){throw p(n)}},getStatsBatch:async(e,t)=>{try{return await this.trpc.repo.statsBatch.query({orgName:e,repoNames:t})}catch(n){throw p(n)}},getConfigureStats:async(e,t)=>{try{return await this.trpc.repo.configureStats.query({orgName:e,repoName:t})}catch(n){throw p(n)}},getShapeInstanceCounts:async(e,t)=>{try{return await this.trpc.repo.shapeInstanceCounts.query({orgName:e,repoName:t})}catch(n){throw p(n)}},list:async(e,t)=>{try{return await this.trpc.repo.list.query({orgName:e,limit:t?.limit,cursor:t?.cursor,includeArchived:t?.includeArchived,search:t?.search,sort:t?.sort})}catch(n){throw p(n)}},listIter:(e,t)=>w(n=>this.repo.list(e,{...t,cursor:n}),n=>n.items,t?.cursor),listAll:async(e,t)=>{let{max:n,...i}=t??{};return await C(o=>this.repo.list(e,{...i,cursor:o}),o=>o.items,n,i.cursor)},search:async(e,t)=>{try{return await this.trpc.repo.search.query({query:e,limit:t?.limit,cursor:t?.cursor})}catch(n){throw p(n)}},searchIter:(e,t)=>w(n=>this.repo.search(e,{...t,cursor:n}),n=>n.items,t?.cursor),searchAll:async(e,t)=>{let{max:n,...i}=t??{};return await C(o=>this.repo.search(e,{...i,cursor:o}),o=>o.items,n,i.cursor)},create:async(e,t,n,i,o)=>{try{return await this.trpc.repo.create.mutate({orgName:e,repoName:t,description:n,visibility:i,displayName:o})}catch(s){throw p(s)}},setDescription:async(e,t,n)=>{try{return await this.trpc.repo.setDescription.mutate({orgName:e,repoName:t,description:n})}catch(i){throw p(i)}},setDisplayName:async(e,t,n)=>{try{return await this.trpc.repo.setDisplayName.mutate({orgName:e,repoName:t,displayName:n})}catch(i){throw p(i)}},setVisibility:async(e,t,n)=>{try{return await this.trpc.repo.setVisibility.mutate({orgName:e,repoName:t,visibility:n})}catch(i){throw p(i)}},rename:async(e,t,n)=>{try{return await this.trpc.repo.rename.mutate({orgName:e,repoName:t,newName:n})}catch(i){throw p(i)}},update:async e=>{try{return await this.trpc.repo.update.mutate(e)}catch(t){throw p(t)}},archive:async(e,t)=>{try{return await this.trpc.repo.archive.mutate({orgName:e,repoName:t})}catch(n){throw p(n)}},unarchive:async(e,t)=>{try{return await this.trpc.repo.unarchive.mutate({orgName:e,repoName:t})}catch(n){throw p(n)}},delete:async(e,t)=>{try{let n=await this.trpc.repo.delete.mutate({orgName:e,repoName:t});return {graceExpiresAt:new Date(n.graceExpiresAt)}}catch(n){throw p(n)}},listPage:async(e,t)=>{try{return await this.trpc.repo.listPage.query({orgName:e,limit:t?.limit,cursor:t?.cursor,includeArchived:t?.includeArchived,search:t?.search,sort:t?.sort})}catch(n){throw p(n)}},listPageIter:(e,t)=>w(n=>this.repo.listPage(e,{...t,cursor:n}),n=>n.items,t?.cursor),listPageAll:async(e,t)=>{let{max:n,...i}=t??{};return await C(o=>this.repo.listPage(e,{...i,cursor:o}),o=>o.items,n,i.cursor)},listForCaller:async e=>{try{return await this.trpc.repo.listForCaller.query({limit:e?.limit,sort:e?.sort})}catch(t){throw p(t)}},explore:async e=>{try{return await this.trpc.repo.explore.query({search:e?.search,org:e?.org,activity:e?.activity,hasSubscriptions:e?.hasSubscriptions,minThings:e?.minThings,sort:e?.sort,limit:e?.limit,cursor:e?.cursor,slugs:e?.slugs})}catch(t){throw p(t)}},exploreIter:e=>(Tr(e),w(t=>this.repo.explore({...e,cursor:t}),t=>t.items,e?.cursor)),exploreAll:async e=>{Tr(e);let{max:t,...n}=e??{};return await C(i=>this.repo.explore({...n,cursor:i}),i=>i.items,t,n.cursor)},getReadme:async(e,t)=>{try{return await this.trpc.repo.getReadme.query({orgName:e,repoName:t})}catch(n){throw p(n)}},getAgents:async(e,t)=>{try{return await this.trpc.repo.getAgents.query({orgName:e,repoName:t})}catch(n){throw p(n)}},getLicense:async(e,t)=>{try{return await this.trpc.repo.getLicense.query({orgName:e,repoName:t})}catch(n){throw p(n)}},describe:async(e,t,n={})=>{try{return await this.trpc.repo.describe.query({orgName:e,repoName:t,includeHead:n.includeHead})}catch(i){throw p(i)}},setReadme:async(e,t,n,i)=>{try{return Pr("Content/Readme.content",n),await this.trpc.repo.setReadme.mutate({orgName:e,repoName:t,eventRequestId:i.eventRequestId,content:n})}catch(o){throw p(o)}},setAgents:async(e,t,n,i)=>{try{return Pr("Content/Agents.content",n),await this.trpc.repo.setAgents.mutate({orgName:e,repoName:t,eventRequestId:i.eventRequestId,content:n})}catch(o){throw p(o)}},getLlmsTxt:async(e,t)=>{try{return await this.trpc.repo.getLlmsTxt.query({orgName:e,repoName:t})}catch(n){throw p(n)}},index:{describe:async(e,t)=>{try{return await this.trpc.repo.index.describe.query({orgName:e,repoName:t})}catch(n){throw p(n)}},pin:async(e,t,n,i)=>{try{return await this.trpc.repo.index.pin.mutate({orgName:e,repoName:t,shape:n,fieldPath:i})}catch(o){throw p(o)}},unpin:async(e,t,n,i)=>{try{return await this.trpc.repo.index.unpin.mutate({orgName:e,repoName:t,shape:n,fieldPath:i})}catch(o){throw p(o)}}}};shape={list:async(e,t,n)=>{try{return await this.trpc.shape.list.query({orgName:e,repoName:t,match:n?.match,componentRef:n?.componentRef,excludeComponents:n?.excludeComponents,includeRetracted:n?.includeRetracted})}catch(i){throw p(i)}},get:async(e,t,n,i)=>{try{return await this.trpc.shape.get.query({orgName:e,repoName:t,shapeName:n,includeRetracted:i?.includeRetracted})}catch(o){throw p(o)}},create:async(e,t,n,i,o)=>{let s=J(n,{fields:i,...o.description!==void 0?{description:o.description}:{},...o.composes!==void 0?{composes:o.composes}:{}},"add");if(s)throw new f("VALIDATION_ERROR",s);try{return await this.trpc.shape.create.mutate({orgName:e,repoName:t,shapeName:n,fields:i,eventRequestId:o.eventRequestId,description:o.description,composes:o.composes})}catch(a){throw p(a)}},revise:async(...e)=>{let[t,n,i]=e,o=e.length===5?e[3]:void 0,s=e.length===5?e[4]:e[3],a=o?J(i,{fields:o,...s.description!==void 0?{description:s.description}:{},...s.composes!==void 0?{composes:s.composes}:{}},"revise"):void 0;if(a)throw new f("VALIDATION_ERROR",a);try{return await this.trpc.shape.revise.mutate({orgName:t,repoName:n,shapeName:i,newFields:o,eventRequestId:s.eventRequestId,description:s.description,composes:s.composes})}catch(c){throw p(c)}},remove:async(e,t,n,i)=>{try{return await this.trpc.shape.remove.mutate({orgName:e,repoName:t,shapeName:n,eventRequestId:i.eventRequestId})}catch(o){throw p(o)}},rename:async(e,t,n,i,o)=>{try{return await this.trpc.shape.rename.mutate({orgName:e,repoName:t,oldName:n,newName:i,eventRequestId:o.eventRequestId})}catch(s){throw p(s)}},history:async(e,t,n,i={})=>{try{return await this.trpc.shape.history.query({orgName:e,repoName:t,name:n,includeRetracted:i.includeRetracted,limit:i.limit,cursor:i.cursor})}catch(o){throw p(o)}},historyIter:(e,t,n,i={})=>w(o=>this.shape.history(e,t,n,{...i,cursor:o}),o=>o.versions,i.cursor),historyAll:async(e,t,n,i)=>{let{max:o,...s}=i??{};return await C(a=>this.shape.history(e,t,n,{...s,cursor:a}),a=>a.versions,o,s.cursor)}};subscription={create:async e=>{try{let t=await this.trpc.subscription.create.mutate(Ti(e));return Ae(t)}catch(t){throw p(t)}},get:async(...e)=>{try{let t=await this.trpc.subscription.get.query(ee(e));return Ae(t)}catch(t){throw p(t)}},reveal:async(...e)=>{try{return await this.trpc.subscription.reveal.query(ee(e))}catch(t){throw p(t)}},list:async(...e)=>{try{let t=await this.trpc.subscription.list.query(Ai(e));return Ii(t)}catch(t){throw p(t)}},update:async e=>{try{let t=await this.trpc.subscription.update.mutate(_i(e));return Ae(t)}catch(t){throw p(t)}},pause:async(...e)=>{try{return await this.trpc.subscription.pause.mutate(ee(e))}catch(t){throw p(t)}},resume:async(...e)=>{try{return await this.trpc.subscription.resume.mutate(ee(e))}catch(t){throw p(t)}},remove:async(...e)=>{try{return await this.trpc.subscription.remove.mutate(ee(e))}catch(t){throw p(t)}},bindCredentials:async(...e)=>{try{return await this.trpc.subscription.bindCredentials.mutate(vi(e))}catch(t){throw p(t)}},unbindCredentials:async(...e)=>{try{return await this.trpc.subscription.unbindCredentials.mutate(ki(e))}catch(t){throw p(t)}}};action={acquireLease:async(e,t,n,i,o,s)=>{try{return await this.trpc.action.acquireLease.mutate({orgName:e,repoName:t,subscriptionName:n,holderId:i,holderType:o,graceMs:s?.graceMs,ttlMs:s?.ttlMs})}catch(a){throw p(a)}},heartbeatLease:async(e,t,n,i,o)=>{try{return await this.trpc.action.heartbeatLease.mutate({orgName:e,repoName:t,subscriptionName:n,holderId:i,ttlMs:o})}catch(s){throw p(s)}},releaseLease:async(e,t,n,i)=>{try{return await this.trpc.action.releaseLease.mutate({orgName:e,repoName:t,subscriptionName:n,holderId:i})}catch(o){throw p(o)}},claimDelivery:async(e,t,n,i)=>{let o=typeof n=="string"?{runId:n}:n;try{return await this.trpc.action.claimDelivery.mutate({orgName:e,repoName:t,...o,holderId:i})}catch(s){throw p(s)}},completeDelivery:async(e,t,n,i)=>{let o=typeof n=="string"?{runId:n}:n;try{return await this.trpc.action.completeDelivery.mutate({orgName:e,repoName:t,...o,holderId:i})}catch(s){throw p(s)}},liveFeed:async(e,t,n,i)=>{try{return await this.trpc.action.liveFeed.query({orgName:e,repoName:t,subscriptionName:n,limit:i?.limit,cursor:i?.cursor})}catch(o){throw p(o)}},liveFeedIter:(e,t,n,i)=>w(o=>this.action.liveFeed(e,t,n,{...i,cursor:o}),o=>o.items,i?.cursor),liveFeedAll:async(e,t,n,i)=>{let{max:o,...s}=i??{};return await C(a=>this.action.liveFeed(e,t,n,{...s,cursor:a}),a=>a.items,o,s.cursor)},listRuns:async(e,t,n)=>{try{return await this.trpc.action.listRuns.query({orgName:e,repoName:t,runId:n?.runId,subscriptionName:n?.subscriptionName,status:n?.status,outcome:n?.outcome,since:n?.since,cursor:n?.cursor,limit:n?.limit})}catch(i){throw p(i)}},listRunsIter:(e,t,n)=>w(i=>this.action.listRuns(e,t,{...n,since:i===void 0?n?.since:void 0,cursor:i}),i=>i.items,n?.cursor),listRunsAll:async(e,t,n)=>{let{max:i,...o}=n??{};return await C(s=>this.action.listRuns(e,t,{...o,since:s===void 0?o.since:void 0,cursor:s}),s=>s.items,i,o.cursor)},latestRuns:async(e,t)=>{try{return await this.trpc.action.latestRuns.query({orgName:e,repoName:t})}catch(n){throw p(n)}},runStats:async(e,t,n)=>{try{return await this.trpc.action.runStats.query({orgName:e,repoName:t,subscriptionName:n?.subscriptionName,since:n?.since})}catch(i){throw p(i)}},getRunAttempts:async(e,t,n)=>{try{return await this.trpc.action.getRunAttempts.query({orgName:e,repoName:t,runId:n})}catch(i){throw p(i)}},listNotifications:async(e,t,n)=>{try{return await this.trpc.action.listNotifications.query({orgName:e,repoName:t,since:n?.since,limit:n?.limit})}catch(i){throw p(i)}}};collection={create:async(e,t,n)=>{try{return Pi(n.type,n),await this.trpc.collection.create.mutate({orgName:e,repoName:t,eventRequestId:n.eventRequestId,type:n.type,name:n.name,members:n.members,from:n.from,add:n.add,remove:n.remove,replaceMembers:n.replaceMembers,query:n.query,sourceOrgName:n.sourceRepo?.orgName,sourceRepoName:n.sourceRepo?.repoName,skipExisting:n.skipExisting,message:n.message,committer:n.committer})}catch(i){throw p(i)}},members:async(e,t,n,i)=>{try{return await this.trpc.collection.members.query({orgName:e,repoName:t,wref:n,version:i?.version,limit:i?.limit,cursor:i?.cursor,shape:i?.shape})}catch(o){throw p(o)}},membersIter:(e,t,n,i)=>{let o=i?.version;return w(async s=>{let a=await this.collection.members(e,t,n,{...i,version:o,cursor:s});return o??=a.version,a},s=>s.items,i?.cursor)},membersAll:async(e,t,n,i)=>{let{max:o,...s}=i??{},a=s.version;return await C(async c=>{let u=await this.collection.members(e,t,n,{...s,version:a,cursor:c});return a??=u.version,u},c=>c.items,o,s.cursor)},contains:async(e,t,n,i,o)=>{try{return await this.trpc.collection.contains.query({orgName:e,repoName:t,wref:n,version:o?.version,members:i,position:o?.position,shape:o?.shape})}catch(s){throw p(s)}},diff:async(e,t,n,i,o)=>{try{return await this.trpc.collection.diff.query({orgName:e,repoName:t,leftWref:n,rightWref:i,leftVersion:o?.leftVersion,rightVersion:o?.rightVersion,mode:o?.mode,shape:o?.shape})}catch(s){throw p(s)}},revise:async(e,t,n,i)=>{try{let o=Ni(n);if(ve(i.query)&&!ke(i.query))throw new f("VALIDATION_ERROR","Selector-backed collection sources require shape, about, match, componentRef, or where; kind and excludeComponents only narrow an existing selector.");if(i.sourceRepo&&!ke(i.query))throw new f("VALIDATION_ERROR","sourceRepo requires a selector-backed collection query");if(i.sourceRepo&&Vr(i))throw new f("VALIDATION_ERROR","sourceRepo cannot be combined with explicit members; use canonical wh:org/repo/... member wrefs or omit sourceRepo.");if(ve(i.query)&&o&&o!=="set")throw new f("VALIDATION_ERROR","Selector-backed revise requires a Set/<name> target wref");return await this.trpc.collection.revise.mutate({orgName:e,repoName:t,eventRequestId:i.eventRequestId,wref:n,members:i.members,add:i.add,remove:i.remove,query:i.query,sourceOrgName:i.sourceRepo?.orgName,sourceRepoName:i.sourceRepo?.repoName,message:i.message,committer:i.committer})}catch(o){throw p(o)}},stats:async(e,t,n,i)=>{try{return await this.trpc.collection.stats.query({orgName:e,repoName:t,wref:n,version:i?.version,shape:i?.shape})}catch(o){throw p(o)}}};view={evaluate:async(e,t,n,i)=>{try{return await this.trpc.view.evaluate.query({orgName:e,repoName:t,wref:n,limit:i?.limit,cursor:i?.cursor})}catch(o){throw p(o)}},evaluateIter:(e,t,n,i)=>w(o=>this.view.evaluate(e,t,n,{...i,cursor:o}),o=>o.items,i?.cursor),evaluateAll:async(e,t,n,i)=>{let{max:o,...s}=i??{};return await C(a=>this.view.evaluate(e,t,n,{...s,cursor:a}),a=>a.items,o,s.cursor)}};grant=Mt(()=>this.trpc,p);thing={head:async(e,t,n)=>{try{return await this.trpc.thing.head.query({orgName:e,repoName:t,shape:n?.shape,declaredShape:n?.declaredShape,includeValidatedShapes:n?.includeValidatedShapes,kind:Ie(n?.kind),match:n?.match,dataMode:n?.dataMode,includeRetracted:n?.includeRetracted,limit:n?.limit,cursor:n?.cursor,componentRef:n?.componentRef,excludeComponents:n?.excludeComponents,excludeInfraShapes:n?.excludeInfraShapes,where:n?.where,sinceRepoSeq:n?.sinceRepoSeq})}catch(i){throw p(i)}},headIter:(e,t,n)=>w(i=>this.thing.head(e,t,{...n,cursor:i}),i=>i.items,n?.cursor),headAll:async(e,t,n)=>{let{max:i,...o}=n??{};return await C(s=>this.thing.head(e,t,{...o,cursor:s}),s=>s.items,i,o.cursor)},headChanges:async(e,t,n)=>(kr(n?.sinceRepoSeq),await _r(i=>this.thing.head(e,t,{...n,includeRetracted:true,cursor:i}))),get:async(e,t,n,i,o)=>{try{return await this.trpc.thing.get.query({orgName:e,repoName:t,wref:n,version:i,includeRetracted:o?.includeRetracted,dataMode:o?.dataMode})}catch(s){throw p(s)}},getWithLease:async(e,t,n,i)=>{try{return await this.trpc.thing.getWithLease.mutate({orgName:e,repoName:t,wref:n,ttlMs:i?.ttlMs})}catch(o){throw p(o)}},releaseLease:async(e,t,n,i)=>{try{await this.trpc.thing.releaseLease.mutate({orgName:e,repoName:t,wref:n,leaseId:i});}catch(o){throw p(o)}},graph:async(e,t,n,i)=>{try{return await this.trpc.thing.graph.query({orgName:e,repoName:t,wref:n,version:i?.version,depth:i?.depth,limit:i?.limit})}catch(o){throw p(o)}},getMany:async(e,t,n,i,o)=>{try{if(n.length===0)return {requested:0,items:[],missing:[]};let s=Ee(o?.chunkSize,Er,Ir),a=Ee(o?.chunkConcurrency,Ar,vr),c=async m=>await this.trpc.thing.getMany.query({orgName:e,repoName:t,wrefs:m,version:i,includeRetracted:o?.includeRetracted,dataMode:o?.dataMode});if(n.length<=s)return await c(n);let u=Nr(n,s),l=[];for(let m=0;m<u.length;m+=a){let g=u.slice(m,m+a),h=await Promise.all(g.map(c));l.push(...h);}return {requested:n.length,items:l.flatMap(m=>m.items),missing:l.flatMap(m=>m.missing)}}catch(s){throw p(s)}},headVersions:async(e,t,n,i)=>{try{if(n.length===0)return {requested:0,items:[],missing:[]};let o=Ee(i?.chunkSize,Er,Ir),s=Ee(i?.chunkConcurrency,Ar,vr),a=async l=>await this.trpc.thing.headVersions.query({orgName:e,repoName:t,wrefs:l});if(n.length<=o)return await a(n);let c=Nr(n,o),u=[];for(let l=0;l<c.length;l+=s){let m=c.slice(l,l+s),g=await Promise.all(m.map(a));u.push(...g);}return {requested:n.length,items:u.flatMap(l=>l.items),missing:u.flatMap(l=>l.missing)}}catch(o){throw p(o)}},history:async(e,t,n)=>{try{return await this.trpc.thing.history.query({orgName:e,repoName:t,wref:n.wref,shape:n.shape,declaredShape:n.declaredShape,about:n.about,includeRetracted:n.includeRetracted,resolveCollections:n.resolveCollections,match:n.match,limit:n.limit,cursor:n.cursor})}catch(i){throw p(i)}},historyIter:(e,t,n)=>w(i=>this.thing.history(e,t,{...n,cursor:i}),i=>i.versions,n.cursor),historyAll:async(e,t,n)=>{let{max:i,...o}=n;return await C(s=>this.thing.history(e,t,{...o,cursor:s}),s=>s.versions,i,o.cursor)},rename:async(e,t,n,i,o,s)=>{try{return await this.trpc.thing.rename.mutate({orgName:e,repoName:t,shapeName:n,oldName:i,newName:o,eventRequestId:s.eventRequestId})}catch(a){throw p(a)}},resolve:async(e,t,n)=>{try{return await this.trpc.thing.resolve.query({orgName:e,repoName:t,wref:n})}catch(i){throw p(i)}},about:async(e,t,n,i)=>{try{return await this.trpc.thing.about.query({orgName:e,repoName:t,wref:n,shape:i?.shape,match:i?.match,includeRetracted:i?.includeRetracted,depth:i?.depth,resolveCollections:i?.resolveCollections,role:i?.role,limit:i?.limit,cursor:i?.cursor,where:i?.where})}catch(o){throw p(o)}},aboutIter:(e,t,n,i)=>w(o=>this.thing.about(e,t,n,{...i,cursor:o}),o=>o.assertions,i?.cursor),aboutAll:async(e,t,n,i)=>{let{max:o,...s}=i??{};return await C(a=>this.thing.about(e,t,n,{...s,cursor:a}),a=>a.assertions,o,s.cursor)},query:async(e,t,n)=>{try{return await this.trpc.thing.query.query({orgName:e,repoName:t,shape:n?.shape,declaredShape:n?.declaredShape,includeValidatedShapes:n?.includeValidatedShapes,about:n?.about,affirmedAbout:n?.affirmedAbout,kind:Ie(n?.kind),match:n?.match,includeRetracted:n?.includeRetracted,resolveCollections:n?.resolveCollections,role:n?.role,limit:n?.limit,cursor:n?.cursor,componentRef:n?.componentRef,excludeComponents:n?.excludeComponents,excludeInfraShapes:n?.excludeInfraShapes,where:n?.where,sinceRepoSeq:n?.sinceRepoSeq})}catch(i){throw p(i)}},queryIter:(e,t,n)=>w(i=>this.thing.query(e,t,{...n,cursor:i}),i=>i.items,n?.cursor),queryAll:async(e,t,n)=>{let{max:i,...o}=n??{};return await C(s=>this.thing.query(e,t,{...o,cursor:s}),s=>s.items,i,o.cursor)},queryChanges:async(e,t,n)=>(kr(n?.sinceRepoSeq),await _r(i=>this.thing.query(e,t,{...n,includeRetracted:true,cursor:i}))),search:async(e,t,n,i)=>{try{return await this.trpc.thing.search.query({orgName:e,repoName:t,query:n,shape:i?.shape,about:i?.about,affirmedAbout:i?.affirmedAbout,kind:Ie(i?.kind),match:i?.match,includeRetracted:i?.includeRetracted,resolveCollections:i?.resolveCollections,limit:i?.limit,cursor:i?.cursor,componentRef:i?.componentRef,excludeComponents:i?.excludeComponents,excludeInfraShapes:i?.excludeInfraShapes,mode:i?.mode,nameMatch:i?.nameMatch})}catch(o){throw p(o)}},searchIter:(e,t,n,i)=>w(o=>this.thing.search(e,t,n,{...i,cursor:o}),o=>o.items,i?.cursor),searchAll:async(e,t,n,i)=>{let{max:o,...s}=i??{};return await C(a=>this.thing.search(e,t,n,{...s,cursor:a}),a=>a.items,o,s.cursor)},count:async(e,t,n)=>{try{return await this.trpc.thing.count.query({orgName:e,repoName:t,shape:n?.shape,declaredShape:n?.declaredShape,about:n?.about,affirmedAbout:n?.affirmedAbout,kind:Ie(n?.kind),match:n?.match,includeRetracted:n?.includeRetracted,resolveCollections:n?.resolveCollections,componentRef:n?.componentRef,excludeComponents:n?.excludeComponents,excludeInfraShapes:n?.excludeInfraShapes,where:n?.where,sinceRepoSeq:n?.sinceRepoSeq})}catch(i){throw p(i)}},refs:async(e,t,n,i)=>{try{return await this.trpc.thing.refs.query({orgName:e,repoName:t,wref:n,direction:i?.direction,fieldPath:i?.fieldPath,binding:i?.binding,limit:i?.limit,cursor:i?.cursor})}catch(o){throw p(o)}},refsIter:(e,t,n,i)=>w(o=>this.thing.refs(e,t,n,{...i,cursor:o}),o=>o.items,i?.cursor),refsAll:async(e,t,n,i)=>{let{max:o,...s}=i??{};return await C(a=>this.thing.refs(e,t,n,{...s,cursor:a}),a=>a.items,o,s.cursor)}};live={thingHead:async(e,t,n,i)=>this.watchRepoQuery(e,t,n?.signal,()=>this.thing.head(e,t,{shape:n?.shape,declaredShape:n?.declaredShape,includeValidatedShapes:n?.includeValidatedShapes,kind:n?.kind,match:n?.match,dataMode:n?.dataMode,limit:n?.limit,cursor:n?.cursor,includeRetracted:n?.includeRetracted,where:n?.where}),i),thingHistory:async(e,t,n,i)=>this.watchRepoQuery(e,t,n.signal,()=>this.thing.history(e,t,{wref:n.wref,shape:n.shape,declaredShape:n.declaredShape,about:n.about,resolveCollections:n.resolveCollections,match:n.match,limit:n.limit,cursor:n.cursor,includeRetracted:n.includeRetracted}),i),subscriptionLog:async(e,t,n,i,o)=>this.watchRepoQuery(e,t,i?.signal,()=>this.action.liveFeed(e,t,n,{limit:i?.limit,cursor:i?.cursor}),o),subscribe:async(e,t,n,i)=>{let o=new AbortController,s=Lr(n?.signal,o),a=0,c=(async()=>{let u=await this.trpc.live.issueTicket.mutate({orgName:e,repoName:t}),l=await this.openSse(u.ticket,s,async m=>{if(m.type!=="invalidate")return;let g=m.data;a++,await i({topic:g.topic,affectedShapes:g.affectedShapes,affectedThings:g.affectedThings,affectedTargets:g.affectedTargets,hasNewCommit:g.hasNewCommit});});return await l.ready,s.aborted?{updates:a}:(await l.closed,{updates:a})})();return {close(){o.abort();},closed:c}}};token={create:async e=>{try{return await this.trpc.token.create.mutate(e)}catch(t){throw p(t)}},list:async e=>{try{return await this.trpc.token.list.query(e?.includeInactive?{includeInactive:!0}:void 0)}catch(t){throw p(t)}},get:async e=>{try{return await this.trpc.token.get.query({name:e})}catch(t){throw p(t)}},revoke:async e=>{try{return await this.trpc.token.revoke.mutate({name:e})}catch(t){throw p(t)}}};stream={append:async e=>{try{return await this.trpc.stream.append.mutate(e)}catch(t){throw p(t)}}};credential={createSet:async(e,t,n,i)=>{try{return await this.trpc.credential.createSet.mutate({orgName:e,repoName:t,name:n,scope:i?.scope??"repo",description:i?.description})}catch(o){throw p(o)}},listSets:async(e,t)=>{try{return await this.trpc.credential.listSets.query({orgName:e,repoName:t})}catch(n){throw p(n)}},getSet:async(e,t,n)=>{try{return await this.trpc.credential.getSet.query({orgName:e,repoName:t,name:n})}catch(i){throw p(i)}},setKey:async(e,t,n,i,o)=>{try{return await this.trpc.credential.setKey.mutate({orgName:e,repoName:t,setName:n,keyName:i,value:o})}catch(s){throw p(s)}},setKeys:async(e,t,n,i)=>{try{return await this.trpc.credential.setKeys.mutate({orgName:e,repoName:t,setName:n,secrets:i})}catch(o){throw p(o)}},unsetKey:async(e,t,n,i)=>{try{return await this.trpc.credential.unsetKey.mutate({orgName:e,repoName:t,setName:n,keyName:i})}catch(o){throw p(o)}},deleteSet:async(e,t,n)=>{try{return await this.trpc.credential.deleteSet.mutate({orgName:e,repoName:t,setName:n})}catch(i){throw p(i)}},listAuditLog:async(e,t,n,i)=>{try{return await this.trpc.credential.listAuditLog.query({orgName:e,repoName:t,setName:n,limit:i?.limit})}catch(o){throw p(o)}},revokeSet:async(e,t,n,i)=>{try{return await this.trpc.credential.revokeSet.mutate({orgName:e,repoName:t,setName:n,reason:i?.reason})}catch(o){throw p(o)}}};credentials=this.credential;constructor(e,t){let n=typeof e=="string"?t:e;xi(n);let i=typeof e=="string"?e:e?.apiUrl??Or;if(this.apiUrl=i,this.fetchImpl=n?.fetch,this.accessToken=n?.accessToken??n?.auth?.getToken,this.functionLogMode=n?.functionLogs??"off",this.clientIdentity={name:n?.client?.name??k,version:n?.client?.version??rt},this.clientFlags=Oi(n?.clientFlags),this.decorateResponses=n?.decorateResponses??false,typeof this.accessToken=="function"){let a=this.accessToken;this.getToken=async()=>await a();}else if(this.accessToken){let a=this.accessToken;this.getToken=async()=>a;}let o=`${i.replace(/\/$/,"")}/trpc`,s=((a,c)=>this.fetchWithAuth(a,c));Object.defineProperty(this,"trpc",{value:createTRPCProxyClient({links:[this.createCompatibilityLink(),Lt({enabled:this.decorateResponses,getClient:()=>this}),splitLink({condition:a=>Ei.has(a.path),true:httpLink({url:o,fetch:s,methodOverride:"POST"}),false:httpBatchLink({url:o,fetch:s,methodOverride:"POST"})})]}),enumerable:false,writable:false,configurable:true});}withAccessToken(e){return new r({apiUrl:this.apiUrl,fetch:this.fetchImpl,accessToken:e,client:this.clientIdentity,clientFlags:this.clientFlags,decorateResponses:this.decorateResponses})}actions=this.action;async openSse(e,t,n){let i=await this.fetchWithAuth(`${this.apiUrl.replace(/\/$/,"")}/sse?ticket=${encodeURIComponent(e)}`,{headers:{accept:"text/event-stream"},signal:t});if(!i.ok)throw new f("BACKEND",`SSE request failed with status ${i.status}`,i.status);let o=i.body?.getReader();if(!o)throw new f("BACKEND","SSE response body is missing");let s=()=>{},a=new Promise(u=>{s=u;}),c=(async()=>{let u=new TextDecoder,l="";try{for(;;){let{done:m,value:g}=await o.read();if(m)break;for(l+=u.decode(g,{stream:!0}).replaceAll(`\r
4
- `,`
5
- `);;){let h=l.indexOf(`
6
-
7
- `);if(h===-1)break;let O=l.slice(0,h);l=l.slice(h+2);let R=Fi(O);if(R){if(R.type==="ready"){s();continue}await n(R);}}}}catch(m){if(Wi(m)||t.aborted)return;throw m}finally{s(),o.releaseLock();}})();return {ready:a,closed:c}}applyClientHeader(e){e.has(j$1)||e.set(j$1,n(this.clientIdentity.name,this.clientIdentity.version)),this.clientFlags.length>0&&!e.has(f$1)&&e.set(f$1,i(this.clientFlags));}async fetchWithAuth(e,t){let n=this.fetchImpl??globalThis.fetch,i=new Headers(t?.headers),o=await pt(this.accessToken);o&&i.set("authorization",`Bearer ${o}`),this.applyClientHeader(i);let s=async c=>{try{return await n(e,c)}catch(u){throw Ui(u)?new f("NETWORK",Vi(this.apiUrl)):u}},a=await s({...t,headers:i});if(a.status===401&&typeof this.accessToken=="function"){let c=await pt(this.accessToken);if(c&&c!==o){let u=new Headers(t?.headers);return u.set("authorization",`Bearer ${c}`),this.applyClientHeader(u),s({...t,headers:u})}}return a}async requestResponse(e,t){let n=await this.fetchWithAuth(`${this.apiUrl.replace(/\/$/,"")}${e}`,t);if(!n.ok)throw await this.httpResponseError(n);return n}async prepareStreamingSubmissionRequest(e){let t=this.fetchImpl??globalThis.fetch,n=new Headers({accept:"application/x-ndjson","content-type":"application/x-ndjson"}),i=await pt(this.accessToken);i&&n.set("authorization",`Bearer ${i}`),this.applyClientHeader(n);let o=`${this.apiUrl.replace(/\/$/,"")}${e}`;return {dispatch:async(s,a)=>await t(o,{method:"POST",headers:n,body:s,signal:a,duplex:"half"}),httpError:async s=>await this.httpResponseError(s)}}async httpResponseError(e){let t=`Request failed with status ${e.status}`,n=Fr(e.status),i,o,s;try{let a=await e.json();typeof a.error?.message=="string"&&(t=a.error.message),typeof a.error?.code=="string"&&(n=a.error.code,i=a.error.code),typeof a.error?.hint=="string"&&(o=a.error.hint),typeof a.error?.retryAfter=="number"&&(s=a.error.retryAfter);}catch{}return new f(n,t,e.status,o,s,i)}async requestJson(e,t){return await(await this.requestResponse(e,t)).json()}async watchRepoQuery(e,t,n,i,o){let s=new AbortController,a=Lr(n,s),c=0,u=(async()=>{let l=async()=>{let h=await i();c+=1,await o(h);},m=await this.trpc.live.issueTicket.mutate({orgName:e,repoName:t}),g=await this.openSse(m.ticket,a,async h=>{h.type==="invalidate"&&await l();});return await g.ready,a.aborted?{updates:c}:(await l(),await g.closed,{updates:c})})();return {close(){s.abort();},closed:u}}};function Fr(r){switch(r){case 400:return "VALIDATION_ERROR";case 401:return "UNAUTHENTICATED";case 403:return "FORBIDDEN";case 404:return "NOT_FOUND";case 409:return "CONFLICT";case 429:return "RATE_LIMITED";default:return "BACKEND"}}async function pt(r){if(r)return typeof r=="string"?r:r()}function Lr(r,e){return r?r.aborted?(e.abort(),e.signal):(r.addEventListener("abort",()=>e.abort(),{once:true}),e.signal):e.signal}function Fi(r){let e="message",t=[];for(let i of r.split(`
8
- `))if(!(!i||i.startsWith(":"))){if(i.startsWith("event:")){e=i.slice(6).trim();continue}i.startsWith("data:")&&t.push(i.slice(5).trim());}if(t.length===0)return null;let n=t.join(`
9
- `);return {type:e,data:JSON.parse(n)}}function Wi(r){return r instanceof Error&&r.name==="AbortError"}export{x as A,ui as B,Oe as C,Gs as D,Or as E,Ks as F,ct as G,f as H,p as I,qi as J,zs as K,Ui as L,Vi as M,js as N,Dr as O,en as a,tn as b,rn as c,Dt as d,nn as e,ge as f,cn as g,Ht as h,y as i,j,B as k,Y as l,Wt as m,U as n,V as o,_n as p,he as q,ye as r,A as s,_ as t,Ke as u,jt as v,Q as w,H as x,N as y,rt as z};//# sourceMappingURL=chunk-CS26Y4KA.js.map
10
- //# sourceMappingURL=chunk-CS26Y4KA.js.map