@foruai/shared 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constants.d.ts +13 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/types.d.ts +115 -0
- package/dist/types.d.ts.map +1 -0
- package/package.json +14 -0
- package/src/constants.ts +14 -0
- package/src/index.ts +2 -0
- package/src/types.ts +130 -0
- package/tsconfig.json +8 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const BADGE_STATUS: {
|
|
2
|
+
readonly VERIFIED: "verified";
|
|
3
|
+
readonly NOT_VERIFIED: "not_verified";
|
|
4
|
+
readonly NOT_FOUND: "not_found";
|
|
5
|
+
};
|
|
6
|
+
export declare const API_PATHS: {
|
|
7
|
+
readonly VERIFY: "/v1/verify";
|
|
8
|
+
readonly BADGES: "/v1/badges";
|
|
9
|
+
readonly HEALTH: "/v1/health";
|
|
10
|
+
readonly CHAT: "/v1/chat";
|
|
11
|
+
};
|
|
12
|
+
export declare const HMAC_MAX_AGE_MS: number;
|
|
13
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY;;;;CAIf,CAAA;AAEV,eAAO,MAAM,SAAS;;;;;CAKZ,CAAA;AAEV,eAAO,MAAM,eAAe,QAAgB,CAAA"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
// src/constants.ts
|
|
3
|
+
var BADGE_STATUS = {
|
|
4
|
+
VERIFIED: "verified",
|
|
5
|
+
NOT_VERIFIED: "not_verified",
|
|
6
|
+
NOT_FOUND: "not_found"
|
|
7
|
+
};
|
|
8
|
+
var API_PATHS = {
|
|
9
|
+
VERIFY: "/v1/verify",
|
|
10
|
+
BADGES: "/v1/badges",
|
|
11
|
+
HEALTH: "/v1/health",
|
|
12
|
+
CHAT: "/v1/chat"
|
|
13
|
+
};
|
|
14
|
+
var HMAC_MAX_AGE_MS = 5 * 60 * 1000;
|
|
15
|
+
export {
|
|
16
|
+
HMAC_MAX_AGE_MS,
|
|
17
|
+
BADGE_STATUS,
|
|
18
|
+
API_PATHS
|
|
19
|
+
};
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
export interface VerificationRequest {
|
|
2
|
+
identity: {
|
|
3
|
+
wallet_address?: string;
|
|
4
|
+
x_username?: string;
|
|
5
|
+
};
|
|
6
|
+
badge_ids?: number[];
|
|
7
|
+
discord_server_id?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface VerificationResponse {
|
|
10
|
+
identity: {
|
|
11
|
+
resolved_user_id: number | null;
|
|
12
|
+
wallet_address?: string;
|
|
13
|
+
x_username?: string;
|
|
14
|
+
};
|
|
15
|
+
badges: BadgeResult[];
|
|
16
|
+
discord?: DiscordResult;
|
|
17
|
+
verified_at: string;
|
|
18
|
+
}
|
|
19
|
+
export interface BadgeResult {
|
|
20
|
+
badge_id: number;
|
|
21
|
+
name?: string;
|
|
22
|
+
description?: string;
|
|
23
|
+
status: BadgeStatus;
|
|
24
|
+
image?: string;
|
|
25
|
+
rarity?: string;
|
|
26
|
+
unlocked_at?: string;
|
|
27
|
+
reason?: BadgeReason;
|
|
28
|
+
onchain_proof?: OnchainProof;
|
|
29
|
+
}
|
|
30
|
+
export interface OnchainProof {
|
|
31
|
+
contract_address: string;
|
|
32
|
+
chain_id: number;
|
|
33
|
+
rpc_url: string;
|
|
34
|
+
nft_erc_type: string;
|
|
35
|
+
wallet_address: string;
|
|
36
|
+
balance: string;
|
|
37
|
+
proof_method: string;
|
|
38
|
+
verified_onchain: boolean;
|
|
39
|
+
}
|
|
40
|
+
export interface BadgeReason {
|
|
41
|
+
rules: BadgeRuleInfo[];
|
|
42
|
+
awarded_via?: AwardSource;
|
|
43
|
+
minting?: MintingInfo;
|
|
44
|
+
exp_earned?: string;
|
|
45
|
+
identifi_reward?: string;
|
|
46
|
+
metadata?: Record<string, unknown>;
|
|
47
|
+
}
|
|
48
|
+
export interface BadgeRuleInfo {
|
|
49
|
+
validator_key: string;
|
|
50
|
+
validator_label: string;
|
|
51
|
+
operator: string;
|
|
52
|
+
value: unknown;
|
|
53
|
+
value_type: string;
|
|
54
|
+
params_schema?: {
|
|
55
|
+
rpc_url?: string;
|
|
56
|
+
chain_id?: number;
|
|
57
|
+
contract_address?: string;
|
|
58
|
+
nft_erc_type?: string;
|
|
59
|
+
[key: string]: unknown;
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
export interface AwardSource {
|
|
63
|
+
source_type: 'campaign' | 'quest_campaign';
|
|
64
|
+
campaign_id?: number;
|
|
65
|
+
campaign_name?: string;
|
|
66
|
+
quest_campaign_id?: number;
|
|
67
|
+
quest_name?: string;
|
|
68
|
+
community_name?: string;
|
|
69
|
+
user_rank?: number;
|
|
70
|
+
user_rep_score?: string;
|
|
71
|
+
claimed_at?: string;
|
|
72
|
+
}
|
|
73
|
+
export interface MintingInfo {
|
|
74
|
+
is_minted: boolean;
|
|
75
|
+
mint_hash?: string;
|
|
76
|
+
chain_name?: string;
|
|
77
|
+
chain_id?: number;
|
|
78
|
+
contract_address?: string;
|
|
79
|
+
token_id?: string;
|
|
80
|
+
minting_cost?: string;
|
|
81
|
+
minting_cost_asset?: string;
|
|
82
|
+
}
|
|
83
|
+
export interface DiscordResult {
|
|
84
|
+
server_id: string;
|
|
85
|
+
is_member: boolean;
|
|
86
|
+
discord_username?: string;
|
|
87
|
+
}
|
|
88
|
+
export type BadgeStatus = 'verified' | 'not_verified' | 'not_found';
|
|
89
|
+
export interface BadgeInfo {
|
|
90
|
+
id: number;
|
|
91
|
+
name: string;
|
|
92
|
+
description: string | null;
|
|
93
|
+
image: string | null;
|
|
94
|
+
shape: string | null;
|
|
95
|
+
source: string | null;
|
|
96
|
+
}
|
|
97
|
+
export interface HealthResponse {
|
|
98
|
+
status: 'ok' | 'error';
|
|
99
|
+
db: 'connected' | 'disconnected';
|
|
100
|
+
timestamp: string;
|
|
101
|
+
}
|
|
102
|
+
export interface HmacToken {
|
|
103
|
+
nonce: string;
|
|
104
|
+
timestamp: number;
|
|
105
|
+
signature: string;
|
|
106
|
+
}
|
|
107
|
+
export interface ChatRequest {
|
|
108
|
+
message: string;
|
|
109
|
+
sessionId?: string;
|
|
110
|
+
}
|
|
111
|
+
export interface ChatResponse {
|
|
112
|
+
reply: string;
|
|
113
|
+
sessionId: string;
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@foruai/shared",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"build": "bun build src/index.ts --outdir dist --target bun && tsc --emitDeclarationOnly"
|
|
9
|
+
},
|
|
10
|
+
"devDependencies": {
|
|
11
|
+
"bun-types": "latest",
|
|
12
|
+
"typescript": "^5.7.0"
|
|
13
|
+
}
|
|
14
|
+
}
|
package/src/constants.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export const BADGE_STATUS = {
|
|
2
|
+
VERIFIED: 'verified',
|
|
3
|
+
NOT_VERIFIED: 'not_verified',
|
|
4
|
+
NOT_FOUND: 'not_found',
|
|
5
|
+
} as const
|
|
6
|
+
|
|
7
|
+
export const API_PATHS = {
|
|
8
|
+
VERIFY: '/v1/verify',
|
|
9
|
+
BADGES: '/v1/badges',
|
|
10
|
+
HEALTH: '/v1/health',
|
|
11
|
+
CHAT: '/v1/chat',
|
|
12
|
+
} as const
|
|
13
|
+
|
|
14
|
+
export const HMAC_MAX_AGE_MS = 5 * 60 * 1000 // 5 minutes
|
package/src/index.ts
ADDED
package/src/types.ts
ADDED
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
export interface VerificationRequest {
|
|
2
|
+
identity: {
|
|
3
|
+
wallet_address?: string
|
|
4
|
+
x_username?: string
|
|
5
|
+
}
|
|
6
|
+
badge_ids?: number[]
|
|
7
|
+
discord_server_id?: string
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface VerificationResponse {
|
|
11
|
+
identity: {
|
|
12
|
+
resolved_user_id: number | null
|
|
13
|
+
wallet_address?: string
|
|
14
|
+
x_username?: string
|
|
15
|
+
}
|
|
16
|
+
badges: BadgeResult[]
|
|
17
|
+
discord?: DiscordResult
|
|
18
|
+
verified_at: string
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface BadgeResult {
|
|
22
|
+
badge_id: number
|
|
23
|
+
name?: string
|
|
24
|
+
description?: string
|
|
25
|
+
status: BadgeStatus
|
|
26
|
+
image?: string
|
|
27
|
+
rarity?: string
|
|
28
|
+
unlocked_at?: string
|
|
29
|
+
reason?: BadgeReason
|
|
30
|
+
onchain_proof?: OnchainProof
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export interface OnchainProof {
|
|
34
|
+
contract_address: string
|
|
35
|
+
chain_id: number
|
|
36
|
+
rpc_url: string
|
|
37
|
+
nft_erc_type: string
|
|
38
|
+
wallet_address: string
|
|
39
|
+
balance: string
|
|
40
|
+
proof_method: string
|
|
41
|
+
verified_onchain: boolean
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export interface BadgeReason {
|
|
45
|
+
rules: BadgeRuleInfo[]
|
|
46
|
+
awarded_via?: AwardSource
|
|
47
|
+
minting?: MintingInfo
|
|
48
|
+
exp_earned?: string
|
|
49
|
+
identifi_reward?: string
|
|
50
|
+
metadata?: Record<string, unknown>
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export interface BadgeRuleInfo {
|
|
54
|
+
validator_key: string
|
|
55
|
+
validator_label: string
|
|
56
|
+
operator: string
|
|
57
|
+
value: unknown
|
|
58
|
+
value_type: string
|
|
59
|
+
params_schema?: {
|
|
60
|
+
rpc_url?: string
|
|
61
|
+
chain_id?: number
|
|
62
|
+
contract_address?: string
|
|
63
|
+
nft_erc_type?: string
|
|
64
|
+
[key: string]: unknown
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export interface AwardSource {
|
|
69
|
+
source_type: 'campaign' | 'quest_campaign'
|
|
70
|
+
campaign_id?: number
|
|
71
|
+
campaign_name?: string
|
|
72
|
+
quest_campaign_id?: number
|
|
73
|
+
quest_name?: string
|
|
74
|
+
community_name?: string
|
|
75
|
+
user_rank?: number
|
|
76
|
+
user_rep_score?: string
|
|
77
|
+
claimed_at?: string
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export interface MintingInfo {
|
|
81
|
+
is_minted: boolean
|
|
82
|
+
mint_hash?: string
|
|
83
|
+
chain_name?: string
|
|
84
|
+
chain_id?: number
|
|
85
|
+
contract_address?: string
|
|
86
|
+
token_id?: string
|
|
87
|
+
minting_cost?: string
|
|
88
|
+
minting_cost_asset?: string
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export interface DiscordResult {
|
|
92
|
+
server_id: string
|
|
93
|
+
is_member: boolean
|
|
94
|
+
discord_username?: string
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export type BadgeStatus = 'verified' | 'not_verified' | 'not_found'
|
|
98
|
+
|
|
99
|
+
export interface BadgeInfo {
|
|
100
|
+
id: number
|
|
101
|
+
name: string
|
|
102
|
+
description: string | null
|
|
103
|
+
image: string | null
|
|
104
|
+
shape: string | null
|
|
105
|
+
source: string | null
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export interface HealthResponse {
|
|
109
|
+
status: 'ok' | 'error'
|
|
110
|
+
db: 'connected' | 'disconnected'
|
|
111
|
+
timestamp: string
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
// HMAC auth types
|
|
115
|
+
|
|
116
|
+
export interface HmacToken {
|
|
117
|
+
nonce: string
|
|
118
|
+
timestamp: number
|
|
119
|
+
signature: string
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
export interface ChatRequest {
|
|
123
|
+
message: string
|
|
124
|
+
sessionId?: string
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export interface ChatResponse {
|
|
128
|
+
reply: string
|
|
129
|
+
sessionId: string
|
|
130
|
+
}
|