@intlayer/backend 8.10.0-canary.0 → 8.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/utils/AI/askDocQuestion/embeddings/docs/en/dictionary/markdown.json +10934 -8925
- package/dist/esm/controllers/ai.controller.mjs +2 -2
- package/dist/esm/controllers/ai.controller.mjs.map +1 -1
- package/dist/esm/controllers/organization.controller.mjs +16 -4
- package/dist/esm/controllers/organization.controller.mjs.map +1 -1
- package/dist/esm/controllers/project.controller.mjs +10 -3
- package/dist/esm/controllers/project.controller.mjs.map +1 -1
- package/dist/esm/schemas/user.schema.mjs +8 -0
- package/dist/esm/schemas/user.schema.mjs.map +1 -1
- package/dist/esm/services/audit/recursiveAudit.service.mjs +1 -1
- package/dist/esm/services/audit/recursiveAudit.service.mjs.map +1 -1
- package/dist/esm/services/cliSessionToken.service.mjs +2 -2
- package/dist/esm/services/cliSessionToken.service.mjs.map +1 -1
- package/dist/esm/services/dictionary.service.mjs +1 -1
- package/dist/esm/services/dictionary.service.mjs.map +1 -1
- package/dist/esm/services/oAuth2.service.mjs +3 -3
- package/dist/esm/services/oAuth2.service.mjs.map +1 -1
- package/dist/esm/services/projectAccessKey.service.mjs +2 -2
- package/dist/esm/services/projectAccessKey.service.mjs.map +1 -1
- package/dist/esm/services/showcase/showcaseProject.service.mjs +1 -1
- package/dist/esm/services/showcase/showcaseProject.service.mjs.map +1 -1
- package/dist/esm/services/user.service.mjs +1 -1
- package/dist/esm/services/user.service.mjs.map +1 -1
- package/dist/esm/types/user.types.mjs.map +1 -1
- package/dist/esm/utils/AI/askDocQuestion/embeddings/docs/en/dictionary/markdown.json +10934 -8925
- package/dist/esm/utils/auth/getAuth.mjs +34 -8
- package/dist/esm/utils/auth/getAuth.mjs.map +1 -1
- package/dist/types/controllers/organization.controller.d.ts.map +1 -1
- package/dist/types/controllers/project.controller.d.ts.map +1 -1
- package/dist/types/schemas/dictionary.schema.d.ts +8 -8
- package/dist/types/schemas/discussion.schema.d.ts +3 -3
- package/dist/types/schemas/organization.schema.d.ts +7 -7
- package/dist/types/schemas/plans.schema.d.ts +8 -8
- package/dist/types/schemas/project.schema.d.ts +7 -7
- package/dist/types/schemas/showcaseProject.schema.d.ts +17 -17
- package/dist/types/schemas/tag.schema.d.ts +8 -8
- package/dist/types/schemas/user.schema.d.ts +30 -8
- package/dist/types/services/showcase/showcaseProject.service.d.ts.map +1 -1
- package/dist/types/types/user.types.d.ts +2 -0
- package/dist/types/types/user.types.d.ts.map +1 -1
- package/dist/types/utils/auth/getAuth.d.ts.map +1 -1
- package/dist/types/utils/errors/ErrorHandler.d.ts +8 -4
- package/dist/types/utils/errors/ErrorHandler.d.ts.map +1 -1
- package/dist/types/utils/filtersAndPagination/getTagFiltersAndPagination.d.ts +4 -4
- package/package.json +14 -14
|
@@ -9,6 +9,7 @@ import { mapOrganizationToAPI } from "../mapper/organization.mjs";
|
|
|
9
9
|
import { mapProjectToAPI } from "../mapper/project.mjs";
|
|
10
10
|
import { sendVerificationUpdate } from "../../controllers/user.controller.mjs";
|
|
11
11
|
import { mapSessionToAPI } from "../mapper/session.mjs";
|
|
12
|
+
import { Types } from "mongoose";
|
|
12
13
|
import { passkey } from "@better-auth/passkey";
|
|
13
14
|
import { sso } from "@better-auth/sso";
|
|
14
15
|
import { betterAuth } from "better-auth";
|
|
@@ -120,13 +121,29 @@ const getAuth = (dbClient) => {
|
|
|
120
121
|
customSession(async ({ session }) => {
|
|
121
122
|
const typedSession = session;
|
|
122
123
|
const normalizeId = (id) => typeof id === "string" ? id : id?.buffer instanceof Uint8Array ? Buffer.from(id.buffer).toString("hex") : null;
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
const
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
124
|
+
let orgIdStr = typedSession.activeOrganizationId ? normalizeId(typedSession.activeOrganizationId) : null;
|
|
125
|
+
let projectIdStr = typedSession.activeProjectId ? normalizeId(typedSession.activeProjectId) : null;
|
|
126
|
+
const userData = typedSession.userId ? await getUserById(typedSession.userId) : null;
|
|
127
|
+
let isSessionUpdated = false;
|
|
128
|
+
if (userData) {
|
|
129
|
+
if (!orgIdStr && userData.lastActiveOrganizationId) {
|
|
130
|
+
orgIdStr = userData.lastActiveOrganizationId;
|
|
131
|
+
isSessionUpdated = true;
|
|
132
|
+
}
|
|
133
|
+
if (!projectIdStr && userData.lastActiveProjectId) {
|
|
134
|
+
projectIdStr = userData.lastActiveProjectId;
|
|
135
|
+
isSessionUpdated = true;
|
|
136
|
+
}
|
|
137
|
+
if (isSessionUpdated) {
|
|
138
|
+
await dbClient.db().collection("sessions").updateOne({ id: typedSession.id }, { $set: {
|
|
139
|
+
activeOrganizationId: orgIdStr,
|
|
140
|
+
activeProjectId: projectIdStr
|
|
141
|
+
} });
|
|
142
|
+
typedSession.activeOrganizationId = orgIdStr ?? void 0;
|
|
143
|
+
typedSession.activeProjectId = projectIdStr ?? void 0;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
const [orgData, projectData] = await Promise.all([orgIdStr ? getOrganizationById(orgIdStr) : null, projectIdStr ? getProjectById(projectIdStr) : null]);
|
|
130
147
|
const userAPI = userData ? mapUserToAPI(userData) : null;
|
|
131
148
|
let organizationAPI = orgData ? mapOrganizationToAPI(orgData) : null;
|
|
132
149
|
let projectAPI = projectData ? mapProjectToAPI(projectData) : null;
|
|
@@ -134,19 +151,28 @@ const getAuth = (dbClient) => {
|
|
|
134
151
|
const shouldClearProject = typedSession.activeProjectId && !projectData;
|
|
135
152
|
if (shouldClearOrg || shouldClearProject) {
|
|
136
153
|
const updateDoc = {};
|
|
154
|
+
const userUpdateDoc = {};
|
|
137
155
|
if (shouldClearOrg) {
|
|
138
156
|
updateDoc.activeOrganizationId = null;
|
|
139
157
|
updateDoc.activeProjectId = null;
|
|
158
|
+
userUpdateDoc.lastActiveOrganizationId = null;
|
|
159
|
+
userUpdateDoc.lastActiveProjectId = null;
|
|
140
160
|
typedSession.activeOrganizationId = void 0;
|
|
141
161
|
typedSession.activeProjectId = void 0;
|
|
142
162
|
organizationAPI = null;
|
|
143
163
|
projectAPI = null;
|
|
144
164
|
} else if (shouldClearProject) {
|
|
145
165
|
updateDoc.activeProjectId = null;
|
|
166
|
+
userUpdateDoc.lastActiveProjectId = null;
|
|
146
167
|
typedSession.activeProjectId = void 0;
|
|
147
168
|
projectAPI = null;
|
|
148
169
|
}
|
|
149
|
-
|
|
170
|
+
const promises = [dbClient.db().collection("sessions").updateOne({ id: typedSession.id }, { $set: updateDoc })];
|
|
171
|
+
if (userData) {
|
|
172
|
+
const userIdObj = typeof userData.id === "string" ? new Types.ObjectId(userData.id) : userData.id;
|
|
173
|
+
promises.push(dbClient.db().collection("users").updateOne({ _id: userIdObj }, { $set: userUpdateDoc }));
|
|
174
|
+
}
|
|
175
|
+
await Promise.all(promises);
|
|
150
176
|
}
|
|
151
177
|
return mapSessionToAPI(formatSession({
|
|
152
178
|
session: typedSession,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getAuth.mjs","names":[],"sources":["../../../../src/utils/auth/getAuth.ts"],"sourcesContent":["import { passkey } from '@better-auth/passkey';\nimport { sso } from '@better-auth/sso';\nimport { sendVerificationUpdate } from '@controllers/user.controller';\nimport { logger } from '@logger';\nimport { sendEmail } from '@services/email.service';\nimport { getOrganizationById } from '@services/organization.service';\nimport { getProjectById } from '@services/project.service';\nimport { getUserById } from '@services/user.service';\nimport { mapOrganizationToAPI } from '@utils/mapper/organization';\nimport { mapProjectToAPI } from '@utils/mapper/project';\nimport { mapSessionToAPI } from '@utils/mapper/session';\nimport { mapUserToAPI } from '@utils/mapper/user';\nimport type { OmitId } from '@utils/mongoDB/types';\nimport {\n computeEffectivePermission,\n getSessionRoles,\n intersectPermissions,\n} from '@utils/permissions';\nimport { betterAuth } from 'better-auth';\nimport { mongodbAdapter } from 'better-auth/adapters/mongodb';\nimport { createAuthMiddleware } from 'better-auth/api';\nimport { customSession, lastLoginMethod, twoFactor } from 'better-auth/plugins';\nimport { magicLink } from 'better-auth/plugins/magic-link';\nimport type { MongoClient } from 'mongodb';\nimport type { OrganizationAPI } from '@/types/organization.types';\nimport type { ProjectAPI } from '@/types/project.types';\nimport type {\n Session,\n SessionContext,\n SessionDataApi,\n} from '@/types/session.types';\nimport type { UserAPI } from '@/types/user.types';\n\nexport type Auth = ReturnType<typeof betterAuth>;\n\n// Check if we are in production based on the domain or NODE_ENV\nconst isProd = process.env.DOMAIN !== 'localhost';\n\nexport const formatSession = (session: SessionContext): OmitId<Session> => {\n const roles = getSessionRoles(session);\n let permissions = computeEffectivePermission(roles);\n\n // Intersect in the case a Access Token try to override the permissions\n if (session.permissions) {\n permissions = intersectPermissions(permissions, session.permissions);\n }\n\n const resultSession = {\n session: session.session,\n user: session.user,\n organization: session.organization,\n project: session.project,\n authType: 'session',\n permissions,\n roles,\n } as OmitId<Session>;\n\n return resultSession;\n};\n\nexport const getAuth = (dbClient: MongoClient): Auth => {\n if (!dbClient) {\n throw new Error('MongoDB connection not established');\n }\n\n const auth = betterAuth({\n appName: 'Intlayer',\n\n baseURL: process.env.BACKEND_URL,\n\n database: mongodbAdapter(dbClient.db()),\n\n /**\n * User model\n */\n user: {\n modelName: 'users',\n },\n\n databaseHooks: {\n user: {\n create: {\n // Runs once, immediately after the INSERT\n after: async (user) => {\n if (!user?.emailVerified) return;\n\n await sendEmail({\n type: 'welcome',\n to: user.email,\n username: user.name ?? user.email.split('@')[0],\n loginLink: `${process.env.APP_URL}/auth/login`,\n locale: (user as any).lang,\n });\n logger.info('Welcome e‑mail delivered', {\n email: user.email,\n });\n },\n },\n },\n },\n\n hooks: {\n after: createAuthMiddleware(async (ctx) => {\n const { path, context } = ctx;\n\n const newUser = context.newSession?.user;\n const existingUser = context.session?.user;\n const user = newUser ?? existingUser;\n\n if (!user) return;\n\n if (path.includes('/verify-email')) {\n // Fetch fresh user from DB so emailVerified is definitely up-to-date\n // (the hook context user may be a stale snapshot from before the DB write).\n const freshUser = await getUserById(user.id);\n\n if (freshUser) {\n sendVerificationUpdate(freshUser);\n }\n\n logger.info('SSE verification update sent', {\n email: user.email,\n userId: user.id,\n });\n\n await sendEmail({\n type: 'welcome',\n to: user.email,\n username: user.name ?? user.email.split('@')[0],\n loginLink: `${process.env.APP_URL}/auth/login`,\n locale: (user as any).lang,\n });\n logger.info('Welcome e‑mail delivered', {\n email: user.email,\n });\n }\n }),\n },\n\n advanced: {\n crossSubDomainCookies: {\n enabled: isProd,\n domain: isProd ? process.env.DOMAIN : undefined,\n additionalCookies: ['session_token'],\n },\n cookiePrefix: 'intlayer',\n cookies: {\n session_token: {\n name: 'session_token',\n attributes: {\n httpOnly: true,\n secure: isProd,\n sameSite: 'lax',\n },\n },\n },\n },\n\n secret: process.env.BETTER_AUTH_SECRET as string,\n session: {\n modelName: 'sessions',\n id: 'id',\n\n // Session lives for 30 days; each access made more than 1 day after the\n // last refresh slides the expiry forward, so an active user effectively\n // stays signed in indefinitely.\n expiresIn: 60 * 60 * 24 * 30,\n updateAge: 60 * 60 * 24,\n\n // Cache the session in a signed cookie for 5 minutes to avoid hitting\n // Mongo on every request while still picking up updateAge refreshes.\n cookieCache: {\n enabled: false,\n maxAge: 5 * 60,\n },\n\n additionalFields: {\n activeOrganizationId: { type: 'string', nullable: true, input: false },\n activeProjectId: { type: 'string', nullable: true, input: false },\n },\n },\n\n plugins: [\n customSession(async ({ session }) => {\n const typedSession = session as unknown as SessionDataApi;\n\n const normalizeId = (id: any): string | null =>\n typeof id === 'string'\n ? id\n : id?.buffer instanceof Uint8Array\n ? Buffer.from(id.buffer).toString('hex')\n : null;\n\n const orgIdStr = typedSession.activeOrganizationId\n ? normalizeId(typedSession.activeOrganizationId)\n : null;\n const projectIdStr = typedSession.activeProjectId\n ? normalizeId(typedSession.activeProjectId)\n : null;\n\n const [userData, orgData, projectData] = await Promise.all([\n typedSession.userId ? getUserById(typedSession.userId) : null,\n orgIdStr ? getOrganizationById(orgIdStr) : null,\n projectIdStr ? getProjectById(projectIdStr) : null,\n ]);\n\n const userAPI: UserAPI | null = userData\n ? mapUserToAPI(userData)\n : null;\n let organizationAPI: OrganizationAPI | null = orgData\n ? mapOrganizationToAPI(orgData)\n : null;\n let projectAPI: ProjectAPI | null = projectData\n ? mapProjectToAPI(projectData)\n : null;\n\n // Cleanup if normalization failed or data not found (Zombie session)\n const shouldClearOrg = typedSession.activeOrganizationId && !orgData;\n const shouldClearProject = typedSession.activeProjectId && !projectData;\n\n if (shouldClearOrg || shouldClearProject) {\n const updateDoc: any = {};\n\n if (shouldClearOrg) {\n updateDoc.activeOrganizationId = null;\n updateDoc.activeProjectId = null;\n\n typedSession.activeOrganizationId = undefined;\n typedSession.activeProjectId = undefined;\n organizationAPI = null;\n projectAPI = null;\n } else if (shouldClearProject) {\n updateDoc.activeProjectId = null;\n\n typedSession.activeProjectId = undefined;\n projectAPI = null;\n }\n\n await dbClient\n .db()\n .collection('sessions')\n .updateOne({ id: typedSession.id }, { $set: updateDoc });\n }\n\n const sessionWithNoPermission: SessionContext = {\n session: typedSession,\n user: userAPI!,\n organization: organizationAPI ?? null,\n project: projectAPI ?? null,\n authType: 'session',\n };\n\n const formattedSession = formatSession(sessionWithNoPermission);\n\n return mapSessionToAPI(formattedSession);\n }),\n lastLoginMethod({\n storeInDatabase: true, // adds user.lastLoginMethod in DB and session\n schema: {\n user: {\n lastLoginMethod: 'lastLoginMethod', // Custom field name\n },\n },\n customResolveMethod: (context) => {\n // When user clicks the magic link\n if (context.path === '/magic-link/verify') {\n return 'magic-link';\n }\n\n // Fallback to default behavior for everything else\n return null;\n },\n }),\n passkey({\n rpID: process.env.DOMAIN,\n rpName: 'Intlayer',\n }),\n twoFactor(),\n magicLink({\n sendMagicLink: async ({ email, url }) => {\n logger.info('sending magic link', { email, url });\n await sendEmail({\n type: 'magicLink',\n to: email,\n username: email.split('@')[0],\n magicLink: url,\n });\n },\n }),\n sso({\n organizationProvisioning: {},\n }),\n ],\n\n emailAndPassword: {\n enabled: true,\n disableSignUp: false,\n requireEmailVerification: true,\n minPasswordLength: 8,\n maxPasswordLength: 128,\n autoSignIn: true,\n sendResetPassword: async ({ user, token }) => {\n logger.info('sending reset password email', { email: user.email });\n await sendEmail({\n type: 'resetPassword',\n to: user.email,\n username: user.name ?? user.email.split('@')[0],\n resetLink: `${process.env.APP_URL}/auth/password/reset?token=${token}`,\n });\n },\n resetPasswordTokenExpiresIn: 3600,\n },\n\n emailVerification: {\n autoSignInAfterVerification: true,\n sendOnSignIn: true,\n sendVerificationEmail: async ({ user, url }) => {\n logger.info('sending verification email', { email: user.email });\n // Override callbackURL so the link redirects to the app after verification,\n // not to the backend root which just shows the raw API response.\n const verificationUrl = new URL(url);\n verificationUrl.searchParams.set(\n 'callbackURL',\n process.env.APP_URL ?? '/'\n );\n await sendEmail({\n type: 'validate',\n to: user.email,\n username: user.name ?? user.email.split('@')[0],\n validationLink: verificationUrl.toString(),\n });\n },\n },\n\n trustedOrigins: [\n process.env.WEBSITE_URL,\n process.env.APP_URL,\n process.env.SHOWCASE_URL,\n ].filter(Boolean) as string[],\n\n accountLinking: {\n enabled: true, // allow linking in general\n trustedProviders: [\n 'google',\n 'github',\n 'linkedin',\n 'gitlab',\n 'atlassian',\n 'microsoft',\n 'email-password',\n 'magic-link',\n 'passkey',\n ],\n },\n socialProviders: {\n google: {\n clientId: process.env.GOOGLE_CLIENT_ID as string,\n clientSecret: process.env.GOOGLE_CLIENT_SECRET as string,\n },\n github: {\n clientId: process.env.GITHUB_CLIENT_ID as string,\n clientSecret: process.env.GITHUB_CLIENT_SECRET as string,\n },\n atlassian: {\n clientId: process.env.ATLASSIAN_CLIENT_ID as string,\n clientSecret: process.env.ATLASSIAN_CLIENT_SECRET as string,\n },\n gitlab: {\n clientId: process.env.GITLAB_CLIENT_ID as string,\n clientSecret: process.env.GITLAB_CLIENT_SECRET as string,\n },\n linkedin: {\n clientId: process.env.LINKEDIN_CLIENT_ID as string,\n clientSecret: process.env.LINKEDIN_CLIENT_SECRET as string,\n },\n microsoft: {\n clientId: process.env.MICROSOFT_CLIENT_ID as string,\n clientSecret: process.env.MICROSOFT_CLIENT_SECRET as string,\n },\n // socialProviders: {\n // apple: {\n // clientId: process.env.APPLE_CLIENT_ID as string,\n // clientSecret: process.env.APPLE_CLIENT_SECRET as string,\n // // Optional\n // appBundleIdentifier: process.env\n // .APPLE_APP_BUNDLE_IDENTIFIER as string,\n // },\n // },\n // // Add appleid.apple.com to trustedOrigins for Sign In with Apple flows\n // trustedOrigins: ['https://appleid.apple.com'],\n },\n\n logger: {\n log: (level, message, ...args) => logger[level](message, ...args),\n },\n });\n\n return auth;\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"getAuth.mjs","names":[],"sources":["../../../../src/utils/auth/getAuth.ts"],"sourcesContent":["import { passkey } from '@better-auth/passkey';\nimport { sso } from '@better-auth/sso';\nimport { sendVerificationUpdate } from '@controllers/user.controller';\nimport { logger } from '@logger';\nimport { sendEmail } from '@services/email.service';\nimport { getOrganizationById } from '@services/organization.service';\nimport { getProjectById } from '@services/project.service';\nimport { getUserById } from '@services/user.service';\nimport { mapOrganizationToAPI } from '@utils/mapper/organization';\nimport { mapProjectToAPI } from '@utils/mapper/project';\nimport { mapSessionToAPI } from '@utils/mapper/session';\nimport { mapUserToAPI } from '@utils/mapper/user';\nimport type { OmitId } from '@utils/mongoDB/types';\nimport {\n computeEffectivePermission,\n getSessionRoles,\n intersectPermissions,\n} from '@utils/permissions';\nimport { betterAuth } from 'better-auth';\nimport { mongodbAdapter } from 'better-auth/adapters/mongodb';\nimport { createAuthMiddleware } from 'better-auth/api';\nimport { customSession, lastLoginMethod, twoFactor } from 'better-auth/plugins';\nimport { magicLink } from 'better-auth/plugins/magic-link';\nimport type { MongoClient } from 'mongodb';\nimport { Types } from 'mongoose';\nimport type { OrganizationAPI } from '@/types/organization.types';\nimport type { ProjectAPI } from '@/types/project.types';\nimport type {\n Session,\n SessionContext,\n SessionDataApi,\n} from '@/types/session.types';\nimport type { UserAPI } from '@/types/user.types';\n\nexport type Auth = ReturnType<typeof betterAuth>;\n\n// Check if we are in production based on the domain or NODE_ENV\nconst isProd = process.env.DOMAIN !== 'localhost';\n\nexport const formatSession = (session: SessionContext): OmitId<Session> => {\n const roles = getSessionRoles(session);\n let permissions = computeEffectivePermission(roles);\n\n // Intersect in the case a Access Token try to override the permissions\n if (session.permissions) {\n permissions = intersectPermissions(permissions, session.permissions);\n }\n\n const resultSession = {\n session: session.session,\n user: session.user,\n organization: session.organization,\n project: session.project,\n authType: 'session',\n permissions,\n roles,\n } as OmitId<Session>;\n\n return resultSession;\n};\n\nexport const getAuth = (dbClient: MongoClient): Auth => {\n if (!dbClient) {\n throw new Error('MongoDB connection not established');\n }\n\n const auth = betterAuth({\n appName: 'Intlayer',\n\n baseURL: process.env.BACKEND_URL,\n\n database: mongodbAdapter(dbClient.db()),\n\n /**\n * User model\n */\n user: {\n modelName: 'users',\n },\n\n databaseHooks: {\n user: {\n create: {\n // Runs once, immediately after the INSERT\n after: async (user) => {\n if (!user?.emailVerified) return;\n\n await sendEmail({\n type: 'welcome',\n to: user.email,\n username: user.name ?? user.email.split('@')[0],\n loginLink: `${process.env.APP_URL}/auth/login`,\n locale: (user as any).lang,\n });\n logger.info('Welcome e‑mail delivered', {\n email: user.email,\n });\n },\n },\n },\n },\n\n hooks: {\n after: createAuthMiddleware(async (ctx) => {\n const { path, context } = ctx;\n\n const newUser = context.newSession?.user;\n const existingUser = context.session?.user;\n const user = newUser ?? existingUser;\n\n if (!user) return;\n\n if (path.includes('/verify-email')) {\n // Fetch fresh user from DB so emailVerified is definitely up-to-date\n // (the hook context user may be a stale snapshot from before the DB write).\n const freshUser = await getUserById(user.id);\n\n if (freshUser) {\n sendVerificationUpdate(freshUser);\n }\n\n logger.info('SSE verification update sent', {\n email: user.email,\n userId: user.id,\n });\n\n await sendEmail({\n type: 'welcome',\n to: user.email,\n username: user.name ?? user.email.split('@')[0],\n loginLink: `${process.env.APP_URL}/auth/login`,\n locale: (user as any).lang,\n });\n logger.info('Welcome e‑mail delivered', {\n email: user.email,\n });\n }\n }),\n },\n\n advanced: {\n crossSubDomainCookies: {\n enabled: isProd,\n domain: isProd ? process.env.DOMAIN : undefined,\n additionalCookies: ['session_token'],\n },\n cookiePrefix: 'intlayer',\n cookies: {\n session_token: {\n name: 'session_token',\n attributes: {\n httpOnly: true,\n secure: isProd,\n sameSite: 'lax',\n },\n },\n },\n },\n\n secret: process.env.BETTER_AUTH_SECRET as string,\n session: {\n modelName: 'sessions',\n id: 'id',\n\n // Session lives for 30 days; each access made more than 1 day after the\n // last refresh slides the expiry forward, so an active user effectively\n // stays signed in indefinitely.\n expiresIn: 60 * 60 * 24 * 30,\n updateAge: 60 * 60 * 24,\n\n // Cache the session in a signed cookie for 5 minutes to avoid hitting\n // Mongo on every request while still picking up updateAge refreshes.\n cookieCache: {\n enabled: false,\n maxAge: 5 * 60,\n },\n\n additionalFields: {\n activeOrganizationId: { type: 'string', nullable: true, input: false },\n activeProjectId: { type: 'string', nullable: true, input: false },\n },\n },\n\n plugins: [\n customSession(async ({ session }) => {\n const typedSession = session as unknown as SessionDataApi;\n\n const normalizeId = (id: any): string | null =>\n typeof id === 'string'\n ? id\n : id?.buffer instanceof Uint8Array\n ? Buffer.from(id.buffer).toString('hex')\n : null;\n\n let orgIdStr = typedSession.activeOrganizationId\n ? normalizeId(typedSession.activeOrganizationId)\n : null;\n let projectIdStr = typedSession.activeProjectId\n ? normalizeId(typedSession.activeProjectId)\n : null;\n\n const userData = typedSession.userId\n ? await getUserById(typedSession.userId)\n : null;\n\n // If the session does not have an active organization or project context, try to restore from the user's last active context\n let isSessionUpdated = false;\n if (userData) {\n if (!orgIdStr && userData.lastActiveOrganizationId) {\n orgIdStr = userData.lastActiveOrganizationId;\n isSessionUpdated = true;\n }\n if (!projectIdStr && userData.lastActiveProjectId) {\n projectIdStr = userData.lastActiveProjectId;\n isSessionUpdated = true;\n }\n\n if (isSessionUpdated) {\n await dbClient\n .db()\n .collection('sessions')\n .updateOne(\n { id: typedSession.id },\n {\n $set: {\n activeOrganizationId: orgIdStr,\n activeProjectId: projectIdStr,\n },\n }\n );\n typedSession.activeOrganizationId = orgIdStr ?? undefined;\n typedSession.activeProjectId = projectIdStr ?? undefined;\n }\n }\n\n const [orgData, projectData] = await Promise.all([\n orgIdStr ? getOrganizationById(orgIdStr) : null,\n projectIdStr ? getProjectById(projectIdStr) : null,\n ]);\n\n const userAPI: UserAPI | null = userData\n ? mapUserToAPI(userData)\n : null;\n let organizationAPI: OrganizationAPI | null = orgData\n ? mapOrganizationToAPI(orgData)\n : null;\n let projectAPI: ProjectAPI | null = projectData\n ? mapProjectToAPI(projectData)\n : null;\n\n // Cleanup if normalization failed or data not found (Zombie session)\n const shouldClearOrg = typedSession.activeOrganizationId && !orgData;\n const shouldClearProject = typedSession.activeProjectId && !projectData;\n\n if (shouldClearOrg || shouldClearProject) {\n const updateDoc: any = {};\n const userUpdateDoc: any = {};\n\n if (shouldClearOrg) {\n updateDoc.activeOrganizationId = null;\n updateDoc.activeProjectId = null;\n userUpdateDoc.lastActiveOrganizationId = null;\n userUpdateDoc.lastActiveProjectId = null;\n\n typedSession.activeOrganizationId = undefined;\n typedSession.activeProjectId = undefined;\n organizationAPI = null;\n projectAPI = null;\n } else if (shouldClearProject) {\n updateDoc.activeProjectId = null;\n userUpdateDoc.lastActiveProjectId = null;\n\n typedSession.activeProjectId = undefined;\n projectAPI = null;\n }\n\n const promises: Promise<any>[] = [\n dbClient\n .db()\n .collection('sessions')\n .updateOne({ id: typedSession.id }, { $set: updateDoc }),\n ];\n\n if (userData) {\n const userIdObj =\n typeof userData.id === 'string'\n ? new Types.ObjectId(userData.id)\n : userData.id;\n promises.push(\n dbClient\n .db()\n .collection('users')\n .updateOne({ _id: userIdObj }, { $set: userUpdateDoc })\n );\n }\n\n await Promise.all(promises);\n }\n\n const sessionWithNoPermission: SessionContext = {\n session: typedSession,\n user: userAPI!,\n organization: organizationAPI ?? null,\n project: projectAPI ?? null,\n authType: 'session',\n };\n\n const formattedSession = formatSession(sessionWithNoPermission);\n\n return mapSessionToAPI(formattedSession);\n }),\n lastLoginMethod({\n storeInDatabase: true, // adds user.lastLoginMethod in DB and session\n schema: {\n user: {\n lastLoginMethod: 'lastLoginMethod', // Custom field name\n },\n },\n customResolveMethod: (context) => {\n // When user clicks the magic link\n if (context.path === '/magic-link/verify') {\n return 'magic-link';\n }\n\n // Fallback to default behavior for everything else\n return null;\n },\n }),\n passkey({\n rpID: process.env.DOMAIN,\n rpName: 'Intlayer',\n }),\n twoFactor(),\n magicLink({\n sendMagicLink: async ({ email, url }) => {\n logger.info('sending magic link', { email, url });\n await sendEmail({\n type: 'magicLink',\n to: email,\n username: email.split('@')[0],\n magicLink: url,\n });\n },\n }),\n sso({\n organizationProvisioning: {},\n }),\n ],\n\n emailAndPassword: {\n enabled: true,\n disableSignUp: false,\n requireEmailVerification: true,\n minPasswordLength: 8,\n maxPasswordLength: 128,\n autoSignIn: true,\n sendResetPassword: async ({ user, token }) => {\n logger.info('sending reset password email', { email: user.email });\n await sendEmail({\n type: 'resetPassword',\n to: user.email,\n username: user.name ?? user.email.split('@')[0],\n resetLink: `${process.env.APP_URL}/auth/password/reset?token=${token}`,\n });\n },\n resetPasswordTokenExpiresIn: 3600,\n },\n\n emailVerification: {\n autoSignInAfterVerification: true,\n sendOnSignIn: true,\n sendVerificationEmail: async ({ user, url }) => {\n logger.info('sending verification email', { email: user.email });\n // Override callbackURL so the link redirects to the app after verification,\n // not to the backend root which just shows the raw API response.\n const verificationUrl = new URL(url);\n verificationUrl.searchParams.set(\n 'callbackURL',\n process.env.APP_URL ?? '/'\n );\n await sendEmail({\n type: 'validate',\n to: user.email,\n username: user.name ?? user.email.split('@')[0],\n validationLink: verificationUrl.toString(),\n });\n },\n },\n\n trustedOrigins: [\n process.env.WEBSITE_URL,\n process.env.APP_URL,\n process.env.SHOWCASE_URL,\n ].filter(Boolean) as string[],\n\n accountLinking: {\n enabled: true, // allow linking in general\n trustedProviders: [\n 'google',\n 'github',\n 'linkedin',\n 'gitlab',\n 'atlassian',\n 'microsoft',\n 'email-password',\n 'magic-link',\n 'passkey',\n ],\n },\n socialProviders: {\n google: {\n clientId: process.env.GOOGLE_CLIENT_ID as string,\n clientSecret: process.env.GOOGLE_CLIENT_SECRET as string,\n },\n github: {\n clientId: process.env.GITHUB_CLIENT_ID as string,\n clientSecret: process.env.GITHUB_CLIENT_SECRET as string,\n },\n atlassian: {\n clientId: process.env.ATLASSIAN_CLIENT_ID as string,\n clientSecret: process.env.ATLASSIAN_CLIENT_SECRET as string,\n },\n gitlab: {\n clientId: process.env.GITLAB_CLIENT_ID as string,\n clientSecret: process.env.GITLAB_CLIENT_SECRET as string,\n },\n linkedin: {\n clientId: process.env.LINKEDIN_CLIENT_ID as string,\n clientSecret: process.env.LINKEDIN_CLIENT_SECRET as string,\n },\n microsoft: {\n clientId: process.env.MICROSOFT_CLIENT_ID as string,\n clientSecret: process.env.MICROSOFT_CLIENT_SECRET as string,\n },\n // socialProviders: {\n // apple: {\n // clientId: process.env.APPLE_CLIENT_ID as string,\n // clientSecret: process.env.APPLE_CLIENT_SECRET as string,\n // // Optional\n // appBundleIdentifier: process.env\n // .APPLE_APP_BUNDLE_IDENTIFIER as string,\n // },\n // },\n // // Add appleid.apple.com to trustedOrigins for Sign In with Apple flows\n // trustedOrigins: ['https://appleid.apple.com'],\n },\n\n logger: {\n log: (level, message, ...args) => logger[level](message, ...args),\n },\n });\n\n return auth;\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"organization.controller.d.ts","names":[],"sources":["../../../src/controllers/organization.controller.ts"],"mappings":";;;;;;;;;KAmCY,sBAAA,GACV,oBAAoB,CAAC,yBAAA;AAAA,KACX,sBAAA,GAAyB,iBAAiB,CAAC,eAAA;AAFvD;;;AAAA,cAOa,gBAAA,GACX,OAAA,EAAS,cAAA;EAAiB,WAAA,EAAa,sBAAA;AAAA,IACvC,KAAA,EAAO,YAAA,KAAY,OAAA;AAAA,KAiDT,oBAAA;EAAyB,cAAc;AAAA;AAAA,KACvC,qBAAA,GAAwB,YAAY,CAAC,eAAA;AApDjD;;;AAAA,cAyDa,eAAA,GACX,OAAA,EAAS,cAAA;EAAiB,MAAA,EAAQ,oBAAA;AAAA,IAClC,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,KAwCS,mBAAA,GAAsB,wBAAwB;AAAA,KAC9C,qBAAA,GAAwB,YAAY,CAAC,eAAA;;;;cAKpC,eAAA,GACX,OAAA,EAAS,cAAA;EAAiB,IAAA,EAAM,mBAAA;AAAA,IAChC,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,KAuES,sBAAA,GAAyB,OAAO,CAAC,YAAA;AAAA,KACjC,wBAAA,GAA2B,YAAY,CAAC,eAAA;;AAnL/B;AAiDrB;cAuIa,kBAAA,GACX,OAAA,EAAS,cAAA;EAAiB,IAAA,EAAM,sBAAA;AAAA,IAChC,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,KAuFS,yBAAA;EACV,SAAS;AAAA;AAAA,KAEC,2BAAA,GAA8B,YAAY,CAAC,eAAA;;AAnOS;AAKhE;cAmOa,qBAAA,GACX,OAAA,EAAS,cAAA;EAAiB,IAAA,EAAM,yBAAA;AAAA,IAChC,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,KAiIS,6BAAA,GAAgC,OAAA;EAC1C,UAAA,GAAa,IAAA,GAAO,OAAA;EACpB,SAAA,GAAY,IAAA,GAAO,OAAA;AAAA;AAAA,KAET,+BAAA,GAAkC,YAAY,CAAC,eAAA;;;;cAK9C,yBAAA,GACX,OAAA,EAAS,cAAA;EAAiB,IAAA,EAAM,6BAAA;AAAA,IAChC,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,KAiHS,mCAAA;EAAwC,cAAc;AAAA;AAAA,KACtD,iCAAA,GAAoC,OAAA;EAC9C,UAAA,GAAa,IAAA,GAAO,OAAA;EACpB,SAAA,GAAY,IAAA,GAAO,OAAA;AAAA;AAAA,KAET,mCAAA,GAAsC,YAAY,CAAC,eAAA;AA7b/D;;;AAAA,cAkca,6BAAA,GACX,OAAA,EAAS,cAAA;EACP,MAAA,EAAQ,mCAAA;EACR,IAAA,EAAM,iCAAA;AAAA,IAER,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,KAmHS,wBAAA,GAA2B,YAAY,CAAC,eAAA;;;;cAKvC,kBAAA,GACX,QAAA,EAAU,cAAA,EACV,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"organization.controller.d.ts","names":[],"sources":["../../../src/controllers/organization.controller.ts"],"mappings":";;;;;;;;;KAmCY,sBAAA,GACV,oBAAoB,CAAC,yBAAA;AAAA,KACX,sBAAA,GAAyB,iBAAiB,CAAC,eAAA;AAFvD;;;AAAA,cAOa,gBAAA,GACX,OAAA,EAAS,cAAA;EAAiB,WAAA,EAAa,sBAAA;AAAA,IACvC,KAAA,EAAO,YAAA,KAAY,OAAA;AAAA,KAiDT,oBAAA;EAAyB,cAAc;AAAA;AAAA,KACvC,qBAAA,GAAwB,YAAY,CAAC,eAAA;AApDjD;;;AAAA,cAyDa,eAAA,GACX,OAAA,EAAS,cAAA;EAAiB,MAAA,EAAQ,oBAAA;AAAA,IAClC,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,KAwCS,mBAAA,GAAsB,wBAAwB;AAAA,KAC9C,qBAAA,GAAwB,YAAY,CAAC,eAAA;;;;cAKpC,eAAA,GACX,OAAA,EAAS,cAAA;EAAiB,IAAA,EAAM,mBAAA;AAAA,IAChC,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,KAuES,sBAAA,GAAyB,OAAO,CAAC,YAAA;AAAA,KACjC,wBAAA,GAA2B,YAAY,CAAC,eAAA;;AAnL/B;AAiDrB;cAuIa,kBAAA,GACX,OAAA,EAAS,cAAA;EAAiB,IAAA,EAAM,sBAAA;AAAA,IAChC,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,KAuFS,yBAAA;EACV,SAAS;AAAA;AAAA,KAEC,2BAAA,GAA8B,YAAY,CAAC,eAAA;;AAnOS;AAKhE;cAmOa,qBAAA,GACX,OAAA,EAAS,cAAA;EAAiB,IAAA,EAAM,yBAAA;AAAA,IAChC,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,KAiIS,6BAAA,GAAgC,OAAA;EAC1C,UAAA,GAAa,IAAA,GAAO,OAAA;EACpB,SAAA,GAAY,IAAA,GAAO,OAAA;AAAA;AAAA,KAET,+BAAA,GAAkC,YAAY,CAAC,eAAA;;;;cAK9C,yBAAA,GACX,OAAA,EAAS,cAAA;EAAiB,IAAA,EAAM,6BAAA;AAAA,IAChC,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,KAiHS,mCAAA;EAAwC,cAAc;AAAA;AAAA,KACtD,iCAAA,GAAoC,OAAA;EAC9C,UAAA,GAAa,IAAA,GAAO,OAAA;EACpB,SAAA,GAAY,IAAA,GAAO,OAAA;AAAA;AAAA,KAET,mCAAA,GAAsC,YAAY,CAAC,eAAA;AA7b/D;;;AAAA,cAkca,6BAAA,GACX,OAAA,EAAS,cAAA;EACP,MAAA,EAAQ,mCAAA;EACR,IAAA,EAAM,iCAAA;AAAA,IAER,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,KAmHS,wBAAA,GAA2B,YAAY,CAAC,eAAA;;;;cAKvC,kBAAA,GACX,QAAA,EAAU,cAAA,EACV,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,KAkIS,iCAAA;EAAsC,cAAc;AAAA;AAAA,KACpD,iCAAA,GAAoC,YAAY,CAAC,eAAA;;;;cAKhD,2BAAA,GACX,OAAA,EAAS,cAAA;EAAiB,MAAA,EAAQ,iCAAA;AAAA,IAClC,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,KA8DS,uBAAA;EACV,cAAA,WAAyB,KAAA,CAAM,QAAQ;AAAA;AAAA,KAE7B,wBAAA,GAA2B,YAAY,CAAC,eAAA;;AAhsBK;AACzD;cAosBa,kBAAA,GACX,OAAA,EAAS,cAAA;EAAiB,MAAA,EAAQ,uBAAA;AAAA,IAClC,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,KA0GS,0BAAA,GAA6B,YAAY;AA5yBrD;;;AAAA,cAizBa,oBAAA,GACX,QAAA,EAAU,cAAA,EACV,KAAA,EAAO,YAAA,KACN,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.controller.d.ts","names":[],"sources":["../../../src/controllers/project.controller.ts"],"mappings":";;;;;;;;;KAkCY,iBAAA,GAAoB,oBAAoB,CAAC,oBAAA;AAAA,KACzC,iBAAA,GAAoB,iBAAiB,CAAC,UAAA;AADlD;;;AAAA,cAMa,WAAA,GACX,OAAA,EAAS,cAAA;EAAiB,WAAA,EAAa,iBAAA;AAAA,IACvC,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,KAyDS,cAAA,GAAiB,mBAAmB;AAAA,KACpC,gBAAA,GAAmB,YAAY,CAAC,UAAA;;AAlEgB;AAK5D;cAkEa,UAAA,GACX,OAAA,EAAS,cAAA;EAAiB,IAAA,EAAM,cAAA;AAAA,IAChC,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,KA4HS,iBAAA,GAAoB,OAAO,CAAC,UAAA;AAAA,KAC5B,mBAAA,GAAsB,YAAY,CAAC,UAAA;;;;cAKlC,aAAA,GACX,OAAA,EAAS,cAAA;EAAiB,IAAA,EAAM,iBAAA;AAAA,IAChC,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"project.controller.d.ts","names":[],"sources":["../../../src/controllers/project.controller.ts"],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ declare const dictionarySchema: Schema<DictionarySchema, import("mongoose").Mode
|
|
|
13
13
|
}, "id"> & {
|
|
14
14
|
id: string;
|
|
15
15
|
}, {
|
|
16
|
-
|
|
16
|
+
createdAt?: import("mongoose").SchemaDefinitionProperty<number, DictionarySchema, import("mongoose").Document<unknown, {}, DictionarySchema, {
|
|
17
17
|
id: string;
|
|
18
18
|
}, import("mongoose").DefaultSchemaOptions> & Omit<Omit<Dictionary, "id"> & {
|
|
19
19
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -24,7 +24,7 @@ declare const dictionarySchema: Schema<DictionarySchema, import("mongoose").Mode
|
|
|
24
24
|
}, "id"> & {
|
|
25
25
|
id: string;
|
|
26
26
|
}>;
|
|
27
|
-
|
|
27
|
+
updatedAt?: import("mongoose").SchemaDefinitionProperty<number, DictionarySchema, import("mongoose").Document<unknown, {}, DictionarySchema, {
|
|
28
28
|
id: string;
|
|
29
29
|
}, import("mongoose").DefaultSchemaOptions> & Omit<Omit<Dictionary, "id"> & {
|
|
30
30
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -35,7 +35,7 @@ declare const dictionarySchema: Schema<DictionarySchema, import("mongoose").Mode
|
|
|
35
35
|
}, "id"> & {
|
|
36
36
|
id: string;
|
|
37
37
|
}>;
|
|
38
|
-
|
|
38
|
+
description?: import("mongoose").SchemaDefinitionProperty<string, DictionarySchema, import("mongoose").Document<unknown, {}, DictionarySchema, {
|
|
39
39
|
id: string;
|
|
40
40
|
}, import("mongoose").DefaultSchemaOptions> & Omit<Omit<Dictionary, "id"> & {
|
|
41
41
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -46,7 +46,7 @@ declare const dictionarySchema: Schema<DictionarySchema, import("mongoose").Mode
|
|
|
46
46
|
}, "id"> & {
|
|
47
47
|
id: string;
|
|
48
48
|
}>;
|
|
49
|
-
|
|
49
|
+
title?: import("mongoose").SchemaDefinitionProperty<string, DictionarySchema, import("mongoose").Document<unknown, {}, DictionarySchema, {
|
|
50
50
|
id: string;
|
|
51
51
|
}, import("mongoose").DefaultSchemaOptions> & Omit<Omit<Dictionary, "id"> & {
|
|
52
52
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -57,7 +57,7 @@ declare const dictionarySchema: Schema<DictionarySchema, import("mongoose").Mode
|
|
|
57
57
|
}, "id"> & {
|
|
58
58
|
id: string;
|
|
59
59
|
}>;
|
|
60
|
-
|
|
60
|
+
content?: import("mongoose").SchemaDefinitionProperty<VersionedContent, DictionarySchema, import("mongoose").Document<unknown, {}, DictionarySchema, {
|
|
61
61
|
id: string;
|
|
62
62
|
}, import("mongoose").DefaultSchemaOptions> & Omit<Omit<Dictionary, "id"> & {
|
|
63
63
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -68,7 +68,7 @@ declare const dictionarySchema: Schema<DictionarySchema, import("mongoose").Mode
|
|
|
68
68
|
}, "id"> & {
|
|
69
69
|
id: string;
|
|
70
70
|
}>;
|
|
71
|
-
|
|
71
|
+
creatorId?: import("mongoose").SchemaDefinitionProperty<import("mongoose").Types.ObjectId, DictionarySchema, import("mongoose").Document<unknown, {}, DictionarySchema, {
|
|
72
72
|
id: string;
|
|
73
73
|
}, import("mongoose").DefaultSchemaOptions> & Omit<Omit<Dictionary, "id"> & {
|
|
74
74
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -79,7 +79,7 @@ declare const dictionarySchema: Schema<DictionarySchema, import("mongoose").Mode
|
|
|
79
79
|
}, "id"> & {
|
|
80
80
|
id: string;
|
|
81
81
|
}>;
|
|
82
|
-
|
|
82
|
+
key?: import("mongoose").SchemaDefinitionProperty<string, DictionarySchema, import("mongoose").Document<unknown, {}, DictionarySchema, {
|
|
83
83
|
id: string;
|
|
84
84
|
}, import("mongoose").DefaultSchemaOptions> & Omit<Omit<Dictionary, "id"> & {
|
|
85
85
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -101,7 +101,7 @@ declare const dictionarySchema: Schema<DictionarySchema, import("mongoose").Mode
|
|
|
101
101
|
}, "id"> & {
|
|
102
102
|
id: string;
|
|
103
103
|
}>;
|
|
104
|
-
|
|
104
|
+
tags?: import("mongoose").SchemaDefinitionProperty<string[], DictionarySchema, import("mongoose").Document<unknown, {}, DictionarySchema, {
|
|
105
105
|
id: string;
|
|
106
106
|
}, import("mongoose").DefaultSchemaOptions> & Omit<Omit<Dictionary, "id"> & {
|
|
107
107
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -68,7 +68,7 @@ declare const discussionSchema: Schema<DiscussionSchema, import("mongoose").Mode
|
|
|
68
68
|
}, "id"> & {
|
|
69
69
|
id: string;
|
|
70
70
|
}>;
|
|
71
|
-
|
|
71
|
+
discussionId?: import("mongoose").SchemaDefinitionProperty<string, DiscussionSchema, import("mongoose").Document<unknown, {}, DiscussionSchema, {
|
|
72
72
|
id: string;
|
|
73
73
|
}, import("mongoose").DefaultSchemaOptions> & Omit<Omit<Discussion, "id"> & {
|
|
74
74
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -101,7 +101,7 @@ declare const discussionSchema: Schema<DiscussionSchema, import("mongoose").Mode
|
|
|
101
101
|
}, "id"> & {
|
|
102
102
|
id: string;
|
|
103
103
|
}>;
|
|
104
|
-
|
|
104
|
+
organizationId?: import("mongoose").SchemaDefinitionProperty<import("mongoose").Types.ObjectId, DiscussionSchema, import("mongoose").Document<unknown, {}, DiscussionSchema, {
|
|
105
105
|
id: string;
|
|
106
106
|
}, import("mongoose").DefaultSchemaOptions> & Omit<Omit<Discussion, "id"> & {
|
|
107
107
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -112,7 +112,7 @@ declare const discussionSchema: Schema<DiscussionSchema, import("mongoose").Mode
|
|
|
112
112
|
}, "id"> & {
|
|
113
113
|
id: string;
|
|
114
114
|
}>;
|
|
115
|
-
|
|
115
|
+
title?: import("mongoose").SchemaDefinitionProperty<string, DiscussionSchema, import("mongoose").Document<unknown, {}, DiscussionSchema, {
|
|
116
116
|
id: string;
|
|
117
117
|
}, import("mongoose").DefaultSchemaOptions> & Omit<Omit<Discussion, "id"> & {
|
|
118
118
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -14,7 +14,7 @@ declare const organizationSchema: Schema<OrganizationSchema, import("mongoose").
|
|
|
14
14
|
}, "id"> & {
|
|
15
15
|
id: string;
|
|
16
16
|
}, {
|
|
17
|
-
|
|
17
|
+
createdAt?: import("mongoose").SchemaDefinitionProperty<number, OrganizationSchema, import("mongoose").Document<unknown, {}, OrganizationSchema, {
|
|
18
18
|
id: string;
|
|
19
19
|
}, import("mongoose").DefaultSchemaOptions> & Omit<Omit<Organization, "id"> & {
|
|
20
20
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -25,7 +25,7 @@ declare const organizationSchema: Schema<OrganizationSchema, import("mongoose").
|
|
|
25
25
|
}, "id"> & {
|
|
26
26
|
id: string;
|
|
27
27
|
}>;
|
|
28
|
-
|
|
28
|
+
updatedAt?: import("mongoose").SchemaDefinitionProperty<number, OrganizationSchema, import("mongoose").Document<unknown, {}, OrganizationSchema, {
|
|
29
29
|
id: string;
|
|
30
30
|
}, import("mongoose").DefaultSchemaOptions> & Omit<Omit<Organization, "id"> & {
|
|
31
31
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -36,7 +36,7 @@ declare const organizationSchema: Schema<OrganizationSchema, import("mongoose").
|
|
|
36
36
|
}, "id"> & {
|
|
37
37
|
id: string;
|
|
38
38
|
}>;
|
|
39
|
-
|
|
39
|
+
name?: import("mongoose").SchemaDefinitionProperty<string, OrganizationSchema, import("mongoose").Document<unknown, {}, OrganizationSchema, {
|
|
40
40
|
id: string;
|
|
41
41
|
}, import("mongoose").DefaultSchemaOptions> & Omit<Omit<Organization, "id"> & {
|
|
42
42
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -47,7 +47,7 @@ declare const organizationSchema: Schema<OrganizationSchema, import("mongoose").
|
|
|
47
47
|
}, "id"> & {
|
|
48
48
|
id: string;
|
|
49
49
|
}>;
|
|
50
|
-
|
|
50
|
+
domain?: import("mongoose").SchemaDefinitionProperty<string, OrganizationSchema, import("mongoose").Document<unknown, {}, OrganizationSchema, {
|
|
51
51
|
id: string;
|
|
52
52
|
}, import("mongoose").DefaultSchemaOptions> & Omit<Omit<Organization, "id"> & {
|
|
53
53
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -58,7 +58,7 @@ declare const organizationSchema: Schema<OrganizationSchema, import("mongoose").
|
|
|
58
58
|
}, "id"> & {
|
|
59
59
|
id: string;
|
|
60
60
|
}>;
|
|
61
|
-
|
|
61
|
+
membersIds?: import("mongoose").SchemaDefinitionProperty<import("mongoose").Types.ObjectId[], OrganizationSchema, import("mongoose").Document<unknown, {}, OrganizationSchema, {
|
|
62
62
|
id: string;
|
|
63
63
|
}, import("mongoose").DefaultSchemaOptions> & Omit<Omit<Organization, "id"> & {
|
|
64
64
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -69,7 +69,7 @@ declare const organizationSchema: Schema<OrganizationSchema, import("mongoose").
|
|
|
69
69
|
}, "id"> & {
|
|
70
70
|
id: string;
|
|
71
71
|
}>;
|
|
72
|
-
|
|
72
|
+
adminsIds?: import("mongoose").SchemaDefinitionProperty<import("mongoose").Types.ObjectId[], OrganizationSchema, import("mongoose").Document<unknown, {}, OrganizationSchema, {
|
|
73
73
|
id: string;
|
|
74
74
|
}, import("mongoose").DefaultSchemaOptions> & Omit<Omit<Organization, "id"> & {
|
|
75
75
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -80,7 +80,7 @@ declare const organizationSchema: Schema<OrganizationSchema, import("mongoose").
|
|
|
80
80
|
}, "id"> & {
|
|
81
81
|
id: string;
|
|
82
82
|
}>;
|
|
83
|
-
|
|
83
|
+
ssoEnabled?: import("mongoose").SchemaDefinitionProperty<boolean, OrganizationSchema, import("mongoose").Document<unknown, {}, OrganizationSchema, {
|
|
84
84
|
id: string;
|
|
85
85
|
}, import("mongoose").DefaultSchemaOptions> & Omit<Omit<Organization, "id"> & {
|
|
86
86
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -13,7 +13,7 @@ declare const planSchema: Schema<PlanSchema, import("mongoose").Model<PlanSchema
|
|
|
13
13
|
}, "id"> & {
|
|
14
14
|
id: string;
|
|
15
15
|
}, {
|
|
16
|
-
|
|
16
|
+
period?: import("mongoose").SchemaDefinitionProperty<"MONTHLY" | "YEARLY" | "LIFETIME", PlanSchema, import("mongoose").Document<unknown, {}, PlanSchema, {
|
|
17
17
|
id: string;
|
|
18
18
|
}, import("mongoose").DefaultSchemaOptions> & Omit<Omit<Plan, "id"> & {
|
|
19
19
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -24,7 +24,7 @@ declare const planSchema: Schema<PlanSchema, import("mongoose").Model<PlanSchema
|
|
|
24
24
|
}, "id"> & {
|
|
25
25
|
id: string;
|
|
26
26
|
}>;
|
|
27
|
-
|
|
27
|
+
type?: import("mongoose").SchemaDefinitionProperty<PlanType, PlanSchema, import("mongoose").Document<unknown, {}, PlanSchema, {
|
|
28
28
|
id: string;
|
|
29
29
|
}, import("mongoose").DefaultSchemaOptions> & Omit<Omit<Plan, "id"> & {
|
|
30
30
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -35,7 +35,7 @@ declare const planSchema: Schema<PlanSchema, import("mongoose").Model<PlanSchema
|
|
|
35
35
|
}, "id"> & {
|
|
36
36
|
id: string;
|
|
37
37
|
}>;
|
|
38
|
-
|
|
38
|
+
createdAt?: import("mongoose").SchemaDefinitionProperty<number, PlanSchema, import("mongoose").Document<unknown, {}, PlanSchema, {
|
|
39
39
|
id: string;
|
|
40
40
|
}, import("mongoose").DefaultSchemaOptions> & Omit<Omit<Plan, "id"> & {
|
|
41
41
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -46,7 +46,7 @@ declare const planSchema: Schema<PlanSchema, import("mongoose").Model<PlanSchema
|
|
|
46
46
|
}, "id"> & {
|
|
47
47
|
id: string;
|
|
48
48
|
}>;
|
|
49
|
-
|
|
49
|
+
updatedAt?: import("mongoose").SchemaDefinitionProperty<number, PlanSchema, import("mongoose").Document<unknown, {}, PlanSchema, {
|
|
50
50
|
id: string;
|
|
51
51
|
}, import("mongoose").DefaultSchemaOptions> & Omit<Omit<Plan, "id"> & {
|
|
52
52
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -68,7 +68,7 @@ declare const planSchema: Schema<PlanSchema, import("mongoose").Model<PlanSchema
|
|
|
68
68
|
}, "id"> & {
|
|
69
69
|
id: string;
|
|
70
70
|
}>;
|
|
71
|
-
|
|
71
|
+
customerId?: import("mongoose").SchemaDefinitionProperty<string, PlanSchema, import("mongoose").Document<unknown, {}, PlanSchema, {
|
|
72
72
|
id: string;
|
|
73
73
|
}, import("mongoose").DefaultSchemaOptions> & Omit<Omit<Plan, "id"> & {
|
|
74
74
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -79,7 +79,7 @@ declare const planSchema: Schema<PlanSchema, import("mongoose").Model<PlanSchema
|
|
|
79
79
|
}, "id"> & {
|
|
80
80
|
id: string;
|
|
81
81
|
}>;
|
|
82
|
-
|
|
82
|
+
creatorId?: import("mongoose").SchemaDefinitionProperty<import("mongoose").Types.ObjectId, PlanSchema, import("mongoose").Document<unknown, {}, PlanSchema, {
|
|
83
83
|
id: string;
|
|
84
84
|
}, import("mongoose").DefaultSchemaOptions> & Omit<Omit<Plan, "id"> & {
|
|
85
85
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -90,7 +90,7 @@ declare const planSchema: Schema<PlanSchema, import("mongoose").Model<PlanSchema
|
|
|
90
90
|
}, "id"> & {
|
|
91
91
|
id: string;
|
|
92
92
|
}>;
|
|
93
|
-
|
|
93
|
+
subscriptionId?: import("mongoose").SchemaDefinitionProperty<string, PlanSchema, import("mongoose").Document<unknown, {}, PlanSchema, {
|
|
94
94
|
id: string;
|
|
95
95
|
}, import("mongoose").DefaultSchemaOptions> & Omit<Omit<Plan, "id"> & {
|
|
96
96
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -101,7 +101,7 @@ declare const planSchema: Schema<PlanSchema, import("mongoose").Model<PlanSchema
|
|
|
101
101
|
}, "id"> & {
|
|
102
102
|
id: string;
|
|
103
103
|
}>;
|
|
104
|
-
|
|
104
|
+
priceId?: import("mongoose").SchemaDefinitionProperty<string, PlanSchema, import("mongoose").Document<unknown, {}, PlanSchema, {
|
|
105
105
|
id: string;
|
|
106
106
|
}, import("mongoose").DefaultSchemaOptions> & Omit<Omit<Plan, "id"> & {
|
|
107
107
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -13,7 +13,7 @@ declare const projectSchema: Schema<ProjectSchema, import("mongoose").Model<Proj
|
|
|
13
13
|
}, "id"> & {
|
|
14
14
|
id: string;
|
|
15
15
|
}, {
|
|
16
|
-
|
|
16
|
+
createdAt?: import("mongoose").SchemaDefinitionProperty<number, ProjectSchema, import("mongoose").Document<unknown, {}, ProjectSchema, {
|
|
17
17
|
id: string;
|
|
18
18
|
}, import("mongoose").DefaultSchemaOptions> & Omit<Omit<Project, "id"> & {
|
|
19
19
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -24,7 +24,7 @@ declare const projectSchema: Schema<ProjectSchema, import("mongoose").Model<Proj
|
|
|
24
24
|
}, "id"> & {
|
|
25
25
|
id: string;
|
|
26
26
|
}>;
|
|
27
|
-
|
|
27
|
+
updatedAt?: import("mongoose").SchemaDefinitionProperty<number, ProjectSchema, import("mongoose").Document<unknown, {}, ProjectSchema, {
|
|
28
28
|
id: string;
|
|
29
29
|
}, import("mongoose").DefaultSchemaOptions> & Omit<Omit<Project, "id"> & {
|
|
30
30
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -35,7 +35,7 @@ declare const projectSchema: Schema<ProjectSchema, import("mongoose").Model<Proj
|
|
|
35
35
|
}, "id"> & {
|
|
36
36
|
id: string;
|
|
37
37
|
}>;
|
|
38
|
-
|
|
38
|
+
name?: import("mongoose").SchemaDefinitionProperty<string, ProjectSchema, import("mongoose").Document<unknown, {}, ProjectSchema, {
|
|
39
39
|
id: string;
|
|
40
40
|
}, import("mongoose").DefaultSchemaOptions> & Omit<Omit<Project, "id"> & {
|
|
41
41
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -46,7 +46,7 @@ declare const projectSchema: Schema<ProjectSchema, import("mongoose").Model<Proj
|
|
|
46
46
|
}, "id"> & {
|
|
47
47
|
id: string;
|
|
48
48
|
}>;
|
|
49
|
-
|
|
49
|
+
organizationId?: import("mongoose").SchemaDefinitionProperty<import("mongoose").Types.ObjectId, ProjectSchema, import("mongoose").Document<unknown, {}, ProjectSchema, {
|
|
50
50
|
id: string;
|
|
51
51
|
}, import("mongoose").DefaultSchemaOptions> & Omit<Omit<Project, "id"> & {
|
|
52
52
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -57,7 +57,7 @@ declare const projectSchema: Schema<ProjectSchema, import("mongoose").Model<Proj
|
|
|
57
57
|
}, "id"> & {
|
|
58
58
|
id: string;
|
|
59
59
|
}>;
|
|
60
|
-
|
|
60
|
+
membersIds?: import("mongoose").SchemaDefinitionProperty<import("mongoose").Types.ObjectId[], ProjectSchema, import("mongoose").Document<unknown, {}, ProjectSchema, {
|
|
61
61
|
id: string;
|
|
62
62
|
}, import("mongoose").DefaultSchemaOptions> & Omit<Omit<Project, "id"> & {
|
|
63
63
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -68,7 +68,7 @@ declare const projectSchema: Schema<ProjectSchema, import("mongoose").Model<Proj
|
|
|
68
68
|
}, "id"> & {
|
|
69
69
|
id: string;
|
|
70
70
|
}>;
|
|
71
|
-
|
|
71
|
+
adminsIds?: import("mongoose").SchemaDefinitionProperty<import("mongoose").Types.ObjectId[], ProjectSchema, import("mongoose").Document<unknown, {}, ProjectSchema, {
|
|
72
72
|
id: string;
|
|
73
73
|
}, import("mongoose").DefaultSchemaOptions> & Omit<Omit<Project, "id"> & {
|
|
74
74
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -79,7 +79,7 @@ declare const projectSchema: Schema<ProjectSchema, import("mongoose").Model<Proj
|
|
|
79
79
|
}, "id"> & {
|
|
80
80
|
id: string;
|
|
81
81
|
}>;
|
|
82
|
-
|
|
82
|
+
creatorId?: import("mongoose").SchemaDefinitionProperty<import("mongoose").Types.ObjectId, ProjectSchema, import("mongoose").Document<unknown, {}, ProjectSchema, {
|
|
83
83
|
id: string;
|
|
84
84
|
}, import("mongoose").DefaultSchemaOptions> & Omit<Omit<Project, "id"> & {
|
|
85
85
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -11,7 +11,7 @@ declare const showcaseProjectSchema: Schema<ShowcaseProjectDocument, import("mon
|
|
|
11
11
|
}, "id"> & {
|
|
12
12
|
id: string;
|
|
13
13
|
}, {
|
|
14
|
-
|
|
14
|
+
_id?: import("mongoose").SchemaDefinitionProperty<import("mongoose").Types.ObjectId, ShowcaseProjectDocument, import("mongoose").Document<unknown, {}, ShowcaseProjectDocument, {
|
|
15
15
|
id: string;
|
|
16
16
|
}, import("mongoose").DefaultSchemaOptions> & Omit<ShowcaseProject & import("mongoose").Document<import("mongoose").Types.ObjectId, any, any, Record<string, any>, {}> & Required<{
|
|
17
17
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -20,7 +20,7 @@ declare const showcaseProjectSchema: Schema<ShowcaseProjectDocument, import("mon
|
|
|
20
20
|
}, "id"> & {
|
|
21
21
|
id: string;
|
|
22
22
|
}>;
|
|
23
|
-
|
|
23
|
+
createdAt?: import("mongoose").SchemaDefinitionProperty<Date, ShowcaseProjectDocument, import("mongoose").Document<unknown, {}, ShowcaseProjectDocument, {
|
|
24
24
|
id: string;
|
|
25
25
|
}, import("mongoose").DefaultSchemaOptions> & Omit<ShowcaseProject & import("mongoose").Document<import("mongoose").Types.ObjectId, any, any, Record<string, any>, {}> & Required<{
|
|
26
26
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -29,7 +29,7 @@ declare const showcaseProjectSchema: Schema<ShowcaseProjectDocument, import("mon
|
|
|
29
29
|
}, "id"> & {
|
|
30
30
|
id: string;
|
|
31
31
|
}>;
|
|
32
|
-
|
|
32
|
+
description?: import("mongoose").SchemaDefinitionProperty<string, ShowcaseProjectDocument, import("mongoose").Document<unknown, {}, ShowcaseProjectDocument, {
|
|
33
33
|
id: string;
|
|
34
34
|
}, import("mongoose").DefaultSchemaOptions> & Omit<ShowcaseProject & import("mongoose").Document<import("mongoose").Types.ObjectId, any, any, Record<string, any>, {}> & Required<{
|
|
35
35
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -38,7 +38,7 @@ declare const showcaseProjectSchema: Schema<ShowcaseProjectDocument, import("mon
|
|
|
38
38
|
}, "id"> & {
|
|
39
39
|
id: string;
|
|
40
40
|
}>;
|
|
41
|
-
|
|
41
|
+
status?: import("mongoose").SchemaDefinitionProperty<ShowcaseProjectStatus, ShowcaseProjectDocument, import("mongoose").Document<unknown, {}, ShowcaseProjectDocument, {
|
|
42
42
|
id: string;
|
|
43
43
|
}, import("mongoose").DefaultSchemaOptions> & Omit<ShowcaseProject & import("mongoose").Document<import("mongoose").Types.ObjectId, any, any, Record<string, any>, {}> & Required<{
|
|
44
44
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -47,7 +47,7 @@ declare const showcaseProjectSchema: Schema<ShowcaseProjectDocument, import("mon
|
|
|
47
47
|
}, "id"> & {
|
|
48
48
|
id: string;
|
|
49
49
|
}>;
|
|
50
|
-
|
|
50
|
+
title?: import("mongoose").SchemaDefinitionProperty<string, ShowcaseProjectDocument, import("mongoose").Document<unknown, {}, ShowcaseProjectDocument, {
|
|
51
51
|
id: string;
|
|
52
52
|
}, import("mongoose").DefaultSchemaOptions> & Omit<ShowcaseProject & import("mongoose").Document<import("mongoose").Types.ObjectId, any, any, Record<string, any>, {}> & Required<{
|
|
53
53
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -74,16 +74,7 @@ declare const showcaseProjectSchema: Schema<ShowcaseProjectDocument, import("mon
|
|
|
74
74
|
}, "id"> & {
|
|
75
75
|
id: string;
|
|
76
76
|
}>;
|
|
77
|
-
|
|
78
|
-
id: string;
|
|
79
|
-
}, import("mongoose").DefaultSchemaOptions> & Omit<ShowcaseProject & import("mongoose").Document<import("mongoose").Types.ObjectId, any, any, Record<string, any>, {}> & Required<{
|
|
80
|
-
_id: import("mongoose").Types.ObjectId;
|
|
81
|
-
}> & {
|
|
82
|
-
__v: number;
|
|
83
|
-
}, "id"> & {
|
|
84
|
-
id: string;
|
|
85
|
-
}>;
|
|
86
|
-
owner?: import("mongoose").SchemaDefinitionProperty<string, ShowcaseProjectDocument, import("mongoose").Document<unknown, {}, ShowcaseProjectDocument, {
|
|
77
|
+
logoUrl?: import("mongoose").SchemaDefinitionProperty<string, ShowcaseProjectDocument, import("mongoose").Document<unknown, {}, ShowcaseProjectDocument, {
|
|
87
78
|
id: string;
|
|
88
79
|
}, import("mongoose").DefaultSchemaOptions> & Omit<ShowcaseProject & import("mongoose").Document<import("mongoose").Types.ObjectId, any, any, Record<string, any>, {}> & Required<{
|
|
89
80
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -92,7 +83,7 @@ declare const showcaseProjectSchema: Schema<ShowcaseProjectDocument, import("mon
|
|
|
92
83
|
}, "id"> & {
|
|
93
84
|
id: string;
|
|
94
85
|
}>;
|
|
95
|
-
|
|
86
|
+
websiteUrl?: import("mongoose").SchemaDefinitionProperty<string, ShowcaseProjectDocument, import("mongoose").Document<unknown, {}, ShowcaseProjectDocument, {
|
|
96
87
|
id: string;
|
|
97
88
|
}, import("mongoose").DefaultSchemaOptions> & Omit<ShowcaseProject & import("mongoose").Document<import("mongoose").Types.ObjectId, any, any, Record<string, any>, {}> & Required<{
|
|
98
89
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -101,7 +92,7 @@ declare const showcaseProjectSchema: Schema<ShowcaseProjectDocument, import("mon
|
|
|
101
92
|
}, "id"> & {
|
|
102
93
|
id: string;
|
|
103
94
|
}>;
|
|
104
|
-
|
|
95
|
+
githubUrl?: import("mongoose").SchemaDefinitionProperty<string, ShowcaseProjectDocument, import("mongoose").Document<unknown, {}, ShowcaseProjectDocument, {
|
|
105
96
|
id: string;
|
|
106
97
|
}, import("mongoose").DefaultSchemaOptions> & Omit<ShowcaseProject & import("mongoose").Document<import("mongoose").Types.ObjectId, any, any, Record<string, any>, {}> & Required<{
|
|
107
98
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -182,6 +173,15 @@ declare const showcaseProjectSchema: Schema<ShowcaseProjectDocument, import("mon
|
|
|
182
173
|
}, "id"> & {
|
|
183
174
|
id: string;
|
|
184
175
|
}>;
|
|
176
|
+
owner?: import("mongoose").SchemaDefinitionProperty<string, ShowcaseProjectDocument, import("mongoose").Document<unknown, {}, ShowcaseProjectDocument, {
|
|
177
|
+
id: string;
|
|
178
|
+
}, import("mongoose").DefaultSchemaOptions> & Omit<ShowcaseProject & import("mongoose").Document<import("mongoose").Types.ObjectId, any, any, Record<string, any>, {}> & Required<{
|
|
179
|
+
_id: import("mongoose").Types.ObjectId;
|
|
180
|
+
}> & {
|
|
181
|
+
__v: number;
|
|
182
|
+
}, "id"> & {
|
|
183
|
+
id: string;
|
|
184
|
+
}>;
|
|
185
185
|
}, ShowcaseProjectDocument>;
|
|
186
186
|
//#endregion
|
|
187
187
|
export { showcaseProjectSchema };
|