sitero 0.9.1 → 0.9.2
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/export/cms/client/components/index.js +9 -7
- package/dist/export/core/server/index.js +5 -4
- package/dist/src/core/infrastructure/rate-limiter/create-redis-rate-limiter-port.js +5 -4
- package/dist/types/export/cms/client/components/index.d.ts +3 -3
- package/dist/types/export/cms/client/components/index.d.ts.map +1 -1
- package/dist/types/export/core/server/index.d.ts +2 -0
- package/dist/types/export/core/server/index.d.ts.map +1 -1
- package/dist/types/src/core/infrastructure/rate-limiter/create-redis-rate-limiter-port.d.ts +2 -0
- package/dist/types/src/core/infrastructure/rate-limiter/create-redis-rate-limiter-port.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -12,6 +12,10 @@ import '../../../../src/shared/client/react-query/client.js';
|
|
|
12
12
|
import '@tanstack/react-query';
|
|
13
13
|
import 'clsx';
|
|
14
14
|
import 'tailwind-merge';
|
|
15
|
+
export { ResourceCard } from '../../../../src/cms/client/interfaces/components/ui/cards/resource-card.js';
|
|
16
|
+
export { ActionButtonsCard } from '../../../../src/cms/client/interfaces/components/ui/cards/action-buttons-card.js';
|
|
17
|
+
export { FeatureCard } from '../../../../src/cms/client/interfaces/components/ui/cards/feature-card.js';
|
|
18
|
+
import 'intor/react';
|
|
15
19
|
import 'next/link';
|
|
16
20
|
import '@radix-ui/react-avatar';
|
|
17
21
|
import '../../../../src/cms/client/interfaces/components/shadcn/badge.js';
|
|
@@ -29,11 +33,6 @@ import 'next-themes';
|
|
|
29
33
|
import 'sonner';
|
|
30
34
|
import '@radix-ui/react-tabs';
|
|
31
35
|
import '@radix-ui/react-tooltip';
|
|
32
|
-
export { Badge } from '../../../../src/cms/client/interfaces/components/ui/display/badge.js';
|
|
33
|
-
export { Tick } from '../../../../src/cms/client/interfaces/components/ui/features/tick.js';
|
|
34
|
-
export { ActionButtonsCard } from '../../../../src/cms/client/interfaces/components/ui/cards/action-buttons-card.js';
|
|
35
|
-
export { FeatureCard } from '../../../../src/cms/client/interfaces/components/ui/cards/feature-card.js';
|
|
36
|
-
import 'intor/react';
|
|
37
36
|
export { Form } from '../../../../src/cms/client/interfaces/components/ui/form/form.js';
|
|
38
37
|
export { FormField } from '../../../../src/cms/client/interfaces/components/ui/form/form-field.js';
|
|
39
38
|
export { Field } from '../../../../src/cms/client/interfaces/components/ui/form/field.js';
|
|
@@ -45,6 +44,7 @@ export { Checkbox } from '../../../../src/cms/client/interfaces/components/ui/in
|
|
|
45
44
|
export { Input } from '../../../../src/cms/client/interfaces/components/ui/inputs/input.js';
|
|
46
45
|
export { Textarea } from '../../../../src/cms/client/interfaces/components/ui/inputs/textarea.js';
|
|
47
46
|
export { ControlFields } from '../../../../src/cms/client/interfaces/components/ui/form/control-fields/control-fields.js';
|
|
47
|
+
export { Badge } from '../../../../src/cms/client/interfaces/components/ui/display/badge.js';
|
|
48
48
|
export { HtmlDisplay } from '../../../../src/cms/client/interfaces/components/ui/display/html-display/html-display.js';
|
|
49
49
|
export { TextDisplay } from '../../../../src/cms/client/interfaces/components/ui/display/text-display.js';
|
|
50
50
|
export { PostStateIcons } from '../../../../src/cms/client/interfaces/components/resources/post/post-state-icons.js';
|
|
@@ -53,19 +53,21 @@ export { ListContainer } from '../../../../src/cms/client/interfaces/components/
|
|
|
53
53
|
export { ActionButton } from '../../../../src/cms/client/interfaces/components/ui/buttons/action-button.js';
|
|
54
54
|
export { LinkButton } from '../../../../src/cms/client/interfaces/components/ui/buttons/link-button.js';
|
|
55
55
|
export { ExternalLinkButton } from '../../../../src/cms/client/interfaces/components/ui/buttons/external-link-button.js';
|
|
56
|
-
|
|
56
|
+
export { ReturnButton } from '../../../../src/cms/client/interfaces/components/ui/buttons/return-button.js';
|
|
57
57
|
export { CopyButton } from '../../../../src/cms/client/interfaces/components/ui/buttons/copy-button.js';
|
|
58
|
+
import 'next/navigation';
|
|
58
59
|
export { Accordion } from '../../../../src/cms/client/interfaces/components/ui/features/accordion/accordion.js';
|
|
59
60
|
export { PickDialog } from '../../../../src/cms/client/interfaces/components/ui/features/pick-modal/pick-dialog.js';
|
|
60
61
|
export { PickerInput } from '../../../../src/cms/client/interfaces/components/ui/features/pick-modal/picker-input.js';
|
|
61
62
|
export { createSmartImage } from '../../../../src/cms/client/interfaces/components/ui/features/smart-image.js';
|
|
63
|
+
export { Tick } from '../../../../src/cms/client/interfaces/components/ui/features/tick.js';
|
|
62
64
|
import 'zod';
|
|
63
65
|
export { createNavbar } from '../../../../src/cms/client/interfaces/components/ui/layouts/navbar/navbar.js';
|
|
64
66
|
export { NavMain } from '../../../../src/cms/client/interfaces/components/ui/layouts/sidebar/nav-main.js';
|
|
65
67
|
export { ContentContainer } from '../../../../src/cms/client/interfaces/components/ui/layouts/content-container.js';
|
|
66
68
|
export { createCmsLayout } from '../../../../src/cms/client/interfaces/components/ui/layouts/cms-layout.js';
|
|
67
69
|
import '../../../../src/cms/client/infrastructure/admin-session/admin-context.js';
|
|
68
|
-
|
|
70
|
+
export { SwitchInput } from '../../../../src/cms/client/interfaces/components/ui/inputs/switch-input.js';
|
|
69
71
|
export { PasswordInput } from '../../../../src/cms/client/interfaces/components/ui/inputs/password-input.js';
|
|
70
72
|
export { Option, Select } from '../../../../src/cms/client/interfaces/components/ui/inputs/select.js';
|
|
71
73
|
export { createAllowPostField } from '../../../../src/cms/client/interfaces/components/resources/post/content/types.js';
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
export { createRedisRateLimiterPort } from '../../../src/core/infrastructure/rate-limiter/create-redis-rate-limiter-port.js';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import 'react-email';
|
|
5
|
-
import 'sitero-domain';
|
|
2
|
+
export { createTransporter } from '../../../src/core/infrastructure/email/delivery.js';
|
|
3
|
+
export { createReactEmailComposer } from '../../../src/core/infrastructure/email/react-email-composer.js';
|
|
6
4
|
export { createAuthenticationPasswordPort } from '../../../src/core/infrastructure/authentication/authentication-password-port.js';
|
|
7
5
|
export { createAuthenticationTokenPort } from '../../../src/core/infrastructure/authentication/authentication-token-port.js';
|
|
8
6
|
export { createRedisCachePort } from '../../../src/core/infrastructure/cache/create-redis-cache-port.js';
|
|
9
7
|
import 'sitero-server';
|
|
8
|
+
import 'sitero-domain';
|
|
10
9
|
import '../../../src/core/infrastructure/prisma/admin/include.js';
|
|
11
10
|
import '../../../prisma/generated/client.js';
|
|
12
11
|
import 'mime-types';
|
|
12
|
+
import 'react';
|
|
13
13
|
import 'ua-parser-js';
|
|
14
14
|
import '../../../src/shared/client/react-query/client.js';
|
|
15
15
|
import 'react/jsx-runtime';
|
|
@@ -21,3 +21,4 @@ import '../../../src/core/infrastructure/prisma/post/include.js';
|
|
|
21
21
|
import '../../../src/core/infrastructure/prisma/post/read-scope.js';
|
|
22
22
|
import '../../../src/core/infrastructure/prisma/page/include.js';
|
|
23
23
|
export { createSiteroServer } from '../../../src/core/sitero-server/create-sitero-server.js';
|
|
24
|
+
export { getRedisClient } from '../../../src/core/infrastructure/redis/create-redis-client.js';
|
|
@@ -27,8 +27,8 @@ function toNumber(value) {
|
|
|
27
27
|
const number = Number(value);
|
|
28
28
|
return Number.isFinite(number) ? number : void 0;
|
|
29
29
|
}
|
|
30
|
-
function parseConsumeResult(result) {
|
|
31
|
-
if (!Array.isArray(result)) return { allowed:
|
|
30
|
+
function parseConsumeResult(result, failureMode) {
|
|
31
|
+
if (!Array.isArray(result)) return { allowed: failureMode === "open" };
|
|
32
32
|
const allowed = toNumber(result[0]) === 1;
|
|
33
33
|
if (allowed) return { allowed: true };
|
|
34
34
|
const retryAfterSeconds = toNumber(result[1]);
|
|
@@ -38,6 +38,7 @@ function createRedisRateLimiterPort(input) {
|
|
|
38
38
|
const {
|
|
39
39
|
getClient,
|
|
40
40
|
namespace,
|
|
41
|
+
failureMode = "open",
|
|
41
42
|
defaultLimit = DEFAULT_LIMIT,
|
|
42
43
|
defaultWindowSeconds = DEFAULT_WINDOW_SECONDS,
|
|
43
44
|
logger
|
|
@@ -60,10 +61,10 @@ function createRedisRateLimiterPort(input) {
|
|
|
60
61
|
keys: [key],
|
|
61
62
|
arguments: [String(limit), String(windowSeconds)]
|
|
62
63
|
});
|
|
63
|
-
return parseConsumeResult(result);
|
|
64
|
+
return parseConsumeResult(result, failureMode);
|
|
64
65
|
} catch (error) {
|
|
65
66
|
logger?.error("Redis rate limiter error", { error, key });
|
|
66
|
-
return { allowed:
|
|
67
|
+
return { allowed: failureMode === "open" };
|
|
67
68
|
}
|
|
68
69
|
}
|
|
69
70
|
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export { createComponents, type Components, } from "../../../../src/cms/client/interfaces/components/create-components";
|
|
2
2
|
export { createPostContents, type PostContents, } from "../../../../src/cms/client/interfaces/components/create-post-contents";
|
|
3
3
|
export { type PostCustomControlField, type AllowPostField, type AllowPostFieldParams, type PostFieldRules, type TopicPostFieldRules, createAllowPostField, PostStateIcons, } from "../../../../src/cms/client/interfaces/components/resources/post";
|
|
4
|
-
export { ActionButtonsCard, FeatureCard, } from "../../../../src/cms/client/interfaces/components/ui/cards";
|
|
5
|
-
export { Input, PasswordInput, Textarea, Select, Option, Checkbox, } from "../../../../src/cms/client/interfaces/components/ui/inputs";
|
|
6
|
-
export { ActionButton, LinkButton, ExternalLinkButton, CopyButton, } from "../../../../src/cms/client/interfaces/components/ui/buttons";
|
|
4
|
+
export { ActionButtonsCard, ResourceCard, FeatureCard, } from "../../../../src/cms/client/interfaces/components/ui/cards";
|
|
5
|
+
export { Input, PasswordInput, Textarea, Select, Option, Checkbox, SwitchInput, } from "../../../../src/cms/client/interfaces/components/ui/inputs";
|
|
6
|
+
export { ActionButton, ReturnButton, LinkButton, ExternalLinkButton, CopyButton, } from "../../../../src/cms/client/interfaces/components/ui/buttons";
|
|
7
7
|
export { HtmlDisplay, TextDisplay, type TextDisplayProps, Badge, } from "../../../../src/cms/client/interfaces/components/ui/display";
|
|
8
8
|
export { PageHeaderLayout, ListContainer, } from "../../../../src/cms/client/interfaces/components/ui/blocks";
|
|
9
9
|
export { PickDialog, PickerInput, type PickDialogProps, type PickerInputProps, type PickItem, type PickListProps, type PickManagementProps, createSmartImage, Tick, Accordion, } from "../../../../src/cms/client/interfaces/components/ui/features";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../export/cms/client/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,KAAK,UAAU,GAChB,MAAM,oEAAoE,CAAC;AAC5E,OAAO,EACL,kBAAkB,EAClB,KAAK,YAAY,GAClB,MAAM,uEAAuE,CAAC;AAG/E,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,oBAAoB,EACpB,cAAc,GACf,MAAM,iEAAiE,CAAC;AAKzE,OAAO,EACL,iBAAiB,EACjB,WAAW,GACZ,MAAM,2DAA2D,CAAC;AAKnE,OAAO,EACL,KAAK,EACL,aAAa,EACb,QAAQ,EACR,MAAM,EACN,MAAM,EACN,QAAQ,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../export/cms/client/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,KAAK,UAAU,GAChB,MAAM,oEAAoE,CAAC;AAC5E,OAAO,EACL,kBAAkB,EAClB,KAAK,YAAY,GAClB,MAAM,uEAAuE,CAAC;AAG/E,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,oBAAoB,EACpB,cAAc,GACf,MAAM,iEAAiE,CAAC;AAKzE,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,WAAW,GACZ,MAAM,2DAA2D,CAAC;AAKnE,OAAO,EACL,KAAK,EACL,aAAa,EACb,QAAQ,EACR,MAAM,EACN,MAAM,EACN,QAAQ,EACR,WAAW,GACZ,MAAM,4DAA4D,CAAC;AAKpE,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,kBAAkB,EAClB,UAAU,GACX,MAAM,6DAA6D,CAAC;AAKrE,OAAO,EACL,WAAW,EACX,WAAW,EACX,KAAK,gBAAgB,EACrB,KAAK,GACN,MAAM,6DAA6D,CAAC;AAKrE,OAAO,EACL,gBAAgB,EAChB,aAAa,GACd,MAAM,4DAA4D,CAAC;AAKpE,OAAO,EACL,UAAU,EACV,WAAW,EACX,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,gBAAgB,EAChB,IAAI,EACJ,SAAS,GACV,MAAM,8DAA8D,CAAC;AAKtE,OAAO,EACL,IAAI,EACJ,SAAS,EACT,KAAK,qBAAqB,EAC1B,KAAK,EACL,SAAS,EACT,eAAe,EACf,UAAU,EACV,UAAU,EACV,aAAa,EACb,KAAK,WAAW,GACjB,MAAM,0DAA0D,CAAC;AAKlE,OAAO,EAAE,SAAS,EAAE,MAAM,yDAAyD,CAAC;AAKpF,OAAO,EAEL,YAAY,EAEZ,eAAe,EAEf,KAAK,OAAO,EACZ,OAAO,EACP,OAAO,EACP,cAAc,EAEd,gBAAgB,GACjB,MAAM,6DAA6D,CAAC;AAGrE,OAAO,EACL,qBAAqB,EACrB,KAAK,eAAe,GACrB,MAAM,kEAAkE,CAAC;AAE1E,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,iBAAiB,EACjB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,GAC1B,MAAM,iEAAiE,CAAC;AACzE,YAAY,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EACL,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,iBAAiB,GACvB,MAAM,uEAAuE,CAAC"}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
1
|
export { createRedisRateLimiterPort, type CreateRedisRateLimiterPortInput, type RedisRateLimiterLogger, createAuthenticationPasswordPort, createAuthenticationTokenPort, createRedisCachePort, createSiteroServer, type AuthenticationSecurityConfig, type AuthenticationTokenConfig, type CreateSiteroServerInput, } from "../../../src/core";
|
|
2
|
+
export { getRedisClient } from "../../../src/core/infrastructure/redis/create-redis-client";
|
|
3
|
+
export { createTransporter, createReactEmailComposer, } from "../../../src/core/infrastructure/email";
|
|
2
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../export/core/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,KAAK,+BAA+B,EACpC,KAAK,sBAAsB,EAC3B,gCAAgC,EAChC,6BAA6B,EAC7B,oBAAoB,EACpB,kBAAkB,EAClB,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,GAC7B,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../export/core/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,KAAK,+BAA+B,EACpC,KAAK,sBAAsB,EAC3B,gCAAgC,EAChC,6BAA6B,EAC7B,oBAAoB,EACpB,kBAAkB,EAClB,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,GAC7B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,cAAc,EAAE,MAAM,4DAA4D,CAAC;AAC5F,OAAO,EACL,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,wCAAwC,CAAC"}
|
|
@@ -6,6 +6,8 @@ export interface RedisRateLimiterLogger {
|
|
|
6
6
|
export interface CreateRedisRateLimiterPortInput {
|
|
7
7
|
getClient: () => Promise<Pick<SiteroRedisClient, "eval">>;
|
|
8
8
|
namespace: string;
|
|
9
|
+
/** Default preserves existing fail-open behavior; public writes should use closed. */
|
|
10
|
+
failureMode?: "open" | "closed" | undefined;
|
|
9
11
|
defaultLimit?: number | undefined;
|
|
10
12
|
defaultWindowSeconds?: number | undefined;
|
|
11
13
|
logger?: RedisRateLimiterLogger | undefined;
|
package/dist/types/src/core/infrastructure/rate-limiter/create-redis-rate-limiter-port.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-redis-rate-limiter-port.d.ts","sourceRoot":"","sources":["../../../../../../src/core/infrastructure/rate-limiter/create-redis-rate-limiter-port.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAGV,eAAe,EAChB,MAAM,eAAe,CAAC;AA0BvB,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACpE;AAED,MAAM,WAAW,+BAA+B;IAC9C,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,MAAM,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;CAC7C;
|
|
1
|
+
{"version":3,"file":"create-redis-rate-limiter-port.d.ts","sourceRoot":"","sources":["../../../../../../src/core/infrastructure/rate-limiter/create-redis-rate-limiter-port.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAGV,eAAe,EAChB,MAAM,eAAe,CAAC;AA0BvB,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACpE;AAED,MAAM,WAAW,+BAA+B;IAC9C,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB,sFAAsF;IACtF,WAAW,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC5C,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,MAAM,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;CAC7C;AAuCD,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,+BAA+B,GACrC,eAAe,CAuCjB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sitero",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.2",
|
|
4
4
|
"author": "Yiming Liao",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -111,8 +111,8 @@
|
|
|
111
111
|
"ua-parser-js": "2.0.9",
|
|
112
112
|
"ulid": "3.0.2",
|
|
113
113
|
"zod": "4.3.6",
|
|
114
|
-
"sitero-domain": "0.9.
|
|
115
|
-
"sitero-server": "0.9.
|
|
114
|
+
"sitero-domain": "0.9.2",
|
|
115
|
+
"sitero-server": "0.9.2"
|
|
116
116
|
},
|
|
117
117
|
"peerDependencies": {
|
|
118
118
|
"@aws-sdk/client-s3": "3.913.0",
|