@intlayer/backend 8.7.11 → 8.7.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/README.md +27 -1
  2. package/dist/assets/utils/AI/askDocQuestion/embeddings/docs/en/benchmark/solid.json +4990 -0
  3. package/dist/assets/utils/AI/askDocQuestion/embeddings/docs/en/benchmark/svelte.json +4987 -0
  4. package/dist/assets/utils/AI/askDocQuestion/embeddings/docs/en/benchmark/vue.json +4975 -0
  5. package/dist/assets/utils/AI/askDocQuestion/embeddings/docs/en/intlayer_with_astro_lit.json +9936 -8930
  6. package/dist/assets/utils/AI/askDocQuestion/embeddings/docs/en/intlayer_with_astro_vanilla.json +7963 -6949
  7. package/dist/assets/utils/AI/askDocQuestion/embeddings/docs/en/readme.json +12908 -12288
  8. package/dist/esm/controllers/oAuth2.controller.mjs +21 -1
  9. package/dist/esm/controllers/oAuth2.controller.mjs.map +1 -1
  10. package/dist/esm/controllers/stripe.controller.mjs +86 -2
  11. package/dist/esm/controllers/stripe.controller.mjs.map +1 -1
  12. package/dist/esm/controllers/translation.controller.mjs +2 -0
  13. package/dist/esm/controllers/translation.controller.mjs.map +1 -1
  14. package/dist/esm/emails/InviteUserEmail.mjs +1541 -1
  15. package/dist/esm/emails/InviteUserEmail.mjs.map +1 -1
  16. package/dist/esm/emails/MagicLinkEmail.mjs +1128 -1
  17. package/dist/esm/emails/MagicLinkEmail.mjs.map +1 -1
  18. package/dist/esm/emails/OAuthTokenCreatedEmail.mjs +1389 -1
  19. package/dist/esm/emails/OAuthTokenCreatedEmail.mjs.map +1 -1
  20. package/dist/esm/emails/PasswordChangeConfirmation.mjs +814 -1
  21. package/dist/esm/emails/PasswordChangeConfirmation.mjs.map +1 -1
  22. package/dist/esm/emails/ResetUserPassword.mjs +1132 -1
  23. package/dist/esm/emails/ResetUserPassword.mjs.map +1 -1
  24. package/dist/esm/emails/SubscriptionPaymentCancellation.mjs +913 -1
  25. package/dist/esm/emails/SubscriptionPaymentCancellation.mjs.map +1 -1
  26. package/dist/esm/emails/SubscriptionPaymentError.mjs +908 -1
  27. package/dist/esm/emails/SubscriptionPaymentError.mjs.map +1 -1
  28. package/dist/esm/emails/SubscriptionPaymentSuccess.mjs +935 -1
  29. package/dist/esm/emails/SubscriptionPaymentSuccess.mjs.map +1 -1
  30. package/dist/esm/emails/ValidateUserEmail.mjs +1111 -1
  31. package/dist/esm/emails/ValidateUserEmail.mjs.map +1 -1
  32. package/dist/esm/emails/Welcome.mjs +1004 -1
  33. package/dist/esm/emails/Welcome.mjs.map +1 -1
  34. package/dist/esm/emails/index.mjs +7 -7
  35. package/dist/esm/index.mjs +8 -2
  36. package/dist/esm/index.mjs.map +1 -1
  37. package/dist/esm/middlewares/oAuth2.middleware.mjs +2 -2
  38. package/dist/esm/middlewares/oAuth2.middleware.mjs.map +1 -1
  39. package/dist/esm/routes/audit.routes.mjs +5 -4
  40. package/dist/esm/routes/audit.routes.mjs.map +1 -1
  41. package/dist/esm/routes/dictionary.routes.mjs +4 -3
  42. package/dist/esm/routes/dictionary.routes.mjs.map +1 -1
  43. package/dist/esm/routes/organization.routes.mjs +3 -2
  44. package/dist/esm/routes/organization.routes.mjs.map +1 -1
  45. package/dist/esm/routes/paramsSchemas.mjs +67 -0
  46. package/dist/esm/routes/paramsSchemas.mjs.map +1 -0
  47. package/dist/esm/routes/project.routes.mjs +2 -1
  48. package/dist/esm/routes/project.routes.mjs.map +1 -1
  49. package/dist/esm/routes/showcaseProject.routes.mjs +5 -4
  50. package/dist/esm/routes/showcaseProject.routes.mjs.map +1 -1
  51. package/dist/esm/routes/stripe.routes.mjs +19 -1
  52. package/dist/esm/routes/stripe.routes.mjs.map +1 -1
  53. package/dist/esm/routes/tags.routes.mjs +3 -2
  54. package/dist/esm/routes/tags.routes.mjs.map +1 -1
  55. package/dist/esm/routes/translate.routes.mjs +6 -5
  56. package/dist/esm/routes/translate.routes.mjs.map +1 -1
  57. package/dist/esm/routes/user.routes.mjs +5 -4
  58. package/dist/esm/routes/user.routes.mjs.map +1 -1
  59. package/dist/esm/schemas/oAuth2.schema.mjs +1 -1
  60. package/dist/esm/schemas/oAuth2.schema.mjs.map +1 -1
  61. package/dist/esm/services/email.service.mjs +338 -38
  62. package/dist/esm/services/email.service.mjs.map +1 -1
  63. package/dist/esm/services/oAuth2.service.mjs +20 -2
  64. package/dist/esm/services/oAuth2.service.mjs.map +1 -1
  65. package/dist/esm/services/subscription.service.mjs +5 -2
  66. package/dist/esm/services/subscription.service.mjs.map +1 -1
  67. package/dist/esm/utils/AI/askDocQuestion/embeddings/docs/en/benchmark/solid.json +4990 -0
  68. package/dist/esm/utils/AI/askDocQuestion/embeddings/docs/en/benchmark/svelte.json +4987 -0
  69. package/dist/esm/utils/AI/askDocQuestion/embeddings/docs/en/benchmark/vue.json +4975 -0
  70. package/dist/esm/utils/AI/askDocQuestion/embeddings/docs/en/intlayer_with_astro_lit.json +9936 -8930
  71. package/dist/esm/utils/AI/askDocQuestion/embeddings/docs/en/intlayer_with_astro_vanilla.json +7963 -6949
  72. package/dist/esm/utils/AI/askDocQuestion/embeddings/docs/en/readme.json +12908 -12288
  73. package/dist/esm/utils/auth/getAuth.mjs +6 -0
  74. package/dist/esm/utils/auth/getAuth.mjs.map +1 -1
  75. package/dist/esm/utils/errors/errorCodes.mjs +3917 -287
  76. package/dist/esm/utils/errors/errorCodes.mjs.map +1 -1
  77. package/dist/esm/utils/mongoDB/connectDB.mjs +5 -0
  78. package/dist/esm/utils/mongoDB/connectDB.mjs.map +1 -1
  79. package/dist/esm/utils/oAuth2.mjs +6 -2
  80. package/dist/esm/utils/oAuth2.mjs.map +1 -1
  81. package/dist/esm/utils/plan.mjs +13 -1
  82. package/dist/esm/utils/plan.mjs.map +1 -1
  83. package/dist/types/controllers/oAuth2.controller.d.ts +11 -1
  84. package/dist/types/controllers/oAuth2.controller.d.ts.map +1 -1
  85. package/dist/types/controllers/stripe.controller.d.ts +22 -2
  86. package/dist/types/controllers/stripe.controller.d.ts.map +1 -1
  87. package/dist/types/controllers/translation.controller.d.ts.map +1 -1
  88. package/dist/types/emails/InviteUserEmail.d.ts +181 -1
  89. package/dist/types/emails/InviteUserEmail.d.ts.map +1 -1
  90. package/dist/types/emails/MagicLinkEmail.d.ts +106 -1
  91. package/dist/types/emails/MagicLinkEmail.d.ts.map +1 -1
  92. package/dist/types/emails/OAuthTokenCreatedEmail.d.ts +166 -1
  93. package/dist/types/emails/OAuthTokenCreatedEmail.d.ts.map +1 -1
  94. package/dist/types/emails/PasswordChangeConfirmation.d.ts +91 -1
  95. package/dist/types/emails/PasswordChangeConfirmation.d.ts.map +1 -1
  96. package/dist/types/emails/ResetUserPassword.d.ts +106 -1
  97. package/dist/types/emails/ResetUserPassword.d.ts.map +1 -1
  98. package/dist/types/emails/SubscriptionPaymentCancellation.d.ts +151 -1
  99. package/dist/types/emails/SubscriptionPaymentCancellation.d.ts.map +1 -1
  100. package/dist/types/emails/SubscriptionPaymentError.d.ts +151 -1
  101. package/dist/types/emails/SubscriptionPaymentError.d.ts.map +1 -1
  102. package/dist/types/emails/SubscriptionPaymentSuccess.d.ts +151 -1
  103. package/dist/types/emails/SubscriptionPaymentSuccess.d.ts.map +1 -1
  104. package/dist/types/emails/ValidateUserEmail.d.ts +106 -1
  105. package/dist/types/emails/ValidateUserEmail.d.ts.map +1 -1
  106. package/dist/types/emails/Welcome.d.ts +106 -1
  107. package/dist/types/emails/Welcome.d.ts.map +1 -1
  108. package/dist/types/emails/index.d.ts +7 -7
  109. package/dist/types/export.d.ts +3 -3
  110. package/dist/types/middlewares/oAuth2.middleware.d.ts.map +1 -1
  111. package/dist/types/routes/audit.routes.d.ts.map +1 -1
  112. package/dist/types/routes/dictionary.routes.d.ts.map +1 -1
  113. package/dist/types/routes/organization.routes.d.ts.map +1 -1
  114. package/dist/types/routes/paramsSchemas.d.ts +102 -0
  115. package/dist/types/routes/paramsSchemas.d.ts.map +1 -0
  116. package/dist/types/routes/project.routes.d.ts.map +1 -1
  117. package/dist/types/routes/showcaseProject.routes.d.ts.map +1 -1
  118. package/dist/types/routes/stripe.routes.d.ts +15 -0
  119. package/dist/types/routes/stripe.routes.d.ts.map +1 -1
  120. package/dist/types/routes/tags.routes.d.ts.map +1 -1
  121. package/dist/types/routes/translate.routes.d.ts.map +1 -1
  122. package/dist/types/routes/user.routes.d.ts.map +1 -1
  123. package/dist/types/schemas/dictionary.schema.d.ts +6 -6
  124. package/dist/types/schemas/discussion.schema.d.ts +9 -9
  125. package/dist/types/schemas/organization.schema.d.ts +9 -9
  126. package/dist/types/schemas/plans.schema.d.ts +6 -6
  127. package/dist/types/schemas/project.schema.d.ts +12 -12
  128. package/dist/types/schemas/session.schema.d.ts +8 -8
  129. package/dist/types/schemas/showcaseProject.schema.d.ts +19 -19
  130. package/dist/types/schemas/tag.schema.d.ts +7 -7
  131. package/dist/types/services/email.service.d.ts.map +1 -1
  132. package/dist/types/services/oAuth2.service.d.ts +6 -1
  133. package/dist/types/services/oAuth2.service.d.ts.map +1 -1
  134. package/dist/types/types/plan.types.d.ts +2 -2
  135. package/dist/types/utils/errors/errorCodes.d.ts +3634 -4
  136. package/dist/types/utils/errors/errorCodes.d.ts.map +1 -1
  137. package/dist/types/utils/mongoDB/connectDB.d.ts.map +1 -1
  138. package/dist/types/utils/oAuth2.d.ts +3 -1
  139. package/dist/types/utils/oAuth2.d.ts.map +1 -1
  140. package/dist/types/utils/plan.d.ts +2 -1
  141. package/dist/types/utils/plan.d.ts.map +1 -1
  142. package/package.json +14 -13
@@ -18,6 +18,11 @@ const connectDB = async () => {
18
18
  try {
19
19
  const client = await connect(`mongodb+srv://${process.env.DB_ID}:${process.env.DB_MDP}@${process.env.DB_CLUSTER}/?retryWrites=true&w=majority&appName=Cluster0`);
20
20
  logger.info("MongoDB connected");
21
+ const db = client.connection.db;
22
+ if (db) {
23
+ const collections = await db.collections();
24
+ for (const col of collections) await col.dropIndex("createdAt_1").catch(() => {});
25
+ }
21
26
  await ProjectModel.syncIndexes();
22
27
  await DiscussionModel.syncIndexes();
23
28
  await UserModel.createIndexes();
@@ -1 +1 @@
1
- {"version":3,"file":"connectDB.mjs","names":[],"sources":["../../../../src/utils/mongoDB/connectDB.ts"],"sourcesContent":["import { logger } from '@logger';\nimport { AuditModel } from '@models/audit.model';\nimport { AuditJobModel } from '@models/auditJob.model';\nimport { AuditPageModel } from '@models/auditPage.model';\nimport { DictionaryModel } from '@models/dictionary.model';\nimport { DiscussionModel } from '@models/discussion.model';\nimport { OAuth2AccessTokenModel } from '@models/oAuth2.model';\nimport { OrganizationModel } from '@models/organization.model';\nimport { ProjectModel } from '@models/project.model';\nimport { ShowcaseProjectModel } from '@models/showcaseProject.model';\nimport { TagModel } from '@models/tag.model';\nimport { UserModel } from '@models/user.model';\nimport { connect, type mongo } from 'mongoose';\n\n// Store the DB client singleton\nlet dbClientInstance: mongo.MongoClient | null = null;\n\nexport const connectDB = async (): Promise<mongo.MongoClient> => {\n try {\n const client = await connect(\n `mongodb+srv://${process.env.DB_ID}:${process.env.DB_MDP}@${process.env.DB_CLUSTER}/?retryWrites=true&w=majority&appName=Cluster0`\n );\n\n logger.info('MongoDB connected');\n\n // Recreate indexes for models\n await ProjectModel.syncIndexes();\n await DiscussionModel.syncIndexes();\n await UserModel.createIndexes();\n await OAuth2AccessTokenModel.createIndexes();\n await TagModel.createIndexes();\n await DictionaryModel.createIndexes();\n await OrganizationModel.createIndexes();\n await ShowcaseProjectModel.syncIndexes();\n await AuditModel.syncIndexes();\n await AuditJobModel.syncIndexes();\n await AuditPageModel.syncIndexes();\n\n dbClientInstance = client.connection.getClient();\n\n return dbClientInstance;\n } catch (error) {\n const errorMessage = `MongoDB connection error - ${(error as Error).message}`;\n\n logger.error(errorMessage);\n throw new Error(errorMessage);\n }\n};\n\n/**\n * Get the MongoDB client instance.\n * Must be called after connectDB() has been executed.\n */\nexport const getDBClient = (): mongo.MongoClient => {\n if (!dbClientInstance) {\n throw new Error('Database not connected. Call connectDB() first.');\n }\n return dbClientInstance;\n};\n"],"mappings":";;;;;;;;;;;;;;;AAeA,IAAI,mBAA6C;AAEjD,MAAa,YAAY,YAAwC;AAC/D,KAAI;EACF,MAAM,SAAS,MAAM,QACnB,iBAAiB,QAAQ,IAAI,MAAM,GAAG,QAAQ,IAAI,OAAO,GAAG,QAAQ,IAAI,WAAW,gDACpF;AAED,SAAO,KAAK,oBAAoB;AAGhC,QAAM,aAAa,aAAa;AAChC,QAAM,gBAAgB,aAAa;AACnC,QAAM,UAAU,eAAe;AAC/B,QAAM,uBAAuB,eAAe;AAC5C,QAAM,SAAS,eAAe;AAC9B,QAAM,gBAAgB,eAAe;AACrC,QAAM,kBAAkB,eAAe;AACvC,QAAM,qBAAqB,aAAa;AACxC,QAAM,WAAW,aAAa;AAC9B,QAAM,cAAc,aAAa;AACjC,QAAM,eAAe,aAAa;AAElC,qBAAmB,OAAO,WAAW,WAAW;AAEhD,SAAO;UACA,OAAO;EACd,MAAM,eAAe,8BAA+B,MAAgB;AAEpE,SAAO,MAAM,aAAa;AAC1B,QAAM,IAAI,MAAM,aAAa;;;;;;;AAQjC,MAAa,oBAAuC;AAClD,KAAI,CAAC,iBACH,OAAM,IAAI,MAAM,kDAAkD;AAEpE,QAAO"}
1
+ {"version":3,"file":"connectDB.mjs","names":[],"sources":["../../../../src/utils/mongoDB/connectDB.ts"],"sourcesContent":["import { logger } from '@logger';\nimport { AuditModel } from '@models/audit.model';\nimport { AuditJobModel } from '@models/auditJob.model';\nimport { AuditPageModel } from '@models/auditPage.model';\nimport { DictionaryModel } from '@models/dictionary.model';\nimport { DiscussionModel } from '@models/discussion.model';\nimport { OAuth2AccessTokenModel } from '@models/oAuth2.model';\nimport { OrganizationModel } from '@models/organization.model';\nimport { ProjectModel } from '@models/project.model';\nimport { ShowcaseProjectModel } from '@models/showcaseProject.model';\nimport { TagModel } from '@models/tag.model';\nimport { UserModel } from '@models/user.model';\nimport { connect, type mongo } from 'mongoose';\n\n// Store the DB client singleton\nlet dbClientInstance: mongo.MongoClient | null = null;\n\nexport const connectDB = async (): Promise<mongo.MongoClient> => {\n try {\n const client = await connect(\n `mongodb+srv://${process.env.DB_ID}:${process.env.DB_MDP}@${process.env.DB_CLUSTER}/?retryWrites=true&w=majority&appName=Cluster0`\n );\n\n logger.info('MongoDB connected');\n\n // 2. Drop the old indexes directly\n const db = client.connection.db;\n if (db) {\n const collections = await db.collections();\n for (const col of collections) {\n await col.dropIndex('createdAt_1').catch(() => {});\n }\n }\n\n // Recreate indexes for models\n await ProjectModel.syncIndexes();\n await DiscussionModel.syncIndexes();\n await UserModel.createIndexes();\n await OAuth2AccessTokenModel.createIndexes();\n await TagModel.createIndexes();\n await DictionaryModel.createIndexes();\n await OrganizationModel.createIndexes();\n await ShowcaseProjectModel.syncIndexes();\n await AuditModel.syncIndexes();\n await AuditJobModel.syncIndexes();\n await AuditPageModel.syncIndexes();\n\n dbClientInstance = client.connection.getClient();\n\n return dbClientInstance;\n } catch (error) {\n const errorMessage = `MongoDB connection error - ${(error as Error).message}`;\n\n logger.error(errorMessage);\n throw new Error(errorMessage);\n }\n};\n\n/**\n * Get the MongoDB client instance.\n * Must be called after connectDB() has been executed.\n */\nexport const getDBClient = (): mongo.MongoClient => {\n if (!dbClientInstance) {\n throw new Error('Database not connected. Call connectDB() first.');\n }\n return dbClientInstance;\n};\n"],"mappings":";;;;;;;;;;;;;;;AAeA,IAAI,mBAA6C;AAEjD,MAAa,YAAY,YAAwC;AAC/D,KAAI;EACF,MAAM,SAAS,MAAM,QACnB,iBAAiB,QAAQ,IAAI,MAAM,GAAG,QAAQ,IAAI,OAAO,GAAG,QAAQ,IAAI,WAAW,gDACpF;AAED,SAAO,KAAK,oBAAoB;EAGhC,MAAM,KAAK,OAAO,WAAW;AAC7B,MAAI,IAAI;GACN,MAAM,cAAc,MAAM,GAAG,aAAa;AAC1C,QAAK,MAAM,OAAO,YAChB,OAAM,IAAI,UAAU,cAAc,CAAC,YAAY,GAAG;;AAKtD,QAAM,aAAa,aAAa;AAChC,QAAM,gBAAgB,aAAa;AACnC,QAAM,UAAU,eAAe;AAC/B,QAAM,uBAAuB,eAAe;AAC5C,QAAM,SAAS,eAAe;AAC9B,QAAM,gBAAgB,eAAe;AACrC,QAAM,kBAAkB,eAAe;AACvC,QAAM,qBAAqB,aAAa;AACxC,QAAM,WAAW,aAAa;AAC9B,QAAM,cAAc,aAAa;AACjC,QAAM,eAAe,aAAa;AAElC,qBAAmB,OAAO,WAAW,WAAW;AAEhD,SAAO;UACA,OAAO;EACd,MAAM,eAAe,8BAA+B,MAAgB;AAEpE,SAAO,MAAM,aAAa;AAC1B,QAAM,IAAI,MAAM,aAAa;;;;;;;AAQjC,MAAa,oBAAuC;AAClD,KAAI,CAAC,iBACH,OAAM,IAAI,MAAM,kDAAkD;AAEpE,QAAO"}
@@ -1,8 +1,12 @@
1
1
  import { getAccessToken, getClient, getUserFromClient, saveToken, verifyScope } from "../services/oAuth2.service.mjs";
2
2
 
3
3
  //#region src/utils/oAuth2.ts
4
- const ACCESS_TOKEN_EXPIRES_IN = 3600 * 2;
4
+ const ACCESS_TOKEN_EXPIRES_IN = 3600 * 24 * 7;
5
+ const ACCESS_TOKEN_REFRESH_THRESHOLD = 3600 * 24;
5
6
  const getTokenExpireAt = () => new Date(Date.now() + ACCESS_TOKEN_EXPIRES_IN * 1e3);
7
+ const shouldExtendOAuth2Token = (expiresAt) => {
8
+ return new Date(expiresAt).getTime() - Date.now() < ACCESS_TOKEN_REFRESH_THRESHOLD * 1e3;
9
+ };
6
10
  const authenticateOptions = {
7
11
  scope: void 0,
8
12
  addAcceptedScopesHeader: void 0,
@@ -18,5 +22,5 @@ const getAuthModel = () => ({
18
22
  });
19
23
 
20
24
  //#endregion
21
- export { ACCESS_TOKEN_EXPIRES_IN, authenticateOptions, getAuthModel, getTokenExpireAt };
25
+ export { ACCESS_TOKEN_EXPIRES_IN, ACCESS_TOKEN_REFRESH_THRESHOLD, authenticateOptions, getAuthModel, getTokenExpireAt, shouldExtendOAuth2Token };
22
26
  //# sourceMappingURL=oAuth2.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"oAuth2.mjs","names":[],"sources":["../../../src/utils/oAuth2.ts"],"sourcesContent":["import {\n getAccessToken,\n getClient,\n getUserFromClient,\n saveToken,\n verifyScope,\n} from '@services/oAuth2.service';\nimport type OAuth2Server from 'oauth2-server';\nimport type { AuthenticateOptions } from 'oauth2-server';\n\nexport const ACCESS_TOKEN_EXPIRES_IN = 60 * 60 * 2; // 2 hour\n\nexport const getTokenExpireAt = () =>\n new Date(Date.now() + ACCESS_TOKEN_EXPIRES_IN * 1000);\n\nexport const authenticateOptions: AuthenticateOptions = {\n scope: undefined,\n addAcceptedScopesHeader: undefined,\n addAuthorizedScopesHeader: undefined,\n allowBearerTokensInQueryString: undefined,\n};\n\nexport const getAuthModel = (): OAuth2Server.ClientCredentialsModel => ({\n getClient,\n saveToken,\n getUserFromClient,\n verifyScope,\n getAccessToken,\n});\n"],"mappings":";;;AAUA,MAAa,0BAA0B,OAAU;AAEjD,MAAa,yBACX,IAAI,KAAK,KAAK,KAAK,GAAG,0BAA0B,IAAK;AAEvD,MAAa,sBAA2C;CACtD,OAAO;CACP,yBAAyB;CACzB,2BAA2B;CAC3B,gCAAgC;CACjC;AAED,MAAa,sBAA2D;CACtE;CACA;CACA;CACA;CACA;CACD"}
1
+ {"version":3,"file":"oAuth2.mjs","names":[],"sources":["../../../src/utils/oAuth2.ts"],"sourcesContent":["import {\n getAccessToken,\n getClient,\n getUserFromClient,\n saveToken,\n verifyScope,\n} from '@services/oAuth2.service';\nimport type OAuth2Server from 'oauth2-server';\nimport type { AuthenticateOptions } from 'oauth2-server';\n\nexport const ACCESS_TOKEN_EXPIRES_IN = 60 * 60 * 24 * 7; // 7 days\n\n// Sliding refresh: when an access token is used and its remaining lifetime\n// drops below this threshold, push the expiry back to a full\n// ACCESS_TOKEN_EXPIRES_IN window. Keeps actively-used tokens alive without\n// minting a new one on every request.\nexport const ACCESS_TOKEN_REFRESH_THRESHOLD = 60 * 60 * 24; // 1 day\n\nexport const getTokenExpireAt = () =>\n new Date(Date.now() + ACCESS_TOKEN_EXPIRES_IN * 1000);\n\nexport const shouldExtendOAuth2Token = (expiresAt: Date | string): boolean => {\n const remainingMs = new Date(expiresAt).getTime() - Date.now();\n return remainingMs < ACCESS_TOKEN_REFRESH_THRESHOLD * 1000;\n};\n\nexport const authenticateOptions: AuthenticateOptions = {\n scope: undefined,\n addAcceptedScopesHeader: undefined,\n addAuthorizedScopesHeader: undefined,\n allowBearerTokensInQueryString: undefined,\n};\n\nexport const getAuthModel = (): OAuth2Server.ClientCredentialsModel => ({\n getClient,\n saveToken,\n getUserFromClient,\n verifyScope,\n getAccessToken,\n});\n"],"mappings":";;;AAUA,MAAa,0BAA0B,OAAU,KAAK;AAMtD,MAAa,iCAAiC,OAAU;AAExD,MAAa,yBACX,IAAI,KAAK,KAAK,KAAK,GAAG,0BAA0B,IAAK;AAEvD,MAAa,2BAA2B,cAAsC;AAE5E,QADoB,IAAI,KAAK,UAAU,CAAC,SAAS,GAAG,KAAK,KAAK,GACzC,iCAAiC;;AAGxD,MAAa,sBAA2C;CACtD,OAAO;CACP,yBAAyB;CACzB,2BAA2B;CAC3B,gCAAgC;CACjC;AAED,MAAa,sBAA2D;CACtE;CACA;CACA;CACA;CACA;CACD"}
@@ -22,12 +22,17 @@ const retrievePlanInformation = (priceId) => {
22
22
  period: "MONTHLY",
23
23
  type: "ENTERPRISE"
24
24
  };
25
+ case process.env.STRIPE_ONE_TIME_PAYMENT_PRICE_ID: return {
26
+ period: "LIFETIME",
27
+ type: "LIFETIME"
28
+ };
25
29
  default: return {
26
30
  period: void 0,
27
31
  type: "FREE"
28
32
  };
29
33
  }
30
34
  };
35
+ const isLifetimePriceId = (priceId) => Boolean(process.env.STRIPE_ONE_TIME_PAYMENT_PRICE_ID && priceId === process.env.STRIPE_ONE_TIME_PAYMENT_PRICE_ID);
31
36
  const planDetails = {
32
37
  FREE: {
33
38
  numberOfOrganizationUsers: 1,
@@ -49,6 +54,13 @@ const planDetails = {
49
54
  totalStorage: void 0,
50
55
  SeoAI: true,
51
56
  contentAI: true
57
+ },
58
+ LIFETIME: {
59
+ numberOfOrganizationUsers: void 0,
60
+ numberOfProjects: void 0,
61
+ totalStorage: void 0,
62
+ SeoAI: true,
63
+ contentAI: true
52
64
  }
53
65
  };
54
66
  const getPlanDetails = (plan) => {
@@ -57,5 +69,5 @@ const getPlanDetails = (plan) => {
57
69
  };
58
70
 
59
71
  //#endregion
60
- export { getPlanDetails, retrievePlanInformation };
72
+ export { getPlanDetails, isLifetimePriceId, retrievePlanInformation };
61
73
  //# sourceMappingURL=plan.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"plan.mjs","names":[],"sources":["../../../src/utils/plan.ts"],"sourcesContent":["import type { Plan } from '@/types/plan.types';\n\n/**\n * Retrieves the plan type based on the price ID.\n * @param priceId - The price ID to retrieve the plan type from.\n * @returns The plan type and period.\n */\nexport const retrievePlanInformation = (\n priceId: string\n): Pick<Plan, 'period' | 'type'> => {\n switch (priceId) {\n case process.env.STRIPE_PREMIUM_YEARLY_PRICE_ID!:\n return { period: 'YEARLY', type: 'PREMIUM' };\n case process.env.STRIPE_PREMIUM_MONTHLY_PRICE_ID!:\n return { period: 'MONTHLY', type: 'PREMIUM' };\n case process.env.STRIPE_ENTERPRISE_YEARLY_PRICE_ID!:\n return { period: 'YEARLY', type: 'ENTERPRISE' };\n case process.env.STRIPE_ENTERPRISE_MONTHLY_PRICE_ID!:\n return { period: 'MONTHLY', type: 'ENTERPRISE' };\n default:\n return { period: undefined, type: 'FREE' };\n }\n};\n\ntype PlanDetails = {\n numberOfOrganizationUsers?: number;\n numberOfProjects?: number;\n totalStorage?: number;\n SeoAI: boolean;\n contentAI: boolean;\n};\n\nconst planDetails: Record<Plan['type'], PlanDetails> = {\n FREE: {\n numberOfOrganizationUsers: 1,\n numberOfProjects: 1,\n totalStorage: 100, // 100 MB\n SeoAI: false,\n contentAI: false,\n },\n PREMIUM: {\n numberOfOrganizationUsers: 20,\n numberOfProjects: 10,\n totalStorage: 500, // 500 MB\n SeoAI: false,\n contentAI: true,\n },\n ENTERPRISE: {\n numberOfOrganizationUsers: undefined,\n numberOfProjects: undefined,\n totalStorage: undefined,\n SeoAI: true,\n contentAI: true,\n },\n};\n\nexport const getPlanDetails = (plan?: Plan): PlanDetails => {\n if (plan?.status !== 'active') {\n return planDetails.FREE;\n }\n\n return planDetails[plan.type];\n};\n"],"mappings":";;;;;;AAOA,MAAa,2BACX,YACkC;AAClC,SAAQ,SAAR;EACE,KAAK,QAAQ,IAAI,+BACf,QAAO;GAAE,QAAQ;GAAU,MAAM;GAAW;EAC9C,KAAK,QAAQ,IAAI,gCACf,QAAO;GAAE,QAAQ;GAAW,MAAM;GAAW;EAC/C,KAAK,QAAQ,IAAI,kCACf,QAAO;GAAE,QAAQ;GAAU,MAAM;GAAc;EACjD,KAAK,QAAQ,IAAI,mCACf,QAAO;GAAE,QAAQ;GAAW,MAAM;GAAc;EAClD,QACE,QAAO;GAAE,QAAQ;GAAW,MAAM;GAAQ;;;AAYhD,MAAM,cAAiD;CACrD,MAAM;EACJ,2BAA2B;EAC3B,kBAAkB;EAClB,cAAc;EACd,OAAO;EACP,WAAW;EACZ;CACD,SAAS;EACP,2BAA2B;EAC3B,kBAAkB;EAClB,cAAc;EACd,OAAO;EACP,WAAW;EACZ;CACD,YAAY;EACV,2BAA2B;EAC3B,kBAAkB;EAClB,cAAc;EACd,OAAO;EACP,WAAW;EACZ;CACF;AAED,MAAa,kBAAkB,SAA6B;AAC1D,KAAI,MAAM,WAAW,SACnB,QAAO,YAAY;AAGrB,QAAO,YAAY,KAAK"}
1
+ {"version":3,"file":"plan.mjs","names":[],"sources":["../../../src/utils/plan.ts"],"sourcesContent":["import type { Plan } from '@/types/plan.types';\n\n/**\n * Retrieves the plan type based on the price ID.\n * @param priceId - The price ID to retrieve the plan type from.\n * @returns The plan type and period.\n */\nexport const retrievePlanInformation = (\n priceId: string\n): Pick<Plan, 'period' | 'type'> => {\n switch (priceId) {\n case process.env.STRIPE_PREMIUM_YEARLY_PRICE_ID!:\n return { period: 'YEARLY', type: 'PREMIUM' };\n case process.env.STRIPE_PREMIUM_MONTHLY_PRICE_ID!:\n return { period: 'MONTHLY', type: 'PREMIUM' };\n case process.env.STRIPE_ENTERPRISE_YEARLY_PRICE_ID!:\n return { period: 'YEARLY', type: 'ENTERPRISE' };\n case process.env.STRIPE_ENTERPRISE_MONTHLY_PRICE_ID!:\n return { period: 'MONTHLY', type: 'ENTERPRISE' };\n case process.env.STRIPE_ONE_TIME_PAYMENT_PRICE_ID!:\n return { period: 'LIFETIME', type: 'LIFETIME' };\n default:\n return { period: undefined, type: 'FREE' };\n }\n};\n\nexport const isLifetimePriceId = (priceId: string): boolean =>\n Boolean(\n process.env.STRIPE_ONE_TIME_PAYMENT_PRICE_ID &&\n priceId === process.env.STRIPE_ONE_TIME_PAYMENT_PRICE_ID\n );\n\ntype PlanDetails = {\n numberOfOrganizationUsers?: number;\n numberOfProjects?: number;\n totalStorage?: number;\n SeoAI: boolean;\n contentAI: boolean;\n};\n\nconst planDetails: Record<Plan['type'], PlanDetails> = {\n FREE: {\n numberOfOrganizationUsers: 1,\n numberOfProjects: 1,\n totalStorage: 100, // 100 MB\n SeoAI: false,\n contentAI: false,\n },\n PREMIUM: {\n numberOfOrganizationUsers: 20,\n numberOfProjects: 10,\n totalStorage: 500, // 500 MB\n SeoAI: false,\n contentAI: true,\n },\n ENTERPRISE: {\n numberOfOrganizationUsers: undefined,\n numberOfProjects: undefined,\n totalStorage: undefined,\n SeoAI: true,\n contentAI: true,\n },\n LIFETIME: {\n numberOfOrganizationUsers: undefined,\n numberOfProjects: undefined,\n totalStorage: undefined,\n SeoAI: true,\n contentAI: true,\n },\n};\n\nexport const getPlanDetails = (plan?: Plan): PlanDetails => {\n if (plan?.status !== 'active') {\n return planDetails.FREE;\n }\n\n return planDetails[plan.type];\n};\n"],"mappings":";;;;;;AAOA,MAAa,2BACX,YACkC;AAClC,SAAQ,SAAR;EACE,KAAK,QAAQ,IAAI,+BACf,QAAO;GAAE,QAAQ;GAAU,MAAM;GAAW;EAC9C,KAAK,QAAQ,IAAI,gCACf,QAAO;GAAE,QAAQ;GAAW,MAAM;GAAW;EAC/C,KAAK,QAAQ,IAAI,kCACf,QAAO;GAAE,QAAQ;GAAU,MAAM;GAAc;EACjD,KAAK,QAAQ,IAAI,mCACf,QAAO;GAAE,QAAQ;GAAW,MAAM;GAAc;EAClD,KAAK,QAAQ,IAAI,iCACf,QAAO;GAAE,QAAQ;GAAY,MAAM;GAAY;EACjD,QACE,QAAO;GAAE,QAAQ;GAAW,MAAM;GAAQ;;;AAIhD,MAAa,qBAAqB,YAChC,QACE,QAAQ,IAAI,oCACV,YAAY,QAAQ,IAAI,iCAC3B;AAUH,MAAM,cAAiD;CACrD,MAAM;EACJ,2BAA2B;EAC3B,kBAAkB;EAClB,cAAc;EACd,OAAO;EACP,WAAW;EACZ;CACD,SAAS;EACP,2BAA2B;EAC3B,kBAAkB;EAClB,cAAc;EACd,OAAO;EACP,WAAW;EACZ;CACD,YAAY;EACV,2BAA2B;EAC3B,kBAAkB;EAClB,cAAc;EACd,OAAO;EACP,WAAW;EACZ;CACD,UAAU;EACR,2BAA2B;EAC3B,kBAAkB;EAClB,cAAc;EACd,OAAO;EACP,WAAW;EACZ;CACF;AAED,MAAa,kBAAkB,SAA6B;AAC1D,KAAI,MAAM,WAAW,SACnB,QAAO,YAAY;AAGrB,QAAO,YAAY,KAAK"}
@@ -12,6 +12,16 @@ type GetOAuth2TokenResult = ResponseData<OAuth2Token>;
12
12
  declare const getOAuth2AccessToken: (request: FastifyRequest<{
13
13
  Body: GetOAuth2TokenBody;
14
14
  }>, reply: FastifyReply) => Promise<void>;
15
+ type ExtendOAuth2TokenResult = ResponseData<{
16
+ accessToken: string;
17
+ accessTokenExpiresAt: Date;
18
+ }>;
19
+ /**
20
+ * Extend the lifetime of the bearer token attached to the current request.
21
+ * Lets long-running clients keep using the same token instead of
22
+ * re-authenticating on a fixed schedule.
23
+ */
24
+ declare const extendOAuth2Token: (request: FastifyRequest, reply: FastifyReply) => Promise<void>;
15
25
  //#endregion
16
- export { GetOAuth2TokenBody, GetOAuth2TokenResult, getOAuth2AccessToken };
26
+ export { ExtendOAuth2TokenResult, GetOAuth2TokenBody, GetOAuth2TokenResult, extendOAuth2Token, getOAuth2AccessToken };
17
27
  //# sourceMappingURL=oAuth2.controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"oAuth2.controller.d.ts","names":[],"sources":["../../../src/controllers/oAuth2.controller.ts"],"mappings":";;;;;KAUY,kBAAA;EACV,UAAA;EACA,SAAA;EACA,aAAA;AAAA;AAAA,KAEU,oBAAA,GAAuB,YAAA,CAAa,WAAA;AAAA,cAGnC,oBAAA,GACX,OAAA,EAAS,cAAA;EAAiB,IAAA,EAAM,kBAAA;AAAA,IAChC,KAAA,EAAO,YAAA,KACN,OAAA"}
1
+ {"version":3,"file":"oAuth2.controller.d.ts","names":[],"sources":["../../../src/controllers/oAuth2.controller.ts"],"mappings":";;;;;KAWY,kBAAA;EACV,UAAA;EACA,SAAA;EACA,aAAA;AAAA;AAAA,KAEU,oBAAA,GAAuB,YAAA,CAAa,WAAA;AAAA,cAGnC,oBAAA,GACX,OAAA,EAAS,cAAA;EAAiB,IAAA,EAAM,kBAAA;AAAA,IAChC,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,KAwBS,uBAAA,GAA0B,YAAA;EACpC,WAAA;EACA,oBAAA,EAAsB,IAAA;AAAA;;;;AA7BxB;;cAqCa,iBAAA,GACX,OAAA,EAAS,cAAA,EACT,KAAA,EAAO,YAAA,KACN,OAAA"}
@@ -24,7 +24,8 @@ type GetCheckoutSessionBody = {
24
24
  promoCode?: string;
25
25
  };
26
26
  type GetCheckoutSessionResult = ResponseData<{
27
- subscription: Stripe.Response<Stripe.Subscription>;
27
+ subscription?: Stripe.Response<Stripe.Subscription>;
28
+ paymentIntent?: Stripe.Response<Stripe.PaymentIntent>;
28
29
  clientSecret: string;
29
30
  }>;
30
31
  /**
@@ -39,6 +40,25 @@ type CancelSubscriptionResult = ResponseData<CancelSubscriptionData>;
39
40
  * Cancels a subscription for an organization.
40
41
  */
41
42
  declare const cancelSubscription: (_request: FastifyRequest, reply: FastifyReply) => Promise<void>;
43
+ type GetInvoicesResult = ResponseData<Stripe.Invoice[]>;
44
+ /**
45
+ * Lists Stripe invoices for the authenticated organization's customer.
46
+ */
47
+ declare const getInvoices: (request: FastifyRequest, reply: FastifyReply) => Promise<void>;
48
+ type GetPaymentMethodResult = ResponseData<Stripe.PaymentMethod | null>;
49
+ /**
50
+ * Returns the first card payment method attached to the authenticated
51
+ * organization's Stripe customer (or null if none).
52
+ */
53
+ declare const getPaymentMethod: (request: FastifyRequest, reply: FastifyReply) => Promise<void>;
54
+ type CreatePortalSessionResult = ResponseData<{
55
+ url: string;
56
+ }>;
57
+ /**
58
+ * Creates a Stripe Billing Portal session for the authenticated organization
59
+ * so the user can manage their payment method and subscription.
60
+ */
61
+ declare const createPortalSession: (request: FastifyRequest, reply: FastifyReply) => Promise<void>;
42
62
  //#endregion
43
- export { CancelSubscriptionResult, GetCheckoutSessionBody, GetCheckoutSessionResult, GetPricingBody, GetPricingResult, cancelSubscription, getPricing, getSubscription };
63
+ export { CancelSubscriptionResult, CreatePortalSessionResult, GetCheckoutSessionBody, GetCheckoutSessionResult, GetInvoicesResult, GetPaymentMethodResult, GetPricingBody, GetPricingResult, cancelSubscription, createPortalSession, getInvoices, getPaymentMethod, getPricing, getSubscription };
44
64
  //# sourceMappingURL=stripe.controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stripe.controller.d.ts","names":[],"sources":["../../../src/controllers/stripe.controller.ts"],"mappings":";;;;;;;KAWY,cAAA;EACV,QAAA;EACA,SAAA;AAAA;AAAA,KAGU,gBAAA,GAAmB,YAAA,CAAa,aAAA;;;AAA5C;;;;cAQa,UAAA,GACX,OAAA,EAAS,cAAA;EAAiB,IAAA,EAAM,cAAA;AAAA,IAChC,KAAA,EAAO,YAAA,KAAY,OAAA;AAAA,KAiBT,sBAAA;EACV,OAAA;EACA,SAAA;AAAA;AAAA,KAGU,wBAAA,GAA2B,YAAA;EACrC,YAAA,EAAc,MAAA,CAAO,QAAA,CAAS,MAAA,CAAO,YAAA;EACrC,YAAA;AAAA;;;;cAMW,eAAA,GACX,OAAA,EAAS,cAAA;EAAiB,IAAA,EAAM,sBAAA;AAAA,IAChC,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,KAwHE,sBAAA,GAAyB,YAAA;AAAA,KAClB,wBAAA,GAA2B,YAAA,CAAa,sBAAA;;;;cAKvC,kBAAA,GACX,QAAA,EAAU,cAAA,EACV,KAAA,EAAO,YAAA,KACN,OAAA"}
1
+ {"version":3,"file":"stripe.controller.d.ts","names":[],"sources":["../../../src/controllers/stripe.controller.ts"],"mappings":";;;;;;;KAWY,cAAA;EACV,QAAA;EACA,SAAA;AAAA;AAAA,KAGU,gBAAA,GAAmB,YAAA,CAAa,aAAA;;;AAA5C;;;;cAQa,UAAA,GACX,OAAA,EAAS,cAAA;EAAiB,IAAA,EAAM,cAAA;AAAA,IAChC,KAAA,EAAO,YAAA,KAAY,OAAA;AAAA,KAiBT,sBAAA;EACV,OAAA;EACA,SAAA;AAAA;AAAA,KAGU,wBAAA,GAA2B,YAAA;EACrC,YAAA,GAAe,MAAA,CAAO,QAAA,CAAS,MAAA,CAAO,YAAA;EACtC,aAAA,GAAgB,MAAA,CAAO,QAAA,CAAS,MAAA,CAAO,aAAA;EACvC,YAAA;AAAA;;;;cAMW,eAAA,GACX,OAAA,EAAS,cAAA;EAAiB,IAAA,EAAM,sBAAA;AAAA,IAChC,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,KA+KE,sBAAA,GAAyB,YAAA;AAAA,KAClB,wBAAA,GAA2B,YAAA,CAAa,sBAAA;;;;cAKvC,kBAAA,GACX,QAAA,EAAU,cAAA,EACV,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,KAkFS,iBAAA,GAAoB,YAAA,CAAa,MAAA,CAAO,OAAA;;;;cAKvC,WAAA,GACX,OAAA,EAAS,cAAA,EACT,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,KAsBS,sBAAA,GAAyB,YAAA,CAAa,MAAA,CAAO,aAAA;;;;;cAM5C,gBAAA,GACX,OAAA,EAAS,cAAA,EACT,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,KA2BS,yBAAA,GAA4B,YAAA;EAAe,GAAA;AAAA;;;;;cAM1C,mBAAA,GACX,OAAA,EAAS,cAAA,EACT,KAAA,EAAO,YAAA,KACN,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"translation.controller.d.ts","names":[],"sources":["../../../src/controllers/translation.controller.ts"],"mappings":";;;;;KAiBY,yBAAA;EACV,aAAA;EACA,aAAA,EAAe,MAAA;EACf,IAAA;AAAA;AAAA,KAEU,2BAAA,GAA8B,YAAA;EAAe,KAAA;AAAA;AAAA,cAE5C,qBAAA,GACX,OAAA,EAAS,cAAA;EAAiB,IAAA,EAAM,yBAAA;AAAA,IAChC,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,cAgGU,mBAAA,GACX,OAAA,EAAS,cAAA;EAAiB,MAAA;IAAU,KAAA;EAAA;AAAA,IACpC,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,cAWU,oBAAA,GACX,OAAA,EAAS,cAAA;EAAiB,MAAA;IAAU,KAAA;EAAA;AAAA,IACpC,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,cAWU,kBAAA,GACX,OAAA,EAAS,cAAA;EAAiB,MAAA;IAAU,KAAA;EAAA;AAAA,IACpC,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,cAqBU,mBAAA,GACX,OAAA,EAAS,cAAA;EAAiB,MAAA;IAAU,KAAA;EAAA;AAAA,IACpC,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,cAgBU,qBAAA,GACX,OAAA,EAAS,cAAA;EAAiB,MAAA;IAAU,KAAA;EAAA;AAAA,IACpC,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,cAeU,oBAAA,GACX,OAAA,EAAS,cAAA,EACT,KAAA,EAAO,YAAA,KACN,OAAA"}
1
+ {"version":3,"file":"translation.controller.d.ts","names":[],"sources":["../../../src/controllers/translation.controller.ts"],"mappings":";;;;;KAiBY,yBAAA;EACV,aAAA;EACA,aAAA,EAAe,MAAA;EACf,IAAA;AAAA;AAAA,KAEU,2BAAA,GAA8B,YAAA;EAAe,KAAA;AAAA;AAAA,cAE5C,qBAAA,GACX,OAAA,EAAS,cAAA;EAAiB,IAAA,EAAM,yBAAA;AAAA,IAChC,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,cAmGU,mBAAA,GACX,OAAA,EAAS,cAAA;EAAiB,MAAA;IAAU,KAAA;EAAA;AAAA,IACpC,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,cAWU,oBAAA,GACX,OAAA,EAAS,cAAA;EAAiB,MAAA;IAAU,KAAA;EAAA;AAAA,IACpC,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,cAWU,kBAAA,GACX,OAAA,EAAS,cAAA;EAAiB,MAAA;IAAU,KAAA;EAAA;AAAA,IACpC,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,cAqBU,mBAAA,GACX,OAAA,EAAS,cAAA;EAAiB,MAAA;IAAU,KAAA;EAAA;AAAA,IACpC,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,cAgBU,qBAAA,GACX,OAAA,EAAS,cAAA;EAAiB,MAAA;IAAU,KAAA;EAAA;AAAA,IACpC,KAAA,EAAO,YAAA,KACN,OAAA;AAAA,cAeU,oBAAA,GACX,OAAA,EAAS,cAAA,EACT,KAAA,EAAO,YAAA,KACN,OAAA"}
@@ -46,6 +46,186 @@ declare const InviteUserEmailES: {
46
46
  }: InviteUserEmailProps): _$react_jsx_runtime0.JSX.Element;
47
47
  PreviewProps: InviteUserEmailProps;
48
48
  };
49
+ declare const InviteUserEmailRU: {
50
+ ({
51
+ username,
52
+ invitedByUsername,
53
+ invitedByEmail,
54
+ organizationName,
55
+ inviteLink,
56
+ inviteFromIp,
57
+ inviteFromLocation
58
+ }: InviteUserEmailProps): _$react_jsx_runtime0.JSX.Element;
59
+ PreviewProps: InviteUserEmailProps;
60
+ };
61
+ declare const InviteUserEmailJA: {
62
+ ({
63
+ username,
64
+ invitedByUsername,
65
+ invitedByEmail,
66
+ organizationName,
67
+ inviteLink,
68
+ inviteFromIp,
69
+ inviteFromLocation
70
+ }: InviteUserEmailProps): _$react_jsx_runtime0.JSX.Element;
71
+ PreviewProps: InviteUserEmailProps;
72
+ };
73
+ declare const InviteUserEmailKO: {
74
+ ({
75
+ username,
76
+ invitedByUsername,
77
+ invitedByEmail,
78
+ organizationName,
79
+ inviteLink,
80
+ inviteFromIp,
81
+ inviteFromLocation
82
+ }: InviteUserEmailProps): _$react_jsx_runtime0.JSX.Element;
83
+ PreviewProps: InviteUserEmailProps;
84
+ };
85
+ declare const InviteUserEmailZH: {
86
+ ({
87
+ username,
88
+ invitedByUsername,
89
+ invitedByEmail,
90
+ organizationName,
91
+ inviteLink,
92
+ inviteFromIp,
93
+ inviteFromLocation
94
+ }: InviteUserEmailProps): _$react_jsx_runtime0.JSX.Element;
95
+ PreviewProps: InviteUserEmailProps;
96
+ };
97
+ declare const InviteUserEmailDE: {
98
+ ({
99
+ username,
100
+ invitedByUsername,
101
+ invitedByEmail,
102
+ organizationName,
103
+ inviteLink,
104
+ inviteFromIp,
105
+ inviteFromLocation
106
+ }: InviteUserEmailProps): _$react_jsx_runtime0.JSX.Element;
107
+ PreviewProps: InviteUserEmailProps;
108
+ };
109
+ declare const InviteUserEmailAR: {
110
+ ({
111
+ username,
112
+ invitedByUsername,
113
+ invitedByEmail,
114
+ organizationName,
115
+ inviteLink,
116
+ inviteFromIp,
117
+ inviteFromLocation
118
+ }: InviteUserEmailProps): _$react_jsx_runtime0.JSX.Element;
119
+ PreviewProps: InviteUserEmailProps;
120
+ };
121
+ declare const InviteUserEmailIT: {
122
+ ({
123
+ username,
124
+ invitedByUsername,
125
+ invitedByEmail,
126
+ organizationName,
127
+ inviteLink,
128
+ inviteFromIp,
129
+ inviteFromLocation
130
+ }: InviteUserEmailProps): _$react_jsx_runtime0.JSX.Element;
131
+ PreviewProps: InviteUserEmailProps;
132
+ };
133
+ declare const InviteUserEmailEN_GB: {
134
+ ({
135
+ username,
136
+ invitedByUsername,
137
+ invitedByEmail,
138
+ organizationName,
139
+ inviteLink,
140
+ inviteFromIp,
141
+ inviteFromLocation
142
+ }: InviteUserEmailProps): _$react_jsx_runtime0.JSX.Element;
143
+ PreviewProps: InviteUserEmailProps;
144
+ };
145
+ declare const InviteUserEmailPT: {
146
+ ({
147
+ username,
148
+ invitedByUsername,
149
+ invitedByEmail,
150
+ organizationName,
151
+ inviteLink,
152
+ inviteFromIp,
153
+ inviteFromLocation
154
+ }: InviteUserEmailProps): _$react_jsx_runtime0.JSX.Element;
155
+ PreviewProps: InviteUserEmailProps;
156
+ };
157
+ declare const InviteUserEmailHI: {
158
+ ({
159
+ username,
160
+ invitedByUsername,
161
+ invitedByEmail,
162
+ organizationName,
163
+ inviteLink,
164
+ inviteFromIp,
165
+ inviteFromLocation
166
+ }: InviteUserEmailProps): _$react_jsx_runtime0.JSX.Element;
167
+ PreviewProps: InviteUserEmailProps;
168
+ };
169
+ declare const InviteUserEmailTR: {
170
+ ({
171
+ username,
172
+ invitedByUsername,
173
+ invitedByEmail,
174
+ organizationName,
175
+ inviteLink,
176
+ inviteFromIp,
177
+ inviteFromLocation
178
+ }: InviteUserEmailProps): _$react_jsx_runtime0.JSX.Element;
179
+ PreviewProps: InviteUserEmailProps;
180
+ };
181
+ declare const InviteUserEmailPL: {
182
+ ({
183
+ username,
184
+ invitedByUsername,
185
+ invitedByEmail,
186
+ organizationName,
187
+ inviteLink,
188
+ inviteFromIp,
189
+ inviteFromLocation
190
+ }: InviteUserEmailProps): _$react_jsx_runtime0.JSX.Element;
191
+ PreviewProps: InviteUserEmailProps;
192
+ };
193
+ declare const InviteUserEmailID: {
194
+ ({
195
+ username,
196
+ invitedByUsername,
197
+ invitedByEmail,
198
+ organizationName,
199
+ inviteLink,
200
+ inviteFromIp,
201
+ inviteFromLocation
202
+ }: InviteUserEmailProps): _$react_jsx_runtime0.JSX.Element;
203
+ PreviewProps: InviteUserEmailProps;
204
+ };
205
+ declare const InviteUserEmailVI: {
206
+ ({
207
+ username,
208
+ invitedByUsername,
209
+ invitedByEmail,
210
+ organizationName,
211
+ inviteLink,
212
+ inviteFromIp,
213
+ inviteFromLocation
214
+ }: InviteUserEmailProps): _$react_jsx_runtime0.JSX.Element;
215
+ PreviewProps: InviteUserEmailProps;
216
+ };
217
+ declare const InviteUserEmailUK: {
218
+ ({
219
+ username,
220
+ invitedByUsername,
221
+ invitedByEmail,
222
+ organizationName,
223
+ inviteLink,
224
+ inviteFromIp,
225
+ inviteFromLocation
226
+ }: InviteUserEmailProps): _$react_jsx_runtime0.JSX.Element;
227
+ PreviewProps: InviteUserEmailProps;
228
+ };
49
229
  //#endregion
50
- export { InviteUserEmailEN, InviteUserEmailES, InviteUserEmailFR, InviteUserEmailProps };
230
+ export { InviteUserEmailAR, InviteUserEmailDE, InviteUserEmailEN, InviteUserEmailEN_GB, InviteUserEmailES, InviteUserEmailFR, InviteUserEmailHI, InviteUserEmailID, InviteUserEmailIT, InviteUserEmailJA, InviteUserEmailKO, InviteUserEmailPL, InviteUserEmailPT, InviteUserEmailProps, InviteUserEmailRU, InviteUserEmailTR, InviteUserEmailUK, InviteUserEmailVI, InviteUserEmailZH };
51
231
  //# sourceMappingURL=InviteUserEmail.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InviteUserEmail.d.ts","names":[],"sources":["../../../src/emails/InviteUserEmail.tsx"],"mappings":";;;KAgBY,oBAAA;EACV,QAAA;EACA,iBAAA;EACA,cAAA;EACA,gBAAA;EACA,UAAA;EACA,YAAA;EACA,kBAAA;AAAA;AAAA,cAGW,iBAAA;EAAA;;;;;;;;KAQV,oBAAA,GAAoB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA6EV,iBAAA;EAAA;;;;;;;;KAQV,oBAAA,GAAoB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA6EV,iBAAA;EAAA;;;;;;;;KAQV,oBAAA,GAAoB,oBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"InviteUserEmail.d.ts","names":[],"sources":["../../../src/emails/InviteUserEmail.tsx"],"mappings":";;;KAgBY,oBAAA;EACV,QAAA;EACA,iBAAA;EACA,cAAA;EACA,gBAAA;EACA,UAAA;EACA,YAAA;EACA,kBAAA;AAAA;AAAA,cAGW,iBAAA;EAAA;;;;;;;;KAQV,oBAAA,GAAoB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA6EV,iBAAA;EAAA;;;;;;;;KAQV,oBAAA,GAAoB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA6EV,iBAAA;EAAA;;;;;;;;KAQV,oBAAA,GAAoB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA6EV,iBAAA;EAAA;;;;;;;;KAQV,oBAAA,GAAoB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA6EV,iBAAA;EAAA;;;;;;;;KAQV,oBAAA,GAAoB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA0EV,iBAAA;EAAA;;;;;;;;KAQV,oBAAA,GAAoB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA4EV,iBAAA;EAAA;;;;;;;;KAQV,oBAAA,GAAoB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA0EV,iBAAA;EAAA;;;;;;;;KAQV,oBAAA,GAAoB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA8EV,iBAAA;EAAA;;;;;;;;KAQV,oBAAA,GAAoB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA6EV,iBAAA;EAAA;;;;;;;;KAQV,oBAAA,GAAoB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA6EV,oBAAA;EAAA;;;;;;;;KAQV,oBAAA,GAAoB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA6EV,iBAAA;EAAA;;;;;;;;KAQV,oBAAA,GAAoB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA4EV,iBAAA;EAAA;;;;;;;;KAQV,oBAAA,GAAoB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA6EV,iBAAA;EAAA;;;;;;;;KAQV,oBAAA,GAAoB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA4EV,iBAAA;EAAA;;;;;;;;KAQV,oBAAA,GAAoB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA6EV,iBAAA;EAAA;;;;;;;;KAQV,oBAAA,GAAoB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA4EV,iBAAA;EAAA;;;;;;;;KAQV,oBAAA,GAAoB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA4EV,iBAAA;EAAA;;;;;;;;KAQV,oBAAA,GAAoB,oBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -26,6 +26,111 @@ declare const MagicLinkEmailES: {
26
26
  }: MagicLinkEmailProps): _$react_jsx_runtime0.JSX.Element;
27
27
  PreviewProps: MagicLinkEmailProps;
28
28
  };
29
+ declare const MagicLinkEmailRU: {
30
+ ({
31
+ username,
32
+ magicLink
33
+ }: MagicLinkEmailProps): _$react_jsx_runtime0.JSX.Element;
34
+ PreviewProps: MagicLinkEmailProps;
35
+ };
36
+ declare const MagicLinkEmailJA: {
37
+ ({
38
+ username,
39
+ magicLink
40
+ }: MagicLinkEmailProps): _$react_jsx_runtime0.JSX.Element;
41
+ PreviewProps: MagicLinkEmailProps;
42
+ };
43
+ declare const MagicLinkEmailKO: {
44
+ ({
45
+ username,
46
+ magicLink
47
+ }: MagicLinkEmailProps): _$react_jsx_runtime0.JSX.Element;
48
+ PreviewProps: MagicLinkEmailProps;
49
+ };
50
+ declare const MagicLinkEmailZH: {
51
+ ({
52
+ username,
53
+ magicLink
54
+ }: MagicLinkEmailProps): _$react_jsx_runtime0.JSX.Element;
55
+ PreviewProps: MagicLinkEmailProps;
56
+ };
57
+ declare const MagicLinkEmailDE: {
58
+ ({
59
+ username,
60
+ magicLink
61
+ }: MagicLinkEmailProps): _$react_jsx_runtime0.JSX.Element;
62
+ PreviewProps: MagicLinkEmailProps;
63
+ };
64
+ declare const MagicLinkEmailAR: {
65
+ ({
66
+ username,
67
+ magicLink
68
+ }: MagicLinkEmailProps): _$react_jsx_runtime0.JSX.Element;
69
+ PreviewProps: MagicLinkEmailProps;
70
+ };
71
+ declare const MagicLinkEmailIT: {
72
+ ({
73
+ username,
74
+ magicLink
75
+ }: MagicLinkEmailProps): _$react_jsx_runtime0.JSX.Element;
76
+ PreviewProps: MagicLinkEmailProps;
77
+ };
78
+ declare const MagicLinkEmailEN_GB: {
79
+ ({
80
+ username,
81
+ magicLink
82
+ }: MagicLinkEmailProps): _$react_jsx_runtime0.JSX.Element;
83
+ PreviewProps: MagicLinkEmailProps;
84
+ };
85
+ declare const MagicLinkEmailPT: {
86
+ ({
87
+ username,
88
+ magicLink
89
+ }: MagicLinkEmailProps): _$react_jsx_runtime0.JSX.Element;
90
+ PreviewProps: MagicLinkEmailProps;
91
+ };
92
+ declare const MagicLinkEmailHI: {
93
+ ({
94
+ username,
95
+ magicLink
96
+ }: MagicLinkEmailProps): _$react_jsx_runtime0.JSX.Element;
97
+ PreviewProps: MagicLinkEmailProps;
98
+ };
99
+ declare const MagicLinkEmailTR: {
100
+ ({
101
+ username,
102
+ magicLink
103
+ }: MagicLinkEmailProps): _$react_jsx_runtime0.JSX.Element;
104
+ PreviewProps: MagicLinkEmailProps;
105
+ };
106
+ declare const MagicLinkEmailPL: {
107
+ ({
108
+ username,
109
+ magicLink
110
+ }: MagicLinkEmailProps): _$react_jsx_runtime0.JSX.Element;
111
+ PreviewProps: MagicLinkEmailProps;
112
+ };
113
+ declare const MagicLinkEmailID: {
114
+ ({
115
+ username,
116
+ magicLink
117
+ }: MagicLinkEmailProps): _$react_jsx_runtime0.JSX.Element;
118
+ PreviewProps: MagicLinkEmailProps;
119
+ };
120
+ declare const MagicLinkEmailVI: {
121
+ ({
122
+ username,
123
+ magicLink
124
+ }: MagicLinkEmailProps): _$react_jsx_runtime0.JSX.Element;
125
+ PreviewProps: MagicLinkEmailProps;
126
+ };
127
+ declare const MagicLinkEmailUK: {
128
+ ({
129
+ username,
130
+ magicLink
131
+ }: MagicLinkEmailProps): _$react_jsx_runtime0.JSX.Element;
132
+ PreviewProps: MagicLinkEmailProps;
133
+ };
29
134
  //#endregion
30
- export { MagicLinkEmailEN, MagicLinkEmailES, MagicLinkEmailFR, MagicLinkEmailProps };
135
+ export { MagicLinkEmailAR, MagicLinkEmailDE, MagicLinkEmailEN, MagicLinkEmailEN_GB, MagicLinkEmailES, MagicLinkEmailFR, MagicLinkEmailHI, MagicLinkEmailID, MagicLinkEmailIT, MagicLinkEmailJA, MagicLinkEmailKO, MagicLinkEmailPL, MagicLinkEmailPT, MagicLinkEmailProps, MagicLinkEmailRU, MagicLinkEmailTR, MagicLinkEmailUK, MagicLinkEmailVI, MagicLinkEmailZH };
31
136
  //# sourceMappingURL=MagicLinkEmail.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MagicLinkEmail.d.ts","names":[],"sources":["../../../src/emails/MagicLinkEmail.tsx"],"mappings":";;;KAgBY,mBAAA;EACV,QAAA;EACA,SAAA;AAAA;AAAA,cAGW,gBAAA;EAAA;;;KAGV,mBAAA,GAAmB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA+DT,gBAAA;EAAA;;;KAGV,mBAAA,GAAmB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA8DT,gBAAA;EAAA;;;KAGV,mBAAA,GAAmB,oBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"MagicLinkEmail.d.ts","names":[],"sources":["../../../src/emails/MagicLinkEmail.tsx"],"mappings":";;;KAgBY,mBAAA;EACV,QAAA;EACA,SAAA;AAAA;AAAA,cAGW,gBAAA;EAAA;;;KAGV,mBAAA,GAAmB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA+DT,gBAAA;EAAA;;;KAGV,mBAAA,GAAmB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA8DT,gBAAA;EAAA;;;KAGV,mBAAA,GAAmB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA6DT,gBAAA;EAAA;;;KAGV,mBAAA,GAAmB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA8DT,gBAAA;EAAA;;;KAGV,mBAAA,GAAmB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA4DT,gBAAA;EAAA;;;KAGV,mBAAA,GAAmB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA6DT,gBAAA;EAAA;;;KAGV,mBAAA,GAAmB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA4DT,gBAAA;EAAA;;;KAGV,mBAAA,GAAmB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cAgET,gBAAA;EAAA;;;KAGV,mBAAA,GAAmB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA+DT,gBAAA;EAAA;;;KAGV,mBAAA,GAAmB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA8DT,mBAAA;EAAA;;;KAGV,mBAAA,GAAmB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA+DT,gBAAA;EAAA;;;KAGV,mBAAA,GAAmB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA8DT,gBAAA;EAAA;;;KAGV,mBAAA,GAAmB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA6DT,gBAAA;EAAA;;;KAGV,mBAAA,GAAmB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA8DT,gBAAA;EAAA;;;KAGV,mBAAA,GAAmB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA8DT,gBAAA;EAAA;;;KAGV,mBAAA,GAAmB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA+DT,gBAAA;EAAA;;;KAGV,mBAAA,GAAmB,oBAAA,CAAA,GAAA,CAAA,OAAA;;;cA+DT,gBAAA;EAAA;;;KAGV,mBAAA,GAAmB,oBAAA,CAAA,GAAA,CAAA,OAAA"}