zeroauth 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/authorizer.d.ts +12 -0
- package/dist/api/authorizer.d.ts.map +1 -0
- package/dist/api/authorizer.js +157 -0
- package/dist/api/authorizer.js.map +1 -0
- package/dist/api/config/intent-config.d.ts +45 -0
- package/dist/api/config/intent-config.d.ts.map +1 -0
- package/dist/api/config/intent-config.js +95 -0
- package/dist/api/config/intent-config.js.map +1 -0
- package/dist/api/index.d.ts +4 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +722 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/routing/intent-router.d.ts +56 -0
- package/dist/api/routing/intent-router.d.ts.map +1 -0
- package/dist/api/routing/intent-router.js +140 -0
- package/dist/api/routing/intent-router.js.map +1 -0
- package/dist/api/routing/intent-validator.d.ts +83 -0
- package/dist/api/routing/intent-validator.d.ts.map +1 -0
- package/dist/api/routing/intent-validator.js +187 -0
- package/dist/api/routing/intent-validator.js.map +1 -0
- package/dist/api/services/billing.d.ts +9 -0
- package/dist/api/services/billing.d.ts.map +1 -0
- package/dist/api/services/billing.js +49 -0
- package/dist/api/services/billing.js.map +1 -0
- package/dist/api/services/stripe.d.ts +17 -0
- package/dist/api/services/stripe.d.ts.map +1 -0
- package/dist/api/services/stripe.js +69 -0
- package/dist/api/services/stripe.js.map +1 -0
- package/dist/authorizer.zip +0 -0
- package/dist/cli/auth.d.ts +20 -0
- package/dist/cli/auth.d.ts.map +1 -0
- package/dist/cli/auth.js +264 -0
- package/dist/cli/auth.js.map +1 -0
- package/dist/cli/config.d.ts +17 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +94 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +371 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/proxy.d.ts +2 -0
- package/dist/cli/proxy.d.ts.map +1 -0
- package/dist/cli/proxy.js +171 -0
- package/dist/cli/proxy.js.map +1 -0
- package/dist/data/catalog.d.ts +54 -0
- package/dist/data/catalog.d.ts.map +1 -0
- package/dist/data/catalog.js +108 -0
- package/dist/data/catalog.js.map +1 -0
- package/dist/db/dal.d.ts +75 -0
- package/dist/db/dal.d.ts.map +1 -0
- package/dist/db/dal.js +124 -0
- package/dist/db/dal.js.map +1 -0
- package/dist/index.js +156 -0
- package/dist/index.ts +134 -0
- package/dist/logger.d.ts +8 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +19 -0
- package/dist/logger.js.map +1 -0
- package/dist/test/setup.d.ts +2 -0
- package/dist/test/setup.d.ts.map +1 -0
- package/dist/test/setup.js +27 -0
- package/dist/test/setup.js.map +1 -0
- package/package.json +82 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorizer.d.ts","sourceRoot":"","sources":["../../src/api/authorizer.ts"],"names":[],"mappings":"AAuEA,wBAAsB,OAAO,CAAC,KAAK,EAAE,GAAG;;;;;;;;;;GA8DvC"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.handler = handler;
|
|
40
|
+
const axios_1 = __importDefault(require("axios"));
|
|
41
|
+
const jwt = __importStar(require("jsonwebtoken"));
|
|
42
|
+
const jwk_to_pem_1 = __importDefault(require("jwk-to-pem"));
|
|
43
|
+
// --- Identity Provider Agnostic Configuration ---
|
|
44
|
+
const OIDC_ISSUER_URL = process.env.OIDC_ISSUER_URL;
|
|
45
|
+
const OIDC_JWKS_URL = process.env.OIDC_JWKS_URL; // New variable for internal JWKS fetching
|
|
46
|
+
const OIDC_AUDIENCE = process.env.OIDC_AUDIENCE;
|
|
47
|
+
// JWKS cache
|
|
48
|
+
let jwksCache = null;
|
|
49
|
+
let jwksCacheTime = 0;
|
|
50
|
+
const JWKS_CACHE_DURATION = 3600000; // 1 hour
|
|
51
|
+
async function getJwks() {
|
|
52
|
+
if (!OIDC_JWKS_URL) {
|
|
53
|
+
throw new Error("OIDC_JWKS_URL environment variable is not set.");
|
|
54
|
+
}
|
|
55
|
+
const now = Date.now();
|
|
56
|
+
if (jwksCache && now - jwksCacheTime < JWKS_CACHE_DURATION) {
|
|
57
|
+
return jwksCache;
|
|
58
|
+
}
|
|
59
|
+
// Use OIDC_JWKS_URL directly if it's a full URL, otherwise construct from OIDC_ISSUER_URL
|
|
60
|
+
const jwksUrl = OIDC_JWKS_URL && OIDC_JWKS_URL.includes("://")
|
|
61
|
+
? OIDC_JWKS_URL
|
|
62
|
+
: `${OIDC_ISSUER_URL}/.well-known/jwks.json`;
|
|
63
|
+
try {
|
|
64
|
+
const response = await axios_1.default.get(jwksUrl);
|
|
65
|
+
jwksCache = response.data;
|
|
66
|
+
jwksCacheTime = now;
|
|
67
|
+
return jwksCache;
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
console.error("Error fetching JWKS:", error);
|
|
71
|
+
throw new Error(`Could not fetch JWKS`);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
async function verifyToken(token) {
|
|
75
|
+
const jwks = await getJwks();
|
|
76
|
+
const unverifiedHeader = jwt.decode(token, { complete: true });
|
|
77
|
+
if (!unverifiedHeader ||
|
|
78
|
+
typeof unverifiedHeader === "string" ||
|
|
79
|
+
!unverifiedHeader.header.kid) {
|
|
80
|
+
throw new Error("Invalid token header.");
|
|
81
|
+
}
|
|
82
|
+
const key = jwks.keys.find((k) => k.kid === unverifiedHeader.header.kid);
|
|
83
|
+
if (!key) {
|
|
84
|
+
throw new Error("Could not find a matching public key.");
|
|
85
|
+
}
|
|
86
|
+
const pem = (0, jwk_to_pem_1.default)(key);
|
|
87
|
+
try {
|
|
88
|
+
const payload = jwt.verify(token, pem, {
|
|
89
|
+
algorithms: ["RS256"],
|
|
90
|
+
audience: OIDC_AUDIENCE,
|
|
91
|
+
issuer: OIDC_ISSUER_URL,
|
|
92
|
+
});
|
|
93
|
+
return payload;
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
throw new Error(`Token is invalid: ${error}`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
async function handler(event) {
|
|
100
|
+
console.log("=== Authorizer handler called ===");
|
|
101
|
+
console.log("Event:", JSON.stringify(event, null, 2));
|
|
102
|
+
try {
|
|
103
|
+
const authHeader = event.headers?.authorization || event.headers?.Authorization;
|
|
104
|
+
console.log("Auth header present:", !!authHeader);
|
|
105
|
+
if (!authHeader || !authHeader.startsWith("Bearer ")) {
|
|
106
|
+
console.log("Invalid or missing auth header");
|
|
107
|
+
return {
|
|
108
|
+
principalId: "unauthorized",
|
|
109
|
+
policyDocument: {
|
|
110
|
+
Version: "2012-10-17",
|
|
111
|
+
Statement: [
|
|
112
|
+
{
|
|
113
|
+
Action: "execute-api:Invoke",
|
|
114
|
+
Effect: "Deny",
|
|
115
|
+
Resource: event.methodArn,
|
|
116
|
+
},
|
|
117
|
+
],
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
const token = authHeader.substring(7);
|
|
122
|
+
console.log("Token extracted, verifying...");
|
|
123
|
+
await verifyToken(token);
|
|
124
|
+
console.log("Token verified successfully");
|
|
125
|
+
return {
|
|
126
|
+
principalId: "user",
|
|
127
|
+
policyDocument: {
|
|
128
|
+
Version: "2012-10-17",
|
|
129
|
+
Statement: [
|
|
130
|
+
{
|
|
131
|
+
Action: "execute-api:Invoke",
|
|
132
|
+
Effect: "Allow",
|
|
133
|
+
Resource: event.methodArn,
|
|
134
|
+
},
|
|
135
|
+
],
|
|
136
|
+
},
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
catch (error) {
|
|
140
|
+
console.error("=== Authorization failed ===");
|
|
141
|
+
console.error("Error:", error);
|
|
142
|
+
return {
|
|
143
|
+
principalId: "unauthorized",
|
|
144
|
+
policyDocument: {
|
|
145
|
+
Version: "2012-10-17",
|
|
146
|
+
Statement: [
|
|
147
|
+
{
|
|
148
|
+
Action: "execute-api:Invoke",
|
|
149
|
+
Effect: "Deny",
|
|
150
|
+
Resource: event.methodArn,
|
|
151
|
+
},
|
|
152
|
+
],
|
|
153
|
+
},
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=authorizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorizer.js","sourceRoot":"","sources":["../../src/api/authorizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Intent Configuration for ZeroAuth Routing
|
|
3
|
+
*
|
|
4
|
+
* Simple intent-to-model-group mapping. LiteLLM handles all model selection,
|
|
5
|
+
* load balancing, and failover.
|
|
6
|
+
*/
|
|
7
|
+
export interface IntentDefinition {
|
|
8
|
+
name: string;
|
|
9
|
+
description: string;
|
|
10
|
+
modelGroupName: string;
|
|
11
|
+
examples: string[];
|
|
12
|
+
}
|
|
13
|
+
export declare class IntentConfig {
|
|
14
|
+
private static readonly INTENT_DEFINITIONS;
|
|
15
|
+
/**
|
|
16
|
+
* Get all available intents
|
|
17
|
+
*/
|
|
18
|
+
static getAvailableIntents(): IntentDefinition[];
|
|
19
|
+
/**
|
|
20
|
+
* Get intent definition by name
|
|
21
|
+
*/
|
|
22
|
+
static getIntent(intentName: string): IntentDefinition | null;
|
|
23
|
+
/**
|
|
24
|
+
* Convert intent name to model group name for LiteLLM
|
|
25
|
+
*/
|
|
26
|
+
static getModelGroupName(intentName: string): string | null;
|
|
27
|
+
/**
|
|
28
|
+
* Validate if an intent is recognized
|
|
29
|
+
*/
|
|
30
|
+
static isValidIntent(intentName: string): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Get help information for invalid intents
|
|
33
|
+
*/
|
|
34
|
+
static getIntentHelp(invalidIntent: string): {
|
|
35
|
+
invalidIntent: string;
|
|
36
|
+
availableIntents: string[];
|
|
37
|
+
intentFormat: string;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Initialize the intent configuration
|
|
41
|
+
*/
|
|
42
|
+
static initialize(): Promise<void>;
|
|
43
|
+
}
|
|
44
|
+
export declare const intentConfig: typeof IntentConfig;
|
|
45
|
+
//# sourceMappingURL=intent-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intent-config.d.ts","sourceRoot":"","sources":["../../../src/api/config/intent-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,qBAAa,YAAY;IAEvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAwCxC;IAEF;;OAEG;IACH,MAAM,CAAC,mBAAmB,IAAI,gBAAgB,EAAE;IAIhD;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAO7D;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAK3D;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAIjD;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG;QAC3C,aAAa,EAAE,MAAM,CAAC;QACtB,gBAAgB,EAAE,MAAM,EAAE,CAAC;QAC3B,YAAY,EAAE,MAAM,CAAC;KACtB;IAQD;;OAEG;WACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAMzC;AAED,eAAO,MAAM,YAAY,qBAAe,CAAC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Intent Configuration for ZeroAuth Routing
|
|
4
|
+
*
|
|
5
|
+
* Simple intent-to-model-group mapping. LiteLLM handles all model selection,
|
|
6
|
+
* load balancing, and failover.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.intentConfig = exports.IntentConfig = void 0;
|
|
10
|
+
class IntentConfig {
|
|
11
|
+
/**
|
|
12
|
+
* Get all available intents
|
|
13
|
+
*/
|
|
14
|
+
static getAvailableIntents() {
|
|
15
|
+
return this.INTENT_DEFINITIONS;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Get intent definition by name
|
|
19
|
+
*/
|
|
20
|
+
static getIntent(intentName) {
|
|
21
|
+
return (this.INTENT_DEFINITIONS.find((intent) => intent.name === intentName) ||
|
|
22
|
+
null);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Convert intent name to model group name for LiteLLM
|
|
26
|
+
*/
|
|
27
|
+
static getModelGroupName(intentName) {
|
|
28
|
+
const intent = this.getIntent(intentName);
|
|
29
|
+
return intent ? intent.modelGroupName : null;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Validate if an intent is recognized
|
|
33
|
+
*/
|
|
34
|
+
static isValidIntent(intentName) {
|
|
35
|
+
return this.INTENT_DEFINITIONS.some((intent) => intent.name === intentName);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Get help information for invalid intents
|
|
39
|
+
*/
|
|
40
|
+
static getIntentHelp(invalidIntent) {
|
|
41
|
+
return {
|
|
42
|
+
invalidIntent,
|
|
43
|
+
availableIntents: this.INTENT_DEFINITIONS.map((intent) => intent.name),
|
|
44
|
+
intentFormat: "intent:<keyword>",
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Initialize the intent configuration
|
|
49
|
+
*/
|
|
50
|
+
static async initialize() {
|
|
51
|
+
console.log("✅ Intent configuration initialized with intents:", this.INTENT_DEFINITIONS.map((i) => i.name).join(", "));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.IntentConfig = IntentConfig;
|
|
55
|
+
// Define available intents and their model group mappings
|
|
56
|
+
IntentConfig.INTENT_DEFINITIONS = [
|
|
57
|
+
{
|
|
58
|
+
name: "budget",
|
|
59
|
+
description: "Free models for budget-conscious usage",
|
|
60
|
+
modelGroupName: "budget",
|
|
61
|
+
examples: ["intent:budget"],
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
name: "fast",
|
|
65
|
+
description: "Models optimized for low latency and quick responses",
|
|
66
|
+
modelGroupName: "fast",
|
|
67
|
+
examples: ["intent:fast"],
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
name: "coding",
|
|
71
|
+
description: "Models specialized for code generation and programming tasks",
|
|
72
|
+
modelGroupName: "coding",
|
|
73
|
+
examples: ["intent:coding"],
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
name: "reasoning",
|
|
77
|
+
description: "Models optimized for complex reasoning and logic tasks",
|
|
78
|
+
modelGroupName: "reasoning",
|
|
79
|
+
examples: ["intent:reasoning"],
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
name: "general",
|
|
83
|
+
description: "Versatile models for general-purpose conversation and tasks",
|
|
84
|
+
modelGroupName: "general",
|
|
85
|
+
examples: ["intent:general"],
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
name: "premium",
|
|
89
|
+
description: "High-end models for complex tasks requiring superior performance",
|
|
90
|
+
modelGroupName: "premium",
|
|
91
|
+
examples: ["intent:premium"],
|
|
92
|
+
},
|
|
93
|
+
];
|
|
94
|
+
exports.intentConfig = IntentConfig;
|
|
95
|
+
//# sourceMappingURL=intent-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intent-config.js","sourceRoot":"","sources":["../../../src/api/config/intent-config.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AASH,MAAa,YAAY;IA4CvB;;OAEG;IACH,MAAM,CAAC,mBAAmB;QACxB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,UAAkB;QACjC,OAAO,CACL,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC;YACpE,IAAI,CACL,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,UAAkB;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC1C,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,UAAkB;QACrC,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IAC9E,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,aAAqB;QAKxC,OAAO;YACL,aAAa;YACb,gBAAgB,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;YACtE,YAAY,EAAE,kBAAkB;SACjC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,UAAU;QACrB,OAAO,CAAC,GAAG,CACT,kDAAkD,EAClD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACtD,CAAC;IACJ,CAAC;;AAnGH,oCAoGC;AAnGC,0DAA0D;AAClC,+BAAkB,GAAuB;IAC/D;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,wCAAwC;QACrD,cAAc,EAAE,QAAQ;QACxB,QAAQ,EAAE,CAAC,eAAe,CAAC;KAC5B;IACD;QACE,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,sDAAsD;QACnE,cAAc,EAAE,MAAM;QACtB,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;IACD;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EACT,8DAA8D;QAChE,cAAc,EAAE,QAAQ;QACxB,QAAQ,EAAE,CAAC,eAAe,CAAC;KAC5B;IACD;QACE,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,wDAAwD;QACrE,cAAc,EAAE,WAAW;QAC3B,QAAQ,EAAE,CAAC,kBAAkB,CAAC;KAC/B;IACD;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EACT,6DAA6D;QAC/D,cAAc,EAAE,SAAS;QACzB,QAAQ,EAAE,CAAC,gBAAgB,CAAC;KAC7B;IACD;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EACT,kEAAkE;QACpE,cAAc,EAAE,SAAS;QACzB,QAAQ,EAAE,CAAC,gBAAgB,CAAC;KAC7B;CACF,CAAC;AA4DS,QAAA,YAAY,GAAG,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAeA,QAAA,MAAM,GAAG,6CAAY,CAAC;AAwBtB,wBAAgB,4BAA4B,YAgB3C;AA20BD,eAAe,GAAG,CAAC"}
|