@23blocks/block-authentication 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.
Files changed (59) hide show
  1. package/dist/index.js +8 -0
  2. package/dist/index.js.map +1 -0
  3. package/dist/lib/authentication.block.js +102 -0
  4. package/dist/lib/authentication.block.js.map +1 -0
  5. package/dist/lib/mappers/api-key.mapper.js +57 -0
  6. package/dist/lib/mappers/api-key.mapper.js.map +1 -0
  7. package/dist/lib/mappers/app.mapper.js +98 -0
  8. package/dist/lib/mappers/app.mapper.js.map +1 -0
  9. package/dist/lib/mappers/company.mapper.js +128 -0
  10. package/dist/lib/mappers/company.mapper.js.map +1 -0
  11. package/dist/lib/mappers/geography.mapper.js +129 -0
  12. package/dist/lib/mappers/geography.mapper.js.map +1 -0
  13. package/dist/lib/mappers/guest.mapper.js +176 -0
  14. package/dist/lib/mappers/guest.mapper.js.map +1 -0
  15. package/dist/lib/mappers/index.js +18 -0
  16. package/dist/lib/mappers/index.js.map +1 -0
  17. package/dist/lib/mappers/subscription.mapper.js +134 -0
  18. package/dist/lib/mappers/subscription.mapper.js.map +1 -0
  19. package/dist/lib/mappers/user.mapper.js +163 -0
  20. package/dist/lib/mappers/user.mapper.js.map +1 -0
  21. package/dist/lib/mappers/utils.js +54 -0
  22. package/dist/lib/mappers/utils.js.map +1 -0
  23. package/dist/lib/services/api-keys.service.js +93 -0
  24. package/dist/lib/services/api-keys.service.js.map +1 -0
  25. package/dist/lib/services/apps.service.js +139 -0
  26. package/dist/lib/services/apps.service.js.map +1 -0
  27. package/dist/lib/services/auth.service.js +147 -0
  28. package/dist/lib/services/auth.service.js.map +1 -0
  29. package/dist/lib/services/geography.service.js +151 -0
  30. package/dist/lib/services/geography.service.js.map +1 -0
  31. package/dist/lib/services/guests.service.js +219 -0
  32. package/dist/lib/services/guests.service.js.map +1 -0
  33. package/dist/lib/services/index.js +14 -0
  34. package/dist/lib/services/index.js.map +1 -0
  35. package/dist/lib/services/roles.service.js +91 -0
  36. package/dist/lib/services/roles.service.js.map +1 -0
  37. package/dist/lib/services/subscriptions.service.js +146 -0
  38. package/dist/lib/services/subscriptions.service.js.map +1 -0
  39. package/dist/lib/services/users.service.js +116 -0
  40. package/dist/lib/services/users.service.js.map +1 -0
  41. package/dist/lib/types/api-key.js +5 -0
  42. package/dist/lib/types/api-key.js.map +1 -0
  43. package/dist/lib/types/app.js +5 -0
  44. package/dist/lib/types/app.js.map +1 -0
  45. package/dist/lib/types/auth.js +5 -0
  46. package/dist/lib/types/auth.js.map +1 -0
  47. package/dist/lib/types/company.js +5 -0
  48. package/dist/lib/types/company.js.map +1 -0
  49. package/dist/lib/types/geography.js +5 -0
  50. package/dist/lib/types/geography.js.map +1 -0
  51. package/dist/lib/types/guest.js +5 -0
  52. package/dist/lib/types/guest.js.map +1 -0
  53. package/dist/lib/types/index.js +4 -0
  54. package/dist/lib/types/index.js.map +1 -0
  55. package/dist/lib/types/subscription.js +5 -0
  56. package/dist/lib/types/subscription.js.map +1 -0
  57. package/dist/lib/types/user.js +13 -0
  58. package/dist/lib/types/user.js.map +1 -0
  59. package/package.json +64 -0
package/dist/index.js ADDED
@@ -0,0 +1,8 @@
1
+ // Block factory and types
2
+ export { createAuthenticationBlock, authenticationBlockMetadata } from './lib/authentication.block.js';
3
+ // Domain types
4
+ export { getFullName } from './lib/types/index.js';
5
+ // Mappers (for custom decoding)
6
+ export { userMapper, roleMapper, permissionMapper, userAvatarMapper, userProfileMapper, companyMapper, companyDetailMapper, companyBlockMapper, companyKeyMapper, tenantMapper, apiKeyMapper, apiKeyWithSecretMapper } from './lib/mappers/index.js';
7
+
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["// Block factory and types\nexport {\n createAuthenticationBlock,\n type AuthenticationBlock,\n type AuthenticationBlockConfig,\n authenticationBlockMetadata,\n} from './lib/authentication.block.js';\n\n// Domain types\nexport {\n // User types\n type User,\n type Role,\n type Permission,\n type UserAvatar,\n type UserProfile,\n getFullName,\n\n // Company types\n type Company,\n type CompanyDetail,\n type CompanyBlock,\n type CompanyKey,\n type Tenant,\n\n // Auth types\n type SignInRequest,\n type SignInResponse,\n type SignUpRequest,\n type SignUpResponse,\n type PasswordResetRequest,\n type PasswordUpdateRequest,\n type TokenValidationResponse,\n type RefreshTokenRequest,\n type RefreshTokenResponse,\n type OAuthSignInRequest,\n type MagicLinkRequest,\n type MagicLinkVerifyRequest,\n type MfaSetupResponse,\n type MfaVerifyRequest,\n type InvitationRequest,\n type AcceptInvitationRequest,\n type AuthHeaders,\n\n // API Key types\n type ApiKey,\n type ApiKeyWithSecret,\n type CreateApiKeyRequest,\n type UpdateApiKeyRequest,\n type RevokeApiKeyRequest,\n} from './lib/types/index.js';\n\n// Services (for advanced usage)\nexport {\n type AuthService,\n type UsersService,\n type RolesService,\n type ApiKeysService,\n type UpdateUserRequest,\n type UpdateProfileRequest,\n type CreateRoleRequest,\n type UpdateRoleRequest,\n type ApiKeyUsageStats,\n} from './lib/services/index.js';\n\n// Mappers (for custom decoding)\nexport {\n userMapper,\n roleMapper,\n permissionMapper,\n userAvatarMapper,\n userProfileMapper,\n companyMapper,\n companyDetailMapper,\n companyBlockMapper,\n companyKeyMapper,\n tenantMapper,\n apiKeyMapper,\n apiKeyWithSecretMapper,\n} from './lib/mappers/index.js';\n"],"names":["createAuthenticationBlock","authenticationBlockMetadata","getFullName","userMapper","roleMapper","permissionMapper","userAvatarMapper","userProfileMapper","companyMapper","companyDetailMapper","companyBlockMapper","companyKeyMapper","tenantMapper","apiKeyMapper","apiKeyWithSecretMapper"],"rangeMappings":";;;;;","mappings":"AAAA,0BAA0B;AAC1B,SACEA,yBAAyB,EAGzBC,2BAA2B,QACtB,gCAAgC;AAEvC,eAAe;AACf,SAOEC,WAAW,QAkCN,uBAAuB;AAe9B,gCAAgC;AAChC,SACEC,UAAU,EACVC,UAAU,EACVC,gBAAgB,EAChBC,gBAAgB,EAChBC,iBAAiB,EACjBC,aAAa,EACbC,mBAAmB,EACnBC,kBAAkB,EAClBC,gBAAgB,EAChBC,YAAY,EACZC,YAAY,EACZC,sBAAsB,QACjB,yBAAyB"}
@@ -0,0 +1,102 @@
1
+ import { createAuthService } from './services/auth.service.js';
2
+ import { createUsersService } from './services/users.service.js';
3
+ import { createRolesService } from './services/roles.service.js';
4
+ import { createApiKeysService } from './services/api-keys.service.js';
5
+ import { createAppsService, createBlocksService, createServicesRegistryService } from './services/apps.service.js';
6
+ import { createSubscriptionModelsService, createUserSubscriptionsService, createCompanySubscriptionsService } from './services/subscriptions.service.js';
7
+ import { createCountriesService, createStatesService, createCountiesService, createCitiesService, createCurrenciesService } from './services/geography.service.js';
8
+ import { createGuestsService, createMagicLinksService, createRefreshTokensService, createUserDevicesService, createTenantUsersService, createMailTemplatesService } from './services/guests.service.js';
9
+ /**
10
+ * Create the Authentication block
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * import { createAuthenticationBlock } from '@23blocks/block-authentication';
15
+ * import { createHttpTransport } from '@23blocks/transport-http';
16
+ *
17
+ * const transport = createHttpTransport({
18
+ * baseUrl: 'https://api.example.com',
19
+ * headers: () => ({
20
+ * 'Authorization': `Bearer ${getToken()}`,
21
+ * 'appid': 'your-app-id',
22
+ * }),
23
+ * });
24
+ *
25
+ * const auth = createAuthenticationBlock(transport, { appId: 'your-app-id' });
26
+ *
27
+ * // Sign in
28
+ * const { user, accessToken } = await auth.auth.signIn({
29
+ * email: 'user@example.com',
30
+ * password: 'password',
31
+ * });
32
+ *
33
+ * // List users
34
+ * const users = await auth.users.list({ page: 1, perPage: 20 });
35
+ *
36
+ * // Get roles
37
+ * const roles = await auth.roles.list();
38
+ * ```
39
+ */ export function createAuthenticationBlock(transport, config) {
40
+ return {
41
+ auth: createAuthService(transport, config),
42
+ users: createUsersService(transport, config),
43
+ roles: createRolesService(transport, config),
44
+ apiKeys: createApiKeysService(transport, config),
45
+ apps: createAppsService(transport, config),
46
+ blocks: createBlocksService(transport, config),
47
+ services: createServicesRegistryService(transport, config),
48
+ subscriptionModels: createSubscriptionModelsService(transport, config),
49
+ userSubscriptions: createUserSubscriptionsService(transport, config),
50
+ companySubscriptions: createCompanySubscriptionsService(transport, config),
51
+ countries: createCountriesService(transport, config),
52
+ states: createStatesService(transport, config),
53
+ counties: createCountiesService(transport, config),
54
+ cities: createCitiesService(transport, config),
55
+ currencies: createCurrenciesService(transport, config),
56
+ guests: createGuestsService(transport, config),
57
+ magicLinks: createMagicLinksService(transport, config),
58
+ refreshTokens: createRefreshTokensService(transport, config),
59
+ userDevices: createUserDevicesService(transport, config),
60
+ tenantUsers: createTenantUsersService(transport, config),
61
+ mailTemplates: createMailTemplatesService(transport, config)
62
+ };
63
+ }
64
+ /**
65
+ * Block metadata
66
+ */ export const authenticationBlockMetadata = {
67
+ name: 'authentication',
68
+ version: '0.0.1',
69
+ description: 'Authentication, users, roles, API keys, subscriptions, geography, and device management',
70
+ resourceTypes: [
71
+ 'User',
72
+ 'Role',
73
+ 'Permission',
74
+ 'UserAvatar',
75
+ 'UserProfile',
76
+ 'Company',
77
+ 'CompanyDetail',
78
+ 'CompanyBlock',
79
+ 'CompanyKey',
80
+ 'Tenant',
81
+ 'ApiKey',
82
+ 'App',
83
+ 'Block',
84
+ 'Service',
85
+ 'SubscriptionModel',
86
+ 'UserSubscription',
87
+ 'CompanySubscription',
88
+ 'Country',
89
+ 'State',
90
+ 'County',
91
+ 'City',
92
+ 'Currency',
93
+ 'Guest',
94
+ 'MagicLink',
95
+ 'RefreshToken',
96
+ 'UserDevice',
97
+ 'TenantUser',
98
+ 'MailTemplate'
99
+ ]
100
+ };
101
+
102
+ //# sourceMappingURL=authentication.block.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/authentication.block.ts"],"sourcesContent":["import type { Transport, BlockConfig } from '@23blocks/contracts';\nimport { createAuthService, type AuthService } from './services/auth.service.js';\nimport { createUsersService, type UsersService } from './services/users.service.js';\nimport { createRolesService, type RolesService } from './services/roles.service.js';\nimport { createApiKeysService, type ApiKeysService } from './services/api-keys.service.js';\nimport {\n createAppsService,\n createBlocksService,\n createServicesRegistryService,\n type AppsService,\n type BlocksService,\n type ServicesRegistryService,\n} from './services/apps.service.js';\nimport {\n createSubscriptionModelsService,\n createUserSubscriptionsService,\n createCompanySubscriptionsService,\n type SubscriptionModelsService,\n type UserSubscriptionsService,\n type CompanySubscriptionsService,\n} from './services/subscriptions.service.js';\nimport {\n createCountriesService,\n createStatesService,\n createCountiesService,\n createCitiesService,\n createCurrenciesService,\n type CountriesService,\n type StatesService,\n type CountiesService,\n type CitiesService,\n type CurrenciesService,\n} from './services/geography.service.js';\nimport {\n createGuestsService,\n createMagicLinksService,\n createRefreshTokensService,\n createUserDevicesService,\n createTenantUsersService,\n createMailTemplatesService,\n type GuestsService,\n type MagicLinksService,\n type RefreshTokensService,\n type UserDevicesService,\n type TenantUsersService,\n type MailTemplatesService,\n} from './services/guests.service.js';\n\n/**\n * Configuration for the Authentication block\n */\nexport interface AuthenticationBlockConfig extends BlockConfig {\n /** Application ID */\n appId: string;\n /** Tenant ID (optional, for multi-tenant setups) */\n tenantId?: string;\n}\n\n/**\n * Authentication block interface\n */\nexport interface AuthenticationBlock {\n /**\n * Authentication operations (signIn, signUp, signOut, etc.)\n */\n auth: AuthService;\n\n /**\n * User management operations\n */\n users: UsersService;\n\n /**\n * Role and permission management\n */\n roles: RolesService;\n\n /**\n * API key management\n */\n apiKeys: ApiKeysService;\n\n /**\n * Application management\n */\n apps: AppsService;\n\n /**\n * Block (feature) management for companies\n */\n blocks: BlocksService;\n\n /**\n * Service registry\n */\n services: ServicesRegistryService;\n\n /**\n * Subscription model definitions\n */\n subscriptionModels: SubscriptionModelsService;\n\n /**\n * User subscription management\n */\n userSubscriptions: UserSubscriptionsService;\n\n /**\n * Company subscription management\n */\n companySubscriptions: CompanySubscriptionsService;\n\n /**\n * Countries lookup\n */\n countries: CountriesService;\n\n /**\n * States/provinces lookup\n */\n states: StatesService;\n\n /**\n * Counties lookup\n */\n counties: CountiesService;\n\n /**\n * Cities lookup\n */\n cities: CitiesService;\n\n /**\n * Currencies lookup\n */\n currencies: CurrenciesService;\n\n /**\n * Guest (anonymous user) tracking\n */\n guests: GuestsService;\n\n /**\n * Magic link management\n */\n magicLinks: MagicLinksService;\n\n /**\n * Refresh token management\n */\n refreshTokens: RefreshTokensService;\n\n /**\n * User device management\n */\n userDevices: UserDevicesService;\n\n /**\n * Tenant user context\n */\n tenantUsers: TenantUsersService;\n\n /**\n * Mail template management\n */\n mailTemplates: MailTemplatesService;\n}\n\n/**\n * Create the Authentication block\n *\n * @example\n * ```typescript\n * import { createAuthenticationBlock } from '@23blocks/block-authentication';\n * import { createHttpTransport } from '@23blocks/transport-http';\n *\n * const transport = createHttpTransport({\n * baseUrl: 'https://api.example.com',\n * headers: () => ({\n * 'Authorization': `Bearer ${getToken()}`,\n * 'appid': 'your-app-id',\n * }),\n * });\n *\n * const auth = createAuthenticationBlock(transport, { appId: 'your-app-id' });\n *\n * // Sign in\n * const { user, accessToken } = await auth.auth.signIn({\n * email: 'user@example.com',\n * password: 'password',\n * });\n *\n * // List users\n * const users = await auth.users.list({ page: 1, perPage: 20 });\n *\n * // Get roles\n * const roles = await auth.roles.list();\n * ```\n */\nexport function createAuthenticationBlock(\n transport: Transport,\n config: AuthenticationBlockConfig\n): AuthenticationBlock {\n return {\n auth: createAuthService(transport, config),\n users: createUsersService(transport, config),\n roles: createRolesService(transport, config),\n apiKeys: createApiKeysService(transport, config),\n apps: createAppsService(transport, config),\n blocks: createBlocksService(transport, config),\n services: createServicesRegistryService(transport, config),\n subscriptionModels: createSubscriptionModelsService(transport, config),\n userSubscriptions: createUserSubscriptionsService(transport, config),\n companySubscriptions: createCompanySubscriptionsService(transport, config),\n countries: createCountriesService(transport, config),\n states: createStatesService(transport, config),\n counties: createCountiesService(transport, config),\n cities: createCitiesService(transport, config),\n currencies: createCurrenciesService(transport, config),\n guests: createGuestsService(transport, config),\n magicLinks: createMagicLinksService(transport, config),\n refreshTokens: createRefreshTokensService(transport, config),\n userDevices: createUserDevicesService(transport, config),\n tenantUsers: createTenantUsersService(transport, config),\n mailTemplates: createMailTemplatesService(transport, config),\n };\n}\n\n/**\n * Block metadata\n */\nexport const authenticationBlockMetadata = {\n name: 'authentication',\n version: '0.0.1',\n description: 'Authentication, users, roles, API keys, subscriptions, geography, and device management',\n resourceTypes: [\n 'User', 'Role', 'Permission', 'UserAvatar', 'UserProfile',\n 'Company', 'CompanyDetail', 'CompanyBlock', 'CompanyKey', 'Tenant',\n 'ApiKey', 'App', 'Block', 'Service',\n 'SubscriptionModel', 'UserSubscription', 'CompanySubscription',\n 'Country', 'State', 'County', 'City', 'Currency',\n 'Guest', 'MagicLink', 'RefreshToken', 'UserDevice', 'TenantUser', 'MailTemplate',\n ],\n};\n"],"names":["createAuthService","createUsersService","createRolesService","createApiKeysService","createAppsService","createBlocksService","createServicesRegistryService","createSubscriptionModelsService","createUserSubscriptionsService","createCompanySubscriptionsService","createCountriesService","createStatesService","createCountiesService","createCitiesService","createCurrenciesService","createGuestsService","createMagicLinksService","createRefreshTokensService","createUserDevicesService","createTenantUsersService","createMailTemplatesService","createAuthenticationBlock","transport","config","auth","users","roles","apiKeys","apps","blocks","services","subscriptionModels","userSubscriptions","companySubscriptions","countries","states","counties","cities","currencies","guests","magicLinks","refreshTokens","userDevices","tenantUsers","mailTemplates","authenticationBlockMetadata","name","version","description","resourceTypes"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,SAASA,iBAAiB,QAA0B,6BAA6B;AACjF,SAASC,kBAAkB,QAA2B,8BAA8B;AACpF,SAASC,kBAAkB,QAA2B,8BAA8B;AACpF,SAASC,oBAAoB,QAA6B,iCAAiC;AAC3F,SACEC,iBAAiB,EACjBC,mBAAmB,EACnBC,6BAA6B,QAIxB,6BAA6B;AACpC,SACEC,+BAA+B,EAC/BC,8BAA8B,EAC9BC,iCAAiC,QAI5B,sCAAsC;AAC7C,SACEC,sBAAsB,EACtBC,mBAAmB,EACnBC,qBAAqB,EACrBC,mBAAmB,EACnBC,uBAAuB,QAMlB,kCAAkC;AACzC,SACEC,mBAAmB,EACnBC,uBAAuB,EACvBC,0BAA0B,EAC1BC,wBAAwB,EACxBC,wBAAwB,EACxBC,0BAA0B,QAOrB,+BAA+B;AA0HtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BC,GACD,OAAO,SAASC,0BACdC,SAAoB,EACpBC,MAAiC;IAEjC,OAAO;QACLC,MAAMxB,kBAAkBsB,WAAWC;QACnCE,OAAOxB,mBAAmBqB,WAAWC;QACrCG,OAAOxB,mBAAmBoB,WAAWC;QACrCI,SAASxB,qBAAqBmB,WAAWC;QACzCK,MAAMxB,kBAAkBkB,WAAWC;QACnCM,QAAQxB,oBAAoBiB,WAAWC;QACvCO,UAAUxB,8BAA8BgB,WAAWC;QACnDQ,oBAAoBxB,gCAAgCe,WAAWC;QAC/DS,mBAAmBxB,+BAA+Bc,WAAWC;QAC7DU,sBAAsBxB,kCAAkCa,WAAWC;QACnEW,WAAWxB,uBAAuBY,WAAWC;QAC7CY,QAAQxB,oBAAoBW,WAAWC;QACvCa,UAAUxB,sBAAsBU,WAAWC;QAC3Cc,QAAQxB,oBAAoBS,WAAWC;QACvCe,YAAYxB,wBAAwBQ,WAAWC;QAC/CgB,QAAQxB,oBAAoBO,WAAWC;QACvCiB,YAAYxB,wBAAwBM,WAAWC;QAC/CkB,eAAexB,2BAA2BK,WAAWC;QACrDmB,aAAaxB,yBAAyBI,WAAWC;QACjDoB,aAAaxB,yBAAyBG,WAAWC;QACjDqB,eAAexB,2BAA2BE,WAAWC;IACvD;AACF;AAEA;;CAEC,GACD,OAAO,MAAMsB,8BAA8B;IACzCC,MAAM;IACNC,SAAS;IACTC,aAAa;IACbC,eAAe;QACb;QAAQ;QAAQ;QAAc;QAAc;QAC5C;QAAW;QAAiB;QAAgB;QAAc;QAC1D;QAAU;QAAO;QAAS;QAC1B;QAAqB;QAAoB;QACzC;QAAW;QAAS;QAAU;QAAQ;QACtC;QAAS;QAAa;QAAgB;QAAc;QAAc;KACnE;AACH,EAAE"}
@@ -0,0 +1,57 @@
1
+ import { _ as _extends } from "@swc/helpers/_/_extends";
2
+ import { parseDate, parseString, parseBoolean, parseStringArray, parseNumber } from './utils.js';
3
+ /**
4
+ * API Key mapper
5
+ */ export const apiKeyMapper = {
6
+ type: 'ApiKey',
7
+ map (resource, _included) {
8
+ var _resource_attributes;
9
+ const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
10
+ var _parseString, _parseString1, _parseString2, _attrs_status, _parseNumber, _parseDate, _parseDate1, _parseNumber1, _parseNumber2, _parseNumber3;
11
+ return {
12
+ id: resource.id,
13
+ uniqueId: (_parseString = parseString(attrs.unique_id)) != null ? _parseString : resource.id,
14
+ keyId: (_parseString1 = parseString(attrs.key_id)) != null ? _parseString1 : '',
15
+ name: (_parseString2 = parseString(attrs.name)) != null ? _parseString2 : '',
16
+ description: parseString(attrs.description),
17
+ status: (_attrs_status = attrs.status) != null ? _attrs_status : 'active',
18
+ serviceAccount: parseBoolean(attrs.service_account),
19
+ scopes: parseStringArray(attrs.scopes),
20
+ expiresAt: parseDate(attrs.expires_at),
21
+ rateLimitPerMinute: parseNumber(attrs.rate_limit_per_minute),
22
+ rateLimitPerHour: parseNumber(attrs.rate_limit_per_hour),
23
+ rateLimitPerDay: parseNumber(attrs.rate_limit_per_day),
24
+ allowedOrigins: parseStringArray(attrs.allowed_origins),
25
+ allowedIps: parseStringArray(attrs.allowed_ips),
26
+ lastUsedAt: parseDate(attrs.last_used_at),
27
+ usageCount: (_parseNumber = parseNumber(attrs.usage_count)) != null ? _parseNumber : 0,
28
+ revokedAt: parseDate(attrs.revoked_at),
29
+ revocationReason: parseString(attrs.revocation_reason),
30
+ payload: attrs.payload,
31
+ createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
32
+ updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date(),
33
+ // Computed attributes
34
+ isExpired: parseBoolean(attrs.is_expired),
35
+ daysUntilExpiry: parseNumber(attrs.days_until_expiry),
36
+ usageToday: (_parseNumber1 = parseNumber(attrs.usage_today)) != null ? _parseNumber1 : 0,
37
+ usageThisWeek: (_parseNumber2 = parseNumber(attrs.usage_this_week)) != null ? _parseNumber2 : 0,
38
+ usageThisMonth: (_parseNumber3 = parseNumber(attrs.usage_this_month)) != null ? _parseNumber3 : 0
39
+ };
40
+ }
41
+ };
42
+ /**
43
+ * API Key with secret mapper (only used on create/regenerate)
44
+ */ export const apiKeyWithSecretMapper = {
45
+ type: 'ApiKey',
46
+ map (resource, included) {
47
+ var _resource_attributes;
48
+ const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
49
+ const baseKey = apiKeyMapper.map(resource, included);
50
+ var _parseString;
51
+ return _extends({}, baseKey, {
52
+ secretKey: (_parseString = parseString(attrs.secret_key)) != null ? _parseString : ''
53
+ });
54
+ }
55
+ };
56
+
57
+ //# sourceMappingURL=api-key.mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/mappers/api-key.mapper.ts"],"sourcesContent":["import type { ResourceMapper, IncludedMap, JsonApiResource } from '@23blocks/jsonapi-codec';\nimport type { ApiKey, ApiKeyWithSecret } from '../types/index.js';\nimport { parseDate, parseString, parseBoolean, parseStringArray, parseNumber } from './utils.js';\n\n/**\n * API Key mapper\n */\nexport const apiKeyMapper: ResourceMapper<ApiKey> = {\n type: 'ApiKey',\n\n map(resource: JsonApiResource, _included: IncludedMap): ApiKey {\n const attrs = resource.attributes ?? {};\n\n return {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id) ?? resource.id,\n keyId: parseString(attrs.key_id) ?? '',\n name: parseString(attrs.name) ?? '',\n description: parseString(attrs.description),\n status: (attrs.status as ApiKey['status']) ?? 'active',\n serviceAccount: parseBoolean(attrs.service_account),\n scopes: parseStringArray(attrs.scopes),\n expiresAt: parseDate(attrs.expires_at),\n rateLimitPerMinute: parseNumber(attrs.rate_limit_per_minute),\n rateLimitPerHour: parseNumber(attrs.rate_limit_per_hour),\n rateLimitPerDay: parseNumber(attrs.rate_limit_per_day),\n allowedOrigins: parseStringArray(attrs.allowed_origins),\n allowedIps: parseStringArray(attrs.allowed_ips),\n lastUsedAt: parseDate(attrs.last_used_at),\n usageCount: parseNumber(attrs.usage_count) ?? 0,\n revokedAt: parseDate(attrs.revoked_at),\n revocationReason: parseString(attrs.revocation_reason),\n payload: attrs.payload as Record<string, unknown> | null,\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n\n // Computed attributes\n isExpired: parseBoolean(attrs.is_expired),\n daysUntilExpiry: parseNumber(attrs.days_until_expiry),\n usageToday: parseNumber(attrs.usage_today) ?? 0,\n usageThisWeek: parseNumber(attrs.usage_this_week) ?? 0,\n usageThisMonth: parseNumber(attrs.usage_this_month) ?? 0,\n };\n },\n};\n\n/**\n * API Key with secret mapper (only used on create/regenerate)\n */\nexport const apiKeyWithSecretMapper: ResourceMapper<ApiKeyWithSecret> = {\n type: 'ApiKey',\n\n map(resource: JsonApiResource, included: IncludedMap): ApiKeyWithSecret {\n const attrs = resource.attributes ?? {};\n const baseKey = apiKeyMapper.map(resource, included);\n\n return {\n ...baseKey,\n secretKey: parseString(attrs.secret_key) ?? '',\n };\n },\n};\n"],"names":["parseDate","parseString","parseBoolean","parseStringArray","parseNumber","apiKeyMapper","type","map","resource","_included","attrs","attributes","id","uniqueId","unique_id","keyId","key_id","name","description","status","serviceAccount","service_account","scopes","expiresAt","expires_at","rateLimitPerMinute","rate_limit_per_minute","rateLimitPerHour","rate_limit_per_hour","rateLimitPerDay","rate_limit_per_day","allowedOrigins","allowed_origins","allowedIps","allowed_ips","lastUsedAt","last_used_at","usageCount","usage_count","revokedAt","revoked_at","revocationReason","revocation_reason","payload","createdAt","created_at","Date","updatedAt","updated_at","isExpired","is_expired","daysUntilExpiry","days_until_expiry","usageToday","usage_today","usageThisWeek","usage_this_week","usageThisMonth","usage_this_month","apiKeyWithSecretMapper","included","baseKey","secretKey","secret_key"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";AAEA,SAASA,SAAS,EAAEC,WAAW,EAAEC,YAAY,EAAEC,gBAAgB,EAAEC,WAAW,QAAQ,aAAa;AAEjG;;CAEC,GACD,OAAO,MAAMC,eAAuC;IAClDC,MAAM;IAENC,KAAIC,QAAyB,EAAEC,SAAsB;YACrCD;QAAd,MAAME,QAAQF,CAAAA,uBAAAA,SAASG,UAAU,YAAnBH,uBAAuB,CAAC;YAI1BP,cACHA,eACDA,eAEGS,eAUGN,cAIDJ,YACAA,aAKCI,eACGA,eACCA;QA5BlB,OAAO;YACLQ,IAAIJ,SAASI,EAAE;YACfC,UAAUZ,CAAAA,eAAAA,YAAYS,MAAMI,SAAS,aAA3Bb,eAAgCO,SAASI,EAAE;YACrDG,OAAOd,CAAAA,gBAAAA,YAAYS,MAAMM,MAAM,aAAxBf,gBAA6B;YACpCgB,MAAMhB,CAAAA,gBAAAA,YAAYS,MAAMO,IAAI,aAAtBhB,gBAA2B;YACjCiB,aAAajB,YAAYS,MAAMQ,WAAW;YAC1CC,QAAQ,CAACT,gBAAAA,MAAMS,MAAM,YAAZT,gBAAqC;YAC9CU,gBAAgBlB,aAAaQ,MAAMW,eAAe;YAClDC,QAAQnB,iBAAiBO,MAAMY,MAAM;YACrCC,WAAWvB,UAAUU,MAAMc,UAAU;YACrCC,oBAAoBrB,YAAYM,MAAMgB,qBAAqB;YAC3DC,kBAAkBvB,YAAYM,MAAMkB,mBAAmB;YACvDC,iBAAiBzB,YAAYM,MAAMoB,kBAAkB;YACrDC,gBAAgB5B,iBAAiBO,MAAMsB,eAAe;YACtDC,YAAY9B,iBAAiBO,MAAMwB,WAAW;YAC9CC,YAAYnC,UAAUU,MAAM0B,YAAY;YACxCC,YAAYjC,CAAAA,eAAAA,YAAYM,MAAM4B,WAAW,aAA7BlC,eAAkC;YAC9CmC,WAAWvC,UAAUU,MAAM8B,UAAU;YACrCC,kBAAkBxC,YAAYS,MAAMgC,iBAAiB;YACrDC,SAASjC,MAAMiC,OAAO;YACtBC,WAAW5C,CAAAA,aAAAA,UAAUU,MAAMmC,UAAU,aAA1B7C,aAA+B,IAAI8C;YAC9CC,WAAW/C,CAAAA,cAAAA,UAAUU,MAAMsC,UAAU,aAA1BhD,cAA+B,IAAI8C;YAE9C,sBAAsB;YACtBG,WAAW/C,aAAaQ,MAAMwC,UAAU;YACxCC,iBAAiB/C,YAAYM,MAAM0C,iBAAiB;YACpDC,YAAYjD,CAAAA,gBAAAA,YAAYM,MAAM4C,WAAW,aAA7BlD,gBAAkC;YAC9CmD,eAAenD,CAAAA,gBAAAA,YAAYM,MAAM8C,eAAe,aAAjCpD,gBAAsC;YACrDqD,gBAAgBrD,CAAAA,gBAAAA,YAAYM,MAAMgD,gBAAgB,aAAlCtD,gBAAuC;QACzD;IACF;AACF,EAAE;AAEF;;CAEC,GACD,OAAO,MAAMuD,yBAA2D;IACtErD,MAAM;IAENC,KAAIC,QAAyB,EAAEoD,QAAqB;YACpCpD;QAAd,MAAME,QAAQF,CAAAA,uBAAAA,SAASG,UAAU,YAAnBH,uBAAuB,CAAC;QACtC,MAAMqD,UAAUxD,aAAaE,GAAG,CAACC,UAAUoD;YAI9B3D;QAFb,OAAO,aACF4D;YACHC,WAAW7D,CAAAA,eAAAA,YAAYS,MAAMqD,UAAU,aAA5B9D,eAAiC;;IAEhD;AACF,EAAE"}
@@ -0,0 +1,98 @@
1
+ import { parseString, parseDate, parseNumber, parseBoolean, parseStringArray } from './utils.js';
2
+ /**
3
+ * Mapper for App resources
4
+ */ export const appMapper = {
5
+ type: 'apps',
6
+ map (resource, _included) {
7
+ var _resource_attributes;
8
+ const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
9
+ var _parseString, _parseDate, _parseDate1, _attrs_name, _attrs_app_type, _parseString1, _parseNumber, _parseNumber1, _parseNumber2, _parseNumber3, _parseNumber4;
10
+ return {
11
+ id: resource.id,
12
+ uniqueId: (_parseString = parseString(attrs.unique_id)) != null ? _parseString : resource.id,
13
+ createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
14
+ updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date(),
15
+ name: String((_attrs_name = attrs.name) != null ? _attrs_name : ''),
16
+ description: parseString(attrs.description),
17
+ appType: String((_attrs_app_type = attrs.app_type) != null ? _attrs_app_type : 'web'),
18
+ status: (_parseString1 = parseString(attrs.status)) != null ? _parseString1 : 'active',
19
+ appIcon: parseString(attrs.app_icon),
20
+ oauthEnabled: parseBoolean(attrs.oauth_enabled),
21
+ oauthAccessTokenLifetimeHours: (_parseNumber = parseNumber(attrs.oauth_access_token_lifetime_hours)) != null ? _parseNumber : 24,
22
+ oauthRefreshTokenLifetimeDays: (_parseNumber1 = parseNumber(attrs.oauth_refresh_token_lifetime_days)) != null ? _parseNumber1 : 30,
23
+ oauthRefreshTokenRotation: parseBoolean(attrs.oauth_refresh_token_rotation),
24
+ oauthMaxRefreshTokensPerDevice: (_parseNumber2 = parseNumber(attrs.oauth_max_refresh_tokens_per_device)) != null ? _parseNumber2 : 5,
25
+ oauthDeviceManagement: parseBoolean(attrs.oauth_device_management),
26
+ rateLimitPerMinute: parseNumber(attrs.rate_limit_per_minute),
27
+ rateLimitPerHour: parseNumber(attrs.rate_limit_per_hour),
28
+ webhookUrl: parseString(attrs.webhook_url),
29
+ webhookSecret: parseString(attrs.webhook_secret),
30
+ allowedOrigins: parseStringArray(attrs.allowed_origins),
31
+ metadata: attrs.metadata,
32
+ payload: attrs.payload,
33
+ apiKeyCount: (_parseNumber3 = parseNumber(attrs.api_key_count)) != null ? _parseNumber3 : 0,
34
+ activeApiKeyCount: (_parseNumber4 = parseNumber(attrs.active_api_key_count)) != null ? _parseNumber4 : 0
35
+ };
36
+ }
37
+ };
38
+ /**
39
+ * Mapper for Block resources
40
+ */ export const blockMapper = {
41
+ type: 'blocks',
42
+ map (resource, _included) {
43
+ var _resource_attributes;
44
+ const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
45
+ var _parseString, _parseDate, _parseDate1, _attrs_company_unique_id, _attrs_block_unique_id, _attrs_block_code, _attrs_block_name, _parseString1;
46
+ return {
47
+ id: resource.id,
48
+ uniqueId: (_parseString = parseString(attrs.unique_id)) != null ? _parseString : resource.id,
49
+ createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
50
+ updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date(),
51
+ companyUniqueId: String((_attrs_company_unique_id = attrs.company_unique_id) != null ? _attrs_company_unique_id : ''),
52
+ blockUniqueId: String((_attrs_block_unique_id = attrs.block_unique_id) != null ? _attrs_block_unique_id : ''),
53
+ blockCode: String((_attrs_block_code = attrs.block_code) != null ? _attrs_block_code : ''),
54
+ blockName: String((_attrs_block_name = attrs.block_name) != null ? _attrs_block_name : ''),
55
+ addedAt: parseDate(attrs.added_at),
56
+ status: (_parseString1 = parseString(attrs.status)) != null ? _parseString1 : 'active',
57
+ subscriptionModel: parseString(attrs.subscription_model),
58
+ subscriptionPlan: parseString(attrs.subscription_plan),
59
+ subscriptionFee: parseNumber(attrs.subscription_fee),
60
+ subscriptionTaxes: parseNumber(attrs.subscription_taxes),
61
+ subscriptionTotal: parseNumber(attrs.subscription_total),
62
+ lastPaymentAt: parseDate(attrs.last_payment_at),
63
+ nextPaymentAt: parseDate(attrs.next_payment_at),
64
+ payload: attrs.payload
65
+ };
66
+ }
67
+ };
68
+ /**
69
+ * Mapper for Service resources
70
+ */ export const serviceMapper = {
71
+ type: 'services',
72
+ map (resource, _included) {
73
+ var _resource_attributes;
74
+ const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
75
+ var _parseString, _parseDate, _parseDate1, _attrs_name, _attrs_code, _parseString1;
76
+ return {
77
+ id: resource.id,
78
+ uniqueId: (_parseString = parseString(attrs.unique_id)) != null ? _parseString : resource.id,
79
+ createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
80
+ updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date(),
81
+ name: String((_attrs_name = attrs.name) != null ? _attrs_name : ''),
82
+ code: String((_attrs_code = attrs.code) != null ? _attrs_code : ''),
83
+ description: parseString(attrs.description),
84
+ homePageUrl: parseString(attrs.home_page_url),
85
+ healthCheckUrl: parseString(attrs.health_check_url),
86
+ statusPageUrl: parseString(attrs.status_page_url),
87
+ status: (_parseString1 = parseString(attrs.status)) != null ? _parseString1 : 'active',
88
+ registeredAt: parseDate(attrs.registered_at),
89
+ host: parseString(attrs.host),
90
+ port: parseNumber(attrs.port),
91
+ uri: parseString(attrs.uri),
92
+ groupName: parseString(attrs.group_name),
93
+ ipaddress: parseString(attrs.ipaddress)
94
+ };
95
+ }
96
+ };
97
+
98
+ //# sourceMappingURL=app.mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/mappers/app.mapper.ts"],"sourcesContent":["import type { ResourceMapper, IncludedMap, JsonApiResource } from '@23blocks/jsonapi-codec';\nimport type { EntityStatus } from '@23blocks/contracts';\nimport type { App, Block, Service } from '../types/index.js';\nimport {\n parseString,\n parseDate,\n parseNumber,\n parseBoolean,\n parseStringArray,\n} from './utils.js';\n\n/**\n * Mapper for App resources\n */\nexport const appMapper: ResourceMapper<App> = {\n type: 'apps',\n\n map(resource: JsonApiResource, _included: IncludedMap): App {\n const attrs = resource.attributes ?? {};\n\n return {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id) ?? resource.id,\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n name: String(attrs.name ?? ''),\n description: parseString(attrs.description),\n appType: String(attrs.app_type ?? 'web'),\n status: (parseString(attrs.status) ?? 'active') as EntityStatus,\n appIcon: parseString(attrs.app_icon),\n oauthEnabled: parseBoolean(attrs.oauth_enabled),\n oauthAccessTokenLifetimeHours: parseNumber(attrs.oauth_access_token_lifetime_hours) ?? 24,\n oauthRefreshTokenLifetimeDays: parseNumber(attrs.oauth_refresh_token_lifetime_days) ?? 30,\n oauthRefreshTokenRotation: parseBoolean(attrs.oauth_refresh_token_rotation),\n oauthMaxRefreshTokensPerDevice: parseNumber(attrs.oauth_max_refresh_tokens_per_device) ?? 5,\n oauthDeviceManagement: parseBoolean(attrs.oauth_device_management),\n rateLimitPerMinute: parseNumber(attrs.rate_limit_per_minute),\n rateLimitPerHour: parseNumber(attrs.rate_limit_per_hour),\n webhookUrl: parseString(attrs.webhook_url),\n webhookSecret: parseString(attrs.webhook_secret),\n allowedOrigins: parseStringArray(attrs.allowed_origins),\n metadata: attrs.metadata as Record<string, unknown> | null,\n payload: attrs.payload as Record<string, unknown> | null,\n apiKeyCount: parseNumber(attrs.api_key_count) ?? 0,\n activeApiKeyCount: parseNumber(attrs.active_api_key_count) ?? 0,\n };\n },\n};\n\n/**\n * Mapper for Block resources\n */\nexport const blockMapper: ResourceMapper<Block> = {\n type: 'blocks',\n\n map(resource: JsonApiResource, _included: IncludedMap): Block {\n const attrs = resource.attributes ?? {};\n\n return {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id) ?? resource.id,\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n companyUniqueId: String(attrs.company_unique_id ?? ''),\n blockUniqueId: String(attrs.block_unique_id ?? ''),\n blockCode: String(attrs.block_code ?? ''),\n blockName: String(attrs.block_name ?? ''),\n addedAt: parseDate(attrs.added_at),\n status: (parseString(attrs.status) ?? 'active') as EntityStatus,\n subscriptionModel: parseString(attrs.subscription_model),\n subscriptionPlan: parseString(attrs.subscription_plan),\n subscriptionFee: parseNumber(attrs.subscription_fee),\n subscriptionTaxes: parseNumber(attrs.subscription_taxes),\n subscriptionTotal: parseNumber(attrs.subscription_total),\n lastPaymentAt: parseDate(attrs.last_payment_at),\n nextPaymentAt: parseDate(attrs.next_payment_at),\n payload: attrs.payload as Record<string, unknown> | null,\n };\n },\n};\n\n/**\n * Mapper for Service resources\n */\nexport const serviceMapper: ResourceMapper<Service> = {\n type: 'services',\n\n map(resource: JsonApiResource, _included: IncludedMap): Service {\n const attrs = resource.attributes ?? {};\n\n return {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id) ?? resource.id,\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n name: String(attrs.name ?? ''),\n code: String(attrs.code ?? ''),\n description: parseString(attrs.description),\n homePageUrl: parseString(attrs.home_page_url),\n healthCheckUrl: parseString(attrs.health_check_url),\n statusPageUrl: parseString(attrs.status_page_url),\n status: (parseString(attrs.status) ?? 'active') as EntityStatus,\n registeredAt: parseDate(attrs.registered_at),\n host: parseString(attrs.host),\n port: parseNumber(attrs.port),\n uri: parseString(attrs.uri),\n groupName: parseString(attrs.group_name),\n ipaddress: parseString(attrs.ipaddress),\n };\n },\n};\n"],"names":["parseString","parseDate","parseNumber","parseBoolean","parseStringArray","appMapper","type","map","resource","_included","attrs","attributes","id","uniqueId","unique_id","createdAt","created_at","Date","updatedAt","updated_at","name","String","description","appType","app_type","status","appIcon","app_icon","oauthEnabled","oauth_enabled","oauthAccessTokenLifetimeHours","oauth_access_token_lifetime_hours","oauthRefreshTokenLifetimeDays","oauth_refresh_token_lifetime_days","oauthRefreshTokenRotation","oauth_refresh_token_rotation","oauthMaxRefreshTokensPerDevice","oauth_max_refresh_tokens_per_device","oauthDeviceManagement","oauth_device_management","rateLimitPerMinute","rate_limit_per_minute","rateLimitPerHour","rate_limit_per_hour","webhookUrl","webhook_url","webhookSecret","webhook_secret","allowedOrigins","allowed_origins","metadata","payload","apiKeyCount","api_key_count","activeApiKeyCount","active_api_key_count","blockMapper","companyUniqueId","company_unique_id","blockUniqueId","block_unique_id","blockCode","block_code","blockName","block_name","addedAt","added_at","subscriptionModel","subscription_model","subscriptionPlan","subscription_plan","subscriptionFee","subscription_fee","subscriptionTaxes","subscription_taxes","subscriptionTotal","subscription_total","lastPaymentAt","last_payment_at","nextPaymentAt","next_payment_at","serviceMapper","code","homePageUrl","home_page_url","healthCheckUrl","health_check_url","statusPageUrl","status_page_url","registeredAt","registered_at","host","port","uri","groupName","group_name","ipaddress"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -0,0 +1,128 @@
1
+ import { resolveRelationship, resolveRelationshipMany } from '@23blocks/jsonapi-codec';
2
+ import { parseDate, parseString, parseBoolean } from './utils.js';
3
+ /**
4
+ * Company detail mapper
5
+ */ export const companyDetailMapper = {
6
+ type: 'CompanyDetail',
7
+ map (resource, _included) {
8
+ var _resource_attributes;
9
+ const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
10
+ var _parseString, _parseString1, _parseDate, _parseDate1;
11
+ return {
12
+ id: resource.id,
13
+ uniqueId: (_parseString = parseString(attrs.unique_id)) != null ? _parseString : resource.id,
14
+ companyUniqueId: (_parseString1 = parseString(attrs.company_unique_id)) != null ? _parseString1 : '',
15
+ address: parseString(attrs.address),
16
+ city: parseString(attrs.city),
17
+ state: parseString(attrs.state),
18
+ zipcode: parseString(attrs.zipcode),
19
+ country: parseString(attrs.country),
20
+ phone: parseString(attrs.phone),
21
+ email: parseString(attrs.email),
22
+ website: parseString(attrs.website),
23
+ description: parseString(attrs.description),
24
+ logoUrl: parseString(attrs.logo_url),
25
+ payload: attrs.payload,
26
+ createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
27
+ updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date()
28
+ };
29
+ }
30
+ };
31
+ /**
32
+ * Company block mapper
33
+ */ export const companyBlockMapper = {
34
+ type: 'CompanyBlock',
35
+ map (resource, _included) {
36
+ var _resource_attributes;
37
+ const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
38
+ var _parseString, _parseString1, _parseString2, _parseString3, _attrs_status, _parseDate, _parseDate1;
39
+ return {
40
+ id: resource.id,
41
+ uniqueId: (_parseString = parseString(attrs.unique_id)) != null ? _parseString : resource.id,
42
+ companyUniqueId: (_parseString1 = parseString(attrs.company_unique_id)) != null ? _parseString1 : '',
43
+ blockId: (_parseString2 = parseString(attrs.block_id)) != null ? _parseString2 : '',
44
+ blockName: (_parseString3 = parseString(attrs.block_name)) != null ? _parseString3 : '',
45
+ status: (_attrs_status = attrs.status) != null ? _attrs_status : 'active',
46
+ payload: attrs.payload,
47
+ createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
48
+ updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date()
49
+ };
50
+ }
51
+ };
52
+ /**
53
+ * Company key mapper
54
+ */ export const companyKeyMapper = {
55
+ type: 'CompanyKey',
56
+ map (resource, _included) {
57
+ var _resource_attributes;
58
+ const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
59
+ var _parseString, _parseString1, _parseString2, _parseString3, _attrs_status, _parseDate, _parseDate1;
60
+ return {
61
+ id: resource.id,
62
+ uniqueId: (_parseString = parseString(attrs.unique_id)) != null ? _parseString : resource.id,
63
+ companyUniqueId: (_parseString1 = parseString(attrs.company_unique_id)) != null ? _parseString1 : '',
64
+ name: (_parseString2 = parseString(attrs.name)) != null ? _parseString2 : '',
65
+ keyId: (_parseString3 = parseString(attrs.key_id)) != null ? _parseString3 : '',
66
+ status: (_attrs_status = attrs.status) != null ? _attrs_status : 'active',
67
+ expiresAt: parseDate(attrs.expires_at),
68
+ lastUsedAt: parseDate(attrs.last_used_at),
69
+ createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
70
+ updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date()
71
+ };
72
+ }
73
+ };
74
+ /**
75
+ * Company mapper
76
+ */ export const companyMapper = {
77
+ type: 'Company',
78
+ map (resource, included) {
79
+ var _resource_attributes;
80
+ const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
81
+ var _parseString, _parseString1, _parseString2, _attrs_status, _parseDate, _parseDate1, _parseString3, _parseString4, _parseString5, _parseString6, _parseString7;
82
+ return {
83
+ id: resource.id,
84
+ uniqueId: (_parseString = parseString(attrs.unique_id)) != null ? _parseString : resource.id,
85
+ name: (_parseString1 = parseString(attrs.name)) != null ? _parseString1 : '',
86
+ code: (_parseString2 = parseString(attrs.code)) != null ? _parseString2 : '',
87
+ preferredLanguage: parseString(attrs.preferred_language),
88
+ preferredDomain: parseString(attrs.preferred_domain),
89
+ apiUrl: parseString(attrs.api_url),
90
+ apiAccessKey: parseString(attrs.api_access_key),
91
+ payload: attrs.payload,
92
+ status: (_attrs_status = attrs.status) != null ? _attrs_status : 'active',
93
+ publicStorageUrl: parseString(attrs.public_storage_url),
94
+ storageUrl: parseString(attrs.storage_url),
95
+ createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
96
+ updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date(),
97
+ // Conditional admin-only attributes
98
+ schemaName: (_parseString3 = parseString(attrs.schema_name)) != null ? _parseString3 : undefined,
99
+ urlId: (_parseString4 = parseString(attrs.url_id)) != null ? _parseString4 : undefined,
100
+ slackHook: (_parseString5 = parseString(attrs.slack_hook)) != null ? _parseString5 : undefined,
101
+ slackChannel: (_parseString6 = parseString(attrs.slack_channel)) != null ? _parseString6 : undefined,
102
+ slackUsername: (_parseString7 = parseString(attrs.slack_username)) != null ? _parseString7 : undefined,
103
+ openAccess: attrs.open_access != null ? parseBoolean(attrs.open_access) : undefined,
104
+ // Resolve relationships
105
+ companyDetail: resolveRelationship(resource, 'company_detail', included, companyDetailMapper),
106
+ companyBlocks: resolveRelationshipMany(resource, 'company_blocks', included, companyBlockMapper),
107
+ companyKeys: resolveRelationshipMany(resource, 'company_keys', included, companyKeyMapper)
108
+ };
109
+ }
110
+ };
111
+ /**
112
+ * Tenant mapper
113
+ */ export const tenantMapper = {
114
+ type: 'Tenant',
115
+ map (resource, _included) {
116
+ var _resource_attributes;
117
+ const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
118
+ var _parseString, _parseString1, _parseString2;
119
+ return {
120
+ gatewayUrl: (_parseString = parseString(attrs.gateway_url)) != null ? _parseString : '',
121
+ tenantAccessKey: (_parseString1 = parseString(attrs.tenant_access_key)) != null ? _parseString1 : '',
122
+ tenantUrlId: (_parseString2 = parseString(attrs.tenant_url_id)) != null ? _parseString2 : '',
123
+ payload: attrs.payload
124
+ };
125
+ }
126
+ };
127
+
128
+ //# sourceMappingURL=company.mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/mappers/company.mapper.ts"],"sourcesContent":["import type { ResourceMapper, IncludedMap, JsonApiResource } from '@23blocks/jsonapi-codec';\nimport { resolveRelationship, resolveRelationshipMany } from '@23blocks/jsonapi-codec';\nimport type { Company, CompanyDetail, CompanyBlock, CompanyKey, Tenant } from '../types/index.js';\nimport { parseDate, parseString, parseBoolean } from './utils.js';\n\n/**\n * Company detail mapper\n */\nexport const companyDetailMapper: ResourceMapper<CompanyDetail> = {\n type: 'CompanyDetail',\n\n map(resource: JsonApiResource, _included: IncludedMap): CompanyDetail {\n const attrs = resource.attributes ?? {};\n\n return {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id) ?? resource.id,\n companyUniqueId: parseString(attrs.company_unique_id) ?? '',\n address: parseString(attrs.address),\n city: parseString(attrs.city),\n state: parseString(attrs.state),\n zipcode: parseString(attrs.zipcode),\n country: parseString(attrs.country),\n phone: parseString(attrs.phone),\n email: parseString(attrs.email),\n website: parseString(attrs.website),\n description: parseString(attrs.description),\n logoUrl: parseString(attrs.logo_url),\n payload: attrs.payload as Record<string, unknown> | null,\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n };\n },\n};\n\n/**\n * Company block mapper\n */\nexport const companyBlockMapper: ResourceMapper<CompanyBlock> = {\n type: 'CompanyBlock',\n\n map(resource: JsonApiResource, _included: IncludedMap): CompanyBlock {\n const attrs = resource.attributes ?? {};\n\n return {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id) ?? resource.id,\n companyUniqueId: parseString(attrs.company_unique_id) ?? '',\n blockId: parseString(attrs.block_id) ?? '',\n blockName: parseString(attrs.block_name) ?? '',\n status: (attrs.status as CompanyBlock['status']) ?? 'active',\n payload: attrs.payload as Record<string, unknown> | null,\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n };\n },\n};\n\n/**\n * Company key mapper\n */\nexport const companyKeyMapper: ResourceMapper<CompanyKey> = {\n type: 'CompanyKey',\n\n map(resource: JsonApiResource, _included: IncludedMap): CompanyKey {\n const attrs = resource.attributes ?? {};\n\n return {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id) ?? resource.id,\n companyUniqueId: parseString(attrs.company_unique_id) ?? '',\n name: parseString(attrs.name) ?? '',\n keyId: parseString(attrs.key_id) ?? '',\n status: (attrs.status as CompanyKey['status']) ?? 'active',\n expiresAt: parseDate(attrs.expires_at),\n lastUsedAt: parseDate(attrs.last_used_at),\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n };\n },\n};\n\n/**\n * Company mapper\n */\nexport const companyMapper: ResourceMapper<Company> = {\n type: 'Company',\n\n map(resource: JsonApiResource, included: IncludedMap): Company {\n const attrs = resource.attributes ?? {};\n\n return {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id) ?? resource.id,\n name: parseString(attrs.name) ?? '',\n code: parseString(attrs.code) ?? '',\n preferredLanguage: parseString(attrs.preferred_language),\n preferredDomain: parseString(attrs.preferred_domain),\n apiUrl: parseString(attrs.api_url),\n apiAccessKey: parseString(attrs.api_access_key),\n payload: attrs.payload as Record<string, unknown> | null,\n status: (attrs.status as Company['status']) ?? 'active',\n publicStorageUrl: parseString(attrs.public_storage_url),\n storageUrl: parseString(attrs.storage_url),\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n\n // Conditional admin-only attributes\n schemaName: parseString(attrs.schema_name) ?? undefined,\n urlId: parseString(attrs.url_id) ?? undefined,\n slackHook: parseString(attrs.slack_hook) ?? undefined,\n slackChannel: parseString(attrs.slack_channel) ?? undefined,\n slackUsername: parseString(attrs.slack_username) ?? undefined,\n openAccess: attrs.open_access != null ? parseBoolean(attrs.open_access) : undefined,\n\n // Resolve relationships\n companyDetail: resolveRelationship(resource, 'company_detail', included, companyDetailMapper),\n companyBlocks: resolveRelationshipMany(resource, 'company_blocks', included, companyBlockMapper),\n companyKeys: resolveRelationshipMany(resource, 'company_keys', included, companyKeyMapper),\n };\n },\n};\n\n/**\n * Tenant mapper\n */\nexport const tenantMapper: ResourceMapper<Tenant> = {\n type: 'Tenant',\n\n map(resource: JsonApiResource, _included: IncludedMap): Tenant {\n const attrs = resource.attributes ?? {};\n\n return {\n gatewayUrl: parseString(attrs.gateway_url) ?? '',\n tenantAccessKey: parseString(attrs.tenant_access_key) ?? '',\n tenantUrlId: parseString(attrs.tenant_url_id) ?? '',\n payload: attrs.payload as Record<string, unknown> | null,\n };\n },\n};\n"],"names":["resolveRelationship","resolveRelationshipMany","parseDate","parseString","parseBoolean","companyDetailMapper","type","map","resource","_included","attrs","attributes","id","uniqueId","unique_id","companyUniqueId","company_unique_id","address","city","state","zipcode","country","phone","email","website","description","logoUrl","logo_url","payload","createdAt","created_at","Date","updatedAt","updated_at","companyBlockMapper","blockId","block_id","blockName","block_name","status","companyKeyMapper","name","keyId","key_id","expiresAt","expires_at","lastUsedAt","last_used_at","companyMapper","included","code","preferredLanguage","preferred_language","preferredDomain","preferred_domain","apiUrl","api_url","apiAccessKey","api_access_key","publicStorageUrl","public_storage_url","storageUrl","storage_url","schemaName","schema_name","undefined","urlId","url_id","slackHook","slack_hook","slackChannel","slack_channel","slackUsername","slack_username","openAccess","open_access","companyDetail","companyBlocks","companyKeys","tenantMapper","gatewayUrl","gateway_url","tenantAccessKey","tenant_access_key","tenantUrlId","tenant_url_id"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,SAASA,mBAAmB,EAAEC,uBAAuB,QAAQ,0BAA0B;AAEvF,SAASC,SAAS,EAAEC,WAAW,EAAEC,YAAY,QAAQ,aAAa;AAElE;;CAEC,GACD,OAAO,MAAMC,sBAAqD;IAChEC,MAAM;IAENC,KAAIC,QAAyB,EAAEC,SAAsB;YACrCD;QAAd,MAAME,QAAQF,CAAAA,uBAAAA,SAASG,UAAU,YAAnBH,uBAAuB,CAAC;YAI1BL,cACOA,eAYND,YACAA;QAhBb,OAAO;YACLU,IAAIJ,SAASI,EAAE;YACfC,UAAUV,CAAAA,eAAAA,YAAYO,MAAMI,SAAS,aAA3BX,eAAgCK,SAASI,EAAE;YACrDG,iBAAiBZ,CAAAA,gBAAAA,YAAYO,MAAMM,iBAAiB,aAAnCb,gBAAwC;YACzDc,SAASd,YAAYO,MAAMO,OAAO;YAClCC,MAAMf,YAAYO,MAAMQ,IAAI;YAC5BC,OAAOhB,YAAYO,MAAMS,KAAK;YAC9BC,SAASjB,YAAYO,MAAMU,OAAO;YAClCC,SAASlB,YAAYO,MAAMW,OAAO;YAClCC,OAAOnB,YAAYO,MAAMY,KAAK;YAC9BC,OAAOpB,YAAYO,MAAMa,KAAK;YAC9BC,SAASrB,YAAYO,MAAMc,OAAO;YAClCC,aAAatB,YAAYO,MAAMe,WAAW;YAC1CC,SAASvB,YAAYO,MAAMiB,QAAQ;YACnCC,SAASlB,MAAMkB,OAAO;YACtBC,WAAW3B,CAAAA,aAAAA,UAAUQ,MAAMoB,UAAU,aAA1B5B,aAA+B,IAAI6B;YAC9CC,WAAW9B,CAAAA,cAAAA,UAAUQ,MAAMuB,UAAU,aAA1B/B,cAA+B,IAAI6B;QAChD;IACF;AACF,EAAE;AAEF;;CAEC,GACD,OAAO,MAAMG,qBAAmD;IAC9D5B,MAAM;IAENC,KAAIC,QAAyB,EAAEC,SAAsB;YACrCD;QAAd,MAAME,QAAQF,CAAAA,uBAAAA,SAASG,UAAU,YAAnBH,uBAAuB,CAAC;YAI1BL,cACOA,eACRA,eACEA,eACFO,eAEER,YACAA;QATb,OAAO;YACLU,IAAIJ,SAASI,EAAE;YACfC,UAAUV,CAAAA,eAAAA,YAAYO,MAAMI,SAAS,aAA3BX,eAAgCK,SAASI,EAAE;YACrDG,iBAAiBZ,CAAAA,gBAAAA,YAAYO,MAAMM,iBAAiB,aAAnCb,gBAAwC;YACzDgC,SAAShC,CAAAA,gBAAAA,YAAYO,MAAM0B,QAAQ,aAA1BjC,gBAA+B;YACxCkC,WAAWlC,CAAAA,gBAAAA,YAAYO,MAAM4B,UAAU,aAA5BnC,gBAAiC;YAC5CoC,QAAQ,CAAC7B,gBAAAA,MAAM6B,MAAM,YAAZ7B,gBAA2C;YACpDkB,SAASlB,MAAMkB,OAAO;YACtBC,WAAW3B,CAAAA,aAAAA,UAAUQ,MAAMoB,UAAU,aAA1B5B,aAA+B,IAAI6B;YAC9CC,WAAW9B,CAAAA,cAAAA,UAAUQ,MAAMuB,UAAU,aAA1B/B,cAA+B,IAAI6B;QAChD;IACF;AACF,EAAE;AAEF;;CAEC,GACD,OAAO,MAAMS,mBAA+C;IAC1DlC,MAAM;IAENC,KAAIC,QAAyB,EAAEC,SAAsB;YACrCD;QAAd,MAAME,QAAQF,CAAAA,uBAAAA,SAASG,UAAU,YAAnBH,uBAAuB,CAAC;YAI1BL,cACOA,eACXA,eACCA,eACEO,eAGER,YACAA;QAVb,OAAO;YACLU,IAAIJ,SAASI,EAAE;YACfC,UAAUV,CAAAA,eAAAA,YAAYO,MAAMI,SAAS,aAA3BX,eAAgCK,SAASI,EAAE;YACrDG,iBAAiBZ,CAAAA,gBAAAA,YAAYO,MAAMM,iBAAiB,aAAnCb,gBAAwC;YACzDsC,MAAMtC,CAAAA,gBAAAA,YAAYO,MAAM+B,IAAI,aAAtBtC,gBAA2B;YACjCuC,OAAOvC,CAAAA,gBAAAA,YAAYO,MAAMiC,MAAM,aAAxBxC,gBAA6B;YACpCoC,QAAQ,CAAC7B,gBAAAA,MAAM6B,MAAM,YAAZ7B,gBAAyC;YAClDkC,WAAW1C,UAAUQ,MAAMmC,UAAU;YACrCC,YAAY5C,UAAUQ,MAAMqC,YAAY;YACxClB,WAAW3B,CAAAA,aAAAA,UAAUQ,MAAMoB,UAAU,aAA1B5B,aAA+B,IAAI6B;YAC9CC,WAAW9B,CAAAA,cAAAA,UAAUQ,MAAMuB,UAAU,aAA1B/B,cAA+B,IAAI6B;QAChD;IACF;AACF,EAAE;AAEF;;CAEC,GACD,OAAO,MAAMiB,gBAAyC;IACpD1C,MAAM;IAENC,KAAIC,QAAyB,EAAEyC,QAAqB;YACpCzC;QAAd,MAAME,QAAQF,CAAAA,uBAAAA,SAASG,UAAU,YAAnBH,uBAAuB,CAAC;YAI1BL,cACJA,eACAA,eAMGO,eAGER,YACAA,aAGCC,eACLA,eACIA,eACGA,eACCA;QArBjB,OAAO;YACLS,IAAIJ,SAASI,EAAE;YACfC,UAAUV,CAAAA,eAAAA,YAAYO,MAAMI,SAAS,aAA3BX,eAAgCK,SAASI,EAAE;YACrD6B,MAAMtC,CAAAA,gBAAAA,YAAYO,MAAM+B,IAAI,aAAtBtC,gBAA2B;YACjC+C,MAAM/C,CAAAA,gBAAAA,YAAYO,MAAMwC,IAAI,aAAtB/C,gBAA2B;YACjCgD,mBAAmBhD,YAAYO,MAAM0C,kBAAkB;YACvDC,iBAAiBlD,YAAYO,MAAM4C,gBAAgB;YACnDC,QAAQpD,YAAYO,MAAM8C,OAAO;YACjCC,cAActD,YAAYO,MAAMgD,cAAc;YAC9C9B,SAASlB,MAAMkB,OAAO;YACtBW,QAAQ,CAAC7B,gBAAAA,MAAM6B,MAAM,YAAZ7B,gBAAsC;YAC/CiD,kBAAkBxD,YAAYO,MAAMkD,kBAAkB;YACtDC,YAAY1D,YAAYO,MAAMoD,WAAW;YACzCjC,WAAW3B,CAAAA,aAAAA,UAAUQ,MAAMoB,UAAU,aAA1B5B,aAA+B,IAAI6B;YAC9CC,WAAW9B,CAAAA,cAAAA,UAAUQ,MAAMuB,UAAU,aAA1B/B,cAA+B,IAAI6B;YAE9C,oCAAoC;YACpCgC,YAAY5D,CAAAA,gBAAAA,YAAYO,MAAMsD,WAAW,aAA7B7D,gBAAkC8D;YAC9CC,OAAO/D,CAAAA,gBAAAA,YAAYO,MAAMyD,MAAM,aAAxBhE,gBAA6B8D;YACpCG,WAAWjE,CAAAA,gBAAAA,YAAYO,MAAM2D,UAAU,aAA5BlE,gBAAiC8D;YAC5CK,cAAcnE,CAAAA,gBAAAA,YAAYO,MAAM6D,aAAa,aAA/BpE,gBAAoC8D;YAClDO,eAAerE,CAAAA,gBAAAA,YAAYO,MAAM+D,cAAc,aAAhCtE,gBAAqC8D;YACpDS,YAAYhE,MAAMiE,WAAW,IAAI,OAAOvE,aAAaM,MAAMiE,WAAW,IAAIV;YAE1E,wBAAwB;YACxBW,eAAe5E,oBAAoBQ,UAAU,kBAAkByC,UAAU5C;YACzEwE,eAAe5E,wBAAwBO,UAAU,kBAAkByC,UAAUf;YAC7E4C,aAAa7E,wBAAwBO,UAAU,gBAAgByC,UAAUT;QAC3E;IACF;AACF,EAAE;AAEF;;CAEC,GACD,OAAO,MAAMuC,eAAuC;IAClDzE,MAAM;IAENC,KAAIC,QAAyB,EAAEC,SAAsB;YACrCD;QAAd,MAAME,QAAQF,CAAAA,uBAAAA,SAASG,UAAU,YAAnBH,uBAAuB,CAAC;YAGxBL,cACKA,eACJA;QAHf,OAAO;YACL6E,YAAY7E,CAAAA,eAAAA,YAAYO,MAAMuE,WAAW,aAA7B9E,eAAkC;YAC9C+E,iBAAiB/E,CAAAA,gBAAAA,YAAYO,MAAMyE,iBAAiB,aAAnChF,gBAAwC;YACzDiF,aAAajF,CAAAA,gBAAAA,YAAYO,MAAM2E,aAAa,aAA/BlF,gBAAoC;YACjDyB,SAASlB,MAAMkB,OAAO;QACxB;IACF;AACF,EAAE"}
@@ -0,0 +1,129 @@
1
+ import { parseString, parseDate } from './utils.js';
2
+ /**
3
+ * Mapper for Country resources
4
+ */ export const countryMapper = {
5
+ type: 'countries',
6
+ map (resource, _included) {
7
+ var _resource_attributes;
8
+ const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
9
+ var _parseString, _parseDate, _parseDate1, _attrs_country_unique_id, _attrs_name, _parseString1;
10
+ return {
11
+ id: resource.id,
12
+ uniqueId: (_parseString = parseString(attrs.unique_id)) != null ? _parseString : resource.id,
13
+ createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
14
+ updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date(),
15
+ countryUniqueId: String((_attrs_country_unique_id = attrs.country_unique_id) != null ? _attrs_country_unique_id : resource.id),
16
+ name: String((_attrs_name = attrs.name) != null ? _attrs_name : ''),
17
+ areaCode: parseString(attrs.area_code),
18
+ isoCode: parseString(attrs.iso_code),
19
+ capital: parseString(attrs.capital),
20
+ continent: parseString(attrs.continent),
21
+ tld: parseString(attrs.tld),
22
+ currencyCode: parseString(attrs.currency_code),
23
+ currencyName: parseString(attrs.currency_name),
24
+ postalCodeFormat: parseString(attrs.postal_code_format),
25
+ postalCodeRegex: parseString(attrs.postal_code_regex),
26
+ status: (_parseString1 = parseString(attrs.status)) != null ? _parseString1 : 'active',
27
+ language: parseString(attrs.language),
28
+ payload: attrs.payload
29
+ };
30
+ }
31
+ };
32
+ /**
33
+ * Mapper for State resources
34
+ */ export const stateMapper = {
35
+ type: 'states',
36
+ map (resource, _included) {
37
+ var _resource_attributes;
38
+ const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
39
+ var _parseString, _parseDate, _parseDate1, _attrs_state_unique_id, _attrs_name, _parseString1;
40
+ return {
41
+ id: resource.id,
42
+ uniqueId: (_parseString = parseString(attrs.unique_id)) != null ? _parseString : resource.id,
43
+ createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
44
+ updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date(),
45
+ stateUniqueId: String((_attrs_state_unique_id = attrs.state_unique_id) != null ? _attrs_state_unique_id : resource.id),
46
+ name: String((_attrs_name = attrs.name) != null ? _attrs_name : ''),
47
+ abbreviation: parseString(attrs.abbreviation),
48
+ status: (_parseString1 = parseString(attrs.status)) != null ? _parseString1 : 'active',
49
+ language: parseString(attrs.language),
50
+ countryName: parseString(attrs.country_name),
51
+ countryId: parseString(attrs.country_id),
52
+ payload: attrs.payload
53
+ };
54
+ }
55
+ };
56
+ /**
57
+ * Mapper for County resources
58
+ */ export const countyMapper = {
59
+ type: 'counties',
60
+ map (resource, _included) {
61
+ var _resource_attributes;
62
+ const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
63
+ var _parseString, _parseDate, _parseDate1, _attrs_county_unique_id, _attrs_name, _parseString1;
64
+ return {
65
+ id: resource.id,
66
+ uniqueId: (_parseString = parseString(attrs.unique_id)) != null ? _parseString : resource.id,
67
+ createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
68
+ updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date(),
69
+ countyUniqueId: String((_attrs_county_unique_id = attrs.county_unique_id) != null ? _attrs_county_unique_id : resource.id),
70
+ name: String((_attrs_name = attrs.name) != null ? _attrs_name : ''),
71
+ status: (_parseString1 = parseString(attrs.status)) != null ? _parseString1 : 'active',
72
+ stateName: parseString(attrs.state_name),
73
+ stateId: parseString(attrs.state_id),
74
+ language: parseString(attrs.language),
75
+ payload: attrs.payload
76
+ };
77
+ }
78
+ };
79
+ /**
80
+ * Mapper for City resources
81
+ */ export const cityMapper = {
82
+ type: 'cities',
83
+ map (resource, _included) {
84
+ var _resource_attributes;
85
+ const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
86
+ var _parseString, _parseDate, _parseDate1, _attrs_name, _parseString1;
87
+ return {
88
+ id: resource.id,
89
+ uniqueId: (_parseString = parseString(attrs.unique_id)) != null ? _parseString : resource.id,
90
+ createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
91
+ updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date(),
92
+ name: String((_attrs_name = attrs.name) != null ? _attrs_name : ''),
93
+ stateName: parseString(attrs.state_name),
94
+ stateId: parseString(attrs.state_id),
95
+ countryName: parseString(attrs.country_name),
96
+ countryId: parseString(attrs.country_id),
97
+ countyName: parseString(attrs.county_name),
98
+ countyId: parseString(attrs.county_id),
99
+ status: (_parseString1 = parseString(attrs.status)) != null ? _parseString1 : 'active',
100
+ language: parseString(attrs.language),
101
+ payload: attrs.payload
102
+ };
103
+ }
104
+ };
105
+ /**
106
+ * Mapper for Currency resources
107
+ */ export const currencyMapper = {
108
+ type: 'currencies',
109
+ map (resource, _included) {
110
+ var _resource_attributes;
111
+ const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
112
+ var _parseString, _parseDate, _parseDate1, _attrs_currency_unique_id, _attrs_code, _attrs_name, _parseString1;
113
+ return {
114
+ id: resource.id,
115
+ uniqueId: (_parseString = parseString(attrs.unique_id)) != null ? _parseString : resource.id,
116
+ createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
117
+ updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date(),
118
+ currencyUniqueId: String((_attrs_currency_unique_id = attrs.currency_unique_id) != null ? _attrs_currency_unique_id : resource.id),
119
+ code: String((_attrs_code = attrs.code) != null ? _attrs_code : ''),
120
+ name: String((_attrs_name = attrs.name) != null ? _attrs_name : ''),
121
+ symbol: parseString(attrs.symbol),
122
+ status: (_parseString1 = parseString(attrs.status)) != null ? _parseString1 : 'active',
123
+ language: parseString(attrs.language),
124
+ payload: attrs.payload
125
+ };
126
+ }
127
+ };
128
+
129
+ //# sourceMappingURL=geography.mapper.js.map