@id-wispera/core 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/README.md +268 -0
  2. package/dist/audit.d.ts +68 -0
  3. package/dist/audit.d.ts.map +1 -0
  4. package/dist/audit.js +252 -0
  5. package/dist/audit.js.map +1 -0
  6. package/dist/auth/index.d.ts +8 -0
  7. package/dist/auth/index.d.ts.map +1 -0
  8. package/dist/auth/index.js +8 -0
  9. package/dist/auth/index.js.map +1 -0
  10. package/dist/auth/keychainProvider.d.ts +40 -0
  11. package/dist/auth/keychainProvider.d.ts.map +1 -0
  12. package/dist/auth/keychainProvider.js +98 -0
  13. package/dist/auth/keychainProvider.js.map +1 -0
  14. package/dist/auth/passphraseProvider.d.ts +80 -0
  15. package/dist/auth/passphraseProvider.d.ts.map +1 -0
  16. package/dist/auth/passphraseProvider.js +188 -0
  17. package/dist/auth/passphraseProvider.js.map +1 -0
  18. package/dist/auth/sessionTokenManager.d.ts +106 -0
  19. package/dist/auth/sessionTokenManager.d.ts.map +1 -0
  20. package/dist/auth/sessionTokenManager.js +263 -0
  21. package/dist/auth/sessionTokenManager.js.map +1 -0
  22. package/dist/delegation.d.ts +81 -0
  23. package/dist/delegation.d.ts.map +1 -0
  24. package/dist/delegation.js +299 -0
  25. package/dist/delegation.js.map +1 -0
  26. package/dist/detection.d.ts +35 -0
  27. package/dist/detection.d.ts.map +1 -0
  28. package/dist/detection.js +474 -0
  29. package/dist/detection.js.map +1 -0
  30. package/dist/exec/execManager.d.ts +60 -0
  31. package/dist/exec/execManager.d.ts.map +1 -0
  32. package/dist/exec/execManager.js +226 -0
  33. package/dist/exec/execManager.js.map +1 -0
  34. package/dist/exec/index.d.ts +6 -0
  35. package/dist/exec/index.d.ts.map +1 -0
  36. package/dist/exec/index.js +5 -0
  37. package/dist/exec/index.js.map +1 -0
  38. package/dist/index.d.ts +35 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +98 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/integrations/base.d.ts +64 -0
  43. package/dist/integrations/base.d.ts.map +1 -0
  44. package/dist/integrations/base.js +173 -0
  45. package/dist/integrations/base.js.map +1 -0
  46. package/dist/integrations/envMapping.d.ts +47 -0
  47. package/dist/integrations/envMapping.d.ts.map +1 -0
  48. package/dist/integrations/envMapping.js +174 -0
  49. package/dist/integrations/envMapping.js.map +1 -0
  50. package/dist/integrations/google-a2a.d.ts +48 -0
  51. package/dist/integrations/google-a2a.d.ts.map +1 -0
  52. package/dist/integrations/google-a2a.js +108 -0
  53. package/dist/integrations/google-a2a.js.map +1 -0
  54. package/dist/integrations/index.d.ts +14 -0
  55. package/dist/integrations/index.d.ts.map +1 -0
  56. package/dist/integrations/index.js +14 -0
  57. package/dist/integrations/index.js.map +1 -0
  58. package/dist/integrations/langchain.d.ts +38 -0
  59. package/dist/integrations/langchain.d.ts.map +1 -0
  60. package/dist/integrations/langchain.js +45 -0
  61. package/dist/integrations/langchain.js.map +1 -0
  62. package/dist/integrations/openai-agents.d.ts +76 -0
  63. package/dist/integrations/openai-agents.d.ts.map +1 -0
  64. package/dist/integrations/openai-agents.js +95 -0
  65. package/dist/integrations/openai-agents.js.map +1 -0
  66. package/dist/integrations/slack.d.ts +59 -0
  67. package/dist/integrations/slack.d.ts.map +1 -0
  68. package/dist/integrations/slack.js +113 -0
  69. package/dist/integrations/slack.js.map +1 -0
  70. package/dist/integrations/types.d.ts +107 -0
  71. package/dist/integrations/types.d.ts.map +1 -0
  72. package/dist/integrations/types.js +6 -0
  73. package/dist/integrations/types.js.map +1 -0
  74. package/dist/locations.d.ts +157 -0
  75. package/dist/locations.d.ts.map +1 -0
  76. package/dist/locations.js +733 -0
  77. package/dist/locations.js.map +1 -0
  78. package/dist/passport.d.ts +70 -0
  79. package/dist/passport.d.ts.map +1 -0
  80. package/dist/passport.js +429 -0
  81. package/dist/passport.js.map +1 -0
  82. package/dist/policy.d.ts +80 -0
  83. package/dist/policy.d.ts.map +1 -0
  84. package/dist/policy.js +392 -0
  85. package/dist/policy.js.map +1 -0
  86. package/dist/providers/openclaw.d.ts +80 -0
  87. package/dist/providers/openclaw.d.ts.map +1 -0
  88. package/dist/providers/openclaw.js +712 -0
  89. package/dist/providers/openclaw.js.map +1 -0
  90. package/dist/provisioning/adminPassport.d.ts +51 -0
  91. package/dist/provisioning/adminPassport.d.ts.map +1 -0
  92. package/dist/provisioning/adminPassport.js +101 -0
  93. package/dist/provisioning/adminPassport.js.map +1 -0
  94. package/dist/provisioning/index.d.ts +81 -0
  95. package/dist/provisioning/index.d.ts.map +1 -0
  96. package/dist/provisioning/index.js +141 -0
  97. package/dist/provisioning/index.js.map +1 -0
  98. package/dist/provisioning/provider.d.ts +59 -0
  99. package/dist/provisioning/provider.d.ts.map +1 -0
  100. package/dist/provisioning/provider.js +52 -0
  101. package/dist/provisioning/provider.js.map +1 -0
  102. package/dist/provisioning/providers/anthropic.d.ts +32 -0
  103. package/dist/provisioning/providers/anthropic.d.ts.map +1 -0
  104. package/dist/provisioning/providers/anthropic.js +116 -0
  105. package/dist/provisioning/providers/anthropic.js.map +1 -0
  106. package/dist/provisioning/providers/aws.d.ts +29 -0
  107. package/dist/provisioning/providers/aws.d.ts.map +1 -0
  108. package/dist/provisioning/providers/aws.js +455 -0
  109. package/dist/provisioning/providers/aws.js.map +1 -0
  110. package/dist/provisioning/providers/azure-entra.d.ts +32 -0
  111. package/dist/provisioning/providers/azure-entra.d.ts.map +1 -0
  112. package/dist/provisioning/providers/azure-entra.js +312 -0
  113. package/dist/provisioning/providers/azure-entra.js.map +1 -0
  114. package/dist/provisioning/providers/github.d.ts +24 -0
  115. package/dist/provisioning/providers/github.d.ts.map +1 -0
  116. package/dist/provisioning/providers/github.js +219 -0
  117. package/dist/provisioning/providers/github.js.map +1 -0
  118. package/dist/provisioning/providers/google-cloud.d.ts +34 -0
  119. package/dist/provisioning/providers/google-cloud.d.ts.map +1 -0
  120. package/dist/provisioning/providers/google-cloud.js +366 -0
  121. package/dist/provisioning/providers/google-cloud.js.map +1 -0
  122. package/dist/provisioning/providers/openai.d.ts +29 -0
  123. package/dist/provisioning/providers/openai.d.ts.map +1 -0
  124. package/dist/provisioning/providers/openai.js +263 -0
  125. package/dist/provisioning/providers/openai.js.map +1 -0
  126. package/dist/provisioning/providers/sendgrid.d.ts +27 -0
  127. package/dist/provisioning/providers/sendgrid.d.ts.map +1 -0
  128. package/dist/provisioning/providers/sendgrid.js +186 -0
  129. package/dist/provisioning/providers/sendgrid.js.map +1 -0
  130. package/dist/provisioning/providers/twilio.d.ts +27 -0
  131. package/dist/provisioning/providers/twilio.d.ts.map +1 -0
  132. package/dist/provisioning/providers/twilio.js +194 -0
  133. package/dist/provisioning/providers/twilio.js.map +1 -0
  134. package/dist/provisioning/types.d.ts +274 -0
  135. package/dist/provisioning/types.d.ts.map +1 -0
  136. package/dist/provisioning/types.js +6 -0
  137. package/dist/provisioning/types.js.map +1 -0
  138. package/dist/sharing.d.ts +60 -0
  139. package/dist/sharing.d.ts.map +1 -0
  140. package/dist/sharing.js +305 -0
  141. package/dist/sharing.js.map +1 -0
  142. package/dist/types.d.ts +396 -0
  143. package/dist/types.d.ts.map +1 -0
  144. package/dist/types.js +88 -0
  145. package/dist/types.js.map +1 -0
  146. package/dist/utils.d.ts +45 -0
  147. package/dist/utils.d.ts.map +1 -0
  148. package/dist/utils.js +110 -0
  149. package/dist/utils.js.map +1 -0
  150. package/dist/vault.d.ts +151 -0
  151. package/dist/vault.d.ts.map +1 -0
  152. package/dist/vault.js +499 -0
  153. package/dist/vault.js.map +1 -0
  154. package/package.json +117 -0
@@ -0,0 +1,194 @@
1
+ /**
2
+ * Twilio Provisioning Provider
3
+ * Creates API keys via the Twilio REST API
4
+ */
5
+ import { BaseProvisioningProvider } from '../provider.js';
6
+ const TWILIO_BASE_URL = 'https://api.twilio.com/2010-04-01';
7
+ export class TwilioProvider extends BaseProvisioningProvider {
8
+ provider = 'twilio';
9
+ capabilities = {
10
+ canCreate: true,
11
+ canConfigurePermissions: true,
12
+ canRotate: true,
13
+ canRevoke: true,
14
+ canList: true,
15
+ supportsExpiry: false,
16
+ supportsScopedKeys: true,
17
+ };
18
+ async provision(request) {
19
+ this.ensureInitialized();
20
+ const config = request.config;
21
+ if (config.provider !== 'twilio') {
22
+ return {
23
+ success: false,
24
+ error: {
25
+ code: 'INVALID_CONFIG',
26
+ message: `Expected twilio config, got ${config.provider}`,
27
+ },
28
+ };
29
+ }
30
+ if (this.auth?.type !== 'basic') {
31
+ return {
32
+ success: false,
33
+ error: {
34
+ code: 'INVALID_AUTH',
35
+ message: 'Twilio provider requires basic authentication (Account SID + Auth Token)',
36
+ },
37
+ };
38
+ }
39
+ try {
40
+ const url = `${TWILIO_BASE_URL}/Accounts/${config.accountSid}/Keys.json`;
41
+ const credentials = btoa(`${this.auth.username}:${this.auth.password}`);
42
+ const bodyParams = new URLSearchParams();
43
+ bodyParams.set('FriendlyName', config.friendlyName ?? request.name);
44
+ const response = await fetch(url, {
45
+ method: 'POST',
46
+ headers: {
47
+ 'Authorization': `Basic ${credentials}`,
48
+ 'Content-Type': 'application/x-www-form-urlencoded',
49
+ },
50
+ body: bodyParams.toString(),
51
+ });
52
+ if (!response.ok) {
53
+ const errorBody = await response.json().catch(() => ({}));
54
+ return {
55
+ success: false,
56
+ error: {
57
+ code: `TWILIO_${errorBody.code ?? response.status}`,
58
+ message: errorBody.message ?? `HTTP ${response.status}`,
59
+ details: errorBody,
60
+ },
61
+ };
62
+ }
63
+ const data = await response.json();
64
+ const now = new Date().toISOString();
65
+ return {
66
+ success: true,
67
+ credentialValue: data.sid,
68
+ secondaryValue: data.secret,
69
+ providerKeyId: data.sid,
70
+ metadata: {
71
+ friendlyName: data.friendly_name,
72
+ accountSid: config.accountSid,
73
+ keyType: config.keyType,
74
+ dateCreated: data.date_created,
75
+ },
76
+ passportInput: {
77
+ name: request.name,
78
+ credentialType: 'api-key',
79
+ credentialValue: `${data.sid}:${data.secret}`,
80
+ visaType: this.mapToVisaType('twilio', false),
81
+ issuingAuthority: 'Twilio',
82
+ platforms: [this.mapToPlatform('twilio')],
83
+ scope: config.keyType === 'restricted' ? ['restricted'] : ['standard'],
84
+ validFrom: now,
85
+ humanOwner: request.humanOwner,
86
+ agentId: request.agentId,
87
+ delegationChain: request.delegationChain ?? [
88
+ {
89
+ from: request.humanOwner,
90
+ to: request.agentId ?? request.name,
91
+ grantedAt: now,
92
+ scope: config.keyType === 'restricted' ? ['restricted'] : ['standard'],
93
+ notes: `Provisioned via Twilio API (account: ${config.accountSid})`,
94
+ },
95
+ ],
96
+ tags: [...(request.tags ?? []), 'provisioned', 'twilio', config.keyType],
97
+ notes: request.notes ?? `Twilio ${config.keyType} API key for account ${config.accountSid}`,
98
+ },
99
+ };
100
+ }
101
+ catch (err) {
102
+ const message = err instanceof Error ? err.message : String(err);
103
+ return {
104
+ success: false,
105
+ error: {
106
+ code: 'PROVISIONING_FAILED',
107
+ message: `Twilio provisioning failed: ${message}`,
108
+ },
109
+ };
110
+ }
111
+ }
112
+ async list() {
113
+ this.ensureInitialized();
114
+ if (this.auth?.type !== 'basic') {
115
+ throw new Error('Twilio provider requires basic authentication');
116
+ }
117
+ // Use the username (Account SID) from auth for listing
118
+ const credentials = btoa(`${this.auth.username}:${this.auth.password}`);
119
+ const url = `${TWILIO_BASE_URL}/Accounts/${this.auth.username}/Keys.json`;
120
+ const response = await fetch(url, {
121
+ headers: {
122
+ 'Authorization': `Basic ${credentials}`,
123
+ },
124
+ });
125
+ if (!response.ok) {
126
+ const errorBody = await response.text();
127
+ throw new Error(`Failed to list Twilio keys: ${response.status} ${errorBody}`);
128
+ }
129
+ const data = await response.json();
130
+ return (data.keys ?? []).map((key) => ({
131
+ id: key.sid,
132
+ name: key.friendly_name,
133
+ createdAt: new Date(key.date_created),
134
+ status: 'active',
135
+ }));
136
+ }
137
+ async rotate(existingKeyId, request) {
138
+ const newCredential = await this.provision(request);
139
+ return {
140
+ newCredential,
141
+ oldKeyId: existingKeyId,
142
+ recommendedRevocationDelay: 60, // 1 minute for propagation
143
+ };
144
+ }
145
+ async revoke(keyId) {
146
+ this.ensureInitialized();
147
+ if (this.auth?.type !== 'basic') {
148
+ return { success: false, error: 'Twilio provider requires basic authentication' };
149
+ }
150
+ try {
151
+ const credentials = btoa(`${this.auth.username}:${this.auth.password}`);
152
+ const url = `${TWILIO_BASE_URL}/Accounts/${this.auth.username}/Keys/${keyId}.json`;
153
+ const response = await fetch(url, {
154
+ method: 'DELETE',
155
+ headers: {
156
+ 'Authorization': `Basic ${credentials}`,
157
+ },
158
+ });
159
+ if (!response.ok) {
160
+ const errorBody = await response.text();
161
+ return { success: false, error: `Failed to revoke: ${response.status} ${errorBody}` };
162
+ }
163
+ return { success: true };
164
+ }
165
+ catch (err) {
166
+ const message = err instanceof Error ? err.message : String(err);
167
+ return { success: false, error: message };
168
+ }
169
+ }
170
+ async validateAuth() {
171
+ this.ensureInitialized();
172
+ if (this.auth?.type !== 'basic') {
173
+ return { valid: false, error: 'Twilio provider requires basic authentication' };
174
+ }
175
+ try {
176
+ const credentials = btoa(`${this.auth.username}:${this.auth.password}`);
177
+ const url = `${TWILIO_BASE_URL}/Accounts/${this.auth.username}.json`;
178
+ const response = await fetch(url, {
179
+ headers: {
180
+ 'Authorization': `Basic ${credentials}`,
181
+ },
182
+ });
183
+ if (response.ok) {
184
+ return { valid: true };
185
+ }
186
+ return { valid: false, error: `Auth validation failed: ${response.status}` };
187
+ }
188
+ catch (err) {
189
+ const message = err instanceof Error ? err.message : String(err);
190
+ return { valid: false, error: message };
191
+ }
192
+ }
193
+ }
194
+ //# sourceMappingURL=twilio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"twilio.js","sourceRoot":"","sources":["../../../src/provisioning/providers/twilio.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,274 @@
1
+ /**
2
+ * ID Wispera Provisioning Module Types
3
+ * Types for programmatic credential creation through vendor APIs
4
+ */
5
+ import { VisaType, CredentialType, Platform, DelegationHop } from '../types.js';
6
+ /**
7
+ * Supported provisioning providers
8
+ */
9
+ export type ProvisioningProvider = 'openai' | 'aws' | 'google-cloud' | 'azure-entra' | 'github' | 'twilio' | 'sendgrid' | 'anthropic';
10
+ /**
11
+ * Provider capability flags
12
+ */
13
+ export interface ProviderCapabilities {
14
+ canCreate: boolean;
15
+ canConfigurePermissions: boolean;
16
+ canRotate: boolean;
17
+ canRevoke: boolean;
18
+ canList: boolean;
19
+ supportsExpiry: boolean;
20
+ supportsScopedKeys: boolean;
21
+ }
22
+ /**
23
+ * Authentication configuration per provider
24
+ */
25
+ export type ProviderAuth = {
26
+ type: 'api-key';
27
+ key: string;
28
+ } | {
29
+ type: 'basic';
30
+ username: string;
31
+ password: string;
32
+ } | {
33
+ type: 'aws-sigv4';
34
+ accessKeyId: string;
35
+ secretAccessKey: string;
36
+ region?: string;
37
+ } | {
38
+ type: 'oauth2';
39
+ clientId: string;
40
+ clientSecret: string;
41
+ tenantId?: string;
42
+ } | {
43
+ type: 'jwt';
44
+ privateKey: string;
45
+ appId: string;
46
+ } | {
47
+ type: 'service-account';
48
+ keyFile: string | object;
49
+ };
50
+ /**
51
+ * Request to provision a new credential
52
+ */
53
+ export interface ProvisioningRequest {
54
+ provider: ProvisioningProvider;
55
+ /** Human-readable name for the key (used in both vendor system and passport) */
56
+ name: string;
57
+ /** Who owns this credential (required for passport) */
58
+ humanOwner: string;
59
+ /** Optional: which agent this credential is for */
60
+ agentId?: string;
61
+ /** Provider-specific configuration */
62
+ config: ProviderSpecificConfig;
63
+ /** Permissions/scopes to configure (provider-specific) */
64
+ permissions?: ProviderPermissions;
65
+ /** Optional expiry (if provider supports it) */
66
+ expiresIn?: number;
67
+ /** Tags to apply to the resulting passport */
68
+ tags?: string[];
69
+ /** Notes for the passport */
70
+ notes?: string;
71
+ /** Initial delegation chain (optional - defaults to humanOwner as root) */
72
+ delegationChain?: DelegationHop[];
73
+ }
74
+ /**
75
+ * Provider-specific configuration union
76
+ */
77
+ export type ProviderSpecificConfig = OpenAIConfig | AWSConfig | GoogleCloudConfig | AzureEntraConfig | GitHubConfig | TwilioConfig | SendGridConfig | AnthropicConfig;
78
+ export interface OpenAIConfig {
79
+ provider: 'openai';
80
+ /** Organization ID (required) */
81
+ organizationId: string;
82
+ /** Project ID - if provided, creates project-scoped service account key */
83
+ projectId?: string;
84
+ /** Key type: 'admin' (org-level) or 'service-account' (project-scoped, recommended) */
85
+ keyType: 'admin' | 'service-account';
86
+ }
87
+ export interface AWSConfig {
88
+ provider: 'aws';
89
+ /** IAM username to create key for (for long-lived keys) */
90
+ userName?: string;
91
+ /** Role ARN to assume (for temporary credentials via STS) */
92
+ roleArn?: string;
93
+ /** Session name (required if using roleArn) */
94
+ sessionName?: string;
95
+ /** Duration in seconds for STS credentials (900-43200, default 3600) */
96
+ durationSeconds?: number;
97
+ /** External ID for cross-account role assumption */
98
+ externalId?: string;
99
+ }
100
+ export interface GoogleCloudConfig {
101
+ provider: 'google-cloud';
102
+ /** Project ID */
103
+ projectId: string;
104
+ /** Key type: 'api-key' or 'service-account-key' */
105
+ keyType: 'api-key' | 'service-account-key';
106
+ /** Service account email (required for service-account-key) */
107
+ serviceAccountEmail?: string;
108
+ /** API restrictions for API keys (list of API target service names) */
109
+ apiTargets?: string[];
110
+ /** IP allowlist for API keys */
111
+ allowedIps?: string[];
112
+ }
113
+ export interface AzureEntraConfig {
114
+ provider: 'azure-entra';
115
+ /** Tenant ID */
116
+ tenantId: string;
117
+ /** Create new app registration, or add secret to existing app */
118
+ mode: 'create-app' | 'add-secret';
119
+ /** Existing application object ID (required for 'add-secret' mode) */
120
+ applicationId?: string;
121
+ /** Display name for new application (required for 'create-app' mode) */
122
+ displayName?: string;
123
+ /** Secret expiry in days (default 365, max 730) */
124
+ secretExpiryDays?: number;
125
+ }
126
+ export interface GitHubConfig {
127
+ provider: 'github';
128
+ /** Installation ID for the GitHub App */
129
+ installationId: number;
130
+ /** Repository IDs to scope the token to (optional - defaults to all installation repos) */
131
+ repositoryIds?: number[];
132
+ /** Repository names to scope the token to (alternative to IDs) */
133
+ repositories?: string[];
134
+ }
135
+ export interface TwilioConfig {
136
+ provider: 'twilio';
137
+ /** Account SID */
138
+ accountSid: string;
139
+ /** Key type: 'standard' or 'restricted' */
140
+ keyType: 'standard' | 'restricted';
141
+ /** Friendly name */
142
+ friendlyName?: string;
143
+ }
144
+ export interface SendGridConfig {
145
+ provider: 'sendgrid';
146
+ }
147
+ export interface AnthropicConfig {
148
+ provider: 'anthropic';
149
+ /** Workspace ID (optional - for workspace-scoped operations) */
150
+ workspaceId?: string;
151
+ }
152
+ /**
153
+ * Provider-specific permissions union
154
+ */
155
+ export type ProviderPermissions = OpenAIPermissions | AWSPermissions | GoogleCloudPermissions | AzureEntraPermissions | GitHubPermissions | TwilioPermissions | SendGridPermissions;
156
+ export interface OpenAIPermissions {
157
+ provider: 'openai';
158
+ /** 'all', 'read-only', or 'restricted' */
159
+ level: 'all' | 'read-only' | 'restricted';
160
+ /** Per-endpoint permissions (only for 'restricted' level) */
161
+ endpoints?: Record<string, 'read' | 'write' | 'none'>;
162
+ }
163
+ export interface AWSPermissions {
164
+ provider: 'aws';
165
+ /** Inline session policy JSON (for STS) */
166
+ sessionPolicy?: string;
167
+ /** Policy ARNs to attach (for STS) */
168
+ policyArns?: string[];
169
+ /** Session tags for ABAC */
170
+ tags?: Record<string, string>;
171
+ }
172
+ export interface GoogleCloudPermissions {
173
+ provider: 'google-cloud';
174
+ /** IAM roles to grant to service account */
175
+ roles?: string[];
176
+ /** IAM conditions */
177
+ conditions?: Array<{
178
+ title: string;
179
+ expression: string;
180
+ }>;
181
+ }
182
+ export interface AzureEntraPermissions {
183
+ provider: 'azure-entra';
184
+ /** Microsoft Graph API permissions to request */
185
+ graphPermissions?: string[];
186
+ /** Azure RBAC role assignments */
187
+ rbacRoles?: Array<{
188
+ roleDefinitionId: string;
189
+ scope: string;
190
+ }>;
191
+ }
192
+ export interface GitHubPermissions {
193
+ provider: 'github';
194
+ /** Fine-grained permissions */
195
+ permissions?: Partial<{
196
+ actions: 'read' | 'write';
197
+ contents: 'read' | 'write';
198
+ issues: 'read' | 'write';
199
+ pull_requests: 'read' | 'write';
200
+ metadata: 'read';
201
+ }>;
202
+ }
203
+ export interface TwilioPermissions {
204
+ provider: 'twilio';
205
+ /** Policy document for restricted keys */
206
+ policy?: {
207
+ allow: Array<{
208
+ url: string;
209
+ methods: string[];
210
+ query_params?: Record<string, {
211
+ required: boolean;
212
+ }>;
213
+ post_params?: Record<string, {
214
+ required: boolean;
215
+ }>;
216
+ }>;
217
+ };
218
+ }
219
+ export interface SendGridPermissions {
220
+ provider: 'sendgrid';
221
+ /** Scopes to grant (100+ available) */
222
+ scopes: string[];
223
+ }
224
+ /**
225
+ * Result of a provisioning operation
226
+ */
227
+ export interface ProvisioningResult {
228
+ success: boolean;
229
+ /** The provisioned credential value (SENSITIVE - shown only once by most providers) */
230
+ credentialValue?: string;
231
+ /** Secondary credential if applicable (e.g., AWS secret access key) */
232
+ secondaryValue?: string;
233
+ /** Provider's ID for this key (for future management operations) */
234
+ providerKeyId?: string;
235
+ /** Additional provider-specific metadata */
236
+ metadata?: Record<string, unknown>;
237
+ /** When the credential expires (if applicable) */
238
+ expiresAt?: Date;
239
+ /** Pre-populated passport fields ready for createPassport() */
240
+ passportInput?: {
241
+ name: string;
242
+ credentialType: CredentialType;
243
+ credentialValue: string;
244
+ visaType: VisaType;
245
+ issuingAuthority: string;
246
+ platforms: Platform[];
247
+ scope: string[];
248
+ validFrom: string;
249
+ validUntil?: string;
250
+ humanOwner: string;
251
+ agentId?: string;
252
+ delegationChain?: DelegationHop[];
253
+ tags: string[];
254
+ notes?: string;
255
+ };
256
+ /** Error details if success is false */
257
+ error?: {
258
+ code: string;
259
+ message: string;
260
+ details?: unknown;
261
+ };
262
+ }
263
+ /**
264
+ * Credential rotation result
265
+ */
266
+ export interface RotationResult {
267
+ /** New credential info */
268
+ newCredential: ProvisioningResult;
269
+ /** Old key ID to revoke after transition */
270
+ oldKeyId: string;
271
+ /** Recommended: revoke old key after this delay to allow propagation */
272
+ recommendedRevocationDelay: number;
273
+ }
274
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/provisioning/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAMhF;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAC5B,QAAQ,GACR,KAAK,GACL,cAAc,GACd,aAAa,GACb,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,WAAW,CAAC;AAEhB;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,uBAAuB,EAAE,OAAO,CAAC;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;IACxB,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAMD;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACpF;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7E;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AAM1D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,oBAAoB,CAAC;IAE/B,gFAAgF;IAChF,IAAI,EAAE,MAAM,CAAC;IAEb,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IAEnB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,sCAAsC;IACtC,MAAM,EAAE,sBAAsB,CAAC;IAE/B,0DAA0D;IAC1D,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAElC,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,2EAA2E;IAC3E,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC;CACnC;AAMD;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAC9B,YAAY,GACZ,SAAS,GACT,iBAAiB,GACjB,gBAAgB,GAChB,YAAY,GACZ,YAAY,GACZ,cAAc,GACd,eAAe,CAAC;AAEpB,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,iCAAiC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uFAAuF;IACvF,OAAO,EAAE,OAAO,GAAG,iBAAiB,CAAC;CACtC;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,KAAK,CAAC;IAChB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,cAAc,CAAC;IACzB,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,OAAO,EAAE,SAAS,GAAG,qBAAqB,CAAC;IAC3C,+DAA+D;IAC/D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,aAAa,CAAC;IACxB,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,IAAI,EAAE,YAAY,GAAG,YAAY,CAAC;IAClC,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,yCAAyC;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,2FAA2F;IAC3F,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,OAAO,EAAE,UAAU,GAAG,YAAY,CAAC;IACnC,oBAAoB;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,UAAU,CAAC;CAEtB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,WAAW,CAAC;IACtB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;CAEtB;AAMD;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAC3B,iBAAiB,GACjB,cAAc,GACd,sBAAsB,GACtB,qBAAqB,GACrB,iBAAiB,GACjB,iBAAiB,GACjB,mBAAmB,CAAC;AAExB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,QAAQ,CAAC;IACnB,0CAA0C;IAC1C,KAAK,EAAE,KAAK,GAAG,WAAW,GAAG,YAAY,CAAC;IAC1C,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,KAAK,CAAC;IAChB,2CAA2C;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,cAAc,CAAC;IACzB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,qBAAqB;IACrB,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,aAAa,CAAC;IACxB,iDAAiD;IACjD,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,kCAAkC;IAClC,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,gBAAgB,EAAE,MAAM,CAAC;QACzB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,QAAQ,CAAC;IACnB,+BAA+B;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;QACpB,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAC1B,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAC3B,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QACzB,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;QAChC,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,QAAQ,CAAC;IACnB,0CAA0C;IAC1C,MAAM,CAAC,EAAE;QACP,KAAK,EAAE,KAAK,CAAC;YACX,GAAG,EAAE,MAAM,CAAC;YACZ,OAAO,EAAE,MAAM,EAAE,CAAC;YAClB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;gBAAE,QAAQ,EAAE,OAAO,CAAA;aAAE,CAAC,CAAC;YACrD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;gBAAE,QAAQ,EAAE,OAAO,CAAA;aAAE,CAAC,CAAC;SACrD,CAAC,CAAC;KACJ,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,UAAU,CAAC;IACrB,uCAAuC;IACvC,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAMD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IAEjB,uFAAuF;IACvF,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,oEAAoE;IACpE,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC,kDAAkD;IAClD,SAAS,CAAC,EAAE,IAAI,CAAC;IAEjB,+DAA+D;IAC/D,aAAa,CAAC,EAAE;QACd,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE,cAAc,CAAC;QAC/B,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,EAAE,QAAQ,CAAC;QACnB,gBAAgB,EAAE,MAAM,CAAC;QACzB,SAAS,EAAE,QAAQ,EAAE,CAAC;QACtB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC;QAClC,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF,wCAAwC;IACxC,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,0BAA0B;IAC1B,aAAa,EAAE,kBAAkB,CAAC;IAClC,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,0BAA0B,EAAE,MAAM,CAAC;CACpC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * ID Wispera Provisioning Module Types
3
+ * Types for programmatic credential creation through vendor APIs
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/provisioning/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * ID Wispera Secure Sharing
3
+ * Zero-knowledge credential sharing primitives
4
+ */
5
+ import { Passport, SharePayload, ShareOptions } from './types.js';
6
+ /**
7
+ * Create a share link for a passport
8
+ * Returns the encrypted payload and the decryption key separately
9
+ */
10
+ export declare function createShareLink(passport: Passport, options: ShareOptions): Promise<{
11
+ payload: string;
12
+ key: string;
13
+ }>;
14
+ /**
15
+ * Resolve (decrypt) a shared passport
16
+ */
17
+ export declare function resolveShareLink(payload: string, key: string): Promise<Passport>;
18
+ /**
19
+ * Get share payload info without decrypting
20
+ */
21
+ export declare function getShareInfo(payload: string): Omit<SharePayload, 'encrypted'> & {
22
+ hasCredential: boolean;
23
+ };
24
+ /**
25
+ * Check if a share link is still valid (not expired, not maxed out)
26
+ */
27
+ export declare function isShareValid(payload: string): {
28
+ valid: boolean;
29
+ reason?: string;
30
+ };
31
+ /**
32
+ * Create a full share URL (for web-based sharing)
33
+ * The key is passed as a URL fragment (not sent to server)
34
+ */
35
+ export declare function createShareUrl(baseUrl: string, payload: string, key: string): string;
36
+ /**
37
+ * Parse a share URL back into payload and key
38
+ */
39
+ export declare function parseShareUrl(url: string): {
40
+ payload: string;
41
+ key: string;
42
+ } | null;
43
+ /**
44
+ * Create a one-time share (single use, auto-expires)
45
+ */
46
+ export declare function createOneTimeShare(passport: Passport, expiresInMinutes?: number): Promise<{
47
+ payload: string;
48
+ key: string;
49
+ }>;
50
+ /**
51
+ * Create a metadata-only share (no credential exposed)
52
+ */
53
+ export declare function createMetadataShare(passport: Passport, options?: {
54
+ expiresAt?: string;
55
+ maxViews?: number;
56
+ }): Promise<{
57
+ payload: string;
58
+ key: string;
59
+ }>;
60
+ //# sourceMappingURL=sharing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sharing.d.ts","sourceRoot":"","sources":["../src/sharing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,YAAY,EAGb,MAAM,YAAY,CAAC;AAmJpB;;;GAGG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAuC3C;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,QAAQ,CAAC,CAgDnB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,GAAG;IAAE,aAAa,EAAE,OAAO,CAAA;CAAE,CAc1G;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAyBjF;AAMD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,GACV,MAAM,CAER;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAqBlF;AAMD;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,GAAE,MAAW,GAC5B,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAQ3C;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAClD,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAK3C"}