@auxiora/connectors 1.0.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@auxiora/connectors",
3
- "version": "1.0.0",
3
+ "version": "1.3.1",
4
4
  "description": "Connector SDK, registry, auth manager, and action executor",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -12,12 +12,18 @@
12
12
  }
13
13
  },
14
14
  "dependencies": {
15
- "@auxiora/autonomy": "1.0.0",
16
- "@auxiora/core": "1.0.0"
15
+ "@auxiora/autonomy": "1.3.1",
16
+ "@auxiora/core": "1.3.1"
17
17
  },
18
18
  "engines": {
19
19
  "node": ">=22.0.0"
20
20
  },
21
+ "publishConfig": {
22
+ "access": "public"
23
+ },
24
+ "files": [
25
+ "dist/"
26
+ ],
21
27
  "scripts": {
22
28
  "build": "tsc",
23
29
  "clean": "rm -rf dist",
@@ -1,177 +0,0 @@
1
- import type { AuthConfig, StoredToken } from './types.js';
2
-
3
- const GOOGLE_TOKEN_URL = 'https://oauth2.googleapis.com/token';
4
-
5
- export interface AuthManagerVault {
6
- get(name: string): string | undefined;
7
- has(name: string): boolean;
8
- add(name: string, value: string): Promise<void>;
9
- }
10
-
11
- /** In-memory token store with vault-like interface for connector auth tokens. */
12
- export class AuthManager {
13
- private tokens = new Map<string, StoredToken>();
14
- private vault?: AuthManagerVault;
15
-
16
- constructor(vault?: AuthManagerVault) {
17
- this.vault = vault;
18
- }
19
-
20
- /** Authenticate a connector instance with the given credentials. */
21
- async authenticate(
22
- instanceId: string,
23
- authConfig: AuthConfig,
24
- credentials: Record<string, string>,
25
- ): Promise<StoredToken> {
26
- let token: StoredToken;
27
-
28
- switch (authConfig.type) {
29
- case 'oauth2': {
30
- if (!credentials.accessToken) {
31
- throw new Error('OAuth2 authentication requires an accessToken');
32
- }
33
- token = {
34
- accessToken: credentials.accessToken,
35
- refreshToken: credentials.refreshToken,
36
- expiresAt: credentials.expiresAt ? parseInt(credentials.expiresAt, 10) : undefined,
37
- tokenType: credentials.tokenType ?? 'Bearer',
38
- scopes: authConfig.oauth2?.scopes,
39
- };
40
- break;
41
- }
42
- case 'api_key': {
43
- if (!credentials.apiKey) {
44
- throw new Error('API key authentication requires an apiKey');
45
- }
46
- token = {
47
- accessToken: credentials.apiKey,
48
- tokenType: 'api_key',
49
- };
50
- break;
51
- }
52
- case 'token': {
53
- if (!credentials.token) {
54
- throw new Error('Token authentication requires a token');
55
- }
56
- token = {
57
- accessToken: credentials.token,
58
- tokenType: 'Bearer',
59
- };
60
- break;
61
- }
62
- default:
63
- throw new Error(`Unsupported auth type: ${authConfig.type as string}`);
64
- }
65
-
66
- this.tokens.set(instanceId, token);
67
-
68
- // Persist tokens to vault if available
69
- if (this.vault) {
70
- await this.vault.add(`connectors.${instanceId}.tokens`, JSON.stringify(token));
71
- }
72
-
73
- return token;
74
- }
75
-
76
- /** Refresh an OAuth2 token for a connector instance. */
77
- async refreshToken(
78
- instanceId: string,
79
- authConfig: AuthConfig,
80
- ): Promise<StoredToken> {
81
- const existing = this.tokens.get(instanceId);
82
- if (!existing) {
83
- throw new Error(`No token found for instance "${instanceId}"`);
84
- }
85
- if (authConfig.type !== 'oauth2') {
86
- throw new Error('Token refresh is only supported for OAuth2');
87
- }
88
- if (!existing.refreshToken) {
89
- throw new Error('No refresh token available');
90
- }
91
-
92
- // Load client credentials from vault
93
- const credsJson = this.vault?.get(`connectors.${instanceId}.credentials`);
94
- if (!credsJson) {
95
- throw new Error(`No client credentials found for instance "${instanceId}"`);
96
- }
97
- const creds = JSON.parse(credsJson) as { clientId: string; clientSecret: string };
98
-
99
- // Call Google's token endpoint to refresh
100
- const body = new URLSearchParams({
101
- client_id: creds.clientId,
102
- client_secret: creds.clientSecret,
103
- refresh_token: existing.refreshToken,
104
- grant_type: 'refresh_token',
105
- });
106
-
107
- const response = await fetch(GOOGLE_TOKEN_URL, {
108
- method: 'POST',
109
- headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
110
- body: body.toString(),
111
- });
112
-
113
- if (!response.ok) {
114
- const errBody = await response.text();
115
- throw new Error(`Token refresh failed: ${response.status} ${errBody}`);
116
- }
117
-
118
- const data = await response.json() as {
119
- access_token: string;
120
- refresh_token?: string;
121
- expires_in?: number;
122
- token_type?: string;
123
- };
124
-
125
- const refreshed: StoredToken = {
126
- accessToken: data.access_token,
127
- refreshToken: data.refresh_token ?? existing.refreshToken,
128
- expiresAt: data.expires_in ? Date.now() + data.expires_in * 1000 : Date.now() + 3600_000,
129
- tokenType: data.token_type ?? 'Bearer',
130
- scopes: existing.scopes,
131
- };
132
-
133
- this.tokens.set(instanceId, refreshed);
134
-
135
- // Persist updated tokens to vault
136
- if (this.vault) {
137
- await this.vault.add(`connectors.${instanceId}.tokens`, JSON.stringify(refreshed));
138
- }
139
-
140
- return refreshed;
141
- }
142
-
143
- /** Restore a token from vault into the in-memory store. */
144
- restoreToken(instanceId: string, token: StoredToken): void {
145
- this.tokens.set(instanceId, token);
146
- }
147
-
148
- /** Get the stored token for a connector instance. */
149
- getToken(instanceId: string): StoredToken | undefined {
150
- return this.tokens.get(instanceId);
151
- }
152
-
153
- /** Check if a token is expired. */
154
- isTokenExpired(instanceId: string): boolean {
155
- const token = this.tokens.get(instanceId);
156
- if (!token || !token.expiresAt) return false;
157
- return Date.now() >= token.expiresAt;
158
- }
159
-
160
- /** Revoke and remove a token for a connector instance. */
161
- async revokeToken(instanceId: string): Promise<boolean> {
162
- const deleted = this.tokens.delete(instanceId);
163
- if (deleted && this.vault) {
164
- try {
165
- await this.vault.add(`connectors.${instanceId}.tokens`, '');
166
- } catch {
167
- // Best-effort vault cleanup
168
- }
169
- }
170
- return deleted;
171
- }
172
-
173
- /** Check whether a connector instance has a stored token. */
174
- hasToken(instanceId: string): boolean {
175
- return this.tokens.has(instanceId);
176
- }
177
- }
@@ -1,45 +0,0 @@
1
- import type { Connector, ActionDefinition, TriggerDefinition, EntityDefinition, AuthConfig, TriggerEvent } from './types.js';
2
-
3
- /** Options for defining a connector via the SDK helper. */
4
- export interface DefineConnectorOptions {
5
- id: string;
6
- name: string;
7
- description: string;
8
- version: string;
9
- category: string;
10
- icon?: string;
11
- auth: AuthConfig;
12
- actions: ActionDefinition[];
13
- triggers?: TriggerDefinition[];
14
- entities?: EntityDefinition[];
15
- executeAction: (actionId: string, params: Record<string, unknown>, token: string) => Promise<unknown>;
16
- pollTrigger?: (triggerId: string, token: string, lastPollAt?: number) => Promise<TriggerEvent[]>;
17
- }
18
-
19
- /** SDK helper to define a connector with validated structure. */
20
- export function defineConnector(options: DefineConnectorOptions): Connector {
21
- if (!options.id || !options.name) {
22
- throw new Error('Connector id and name are required');
23
- }
24
- if (!options.auth) {
25
- throw new Error('Connector auth config is required');
26
- }
27
- if (!options.actions || options.actions.length === 0) {
28
- throw new Error('Connector must define at least one action');
29
- }
30
-
31
- return {
32
- id: options.id,
33
- name: options.name,
34
- description: options.description,
35
- version: options.version,
36
- category: options.category,
37
- icon: options.icon,
38
- auth: options.auth,
39
- actions: options.actions,
40
- triggers: options.triggers ?? [],
41
- entities: options.entities ?? [],
42
- executeAction: options.executeAction,
43
- pollTrigger: options.pollTrigger,
44
- };
45
- }
package/src/executor.ts DELETED
@@ -1,108 +0,0 @@
1
- import type { TrustGate } from '@auxiora/autonomy';
2
- import type { ActionAuditTrail } from '@auxiora/autonomy';
3
- import type { ConnectorRegistry } from './registry.js';
4
- import type { AuthManager } from './auth-manager.js';
5
- import type { TrustDomain, TrustLevel } from '@auxiora/autonomy';
6
-
7
- export interface ExecutionResult {
8
- success: boolean;
9
- data?: unknown;
10
- error?: string;
11
- auditId?: string;
12
- }
13
-
14
- export class ActionExecutor {
15
- private registry: ConnectorRegistry;
16
- private authManager: AuthManager;
17
- private trustGate: TrustGate;
18
- private auditTrail: ActionAuditTrail;
19
-
20
- constructor(
21
- registry: ConnectorRegistry,
22
- authManager: AuthManager,
23
- trustGate: TrustGate,
24
- auditTrail: ActionAuditTrail,
25
- ) {
26
- this.registry = registry;
27
- this.authManager = authManager;
28
- this.trustGate = trustGate;
29
- this.auditTrail = auditTrail;
30
- }
31
-
32
- async execute(
33
- connectorId: string,
34
- actionId: string,
35
- params: Record<string, unknown>,
36
- instanceId: string,
37
- ): Promise<ExecutionResult> {
38
- const connector = this.registry.get(connectorId);
39
- if (!connector) {
40
- return { success: false, error: `Connector "${connectorId}" not found` };
41
- }
42
-
43
- const action = connector.actions.find((a) => a.id === actionId);
44
- if (!action) {
45
- return { success: false, error: `Action "${actionId}" not found in connector "${connectorId}"` };
46
- }
47
-
48
- // Check trust gate
49
- const gateResult = this.trustGate.gate(
50
- action.trustDomain,
51
- `${connectorId}:${actionId}`,
52
- action.trustMinimum,
53
- );
54
-
55
- if (!gateResult.allowed) {
56
- const audit = await this.auditTrail.record({
57
- trustLevel: gateResult.currentLevel,
58
- domain: action.trustDomain,
59
- intent: `${connectorId}:${actionId}`,
60
- plan: JSON.stringify(params),
61
- executed: false,
62
- outcome: 'failure',
63
- reasoning: gateResult.message,
64
- rollbackAvailable: false,
65
- });
66
- return { success: false, error: gateResult.message, auditId: audit.id };
67
- }
68
-
69
- // Get token
70
- const token = this.authManager.getToken(instanceId);
71
- if (!token) {
72
- return { success: false, error: `No authentication token for instance "${instanceId}"` };
73
- }
74
-
75
- // Execute
76
- try {
77
- const data = await connector.executeAction(actionId, params, token.accessToken);
78
-
79
- const audit = await this.auditTrail.record({
80
- trustLevel: gateResult.currentLevel,
81
- domain: action.trustDomain,
82
- intent: `${connectorId}:${actionId}`,
83
- plan: JSON.stringify(params),
84
- executed: true,
85
- outcome: 'success',
86
- reasoning: gateResult.message,
87
- rollbackAvailable: action.reversible,
88
- });
89
-
90
- return { success: true, data, auditId: audit.id };
91
- } catch (error) {
92
- const msg = error instanceof Error ? error.message : 'Unknown error';
93
-
94
- const audit = await this.auditTrail.record({
95
- trustLevel: gateResult.currentLevel,
96
- domain: action.trustDomain,
97
- intent: `${connectorId}:${actionId}`,
98
- plan: JSON.stringify(params),
99
- executed: true,
100
- outcome: 'failure',
101
- reasoning: msg,
102
- rollbackAvailable: false,
103
- });
104
-
105
- return { success: false, error: msg, auditId: audit.id };
106
- }
107
- }
108
- }
package/src/index.ts DELETED
@@ -1,18 +0,0 @@
1
- export type {
2
- AuthType,
3
- OAuth2Config,
4
- AuthConfig,
5
- ActionDefinition,
6
- ParamDefinition,
7
- TriggerDefinition,
8
- EntityDefinition,
9
- Connector,
10
- TriggerEvent,
11
- StoredToken,
12
- ConnectorInstance,
13
- } from './types.js';
14
- export { ConnectorRegistry } from './registry.js';
15
- export { AuthManager } from './auth-manager.js';
16
- export { ActionExecutor, type ExecutionResult } from './executor.js';
17
- export { TriggerManager, type TriggerHandler } from './trigger-manager.js';
18
- export { defineConnector, type DefineConnectorOptions } from './define-connector.js';
package/src/registry.ts DELETED
@@ -1,42 +0,0 @@
1
- import type { Connector, ActionDefinition, TriggerDefinition } from './types.js';
2
-
3
- export class ConnectorRegistry {
4
- private connectors = new Map<string, Connector>();
5
-
6
- register(connector: Connector): void {
7
- if (this.connectors.has(connector.id)) {
8
- throw new Error(`Connector "${connector.id}" is already registered`);
9
- }
10
- this.connectors.set(connector.id, connector);
11
- }
12
-
13
- get(id: string): Connector | undefined {
14
- return this.connectors.get(id);
15
- }
16
-
17
- list(): Connector[] {
18
- return [...this.connectors.values()];
19
- }
20
-
21
- listByCategory(category: string): Connector[] {
22
- return [...this.connectors.values()].filter((c) => c.category === category);
23
- }
24
-
25
- getActions(connectorId: string): ActionDefinition[] {
26
- const connector = this.connectors.get(connectorId);
27
- return connector ? connector.actions : [];
28
- }
29
-
30
- getTriggers(connectorId: string): TriggerDefinition[] {
31
- const connector = this.connectors.get(connectorId);
32
- return connector ? connector.triggers : [];
33
- }
34
-
35
- has(id: string): boolean {
36
- return this.connectors.has(id);
37
- }
38
-
39
- unregister(id: string): boolean {
40
- return this.connectors.delete(id);
41
- }
42
- }
@@ -1,95 +0,0 @@
1
- import type { ConnectorRegistry } from './registry.js';
2
- import type { AuthManager } from './auth-manager.js';
3
- import type { TriggerEvent } from './types.js';
4
-
5
- export type TriggerHandler = (events: TriggerEvent[]) => void | Promise<void>;
6
-
7
- interface Subscription {
8
- connectorId: string;
9
- triggerId: string;
10
- instanceId: string;
11
- handler: TriggerHandler;
12
- lastPollAt: number;
13
- }
14
-
15
- export class TriggerManager {
16
- private registry: ConnectorRegistry;
17
- private authManager: AuthManager;
18
- private subscriptions = new Map<string, Subscription>();
19
-
20
- constructor(registry: ConnectorRegistry, authManager: AuthManager) {
21
- this.registry = registry;
22
- this.authManager = authManager;
23
- }
24
-
25
- /** Subscribe to a trigger on a connector instance. Returns a subscription ID. */
26
- subscribe(
27
- connectorId: string,
28
- triggerId: string,
29
- instanceId: string,
30
- handler: TriggerHandler,
31
- ): string {
32
- const connector = this.registry.get(connectorId);
33
- if (!connector) {
34
- throw new Error(`Connector "${connectorId}" not found`);
35
- }
36
-
37
- const trigger = connector.triggers.find((t) => t.id === triggerId);
38
- if (!trigger) {
39
- throw new Error(`Trigger "${triggerId}" not found in connector "${connectorId}"`);
40
- }
41
-
42
- const subId = `${connectorId}:${triggerId}:${instanceId}`;
43
- this.subscriptions.set(subId, {
44
- connectorId,
45
- triggerId,
46
- instanceId,
47
- handler,
48
- lastPollAt: Date.now(),
49
- });
50
-
51
- return subId;
52
- }
53
-
54
- /** Unsubscribe from a trigger. */
55
- unsubscribe(subscriptionId: string): boolean {
56
- return this.subscriptions.delete(subscriptionId);
57
- }
58
-
59
- /** Poll all subscriptions and invoke handlers for new events. */
60
- async pollAll(): Promise<TriggerEvent[]> {
61
- const allEvents: TriggerEvent[] = [];
62
-
63
- for (const [subId, sub] of this.subscriptions) {
64
- const connector = this.registry.get(sub.connectorId);
65
- if (!connector?.pollTrigger) continue;
66
-
67
- const token = this.authManager.getToken(sub.instanceId);
68
- if (!token) continue;
69
-
70
- try {
71
- const events = await connector.pollTrigger(
72
- sub.triggerId,
73
- token.accessToken,
74
- sub.lastPollAt,
75
- );
76
-
77
- if (events.length > 0) {
78
- await sub.handler(events);
79
- allEvents.push(...events);
80
- }
81
-
82
- sub.lastPollAt = Date.now();
83
- } catch {
84
- // Poll errors are silently ignored to avoid breaking other subscriptions
85
- }
86
- }
87
-
88
- return allEvents;
89
- }
90
-
91
- /** Get all active subscription IDs. */
92
- getSubscriptions(): string[] {
93
- return [...this.subscriptions.keys()];
94
- }
95
- }
package/src/types.ts DELETED
@@ -1,111 +0,0 @@
1
- import type { TrustLevel, TrustDomain } from '@auxiora/autonomy';
2
-
3
- /** Supported authentication methods for connectors. */
4
- export type AuthType = 'oauth2' | 'api_key' | 'token';
5
-
6
- /** OAuth2 configuration for connectors that use OAuth2 auth. */
7
- export interface OAuth2Config {
8
- authUrl: string;
9
- tokenUrl: string;
10
- scopes: string[];
11
- clientId?: string;
12
- clientSecret?: string;
13
- }
14
-
15
- /** Authentication configuration for a connector. */
16
- export interface AuthConfig {
17
- type: AuthType;
18
- oauth2?: OAuth2Config;
19
- /** Human-readable instructions for obtaining credentials. */
20
- instructions?: string;
21
- }
22
-
23
- /** Defines a single action that a connector can perform. */
24
- export interface ActionDefinition {
25
- id: string;
26
- name: string;
27
- description: string;
28
- /** Minimum trust level required to execute this action. */
29
- trustMinimum: TrustLevel;
30
- /** Trust domain this action operates in. */
31
- trustDomain: TrustDomain;
32
- /** Whether this action can be reversed/undone. */
33
- reversible: boolean;
34
- /** Whether this action has external side effects. */
35
- sideEffects: boolean;
36
- /** Parameter schema (JSON Schema-like). */
37
- params: Record<string, ParamDefinition>;
38
- }
39
-
40
- /** Parameter definition for an action. */
41
- export interface ParamDefinition {
42
- type: 'string' | 'number' | 'boolean' | 'object' | 'array';
43
- description: string;
44
- required?: boolean;
45
- default?: unknown;
46
- }
47
-
48
- /** Defines a trigger that a connector can listen for. */
49
- export interface TriggerDefinition {
50
- id: string;
51
- name: string;
52
- description: string;
53
- /** How this trigger is detected. */
54
- type: 'poll' | 'webhook';
55
- /** Polling interval in ms (for poll triggers). */
56
- pollIntervalMs?: number;
57
- }
58
-
59
- /** Defines an entity type that a connector exposes. */
60
- export interface EntityDefinition {
61
- id: string;
62
- name: string;
63
- description: string;
64
- /** Fields exposed by this entity. */
65
- fields: Record<string, string>;
66
- }
67
-
68
- /** Full connector definition. */
69
- export interface Connector {
70
- id: string;
71
- name: string;
72
- description: string;
73
- version: string;
74
- category: string;
75
- icon?: string;
76
- auth: AuthConfig;
77
- actions: ActionDefinition[];
78
- triggers: TriggerDefinition[];
79
- entities: EntityDefinition[];
80
- /** Action handler called to execute actions. */
81
- executeAction: (actionId: string, params: Record<string, unknown>, token: string) => Promise<unknown>;
82
- /** Trigger poll handler. */
83
- pollTrigger?: (triggerId: string, token: string, lastPollAt?: number) => Promise<TriggerEvent[]>;
84
- }
85
-
86
- /** Event emitted by a trigger. */
87
- export interface TriggerEvent {
88
- triggerId: string;
89
- connectorId: string;
90
- data: Record<string, unknown>;
91
- timestamp: number;
92
- }
93
-
94
- /** Stored token data for a connector instance. */
95
- export interface StoredToken {
96
- accessToken: string;
97
- refreshToken?: string;
98
- expiresAt?: number;
99
- tokenType?: string;
100
- scopes?: string[];
101
- }
102
-
103
- /** A configured instance of a connector with auth credentials. */
104
- export interface ConnectorInstance {
105
- id: string;
106
- connectorId: string;
107
- label: string;
108
- createdAt: number;
109
- /** Whether auth is configured and valid. */
110
- authenticated: boolean;
111
- }
@@ -1,136 +0,0 @@
1
- import { describe, it, expect, beforeEach, vi } from 'vitest';
2
- import { AuthManager } from '../src/auth-manager.js';
3
- import type { AuthConfig } from '../src/types.js';
4
- import type { AuthManagerVault } from '../src/auth-manager.js';
5
-
6
- function createMockVault(data: Record<string, string> = {}): AuthManagerVault {
7
- const store = new Map(Object.entries(data));
8
- return {
9
- get: (name: string) => store.get(name),
10
- has: (name: string) => store.has(name),
11
- add: async (name: string, value: string) => { store.set(name, value); },
12
- };
13
- }
14
-
15
- describe('AuthManager', () => {
16
- let authManager: AuthManager;
17
-
18
- beforeEach(() => {
19
- authManager = new AuthManager();
20
- });
21
-
22
- it('should authenticate with api_key', async () => {
23
- const config: AuthConfig = { type: 'api_key' };
24
- const token = await authManager.authenticate('inst-1', config, { apiKey: 'sk-123' });
25
- expect(token.accessToken).toBe('sk-123');
26
- expect(token.tokenType).toBe('api_key');
27
- });
28
-
29
- it('should authenticate with oauth2', async () => {
30
- const config: AuthConfig = {
31
- type: 'oauth2',
32
- oauth2: { authUrl: 'https://auth.example.com', tokenUrl: 'https://token.example.com', scopes: ['read'] },
33
- };
34
- const token = await authManager.authenticate('inst-2', config, {
35
- accessToken: 'at-abc',
36
- refreshToken: 'rt-xyz',
37
- });
38
- expect(token.accessToken).toBe('at-abc');
39
- expect(token.refreshToken).toBe('rt-xyz');
40
- expect(token.scopes).toEqual(['read']);
41
- });
42
-
43
- it('should authenticate with token', async () => {
44
- const config: AuthConfig = { type: 'token' };
45
- const token = await authManager.authenticate('inst-3', config, { token: 'tok-456' });
46
- expect(token.accessToken).toBe('tok-456');
47
- expect(token.tokenType).toBe('Bearer');
48
- });
49
-
50
- it('should throw on missing api key', async () => {
51
- const config: AuthConfig = { type: 'api_key' };
52
- await expect(authManager.authenticate('inst-4', config, {})).rejects.toThrow('apiKey');
53
- });
54
-
55
- it('should throw on missing oauth2 access token', async () => {
56
- const config: AuthConfig = { type: 'oauth2' };
57
- await expect(authManager.authenticate('inst-5', config, {})).rejects.toThrow('accessToken');
58
- });
59
-
60
- it('should throw on missing token', async () => {
61
- const config: AuthConfig = { type: 'token' };
62
- await expect(authManager.authenticate('inst-6', config, {})).rejects.toThrow('token');
63
- });
64
-
65
- it('should get stored token', async () => {
66
- const config: AuthConfig = { type: 'api_key' };
67
- await authManager.authenticate('inst-1', config, { apiKey: 'sk-123' });
68
- const token = authManager.getToken('inst-1');
69
- expect(token?.accessToken).toBe('sk-123');
70
- });
71
-
72
- it('should return undefined for unknown instance', () => {
73
- expect(authManager.getToken('unknown')).toBeUndefined();
74
- });
75
-
76
- it('should revoke token', async () => {
77
- const config: AuthConfig = { type: 'api_key' };
78
- await authManager.authenticate('inst-1', config, { apiKey: 'sk-123' });
79
- expect(authManager.hasToken('inst-1')).toBe(true);
80
- await authManager.revokeToken('inst-1');
81
- expect(authManager.hasToken('inst-1')).toBe(false);
82
- });
83
-
84
- it('should detect expired tokens', async () => {
85
- const config: AuthConfig = { type: 'oauth2' };
86
- await authManager.authenticate('inst-exp', config, {
87
- accessToken: 'at-exp',
88
- expiresAt: String(Date.now() - 1000),
89
- });
90
- expect(authManager.isTokenExpired('inst-exp')).toBe(true);
91
- });
92
-
93
- it('should refresh oauth2 token', async () => {
94
- // refreshToken now makes a real HTTP call, so we mock fetch and provide vault credentials
95
- const vault = createMockVault({
96
- 'connectors.inst-ref.credentials': JSON.stringify({ clientId: 'cid', clientSecret: 'csecret' }),
97
- });
98
- const mgr = new AuthManager(vault);
99
- const config: AuthConfig = {
100
- type: 'oauth2',
101
- oauth2: { authUrl: 'https://auth.example.com', tokenUrl: 'https://token.example.com', scopes: ['read'] },
102
- };
103
- await mgr.authenticate('inst-ref', config, {
104
- accessToken: 'at-old',
105
- refreshToken: 'rt-xyz',
106
- });
107
-
108
- // Mock the global fetch to return a fake token response
109
- const mockFetch = vi.fn().mockResolvedValue({
110
- ok: true,
111
- json: async () => ({ access_token: 'at-new', expires_in: 3600 }),
112
- });
113
- const originalFetch = globalThis.fetch;
114
- globalThis.fetch = mockFetch as any;
115
- try {
116
- const refreshed = await mgr.refreshToken('inst-ref', config);
117
- expect(refreshed.accessToken).toBe('at-new');
118
- expect(refreshed.expiresAt).toBeGreaterThan(Date.now());
119
- expect(refreshed.refreshToken).toBe('rt-xyz');
120
- expect(mockFetch).toHaveBeenCalledOnce();
121
- } finally {
122
- globalThis.fetch = originalFetch;
123
- }
124
- });
125
-
126
- it('should throw when refreshing non-oauth2 token', async () => {
127
- const config: AuthConfig = { type: 'api_key' };
128
- await authManager.authenticate('inst-api', config, { apiKey: 'key' });
129
- await expect(authManager.refreshToken('inst-api', config)).rejects.toThrow('OAuth2');
130
- });
131
-
132
- it('should throw when refreshing unknown instance', async () => {
133
- const config: AuthConfig = { type: 'oauth2' };
134
- await expect(authManager.refreshToken('unknown', config)).rejects.toThrow('No token found');
135
- });
136
- });
@@ -1,61 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { defineConnector } from '../src/define-connector.js';
3
-
4
- describe('defineConnector', () => {
5
- const baseOpts = {
6
- id: 'my-connector',
7
- name: 'My Connector',
8
- description: 'A connector',
9
- version: '1.0.0',
10
- category: 'testing',
11
- auth: { type: 'api_key' as const },
12
- actions: [
13
- {
14
- id: 'action-1',
15
- name: 'Action 1',
16
- description: 'Does something',
17
- trustMinimum: 1 as const,
18
- trustDomain: 'integrations' as const,
19
- reversible: false,
20
- sideEffects: false,
21
- params: {},
22
- },
23
- ],
24
- executeAction: async () => ({}),
25
- };
26
-
27
- it('should create a valid connector', () => {
28
- const connector = defineConnector(baseOpts);
29
- expect(connector.id).toBe('my-connector');
30
- expect(connector.name).toBe('My Connector');
31
- expect(connector.actions).toHaveLength(1);
32
- expect(connector.triggers).toEqual([]);
33
- expect(connector.entities).toEqual([]);
34
- });
35
-
36
- it('should include triggers and entities when provided', () => {
37
- const connector = defineConnector({
38
- ...baseOpts,
39
- triggers: [{ id: 't1', name: 'Trigger', description: 'A trigger', type: 'poll' }],
40
- entities: [{ id: 'e1', name: 'Entity', description: 'An entity', fields: { name: 'string' } }],
41
- });
42
- expect(connector.triggers).toHaveLength(1);
43
- expect(connector.entities).toHaveLength(1);
44
- });
45
-
46
- it('should throw if id is missing', () => {
47
- expect(() => defineConnector({ ...baseOpts, id: '' })).toThrow('id and name are required');
48
- });
49
-
50
- it('should throw if name is missing', () => {
51
- expect(() => defineConnector({ ...baseOpts, name: '' })).toThrow('id and name are required');
52
- });
53
-
54
- it('should throw if no actions are defined', () => {
55
- expect(() => defineConnector({ ...baseOpts, actions: [] })).toThrow('at least one action');
56
- });
57
-
58
- it('should throw if auth is missing', () => {
59
- expect(() => defineConnector({ ...baseOpts, auth: undefined as any })).toThrow('auth config is required');
60
- });
61
- });
@@ -1,122 +0,0 @@
1
- import { describe, it, expect, beforeEach, afterEach } from 'vitest';
2
- import * as fs from 'node:fs/promises';
3
- import * as path from 'node:path';
4
- import * as os from 'node:os';
5
- import { ConnectorRegistry } from '../src/registry.js';
6
- import { AuthManager } from '../src/auth-manager.js';
7
- import { ActionExecutor } from '../src/executor.js';
8
- import { defineConnector } from '../src/define-connector.js';
9
- import { TrustEngine, TrustGate, ActionAuditTrail } from '@auxiora/autonomy';
10
-
11
- describe('ActionExecutor', () => {
12
- let tmpDir: string;
13
- let registry: ConnectorRegistry;
14
- let authManager: AuthManager;
15
- let trustGate: TrustGate;
16
- let auditTrail: ActionAuditTrail;
17
- let executor: ActionExecutor;
18
-
19
- beforeEach(async () => {
20
- tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), 'executor-'));
21
- const engine = new TrustEngine({ defaultLevel: 2 }, path.join(tmpDir, 'state.json'));
22
- await engine.load();
23
-
24
- registry = new ConnectorRegistry();
25
- authManager = new AuthManager();
26
- trustGate = new TrustGate(engine);
27
- auditTrail = new ActionAuditTrail(path.join(tmpDir, 'audit.json'));
28
- executor = new ActionExecutor(registry, authManager, trustGate, auditTrail);
29
-
30
- // Register a test connector
31
- registry.register(
32
- defineConnector({
33
- id: 'test',
34
- name: 'Test',
35
- description: 'Test connector',
36
- version: '1.0.0',
37
- category: 'testing',
38
- auth: { type: 'api_key' },
39
- actions: [
40
- {
41
- id: 'do-thing',
42
- name: 'Do Thing',
43
- description: 'Does a thing',
44
- trustMinimum: 1,
45
- trustDomain: 'integrations',
46
- reversible: true,
47
- sideEffects: true,
48
- params: {},
49
- },
50
- {
51
- id: 'high-trust',
52
- name: 'High Trust Action',
53
- description: 'Needs high trust',
54
- trustMinimum: 4,
55
- trustDomain: 'integrations',
56
- reversible: false,
57
- sideEffects: true,
58
- params: {},
59
- },
60
- ],
61
- executeAction: async (actionId) => {
62
- if (actionId === 'do-thing') return { result: 'done' };
63
- throw new Error('Action failed');
64
- },
65
- }),
66
- );
67
-
68
- // Authenticate instance
69
- await authManager.authenticate('inst-1', { type: 'api_key' }, { apiKey: 'test-key' });
70
- });
71
-
72
- afterEach(async () => {
73
- await fs.rm(tmpDir, { recursive: true, force: true });
74
- });
75
-
76
- it('should execute an action successfully', async () => {
77
- const result = await executor.execute('test', 'do-thing', {}, 'inst-1');
78
- expect(result.success).toBe(true);
79
- expect(result.data).toEqual({ result: 'done' });
80
- expect(result.auditId).toBeDefined();
81
- });
82
-
83
- it('should deny action when trust level is insufficient', async () => {
84
- const result = await executor.execute('test', 'high-trust', {}, 'inst-1');
85
- expect(result.success).toBe(false);
86
- expect(result.error).toContain('denied');
87
- });
88
-
89
- it('should fail for unknown connector', async () => {
90
- const result = await executor.execute('unknown', 'action', {}, 'inst-1');
91
- expect(result.success).toBe(false);
92
- expect(result.error).toContain('not found');
93
- });
94
-
95
- it('should fail for unknown action', async () => {
96
- const result = await executor.execute('test', 'unknown', {}, 'inst-1');
97
- expect(result.success).toBe(false);
98
- expect(result.error).toContain('not found');
99
- });
100
-
101
- it('should fail when no auth token exists', async () => {
102
- const result = await executor.execute('test', 'do-thing', {}, 'no-token');
103
- expect(result.success).toBe(false);
104
- expect(result.error).toContain('authentication token');
105
- });
106
-
107
- it('should record audit entry on success', async () => {
108
- const result = await executor.execute('test', 'do-thing', {}, 'inst-1');
109
- const entry = auditTrail.getById(result.auditId!);
110
- expect(entry).toBeDefined();
111
- expect(entry!.outcome).toBe('success');
112
- expect(entry!.executed).toBe(true);
113
- });
114
-
115
- it('should record audit entry on trust denial', async () => {
116
- const result = await executor.execute('test', 'high-trust', {}, 'inst-1');
117
- const entry = auditTrail.getById(result.auditId!);
118
- expect(entry).toBeDefined();
119
- expect(entry!.outcome).toBe('failure');
120
- expect(entry!.executed).toBe(false);
121
- });
122
- });
@@ -1,101 +0,0 @@
1
- import { describe, it, expect, beforeEach } from 'vitest';
2
- import { ConnectorRegistry } from '../src/registry.js';
3
- import { defineConnector } from '../src/define-connector.js';
4
- import type { Connector } from '../src/types.js';
5
-
6
- function makeConnector(overrides: Partial<Connector> = {}): Connector {
7
- return defineConnector({
8
- id: overrides.id ?? 'test-connector',
9
- name: overrides.name ?? 'Test Connector',
10
- description: 'A test connector',
11
- version: '1.0.0',
12
- category: overrides.category ?? 'testing',
13
- auth: { type: 'api_key' },
14
- actions: [
15
- {
16
- id: 'test-action',
17
- name: 'Test Action',
18
- description: 'Does a test thing',
19
- trustMinimum: 1,
20
- trustDomain: 'integrations',
21
- reversible: false,
22
- sideEffects: false,
23
- params: {},
24
- },
25
- ],
26
- triggers: [
27
- {
28
- id: 'test-trigger',
29
- name: 'Test Trigger',
30
- description: 'A test trigger',
31
- type: 'poll',
32
- pollIntervalMs: 60000,
33
- },
34
- ],
35
- executeAction: async () => ({ ok: true }),
36
- });
37
- }
38
-
39
- describe('ConnectorRegistry', () => {
40
- let registry: ConnectorRegistry;
41
-
42
- beforeEach(() => {
43
- registry = new ConnectorRegistry();
44
- });
45
-
46
- it('should register and retrieve a connector', () => {
47
- const connector = makeConnector();
48
- registry.register(connector);
49
- expect(registry.get('test-connector')).toBe(connector);
50
- });
51
-
52
- it('should throw when registering a duplicate', () => {
53
- const connector = makeConnector();
54
- registry.register(connector);
55
- expect(() => registry.register(connector)).toThrow('already registered');
56
- });
57
-
58
- it('should list all connectors', () => {
59
- registry.register(makeConnector({ id: 'a', name: 'A' }));
60
- registry.register(makeConnector({ id: 'b', name: 'B' }));
61
- expect(registry.list()).toHaveLength(2);
62
- });
63
-
64
- it('should list connectors by category', () => {
65
- registry.register(makeConnector({ id: 'a', category: 'productivity' }));
66
- registry.register(makeConnector({ id: 'b', category: 'devtools' }));
67
- registry.register(makeConnector({ id: 'c', category: 'productivity' }));
68
- expect(registry.listByCategory('productivity')).toHaveLength(2);
69
- expect(registry.listByCategory('devtools')).toHaveLength(1);
70
- expect(registry.listByCategory('unknown')).toHaveLength(0);
71
- });
72
-
73
- it('should get actions for a connector', () => {
74
- registry.register(makeConnector());
75
- const actions = registry.getActions('test-connector');
76
- expect(actions).toHaveLength(1);
77
- expect(actions[0].id).toBe('test-action');
78
- });
79
-
80
- it('should return empty array for unknown connector actions', () => {
81
- expect(registry.getActions('unknown')).toEqual([]);
82
- });
83
-
84
- it('should get triggers for a connector', () => {
85
- registry.register(makeConnector());
86
- const triggers = registry.getTriggers('test-connector');
87
- expect(triggers).toHaveLength(1);
88
- expect(triggers[0].id).toBe('test-trigger');
89
- });
90
-
91
- it('should unregister a connector', () => {
92
- registry.register(makeConnector());
93
- expect(registry.has('test-connector')).toBe(true);
94
- registry.unregister('test-connector');
95
- expect(registry.has('test-connector')).toBe(false);
96
- });
97
-
98
- it('should return undefined for unknown connector', () => {
99
- expect(registry.get('nonexistent')).toBeUndefined();
100
- });
101
- });
@@ -1,135 +0,0 @@
1
- import { describe, it, expect, beforeEach } from 'vitest';
2
- import { ConnectorRegistry } from '../src/registry.js';
3
- import { AuthManager } from '../src/auth-manager.js';
4
- import { TriggerManager } from '../src/trigger-manager.js';
5
- import { defineConnector } from '../src/define-connector.js';
6
- import type { TriggerEvent } from '../src/types.js';
7
-
8
- describe('TriggerManager', () => {
9
- let registry: ConnectorRegistry;
10
- let authManager: AuthManager;
11
- let triggerManager: TriggerManager;
12
- let pollResults: TriggerEvent[];
13
-
14
- beforeEach(async () => {
15
- registry = new ConnectorRegistry();
16
- authManager = new AuthManager();
17
- triggerManager = new TriggerManager(registry, authManager);
18
-
19
- pollResults = [
20
- {
21
- triggerId: 'new-item',
22
- connectorId: 'poll-test',
23
- data: { itemId: '123' },
24
- timestamp: Date.now(),
25
- },
26
- ];
27
-
28
- registry.register(
29
- defineConnector({
30
- id: 'poll-test',
31
- name: 'Poll Test',
32
- description: 'Connector with poll triggers',
33
- version: '1.0.0',
34
- category: 'testing',
35
- auth: { type: 'api_key' },
36
- actions: [
37
- {
38
- id: 'dummy',
39
- name: 'Dummy',
40
- description: 'Dummy action',
41
- trustMinimum: 0,
42
- trustDomain: 'integrations',
43
- reversible: false,
44
- sideEffects: false,
45
- params: {},
46
- },
47
- ],
48
- triggers: [
49
- { id: 'new-item', name: 'New Item', description: 'New item created', type: 'poll', pollIntervalMs: 5000 },
50
- ],
51
- executeAction: async () => ({}),
52
- pollTrigger: async () => pollResults,
53
- }),
54
- );
55
-
56
- await authManager.authenticate('inst-1', { type: 'api_key' }, { apiKey: 'key' });
57
- });
58
-
59
- it('should subscribe to a trigger', () => {
60
- const subId = triggerManager.subscribe('poll-test', 'new-item', 'inst-1', () => {});
61
- expect(subId).toBe('poll-test:new-item:inst-1');
62
- expect(triggerManager.getSubscriptions()).toContain(subId);
63
- });
64
-
65
- it('should throw when subscribing to unknown connector', () => {
66
- expect(() => triggerManager.subscribe('unknown', 'new-item', 'inst-1', () => {}))
67
- .toThrow('not found');
68
- });
69
-
70
- it('should throw when subscribing to unknown trigger', () => {
71
- expect(() => triggerManager.subscribe('poll-test', 'unknown', 'inst-1', () => {}))
72
- .toThrow('not found');
73
- });
74
-
75
- it('should unsubscribe', () => {
76
- const subId = triggerManager.subscribe('poll-test', 'new-item', 'inst-1', () => {});
77
- expect(triggerManager.unsubscribe(subId)).toBe(true);
78
- expect(triggerManager.getSubscriptions()).not.toContain(subId);
79
- });
80
-
81
- it('should poll all subscriptions and invoke handlers', async () => {
82
- const received: TriggerEvent[] = [];
83
- triggerManager.subscribe('poll-test', 'new-item', 'inst-1', (events) => {
84
- received.push(...events);
85
- });
86
-
87
- const events = await triggerManager.pollAll();
88
- expect(events).toHaveLength(1);
89
- expect(events[0].data.itemId).toBe('123');
90
- expect(received).toHaveLength(1);
91
- });
92
-
93
- it('should skip polling when no token is available', async () => {
94
- triggerManager.subscribe('poll-test', 'new-item', 'no-token', () => {});
95
- const events = await triggerManager.pollAll();
96
- expect(events).toHaveLength(0);
97
- });
98
-
99
- it('should handle poll errors gracefully', async () => {
100
- registry.register(
101
- defineConnector({
102
- id: 'error-test',
103
- name: 'Error Test',
104
- description: 'Connector that errors on poll',
105
- version: '1.0.0',
106
- category: 'testing',
107
- auth: { type: 'api_key' },
108
- actions: [
109
- {
110
- id: 'dummy',
111
- name: 'Dummy',
112
- description: 'Dummy',
113
- trustMinimum: 0,
114
- trustDomain: 'integrations',
115
- reversible: false,
116
- sideEffects: false,
117
- params: {},
118
- },
119
- ],
120
- triggers: [
121
- { id: 'error-trigger', name: 'Error', description: 'Errors', type: 'poll' },
122
- ],
123
- executeAction: async () => ({}),
124
- pollTrigger: async () => { throw new Error('Poll failed'); },
125
- }),
126
- );
127
- await authManager.authenticate('inst-err', { type: 'api_key' }, { apiKey: 'k' });
128
- triggerManager.subscribe('error-test', 'error-trigger', 'inst-err', () => {});
129
-
130
- // Should not throw
131
- const events = await triggerManager.pollAll();
132
- // Only the poll-test subscription should return events (if subscribed), error-test should not
133
- expect(events).toBeDefined();
134
- });
135
- });
package/tsconfig.json DELETED
@@ -1,12 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.base.json",
3
- "compilerOptions": {
4
- "outDir": "./dist",
5
- "rootDir": "./src"
6
- },
7
- "include": ["src/**/*"],
8
- "references": [
9
- { "path": "../core" },
10
- { "path": "../autonomy" }
11
- ]
12
- }
@@ -1 +0,0 @@
1
- {"fileNames":["../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2023.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2023.array.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2023.collection.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2023.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.float16.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../autonomy/dist/types.d.ts","../autonomy/dist/trust-engine.d.ts","../autonomy/dist/audit-trail.d.ts","../autonomy/dist/rollback.d.ts","../autonomy/dist/trust-gate.d.ts","../autonomy/dist/index.d.ts","./src/types.ts","./src/auth-manager.ts","./src/define-connector.ts","./src/registry.ts","./src/executor.ts","./src/trigger-manager.ts","./src/index.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/compatibility/iterators.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/globals.typedarray.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/buffer.buffer.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/globals.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/web-globals/blob.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/web-globals/console.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/web-globals/crypto.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/web-globals/domexception.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/web-globals/encoding.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/web-globals/events.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/utility.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/header.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/readable.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/fetch.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/formdata.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/connector.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/client-stats.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/client.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/errors.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/dispatcher.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/global-dispatcher.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/global-origin.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/pool-stats.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/pool.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/handlers.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/balanced-pool.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/h2c-client.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/agent.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-interceptor.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-call-history.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-agent.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-client.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-pool.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/snapshot-agent.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-errors.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/proxy-agent.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/retry-handler.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/retry-agent.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/api.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/cache-interceptor.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/interceptors.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/util.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/cookies.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/patch.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/websocket.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/eventsource.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/diagnostics-channel.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/content-type.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/cache.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/index.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/web-globals/fetch.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/web-globals/importmeta.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/web-globals/messaging.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/web-globals/navigator.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/web-globals/performance.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/web-globals/storage.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/web-globals/streams.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/web-globals/timers.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/web-globals/url.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/assert.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/assert/strict.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/async_hooks.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/buffer.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/child_process.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/cluster.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/console.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/constants.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/crypto.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/dgram.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/dns.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/dns/promises.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/domain.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/events.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/fs.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/fs/promises.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/http.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/http2.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/https.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/inspector.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/inspector.generated.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/inspector/promises.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/module.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/net.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/os.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/path.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/path/posix.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/path/win32.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/perf_hooks.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/process.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/punycode.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/querystring.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/quic.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/readline.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/readline/promises.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/repl.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/sea.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/sqlite.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/stream.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/stream/consumers.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/stream/promises.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/stream/web.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/string_decoder.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/test.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/test/reporters.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/timers.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/timers/promises.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/tls.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/trace_events.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/tty.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/url.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/util.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/util/types.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/v8.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/vm.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/wasi.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/worker_threads.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/zlib.d.ts","../../node_modules/.pnpm/@types+node@25.1.0/node_modules/@types/node/index.d.ts"],"fileIdsList":[[79,138,139,141,149,153,156,158,159,160,172],[79,140,141,149,153,156,158,159,160,172],[141,149,153,156,158,159,160,172],[79,141,149,153,156,158,159,160,172,180],[79,141,142,147,149,152,153,156,158,159,160,162,172,177,189],[79,141,142,143,149,152,153,156,158,159,160,172],[79,141,149,153,156,158,159,160,172],[79,141,144,149,153,156,158,159,160,172,190],[79,141,145,146,149,153,156,158,159,160,163,172],[79,141,146,149,153,156,158,159,160,172,177,186],[79,141,147,149,152,153,156,158,159,160,162,172],[79,140,141,148,149,153,156,158,159,160,172],[79,141,149,150,153,156,158,159,160,172],[79,141,149,151,152,153,156,158,159,160,172],[79,140,141,149,152,153,156,158,159,160,172],[79,141,149,152,153,154,156,158,159,160,172,177,189],[79,141,149,152,153,154,156,158,159,160,172,177,180],[79,128,141,149,152,153,155,156,158,159,160,162,172,177,189],[79,141,149,152,153,155,156,158,159,160,162,172,177,186,189],[79,141,149,153,155,156,157,158,159,160,172,177,186,189],[77,78,79,80,81,82,83,84,85,86,87,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196],[79,141,149,152,153,156,158,159,160,172],[79,141,149,153,156,158,160,172],[79,141,149,153,156,158,159,160,161,172,189],[79,141,149,152,153,156,158,159,160,162,172,177],[79,141,149,153,156,158,159,160,163,172],[79,141,149,153,156,158,159,160,164,172],[79,141,149,152,153,156,158,159,160,167,172],[79,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196],[79,141,149,153,156,158,159,160,169,172],[79,141,149,153,156,158,159,160,170,172],[79,141,146,149,153,156,158,159,160,162,172,180],[79,141,149,152,153,156,158,159,160,172,173],[79,141,149,153,156,158,159,160,172,174,190,193],[79,141,149,152,153,156,158,159,160,172,177,179,180],[79,141,149,153,156,158,159,160,172,178,180],[79,141,149,153,156,158,159,160,172,180,190],[79,141,149,153,156,158,159,160,172,181],[79,138,141,149,153,156,158,159,160,172,177,183],[79,141,149,153,156,158,159,160,172,177,182],[79,141,149,152,153,156,158,159,160,172,184,185],[79,141,149,153,156,158,159,160,172,184,185],[79,141,146,149,153,156,158,159,160,162,172,177,186],[79,141,149,153,156,158,159,160,172,187],[79,141,149,153,156,158,159,160,162,172,188],[79,141,149,153,155,156,158,159,160,170,172,189],[79,141,149,153,156,158,159,160,172,190,191],[79,141,146,149,153,156,158,159,160,172,191],[79,141,149,153,156,158,159,160,172,177,192],[79,141,149,153,156,158,159,160,161,172,193],[79,141,149,153,156,158,159,160,172,194],[79,141,144,149,153,156,158,159,160,172],[79,141,146,149,153,156,158,159,160,172],[79,141,149,153,156,158,159,160,172,190],[79,128,141,149,153,156,158,159,160,172],[79,141,149,153,156,158,159,160,172,189],[79,141,149,153,156,158,159,160,172,195],[79,141,149,153,156,158,159,160,167,172],[79,141,149,153,156,158,159,160,172,185],[79,128,141,149,152,153,154,156,158,159,160,167,172,177,180,189,192,193,195],[79,141,149,153,156,158,159,160,172,177,196],[79,94,97,100,101,141,149,153,156,158,159,160,172,189],[79,97,141,149,153,156,158,159,160,172,177,189],[79,97,101,141,149,153,156,158,159,160,172,189],[79,141,149,153,156,158,159,160,172,177],[79,91,141,149,153,156,158,159,160,172],[79,95,141,149,153,156,158,159,160,172],[79,93,94,97,141,149,153,156,158,159,160,172,189],[79,141,149,153,156,158,159,160,162,172,186],[79,141,149,153,156,158,159,160,172,197],[79,91,141,149,153,156,158,159,160,172,197],[79,93,97,141,149,153,156,158,159,160,162,172,189],[79,88,89,90,92,96,141,149,152,153,156,158,159,160,172,177,189],[79,97,105,113,141,149,153,156,158,159,160,172],[79,89,95,141,149,153,156,158,159,160,172],[79,97,122,123,141,149,153,156,158,159,160,172],[79,89,92,97,141,149,153,156,158,159,160,172,180,189,197],[79,97,141,149,153,156,158,159,160,172],[79,93,97,141,149,153,156,158,159,160,172,189],[79,88,141,149,153,156,158,159,160,172],[79,91,92,93,95,96,97,98,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,123,124,125,126,127,141,149,153,156,158,159,160,172],[79,97,115,118,141,149,153,156,158,159,160,172],[79,97,105,106,107,141,149,153,156,158,159,160,172],[79,95,97,106,108,141,149,153,156,158,159,160,172],[79,96,141,149,153,156,158,159,160,172],[79,89,91,97,141,149,153,156,158,159,160,172],[79,97,101,106,108,141,149,153,156,158,159,160,172],[79,101,141,149,153,156,158,159,160,172],[79,95,97,100,141,149,153,156,158,159,160,172,189],[79,89,93,97,105,141,149,153,156,158,159,160,172],[79,97,115,141,149,153,156,158,159,160,172],[79,108,141,149,153,156,158,159,160,172],[79,91,97,122,141,149,153,156,158,159,160,172,180,195,197],[64,79,141,149,153,156,158,159,160,172],[64,65,66,67,68,79,141,149,153,156,158,159,160,172],[64,66,79,141,149,153,156,158,159,160,172],[64,65,79,141,149,153,156,158,159,160,172],[70,79,141,149,153,156,158,159,160,172],[69,71,73,79,141,149,153,156,158,159,160,172],[70,71,72,73,74,75,79,141,149,153,156,158,159,160,172],[70,71,73,79,141,149,153,156,158,159,160,172],[69,79,141,149,153,156,158,159,160,172]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"2b79d8afa5f63a941b792d1961f843732636999b1923bda4e4a6d27c96d15c39","impliedFormat":99},{"version":"58966f3a2cc1ec0b189ffce6cc70fe99c61311c807f348adc71073d9eb0dd103","impliedFormat":99},{"version":"8eb4413a478a94ec66deb5c2da4ede9b88df649bbff511733b84927e52dd9a03","impliedFormat":99},{"version":"88ba2f77196f216493de4e88d966f27363b114a44e0fec72cb0b7b3b6c1fad76","impliedFormat":99},{"version":"1b4ac0bca7b60fa7721c6ef8f02961de85e4b3ccf0127842760fb68e0a8e4dd9","impliedFormat":99},{"version":"58d36f1908dc20ea730fe4175613f5995e8f7f2ec8c33408b1d4decdd82729e4","impliedFormat":99},{"version":"53b067515138d4ebd76ef5c5ebc71cfe65a4fefcb175cd0e9669e0cb3b38def1","signature":"370e59232d06a73cea1b0e07d6dfbd4fefd434c4bd4edc93235b95aa2135ca5a","impliedFormat":99},{"version":"881705d112d81fa0de3948e8af552cf369f23bce1319475221b0a5a9dc801d47","signature":"6f35f2530fdec9df044df09030cb89e3b966b78755293bb9db3e38a5df566766","impliedFormat":99},{"version":"382de71c6a898ceb302675820e90fc94a600840dbfd7dc3001b89651cc8550a5","signature":"37a5f8d155e4cf79bcef8f3eec9183c2db128baccc630c22f3c37936f203a2ef","impliedFormat":99},{"version":"500ae8a3c143ab42a3236ec17cb93051c34c49c8a05051ad1b951c0b100da8de","signature":"f32094b8c23f4d5b75a4a6fff3da6b8f9550cb645010f1d6881ab68ba537994d","impliedFormat":99},{"version":"e7e7c71a3ad30fa3a3e2d2c70aed2b393c4b8ab340126153d0de87c01e468fd5","signature":"065ad68f46401fded391aa2f77cfae3e7f2c131610a3e1cede9acf4e9dfe6acb","impliedFormat":99},{"version":"51f8c3b3d042c5fba3df28e48e0785a12f1ca0fad0d451ca7b287f6c6efcafb0","signature":"1f17aadce352944f0778f9b8b93cb397554aa9ac22875d001a5598449a28f4be","impliedFormat":99},{"version":"2ac793e60feaf4edc84f0ec5a9e9f41b8527c743e3141d35443193f511dcc373","signature":"b64cdb71a837b444d5a615a6a665c9516d6e98ca2b095547ea061fe7a7ec5cfc","impliedFormat":99},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"0ccdaa19852d25ecd84eec365c3bfa16e7859cadecf6e9ca6d0dbbbee439743f","affectsGlobalScope":true,"impliedFormat":1},{"version":"438b41419b1df9f1fbe33b5e1b18f5853432be205991d1b19f5b7f351675541e","affectsGlobalScope":true,"impliedFormat":1},{"version":"096116f8fedc1765d5bd6ef360c257b4a9048e5415054b3bf3c41b07f8951b0b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5e01375c9e124a83b52ee4b3244ed1a4d214a6cfb54ac73e164a823a4a7860a","affectsGlobalScope":true,"impliedFormat":1},{"version":"f90ae2bbce1505e67f2f6502392e318f5714bae82d2d969185c4a6cecc8af2fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b58e207b93a8f1c88bbf2a95ddc686ac83962b13830fe8ad3f404ffc7051fb4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1fefabcb2b06736a66d2904074d56268753654805e829989a46a0161cd8412c5","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"c18a99f01eb788d849ad032b31cafd49de0b19e083fe775370834c5675d7df8e","affectsGlobalScope":true,"impliedFormat":1},{"version":"5247874c2a23b9a62d178ae84f2db6a1d54e6c9a2e7e057e178cc5eea13757fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"487b694c3de27ddf4ad107d4007ad304d29effccf9800c8ae23c2093638d906a","impliedFormat":1},{"version":"3a80bc85f38526ca3b08007ee80712e7bb0601df178b23fbf0bf87036fce40ce","impliedFormat":1},{"version":"ccf4552357ce3c159ef75f0f0114e80401702228f1898bdc9402214c9499e8c0","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"2931540c47ee0ff8a62860e61782eb17b155615db61e36986e54645ec67f67c2","impliedFormat":1},{"version":"ccab02f3920fc75c01174c47fcf67882a11daf16baf9e81701d0a94636e94556","impliedFormat":1},{"version":"f6faf5f74e4c4cc309a6c6a6c4da02dbb840be5d3e92905a23dcd7b2b0bd1986","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"33e981bf6376e939f99bd7f89abec757c64897d33c005036b9a10d9587d80187","impliedFormat":1},{"version":"7fd1b31fd35876b0aa650811c25ec2c97a3c6387e5473eb18004bed86cdd76b6","impliedFormat":1},{"version":"b41767d372275c154c7ea6c9d5449d9a741b8ce080f640155cc88ba1763e35b3","impliedFormat":1},{"version":"3bacf516d686d08682751a3bd2519ea3b8041a164bfb4f1d35728993e70a2426","impliedFormat":1},{"version":"7fb266686238369442bd1719bc0d7edd0199da4fb8540354e1ff7f16669b4323","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"5b03a034c72146b61573aab280f295b015b9168470f2df05f6080a2122f9b4df","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"54c3e2371e3d016469ad959697fd257e5621e16296fa67082c2575d0bf8eced0","impliedFormat":1},{"version":"beb8233b2c220cfa0feea31fbe9218d89fa02faa81ef744be8dce5acb89bb1fd","impliedFormat":1},{"version":"c183b931b68ad184bc8e8372bf663f3d33304772fb482f29fb91b3c391031f3e","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"48cc3ec153b50985fb95153258a710782b25975b10dd4ac8a4f3920632d10790","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"e1528ca65ac90f6fa0e4a247eb656b4263c470bb22d9033e466463e13395e599","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"866078923a56d026e39243b4392e282c1c63159723996fa89243140e1388a98d","impliedFormat":1},{"version":"dd0109710de4cd93e245121ab86d8c66d20f3ead80074b68e9c3e349c4f53342","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3275d55fac10b799c9546804126239baf020d220136163f763b55a74e50e750","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa68a0a3b7cb32c00e39ee3cd31f8f15b80cac97dce51b6ee7fc14a1e8deb30b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c36e755bced82df7fb6ce8169265d0a7bb046ab4e2cb6d0da0cb72b22033e89","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"7a93de4ff8a63bafe62ba86b89af1df0ccb5e40bb85b0c67d6bbcfdcf96bf3d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"90e85f9bc549dfe2b5749b45fe734144e96cd5d04b38eae244028794e142a77e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e0a5deeb610b2a50a6350bd23df6490036a1773a8a71d70f2f9549ab009e67ee","affectsGlobalScope":true,"impliedFormat":1},{"version":"435b3711465425770ed2ee2f1cf00ce071835265e0851a7dc4600ab4b007550e","impliedFormat":1},{"version":"7e49f52a159435fc8df4de9dc377ef5860732ca2dc9efec1640531d3cf5da7a3","impliedFormat":1},{"version":"dd4bde4bdc2e5394aed6855e98cf135dfdf5dd6468cad842e03116d31bbcc9bc","impliedFormat":1},{"version":"4d4e879009a84a47c05350b8dca823036ba3a29a3038efed1be76c9f81e45edf","affectsGlobalScope":true,"impliedFormat":1},{"version":"cf83d90d5faf27b994c2e79af02e32b555dbfe42cd9bd1571445f2168d1f4e2d","impliedFormat":1},{"version":"9ba13b47cb450a438e3076c4a3f6afb9dc85e17eae50f26d4b2d72c0688c9251","impliedFormat":1},{"version":"b64cd4401633ea4ecadfd700ddc8323a13b63b106ac7127c1d2726f32424622c","impliedFormat":1},{"version":"37c6e5fe5715814412b43cc9b50b24c67a63c4e04e753e0d1305970d65417a60","impliedFormat":1},{"version":"0e28335ac43f4d94dd2fe6d9e6fa6813570640839addd10d309d7985f33a6308","impliedFormat":1},{"version":"ee0e4946247f842c6dd483cbb60a5e6b484fee07996e3a7bc7343dfb68a04c5d","impliedFormat":1},{"version":"ef051f42b7e0ef5ca04552f54c4552eac84099d64b6c5ad0ef4033574b6035b8","impliedFormat":1},{"version":"853a43154f1d01b0173d9cbd74063507ece57170bad7a3b68f3fa1229ad0a92f","impliedFormat":1},{"version":"56231e3c39a031bfb0afb797690b20ed4537670c93c0318b72d5180833d98b72","impliedFormat":1},{"version":"5cc7c39031bfd8b00ad58f32143d59eb6ffc24f5d41a20931269011dccd36c5e","impliedFormat":1},{"version":"b0b69c61b0f0ec8ca15db4c8c41f6e77f4cacb784d42bca948f42dea33e8757e","affectsGlobalScope":true,"impliedFormat":1},{"version":"f96a48183254c00d24575401f1a761b4ce4927d927407e7862a83e06ce5d6964","impliedFormat":1},{"version":"cc25940cfb27aa538e60d465f98bb5068d4d7d33131861ace43f04fe6947d68f","impliedFormat":1},{"version":"e6f370b5c1d52edabb93ef055d0c0c396a98be77db8aa022fcc3670787b8b5f5","impliedFormat":1},{"version":"01ff95aa1443e3f7248974e5a771f513cb2ac158c8898f470a1792f817bee497","impliedFormat":1},{"version":"9d96a7ce809392ff2cb99691acf7c62e632fe56897356ba013b689277aca3619","impliedFormat":1},{"version":"42a05d8f239f74587d4926aba8cc54792eed8e8a442c7adc9b38b516642aadfe","impliedFormat":1},{"version":"5d21b58d60383cc6ab9ad3d3e265d7d25af24a2c9b506247e0e50b0a884920be","impliedFormat":1},{"version":"101f482fd48cb4c7c0468dcc6d62c843d842977aea6235644b1edd05e81fbf22","impliedFormat":1},{"version":"ae6757460f37078884b1571a3de3ebaf724d827d7e1d53626c02b3c2a408ac63","affectsGlobalScope":true,"impliedFormat":1},{"version":"27c0a08e343c6a0ae17bd13ba6d44a9758236dc904cd5e4b43456996cd51f520","impliedFormat":1},{"version":"3ef397f12387eff17f550bc484ea7c27d21d43816bbe609d495107f44b97e933","impliedFormat":1},{"version":"1023282e2ba810bc07905d3668349fbd37a26411f0c8f94a70ef3c05fe523fcf","impliedFormat":1},{"version":"b214ebcf76c51b115453f69729ee8aa7b7f8eccdae2a922b568a45c2d7ff52f7","impliedFormat":1},{"version":"429c9cdfa7d126255779efd7e6d9057ced2d69c81859bbab32073bad52e9ba76","impliedFormat":1},{"version":"6f80e51ba310608cd71bcdc09a171d7bbfb3b316048601c9ec215ce16a8dcfbc","impliedFormat":1},{"version":"10947bb49601aeec9ea1dddf61ef6e4f8442f949bd40a8008e12b129deb037be","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f2c62938251b45715fd2a9887060ec4fbc8724727029d1cbce373747252bdd7","impliedFormat":1},{"version":"e3ace08b6bbd84655d41e244677b474fd995923ffef7149ddb68af8848b60b05","impliedFormat":1},{"version":"132580b0e86c48fab152bab850fc57a4b74fe915c8958d2ccb052b809a44b61c","impliedFormat":1},{"version":"af4ab0aa8908fc9a655bb833d3bc28e117c4f0e1038c5a891546158beb25accb","impliedFormat":1},{"version":"69c9a5a9392e8564bd81116e1ed93b13205201fb44cb35a7fde8c9f9e21c4b23","impliedFormat":1},{"version":"5f8fc37f8434691ffac1bfd8fc2634647da2c0e84253ab5d2dd19a7718915b35","impliedFormat":1},{"version":"5981c2340fd8b076cae8efbae818d42c11ffc615994cb060b1cd390795f1be2b","impliedFormat":1},{"version":"1641d32611fc7aa82cdd9fa38ff18349aac4eda9e032ced76b21943673887f9a","impliedFormat":1},{"version":"ed4f674fc8c0c993cc7e145069ac44129e03519b910c62be206a0cc777bdc60b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0250da3eb85c99624f974e77ef355cdf86f43980251bc371475c2b397ba55bcd","impliedFormat":1},{"version":"f1c93e046fb3d9b7f8249629f4b63dc068dd839b824dd0aa39a5e68476dc9420","impliedFormat":1},{"version":"3d3a5f27ffbc06c885dd4d5f9ee20de61faf877fe2c3a7051c4825903d9a7fdc","impliedFormat":1},{"version":"12806f9f085598ef930edaf2467a5fa1789a878fba077cd27e85dc5851e11834","impliedFormat":1},{"version":"17d06eb5709839c7ce719f0c38ada6f308fb433f2cd6d8c87b35856e07400950","impliedFormat":1},{"version":"a43fe41c33d0a192a0ecaf9b92e87bef3709c9972e6d53c42c49251ccb962d69","impliedFormat":1},{"version":"a177959203c017fad3ecc4f3d96c8757a840957a4959a3ae00dab9d35961ca6c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc727ccf9b36e257ff982ea0badeffbfc2c151802f741bddff00c6af3b784cf","impliedFormat":1},{"version":"2a00d005e3af99cd1cfa75220e60c61b04bfb6be7ca7453bfe2ef6cca37cc03c","impliedFormat":1},{"version":"4844a4c9b4b1e812b257676ed8a80b3f3be0e29bf05e742cc2ea9c3c6865e6c6","impliedFormat":1},{"version":"064878a60367e0407c42fb7ba02a2ea4d83257357dc20088e549bd4d89433e9c","impliedFormat":1},{"version":"14d4bd22d1b05824971b98f7e91b2484c90f1a684805c330476641417c3d9735","impliedFormat":1},{"version":"586eaf66bace2e731cee0ddfbfac326ad74a83c1acfeac4afb2db85ad23226c7","impliedFormat":1},{"version":"b484ec11ba00e3a2235562a41898d55372ccabe607986c6fa4f4aba72093749f","impliedFormat":1},{"version":"d1a14d87cedcf4f0b8173720d6eb29cc02878bf2b6dabf9c9d9cee742f275368","impliedFormat":1},{"version":"41ef7992c555671a8fe54db302788adefa191ded810a50329b79d20a6772d14c","impliedFormat":1},{"version":"041a7781b9127ab568d2cdcce62c58fdea7c7407f40b8c50045d7866a2727130","impliedFormat":1},{"version":"b37f83e7deea729aa9ce5593f78905afb45b7532fdff63041d374f60059e7852","impliedFormat":1},{"version":"e1cb68f3ef3a8dd7b2a9dfb3de482ed6c0f1586ba0db4e7d73c1d2147b6ffc51","impliedFormat":1},{"version":"55cdbeebe76a1fa18bbd7e7bf73350a2173926bd3085bb050cf5a5397025ee4e","impliedFormat":1}],"root":[[70,76]],"options":{"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"module":199,"outDir":"./dist","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":10},"referencedMap":[[138,1],[139,1],[140,2],[79,3],[141,4],[142,5],[143,6],[77,7],[144,8],[145,9],[146,10],[147,11],[148,12],[149,13],[150,13],[151,14],[152,15],[153,16],[154,17],[80,7],[78,7],[155,18],[156,19],[157,20],[197,21],[158,22],[159,23],[160,22],[161,24],[162,25],[163,26],[164,27],[165,27],[166,27],[167,28],[168,29],[169,30],[170,31],[171,32],[172,33],[173,33],[174,34],[175,7],[176,7],[177,35],[178,36],[179,35],[180,37],[181,38],[182,39],[183,40],[184,41],[185,42],[186,43],[187,44],[188,45],[189,46],[190,47],[191,48],[192,49],[193,50],[194,51],[81,22],[82,7],[83,52],[84,53],[85,7],[86,54],[87,7],[129,55],[130,56],[131,57],[132,57],[133,58],[134,7],[135,4],[136,59],[137,56],[195,60],[196,61],[62,7],[63,7],[12,7],[11,7],[2,7],[13,7],[14,7],[15,7],[16,7],[17,7],[18,7],[19,7],[20,7],[3,7],[21,7],[22,7],[4,7],[23,7],[27,7],[24,7],[25,7],[26,7],[28,7],[29,7],[30,7],[5,7],[31,7],[32,7],[33,7],[34,7],[6,7],[38,7],[35,7],[36,7],[37,7],[39,7],[7,7],[40,7],[45,7],[46,7],[41,7],[42,7],[43,7],[44,7],[8,7],[50,7],[47,7],[48,7],[49,7],[51,7],[9,7],[52,7],[53,7],[54,7],[56,7],[55,7],[57,7],[58,7],[10,7],[59,7],[1,7],[60,7],[61,7],[105,62],[117,63],[103,64],[118,65],[127,66],[94,67],[95,68],[93,69],[126,70],[121,71],[125,72],[97,73],[114,74],[96,75],[124,76],[91,77],[92,71],[98,78],[99,7],[104,79],[102,78],[89,80],[128,81],[119,82],[108,83],[107,78],[109,84],[112,85],[106,86],[110,87],[122,70],[100,88],[101,89],[113,90],[90,65],[116,91],[115,78],[111,92],[120,7],[88,7],[123,93],[66,94],[69,95],[67,96],[65,94],[68,97],[64,7],[71,98],[72,98],[74,99],[76,100],[73,98],[75,101],[70,102]],"latestChangedDtsFile":"./dist/auth-manager.d.ts","version":"5.9.3"}