@quantiya/codevibe-codex-plugin 1.0.6 → 1.0.8
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/README.md +59 -106
- package/dist/server.js +22 -1051
- package/package.json +10 -12
- package/dist/approval-detector.d.ts +0 -38
- package/dist/approval-detector.d.ts.map +0 -1
- package/dist/approval-detector.js +0 -174
- package/dist/approval-detector.js.map +0 -1
- package/dist/appsync-client.d.ts +0 -69
- package/dist/appsync-client.d.ts.map +0 -1
- package/dist/appsync-client.js +0 -937
- package/dist/appsync-client.js.map +0 -1
- package/dist/auth-cli.d.ts +0 -11
- package/dist/auth-cli.d.ts.map +0 -1
- package/dist/auth-cli.js +0 -241
- package/dist/auth-cli.js.map +0 -1
- package/dist/config.d.ts +0 -29
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -116
- package/dist/config.js.map +0 -1
- package/dist/crypto-service.d.ts +0 -115
- package/dist/crypto-service.d.ts.map +0 -1
- package/dist/crypto-service.js +0 -278
- package/dist/crypto-service.js.map +0 -1
- package/dist/event-mapper.d.ts +0 -39
- package/dist/event-mapper.d.ts.map +0 -1
- package/dist/event-mapper.js +0 -302
- package/dist/event-mapper.js.map +0 -1
- package/dist/key-manager.d.ts +0 -87
- package/dist/key-manager.d.ts.map +0 -1
- package/dist/key-manager.js +0 -287
- package/dist/key-manager.js.map +0 -1
- package/dist/logger.d.ts +0 -2
- package/dist/logger.d.ts.map +0 -1
- package/dist/logger.js +0 -18
- package/dist/logger.js.map +0 -1
- package/dist/prompt-parser.d.ts +0 -3
- package/dist/prompt-parser.d.ts.map +0 -1
- package/dist/prompt-parser.js +0 -8
- package/dist/prompt-parser.js.map +0 -1
- package/dist/prompt-responder.d.ts +0 -18
- package/dist/prompt-responder.d.ts.map +0 -1
- package/dist/prompt-responder.js +0 -78
- package/dist/prompt-responder.js.map +0 -1
- package/dist/server.d.ts +0 -8
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js.map +0 -1
- package/dist/session-id-cache.d.ts +0 -16
- package/dist/session-id-cache.d.ts.map +0 -1
- package/dist/session-id-cache.js +0 -90
- package/dist/session-id-cache.js.map +0 -1
- package/dist/session-log-watcher.d.ts +0 -61
- package/dist/session-log-watcher.d.ts.map +0 -1
- package/dist/session-log-watcher.js +0 -372
- package/dist/session-log-watcher.js.map +0 -1
- package/dist/tmux-pane-observer.d.ts +0 -39
- package/dist/tmux-pane-observer.d.ts.map +0 -1
- package/dist/tmux-pane-observer.js +0 -255
- package/dist/tmux-pane-observer.js.map +0 -1
- package/dist/token-storage.d.ts +0 -39
- package/dist/token-storage.d.ts.map +0 -1
- package/dist/token-storage.js +0 -169
- package/dist/token-storage.js.map +0 -1
- package/dist/types.d.ts +0 -158
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -17
- package/dist/types.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,31 +1,27 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quantiya/codevibe-codex-plugin",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "1.0.8",
|
|
4
|
+
"description": "Control OpenAI Codex CLI from your iPhone and Android — real-time sync, approve file edits, send prompts by voice. Part of CodeVibe.",
|
|
5
5
|
"main": "dist/server.js",
|
|
6
6
|
"bin": {
|
|
7
7
|
"codevibe-codex": "./bin/codevibe-codex"
|
|
8
8
|
},
|
|
9
9
|
"files": [
|
|
10
|
-
"dist",
|
|
10
|
+
"dist/**/*.js",
|
|
11
11
|
"bin",
|
|
12
12
|
"hooks",
|
|
13
13
|
"README.md",
|
|
14
14
|
".env.example"
|
|
15
15
|
],
|
|
16
16
|
"scripts": {
|
|
17
|
-
"
|
|
17
|
+
"typecheck": "tsc --noEmit",
|
|
18
|
+
"build": "rm -rf dist && npm run typecheck && esbuild src/server.ts --bundle --platform=node --target=node18 --minify --packages=external --outfile=dist/server.js",
|
|
18
19
|
"prepack": "node scripts/prepare-publish.js && npm run build",
|
|
19
20
|
"postpack": "node scripts/restore-dev.js",
|
|
20
21
|
"dev": "ts-node src/server.ts",
|
|
21
22
|
"start": "node dist/server.js",
|
|
22
|
-
"watch": "tsc --watch",
|
|
23
23
|
"test": "jest --config jest.config.js"
|
|
24
24
|
},
|
|
25
|
-
"repository": {
|
|
26
|
-
"type": "git",
|
|
27
|
-
"url": "git+https://github.com/hendryyeh/quantiya-codevibe-codex-plugin.git"
|
|
28
|
-
},
|
|
29
25
|
"keywords": [
|
|
30
26
|
"codex",
|
|
31
27
|
"codex-cli",
|
|
@@ -34,6 +30,7 @@
|
|
|
34
30
|
"extension",
|
|
35
31
|
"mobile",
|
|
36
32
|
"ios",
|
|
33
|
+
"android",
|
|
37
34
|
"codevibe",
|
|
38
35
|
"companion",
|
|
39
36
|
"remote-control",
|
|
@@ -43,9 +40,9 @@
|
|
|
43
40
|
"author": "Quantiya <support@quantiya.ai>",
|
|
44
41
|
"license": "MIT",
|
|
45
42
|
"bugs": {
|
|
46
|
-
"
|
|
43
|
+
"email": "support@quantiya.ai"
|
|
47
44
|
},
|
|
48
|
-
"homepage": "https://
|
|
45
|
+
"homepage": "https://quantiya.ai/codevibe",
|
|
49
46
|
"engines": {
|
|
50
47
|
"node": ">=18.0.0"
|
|
51
48
|
},
|
|
@@ -53,7 +50,7 @@
|
|
|
53
50
|
"darwin"
|
|
54
51
|
],
|
|
55
52
|
"dependencies": {
|
|
56
|
-
"@quantiya/codevibe-core": "^1.0.
|
|
53
|
+
"@quantiya/codevibe-core": "^1.0.5",
|
|
57
54
|
"chokidar": "^4.0.0",
|
|
58
55
|
"dotenv": "^16.6.1",
|
|
59
56
|
"express": "^5.1.0",
|
|
@@ -67,6 +64,7 @@
|
|
|
67
64
|
"@types/node": "^24.10.1",
|
|
68
65
|
"@types/uuid": "^10.0.0",
|
|
69
66
|
"@types/ws": "^8.18.1",
|
|
67
|
+
"esbuild": "^0.28.0",
|
|
70
68
|
"jest": "^30.3.0",
|
|
71
69
|
"ts-jest": "^29.4.9",
|
|
72
70
|
"ts-node": "^10.9.2",
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from 'events';
|
|
2
|
-
import { PendingToolCall } from './types';
|
|
3
|
-
/**
|
|
4
|
-
* Detects when Codex might be waiting for approval using timeout heuristic.
|
|
5
|
-
* Emits an event with contextual metadata (file path, diff, parsed input) so the
|
|
6
|
-
* mobile client can show an interactive prompt with details.
|
|
7
|
-
*/
|
|
8
|
-
export declare class ApprovalDetector extends EventEmitter {
|
|
9
|
-
private pendingCalls;
|
|
10
|
-
private timers;
|
|
11
|
-
private timeoutMs;
|
|
12
|
-
constructor();
|
|
13
|
-
/**
|
|
14
|
-
* Called when a tool call starts.
|
|
15
|
-
*/
|
|
16
|
-
onToolCallStart(callId: string, name: string, input: string): void;
|
|
17
|
-
/**
|
|
18
|
-
* Called when a tool call completes (output received).
|
|
19
|
-
*/
|
|
20
|
-
onToolCallComplete(callId: string): void;
|
|
21
|
-
/**
|
|
22
|
-
* Check if a call is still pending after timeout.
|
|
23
|
-
*/
|
|
24
|
-
private checkPendingCall;
|
|
25
|
-
/**
|
|
26
|
-
* Extract a user-facing hint for the pending approval.
|
|
27
|
-
*/
|
|
28
|
-
private extractHint;
|
|
29
|
-
private mapToolName;
|
|
30
|
-
private parseInput;
|
|
31
|
-
private extractFilePath;
|
|
32
|
-
private extractDiff;
|
|
33
|
-
getPendingCalls(): PendingToolCall[];
|
|
34
|
-
hasPendingCalls(): boolean;
|
|
35
|
-
clear(): void;
|
|
36
|
-
shutdown(): void;
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=approval-detector.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"approval-detector.d.ts","sourceRoot":"","sources":["../src/approval-detector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,OAAO,CAAC,YAAY,CAA2C;IAC/D,OAAO,CAAC,MAAM,CAA0C;IACxD,OAAO,CAAC,SAAS,CAAS;;IAQ1B;;OAEG;IACI,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IA4BzE;;OAEG;IACI,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAY/C;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA4BxB;;OAEG;IACH,OAAO,CAAC,WAAW;IA2BnB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,WAAW;IAYZ,eAAe,IAAI,eAAe,EAAE;IAIpC,eAAe,IAAI,OAAO;IAI1B,KAAK,IAAI,IAAI;IASb,QAAQ,IAAI,IAAI;CAKxB"}
|
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ApprovalDetector = void 0;
|
|
4
|
-
const events_1 = require("events");
|
|
5
|
-
const codevibe_core_1 = require("@quantiya/codevibe-core");
|
|
6
|
-
const logger_1 = require("./logger");
|
|
7
|
-
/**
|
|
8
|
-
* Detects when Codex might be waiting for approval using timeout heuristic.
|
|
9
|
-
* Emits an event with contextual metadata (file path, diff, parsed input) so the
|
|
10
|
-
* mobile client can show an interactive prompt with details.
|
|
11
|
-
*/
|
|
12
|
-
class ApprovalDetector extends events_1.EventEmitter {
|
|
13
|
-
constructor() {
|
|
14
|
-
super();
|
|
15
|
-
this.pendingCalls = new Map();
|
|
16
|
-
this.timers = new Map();
|
|
17
|
-
this.timeoutMs = (0, codevibe_core_1.getConfig)().codex.approvalTimeoutMs;
|
|
18
|
-
logger_1.logger.info('Approval detector initialized', { timeoutMs: this.timeoutMs });
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Called when a tool call starts.
|
|
22
|
-
*/
|
|
23
|
-
onToolCallStart(callId, name, input) {
|
|
24
|
-
logger_1.logger.debug('Tool call started', { callId, name });
|
|
25
|
-
// Parse input for extra context (file path, diff, parsed JSON)
|
|
26
|
-
const parsedInput = this.parseInput(input);
|
|
27
|
-
const filePath = this.extractFilePath(name, input, parsedInput);
|
|
28
|
-
const diff = this.extractDiff(name, input, parsedInput);
|
|
29
|
-
const pending = {
|
|
30
|
-
callId,
|
|
31
|
-
name,
|
|
32
|
-
input,
|
|
33
|
-
filePath,
|
|
34
|
-
diff,
|
|
35
|
-
parsedInput,
|
|
36
|
-
timestamp: Date.now(),
|
|
37
|
-
notificationSent: false,
|
|
38
|
-
};
|
|
39
|
-
this.pendingCalls.set(callId, pending);
|
|
40
|
-
const timer = setTimeout(() => {
|
|
41
|
-
this.checkPendingCall(callId);
|
|
42
|
-
}, this.timeoutMs);
|
|
43
|
-
this.timers.set(callId, timer);
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Called when a tool call completes (output received).
|
|
47
|
-
*/
|
|
48
|
-
onToolCallComplete(callId) {
|
|
49
|
-
logger_1.logger.debug('Tool call completed', { callId });
|
|
50
|
-
this.pendingCalls.delete(callId);
|
|
51
|
-
const timer = this.timers.get(callId);
|
|
52
|
-
if (timer) {
|
|
53
|
-
clearTimeout(timer);
|
|
54
|
-
this.timers.delete(callId);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Check if a call is still pending after timeout.
|
|
59
|
-
*/
|
|
60
|
-
checkPendingCall(callId) {
|
|
61
|
-
const pending = this.pendingCalls.get(callId);
|
|
62
|
-
if (!pending)
|
|
63
|
-
return;
|
|
64
|
-
if (pending.notificationSent)
|
|
65
|
-
return;
|
|
66
|
-
const elapsed = Date.now() - pending.timestamp;
|
|
67
|
-
logger_1.logger.info('Tool call still pending after timeout', {
|
|
68
|
-
callId,
|
|
69
|
-
name: pending.name,
|
|
70
|
-
elapsedMs: elapsed,
|
|
71
|
-
});
|
|
72
|
-
pending.notificationSent = true;
|
|
73
|
-
this.pendingCalls.set(callId, pending);
|
|
74
|
-
this.emit('approval-pending', {
|
|
75
|
-
callId,
|
|
76
|
-
toolName: pending.name,
|
|
77
|
-
hint: this.extractHint(pending.name, pending.input, pending.filePath),
|
|
78
|
-
filePath: pending.filePath,
|
|
79
|
-
diff: pending.diff,
|
|
80
|
-
toolInput: pending.parsedInput,
|
|
81
|
-
rawInput: pending.input,
|
|
82
|
-
elapsedMs: elapsed,
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Extract a user-facing hint for the pending approval.
|
|
87
|
-
*/
|
|
88
|
-
extractHint(name, input, filePath) {
|
|
89
|
-
if (filePath) {
|
|
90
|
-
return `File: ${filePath}`;
|
|
91
|
-
}
|
|
92
|
-
if (name === 'apply_patch' && input) {
|
|
93
|
-
const match = input.match(/\*\*\* (?:Update|Add|Delete) File: (.+)/);
|
|
94
|
-
if (match) {
|
|
95
|
-
return `File: ${match[1].trim()}`;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
if (name === 'shell_command' || name === 'shell') {
|
|
99
|
-
try {
|
|
100
|
-
const args = JSON.parse(input);
|
|
101
|
-
if (args.command) {
|
|
102
|
-
const cmd = args.command.substring(0, 50);
|
|
103
|
-
return `Command: ${cmd}${args.command.length > 50 ? '...' : ''}`;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
catch {
|
|
107
|
-
// Ignore parse errors
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
return `Tool: ${this.mapToolName(name)}`;
|
|
111
|
-
}
|
|
112
|
-
mapToolName(name) {
|
|
113
|
-
const mapping = {
|
|
114
|
-
shell_command: 'Bash',
|
|
115
|
-
shell: 'Bash',
|
|
116
|
-
apply_patch: 'File Edit',
|
|
117
|
-
write_file: 'Write File',
|
|
118
|
-
read_file: 'Read File',
|
|
119
|
-
};
|
|
120
|
-
return mapping[name] || name;
|
|
121
|
-
}
|
|
122
|
-
parseInput(input) {
|
|
123
|
-
if (!input)
|
|
124
|
-
return undefined;
|
|
125
|
-
try {
|
|
126
|
-
return JSON.parse(input);
|
|
127
|
-
}
|
|
128
|
-
catch {
|
|
129
|
-
return undefined;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
extractFilePath(name, rawInput, parsedInput) {
|
|
133
|
-
if (name === 'apply_patch' && rawInput) {
|
|
134
|
-
const match = rawInput.match(/\*\*\* (?:Update|Add|Delete) File: (.+)/);
|
|
135
|
-
if (match)
|
|
136
|
-
return match[1].trim();
|
|
137
|
-
}
|
|
138
|
-
const candidate = parsedInput?.file_path || parsedInput?.path || parsedInput?.filePath;
|
|
139
|
-
if (candidate && typeof candidate === 'string') {
|
|
140
|
-
return candidate;
|
|
141
|
-
}
|
|
142
|
-
return undefined;
|
|
143
|
-
}
|
|
144
|
-
extractDiff(name, rawInput, parsedInput) {
|
|
145
|
-
if (name === 'apply_patch' && rawInput) {
|
|
146
|
-
return rawInput;
|
|
147
|
-
}
|
|
148
|
-
if (parsedInput?.diff && typeof parsedInput.diff === 'string') {
|
|
149
|
-
return parsedInput.diff;
|
|
150
|
-
}
|
|
151
|
-
return undefined;
|
|
152
|
-
}
|
|
153
|
-
getPendingCalls() {
|
|
154
|
-
return Array.from(this.pendingCalls.values());
|
|
155
|
-
}
|
|
156
|
-
hasPendingCalls() {
|
|
157
|
-
return this.pendingCalls.size > 0;
|
|
158
|
-
}
|
|
159
|
-
clear() {
|
|
160
|
-
for (const timer of this.timers.values()) {
|
|
161
|
-
clearTimeout(timer);
|
|
162
|
-
}
|
|
163
|
-
this.timers.clear();
|
|
164
|
-
this.pendingCalls.clear();
|
|
165
|
-
logger_1.logger.debug('Approval detector cleared');
|
|
166
|
-
}
|
|
167
|
-
shutdown() {
|
|
168
|
-
this.clear();
|
|
169
|
-
this.removeAllListeners();
|
|
170
|
-
logger_1.logger.info('Approval detector shutdown');
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
exports.ApprovalDetector = ApprovalDetector;
|
|
174
|
-
//# sourceMappingURL=approval-detector.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"approval-detector.js","sourceRoot":"","sources":["../src/approval-detector.ts"],"names":[],"mappings":"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"}
|
package/dist/appsync-client.d.ts
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { CreateEventInput, CreateSessionInput, UpdateSessionInput, UpdateEventStatusInput, CreateFileChangeInput, Event, Session, EventSource, DownloadUrlResponse } from './types';
|
|
2
|
-
export declare class AppSyncClient {
|
|
3
|
-
private authenticated;
|
|
4
|
-
private currentUserId;
|
|
5
|
-
private currentEmail;
|
|
6
|
-
private storedTokens;
|
|
7
|
-
private activeSubscriptions;
|
|
8
|
-
constructor();
|
|
9
|
-
getCurrentUserId(): string;
|
|
10
|
-
getCurrentUserEmail(): string | null;
|
|
11
|
-
/**
|
|
12
|
-
* Authenticate using stored OAuth tokens from 'codevibe-codex login'
|
|
13
|
-
* Returns true if successfully authenticated, false otherwise
|
|
14
|
-
*/
|
|
15
|
-
authenticateWithStoredTokens(): Promise<boolean>;
|
|
16
|
-
/**
|
|
17
|
-
* Refresh expired tokens using the refresh token
|
|
18
|
-
*/
|
|
19
|
-
private refreshStoredTokens;
|
|
20
|
-
/**
|
|
21
|
-
* Check if stored tokens exist and are valid
|
|
22
|
-
*/
|
|
23
|
-
hasValidStoredTokens(): boolean;
|
|
24
|
-
signOutUser(): void;
|
|
25
|
-
/**
|
|
26
|
-
* Make a direct GraphQL request to AppSync using fetch
|
|
27
|
-
* Uses stored OAuth tokens for Cognito User Pool authentication
|
|
28
|
-
* Automatically refreshes token and retries on 401 errors
|
|
29
|
-
*/
|
|
30
|
-
private graphqlRequest;
|
|
31
|
-
createSession(input: CreateSessionInput): Promise<Session>;
|
|
32
|
-
updateSession(input: UpdateSessionInput): Promise<Session>;
|
|
33
|
-
createEvent(input: CreateEventInput): Promise<Event>;
|
|
34
|
-
updateEventStatus(input: UpdateEventStatusInput): Promise<Event>;
|
|
35
|
-
createFileChange(input: CreateFileChangeInput): Promise<any>;
|
|
36
|
-
getSession(sessionId: string): Promise<Session | null>;
|
|
37
|
-
listEvents(sessionId: string, source?: EventSource): Promise<Event[]>;
|
|
38
|
-
subscribeToEvents(sessionId: string, onEvent: (event: Event) => void, onError?: (error: Error) => void): () => void;
|
|
39
|
-
/**
|
|
40
|
-
* Build the AppSync real-time WebSocket URL with authorization
|
|
41
|
-
*/
|
|
42
|
-
private buildRealtimeUrl;
|
|
43
|
-
/**
|
|
44
|
-
* Create a custom WebSocket subscription to AppSync
|
|
45
|
-
* This bypasses Amplify which doesn't work with externally stored tokens
|
|
46
|
-
*/
|
|
47
|
-
private createSubscription;
|
|
48
|
-
/**
|
|
49
|
-
* Send subscription start message
|
|
50
|
-
*/
|
|
51
|
-
private sendSubscriptionStart;
|
|
52
|
-
/**
|
|
53
|
-
* Reset the keep-alive timer - if no message received in 5 minutes, reconnect
|
|
54
|
-
*/
|
|
55
|
-
private resetKeepAliveTimer;
|
|
56
|
-
private handleSubscriptionError;
|
|
57
|
-
private cleanupSubscriptionState;
|
|
58
|
-
cleanupSubscriptions(): void;
|
|
59
|
-
getAttachmentDownloadUrl(s3Key: string): Promise<DownloadUrlResponse>;
|
|
60
|
-
isAuthenticated(): boolean;
|
|
61
|
-
registerDeviceKey(deviceId: string, publicKey: string, platform: string, deviceName?: string): Promise<void>;
|
|
62
|
-
removeDeviceKey(deviceId: string): Promise<void>;
|
|
63
|
-
listUserDeviceKeys(): Promise<Array<{
|
|
64
|
-
deviceId: string;
|
|
65
|
-
publicKey: string;
|
|
66
|
-
}>>;
|
|
67
|
-
grantSessionKey(sessionId: string, deviceId: string, encryptedKey: string, ephemeralPublicKey: string): Promise<void>;
|
|
68
|
-
}
|
|
69
|
-
//# sourceMappingURL=appsync-client.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"appsync-client.d.ts","sourceRoot":"","sources":["../src/appsync-client.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,KAAK,EACL,OAAO,EACP,WAAW,EAEX,mBAAmB,EACpB,MAAM,SAAS,CAAC;AA0OjB,qBAAa,aAAa;IACxB,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,mBAAmB,CAA6C;;IAOjE,gBAAgB,IAAI,MAAM;IAK1B,mBAAmB,IAAI,MAAM,GAAG,IAAI;IAI3C;;;OAGG;IACU,4BAA4B,IAAI,OAAO,CAAC,OAAO,CAAC;IA2C7D;;OAEG;YACW,mBAAmB;IAoDjC;;OAEG;IACI,oBAAoB,IAAI,OAAO;IAM/B,WAAW,IAAI,IAAI;IAQ1B;;;;OAIG;YACW,cAAc;IAqDf,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IAwC1D,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IAsB1D,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC;IA8BpD,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,KAAK,CAAC;IAuBhE,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC;IA6B5D,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IActD,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAc3E,iBAAiB,CACtB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,EAC/B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAC/B,MAAM,IAAI;IAoCb;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAuBxB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAuI1B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA8B7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,uBAAuB;IAoE/B,OAAO,CAAC,wBAAwB;IAgCzB,oBAAoB,IAAI,IAAI;IActB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAmB3E,eAAe,IAAI,OAAO;IAOpB,iBAAiB,CAC5B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAuBH,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAchD,kBAAkB,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAqB7E,eAAe,CAC1B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,IAAI,CAAC;CAmBjB"}
|