alepha 0.19.4 → 0.19.5
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/api/audits/index.d.ts +8 -8
- package/dist/api/issues/index.d.ts +810 -0
- package/dist/api/issues/index.d.ts.map +1 -0
- package/dist/api/issues/index.js +447 -0
- package/dist/api/issues/index.js.map +1 -0
- package/dist/api/keys/index.d.ts +5 -5
- package/dist/api/users/index.d.ts +6 -0
- package/dist/api/users/index.d.ts.map +1 -1
- package/dist/api/users/index.js +10 -3
- package/dist/api/users/index.js.map +1 -1
- package/dist/api/workflows/index.d.ts +3 -3
- package/dist/captcha/index.d.ts +142 -0
- package/dist/captcha/index.d.ts.map +1 -0
- package/dist/captcha/index.js +177 -0
- package/dist/captcha/index.js.map +1 -0
- package/dist/cli/core/index.d.ts +82 -2
- package/dist/cli/core/index.d.ts.map +1 -1
- package/dist/cli/core/index.js +90 -6
- package/dist/cli/core/index.js.map +1 -1
- package/dist/cli/platform/index.d.ts +84 -10
- package/dist/cli/platform/index.d.ts.map +1 -1
- package/dist/cli/platform/index.js +92 -4
- package/dist/cli/platform/index.js.map +1 -1
- package/dist/cli/vendor/index.d.ts +30 -3
- package/dist/cli/vendor/index.d.ts.map +1 -1
- package/dist/cli/vendor/index.js +98 -21
- package/dist/cli/vendor/index.js.map +1 -1
- package/dist/command/index.d.ts.map +1 -1
- package/dist/command/index.js +2 -3
- package/dist/command/index.js.map +1 -1
- package/dist/orm/core/index.bun.js +6 -6
- package/dist/orm/core/index.bun.js.map +1 -1
- package/dist/orm/core/index.d.ts.map +1 -1
- package/dist/orm/core/index.js +6 -6
- package/dist/orm/core/index.js.map +1 -1
- package/dist/react/i18n/index.d.ts +1 -0
- package/dist/react/i18n/index.d.ts.map +1 -1
- package/dist/react/i18n/index.js +8 -4
- package/dist/react/i18n/index.js.map +1 -1
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/index.js.map +1 -1
- package/dist/server/auth/index.d.ts +145 -2
- package/dist/server/auth/index.d.ts.map +1 -1
- package/dist/server/auth/index.js +364 -63
- package/dist/server/auth/index.js.map +1 -1
- package/dist/server/cookies/index.d.ts.map +1 -1
- package/dist/server/cookies/index.js.map +1 -1
- package/dist/websocket/index.d.ts.map +1 -1
- package/dist/websocket/index.js.map +1 -1
- package/package.json +11 -1
- package/src/api/issues/__tests__/IssueService.spec.ts +263 -0
- package/src/api/issues/controllers/AdminIssueController.ts +149 -0
- package/src/api/issues/controllers/IssueController.ts +44 -0
- package/src/api/issues/entities/issues.ts +49 -0
- package/src/api/issues/index.ts +53 -0
- package/src/api/issues/schemas/createIssueSchema.ts +13 -0
- package/src/api/issues/schemas/issueConfigAtom.ts +13 -0
- package/src/api/issues/schemas/issueQuerySchema.ts +18 -0
- package/src/api/issues/schemas/issueResourceSchema.ts +6 -0
- package/src/api/issues/schemas/myIssueQuerySchema.ts +10 -0
- package/src/api/issues/schemas/updateIssueSchema.ts +13 -0
- package/src/api/issues/services/IssueService.ts +264 -0
- package/src/api/users/primitives/$realm.ts +24 -0
- package/src/api/users/services/CredentialService.ts +6 -3
- package/src/api/users/services/RegistrationService.ts +15 -5
- package/src/api/users/services/SessionService.ts +2 -0
- package/src/captcha/__tests__/MemoryCaptchaProvider.spec.ts +74 -0
- package/src/captcha/index.ts +33 -0
- package/src/captcha/providers/CaptchaProvider.ts +17 -0
- package/src/captcha/providers/MemoryCaptchaProvider.ts +65 -0
- package/src/captcha/providers/TurnstileCaptchaProvider.ts +125 -0
- package/src/cli/core/atoms/buildOptions.ts +57 -0
- package/src/cli/core/commands/build.ts +2 -0
- package/src/cli/core/providers/ViteDevServerProvider.ts +1 -1
- package/src/cli/core/services/ViteUtils.ts +5 -2
- package/src/cli/core/tasks/BuildClientTask.ts +3 -1
- package/src/cli/core/tasks/BuildCloudflareTask.ts +4 -0
- package/src/cli/core/tasks/BuildPwaTask.ts +81 -0
- package/src/cli/platform/adapters/CloudflareAdapter.ts +24 -0
- package/src/cli/platform/atoms/platformOptions.ts +19 -3
- package/src/cli/platform/hooks/PlatformHook.ts +51 -0
- package/src/cli/platform/index.ts +1 -0
- package/src/cli/platform/services/CloudflareApi.ts +22 -1
- package/src/cli/platform/services/PlatformOrchestrator.ts +67 -2
- package/src/cli/vendor/__tests__/VendorService.spec.ts +40 -1
- package/src/cli/vendor/commands/VendorCommand.ts +41 -38
- package/src/cli/vendor/services/VendorService.ts +108 -4
- package/src/command/__tests__/CliProvider.spec.ts +45 -0
- package/src/command/providers/CliProvider.ts +3 -4
- package/src/orm/core/services/Repository.ts +20 -6
- package/src/react/i18n/__tests__/I18nProvider.spec.ts +83 -0
- package/src/react/i18n/providers/I18nProvider.ts +12 -10
- package/src/security/primitives/$issuer.ts +3 -1
- package/src/server/auth/index.ts +7 -0
- package/src/server/auth/primitives/$auth.ts +37 -3
- package/src/server/auth/primitives/$authApple.ts +114 -4
- package/src/server/auth/primitives/$authFacebook.ts +98 -0
- package/src/server/auth/primitives/$authFranceConnect.ts +105 -0
- package/src/server/auth/primitives/$authGithub.ts +22 -16
- package/src/server/auth/primitives/$authMicrosoft.ts +88 -0
- package/src/server/auth/providers/ServerAuthProvider.ts +197 -72
- package/src/server/cookies/providers/ServerCookiesProvider.ts +3 -0
- package/src/server/core/__tests__/ServerRouterProvider-errorHandler.spec.ts +1 -1
- package/src/websocket/providers/NodeWebSocketServerProvider.ts +3 -1
package/dist/api/users/index.js
CHANGED
|
@@ -7,11 +7,12 @@ import { $entity, $repository, db, pageQuerySchema, parseQueryString, sql } from
|
|
|
7
7
|
import { $logger } from "alepha/logger";
|
|
8
8
|
import { $client } from "alepha/server/links";
|
|
9
9
|
import { $notification } from "alepha/api/notifications";
|
|
10
|
-
import { $authCredentials, $authGithub, $authGoogle, ServerAuthProvider, authenticationProviderSchema } from "alepha/server/auth";
|
|
10
|
+
import { $authApple, $authCredentials, $authFacebook, $authFranceConnect, $authGithub, $authGoogle, $authMicrosoft, ServerAuthProvider, authenticationProviderSchema } from "alepha/server/auth";
|
|
11
11
|
import { $etag } from "alepha/server/etag";
|
|
12
12
|
import { randomInt, randomUUID } from "node:crypto";
|
|
13
13
|
import { $cache, CacheProvider } from "alepha/cache";
|
|
14
14
|
import { DateTimeProvider } from "alepha/datetime";
|
|
15
|
+
import { CaptchaProvider } from "alepha/captcha";
|
|
15
16
|
import { $job } from "alepha/api/jobs";
|
|
16
17
|
import { FileSystemProvider } from "alepha/system";
|
|
17
18
|
import { AlephaApiKeys, ApiKeyService } from "alepha/api/keys";
|
|
@@ -1446,10 +1447,10 @@ var CredentialService = class {
|
|
|
1446
1447
|
});
|
|
1447
1448
|
throw new BadRequestError("Verification code has already been used");
|
|
1448
1449
|
}
|
|
1449
|
-
await this.intentCache.invalidate(body.intentId);
|
|
1450
1450
|
const hashedPassword = await this.cryptoProvider.hashPassword(body.newPassword);
|
|
1451
1451
|
await this.identities(intent.realmName).updateById(intent.identityId, { password: hashedPassword });
|
|
1452
1452
|
await this.sessions(intent.realmName).deleteMany({ userId: { eq: intent.userId } });
|
|
1453
|
+
await this.intentCache.invalidate(body.intentId);
|
|
1453
1454
|
this.log.info("Password reset completed", {
|
|
1454
1455
|
userId: intent.userId,
|
|
1455
1456
|
email: intent.email
|
|
@@ -1544,6 +1545,7 @@ var RegistrationService = class {
|
|
|
1544
1545
|
verificationController = $client();
|
|
1545
1546
|
realmProvider = $inject(RealmProvider);
|
|
1546
1547
|
credentialService = $inject(CredentialService);
|
|
1548
|
+
captchaProvider = $inject(CaptchaProvider);
|
|
1547
1549
|
intentCache = $cache({
|
|
1548
1550
|
name: "api:users:registrations",
|
|
1549
1551
|
ttl: [INTENT_TTL_MINUTES, "minutes"]
|
|
@@ -1689,6 +1691,7 @@ var RegistrationService = class {
|
|
|
1689
1691
|
}
|
|
1690
1692
|
if (intent.requirements.captcha) {
|
|
1691
1693
|
if (!body.captchaToken) throw new BadRequestError("Captcha verification is required");
|
|
1694
|
+
if (!await this.captchaProvider.verify(body.captchaToken)) throw new BadRequestError("Captcha verification failed");
|
|
1692
1695
|
}
|
|
1693
1696
|
await this.checkUserAvailability({
|
|
1694
1697
|
username: intent.data.username,
|
|
@@ -1709,12 +1712,12 @@ var RegistrationService = class {
|
|
|
1709
1712
|
enabled: true,
|
|
1710
1713
|
emailVerified: intent.requirements.email
|
|
1711
1714
|
});
|
|
1712
|
-
await this.intentCache.invalidate(body.intentId);
|
|
1713
1715
|
await identityRepository.create({
|
|
1714
1716
|
userId: user.id,
|
|
1715
1717
|
provider: "credentials",
|
|
1716
1718
|
password: intent.data.passwordHash
|
|
1717
1719
|
});
|
|
1720
|
+
await this.intentCache.invalidate(body.intentId);
|
|
1718
1721
|
this.log.info("User registered successfully", {
|
|
1719
1722
|
userId: user.id,
|
|
1720
1723
|
email: user.email,
|
|
@@ -2754,6 +2757,10 @@ const $realm = (options = {}) => {
|
|
|
2754
2757
|
else realmRegistration.settings.registrationAllowed = false;
|
|
2755
2758
|
if (identities.google) auth.google = $authGoogle(realm);
|
|
2756
2759
|
if (identities.github) auth.github = $authGithub(realm);
|
|
2760
|
+
if (identities.apple) auth.apple = $authApple(realm);
|
|
2761
|
+
if (identities.facebook) auth.facebook = $authFacebook(realm);
|
|
2762
|
+
if (identities.microsoft) auth.microsoft = $authMicrosoft(realm);
|
|
2763
|
+
if (identities.franceconnect) auth.franceconnect = $authFranceConnect(realm);
|
|
2757
2764
|
alepha.with(() => auth);
|
|
2758
2765
|
}
|
|
2759
2766
|
if (features.parameters) {
|