@nangohq/types 0.69.49 → 0.70.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.
@@ -26,6 +26,21 @@ export type PostPublicTriggerAction = Endpoint<{
26
26
  };
27
27
  Success: any;
28
28
  }>;
29
+ export type PostInternalTriggerFunction = Endpoint<{
30
+ Method: 'POST';
31
+ Path: '/api/v1/trigger/function';
32
+ Body: {
33
+ type: 'action' | 'sync';
34
+ function_name: string;
35
+ provider_config_key: string;
36
+ connection_id: string;
37
+ input?: unknown;
38
+ };
39
+ Querystring: {
40
+ env: string;
41
+ };
42
+ Success: any;
43
+ }>;
29
44
  /** @deprecated Use POST /action/trigger to trigger actions and GET /records to fetch sync records instead. */
30
45
  export type GetPublicV1 = Endpoint<{
31
46
  Method: 'GET';
@@ -1,5 +1,5 @@
1
1
  import type { GetEmailByExpiredToken, GetEmailByUuid, GetManagedCallback, GetManagedEmailVerification, PostForgotPassword, PostLogout, PostManagedEmailVerification, PostManagedSignup, PostSignin, PostSignup, PutResetPassword } from './account/api.js';
2
- import type { GetAsyncActionResult, GetPublicV1, PostPublicTriggerAction } from './action/api.js';
2
+ import type { GetAsyncActionResult, GetPublicV1, PostInternalTriggerFunction, PostPublicTriggerAction } from './action/api.js';
3
3
  import type { PostImpersonate } from './admin/http.api.js';
4
4
  import type { EndpointMethod } from './api.js';
5
5
  import type { PostPublicApiKeyAuthorization, PostPublicAppStoreAuthorization, PostPublicBasicAuthorization, PostPublicBillAuthorization, PostPublicJwtAuthorization, PostPublicOauthOutboundAuthorization, PostPublicSignatureAuthorization, PostPublicTbaAuthorization, PostPublicTwoStepAuthorization, PostPublicUnauthenticatedAuthorization } from './auth/http.api.js';
@@ -12,12 +12,13 @@ import type { DeleteEnvironment, GetEnvironment, GetEnvironments, PatchEnvironme
12
12
  import type { PatchWebhook } from './environment/api/webhook.js';
13
13
  import type { PostEnvironmentVariables } from './environment/variable/api.js';
14
14
  import type { PatchFlowDisable, PatchFlowEnable, PatchFlowFrequency, PostPreBuiltDeploy, PutUpgradePreBuiltFlow } from './flow/http.api.js';
15
+ import type { PostRemoteFunctionCompile, PostRemoteFunctionDeploy, PostRemoteFunctionDryrun } from './functions/api.js';
15
16
  import type { GetGettingStarted, PatchGettingStarted } from './gettingStarted/api.js';
16
17
  import type { DeleteIntegration, DeletePublicIntegration, GetIntegration, GetIntegrationFlows, GetPublicIntegration, GetPublicListIntegrations, PatchIntegration, PatchPublicIntegration, PostIntegration, PostPublicIntegration } from './integration/api.js';
17
18
  import type { DeleteInvite, GetInvite, PostInvite } from './invitations/api.js';
18
19
  import type { GetOperation, PostInsights, SearchFilters, SearchMessages, SearchOperations } from './logs/api.js';
19
20
  import type { GetMeta } from './meta/api.js';
20
- import type { PostPlanChange, PostPlanExtendTrial } from './plans/http.api.js';
21
+ import type { PostPlanChange, PostPlanExtendTrial, PutBillingInvoicingDetails } from './plans/http.api.js';
21
22
  import type { GetProvider, GetProviders, GetPublicProvider, GetPublicProviders } from './providers/api.js';
22
23
  import type { AllPublicProxy } from './proxy/http.api.js';
23
24
  import type { GetPublicRecords, PatchPublicPruneRecords } from './record/api.js';
@@ -27,8 +28,8 @@ import type { GetPublicSyncStatus, PostPublicSyncPause, PostPublicSyncStart, Pos
27
28
  import type { DeleteTeamUser, GetTeam, PatchTeamUser, PutTeam } from './team/api.js';
28
29
  import type { GetUser, PatchUser } from './user/api.js';
29
30
  import type { PostPublicWebhook } from './webhooks/http.api.js';
30
- export type PublicApiEndpoints = SetMetadata | UpdateMetadata | PostDeploy | PostDeployConfirmation | PostPublicTrigger | PostPublicTbaAuthorization | PostPublicJwtAuthorization | PostPublicUnauthenticatedAuthorization | PostPublicApiKeyAuthorization | PostPublicBasicAuthorization | PostPublicAppStoreAuthorization | GetPublicProviders | GetPublicProvider | GetPublicListIntegrations | GetPublicIntegration | DeletePublicIntegration | PostConnectSessions | PostPublicConnectSessionsReconnect | GetPublicConnections | GetPublicConnection | GetConnectSession | DeleteConnectSession | PostDeployInternal | PostPublicBillAuthorization | DeletePublicConnection | PostPublicSignatureAuthorization | PostPublicTwoStepAuthorization | PostPublicWebhook | GetPublicRecords | PatchPublicPruneRecords | GetPublicScriptsConfig | PostPublicConnectTelemetry | PutPublicSyncConnectionFrequency | PostPublicIntegration | PatchPublicIntegration | GetAsyncActionResult | PostPublicOauthOutboundAuthorization | PostPublicConnection | PatchPublicConnection | PostPublicSyncStart | PostPublicSyncPause | GetPublicSyncStatus | GetPublicV1 | PostPublicTriggerAction | AllPublicProxy;
31
- export type PrivateApiEndpoints = PostSignup | PostSignin | PostLogout | GetTeam | PutTeam | PostPlanExtendTrial | PostPlanChange | GetUser | PatchUser | PostInvite | DeleteInvite | DeleteTeamUser | PatchTeamUser | PostInsights | PostForgotPassword | PutResetPassword | SearchOperations | GetOperation | SearchMessages | SearchFilters | PostInternalConnectSessions | GetIntegrationFlows | DeleteIntegration | PatchIntegration | GetIntegration | PostIntegration | GetConnections | GetConnectionsCount | GetConnection | GetInvite | GetMeta | GetEmailByExpiredToken | GetEmailByUuid | GetManagedCallback | GetManagedEmailVerification | PatchFlowDisable | PatchFlowEnable | PatchFlowFrequency | PutUpgradePreBuiltFlow | PostConnectionRefresh | PostManagedEmailVerification | PostManagedSignup | PostPreBuiltDeploy | PostEnvironment | PatchEnvironment | DeleteEnvironment | GetEnvironments | GetEnvironment | PatchWebhook | PostEnvironmentVariables | PostImpersonate | GetSharedCredentialsProviders | GetSharedCredentialsProvider | PostSharedCredentialsProvider | PatchSharedCredentialsProvider | GetGettingStarted | PatchGettingStarted | GetConnectUISettings | PutConnectUISettings | GetProviders | GetProvider;
31
+ export type PublicApiEndpoints = SetMetadata | UpdateMetadata | PostDeploy | PostDeployConfirmation | PostPublicTrigger | PostPublicTbaAuthorization | PostPublicJwtAuthorization | PostPublicUnauthenticatedAuthorization | PostPublicApiKeyAuthorization | PostPublicBasicAuthorization | PostPublicAppStoreAuthorization | GetPublicProviders | GetPublicProvider | GetPublicListIntegrations | GetPublicIntegration | DeletePublicIntegration | PostConnectSessions | PostPublicConnectSessionsReconnect | GetPublicConnections | GetPublicConnection | GetConnectSession | DeleteConnectSession | PostDeployInternal | PostPublicBillAuthorization | DeletePublicConnection | PostPublicSignatureAuthorization | PostPublicTwoStepAuthorization | PostPublicWebhook | GetPublicRecords | PatchPublicPruneRecords | GetPublicScriptsConfig | PostPublicConnectTelemetry | PutPublicSyncConnectionFrequency | PostPublicIntegration | PatchPublicIntegration | GetAsyncActionResult | PostPublicOauthOutboundAuthorization | PostPublicConnection | PatchPublicConnection | PostPublicSyncStart | PostPublicSyncPause | GetPublicSyncStatus | GetPublicV1 | PostPublicTriggerAction | PostRemoteFunctionCompile | PostRemoteFunctionDryrun | PostRemoteFunctionDeploy | AllPublicProxy;
32
+ export type PrivateApiEndpoints = PostSignup | PostSignin | PostLogout | GetTeam | PutTeam | PostPlanExtendTrial | PostPlanChange | PutBillingInvoicingDetails | GetUser | PatchUser | PostInvite | DeleteInvite | DeleteTeamUser | PatchTeamUser | PostInsights | PostForgotPassword | PutResetPassword | SearchOperations | GetOperation | SearchMessages | SearchFilters | PostInternalConnectSessions | GetIntegrationFlows | DeleteIntegration | PatchIntegration | GetIntegration | PostIntegration | GetConnections | GetConnectionsCount | GetConnection | GetInvite | GetMeta | GetEmailByExpiredToken | GetEmailByUuid | GetManagedCallback | GetManagedEmailVerification | PatchFlowDisable | PatchFlowEnable | PatchFlowFrequency | PutUpgradePreBuiltFlow | PostConnectionRefresh | PostManagedEmailVerification | PostManagedSignup | PostPreBuiltDeploy | PostEnvironment | PatchEnvironment | DeleteEnvironment | GetEnvironments | GetEnvironment | PatchWebhook | PostEnvironmentVariables | PostImpersonate | GetSharedCredentialsProviders | GetSharedCredentialsProvider | PostSharedCredentialsProvider | PatchSharedCredentialsProvider | GetGettingStarted | PatchGettingStarted | GetConnectUISettings | PutConnectUISettings | GetProviders | GetProvider | PostInternalTriggerFunction;
32
33
  export type APIEndpoints = PrivateApiEndpoints | PublicApiEndpoints;
33
34
  /**
34
35
  * Automatically narrow endpoints type with Method + Path
@@ -1,13 +1,12 @@
1
1
  import type { Result } from '../result.js';
2
2
  import type { DBTeam } from '../team/db.js';
3
3
  import type { UsageMetric } from '../usage/index.js';
4
- import type { DBUser } from '../user/db.js';
5
4
  export interface BillingClient {
6
5
  ingest: (events: BillingEvent[]) => Promise<Result<void>>;
7
- upsertCustomer: (team: DBTeam, user: DBUser) => Promise<Result<BillingCustomer>>;
8
- updateCustomer: (customerId: string, name: string) => Promise<Result<void>>;
9
6
  linkStripeToCustomer(teamId: number, customerId: string): Promise<Result<void>>;
7
+ getOrCreateCustomer: (accountId: number, defaultTo: Pick<BillingInvoicingDetails, 'legalEntityName' | 'email'>) => Promise<Result<BillingCustomer>>;
10
8
  getCustomer: (accountId: number) => Promise<Result<BillingCustomer>>;
9
+ putCustomer: (accountId: number, invoicingDetails: BillingInvoicingDetails) => Promise<Result<BillingCustomer>>;
11
10
  getSubscription: (accountId: number) => Promise<Result<BillingSubscription | null>>;
12
11
  createSubscription: (team: DBTeam, planExternalId: string) => Promise<Result<BillingSubscription>>;
13
12
  getUsage: (subscriptionId: string, opts?: GetBillingUsageOpts) => Promise<Result<BillingUsageMetrics>>;
@@ -37,8 +36,28 @@ export interface BillingClient {
37
36
  }
38
37
  export interface BillingCustomer {
39
38
  id: string;
39
+ invoicingDetails: BillingInvoicingDetails;
40
40
  portalUrl: string | null;
41
41
  }
42
+ export interface BillingInvoicingDetails {
43
+ legalEntityName: string;
44
+ email: string;
45
+ address: BillingAddress | null;
46
+ taxId: BillingTaxId | null;
47
+ }
48
+ export interface BillingAddress {
49
+ line1: string | null;
50
+ line2: string | null;
51
+ city: string | null;
52
+ state: string | null;
53
+ postalCode: string | null;
54
+ country: string | null;
55
+ }
56
+ export interface BillingTaxId {
57
+ country: string;
58
+ type: string;
59
+ value: string;
60
+ }
42
61
  export interface BillingSubscription {
43
62
  id: string;
44
63
  pendingChangeId?: string | undefined;
@@ -0,0 +1,75 @@
1
+ import type { ApiError, Endpoint } from '../api.js';
2
+ export type FunctionType = 'action' | 'sync';
3
+ export type FunctionErrorCode = 'invalid_request' | 'integration_not_found' | 'compilation_error' | 'dryrun_error' | 'deployment_error' | 'connection_not_found' | 'function_disabled' | 'timeout' | 'validation_error';
4
+ export interface ProxyCall {
5
+ method: string;
6
+ endpoint: string;
7
+ status: number;
8
+ request: {
9
+ params?: Record<string, unknown>;
10
+ headers?: Record<string, unknown>;
11
+ data?: unknown;
12
+ };
13
+ response: unknown;
14
+ headers: Record<string, unknown>;
15
+ }
16
+ export type PostRemoteFunctionCompile = Endpoint<{
17
+ Method: 'POST';
18
+ Path: '/remote-function/compile';
19
+ Body: {
20
+ integration_id: string;
21
+ function_name: string;
22
+ function_type: FunctionType;
23
+ code: string;
24
+ };
25
+ Error: ApiError<FunctionErrorCode>;
26
+ Success: {
27
+ integration_id: string;
28
+ function_name: string;
29
+ function_type: FunctionType;
30
+ bundle_size_bytes: number;
31
+ bundled_js: string;
32
+ compiled_at: string;
33
+ };
34
+ }>;
35
+ export type PostRemoteFunctionDryrun = Endpoint<{
36
+ Method: 'POST';
37
+ Path: '/remote-function/dryrun';
38
+ Body: {
39
+ integration_id: string;
40
+ function_name: string;
41
+ function_type: FunctionType;
42
+ code: string;
43
+ connection_id: string;
44
+ input?: unknown;
45
+ metadata?: Record<string, unknown> | undefined;
46
+ checkpoint?: Record<string, unknown> | undefined;
47
+ last_sync_date?: string | undefined;
48
+ };
49
+ Error: ApiError<FunctionErrorCode>;
50
+ Success: {
51
+ integration_id: string;
52
+ function_name: string;
53
+ function_type: FunctionType;
54
+ execution_timeout_at: string;
55
+ duration_ms: number;
56
+ output: string;
57
+ };
58
+ }>;
59
+ export type PostRemoteFunctionDeploy = Endpoint<{
60
+ Method: 'POST';
61
+ Path: '/remote-function/deploy';
62
+ Body: {
63
+ integration_id: string;
64
+ function_name: string;
65
+ function_type: FunctionType;
66
+ code: string;
67
+ };
68
+ Error: ApiError<FunctionErrorCode>;
69
+ Success: {
70
+ integration_id: string;
71
+ function_name: string;
72
+ function_type: FunctionType;
73
+ output: string;
74
+ };
75
+ }>;
package/dist/index.d.ts CHANGED
@@ -84,6 +84,7 @@ export type * from './jobs/api.js';
84
84
  export type * from './checkpoint/types.js';
85
85
  export type * from './checkpoint/db.js';
86
86
  export type * from './mcp/api.js';
87
+ export type * from './functions/api.js';
87
88
  export type * from './lambda/index.js';
88
89
  export type * from './authz/types.js';
89
90
  export type * from './pubsub/events.js';
@@ -100,6 +100,12 @@ export interface DBPlan extends Timestamps {
100
100
  * @default false
101
101
  */
102
102
  has_webhooks_forward: boolean;
103
+ /**
104
+ * Enable role-based access control (non-administrator roles)
105
+ * When false, all users/invites must be 'administrator'
106
+ * @default false
107
+ */
108
+ has_rbac: boolean;
103
109
  /**
104
110
  * Enable or disable the ability to override the docs connect url from the connect session
105
111
  * @default false
@@ -115,11 +121,21 @@ export interface DBPlan extends Timestamps {
115
121
  * @default false
116
122
  */
117
123
  can_disable_connect_ui_watermark: boolean;
124
+ /**
125
+ * Enable or disable remote function compile, dry-run, and deploy endpoints
126
+ * @default false
127
+ */
128
+ remote_functions: boolean;
118
129
  /**
119
130
  * Sync Function Runtime
120
131
  * @default "runner"
121
132
  */
122
133
  sync_function_runtime: FunctionRuntime;
134
+ /**
135
+ * When true, syncs routed to the Lambda fleet require the checkpoints feature or they run on the runner fleet.
136
+ * @default true
137
+ */
138
+ sync_lambda_checkpoint_required: boolean;
123
139
  /**
124
140
  * Action Function Runtime
125
141
  * @default "runner"
@@ -1,4 +1,4 @@
1
- import type { ApiBillingUsageMetrics, BillingCustomer } from '../billing/types.js';
1
+ import type { ApiBillingUsageMetrics, BillingCustomer, BillingInvoicingDetails } from '../billing/types.js';
2
2
  import type { MetricUsageSummary, UsageMetric } from '../usage/index.js';
3
3
  import type { ReplaceInObject } from '../utils.js';
4
4
  import type { DBPlan } from './db.js';
@@ -76,6 +76,17 @@ export type GetBillingUsage = Endpoint<{
76
76
  };
77
77
  };
78
78
  }>;
79
+ export type PutBillingInvoicingDetails = Endpoint<{
80
+ Method: 'PUT';
81
+ Path: '/api/v1/plans/billing/invoicing';
82
+ Querystring: {
83
+ env: string;
84
+ };
85
+ Body: BillingInvoicingDetails;
86
+ Success: {
87
+ data: BillingCustomer;
88
+ };
89
+ }>;
79
90
  export type PostPlanChange = Endpoint<{
80
91
  Method: 'POST';
81
92
  Path: '/api/v1/plans/change';
@@ -33,6 +33,7 @@ export interface ApiProviderListItem {
33
33
  name: string;
34
34
  displayName: string;
35
35
  defaultScopes?: string[] | undefined;
36
+ availableScopes?: string[] | undefined;
36
37
  authMode: AuthModeType;
37
38
  categories?: string[] | undefined;
38
39
  docs: string;
@@ -90,6 +90,7 @@ export interface BaseProvider {
90
90
  body_format?: OAuthBodyFormatType;
91
91
  require_client_certificate?: boolean;
92
92
  token_request_auth_method?: 'basic' | 'custom' | 'private_key_jwt';
93
+ available_scopes?: string[];
93
94
  }
94
95
  export interface ProviderOAuth2 extends BaseProvider {
95
96
  auth_mode: 'OAUTH2';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nangohq/types",
3
- "version": "0.69.49",
3
+ "version": "0.70.0",
4
4
  "description": "Types used in Nango applications",
5
5
  "type": "module",
6
6
  "typings": "dist/index.d.ts",