@nlabs/metropolisjs 0.1.1 → 0.2.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/.github/copilot-instructions.md +167 -0
- package/AGENTS.md +13 -0
- package/CHANGELOG.md +112 -0
- package/GRAPHQL_VALIDATION_RESULTS.md +158 -0
- package/PERMISSION_GRAPHQL_INTEGRATION.md +293 -0
- package/PERMISSION_IMPLEMENTATION_SUMMARY.md +243 -0
- package/README.md +1343 -0
- package/SIGNIN_GRAPHQL_VALIDATION.md +125 -0
- package/VAULT_GRAPHQL_API_FINDINGS.md +312 -0
- package/docs/ACTIONS.md +63 -0
- package/docs/COLLECTIONS.md +1038 -0
- package/docs/CONNECTIONS.md +1367 -0
- package/docs/CRUD_INTEGRATION.md +702 -0
- package/examples/connections-usage.tsx +909 -0
- package/examples/content-actions-usage.ts +144 -0
- package/examples/crud-usage.tsx +847 -0
- package/examples/extensibility-usage.tsx +889 -0
- package/examples/factory-pattern-usage.ts +283 -0
- package/examples/i18n-import-examples.ts +86 -0
- package/examples/i18n-namespace-usage.ts +118 -0
- package/examples/i18next-singleton-demo.ts +187 -0
- package/examples/permission-system-usage.tsx +415 -0
- package/examples/project-details.tsx +397 -0
- package/examples/shared-i18n-usage.tsx +203 -0
- package/examples/signup-error-handling.ts +100 -0
- package/examples/translation-types.ts +86 -0
- package/examples/translation-usage.tsx +336 -0
- package/factoryPatternGuide.md +244 -0
- package/index.js +1 -0
- package/jest.config.mjs +28 -0
- package/lex.config.mjs +26 -0
- package/lib/__tests__/e2e/helpers/testGraphQLServer.d.ts +22 -0
- package/lib/__tests__/e2e/helpers/testGraphQLServer.d.ts.map +1 -0
- package/lib/__tests__/e2e/helpers/testGraphQLServer.js +197 -0
- package/lib/__tests__/e2e/helpers/testGraphQLServerSimple.d.ts +3 -0
- package/lib/__tests__/e2e/helpers/testGraphQLServerSimple.d.ts.map +1 -0
- package/lib/__tests__/e2e/helpers/testGraphQLServerSimple.js +52 -0
- package/lib/actions/appActions/appActions.d.ts +29 -0
- package/lib/actions/appActions/appActions.d.ts.map +1 -0
- package/lib/actions/appActions/appActions.js +159 -0
- package/lib/actions/connectionActions/connectionActions.d.ts +19 -0
- package/lib/actions/connectionActions/connectionActions.d.ts.map +1 -0
- package/lib/actions/connectionActions/connectionActions.js +131 -0
- package/lib/actions/contentActions/contentActions.d.ts +34 -0
- package/lib/actions/contentActions/contentActions.d.ts.map +1 -0
- package/lib/actions/contentActions/contentActions.js +314 -0
- package/lib/actions/conversationActions/conversationActions.d.ts +30 -0
- package/lib/actions/conversationActions/conversationActions.d.ts.map +1 -0
- package/lib/actions/conversationActions/conversationActions.js +225 -0
- package/lib/actions/eventActions/eventActions.d.ts +65 -0
- package/lib/actions/eventActions/eventActions.d.ts.map +1 -0
- package/lib/actions/eventActions/eventActions.js +436 -0
- package/lib/actions/groupActions/groupActions.d.ts +30 -0
- package/lib/actions/groupActions/groupActions.d.ts.map +1 -0
- package/lib/actions/groupActions/groupActions.js +229 -0
- package/lib/actions/imageActions/imageActions.d.ts +62 -0
- package/lib/actions/imageActions/imageActions.d.ts.map +1 -0
- package/lib/actions/imageActions/imageActions.js +593 -0
- package/lib/actions/index.d.ts +21 -0
- package/lib/actions/index.d.ts.map +1 -0
- package/lib/actions/index.js +22 -0
- package/lib/actions/locationActions/locationActions.d.ts +60 -0
- package/lib/actions/locationActions/locationActions.d.ts.map +1 -0
- package/lib/actions/locationActions/locationActions.js +388 -0
- package/lib/actions/messageActions/messageActions.d.ts +38 -0
- package/lib/actions/messageActions/messageActions.d.ts.map +1 -0
- package/lib/actions/messageActions/messageActions.js +235 -0
- package/lib/actions/permissionActions/permissionActions.d.ts +34 -0
- package/lib/actions/permissionActions/permissionActions.d.ts.map +1 -0
- package/lib/actions/permissionActions/permissionActions.js +330 -0
- package/lib/actions/personaActions/personaActions.d.ts +65 -0
- package/lib/actions/personaActions/personaActions.d.ts.map +1 -0
- package/lib/actions/personaActions/personaActions.js +572 -0
- package/lib/actions/postActions/postActions.d.ts +36 -0
- package/lib/actions/postActions/postActions.d.ts.map +1 -0
- package/lib/actions/postActions/postActions.js +447 -0
- package/lib/actions/reactionActions/reactionActions.d.ts +38 -0
- package/lib/actions/reactionActions/reactionActions.d.ts.map +1 -0
- package/lib/actions/reactionActions/reactionActions.js +413 -0
- package/lib/actions/sseActions/sseActions.d.ts +38 -0
- package/lib/actions/sseActions/sseActions.d.ts.map +1 -0
- package/lib/actions/sseActions/sseActions.js +148 -0
- package/lib/actions/subscriptionActions/subscriptionActions.d.ts +24 -0
- package/lib/actions/subscriptionActions/subscriptionActions.d.ts.map +1 -0
- package/lib/actions/subscriptionActions/subscriptionActions.js +329 -0
- package/lib/actions/tagActions/tagActions.d.ts +37 -0
- package/lib/actions/tagActions/tagActions.d.ts.map +1 -0
- package/lib/actions/tagActions/tagActions.js +347 -0
- package/lib/actions/translationActions/translationActions.d.ts +38 -0
- package/lib/actions/translationActions/translationActions.d.ts.map +1 -0
- package/lib/actions/translationActions/translationActions.js +189 -0
- package/lib/actions/userActions/userActions.d.ts +78 -0
- package/lib/actions/userActions/userActions.d.ts.map +1 -0
- package/lib/actions/userActions/userActions.js +844 -0
- package/lib/actions/videoActions/videoActions.d.ts +41 -0
- package/lib/actions/videoActions/videoActions.d.ts.map +1 -0
- package/lib/actions/videoActions/videoActions.js +532 -0
- package/lib/actions/websocketActions/websocketActions.d.ts +30 -0
- package/lib/actions/websocketActions/websocketActions.d.ts.map +1 -0
- package/lib/actions/websocketActions/websocketActions.js +377 -0
- package/lib/adapters/appAdapter/appAdapter.d.ts +8 -0
- package/lib/adapters/appAdapter/appAdapter.d.ts.map +1 -0
- package/lib/adapters/appAdapter/appAdapter.js +90 -0
- package/lib/adapters/arangoAdapter/arangoAdapter.d.ts +21 -0
- package/lib/adapters/arangoAdapter/arangoAdapter.d.ts.map +1 -0
- package/lib/adapters/arangoAdapter/arangoAdapter.js +75 -0
- package/lib/adapters/contentAdapter/contentAdapter.d.ts +32 -0
- package/lib/adapters/contentAdapter/contentAdapter.d.ts.map +1 -0
- package/lib/adapters/contentAdapter/contentAdapter.js +107 -0
- package/lib/adapters/conversationAdapter/conversationAdapter.d.ts +24 -0
- package/lib/adapters/conversationAdapter/conversationAdapter.d.ts.map +1 -0
- package/lib/adapters/conversationAdapter/conversationAdapter.js +75 -0
- package/lib/adapters/eventAdapter/eventAdapter.d.ts +46 -0
- package/lib/adapters/eventAdapter/eventAdapter.d.ts.map +1 -0
- package/lib/adapters/eventAdapter/eventAdapter.js +162 -0
- package/lib/adapters/fileAdapter/fileAdapter.d.ts +30 -0
- package/lib/adapters/fileAdapter/fileAdapter.d.ts.map +1 -0
- package/lib/adapters/fileAdapter/fileAdapter.js +118 -0
- package/lib/adapters/groupAdapter/groupAdapter.d.ts +28 -0
- package/lib/adapters/groupAdapter/groupAdapter.d.ts.map +1 -0
- package/lib/adapters/groupAdapter/groupAdapter.js +66 -0
- package/lib/adapters/imageAdapter/imageAdapter.d.ts +38 -0
- package/lib/adapters/imageAdapter/imageAdapter.d.ts.map +1 -0
- package/lib/adapters/imageAdapter/imageAdapter.js +134 -0
- package/lib/adapters/index.d.ts +34 -0
- package/lib/adapters/index.d.ts.map +1 -0
- package/lib/adapters/index.js +19 -0
- package/lib/adapters/locationAdapter/locationAdapter.d.ts +28 -0
- package/lib/adapters/locationAdapter/locationAdapter.d.ts.map +1 -0
- package/lib/adapters/locationAdapter/locationAdapter.js +95 -0
- package/lib/adapters/messageAdapter/messageAdapter.d.ts +31 -0
- package/lib/adapters/messageAdapter/messageAdapter.d.ts.map +1 -0
- package/lib/adapters/messageAdapter/messageAdapter.js +82 -0
- package/lib/adapters/permissionAdapter/permissionAdapter.d.ts +41 -0
- package/lib/adapters/permissionAdapter/permissionAdapter.d.ts.map +1 -0
- package/lib/adapters/permissionAdapter/permissionAdapter.js +120 -0
- package/lib/adapters/personaAdapter/personaAdapter.d.ts +44 -0
- package/lib/adapters/personaAdapter/personaAdapter.d.ts.map +1 -0
- package/lib/adapters/personaAdapter/personaAdapter.js +161 -0
- package/lib/adapters/postAdapter/postAdapter.d.ts +33 -0
- package/lib/adapters/postAdapter/postAdapter.d.ts.map +1 -0
- package/lib/adapters/postAdapter/postAdapter.js +115 -0
- package/lib/adapters/reactionAdapter/reactionAdapter.d.ts +23 -0
- package/lib/adapters/reactionAdapter/reactionAdapter.d.ts.map +1 -0
- package/lib/adapters/reactionAdapter/reactionAdapter.js +81 -0
- package/lib/adapters/reaktorAdapter/reaktorAdapter.d.ts +17 -0
- package/lib/adapters/reaktorAdapter/reaktorAdapter.d.ts.map +1 -0
- package/lib/adapters/reaktorAdapter/reaktorAdapter.js +58 -0
- package/lib/adapters/sessionAdapter/sessionAdapter.d.ts +24 -0
- package/lib/adapters/sessionAdapter/sessionAdapter.d.ts.map +1 -0
- package/lib/adapters/sessionAdapter/sessionAdapter.js +80 -0
- package/lib/adapters/tagAdapter/tagAdapter.d.ts +21 -0
- package/lib/adapters/tagAdapter/tagAdapter.d.ts.map +1 -0
- package/lib/adapters/tagAdapter/tagAdapter.js +98 -0
- package/lib/adapters/translationAdapter/translationAdapter.d.ts +21 -0
- package/lib/adapters/translationAdapter/translationAdapter.d.ts.map +1 -0
- package/lib/adapters/translationAdapter/translationAdapter.js +55 -0
- package/lib/adapters/userAdapter/userAdapter.d.ts +67 -0
- package/lib/adapters/userAdapter/userAdapter.d.ts.map +1 -0
- package/lib/adapters/userAdapter/userAdapter.js +302 -0
- package/lib/adapters/videoAdapter/videoAdapter.d.ts +8 -0
- package/lib/adapters/videoAdapter/videoAdapter.d.ts.map +1 -0
- package/lib/adapters/videoAdapter/videoAdapter.js +194 -0
- package/lib/config/index.d.ts +44 -0
- package/lib/config/index.d.ts.map +1 -0
- package/lib/config/index.js +97 -0
- package/lib/constants/Collections.d.ts +44 -0
- package/lib/constants/Collections.d.ts.map +1 -0
- package/lib/constants/Collections.js +40 -0
- package/lib/constants/MetropolisConstants.d.ts +15 -0
- package/lib/constants/MetropolisConstants.d.ts.map +1 -0
- package/lib/constants/MetropolisConstants.js +15 -0
- package/lib/graphql/message.d.ts +3 -0
- package/lib/graphql/message.d.ts.map +1 -0
- package/lib/graphql/message.js +20 -0
- package/lib/graphql/notification.d.ts +3 -0
- package/lib/graphql/notification.d.ts.map +1 -0
- package/lib/graphql/notification.js +20 -0
- package/lib/graphql/session.d.ts +2 -0
- package/lib/graphql/session.d.ts.map +1 -0
- package/lib/graphql/session.js +17 -0
- package/lib/index.d.ts +52 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +248 -0
- package/lib/stores/appStore.d.ts +23 -0
- package/lib/stores/appStore.d.ts.map +1 -0
- package/lib/stores/appStore.js +23 -0
- package/lib/stores/contentStore.d.ts +36 -0
- package/lib/stores/contentStore.d.ts.map +1 -0
- package/lib/stores/contentStore.js +139 -0
- package/lib/stores/conversationStore.d.ts +38 -0
- package/lib/stores/conversationStore.d.ts.map +1 -0
- package/lib/stores/conversationStore.js +117 -0
- package/lib/stores/eventStore.d.ts +37 -0
- package/lib/stores/eventStore.d.ts.map +1 -0
- package/lib/stores/eventStore.js +47 -0
- package/lib/stores/groupStore.d.ts +37 -0
- package/lib/stores/groupStore.d.ts.map +1 -0
- package/lib/stores/groupStore.js +68 -0
- package/lib/stores/imageStore.d.ts +40 -0
- package/lib/stores/imageStore.d.ts.map +1 -0
- package/lib/stores/imageStore.js +53 -0
- package/lib/stores/index.d.ts +24 -0
- package/lib/stores/index.d.ts.map +1 -0
- package/lib/stores/index.js +24 -0
- package/lib/stores/locationStore.d.ts +34 -0
- package/lib/stores/locationStore.d.ts.map +1 -0
- package/lib/stores/locationStore.js +42 -0
- package/lib/stores/messageStore.d.ts +51 -0
- package/lib/stores/messageStore.d.ts.map +1 -0
- package/lib/stores/messageStore.js +137 -0
- package/lib/stores/notificationStore.d.ts +33 -0
- package/lib/stores/notificationStore.d.ts.map +1 -0
- package/lib/stores/notificationStore.js +55 -0
- package/lib/stores/permissionStore.d.ts +37 -0
- package/lib/stores/permissionStore.d.ts.map +1 -0
- package/lib/stores/permissionStore.js +117 -0
- package/lib/stores/personaStore.d.ts +26 -0
- package/lib/stores/personaStore.d.ts.map +1 -0
- package/lib/stores/personaStore.js +118 -0
- package/lib/stores/postStore.d.ts +34 -0
- package/lib/stores/postStore.d.ts.map +1 -0
- package/lib/stores/postStore.js +53 -0
- package/lib/stores/reactionStore.d.ts +25 -0
- package/lib/stores/reactionStore.d.ts.map +1 -0
- package/lib/stores/reactionStore.js +28 -0
- package/lib/stores/subscriptionStore.d.ts +41 -0
- package/lib/stores/subscriptionStore.d.ts.map +1 -0
- package/lib/stores/subscriptionStore.js +85 -0
- package/lib/stores/tagStore.d.ts +34 -0
- package/lib/stores/tagStore.d.ts.map +1 -0
- package/lib/stores/tagStore.js +87 -0
- package/lib/stores/translationStore.d.ts +42 -0
- package/lib/stores/translationStore.d.ts.map +1 -0
- package/lib/stores/translationStore.js +122 -0
- package/lib/stores/userStore.d.ts +74 -0
- package/lib/stores/userStore.d.ts.map +1 -0
- package/lib/stores/userStore.js +319 -0
- package/lib/stores/videoStore.d.ts +39 -0
- package/lib/stores/videoStore.d.ts.map +1 -0
- package/lib/stores/videoStore.js +132 -0
- package/lib/stores/websocketStore.d.ts +24 -0
- package/lib/stores/websocketStore.d.ts.map +1 -0
- package/lib/stores/websocketStore.js +51 -0
- package/lib/types/apps.types.d.ts +17 -0
- package/lib/types/apps.types.d.ts.map +1 -0
- package/lib/types/apps.types.js +6 -0
- package/lib/types/common.types.d.ts +31 -0
- package/lib/types/common.types.d.ts.map +1 -0
- package/lib/types/common.types.js +6 -0
- package/lib/types/conversations.types.d.ts +17 -0
- package/lib/types/conversations.types.d.ts.map +1 -0
- package/lib/types/conversations.types.js +6 -0
- package/lib/types/edges.types.d.ts +38 -0
- package/lib/types/edges.types.d.ts.map +1 -0
- package/lib/types/edges.types.js +6 -0
- package/lib/types/groups.types.d.ts +19 -0
- package/lib/types/groups.types.d.ts.map +1 -0
- package/lib/types/groups.types.js +6 -0
- package/lib/types/index.d.ts +12 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/index.js +12 -0
- package/lib/types/subscriptions.types.d.ts +32 -0
- package/lib/types/subscriptions.types.d.ts.map +1 -0
- package/lib/types/subscriptions.types.js +6 -0
- package/lib/types/videos.types.d.ts +61 -0
- package/lib/types/videos.types.d.ts.map +1 -0
- package/lib/types/videos.types.js +6 -0
- package/lib/utils/MetropolisProvider.d.ts +58 -0
- package/lib/utils/MetropolisProvider.d.ts.map +1 -0
- package/lib/utils/MetropolisProvider.js +31 -0
- package/lib/utils/actionFactory.d.ts +24 -0
- package/lib/utils/actionFactory.d.ts.map +1 -0
- package/lib/utils/actionFactory.js +95 -0
- package/lib/utils/api.d.ts +44 -0
- package/lib/utils/api.d.ts.map +1 -0
- package/lib/utils/api.js +253 -0
- package/lib/utils/app.d.ts +7 -0
- package/lib/utils/app.d.ts.map +1 -0
- package/lib/utils/app.js +15 -0
- package/lib/utils/baseActionFactory.d.ts +16 -0
- package/lib/utils/baseActionFactory.d.ts.map +1 -0
- package/lib/utils/baseActionFactory.js +72 -0
- package/lib/utils/configUtils.d.ts +11 -0
- package/lib/utils/configUtils.d.ts.map +1 -0
- package/lib/utils/configUtils.js +20 -0
- package/lib/utils/dateUtils.d.ts +3 -0
- package/lib/utils/dateUtils.d.ts.map +1 -0
- package/lib/utils/dateUtils.js +11 -0
- package/lib/utils/file.d.ts +3 -0
- package/lib/utils/file.d.ts.map +1 -0
- package/lib/utils/file.js +156 -0
- package/lib/utils/i18n.d.ts +7 -0
- package/lib/utils/i18n.d.ts.map +1 -0
- package/lib/utils/i18n.js +96 -0
- package/lib/utils/index.d.ts +20 -0
- package/lib/utils/index.d.ts.map +1 -0
- package/lib/utils/index.js +26 -0
- package/lib/utils/location.d.ts +10 -0
- package/lib/utils/location.d.ts.map +1 -0
- package/lib/utils/location.js +82 -0
- package/lib/utils/permissionUtils.d.ts +22 -0
- package/lib/utils/permissionUtils.d.ts.map +1 -0
- package/lib/utils/permissionUtils.js +72 -0
- package/lib/utils/requestCache.d.ts +8 -0
- package/lib/utils/requestCache.d.ts.map +1 -0
- package/lib/utils/requestCache.js +53 -0
- package/lib/utils/session.d.ts +14 -0
- package/lib/utils/session.d.ts.map +1 -0
- package/lib/utils/session.js +107 -0
- package/lib/utils/useConversationTyping.d.ts +26 -0
- package/lib/utils/useConversationTyping.d.ts.map +1 -0
- package/lib/utils/useConversationTyping.js +117 -0
- package/lib/utils/useMetropolis.d.ts +67 -0
- package/lib/utils/useMetropolis.d.ts.map +1 -0
- package/lib/utils/useMetropolis.js +311 -0
- package/lib/utils/useTranslations.d.ts +16 -0
- package/lib/utils/useTranslations.d.ts.map +1 -0
- package/lib/utils/useTranslations.js +105 -0
- package/lib/utils/validatorFactory.d.ts +49 -0
- package/lib/utils/validatorFactory.d.ts.map +1 -0
- package/lib/utils/validatorFactory.js +95 -0
- package/package.json +75 -28
- package/temp_signin.ts +73 -0
- package/tsconfig.lint.json +25 -0
- package/tsconfig.test.json +14 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { parseArangoId, parseId, parseUsername } from '@nlabs/utils';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { parseDocument, removeEmptyKeys } from '../arangoAdapter/arangoAdapter.js';
|
|
4
|
+
import { parseReaktorDate } from '../reaktorAdapter/reaktorAdapter.js';
|
|
5
|
+
export class SessionValidationError extends Error {
|
|
6
|
+
field;
|
|
7
|
+
constructor(message, field){
|
|
8
|
+
super(message), this.field = field;
|
|
9
|
+
this.name = 'SessionValidationError';
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
const SessionInputSchema = z.object({
|
|
13
|
+
_id: z.string().optional(),
|
|
14
|
+
_key: z.string().optional(),
|
|
15
|
+
_rev: z.string().optional(),
|
|
16
|
+
_oldRev: z.string().optional(),
|
|
17
|
+
_from: z.string().optional(),
|
|
18
|
+
_to: z.string().optional(),
|
|
19
|
+
expires: z.number().optional(),
|
|
20
|
+
id: z.string().optional(),
|
|
21
|
+
issued: z.number().optional(),
|
|
22
|
+
sessionId: z.string().optional(),
|
|
23
|
+
token: z.string().optional(),
|
|
24
|
+
userId: z.string().optional(),
|
|
25
|
+
username: z.string().optional()
|
|
26
|
+
}).loose();
|
|
27
|
+
export const validateSessionInput = (session)=>{
|
|
28
|
+
try {
|
|
29
|
+
const validated = SessionInputSchema.parse(session);
|
|
30
|
+
return validated;
|
|
31
|
+
} catch (error) {
|
|
32
|
+
if (error instanceof z.ZodError) {
|
|
33
|
+
const fieldErrors = error.issues.map((e)=>`${e.path.join('.')}: ${e.message}`).join(', ');
|
|
34
|
+
throw new SessionValidationError(`Session validation failed: ${fieldErrors}`);
|
|
35
|
+
}
|
|
36
|
+
throw error;
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
export const formatSessionOutput = (session)=>session;
|
|
40
|
+
export const parseSession = (session)=>{
|
|
41
|
+
try {
|
|
42
|
+
const parsed = performSessionTransformation(session);
|
|
43
|
+
return parsed;
|
|
44
|
+
} catch (error) {
|
|
45
|
+
if (error instanceof SessionValidationError) {
|
|
46
|
+
throw error;
|
|
47
|
+
}
|
|
48
|
+
throw new SessionValidationError(`Session parsing failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
const performSessionTransformation = (session)=>{
|
|
52
|
+
const { _id, _key, expires, id, issued, sessionId, token, userId, username } = session;
|
|
53
|
+
const transformed = removeEmptyKeys({
|
|
54
|
+
...parseDocument(session),
|
|
55
|
+
...expires !== undefined && {
|
|
56
|
+
expires: parseReaktorDate(expires)
|
|
57
|
+
},
|
|
58
|
+
...(_id || id || _key || sessionId) && {
|
|
59
|
+
id: parseArangoId(_id || id || `sessions/${_key || sessionId}`)
|
|
60
|
+
},
|
|
61
|
+
...issued !== undefined && {
|
|
62
|
+
issued: parseReaktorDate(issued)
|
|
63
|
+
},
|
|
64
|
+
...(_key || sessionId) && {
|
|
65
|
+
sessionId: parseId(_key || sessionId || '')
|
|
66
|
+
},
|
|
67
|
+
...token && {
|
|
68
|
+
token
|
|
69
|
+
},
|
|
70
|
+
...userId && {
|
|
71
|
+
userId: parseId(userId)
|
|
72
|
+
},
|
|
73
|
+
...username && {
|
|
74
|
+
username: parseUsername(username)
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
return transformed;
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvYWRhcHRlcnMvc2Vzc2lvbkFkYXB0ZXIvc2Vzc2lvbkFkYXB0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGFyc2VBcmFuZ29JZCwgcGFyc2VJZCwgcGFyc2VVc2VybmFtZSB9IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQgeyB6IH0gZnJvbSAnem9kJztcblxuaW1wb3J0IHsgcGFyc2VEb2N1bWVudCwgcmVtb3ZlRW1wdHlLZXlzIH0gZnJvbSAnLi4vYXJhbmdvQWRhcHRlci9hcmFuZ29BZGFwdGVyLmpzJztcbmltcG9ydCB7IHBhcnNlUmVha3RvckRhdGUgfSBmcm9tICcuLi9yZWFrdG9yQWRhcHRlci9yZWFrdG9yQWRhcHRlci5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2Vzc2lvblR5cGUge1xuICBfaWQ/OiBzdHJpbmc7XG4gIF9rZXk/OiBzdHJpbmc7XG4gIF9yZXY/OiBzdHJpbmc7XG4gIF9vbGRSZXY/OiBzdHJpbmc7XG4gIF9mcm9tPzogc3RyaW5nO1xuICBfdG8/OiBzdHJpbmc7XG4gIGV4cGlyZXM/OiBudW1iZXI7XG4gIGlkPzogc3RyaW5nO1xuICBpc3N1ZWQ/OiBudW1iZXI7XG4gIHNlc3Npb25JZD86IHN0cmluZztcbiAgdG9rZW4/OiBzdHJpbmc7XG4gIHVzZXJJZD86IHN0cmluZztcbiAgdXNlcm5hbWU/OiBzdHJpbmc7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGNsYXNzIFNlc3Npb25WYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgcHVibGljIGZpZWxkPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gJ1Nlc3Npb25WYWxpZGF0aW9uRXJyb3InO1xuICB9XG59XG5cbmNvbnN0IFNlc3Npb25JbnB1dFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgX2lkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9rZXk6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX3Jldjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfb2xkUmV2OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9mcm9tOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF90bzogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBleHBpcmVzOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIGlkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGlzc3VlZDogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICBzZXNzaW9uSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgdG9rZW46IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgdXNlcklkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHVzZXJuYW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKClcbn0pLmxvb3NlKCk7XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVNlc3Npb25JbnB1dCA9IChzZXNzaW9uOiB1bmtub3duKTogU2Vzc2lvblR5cGUgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHZhbGlkYXRlZCA9IFNlc3Npb25JbnB1dFNjaGVtYS5wYXJzZShzZXNzaW9uKTtcbiAgICByZXR1cm4gdmFsaWRhdGVkIGFzIFNlc3Npb25UeXBlO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgaWYoZXJyb3IgaW5zdGFuY2VvZiB6LlpvZEVycm9yKSB7XG4gICAgICBjb25zdCBmaWVsZEVycm9ycyA9IGVycm9yLmlzc3Vlcy5tYXAoKGUpID0+IGAke2UucGF0aC5qb2luKCcuJyl9OiAke2UubWVzc2FnZX1gKS5qb2luKCcsICcpO1xuICAgICAgdGhyb3cgbmV3IFNlc3Npb25WYWxpZGF0aW9uRXJyb3IoYFNlc3Npb24gdmFsaWRhdGlvbiBmYWlsZWQ6ICR7ZmllbGRFcnJvcnN9YCk7XG4gICAgfVxuICAgIHRocm93IGVycm9yO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZm9ybWF0U2Vzc2lvbk91dHB1dCA9IChzZXNzaW9uOiBTZXNzaW9uVHlwZSk6IFNlc3Npb25UeXBlID0+IHNlc3Npb247XG5cbmV4cG9ydCBjb25zdCBwYXJzZVNlc3Npb24gPSAoc2Vzc2lvbjogU2Vzc2lvblR5cGUpOiBTZXNzaW9uVHlwZSA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgcGFyc2VkID0gcGVyZm9ybVNlc3Npb25UcmFuc2Zvcm1hdGlvbihzZXNzaW9uKTtcbiAgICByZXR1cm4gcGFyc2VkO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgaWYoZXJyb3IgaW5zdGFuY2VvZiBTZXNzaW9uVmFsaWRhdGlvbkVycm9yKSB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gICAgdGhyb3cgbmV3IFNlc3Npb25WYWxpZGF0aW9uRXJyb3IoYFNlc3Npb24gcGFyc2luZyBmYWlsZWQ6ICR7ZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcid9YCk7XG4gIH1cbn07XG5cbmNvbnN0IHBlcmZvcm1TZXNzaW9uVHJhbnNmb3JtYXRpb24gPSAoc2Vzc2lvbjogU2Vzc2lvblR5cGUpOiBTZXNzaW9uVHlwZSA9PiB7XG4gIGNvbnN0IHtcbiAgICBfaWQsXG4gICAgX2tleSxcbiAgICBleHBpcmVzLFxuICAgIGlkLFxuICAgIGlzc3VlZCxcbiAgICBzZXNzaW9uSWQsXG4gICAgdG9rZW4sXG4gICAgdXNlcklkLFxuICAgIHVzZXJuYW1lXG4gIH0gPSBzZXNzaW9uO1xuXG4gIGNvbnN0IHRyYW5zZm9ybWVkID0gcmVtb3ZlRW1wdHlLZXlzKHtcbiAgICAuLi5wYXJzZURvY3VtZW50KHNlc3Npb24pLFxuICAgIC4uLihleHBpcmVzICE9PSB1bmRlZmluZWQgJiYge2V4cGlyZXM6IHBhcnNlUmVha3RvckRhdGUoZXhwaXJlcyl9KSxcbiAgICAuLi4oKF9pZCB8fCBpZCB8fCBfa2V5IHx8IHNlc3Npb25JZCkgJiYge2lkOiBwYXJzZUFyYW5nb0lkKF9pZCB8fCBpZCB8fCBgc2Vzc2lvbnMvJHtfa2V5IHx8IHNlc3Npb25JZH1gKX0pLFxuICAgIC4uLihpc3N1ZWQgIT09IHVuZGVmaW5lZCAmJiB7aXNzdWVkOiBwYXJzZVJlYWt0b3JEYXRlKGlzc3VlZCl9KSxcbiAgICAuLi4oKF9rZXkgfHwgc2Vzc2lvbklkKSAmJiB7c2Vzc2lvbklkOiBwYXJzZUlkKF9rZXkgfHwgc2Vzc2lvbklkIHx8ICcnKX0pLFxuICAgIC4uLih0b2tlbiAmJiB7dG9rZW59KSxcbiAgICAuLi4odXNlcklkICYmIHt1c2VySWQ6IHBhcnNlSWQodXNlcklkKX0pLFxuICAgIC4uLih1c2VybmFtZSAmJiB7dXNlcm5hbWU6IHBhcnNlVXNlcm5hbWUodXNlcm5hbWUpfSlcbiAgfSk7XG5cbiAgcmV0dXJuIHRyYW5zZm9ybWVkO1xufTsiXSwibmFtZXMiOlsicGFyc2VBcmFuZ29JZCIsInBhcnNlSWQiLCJwYXJzZVVzZXJuYW1lIiwieiIsInBhcnNlRG9jdW1lbnQiLCJyZW1vdmVFbXB0eUtleXMiLCJwYXJzZVJlYWt0b3JEYXRlIiwiU2Vzc2lvblZhbGlkYXRpb25FcnJvciIsIkVycm9yIiwibWVzc2FnZSIsImZpZWxkIiwibmFtZSIsIlNlc3Npb25JbnB1dFNjaGVtYSIsIm9iamVjdCIsIl9pZCIsInN0cmluZyIsIm9wdGlvbmFsIiwiX2tleSIsIl9yZXYiLCJfb2xkUmV2IiwiX2Zyb20iLCJfdG8iLCJleHBpcmVzIiwibnVtYmVyIiwiaWQiLCJpc3N1ZWQiLCJzZXNzaW9uSWQiLCJ0b2tlbiIsInVzZXJJZCIsInVzZXJuYW1lIiwibG9vc2UiLCJ2YWxpZGF0ZVNlc3Npb25JbnB1dCIsInNlc3Npb24iLCJ2YWxpZGF0ZWQiLCJwYXJzZSIsImVycm9yIiwiWm9kRXJyb3IiLCJmaWVsZEVycm9ycyIsImlzc3VlcyIsIm1hcCIsImUiLCJwYXRoIiwiam9pbiIsImZvcm1hdFNlc3Npb25PdXRwdXQiLCJwYXJzZVNlc3Npb24iLCJwYXJzZWQiLCJwZXJmb3JtU2Vzc2lvblRyYW5zZm9ybWF0aW9uIiwidHJhbnNmb3JtZWQiLCJ1bmRlZmluZWQiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGFBQWEsRUFBRUMsT0FBTyxFQUFFQyxhQUFhLFFBQVEsZUFBZTtBQUNyRSxTQUFTQyxDQUFDLFFBQVEsTUFBTTtBQUV4QixTQUFTQyxhQUFhLEVBQUVDLGVBQWUsUUFBUSxvQ0FBb0M7QUFDbkYsU0FBU0MsZ0JBQWdCLFFBQVEsc0NBQXNDO0FBbUJ2RSxPQUFPLE1BQU1DLCtCQUErQkM7O0lBQzFDLFlBQVlDLE9BQWUsRUFBRSxBQUFPQyxLQUFjLENBQUU7UUFDbEQsS0FBSyxDQUFDRCxlQUQ0QkMsUUFBQUE7UUFFbEMsSUFBSSxDQUFDQyxJQUFJLEdBQUc7SUFDZDtBQUNGO0FBRUEsTUFBTUMscUJBQXFCVCxFQUFFVSxNQUFNLENBQUM7SUFDbENDLEtBQUtYLEVBQUVZLE1BQU0sR0FBR0MsUUFBUTtJQUN4QkMsTUFBTWQsRUFBRVksTUFBTSxHQUFHQyxRQUFRO0lBQ3pCRSxNQUFNZixFQUFFWSxNQUFNLEdBQUdDLFFBQVE7SUFDekJHLFNBQVNoQixFQUFFWSxNQUFNLEdBQUdDLFFBQVE7SUFDNUJJLE9BQU9qQixFQUFFWSxNQUFNLEdBQUdDLFFBQVE7SUFDMUJLLEtBQUtsQixFQUFFWSxNQUFNLEdBQUdDLFFBQVE7SUFDeEJNLFNBQVNuQixFQUFFb0IsTUFBTSxHQUFHUCxRQUFRO0lBQzVCUSxJQUFJckIsRUFBRVksTUFBTSxHQUFHQyxRQUFRO0lBQ3ZCUyxRQUFRdEIsRUFBRW9CLE1BQU0sR0FBR1AsUUFBUTtJQUMzQlUsV0FBV3ZCLEVBQUVZLE1BQU0sR0FBR0MsUUFBUTtJQUM5QlcsT0FBT3hCLEVBQUVZLE1BQU0sR0FBR0MsUUFBUTtJQUMxQlksUUFBUXpCLEVBQUVZLE1BQU0sR0FBR0MsUUFBUTtJQUMzQmEsVUFBVTFCLEVBQUVZLE1BQU0sR0FBR0MsUUFBUTtBQUMvQixHQUFHYyxLQUFLO0FBRVIsT0FBTyxNQUFNQyx1QkFBdUIsQ0FBQ0M7SUFDbkMsSUFBSTtRQUNGLE1BQU1DLFlBQVlyQixtQkFBbUJzQixLQUFLLENBQUNGO1FBQzNDLE9BQU9DO0lBQ1QsRUFBRSxPQUFNRSxPQUFPO1FBQ2IsSUFBR0EsaUJBQWlCaEMsRUFBRWlDLFFBQVEsRUFBRTtZQUM5QixNQUFNQyxjQUFjRixNQUFNRyxNQUFNLENBQUNDLEdBQUcsQ0FBQyxDQUFDQyxJQUFNLEdBQUdBLEVBQUVDLElBQUksQ0FBQ0MsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFRixFQUFFL0IsT0FBTyxFQUFFLEVBQUVpQyxJQUFJLENBQUM7WUFDdEYsTUFBTSxJQUFJbkMsdUJBQXVCLENBQUMsMkJBQTJCLEVBQUU4QixhQUFhO1FBQzlFO1FBQ0EsTUFBTUY7SUFDUjtBQUNGLEVBQUU7QUFFRixPQUFPLE1BQU1RLHNCQUFzQixDQUFDWCxVQUFzQ0EsUUFBUTtBQUVsRixPQUFPLE1BQU1ZLGVBQWUsQ0FBQ1o7SUFDM0IsSUFBSTtRQUNGLE1BQU1hLFNBQVNDLDZCQUE2QmQ7UUFDNUMsT0FBT2E7SUFDVCxFQUFFLE9BQU1WLE9BQU87UUFDYixJQUFHQSxpQkFBaUI1Qix3QkFBd0I7WUFDMUMsTUFBTTRCO1FBQ1I7UUFDQSxNQUFNLElBQUk1Qix1QkFBdUIsQ0FBQyx3QkFBd0IsRUFBRTRCLGlCQUFpQjNCLFFBQVEyQixNQUFNMUIsT0FBTyxHQUFHLGlCQUFpQjtJQUN4SDtBQUNGLEVBQUU7QUFFRixNQUFNcUMsK0JBQStCLENBQUNkO0lBQ3BDLE1BQU0sRUFDSmxCLEdBQUcsRUFDSEcsSUFBSSxFQUNKSyxPQUFPLEVBQ1BFLEVBQUUsRUFDRkMsTUFBTSxFQUNOQyxTQUFTLEVBQ1RDLEtBQUssRUFDTEMsTUFBTSxFQUNOQyxRQUFRLEVBQ1QsR0FBR0c7SUFFSixNQUFNZSxjQUFjMUMsZ0JBQWdCO1FBQ2xDLEdBQUdELGNBQWM0QixRQUFRO1FBQ3pCLEdBQUlWLFlBQVkwQixhQUFhO1lBQUMxQixTQUFTaEIsaUJBQWlCZ0I7UUFBUSxDQUFDO1FBQ2pFLEdBQUksQUFBQ1IsQ0FBQUEsT0FBT1UsTUFBTVAsUUFBUVMsU0FBUSxLQUFNO1lBQUNGLElBQUl4QixjQUFjYyxPQUFPVSxNQUFNLENBQUMsU0FBUyxFQUFFUCxRQUFRUyxXQUFXO1FBQUMsQ0FBQztRQUN6RyxHQUFJRCxXQUFXdUIsYUFBYTtZQUFDdkIsUUFBUW5CLGlCQUFpQm1CO1FBQU8sQ0FBQztRQUM5RCxHQUFJLEFBQUNSLENBQUFBLFFBQVFTLFNBQVEsS0FBTTtZQUFDQSxXQUFXekIsUUFBUWdCLFFBQVFTLGFBQWE7UUFBRyxDQUFDO1FBQ3hFLEdBQUlDLFNBQVM7WUFBQ0E7UUFBSyxDQUFDO1FBQ3BCLEdBQUlDLFVBQVU7WUFBQ0EsUUFBUTNCLFFBQVEyQjtRQUFPLENBQUM7UUFDdkMsR0FBSUMsWUFBWTtZQUFDQSxVQUFVM0IsY0FBYzJCO1FBQVMsQ0FBQztJQUNyRDtJQUVBLE9BQU9rQjtBQUNUIn0=
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface TagType {
|
|
2
|
+
_id?: string;
|
|
3
|
+
_key?: string;
|
|
4
|
+
category?: string;
|
|
5
|
+
description?: string;
|
|
6
|
+
id?: string;
|
|
7
|
+
name?: string;
|
|
8
|
+
tagBy?: string;
|
|
9
|
+
tagId?: string;
|
|
10
|
+
userId?: string;
|
|
11
|
+
[key: string]: any;
|
|
12
|
+
}
|
|
13
|
+
export declare class TagValidationError extends Error {
|
|
14
|
+
field?: string;
|
|
15
|
+
constructor(message: string, field?: string);
|
|
16
|
+
}
|
|
17
|
+
export declare const validateTagInput: (tag: unknown) => TagType;
|
|
18
|
+
export declare const formatTagOutput: (tag: TagType) => TagType;
|
|
19
|
+
export declare const parseTag: (tag: TagType) => TagType;
|
|
20
|
+
export declare const parseTagLegacy: (tag: TagType) => TagType;
|
|
21
|
+
//# sourceMappingURL=tagAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tagAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/tagAdapter/tagAdapter.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,OAAO;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IACP,KAAK,CAAC,EAAE,MAAM;gBAAtC,OAAO,EAAE,MAAM,EAAS,KAAK,CAAC,EAAE,MAAM;CAInD;AAcD,eAAO,MAAM,gBAAgB,GAAI,KAAK,OAAO,KAAG,OAW/C,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,KAAK,OAAO,KAAG,OAAc,CAAC;AAE9D,eAAO,MAAM,QAAQ,GAAI,KAAK,OAAO,KAAG,OAUvC,CAAC;AAuDF,eAAO,MAAM,cAAc,GAAI,KAAK,OAAO,KAAG,OAAwB,CAAC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { parseArangoId, parseId, parseString } from '@nlabs/utils';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { parseDocument, removeEmptyKeys } from '../arangoAdapter/arangoAdapter.js';
|
|
4
|
+
import { parseReaktorContent, parseReaktorType } from '../reaktorAdapter/reaktorAdapter.js';
|
|
5
|
+
export class TagValidationError extends Error {
|
|
6
|
+
field;
|
|
7
|
+
constructor(message, field){
|
|
8
|
+
super(message), this.field = field;
|
|
9
|
+
this.name = 'TagValidationError';
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
const TagInputSchema = z.object({
|
|
13
|
+
_id: z.string().optional(),
|
|
14
|
+
_key: z.string().optional(),
|
|
15
|
+
category: z.string().max(160).optional(),
|
|
16
|
+
description: z.string().optional(),
|
|
17
|
+
id: z.string().optional(),
|
|
18
|
+
name: z.string().max(160).optional(),
|
|
19
|
+
tagBy: z.string().optional(),
|
|
20
|
+
tagId: z.string().optional(),
|
|
21
|
+
userId: z.string().optional()
|
|
22
|
+
}).loose();
|
|
23
|
+
export const validateTagInput = (tag)=>{
|
|
24
|
+
try {
|
|
25
|
+
const validated = TagInputSchema.parse(tag);
|
|
26
|
+
return validated;
|
|
27
|
+
} catch (error) {
|
|
28
|
+
if (error instanceof z.ZodError) {
|
|
29
|
+
const fieldErrors = error.issues.map((e)=>`${e.path.join('.')}: ${e.message}`).join(', ');
|
|
30
|
+
throw new TagValidationError(`Tag validation failed: ${fieldErrors}`);
|
|
31
|
+
}
|
|
32
|
+
throw error;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
export const formatTagOutput = (tag)=>tag;
|
|
36
|
+
export const parseTag = (tag)=>{
|
|
37
|
+
try {
|
|
38
|
+
const parsed = performTagTransformation(tag);
|
|
39
|
+
return parsed;
|
|
40
|
+
} catch (error) {
|
|
41
|
+
if (error instanceof TagValidationError) {
|
|
42
|
+
throw error;
|
|
43
|
+
}
|
|
44
|
+
throw new TagValidationError(`Tag parsing failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
const performTagTransformation = (tag)=>{
|
|
48
|
+
const { _id, _key, category, description, id, name, tagBy, tagId, userId } = tag;
|
|
49
|
+
const transformed = {
|
|
50
|
+
...parseDocument(tag),
|
|
51
|
+
...category && {
|
|
52
|
+
category: parseReaktorType(category)
|
|
53
|
+
},
|
|
54
|
+
...description && {
|
|
55
|
+
description: parseReaktorContent(description)
|
|
56
|
+
},
|
|
57
|
+
...(_id || id) && {
|
|
58
|
+
id: parseArangoId(_id || id || '')
|
|
59
|
+
},
|
|
60
|
+
...(_key || tagId) && {
|
|
61
|
+
tagId: parseId(_key || tagId || '')
|
|
62
|
+
},
|
|
63
|
+
...name && {
|
|
64
|
+
name: parseString(name, 160)
|
|
65
|
+
},
|
|
66
|
+
...tagBy && {
|
|
67
|
+
tagBy: parseId(tagBy)
|
|
68
|
+
},
|
|
69
|
+
...userId && {
|
|
70
|
+
userId: parseId(userId)
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
const result = removeEmptyKeys(transformed);
|
|
74
|
+
if (tag._id) {
|
|
75
|
+
result.id = tag._id;
|
|
76
|
+
result._id = tag._id;
|
|
77
|
+
} else if (tag.id && !result.id) {
|
|
78
|
+
result.id = tag.id;
|
|
79
|
+
result._id = tag.id;
|
|
80
|
+
}
|
|
81
|
+
if (tag._key) {
|
|
82
|
+
result.tagId = tag._key;
|
|
83
|
+
result._key = tag._key;
|
|
84
|
+
} else if (tag.tagId && !result.tagId) {
|
|
85
|
+
result.tagId = tag.tagId;
|
|
86
|
+
result._key = tag.tagId;
|
|
87
|
+
}
|
|
88
|
+
if (tag.tagId && !result._key) {
|
|
89
|
+
result._key = tag.tagId;
|
|
90
|
+
}
|
|
91
|
+
if (tag.id && !result._id) {
|
|
92
|
+
result._id = tag.id;
|
|
93
|
+
}
|
|
94
|
+
return result;
|
|
95
|
+
};
|
|
96
|
+
export const parseTagLegacy = (tag)=>parseTag(tag);
|
|
97
|
+
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvYWRhcHRlcnMvdGFnQWRhcHRlci90YWdBZGFwdGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhcnNlQXJhbmdvSWQsIHBhcnNlSWQsIHBhcnNlU3RyaW5nIH0gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCB7IHogfSBmcm9tICd6b2QnO1xuXG5pbXBvcnQgeyBwYXJzZURvY3VtZW50LCByZW1vdmVFbXB0eUtleXMgfSBmcm9tICcuLi9hcmFuZ29BZGFwdGVyL2FyYW5nb0FkYXB0ZXIuanMnO1xuaW1wb3J0IHsgcGFyc2VSZWFrdG9yQ29udGVudCwgcGFyc2VSZWFrdG9yVHlwZSB9IGZyb20gJy4uL3JlYWt0b3JBZGFwdGVyL3JlYWt0b3JBZGFwdGVyLmpzJztcblxuZXhwb3J0IGludGVyZmFjZSBUYWdUeXBlIHtcbiAgX2lkPzogc3RyaW5nO1xuICBfa2V5Pzogc3RyaW5nO1xuICBjYXRlZ29yeT86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGlkPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICB0YWdCeT86IHN0cmluZztcbiAgdGFnSWQ/OiBzdHJpbmc7XG4gIHVzZXJJZD86IHN0cmluZztcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgY2xhc3MgVGFnVmFsaWRhdGlvbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIHB1YmxpYyBmaWVsZD86IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9ICdUYWdWYWxpZGF0aW9uRXJyb3InO1xuICB9XG59XG5cbmNvbnN0IFRhZ0lucHV0U2NoZW1hID0gei5vYmplY3Qoe1xuICBfaWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX2tleTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBjYXRlZ29yeTogei5zdHJpbmcoKS5tYXgoMTYwKS5vcHRpb25hbCgpLFxuICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBpZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBuYW1lOiB6LnN0cmluZygpLm1heCgxNjApLm9wdGlvbmFsKCksXG4gIHRhZ0J5OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHRhZ0lkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHVzZXJJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpXG59KS5sb29zZSgpO1xuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVUYWdJbnB1dCA9ICh0YWc6IHVua25vd24pOiBUYWdUeXBlID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCB2YWxpZGF0ZWQgPSBUYWdJbnB1dFNjaGVtYS5wYXJzZSh0YWcpO1xuICAgIHJldHVybiB2YWxpZGF0ZWQgYXMgVGFnVHlwZTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGlmKGVycm9yIGluc3RhbmNlb2Ygei5ab2RFcnJvcikge1xuICAgICAgY29uc3QgZmllbGRFcnJvcnMgPSBlcnJvci5pc3N1ZXMubWFwKChlKSA9PiBgJHtlLnBhdGguam9pbignLicpfTogJHtlLm1lc3NhZ2V9YCkuam9pbignLCAnKTtcbiAgICAgIHRocm93IG5ldyBUYWdWYWxpZGF0aW9uRXJyb3IoYFRhZyB2YWxpZGF0aW9uIGZhaWxlZDogJHtmaWVsZEVycm9yc31gKTtcbiAgICB9XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBmb3JtYXRUYWdPdXRwdXQgPSAodGFnOiBUYWdUeXBlKTogVGFnVHlwZSA9PiB0YWc7XG5cbmV4cG9ydCBjb25zdCBwYXJzZVRhZyA9ICh0YWc6IFRhZ1R5cGUpOiBUYWdUeXBlID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBwYXJzZWQgPSBwZXJmb3JtVGFnVHJhbnNmb3JtYXRpb24odGFnKTtcbiAgICByZXR1cm4gcGFyc2VkO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgaWYoZXJyb3IgaW5zdGFuY2VvZiBUYWdWYWxpZGF0aW9uRXJyb3IpIHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgVGFnVmFsaWRhdGlvbkVycm9yKGBUYWcgcGFyc2luZyBmYWlsZWQ6ICR7ZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcid9YCk7XG4gIH1cbn07XG5cbmNvbnN0IHBlcmZvcm1UYWdUcmFuc2Zvcm1hdGlvbiA9ICh0YWc6IFRhZ1R5cGUpOiBUYWdUeXBlID0+IHtcbiAgY29uc3Qge1xuICAgIF9pZCxcbiAgICBfa2V5LFxuICAgIGNhdGVnb3J5LFxuICAgIGRlc2NyaXB0aW9uLFxuICAgIGlkLFxuICAgIG5hbWUsXG4gICAgdGFnQnksXG4gICAgdGFnSWQsXG4gICAgdXNlcklkXG4gIH0gPSB0YWc7XG5cbiAgY29uc3QgdHJhbnNmb3JtZWQgPSB7XG4gICAgLi4ucGFyc2VEb2N1bWVudCh0YWcpLFxuICAgIC4uLihjYXRlZ29yeSAmJiB7Y2F0ZWdvcnk6IHBhcnNlUmVha3RvclR5cGUoY2F0ZWdvcnkpfSksXG4gICAgLi4uKGRlc2NyaXB0aW9uICYmIHtkZXNjcmlwdGlvbjogcGFyc2VSZWFrdG9yQ29udGVudChkZXNjcmlwdGlvbil9KSxcbiAgICAuLi4oKF9pZCB8fCBpZCkgJiYge2lkOiBwYXJzZUFyYW5nb0lkKF9pZCB8fCBpZCB8fCAnJyl9KSxcbiAgICAuLi4oKF9rZXkgfHwgdGFnSWQpICYmIHt0YWdJZDogcGFyc2VJZChfa2V5IHx8IHRhZ0lkIHx8ICcnKX0pLFxuICAgIC4uLihuYW1lICYmIHtuYW1lOiBwYXJzZVN0cmluZyhuYW1lLCAxNjApfSksXG4gICAgLi4uKHRhZ0J5ICYmIHt0YWdCeTogcGFyc2VJZCh0YWdCeSl9KSxcbiAgICAuLi4odXNlcklkICYmIHt1c2VySWQ6IHBhcnNlSWQodXNlcklkKX0pXG4gIH07XG5cbiAgY29uc3QgcmVzdWx0ID0gcmVtb3ZlRW1wdHlLZXlzKHRyYW5zZm9ybWVkKTtcblxuICBpZih0YWcuX2lkKSB7XG4gICAgcmVzdWx0LmlkID0gdGFnLl9pZDtcbiAgICByZXN1bHQuX2lkID0gdGFnLl9pZDtcbiAgfSBlbHNlIGlmKHRhZy5pZCAmJiAhcmVzdWx0LmlkKSB7XG4gICAgcmVzdWx0LmlkID0gdGFnLmlkO1xuICAgIHJlc3VsdC5faWQgPSB0YWcuaWQ7XG4gIH1cblxuICBpZih0YWcuX2tleSkge1xuICAgIHJlc3VsdC50YWdJZCA9IHRhZy5fa2V5O1xuICAgIHJlc3VsdC5fa2V5ID0gdGFnLl9rZXk7XG4gIH0gZWxzZSBpZih0YWcudGFnSWQgJiYgIXJlc3VsdC50YWdJZCkge1xuICAgIHJlc3VsdC50YWdJZCA9IHRhZy50YWdJZDtcbiAgICByZXN1bHQuX2tleSA9IHRhZy50YWdJZDtcbiAgfVxuXG4gIGlmKHRhZy50YWdJZCAmJiAhcmVzdWx0Ll9rZXkpIHtcbiAgICByZXN1bHQuX2tleSA9IHRhZy50YWdJZDtcbiAgfVxuXG4gIGlmKHRhZy5pZCAmJiAhcmVzdWx0Ll9pZCkge1xuICAgIHJlc3VsdC5faWQgPSB0YWcuaWQ7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlVGFnTGVnYWN5ID0gKHRhZzogVGFnVHlwZSk6IFRhZ1R5cGUgPT4gcGFyc2VUYWcodGFnKTsiXSwibmFtZXMiOlsicGFyc2VBcmFuZ29JZCIsInBhcnNlSWQiLCJwYXJzZVN0cmluZyIsInoiLCJwYXJzZURvY3VtZW50IiwicmVtb3ZlRW1wdHlLZXlzIiwicGFyc2VSZWFrdG9yQ29udGVudCIsInBhcnNlUmVha3RvclR5cGUiLCJUYWdWYWxpZGF0aW9uRXJyb3IiLCJFcnJvciIsIm1lc3NhZ2UiLCJmaWVsZCIsIm5hbWUiLCJUYWdJbnB1dFNjaGVtYSIsIm9iamVjdCIsIl9pZCIsInN0cmluZyIsIm9wdGlvbmFsIiwiX2tleSIsImNhdGVnb3J5IiwibWF4IiwiZGVzY3JpcHRpb24iLCJpZCIsInRhZ0J5IiwidGFnSWQiLCJ1c2VySWQiLCJsb29zZSIsInZhbGlkYXRlVGFnSW5wdXQiLCJ0YWciLCJ2YWxpZGF0ZWQiLCJwYXJzZSIsImVycm9yIiwiWm9kRXJyb3IiLCJmaWVsZEVycm9ycyIsImlzc3VlcyIsIm1hcCIsImUiLCJwYXRoIiwiam9pbiIsImZvcm1hdFRhZ091dHB1dCIsInBhcnNlVGFnIiwicGFyc2VkIiwicGVyZm9ybVRhZ1RyYW5zZm9ybWF0aW9uIiwidHJhbnNmb3JtZWQiLCJyZXN1bHQiLCJwYXJzZVRhZ0xlZ2FjeSJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsYUFBYSxFQUFFQyxPQUFPLEVBQUVDLFdBQVcsUUFBUSxlQUFlO0FBQ25FLFNBQVNDLENBQUMsUUFBUSxNQUFNO0FBRXhCLFNBQVNDLGFBQWEsRUFBRUMsZUFBZSxRQUFRLG9DQUFvQztBQUNuRixTQUFTQyxtQkFBbUIsRUFBRUMsZ0JBQWdCLFFBQVEsc0NBQXNDO0FBZTVGLE9BQU8sTUFBTUMsMkJBQTJCQzs7SUFDdEMsWUFBWUMsT0FBZSxFQUFFLEFBQU9DLEtBQWMsQ0FBRTtRQUNsRCxLQUFLLENBQUNELGVBRDRCQyxRQUFBQTtRQUVsQyxJQUFJLENBQUNDLElBQUksR0FBRztJQUNkO0FBQ0Y7QUFFQSxNQUFNQyxpQkFBaUJWLEVBQUVXLE1BQU0sQ0FBQztJQUM5QkMsS0FBS1osRUFBRWEsTUFBTSxHQUFHQyxRQUFRO0lBQ3hCQyxNQUFNZixFQUFFYSxNQUFNLEdBQUdDLFFBQVE7SUFDekJFLFVBQVVoQixFQUFFYSxNQUFNLEdBQUdJLEdBQUcsQ0FBQyxLQUFLSCxRQUFRO0lBQ3RDSSxhQUFhbEIsRUFBRWEsTUFBTSxHQUFHQyxRQUFRO0lBQ2hDSyxJQUFJbkIsRUFBRWEsTUFBTSxHQUFHQyxRQUFRO0lBQ3ZCTCxNQUFNVCxFQUFFYSxNQUFNLEdBQUdJLEdBQUcsQ0FBQyxLQUFLSCxRQUFRO0lBQ2xDTSxPQUFPcEIsRUFBRWEsTUFBTSxHQUFHQyxRQUFRO0lBQzFCTyxPQUFPckIsRUFBRWEsTUFBTSxH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
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface TranslationType {
|
|
2
|
+
readonly key: string;
|
|
3
|
+
readonly locale: string;
|
|
4
|
+
readonly value: string;
|
|
5
|
+
readonly namespace?: string;
|
|
6
|
+
readonly timestamp?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface TranslationInputType {
|
|
9
|
+
readonly key: string;
|
|
10
|
+
readonly locale: string;
|
|
11
|
+
readonly value: string;
|
|
12
|
+
readonly namespace?: string;
|
|
13
|
+
}
|
|
14
|
+
export declare class TranslationValidationError extends Error {
|
|
15
|
+
field?: string;
|
|
16
|
+
constructor(message: string, field?: string);
|
|
17
|
+
}
|
|
18
|
+
export declare const parseTranslation: (translation: TranslationType) => TranslationType;
|
|
19
|
+
export declare const parseTranslationInput: (translation: TranslationInputType) => TranslationInputType;
|
|
20
|
+
export declare const validateTranslationInput: (input: unknown) => TranslationInputType;
|
|
21
|
+
//# sourceMappingURL=translationAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"translationAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/translationAdapter/translationAdapter.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,qBAAa,0BAA2B,SAAQ,KAAK;IACf,KAAK,CAAC,EAAE,MAAM;gBAAtC,OAAO,EAAE,MAAM,EAAS,KAAK,CAAC,EAAE,MAAM;CAInD;AAiBD,eAAO,MAAM,gBAAgB,GAAI,aAAa,eAAe,KAAG,eAY/D,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,aAAa,oBAAoB,KAAG,oBAYzE,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,OAAO,OAAO,KAAG,oBAEzD,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025-Present, Nitrogen Labs, Inc.
|
|
3
|
+
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
4
|
+
*/ import { z } from 'zod';
|
|
5
|
+
export class TranslationValidationError extends Error {
|
|
6
|
+
field;
|
|
7
|
+
constructor(message, field){
|
|
8
|
+
super(message), this.field = field;
|
|
9
|
+
this.name = 'TranslationValidationError';
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
const translationSchema = z.object({
|
|
13
|
+
key: z.string().min(1, 'Key is required'),
|
|
14
|
+
locale: z.string().min(2, 'Locale is required').max(5, 'Locale must be less than 5 characters'),
|
|
15
|
+
value: z.string().min(1, 'Value is required'),
|
|
16
|
+
namespace: z.string().optional(),
|
|
17
|
+
timestamp: z.number().optional()
|
|
18
|
+
});
|
|
19
|
+
const translationInputSchema = z.object({
|
|
20
|
+
key: z.string().min(1, 'Key is required'),
|
|
21
|
+
locale: z.string().min(2, 'Locale is required').max(5, 'Locale must be less than 5 characters'),
|
|
22
|
+
value: z.string().min(1, 'Value is required'),
|
|
23
|
+
namespace: z.string().optional()
|
|
24
|
+
});
|
|
25
|
+
export const parseTranslation = (translation)=>{
|
|
26
|
+
try {
|
|
27
|
+
const validated = translationSchema.parse(translation);
|
|
28
|
+
return validated;
|
|
29
|
+
} catch (error) {
|
|
30
|
+
if (error instanceof z.ZodError) {
|
|
31
|
+
const field = error.issues[0]?.path.join('.');
|
|
32
|
+
const message = error.issues[0]?.message || 'Validation failed';
|
|
33
|
+
throw new TranslationValidationError(message, field);
|
|
34
|
+
}
|
|
35
|
+
throw error;
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
export const parseTranslationInput = (translation)=>{
|
|
39
|
+
try {
|
|
40
|
+
const validated = translationInputSchema.parse(translation);
|
|
41
|
+
return validated;
|
|
42
|
+
} catch (error) {
|
|
43
|
+
if (error instanceof z.ZodError) {
|
|
44
|
+
const field = error.issues[0]?.path.join('.');
|
|
45
|
+
const message = error.issues[0]?.message || 'Validation failed';
|
|
46
|
+
throw new TranslationValidationError(message, field);
|
|
47
|
+
}
|
|
48
|
+
throw error;
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
export const validateTranslationInput = (input)=>{
|
|
52
|
+
return parseTranslationInput(input);
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvYWRhcHRlcnMvdHJhbnNsYXRpb25BZGFwdGVyL3RyYW5zbGF0aW9uQWRhcHRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyNS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHt6fSBmcm9tICd6b2QnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zbGF0aW9uVHlwZSB7XG4gIHJlYWRvbmx5IGtleTogc3RyaW5nO1xuICByZWFkb25seSBsb2NhbGU6IHN0cmluZztcbiAgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcbiAgcmVhZG9ubHkgbmFtZXNwYWNlPzogc3RyaW5nO1xuICByZWFkb25seSB0aW1lc3RhbXA/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNsYXRpb25JbnB1dFR5cGUge1xuICByZWFkb25seSBrZXk6IHN0cmluZztcbiAgcmVhZG9ubHkgbG9jYWxlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5hbWVzcGFjZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0aW9uVmFsaWRhdGlvbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIHB1YmxpYyBmaWVsZD86IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9ICdUcmFuc2xhdGlvblZhbGlkYXRpb25FcnJvcic7XG4gIH1cbn1cblxuY29uc3QgdHJhbnNsYXRpb25TY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGtleTogei5zdHJpbmcoKS5taW4oMSwgJ0tleSBpcyByZXF1aXJlZCcpLFxuICBsb2NhbGU6IHouc3RyaW5nKCkubWluKDIsICdMb2NhbGUgaXMgcmVxdWlyZWQnKS5tYXgoNSwgJ0xvY2FsZSBtdXN0IGJlIGxlc3MgdGhhbiA1IGNoYXJhY3RlcnMnKSxcbiAgdmFsdWU6IHouc3RyaW5nKCkubWluKDEsICdWYWx1ZSBpcyByZXF1aXJlZCcpLFxuICBuYW1lc3BhY2U6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgdGltZXN0YW1wOiB6Lm51bWJlcigpLm9wdGlvbmFsKClcbn0pO1xuXG5jb25zdCB0cmFuc2xhdGlvbklucHV0U2NoZW1hID0gei5vYmplY3Qoe1xuICBrZXk6IHouc3RyaW5nKCkubWluKDEsICdLZXkgaXMgcmVxdWlyZWQnKSxcbiAgbG9jYWxlOiB6LnN0cmluZygpLm1pbigyLCAnTG9jYWxlIGlzIHJlcXVpcmVkJykubWF4KDUsICdMb2NhbGUgbXVzdCBiZSBsZXNzIHRoYW4gNSBjaGFyYWN0ZXJzJyksXG4gIHZhbHVlOiB6LnN0cmluZygpLm1pbigxLCAnVmFsdWUgaXMgcmVxdWlyZWQnKSxcbiAgbmFtZXNwYWNlOiB6LnN0cmluZygpLm9wdGlvbmFsKClcbn0pO1xuXG5leHBvcnQgY29uc3QgcGFyc2VUcmFuc2xhdGlvbiA9ICh0cmFuc2xhdGlvbjogVHJhbnNsYXRpb25UeXBlKTogVHJhbnNsYXRpb25UeXBlID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCB2YWxpZGF0ZWQgPSB0cmFuc2xhdGlvblNjaGVtYS5wYXJzZSh0cmFuc2xhdGlvbik7XG4gICAgcmV0dXJuIHZhbGlkYXRlZCBhcyBUcmFuc2xhdGlvblR5cGU7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBpZihlcnJvciBpbnN0YW5jZW9mIHouWm9kRXJyb3IpIHtcbiAgICAgIGNvbnN0IGZpZWxkID0gZXJyb3IuaXNzdWVzWzBdPy5wYXRoLmpvaW4oJy4nKTtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJvci5pc3N1ZXNbMF0/Lm1lc3NhZ2UgfHwgJ1ZhbGlkYXRpb24gZmFpbGVkJztcbiAgICAgIHRocm93IG5ldyBUcmFuc2xhdGlvblZhbGlkYXRpb25FcnJvcihtZXNzYWdlLCBmaWVsZCk7XG4gICAgfVxuICAgIHRocm93IGVycm9yO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgcGFyc2VUcmFuc2xhdGlvbklucHV0ID0gKHRyYW5zbGF0aW9uOiBUcmFuc2xhdGlvbklucHV0VHlwZSk6IFRyYW5zbGF0aW9uSW5wdXRUeXBlID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCB2YWxpZGF0ZWQgPSB0cmFuc2xhdGlvbklucHV0U2NoZW1hLnBhcnNlKHRyYW5zbGF0aW9uKTtcbiAgICByZXR1cm4gdmFsaWRhdGVkIGFzIFRyYW5zbGF0aW9uSW5wdXRUeXBlO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgaWYoZXJyb3IgaW5zdGFuY2VvZiB6LlpvZEVycm9yKSB7XG4gICAgICBjb25zdCBmaWVsZCA9IGVycm9yLmlzc3Vlc1swXT8ucGF0aC5qb2luKCcuJyk7XG4gICAgICBjb25zdCBtZXNzYWdlID0gZXJyb3IuaXNzdWVzWzBdPy5tZXNzYWdlIHx8ICdWYWxpZGF0aW9uIGZhaWxlZCc7XG4gICAgICB0aHJvdyBuZXcgVHJhbnNsYXRpb25WYWxpZGF0aW9uRXJyb3IobWVzc2FnZSwgZmllbGQpO1xuICAgIH1cbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlVHJhbnNsYXRpb25JbnB1dCA9IChpbnB1dDogdW5rbm93bik6IFRyYW5zbGF0aW9uSW5wdXRUeXBlID0+IHtcbiAgcmV0dXJuIHBhcnNlVHJhbnNsYXRpb25JbnB1dChpbnB1dCBhcyBUcmFuc2xhdGlvbklucHV0VHlwZSk7XG59OyJdLCJuYW1lcyI6WyJ6IiwiVHJhbnNsYXRpb25WYWxpZGF0aW9uRXJyb3IiLCJFcnJvciIsIm1lc3NhZ2UiLCJmaWVsZCIsIm5hbWUiLCJ0cmFuc2xhdGlvblNjaGVtYSIsIm9iamVjdCIsImtleSIsInN0cmluZyIsIm1pbiIsImxvY2FsZSIsIm1heCIsInZhbHVlIiwibmFtZXNwYWNlIiwib3B0aW9uYWwiLCJ0aW1lc3RhbXAiLCJudW1iZXIiLCJ0cmFuc2xhdGlvbklucHV0U2NoZW1hIiwicGFyc2VUcmFuc2xhdGlvbiIsInRyYW5zbGF0aW9uIiwidmFsaWRhdGVkIiwicGFyc2UiLCJlcnJvciIsIlpvZEVycm9yIiwiaXNzdWVzIiwicGF0aCIsImpvaW4iLCJwYXJzZVRyYW5zbGF0aW9uSW5wdXQiLCJ2YWxpZGF0ZVRyYW5zbGF0aW9uSW5wdXQiLCJpbnB1dCJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBQ0QsU0FBUUEsQ0FBQyxRQUFPLE1BQU07QUFpQnRCLE9BQU8sTUFBTUMsbUNBQW1DQzs7SUFDOUMsWUFBWUMsT0FBZSxFQUFFLEFBQU9DLEtBQWMsQ0FBRTtRQUNsRCxLQUFLLENBQUNELGVBRDRCQyxRQUFBQTtRQUVsQyxJQUFJLENBQUNDLElBQUksR0FBRztJQUNkO0FBQ0Y7QUFFQSxNQUFNQyxvQkFBb0JOLEVBQUVPLE1BQU0sQ0FBQztJQUNqQ0MsS0FBS1IsRUFBRVMsTUFBTSxHQUFHQyxHQUFHLENBQUMsR0FBRztJQUN2QkMsUUFBUVgsRUFBRVMsTUFBTSxHQUFHQyxHQUFHLENBQUMsR0FBRyxzQkFBc0JFLEdBQUcsQ0FBQyxHQUFHO0lBQ3ZEQyxPQUFPYixFQUFFUyxNQUFNLEdBQUdDLEdBQUcsQ0FBQyxHQUFHO0lBQ3pCSSxXQUFXZCxFQUFFUyxNQUFNLEdBQUdNLFFBQVE7SUFDOUJDLFdBQVdoQixFQUFFaUIsTUFBTSxHQUFHRixRQUFRO0FBQ2hDO0FBRUEsTUFBTUcseUJBQXlCbEIsRUFBRU8sTUFBTSxDQUFDO0lBQ3RDQyxLQUFLUixFQUFFUyxNQUFNLEdBQUdDLEdBQUcsQ0FBQyxHQUFHO0lBQ3ZCQyxRQUFRWCxFQUFFUyxNQUFNLEdBQUdDLEdBQUcsQ0FBQyxHQUFHLHNCQUFzQkUsR0FBRyxDQUFDLEdBQUc7SUFDdkRDLE9BQU9iLEVBQUVTLE1BQU0sR0FBR0MsR0FBRyxDQUFDLEdBQUc7SUFDekJJLFdBQVdkLEVBQUVTLE1BQU0sR0FBR00sUUFBUTtBQUNoQztBQUVBLE9BQU8sTUFBTUksbUJBQW1CLENBQUNDO0lBQy9CLElBQUk7UUFDRixNQUFNQyxZQUFZZixrQkFBa0JnQixLQUFLLENBQUNGO1FBQzFDLE9BQU9DO0lBQ1QsRUFBRSxPQUFNRSxPQUFPO1FBQ2IsSUFBR0EsaUJBQWlCdkIsRUFBRXdCLFFBQVEsRUFBRTtZQUM5QixNQUFNcEIsUUFBUW1CLE1BQU1FLE1BQU0sQ0FBQyxFQUFFLEVBQUVDLEtBQUtDLEtBQUs7WUFDekMsTUFBTXhCLFVBQVVvQixNQUFNRSxNQUFNLENBQUMsRUFBRSxFQUFFdEIsV0FBVztZQUM1QyxNQUFNLElBQUlGLDJCQUEyQkUsU0FBU0M7UUFDaEQ7UUFDQSxNQUFNbUI7SUFDUjtBQUNGLEVBQUU7QUFFRixPQUFPLE1BQU1LLHdCQUF3QixDQUFDUjtJQUNwQyxJQUFJO1FBQ0YsTUFBTUMsWUFBWUgsdUJBQXVCSSxLQUFLLENBQUNGO1FBQy9DLE9BQU9DO0lBQ1QsRUFBRSxPQUFNRSxPQUFPO1FBQ2IsSUFBR0EsaUJBQWlCdkIsRUFBRXdCLFFBQVEsRUFBRTtZQUM5QixNQUFNcEIsUUFBUW1CLE1BQU1FLE1BQU0sQ0FBQyxFQUFFLEVBQUVDLEtBQUtDLEtBQUs7WUFDekMsTUFBTXhCLFVBQVVvQixNQUFNRSxNQUFNLENBQUMsRUFBRSxFQUFFdEIsV0FBVztZQUM1QyxNQUFNLElBQUlGLDJCQUEyQkUsU0FBU0M7UUFDaEQ7UUFDQSxNQUFNbUI7SUFDUjtBQUNGLEVBQUU7QUFFRixPQUFPLE1BQU1NLDJCQUEyQixDQUFDQztJQUN2QyxPQUFPRixzQkFBc0JFO0FBQy9CLEVBQUUifQ==
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export interface User {
|
|
2
|
+
[key: string]: any;
|
|
3
|
+
_id?: string;
|
|
4
|
+
_key?: string;
|
|
5
|
+
active?: boolean;
|
|
6
|
+
added?: number;
|
|
7
|
+
bankId?: string;
|
|
8
|
+
city?: string;
|
|
9
|
+
country?: string;
|
|
10
|
+
currency?: string;
|
|
11
|
+
deviceToken?: string;
|
|
12
|
+
dob?: number;
|
|
13
|
+
birthdate?: number;
|
|
14
|
+
email?: string;
|
|
15
|
+
firstName?: string;
|
|
16
|
+
gender?: string;
|
|
17
|
+
id?: string;
|
|
18
|
+
imageId?: string;
|
|
19
|
+
lastName?: string;
|
|
20
|
+
lastActive?: number;
|
|
21
|
+
locale?: string;
|
|
22
|
+
mailingList?: boolean;
|
|
23
|
+
modified?: number;
|
|
24
|
+
name?: string;
|
|
25
|
+
password?: string;
|
|
26
|
+
phone?: string;
|
|
27
|
+
planExpires?: number;
|
|
28
|
+
planId?: string;
|
|
29
|
+
planStatus?: string;
|
|
30
|
+
planSubscriptionId?: string;
|
|
31
|
+
salt?: string;
|
|
32
|
+
state?: string;
|
|
33
|
+
street1?: string;
|
|
34
|
+
street2?: string;
|
|
35
|
+
stripeAccountId?: string;
|
|
36
|
+
stripeCardBrand?: string;
|
|
37
|
+
stripeCardId?: string;
|
|
38
|
+
stripeCardLast4?: string;
|
|
39
|
+
stripeCustomerId?: string;
|
|
40
|
+
timezone?: string;
|
|
41
|
+
thumbUrl?: string;
|
|
42
|
+
type?: string;
|
|
43
|
+
updated?: number;
|
|
44
|
+
userAccess?: number;
|
|
45
|
+
userId?: string;
|
|
46
|
+
username?: string;
|
|
47
|
+
verifiedEmail?: boolean;
|
|
48
|
+
verifiedEmailCode?: number;
|
|
49
|
+
verifiedEmailExpires?: number;
|
|
50
|
+
verifiedPhone?: boolean;
|
|
51
|
+
verifiedPhoneExpires?: number;
|
|
52
|
+
verifiedSmsCode?: number;
|
|
53
|
+
zip?: string;
|
|
54
|
+
}
|
|
55
|
+
export declare class UserValidationError extends Error {
|
|
56
|
+
field?: string;
|
|
57
|
+
constructor(message: string, field?: string);
|
|
58
|
+
}
|
|
59
|
+
declare const userCache: Map<string, User>;
|
|
60
|
+
export declare const validateUserInput: (user: unknown) => User;
|
|
61
|
+
export declare const formatUserOutput: (user: User) => User;
|
|
62
|
+
export declare const parseUser: (user: User) => User;
|
|
63
|
+
export declare const clearUserCache: () => void;
|
|
64
|
+
export declare const getUserCacheSize: () => number;
|
|
65
|
+
export { userCache };
|
|
66
|
+
export declare const parseUserLegacy: (user: User) => User;
|
|
67
|
+
//# sourceMappingURL=userAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"userAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/userAdapter/userAdapter.ts"],"names":[],"mappings":"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"}
|