@23blocks/block-authentication 1.0.4 → 2.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/index.d.ts +1 -0
- package/dist/index.esm.js +2095 -0
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/lib/authentication.block.d.ts +149 -0
- package/dist/src/lib/authentication.block.d.ts.map +1 -0
- package/dist/src/lib/mappers/api-key.mapper.d.ts +11 -0
- package/dist/src/lib/mappers/api-key.mapper.d.ts.map +1 -0
- package/dist/src/lib/mappers/app.mapper.d.ts +15 -0
- package/dist/src/lib/mappers/app.mapper.d.ts.map +1 -0
- package/dist/src/lib/mappers/company.mapper.d.ts +23 -0
- package/dist/src/lib/mappers/company.mapper.d.ts.map +1 -0
- package/dist/src/lib/mappers/geography.mapper.d.ts +23 -0
- package/dist/src/lib/mappers/geography.mapper.d.ts.map +1 -0
- package/dist/src/lib/mappers/guest.mapper.d.ts +27 -0
- package/dist/src/lib/mappers/guest.mapper.d.ts.map +1 -0
- package/dist/{lib/mappers/index.js → src/lib/mappers/index.d.ts} +2 -11
- package/dist/src/lib/mappers/index.d.ts.map +1 -0
- package/dist/src/lib/mappers/subscription.mapper.d.ts +15 -0
- package/dist/src/lib/mappers/subscription.mapper.d.ts.map +1 -0
- package/dist/src/lib/mappers/user.mapper.d.ts +23 -0
- package/dist/src/lib/mappers/user.mapper.d.ts.map +1 -0
- package/dist/src/lib/mappers/utils.d.ts +21 -0
- package/dist/src/lib/mappers/utils.d.ts.map +1 -0
- package/dist/src/lib/services/api-keys.service.d.ts +65 -0
- package/dist/src/lib/services/api-keys.service.d.ts.map +1 -0
- package/dist/src/lib/services/apps.service.d.ts +87 -0
- package/dist/src/lib/services/apps.service.d.ts.map +1 -0
- package/dist/src/lib/services/auth.service.d.ts +69 -0
- package/dist/src/lib/services/auth.service.d.ts.map +1 -0
- package/dist/src/lib/services/geography.service.d.ts +125 -0
- package/dist/src/lib/services/geography.service.d.ts.map +1 -0
- package/dist/src/lib/services/guests.service.d.ts +166 -0
- package/dist/src/lib/services/guests.service.d.ts.map +1 -0
- package/dist/src/lib/services/index.d.ts +9 -0
- package/dist/src/lib/services/index.d.ts.map +1 -0
- package/dist/src/lib/services/roles.service.d.ts +82 -0
- package/dist/src/lib/services/roles.service.d.ts.map +1 -0
- package/dist/src/lib/services/subscriptions.service.d.ts +102 -0
- package/dist/src/lib/services/subscriptions.service.d.ts.map +1 -0
- package/dist/src/lib/services/users.service.d.ts +85 -0
- package/dist/src/lib/services/users.service.d.ts.map +1 -0
- package/dist/src/lib/types/api-key.d.ts +71 -0
- package/dist/src/lib/types/api-key.d.ts.map +1 -0
- package/dist/src/lib/types/app.d.ts +86 -0
- package/dist/src/lib/types/app.d.ts.map +1 -0
- package/dist/src/lib/types/auth.d.ts +138 -0
- package/dist/src/lib/types/auth.d.ts.map +1 -0
- package/dist/src/lib/types/company.d.ts +73 -0
- package/dist/src/lib/types/company.d.ts.map +1 -0
- package/dist/src/lib/types/geography.d.ts +73 -0
- package/dist/src/lib/types/geography.d.ts.map +1 -0
- package/dist/src/lib/types/guest.d.ts +136 -0
- package/dist/src/lib/types/guest.d.ts.map +1 -0
- package/dist/src/lib/types/index.d.ts +9 -0
- package/dist/src/lib/types/index.d.ts.map +1 -0
- package/dist/src/lib/types/subscription.d.ts +78 -0
- package/dist/src/lib/types/subscription.d.ts.map +1 -0
- package/dist/src/lib/types/user.d.ts +108 -0
- package/dist/src/lib/types/user.d.ts.map +1 -0
- package/package.json +10 -8
- package/dist/index.js +0 -6
- package/dist/index.js.map +0 -1
- package/dist/lib/authentication.block.js +0 -102
- package/dist/lib/authentication.block.js.map +0 -1
- package/dist/lib/mappers/api-key.mapper.js +0 -57
- package/dist/lib/mappers/api-key.mapper.js.map +0 -1
- package/dist/lib/mappers/app.mapper.js +0 -98
- package/dist/lib/mappers/app.mapper.js.map +0 -1
- package/dist/lib/mappers/company.mapper.js +0 -128
- package/dist/lib/mappers/company.mapper.js.map +0 -1
- package/dist/lib/mappers/geography.mapper.js +0 -129
- package/dist/lib/mappers/geography.mapper.js.map +0 -1
- package/dist/lib/mappers/guest.mapper.js +0 -176
- package/dist/lib/mappers/guest.mapper.js.map +0 -1
- package/dist/lib/mappers/index.js.map +0 -1
- package/dist/lib/mappers/subscription.mapper.js +0 -134
- package/dist/lib/mappers/subscription.mapper.js.map +0 -1
- package/dist/lib/mappers/user.mapper.js +0 -163
- package/dist/lib/mappers/user.mapper.js.map +0 -1
- package/dist/lib/mappers/utils.js +0 -54
- package/dist/lib/mappers/utils.js.map +0 -1
- package/dist/lib/services/api-keys.service.js +0 -93
- package/dist/lib/services/api-keys.service.js.map +0 -1
- package/dist/lib/services/apps.service.js +0 -139
- package/dist/lib/services/apps.service.js.map +0 -1
- package/dist/lib/services/auth.service.js +0 -147
- package/dist/lib/services/auth.service.js.map +0 -1
- package/dist/lib/services/geography.service.js +0 -151
- package/dist/lib/services/geography.service.js.map +0 -1
- package/dist/lib/services/guests.service.js +0 -219
- package/dist/lib/services/guests.service.js.map +0 -1
- package/dist/lib/services/index.js +0 -14
- package/dist/lib/services/index.js.map +0 -1
- package/dist/lib/services/roles.service.js +0 -91
- package/dist/lib/services/roles.service.js.map +0 -1
- package/dist/lib/services/subscriptions.service.js +0 -146
- package/dist/lib/services/subscriptions.service.js.map +0 -1
- package/dist/lib/services/users.service.js +0 -116
- package/dist/lib/services/users.service.js.map +0 -1
- package/dist/lib/types/api-key.js +0 -5
- package/dist/lib/types/api-key.js.map +0 -1
- package/dist/lib/types/app.js +0 -5
- package/dist/lib/types/app.js.map +0 -1
- package/dist/lib/types/auth.js +0 -5
- package/dist/lib/types/auth.js.map +0 -1
- package/dist/lib/types/company.js +0 -5
- package/dist/lib/types/company.js.map +0 -1
- package/dist/lib/types/geography.js +0 -5
- package/dist/lib/types/geography.js.map +0 -1
- package/dist/lib/types/guest.js +0 -5
- package/dist/lib/types/guest.js.map +0 -1
- package/dist/lib/types/index.js +0 -4
- package/dist/lib/types/index.js.map +0 -1
- package/dist/lib/types/subscription.js +0 -5
- package/dist/lib/types/subscription.js.map +0 -1
- package/dist/lib/types/user.js +0 -13
- package/dist/lib/types/user.js.map +0 -1
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
import { resolveRelationship } from '@23blocks/jsonapi-codec';
|
|
2
|
-
import { parseDate, parseBoolean, parseString } from './utils.js';
|
|
3
|
-
/**
|
|
4
|
-
* Permission mapper
|
|
5
|
-
*/ export const permissionMapper = {
|
|
6
|
-
type: 'permission',
|
|
7
|
-
map (resource, _included) {
|
|
8
|
-
var _resource_attributes;
|
|
9
|
-
const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
|
|
10
|
-
var _attrs_status, _parseDate, _parseDate1;
|
|
11
|
-
return {
|
|
12
|
-
id: resource.id,
|
|
13
|
-
uniqueId: parseString(attrs.unique_id),
|
|
14
|
-
name: parseString(attrs.name),
|
|
15
|
-
level: Number(attrs.level) || 0,
|
|
16
|
-
parentId: parseString(attrs.parent_id),
|
|
17
|
-
description: parseString(attrs.description),
|
|
18
|
-
status: (_attrs_status = attrs.status) != null ? _attrs_status : 'active',
|
|
19
|
-
category: parseString(attrs.category),
|
|
20
|
-
riskLevel: parseString(attrs.risk_level),
|
|
21
|
-
createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
|
|
22
|
-
updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date()
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
/**
|
|
27
|
-
* Role mapper
|
|
28
|
-
*/ export const roleMapper = {
|
|
29
|
-
type: 'role',
|
|
30
|
-
map (resource, _included) {
|
|
31
|
-
var _resource_attributes;
|
|
32
|
-
const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
|
|
33
|
-
var _attrs_status, _parseDate, _parseDate1;
|
|
34
|
-
return {
|
|
35
|
-
id: resource.id,
|
|
36
|
-
uniqueId: parseString(attrs.unique_id),
|
|
37
|
-
name: parseString(attrs.name),
|
|
38
|
-
code: parseString(attrs.code),
|
|
39
|
-
description: parseString(attrs.description),
|
|
40
|
-
status: (_attrs_status = attrs.status) != null ? _attrs_status : 'active',
|
|
41
|
-
payload: attrs.payload,
|
|
42
|
-
onBoardingUniqueId: parseString(attrs.on_boarding_unique_id),
|
|
43
|
-
onBoardingUrl: parseString(attrs.on_boarding_url),
|
|
44
|
-
onBoardingPayload: attrs.on_boarding_payload,
|
|
45
|
-
createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
|
|
46
|
-
updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date(),
|
|
47
|
-
// Note: permissions are typically not included in role responses
|
|
48
|
-
permissions: []
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
/**
|
|
53
|
-
* User avatar mapper
|
|
54
|
-
*/ export const userAvatarMapper = {
|
|
55
|
-
type: 'UserAvatar',
|
|
56
|
-
map (resource, _included) {
|
|
57
|
-
var _resource_attributes;
|
|
58
|
-
const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
|
|
59
|
-
var _attrs_status, _parseDate, _parseDate1;
|
|
60
|
-
return {
|
|
61
|
-
id: resource.id,
|
|
62
|
-
uniqueId: parseString(attrs.unique_id),
|
|
63
|
-
userUniqueId: parseString(attrs.user_unique_id),
|
|
64
|
-
bucket: parseString(attrs.bucket),
|
|
65
|
-
originalName: parseString(attrs.original_name),
|
|
66
|
-
name: parseString(attrs.name),
|
|
67
|
-
url: parseString(attrs.url),
|
|
68
|
-
thumbnail: parseString(attrs.thumbnail),
|
|
69
|
-
fileType: parseString(attrs.file_type),
|
|
70
|
-
fileSize: attrs.file_size != null ? Number(attrs.file_size) : null,
|
|
71
|
-
description: parseString(attrs.description),
|
|
72
|
-
originalFile: parseString(attrs.original_file),
|
|
73
|
-
status: (_attrs_status = attrs.status) != null ? _attrs_status : 'active',
|
|
74
|
-
isPublic: parseBoolean(attrs.is_public),
|
|
75
|
-
createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
|
|
76
|
-
updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date()
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
};
|
|
80
|
-
/**
|
|
81
|
-
* User profile mapper
|
|
82
|
-
*/ export const userProfileMapper = {
|
|
83
|
-
type: 'UserProfile',
|
|
84
|
-
map (resource, _included) {
|
|
85
|
-
var _resource_attributes;
|
|
86
|
-
const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
|
|
87
|
-
var _attrs_status, _parseDate, _parseDate1;
|
|
88
|
-
return {
|
|
89
|
-
id: resource.id,
|
|
90
|
-
uniqueId: parseString(attrs.unique_id),
|
|
91
|
-
userUniqueId: parseString(attrs.user_unique_id),
|
|
92
|
-
firstName: parseString(attrs.first_name),
|
|
93
|
-
middleName: parseString(attrs.middle_name),
|
|
94
|
-
lastName: parseString(attrs.last_name),
|
|
95
|
-
gender: parseString(attrs.gender),
|
|
96
|
-
ethnicity: parseString(attrs.ethnicity),
|
|
97
|
-
zipcode: parseString(attrs.zipcode),
|
|
98
|
-
maritalStatus: parseString(attrs.marital_status),
|
|
99
|
-
birthdate: parseDate(attrs.birthdate),
|
|
100
|
-
hhi: parseString(attrs.hhi),
|
|
101
|
-
children: attrs.children != null ? Number(attrs.children) : null,
|
|
102
|
-
source: parseString(attrs.source),
|
|
103
|
-
status: (_attrs_status = attrs.status) != null ? _attrs_status : 'active',
|
|
104
|
-
phoneNumber: parseString(attrs.phone_number),
|
|
105
|
-
email: parseString(attrs.email),
|
|
106
|
-
preferredDevice: parseString(attrs.preferred_device),
|
|
107
|
-
preferredLanguage: parseString(attrs.preferred_language),
|
|
108
|
-
webSite: parseString(attrs.web_site),
|
|
109
|
-
twitter: parseString(attrs.twitter),
|
|
110
|
-
fb: parseString(attrs.fb),
|
|
111
|
-
instagram: parseString(attrs.instagram),
|
|
112
|
-
linkedin: parseString(attrs.linkedin),
|
|
113
|
-
youtube: parseString(attrs.youtube),
|
|
114
|
-
blog: parseString(attrs.blog),
|
|
115
|
-
networkA: parseString(attrs.network_a),
|
|
116
|
-
networkB: parseString(attrs.network_b),
|
|
117
|
-
payload: attrs.payload,
|
|
118
|
-
timeZone: parseString(attrs.time_zone),
|
|
119
|
-
createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
|
|
120
|
-
updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date()
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
};
|
|
124
|
-
/**
|
|
125
|
-
* User mapper
|
|
126
|
-
*/ export const userMapper = {
|
|
127
|
-
type: 'User',
|
|
128
|
-
map (resource, included) {
|
|
129
|
-
var _resource_attributes;
|
|
130
|
-
const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
|
|
131
|
-
var _parseString, _parseString1, _attrs_status, _parseDate, _parseDate1;
|
|
132
|
-
return {
|
|
133
|
-
id: resource.id,
|
|
134
|
-
uniqueId: parseString(attrs.unique_id),
|
|
135
|
-
email: parseString(attrs.email),
|
|
136
|
-
username: parseString(attrs.username),
|
|
137
|
-
name: parseString(attrs.name),
|
|
138
|
-
nickname: parseString(attrs.nickname),
|
|
139
|
-
bio: parseString(attrs.bio),
|
|
140
|
-
provider: (_parseString = parseString(attrs.provider)) != null ? _parseString : 'email',
|
|
141
|
-
uid: (_parseString1 = parseString(attrs.uid)) != null ? _parseString1 : attrs.email,
|
|
142
|
-
roleId: parseString(attrs.role_id),
|
|
143
|
-
status: (_attrs_status = attrs.status) != null ? _attrs_status : 'active',
|
|
144
|
-
mailStatus: parseString(attrs.mail_status),
|
|
145
|
-
phoneStatus: parseString(attrs.phone_status),
|
|
146
|
-
allowPasswordChange: parseBoolean(attrs.allow_password_change),
|
|
147
|
-
lastSignInAt: parseDate(attrs.last_sign_in_at),
|
|
148
|
-
confirmedAt: parseDate(attrs.confirmed_at),
|
|
149
|
-
unconfirmedEmail: parseString(attrs.unconfirmed_email),
|
|
150
|
-
invitationSentAt: parseDate(attrs.invitation_sent_at),
|
|
151
|
-
invitationAcceptedAt: parseDate(attrs.invitation_accepted_at),
|
|
152
|
-
invitationCreatedAt: parseDate(attrs.invitation_created_at),
|
|
153
|
-
createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
|
|
154
|
-
updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date(),
|
|
155
|
-
// Resolve relationships from included resources
|
|
156
|
-
role: resolveRelationship(resource, 'role', included, roleMapper),
|
|
157
|
-
avatar: resolveRelationship(resource, 'user_avatar', included, userAvatarMapper),
|
|
158
|
-
profile: resolveRelationship(resource, 'user_profile', included, userProfileMapper)
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
|
-
};
|
|
162
|
-
|
|
163
|
-
//# sourceMappingURL=user.mapper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/mappers/user.mapper.ts"],"sourcesContent":["import type { ResourceMapper, IncludedMap, JsonApiResource } from '@23blocks/jsonapi-codec';\nimport { resolveRelationship } from '@23blocks/jsonapi-codec';\nimport type { User, Role, UserAvatar, UserProfile, Permission } from '../types/index.js';\nimport { parseDate, parseBoolean, parseString } from './utils.js';\n\n/**\n * Permission mapper\n */\nexport const permissionMapper: ResourceMapper<Permission> = {\n type: 'permission',\n\n map(resource: JsonApiResource, _included: IncludedMap): Permission {\n const attrs = resource.attributes ?? {};\n\n return {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id),\n name: parseString(attrs.name),\n level: Number(attrs.level) || 0,\n parentId: parseString(attrs.parent_id),\n description: parseString(attrs.description),\n status: (attrs.status as Permission['status']) ?? 'active',\n category: parseString(attrs.category),\n riskLevel: parseString(attrs.risk_level),\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n };\n },\n};\n\n/**\n * Role mapper\n */\nexport const roleMapper: ResourceMapper<Role> = {\n type: 'role',\n\n map(resource: JsonApiResource, _included: IncludedMap): Role {\n const attrs = resource.attributes ?? {};\n\n return {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id),\n name: parseString(attrs.name),\n code: parseString(attrs.code),\n description: parseString(attrs.description),\n status: (attrs.status as Role['status']) ?? 'active',\n payload: attrs.payload as Record<string, unknown> | null,\n onBoardingUniqueId: parseString(attrs.on_boarding_unique_id),\n onBoardingUrl: parseString(attrs.on_boarding_url),\n onBoardingPayload: attrs.on_boarding_payload as Record<string, unknown> | null,\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n // Note: permissions are typically not included in role responses\n permissions: [],\n };\n },\n};\n\n/**\n * User avatar mapper\n */\nexport const userAvatarMapper: ResourceMapper<UserAvatar> = {\n type: 'UserAvatar',\n\n map(resource: JsonApiResource, _included: IncludedMap): UserAvatar {\n const attrs = resource.attributes ?? {};\n\n return {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id),\n userUniqueId: parseString(attrs.user_unique_id),\n bucket: parseString(attrs.bucket),\n originalName: parseString(attrs.original_name),\n name: parseString(attrs.name),\n url: parseString(attrs.url),\n thumbnail: parseString(attrs.thumbnail),\n fileType: parseString(attrs.file_type),\n fileSize: attrs.file_size != null ? Number(attrs.file_size) : null,\n description: parseString(attrs.description),\n originalFile: parseString(attrs.original_file),\n status: (attrs.status as UserAvatar['status']) ?? 'active',\n isPublic: parseBoolean(attrs.is_public),\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n };\n },\n};\n\n/**\n * User profile mapper\n */\nexport const userProfileMapper: ResourceMapper<UserProfile> = {\n type: 'UserProfile',\n\n map(resource: JsonApiResource, _included: IncludedMap): UserProfile {\n const attrs = resource.attributes ?? {};\n\n return {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id),\n userUniqueId: parseString(attrs.user_unique_id),\n firstName: parseString(attrs.first_name),\n middleName: parseString(attrs.middle_name),\n lastName: parseString(attrs.last_name),\n gender: parseString(attrs.gender),\n ethnicity: parseString(attrs.ethnicity),\n zipcode: parseString(attrs.zipcode),\n maritalStatus: parseString(attrs.marital_status),\n birthdate: parseDate(attrs.birthdate),\n hhi: parseString(attrs.hhi),\n children: attrs.children != null ? Number(attrs.children) : null,\n source: parseString(attrs.source),\n status: (attrs.status as UserProfile['status']) ?? 'active',\n phoneNumber: parseString(attrs.phone_number),\n email: parseString(attrs.email),\n preferredDevice: parseString(attrs.preferred_device),\n preferredLanguage: parseString(attrs.preferred_language),\n webSite: parseString(attrs.web_site),\n twitter: parseString(attrs.twitter),\n fb: parseString(attrs.fb),\n instagram: parseString(attrs.instagram),\n linkedin: parseString(attrs.linkedin),\n youtube: parseString(attrs.youtube),\n blog: parseString(attrs.blog),\n networkA: parseString(attrs.network_a),\n networkB: parseString(attrs.network_b),\n payload: attrs.payload as Record<string, unknown> | null,\n timeZone: parseString(attrs.time_zone),\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n };\n },\n};\n\n/**\n * User mapper\n */\nexport const userMapper: ResourceMapper<User> = {\n type: 'User',\n\n map(resource: JsonApiResource, included: IncludedMap): User {\n const attrs = resource.attributes ?? {};\n\n return {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id),\n email: parseString(attrs.email),\n username: parseString(attrs.username),\n name: parseString(attrs.name),\n nickname: parseString(attrs.nickname),\n bio: parseString(attrs.bio),\n provider: parseString(attrs.provider) ?? 'email',\n uid: parseString(attrs.uid) ?? attrs.email as string,\n roleId: parseString(attrs.role_id),\n status: (attrs.status as User['status']) ?? 'active',\n mailStatus: parseString(attrs.mail_status),\n phoneStatus: parseString(attrs.phone_status),\n allowPasswordChange: parseBoolean(attrs.allow_password_change),\n lastSignInAt: parseDate(attrs.last_sign_in_at),\n confirmedAt: parseDate(attrs.confirmed_at),\n unconfirmedEmail: parseString(attrs.unconfirmed_email),\n invitationSentAt: parseDate(attrs.invitation_sent_at),\n invitationAcceptedAt: parseDate(attrs.invitation_accepted_at),\n invitationCreatedAt: parseDate(attrs.invitation_created_at),\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n\n // Resolve relationships from included resources\n role: resolveRelationship(resource, 'role', included, roleMapper),\n avatar: resolveRelationship(resource, 'user_avatar', included, userAvatarMapper),\n profile: resolveRelationship(resource, 'user_profile', included, userProfileMapper),\n };\n },\n};\n"],"names":["resolveRelationship","parseDate","parseBoolean","parseString","permissionMapper","type","map","resource","_included","attrs","attributes","id","uniqueId","unique_id","name","level","Number","parentId","parent_id","description","status","category","riskLevel","risk_level","createdAt","created_at","Date","updatedAt","updated_at","roleMapper","code","payload","onBoardingUniqueId","on_boarding_unique_id","onBoardingUrl","on_boarding_url","onBoardingPayload","on_boarding_payload","permissions","userAvatarMapper","userUniqueId","user_unique_id","bucket","originalName","original_name","url","thumbnail","fileType","file_type","fileSize","file_size","originalFile","original_file","isPublic","is_public","userProfileMapper","firstName","first_name","middleName","middle_name","lastName","last_name","gender","ethnicity","zipcode","maritalStatus","marital_status","birthdate","hhi","children","source","phoneNumber","phone_number","email","preferredDevice","preferred_device","preferredLanguage","preferred_language","webSite","web_site","twitter","fb","instagram","linkedin","youtube","blog","networkA","network_a","networkB","network_b","timeZone","time_zone","userMapper","included","username","nickname","bio","provider","uid","roleId","role_id","mailStatus","mail_status","phoneStatus","phone_status","allowPasswordChange","allow_password_change","lastSignInAt","last_sign_in_at","confirmedAt","confirmed_at","unconfirmedEmail","unconfirmed_email","invitationSentAt","invitation_sent_at","invitationAcceptedAt","invitation_accepted_at","invitationCreatedAt","invitation_created_at","role","avatar","profile"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Parse a string value, returning null for empty/undefined
|
|
3
|
-
*/ export function parseString(value) {
|
|
4
|
-
if (value === null || value === undefined) {
|
|
5
|
-
return null;
|
|
6
|
-
}
|
|
7
|
-
const str = String(value);
|
|
8
|
-
return str.length > 0 ? str : null;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Parse a date value
|
|
12
|
-
*/ export function parseDate(value) {
|
|
13
|
-
if (value === null || value === undefined) {
|
|
14
|
-
return null;
|
|
15
|
-
}
|
|
16
|
-
if (value instanceof Date) {
|
|
17
|
-
return value;
|
|
18
|
-
}
|
|
19
|
-
if (typeof value === 'string' || typeof value === 'number') {
|
|
20
|
-
const date = new Date(value);
|
|
21
|
-
return isNaN(date.getTime()) ? null : date;
|
|
22
|
-
}
|
|
23
|
-
return null;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Parse a boolean value
|
|
27
|
-
*/ export function parseBoolean(value) {
|
|
28
|
-
if (typeof value === 'boolean') {
|
|
29
|
-
return value;
|
|
30
|
-
}
|
|
31
|
-
if (value === 'true' || value === '1' || value === 1) {
|
|
32
|
-
return true;
|
|
33
|
-
}
|
|
34
|
-
return false;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Parse an array of strings
|
|
38
|
-
*/ export function parseStringArray(value) {
|
|
39
|
-
if (Array.isArray(value)) {
|
|
40
|
-
return value.map(String);
|
|
41
|
-
}
|
|
42
|
-
return [];
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Parse a number value
|
|
46
|
-
*/ export function parseNumber(value) {
|
|
47
|
-
if (value === null || value === undefined) {
|
|
48
|
-
return null;
|
|
49
|
-
}
|
|
50
|
-
const num = Number(value);
|
|
51
|
-
return isNaN(num) ? null : num;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/mappers/utils.ts"],"sourcesContent":["/**\n * Parse a string value, returning null for empty/undefined\n */\nexport function parseString(value: unknown): string | null {\n if (value === null || value === undefined) {\n return null;\n }\n const str = String(value);\n return str.length > 0 ? str : null;\n}\n\n/**\n * Parse a date value\n */\nexport function parseDate(value: unknown): Date | null {\n if (value === null || value === undefined) {\n return null;\n }\n\n if (value instanceof Date) {\n return value;\n }\n\n if (typeof value === 'string' || typeof value === 'number') {\n const date = new Date(value);\n return isNaN(date.getTime()) ? null : date;\n }\n\n return null;\n}\n\n/**\n * Parse a boolean value\n */\nexport function parseBoolean(value: unknown): boolean {\n if (typeof value === 'boolean') {\n return value;\n }\n if (value === 'true' || value === '1' || value === 1) {\n return true;\n }\n return false;\n}\n\n/**\n * Parse an array of strings\n */\nexport function parseStringArray(value: unknown): string[] {\n if (Array.isArray(value)) {\n return value.map(String);\n }\n return [];\n}\n\n/**\n * Parse a number value\n */\nexport function parseNumber(value: unknown): number | null {\n if (value === null || value === undefined) {\n return null;\n }\n const num = Number(value);\n return isNaN(num) ? null : num;\n}\n"],"names":["parseString","value","undefined","str","String","length","parseDate","Date","date","isNaN","getTime","parseBoolean","parseStringArray","Array","isArray","map","parseNumber","num","Number"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;CAEC,GACD,OAAO,SAASA,YAAYC,KAAc;IACxC,IAAIA,UAAU,QAAQA,UAAUC,WAAW;QACzC,OAAO;IACT;IACA,MAAMC,MAAMC,OAAOH;IACnB,OAAOE,IAAIE,MAAM,GAAG,IAAIF,MAAM;AAChC;AAEA;;CAEC,GACD,OAAO,SAASG,UAAUL,KAAc;IACtC,IAAIA,UAAU,QAAQA,UAAUC,WAAW;QACzC,OAAO;IACT;IAEA,IAAID,iBAAiBM,MAAM;QACzB,OAAON;IACT;IAEA,IAAI,OAAOA,UAAU,YAAY,OAAOA,UAAU,UAAU;QAC1D,MAAMO,OAAO,IAAID,KAAKN;QACtB,OAAOQ,MAAMD,KAAKE,OAAO,MAAM,OAAOF;IACxC;IAEA,OAAO;AACT;AAEA;;CAEC,GACD,OAAO,SAASG,aAAaV,KAAc;IACzC,IAAI,OAAOA,UAAU,WAAW;QAC9B,OAAOA;IACT;IACA,IAAIA,UAAU,UAAUA,UAAU,OAAOA,UAAU,GAAG;QACpD,OAAO;IACT;IACA,OAAO;AACT;AAEA;;CAEC,GACD,OAAO,SAASW,iBAAiBX,KAAc;IAC7C,IAAIY,MAAMC,OAAO,CAACb,QAAQ;QACxB,OAAOA,MAAMc,GAAG,CAACX;IACnB;IACA,OAAO,EAAE;AACX;AAEA;;CAEC,GACD,OAAO,SAASY,YAAYf,KAAc;IACxC,IAAIA,UAAU,QAAQA,UAAUC,WAAW;QACzC,OAAO;IACT;IACA,MAAMe,MAAMC,OAAOjB;IACnB,OAAOQ,MAAMQ,OAAO,OAAOA;AAC7B"}
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';
|
|
2
|
-
import { apiKeyMapper, apiKeyWithSecretMapper } from '../mappers/index.js';
|
|
3
|
-
/**
|
|
4
|
-
* Create the API keys service
|
|
5
|
-
*/ export function createApiKeysService(transport, _config) {
|
|
6
|
-
return {
|
|
7
|
-
async list (params) {
|
|
8
|
-
const queryParams = {};
|
|
9
|
-
if (params == null ? void 0 : params.page) queryParams['page[number]'] = params.page;
|
|
10
|
-
if (params == null ? void 0 : params.perPage) queryParams['page[size]'] = params.perPage;
|
|
11
|
-
if (params == null ? void 0 : params.filter) {
|
|
12
|
-
for (const [key, value] of Object.entries(params.filter)){
|
|
13
|
-
queryParams[`filter[${key}]`] = value;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
const response = await transport.get('/api_keys', {
|
|
17
|
-
params: queryParams
|
|
18
|
-
});
|
|
19
|
-
return decodePageResult(response, apiKeyMapper);
|
|
20
|
-
},
|
|
21
|
-
async get (id) {
|
|
22
|
-
const response = await transport.get(`/api_keys/${id}`);
|
|
23
|
-
return decodeOne(response, apiKeyMapper);
|
|
24
|
-
},
|
|
25
|
-
async getByKeyId (keyId) {
|
|
26
|
-
const response = await transport.get(`/api_keys/by_key_id/${keyId}`);
|
|
27
|
-
return decodeOne(response, apiKeyMapper);
|
|
28
|
-
},
|
|
29
|
-
async create (request) {
|
|
30
|
-
const response = await transport.post('/api_keys', {
|
|
31
|
-
name: request.name,
|
|
32
|
-
description: request.description,
|
|
33
|
-
service_account: request.serviceAccount,
|
|
34
|
-
scopes: request.scopes,
|
|
35
|
-
expires_at: request.expiresAt,
|
|
36
|
-
rate_limit_per_minute: request.rateLimitPerMinute,
|
|
37
|
-
rate_limit_per_hour: request.rateLimitPerHour,
|
|
38
|
-
rate_limit_per_day: request.rateLimitPerDay,
|
|
39
|
-
allowed_origins: request.allowedOrigins,
|
|
40
|
-
allowed_ips: request.allowedIps,
|
|
41
|
-
payload: request.payload
|
|
42
|
-
});
|
|
43
|
-
return decodeOne(response, apiKeyWithSecretMapper);
|
|
44
|
-
},
|
|
45
|
-
async update (id, request) {
|
|
46
|
-
const response = await transport.patch(`/api_keys/${id}`, {
|
|
47
|
-
name: request.name,
|
|
48
|
-
description: request.description,
|
|
49
|
-
scopes: request.scopes,
|
|
50
|
-
rate_limit_per_minute: request.rateLimitPerMinute,
|
|
51
|
-
rate_limit_per_hour: request.rateLimitPerHour,
|
|
52
|
-
rate_limit_per_day: request.rateLimitPerDay,
|
|
53
|
-
allowed_origins: request.allowedOrigins,
|
|
54
|
-
allowed_ips: request.allowedIps,
|
|
55
|
-
payload: request.payload
|
|
56
|
-
});
|
|
57
|
-
return decodeOne(response, apiKeyMapper);
|
|
58
|
-
},
|
|
59
|
-
async regenerate (id) {
|
|
60
|
-
const response = await transport.post(`/api_keys/${id}/regenerate`);
|
|
61
|
-
return decodeOne(response, apiKeyWithSecretMapper);
|
|
62
|
-
},
|
|
63
|
-
async revoke (id, request) {
|
|
64
|
-
const response = await transport.post(`/api_keys/${id}/revoke`, {
|
|
65
|
-
reason: request == null ? void 0 : request.reason
|
|
66
|
-
});
|
|
67
|
-
return decodeOne(response, apiKeyMapper);
|
|
68
|
-
},
|
|
69
|
-
async delete (id) {
|
|
70
|
-
await transport.delete(`/api_keys/${id}`);
|
|
71
|
-
},
|
|
72
|
-
async getUsage (id, period = 'week') {
|
|
73
|
-
const response = await transport.get(`/api_keys/${id}/usage`, {
|
|
74
|
-
params: {
|
|
75
|
-
period
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
const attrs = response.data.attributes;
|
|
79
|
-
return {
|
|
80
|
-
apiKeyId: attrs.api_key_id,
|
|
81
|
-
period: attrs.period,
|
|
82
|
-
totalRequests: attrs.total_requests,
|
|
83
|
-
successfulRequests: attrs.successful_requests,
|
|
84
|
-
failedRequests: attrs.failed_requests,
|
|
85
|
-
averageLatency: attrs.average_latency,
|
|
86
|
-
requestsByEndpoint: attrs.requests_by_endpoint,
|
|
87
|
-
requestsByDay: attrs.requests_by_day
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
//# sourceMappingURL=api-keys.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/services/api-keys.service.ts"],"sourcesContent":["import type { Transport, PageResult, ListParams } from '@23blocks/contracts';\nimport { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';\nimport type {\n ApiKey,\n ApiKeyWithSecret,\n CreateApiKeyRequest,\n UpdateApiKeyRequest,\n RevokeApiKeyRequest,\n} from '../types/index.js';\nimport { apiKeyMapper, apiKeyWithSecretMapper } from '../mappers/index.js';\nimport type { AuthenticationBlockConfig } from '../authentication.block.js';\n\n/**\n * API Keys service\n */\nexport interface ApiKeysService {\n /**\n * List all API keys\n */\n list(params?: ListParams): Promise<PageResult<ApiKey>>;\n\n /**\n * Get an API key by ID\n */\n get(id: string): Promise<ApiKey>;\n\n /**\n * Get an API key by key ID\n */\n getByKeyId(keyId: string): Promise<ApiKey>;\n\n /**\n * Create a new API key (returns secret key only once)\n */\n create(request: CreateApiKeyRequest): Promise<ApiKeyWithSecret>;\n\n /**\n * Update an API key\n */\n update(id: string, request: UpdateApiKeyRequest): Promise<ApiKey>;\n\n /**\n * Regenerate an API key secret (returns new secret only once)\n */\n regenerate(id: string): Promise<ApiKeyWithSecret>;\n\n /**\n * Revoke an API key\n */\n revoke(id: string, request?: RevokeApiKeyRequest): Promise<ApiKey>;\n\n /**\n * Delete an API key permanently\n */\n delete(id: string): Promise<void>;\n\n /**\n * Get usage statistics for an API key\n */\n getUsage(id: string, period?: 'day' | 'week' | 'month'): Promise<ApiKeyUsageStats>;\n}\n\n/**\n * API Key usage statistics\n */\nexport interface ApiKeyUsageStats {\n apiKeyId: string;\n period: string;\n totalRequests: number;\n successfulRequests: number;\n failedRequests: number;\n averageLatency: number;\n requestsByEndpoint: Record<string, number>;\n requestsByDay: Array<{ date: string; count: number }>;\n}\n\n/**\n * Create the API keys service\n */\nexport function createApiKeysService(\n transport: Transport,\n _config: AuthenticationBlockConfig\n): ApiKeysService {\n return {\n async list(params?: ListParams): Promise<PageResult<ApiKey>> {\n const queryParams: Record<string, unknown> = {};\n\n if (params?.page) queryParams['page[number]'] = params.page;\n if (params?.perPage) queryParams['page[size]'] = params.perPage;\n if (params?.filter) {\n for (const [key, value] of Object.entries(params.filter)) {\n queryParams[`filter[${key}]`] = value;\n }\n }\n\n const response = await transport.get<{ data: unknown[]; meta?: unknown }>(\n '/api_keys',\n { params: queryParams as Record<string, string> }\n );\n return decodePageResult(response, apiKeyMapper);\n },\n\n async get(id: string): Promise<ApiKey> {\n const response = await transport.get<{ data: unknown }>(\n `/api_keys/${id}`\n );\n return decodeOne(response, apiKeyMapper);\n },\n\n async getByKeyId(keyId: string): Promise<ApiKey> {\n const response = await transport.get<{ data: unknown }>(\n `/api_keys/by_key_id/${keyId}`\n );\n return decodeOne(response, apiKeyMapper);\n },\n\n async create(request: CreateApiKeyRequest): Promise<ApiKeyWithSecret> {\n const response = await transport.post<{ data: unknown }>(\n '/api_keys',\n {\n name: request.name,\n description: request.description,\n service_account: request.serviceAccount,\n scopes: request.scopes,\n expires_at: request.expiresAt,\n rate_limit_per_minute: request.rateLimitPerMinute,\n rate_limit_per_hour: request.rateLimitPerHour,\n rate_limit_per_day: request.rateLimitPerDay,\n allowed_origins: request.allowedOrigins,\n allowed_ips: request.allowedIps,\n payload: request.payload,\n }\n );\n return decodeOne(response, apiKeyWithSecretMapper);\n },\n\n async update(id: string, request: UpdateApiKeyRequest): Promise<ApiKey> {\n const response = await transport.patch<{ data: unknown }>(\n `/api_keys/${id}`,\n {\n name: request.name,\n description: request.description,\n scopes: request.scopes,\n rate_limit_per_minute: request.rateLimitPerMinute,\n rate_limit_per_hour: request.rateLimitPerHour,\n rate_limit_per_day: request.rateLimitPerDay,\n allowed_origins: request.allowedOrigins,\n allowed_ips: request.allowedIps,\n payload: request.payload,\n }\n );\n return decodeOne(response, apiKeyMapper);\n },\n\n async regenerate(id: string): Promise<ApiKeyWithSecret> {\n const response = await transport.post<{ data: unknown }>(\n `/api_keys/${id}/regenerate`\n );\n return decodeOne(response, apiKeyWithSecretMapper);\n },\n\n async revoke(id: string, request?: RevokeApiKeyRequest): Promise<ApiKey> {\n const response = await transport.post<{ data: unknown }>(\n `/api_keys/${id}/revoke`,\n { reason: request?.reason }\n );\n return decodeOne(response, apiKeyMapper);\n },\n\n async delete(id: string): Promise<void> {\n await transport.delete(`/api_keys/${id}`);\n },\n\n async getUsage(id: string, period: 'day' | 'week' | 'month' = 'week'): Promise<ApiKeyUsageStats> {\n const response = await transport.get<{\n data: {\n attributes: {\n api_key_id: string;\n period: string;\n total_requests: number;\n successful_requests: number;\n failed_requests: number;\n average_latency: number;\n requests_by_endpoint: Record<string, number>;\n requests_by_day: Array<{ date: string; count: number }>;\n };\n };\n }>(`/api_keys/${id}/usage`, { params: { period } });\n\n const attrs = response.data.attributes;\n return {\n apiKeyId: attrs.api_key_id,\n period: attrs.period,\n totalRequests: attrs.total_requests,\n successfulRequests: attrs.successful_requests,\n failedRequests: attrs.failed_requests,\n averageLatency: attrs.average_latency,\n requestsByEndpoint: attrs.requests_by_endpoint,\n requestsByDay: attrs.requests_by_day,\n };\n },\n };\n}\n"],"names":["decodeOne","decodePageResult","apiKeyMapper","apiKeyWithSecretMapper","createApiKeysService","transport","_config","list","params","queryParams","page","perPage","filter","key","value","Object","entries","response","get","id","getByKeyId","keyId","create","request","post","name","description","service_account","serviceAccount","scopes","expires_at","expiresAt","rate_limit_per_minute","rateLimitPerMinute","rate_limit_per_hour","rateLimitPerHour","rate_limit_per_day","rateLimitPerDay","allowed_origins","allowedOrigins","allowed_ips","allowedIps","payload","update","patch","regenerate","revoke","reason","delete","getUsage","period","attrs","data","attributes","apiKeyId","api_key_id","totalRequests","total_requests","successfulRequests","successful_requests","failedRequests","failed_requests","averageLatency","average_latency","requestsByEndpoint","requests_by_endpoint","requestsByDay","requests_by_day"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,SAASA,SAAS,EAAEC,gBAAgB,QAAQ,0BAA0B;AAQtE,SAASC,YAAY,EAAEC,sBAAsB,QAAQ,sBAAsB;AAmE3E;;CAEC,GACD,OAAO,SAASC,qBACdC,SAAoB,EACpBC,OAAkC;IAElC,OAAO;QACL,MAAMC,MAAKC,MAAmB;YAC5B,MAAMC,cAAuC,CAAC;YAE9C,IAAID,0BAAAA,OAAQE,IAAI,EAAED,WAAW,CAAC,eAAe,GAAGD,OAAOE,IAAI;YAC3D,IAAIF,0BAAAA,OAAQG,OAAO,EAAEF,WAAW,CAAC,aAAa,GAAGD,OAAOG,OAAO;YAC/D,IAAIH,0BAAAA,OAAQI,MAAM,EAAE;gBAClB,KAAK,MAAM,CAACC,KAAKC,MAAM,IAAIC,OAAOC,OAAO,CAACR,OAAOI,MAAM,EAAG;oBACxDH,WAAW,CAAC,CAAC,OAAO,EAAEI,IAAI,CAAC,CAAC,CAAC,GAAGC;gBAClC;YACF;YAEA,MAAMG,WAAW,MAAMZ,UAAUa,GAAG,CAClC,aACA;gBAAEV,QAAQC;YAAsC;YAElD,OAAOR,iBAAiBgB,UAAUf;QACpC;QAEA,MAAMgB,KAAIC,EAAU;YAClB,MAAMF,WAAW,MAAMZ,UAAUa,GAAG,CAClC,CAAC,UAAU,EAAEC,GAAG,CAAC;YAEnB,OAAOnB,UAAUiB,UAAUf;QAC7B;QAEA,MAAMkB,YAAWC,KAAa;YAC5B,MAAMJ,WAAW,MAAMZ,UAAUa,GAAG,CAClC,CAAC,oBAAoB,EAAEG,MAAM,CAAC;YAEhC,OAAOrB,UAAUiB,UAAUf;QAC7B;QAEA,MAAMoB,QAAOC,OAA4B;YACvC,MAAMN,WAAW,MAAMZ,UAAUmB,IAAI,CACnC,aACA;gBACEC,MAAMF,QAAQE,IAAI;gBAClBC,aAAaH,QAAQG,WAAW;gBAChCC,iBAAiBJ,QAAQK,cAAc;gBACvCC,QAAQN,QAAQM,MAAM;gBACtBC,YAAYP,QAAQQ,SAAS;gBAC7BC,uBAAuBT,QAAQU,kBAAkB;gBACjDC,qBAAqBX,QAAQY,gBAAgB;gBAC7CC,oBAAoBb,QAAQc,eAAe;gBAC3CC,iBAAiBf,QAAQgB,cAAc;gBACvCC,aAAajB,QAAQkB,UAAU;gBAC/BC,SAASnB,QAAQmB,OAAO;YAC1B;YAEF,OAAO1C,UAAUiB,UAAUd;QAC7B;QAEA,MAAMwC,QAAOxB,EAAU,EAAEI,OAA4B;YACnD,MAAMN,WAAW,MAAMZ,UAAUuC,KAAK,CACpC,CAAC,UAAU,EAAEzB,GAAG,CAAC,EACjB;gBACEM,MAAMF,QAAQE,IAAI;gBAClBC,aAAaH,QAAQG,WAAW;gBAChCG,QAAQN,QAAQM,MAAM;gBACtBG,uBAAuBT,QAAQU,kBAAkB;gBACjDC,qBAAqBX,QAAQY,gBAAgB;gBAC7CC,oBAAoBb,QAAQc,eAAe;gBAC3CC,iBAAiBf,QAAQgB,cAAc;gBACvCC,aAAajB,QAAQkB,UAAU;gBAC/BC,SAASnB,QAAQmB,OAAO;YAC1B;YAEF,OAAO1C,UAAUiB,UAAUf;QAC7B;QAEA,MAAM2C,YAAW1B,EAAU;YACzB,MAAMF,WAAW,MAAMZ,UAAUmB,IAAI,CACnC,CAAC,UAAU,EAAEL,GAAG,WAAW,CAAC;YAE9B,OAAOnB,UAAUiB,UAAUd;QAC7B;QAEA,MAAM2C,QAAO3B,EAAU,EAAEI,OAA6B;YACpD,MAAMN,WAAW,MAAMZ,UAAUmB,IAAI,CACnC,CAAC,UAAU,EAAEL,GAAG,OAAO,CAAC,EACxB;gBAAE4B,MAAM,EAAExB,2BAAAA,QAASwB,MAAM;YAAC;YAE5B,OAAO/C,UAAUiB,UAAUf;QAC7B;QAEA,MAAM8C,QAAO7B,EAAU;YACrB,MAAMd,UAAU2C,MAAM,CAAC,CAAC,UAAU,EAAE7B,GAAG,CAAC;QAC1C;QAEA,MAAM8B,UAAS9B,EAAU,EAAE+B,SAAmC,MAAM;YAClE,MAAMjC,WAAW,MAAMZ,UAAUa,GAAG,CAajC,CAAC,UAAU,EAAEC,GAAG,MAAM,CAAC,EAAE;gBAAEX,QAAQ;oBAAE0C;gBAAO;YAAE;YAEjD,MAAMC,QAAQlC,SAASmC,IAAI,CAACC,UAAU;YACtC,OAAO;gBACLC,UAAUH,MAAMI,UAAU;gBAC1BL,QAAQC,MAAMD,MAAM;gBACpBM,eAAeL,MAAMM,cAAc;gBACnCC,oBAAoBP,MAAMQ,mBAAmB;gBAC7CC,gBAAgBT,MAAMU,eAAe;gBACrCC,gBAAgBX,MAAMY,eAAe;gBACrCC,oBAAoBb,MAAMc,oBAAoB;gBAC9CC,eAAef,MAAMgB,eAAe;YACtC;QACF;IACF;AACF"}
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
import { decodeOne, decodeMany, decodePageResult } from '@23blocks/jsonapi-codec';
|
|
2
|
-
import { appMapper, blockMapper, serviceMapper } from '../mappers/index.js';
|
|
3
|
-
/**
|
|
4
|
-
* Build filter params for list operations
|
|
5
|
-
*/ function buildListParams(params) {
|
|
6
|
-
if (!params) return {};
|
|
7
|
-
const queryParams = {};
|
|
8
|
-
if (params.page) {
|
|
9
|
-
queryParams['page[number]'] = params.page;
|
|
10
|
-
}
|
|
11
|
-
if (params.perPage) {
|
|
12
|
-
queryParams['page[size]'] = params.perPage;
|
|
13
|
-
}
|
|
14
|
-
if (params.sort) {
|
|
15
|
-
const sorts = Array.isArray(params.sort) ? params.sort : [
|
|
16
|
-
params.sort
|
|
17
|
-
];
|
|
18
|
-
queryParams['sort'] = sorts.map((s)=>s.direction === 'desc' ? `-${s.field}` : s.field).join(',');
|
|
19
|
-
}
|
|
20
|
-
if (params.filter) {
|
|
21
|
-
for (const [key, value] of Object.entries(params.filter)){
|
|
22
|
-
queryParams[`filter[${key}]`] = value;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
if (params.include) {
|
|
26
|
-
queryParams['include'] = params.include.join(',');
|
|
27
|
-
}
|
|
28
|
-
return queryParams;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Create the apps service
|
|
32
|
-
*/ export function createAppsService(transport, _config) {
|
|
33
|
-
return {
|
|
34
|
-
async list (params) {
|
|
35
|
-
const response = await transport.get('/apps', {
|
|
36
|
-
params: buildListParams(params)
|
|
37
|
-
});
|
|
38
|
-
return decodePageResult(response, appMapper);
|
|
39
|
-
},
|
|
40
|
-
async get (id) {
|
|
41
|
-
const response = await transport.get(`/apps/${id}`);
|
|
42
|
-
return decodeOne(response, appMapper);
|
|
43
|
-
},
|
|
44
|
-
async create (request) {
|
|
45
|
-
const response = await transport.post('/apps', {
|
|
46
|
-
name: request.name,
|
|
47
|
-
description: request.description,
|
|
48
|
-
app_type: request.appType,
|
|
49
|
-
oauth_enabled: request.oauthEnabled,
|
|
50
|
-
oauth_access_token_lifetime_hours: request.oauthAccessTokenLifetimeHours,
|
|
51
|
-
oauth_refresh_token_lifetime_days: request.oauthRefreshTokenLifetimeDays,
|
|
52
|
-
rate_limit_per_minute: request.rateLimitPerMinute,
|
|
53
|
-
rate_limit_per_hour: request.rateLimitPerHour,
|
|
54
|
-
webhook_url: request.webhookUrl,
|
|
55
|
-
allowed_origins: request.allowedOrigins,
|
|
56
|
-
metadata: request.metadata
|
|
57
|
-
});
|
|
58
|
-
return decodeOne(response, appMapper);
|
|
59
|
-
},
|
|
60
|
-
async update (id, request) {
|
|
61
|
-
const response = await transport.patch(`/apps/${id}`, {
|
|
62
|
-
name: request.name,
|
|
63
|
-
description: request.description,
|
|
64
|
-
app_type: request.appType,
|
|
65
|
-
oauth_enabled: request.oauthEnabled,
|
|
66
|
-
oauth_access_token_lifetime_hours: request.oauthAccessTokenLifetimeHours,
|
|
67
|
-
oauth_refresh_token_lifetime_days: request.oauthRefreshTokenLifetimeDays,
|
|
68
|
-
rate_limit_per_minute: request.rateLimitPerMinute,
|
|
69
|
-
rate_limit_per_hour: request.rateLimitPerHour,
|
|
70
|
-
webhook_url: request.webhookUrl,
|
|
71
|
-
allowed_origins: request.allowedOrigins,
|
|
72
|
-
metadata: request.metadata,
|
|
73
|
-
status: request.status
|
|
74
|
-
});
|
|
75
|
-
return decodeOne(response, appMapper);
|
|
76
|
-
},
|
|
77
|
-
async delete (id) {
|
|
78
|
-
await transport.delete(`/apps/${id}`);
|
|
79
|
-
},
|
|
80
|
-
async regenerateWebhookSecret (id) {
|
|
81
|
-
const response = await transport.post(`/apps/${id}/regenerate_webhook_secret`);
|
|
82
|
-
return decodeOne(response, appMapper);
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Create the blocks service
|
|
88
|
-
*/ export function createBlocksService(transport, _config) {
|
|
89
|
-
return {
|
|
90
|
-
async list (companyId, params) {
|
|
91
|
-
const queryParams = buildListParams(params);
|
|
92
|
-
queryParams['filter[company_unique_id]'] = companyId;
|
|
93
|
-
const response = await transport.get('/blocks', {
|
|
94
|
-
params: queryParams
|
|
95
|
-
});
|
|
96
|
-
return decodePageResult(response, blockMapper);
|
|
97
|
-
},
|
|
98
|
-
async get (id) {
|
|
99
|
-
const response = await transport.get(`/blocks/${id}`);
|
|
100
|
-
return decodeOne(response, blockMapper);
|
|
101
|
-
},
|
|
102
|
-
async add (companyId, blockCode) {
|
|
103
|
-
const response = await transport.post('/blocks', {
|
|
104
|
-
company_unique_id: companyId,
|
|
105
|
-
block_code: blockCode
|
|
106
|
-
});
|
|
107
|
-
return decodeOne(response, blockMapper);
|
|
108
|
-
},
|
|
109
|
-
async remove (id) {
|
|
110
|
-
await transport.delete(`/blocks/${id}`);
|
|
111
|
-
}
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Create the services registry service
|
|
116
|
-
*/ export function createServicesRegistryService(transport, _config) {
|
|
117
|
-
return {
|
|
118
|
-
async list (params) {
|
|
119
|
-
const response = await transport.get('/services', {
|
|
120
|
-
params: buildListParams(params)
|
|
121
|
-
});
|
|
122
|
-
return decodePageResult(response, serviceMapper);
|
|
123
|
-
},
|
|
124
|
-
async get (id) {
|
|
125
|
-
const response = await transport.get(`/services/${id}`);
|
|
126
|
-
return decodeOne(response, serviceMapper);
|
|
127
|
-
},
|
|
128
|
-
async getByCode (code) {
|
|
129
|
-
const response = await transport.get(`/services/by_code/${code}`);
|
|
130
|
-
return decodeOne(response, serviceMapper);
|
|
131
|
-
},
|
|
132
|
-
async healthCheck () {
|
|
133
|
-
const response = await transport.get('/services/health');
|
|
134
|
-
return decodeMany(response, serviceMapper);
|
|
135
|
-
}
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
//# sourceMappingURL=apps.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/services/apps.service.ts"],"sourcesContent":["import type { Transport, PageResult, ListParams } from '@23blocks/contracts';\nimport type { JsonApiDocument } from '@23blocks/jsonapi-codec';\nimport { decodeOne, decodeMany, decodePageResult } from '@23blocks/jsonapi-codec';\nimport type { App, Block, Service, CreateAppRequest, UpdateAppRequest } from '../types/index.js';\nimport { appMapper, blockMapper, serviceMapper } from '../mappers/index.js';\nimport type { AuthenticationBlockConfig } from '../authentication.block.js';\n\n/**\n * Apps service interface\n */\nexport interface AppsService {\n /**\n * List apps with pagination\n */\n list(params?: ListParams): Promise<PageResult<App>>;\n\n /**\n * Get an app by ID\n */\n get(id: string): Promise<App>;\n\n /**\n * Create a new app\n */\n create(request: CreateAppRequest): Promise<App>;\n\n /**\n * Update an app\n */\n update(id: string, request: UpdateAppRequest): Promise<App>;\n\n /**\n * Delete an app\n */\n delete(id: string): Promise<void>;\n\n /**\n * Regenerate webhook secret\n */\n regenerateWebhookSecret(id: string): Promise<App>;\n}\n\n/**\n * Blocks service interface\n */\nexport interface BlocksService {\n /**\n * List blocks for a company\n */\n list(companyId: string, params?: ListParams): Promise<PageResult<Block>>;\n\n /**\n * Get a block by ID\n */\n get(id: string): Promise<Block>;\n\n /**\n * Add a block to a company\n */\n add(companyId: string, blockCode: string): Promise<Block>;\n\n /**\n * Remove a block from a company\n */\n remove(id: string): Promise<void>;\n}\n\n/**\n * Services registry service interface\n */\nexport interface ServicesRegistryService {\n /**\n * List registered services\n */\n list(params?: ListParams): Promise<PageResult<Service>>;\n\n /**\n * Get a service by ID\n */\n get(id: string): Promise<Service>;\n\n /**\n * Get a service by code\n */\n getByCode(code: string): Promise<Service>;\n\n /**\n * Health check all services\n */\n healthCheck(): Promise<Service[]>;\n}\n\n/**\n * Build filter params for list operations\n */\nfunction buildListParams(params?: ListParams): Record<string, string | number | boolean | string[] | undefined> {\n if (!params) return {};\n\n const queryParams: Record<string, string | number | boolean | string[] | undefined> = {};\n\n if (params.page) {\n queryParams['page[number]'] = params.page;\n }\n if (params.perPage) {\n queryParams['page[size]'] = params.perPage;\n }\n\n if (params.sort) {\n const sorts = Array.isArray(params.sort) ? params.sort : [params.sort];\n queryParams['sort'] = sorts\n .map((s) => (s.direction === 'desc' ? `-${s.field}` : s.field))\n .join(',');\n }\n\n if (params.filter) {\n for (const [key, value] of Object.entries(params.filter)) {\n queryParams[`filter[${key}]`] = value;\n }\n }\n\n if (params.include) {\n queryParams['include'] = params.include.join(',');\n }\n\n return queryParams;\n}\n\n/**\n * Create the apps service\n */\nexport function createAppsService(\n transport: Transport,\n _config: AuthenticationBlockConfig\n): AppsService {\n return {\n async list(params?: ListParams): Promise<PageResult<App>> {\n const response = await transport.get<JsonApiDocument>(\n '/apps',\n { params: buildListParams(params) }\n );\n return decodePageResult(response, appMapper);\n },\n\n async get(id: string): Promise<App> {\n const response = await transport.get<JsonApiDocument>(`/apps/${id}`);\n return decodeOne(response, appMapper);\n },\n\n async create(request: CreateAppRequest): Promise<App> {\n const response = await transport.post<JsonApiDocument>('/apps', {\n name: request.name,\n description: request.description,\n app_type: request.appType,\n oauth_enabled: request.oauthEnabled,\n oauth_access_token_lifetime_hours: request.oauthAccessTokenLifetimeHours,\n oauth_refresh_token_lifetime_days: request.oauthRefreshTokenLifetimeDays,\n rate_limit_per_minute: request.rateLimitPerMinute,\n rate_limit_per_hour: request.rateLimitPerHour,\n webhook_url: request.webhookUrl,\n allowed_origins: request.allowedOrigins,\n metadata: request.metadata,\n });\n return decodeOne(response, appMapper);\n },\n\n async update(id: string, request: UpdateAppRequest): Promise<App> {\n const response = await transport.patch<JsonApiDocument>(`/apps/${id}`, {\n name: request.name,\n description: request.description,\n app_type: request.appType,\n oauth_enabled: request.oauthEnabled,\n oauth_access_token_lifetime_hours: request.oauthAccessTokenLifetimeHours,\n oauth_refresh_token_lifetime_days: request.oauthRefreshTokenLifetimeDays,\n rate_limit_per_minute: request.rateLimitPerMinute,\n rate_limit_per_hour: request.rateLimitPerHour,\n webhook_url: request.webhookUrl,\n allowed_origins: request.allowedOrigins,\n metadata: request.metadata,\n status: request.status,\n });\n return decodeOne(response, appMapper);\n },\n\n async delete(id: string): Promise<void> {\n await transport.delete(`/apps/${id}`);\n },\n\n async regenerateWebhookSecret(id: string): Promise<App> {\n const response = await transport.post<JsonApiDocument>(\n `/apps/${id}/regenerate_webhook_secret`\n );\n return decodeOne(response, appMapper);\n },\n };\n}\n\n/**\n * Create the blocks service\n */\nexport function createBlocksService(\n transport: Transport,\n _config: AuthenticationBlockConfig\n): BlocksService {\n return {\n async list(companyId: string, params?: ListParams): Promise<PageResult<Block>> {\n const queryParams = buildListParams(params);\n queryParams['filter[company_unique_id]'] = companyId;\n\n const response = await transport.get<JsonApiDocument>(\n '/blocks',\n { params: queryParams }\n );\n return decodePageResult(response, blockMapper);\n },\n\n async get(id: string): Promise<Block> {\n const response = await transport.get<JsonApiDocument>(`/blocks/${id}`);\n return decodeOne(response, blockMapper);\n },\n\n async add(companyId: string, blockCode: string): Promise<Block> {\n const response = await transport.post<JsonApiDocument>('/blocks', {\n company_unique_id: companyId,\n block_code: blockCode,\n });\n return decodeOne(response, blockMapper);\n },\n\n async remove(id: string): Promise<void> {\n await transport.delete(`/blocks/${id}`);\n },\n };\n}\n\n/**\n * Create the services registry service\n */\nexport function createServicesRegistryService(\n transport: Transport,\n _config: AuthenticationBlockConfig\n): ServicesRegistryService {\n return {\n async list(params?: ListParams): Promise<PageResult<Service>> {\n const response = await transport.get<JsonApiDocument>(\n '/services',\n { params: buildListParams(params) }\n );\n return decodePageResult(response, serviceMapper);\n },\n\n async get(id: string): Promise<Service> {\n const response = await transport.get<JsonApiDocument>(`/services/${id}`);\n return decodeOne(response, serviceMapper);\n },\n\n async getByCode(code: string): Promise<Service> {\n const response = await transport.get<JsonApiDocument>(\n `/services/by_code/${code}`\n );\n return decodeOne(response, serviceMapper);\n },\n\n async healthCheck(): Promise<Service[]> {\n const response = await transport.get<JsonApiDocument>('/services/health');\n return decodeMany(response, serviceMapper);\n },\n };\n}\n"],"names":["decodeOne","decodeMany","decodePageResult","appMapper","blockMapper","serviceMapper","buildListParams","params","queryParams","page","perPage","sort","sorts","Array","isArray","map","s","direction","field","join","filter","key","value","Object","entries","include","createAppsService","transport","_config","list","response","get","id","create","request","post","name","description","app_type","appType","oauth_enabled","oauthEnabled","oauth_access_token_lifetime_hours","oauthAccessTokenLifetimeHours","oauth_refresh_token_lifetime_days","oauthRefreshTokenLifetimeDays","rate_limit_per_minute","rateLimitPerMinute","rate_limit_per_hour","rateLimitPerHour","webhook_url","webhookUrl","allowed_origins","allowedOrigins","metadata","update","patch","status","delete","regenerateWebhookSecret","createBlocksService","companyId","add","blockCode","company_unique_id","block_code","remove","createServicesRegistryService","getByCode","code","healthCheck"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|