rimecms 0.30.3 → 0.31.1
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/README.md +1 -39
- package/dist/.rime-modules.d.ts +23 -0
- package/dist/.rime-modules.json +1 -0
- package/dist/adapter-sqlite/generate-schema/write.server.js +6 -6
- package/dist/core/areas/config/builder.server.d.ts +0 -1
- package/dist/core/collections/auth/hooks/before-upsert/augment-fields-password.server.d.ts +1 -1
- package/dist/core/collections/config/builder.server.d.ts +0 -1
- package/dist/core/collections/upload/hooks/convert-base64.server.d.ts +1 -1
- package/dist/core/collections/upload/hooks/extract-path.server.d.ts +1 -1
- package/dist/core/collections/upload/hooks/handle-path-creation.server.d.ts +1 -1
- package/dist/core/collections/upload/hooks/process-file-upload.server.d.ts +1 -1
- package/dist/core/config/auth/better-auth.server.d.ts +3 -3
- package/dist/core/config/client/augment-plugins.d.ts +1 -5
- package/dist/core/config/client/augment-plugins.js +3 -3
- package/dist/core/config/client/build-config.d.ts +1 -5
- package/dist/core/config/config-context.server.d.ts +1 -1
- package/dist/core/config/server/augment-plugins.server.d.ts +2 -42
- package/dist/core/config/server/augment-plugins.server.js +11 -6
- package/dist/core/config/server/build-config.server.d.ts +9 -4007
- package/dist/core/config/types.d.ts +12 -11
- package/dist/core/dev/cache/index.server.js +1 -1
- package/dist/core/dev/cli/clear/index.server.js +2 -0
- package/dist/core/dev/cli/generate/index.server.js +4 -0
- package/dist/core/dev/cli/generate-manifest/index.server.d.ts +17 -0
- package/dist/core/dev/cli/generate-manifest/index.server.js +221 -0
- package/dist/core/dev/cli/index.js +42 -0
- package/dist/core/dev/cli/init/index.server.js +11 -4
- package/dist/core/dev/cli/init/templates.d.ts +1 -1
- package/dist/core/dev/cli/init/templates.js +5 -3
- package/dist/core/dev/cli/util/package-manager.server.js +5 -3
- package/dist/core/dev/constants.d.ts +10 -0
- package/dist/core/dev/constants.js +15 -0
- package/dist/core/dev/generate/routes/common.server.js +4 -7
- package/dist/core/dev/generate/routes/index.server.js +25 -4
- package/dist/core/dev/generate/runtime/index.server.d.ts +34 -14
- package/dist/core/dev/generate/runtime/index.server.js +56 -57
- package/dist/core/dev/generate/runtime/parse-exports.server.d.ts +7 -0
- package/dist/core/dev/generate/runtime/parse-exports.server.js +40 -0
- package/dist/core/dev/generate/sanitize/index.server.d.ts +0 -7
- package/dist/core/dev/generate/sanitize/index.server.js +57 -5
- package/dist/core/dev/generate/types/index.server.js +16 -39
- package/dist/core/dev/vite/index.server.d.ts +1 -0
- package/dist/core/dev/vite/index.server.js +203 -42
- package/dist/core/ensure.server.d.ts +4 -3
- package/dist/core/ensure.server.js +8 -8
- package/dist/core/handlers/index.js +2 -2
- package/dist/core/operations/hooks/before-upsert/data-config-map.server.d.ts +1 -1
- package/dist/core/operations/hooks/before-upsert/handle-new-version.server.d.ts +1 -1
- package/dist/core/operations/hooks/before-upsert/original-config-map.server.d.ts +1 -1
- package/dist/core/operations/hooks/before-upsert/set-default-values.server.d.ts +1 -1
- package/dist/core/operations/hooks/before-upsert/validate-fields.server.d.ts +1 -1
- package/dist/core/operations/hooks/index.server.d.ts +0 -4
- package/dist/core/operations/hooks/index.server.js +0 -4
- package/dist/core/plugins/api-init/index.d.ts +2 -0
- package/dist/core/plugins/api-init/index.js +1 -0
- package/dist/core/plugins/api-init/{index.server.d.ts → module.server.d.ts} +0 -1
- package/dist/core/plugins/api-init/{index.server.js → module.server.js} +0 -1
- package/dist/core/plugins/cache/index.d.ts +2 -5
- package/dist/core/plugins/cache/index.js +1 -21
- package/dist/core/plugins/cache/module.d.ts +4 -0
- package/dist/core/plugins/cache/module.js +22 -0
- package/dist/core/plugins/cache/{index.server.d.ts → module.server.d.ts} +1 -2
- package/dist/core/plugins/cache/{index.server.js → module.server.js} +0 -1
- package/dist/core/plugins/index.d.ts +1 -8
- package/dist/core/plugins/index.js +0 -3
- package/dist/core/plugins/mailer/index.d.ts +2 -0
- package/dist/core/plugins/mailer/index.js +1 -0
- package/dist/core/plugins/mailer/{index.server.d.ts → module.server.d.ts} +0 -1
- package/dist/core/plugins/mailer/{index.server.js → module.server.js} +0 -1
- package/dist/core/plugins/sse/index.d.ts +2 -0
- package/dist/core/plugins/sse/index.js +1 -0
- package/dist/core/plugins/sse/{index.server.d.ts → module.server.d.ts} +0 -1
- package/dist/core/plugins/sse/{index.server.js → module.server.js} +0 -1
- package/dist/core/rime.server.d.ts +16 -16
- package/dist/fields/link/index.js +59 -56
- package/dist/fields/relation/index.js +63 -70
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -3
- package/dist/panel/context/config.svelte.d.ts +2 -2
- package/dist/panel/context/documentForm.svelte.d.ts +2 -2
- package/dist/panel/context/live.svelte.js +1 -1
- package/dist/panel/pages/auth/sign-in/SignIn.svelte +6 -1
- package/dist/server.d.ts +4 -4
- package/dist/server.js +4 -4
- package/dist/types.d.ts +1 -1
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -76,44 +76,6 @@ The `rime init` command will automatically:
|
|
|
76
76
|
- Install dependencies.
|
|
77
77
|
- Push initial schema
|
|
78
78
|
|
|
79
|
-
> [!NOTE]
|
|
80
|
-
> Please check that these files have been properly configured:
|
|
81
|
-
|
|
82
|
-
```ts
|
|
83
|
-
// vite.config.ts
|
|
84
|
-
import { defineConfig } from 'vite';
|
|
85
|
-
import { sveltekit } from '@sveltejs/kit/vite';
|
|
86
|
-
import { rime } from 'rimecms/vite';
|
|
87
|
-
|
|
88
|
-
export default defineConfig({
|
|
89
|
-
plugins: [rime(), sveltekit()]
|
|
90
|
-
});
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
```typescript
|
|
94
|
-
// src/hooks.server.ts (should be created)
|
|
95
|
-
import config from '$lib/+rime.generated/rime.config.server.js';
|
|
96
|
-
import { handlers } from 'rimecms/server';
|
|
97
|
-
import { sequence } from '@sveltejs/kit/hooks';
|
|
98
|
-
|
|
99
|
-
export const handle = sequence(...(await handlers(config)));
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
```
|
|
103
|
-
#.env
|
|
104
|
-
BETTER_AUTH_SECRET=super_secret
|
|
105
|
-
PUBLIC_RIME_URL=http://localhost:5173
|
|
106
|
-
|
|
107
|
-
RIME_LOG_TO_FILE=true
|
|
108
|
-
RIME_LOG_LEVEL=DEBUG
|
|
109
|
-
|
|
110
|
-
# RIME_CACHE_ENABLED=false
|
|
111
|
-
# RIME_SMTP_USER=user@mail.com
|
|
112
|
-
# RIME_SMTP_PASSWORD=supersecret
|
|
113
|
-
# RIME_SMTP_HOST=smtphost.com
|
|
114
|
-
# RIME_SMTP_PORT=465
|
|
115
|
-
```
|
|
116
|
-
|
|
117
79
|
### 3. Create the first admin user
|
|
118
80
|
|
|
119
81
|
```bash
|
|
@@ -129,7 +91,7 @@ curl -v POST http://localhost:5173/api/init \
|
|
|
129
91
|
## Configuration Example
|
|
130
92
|
|
|
131
93
|
```typescript
|
|
132
|
-
// ./src/lib/+rime/rime.config.ts
|
|
94
|
+
// ./src/lib/+rime/rime.config.server.ts
|
|
133
95
|
import { rime, Collection, Area } from '$rime/config';
|
|
134
96
|
import { adapterSqlite } from 'rimecms/adapter-sqlite';
|
|
135
97
|
import { Settings2 } from '@lucide/svelte';
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
declare module '$rime/modules/rimecms/core/plugins/sse' {
|
|
2
|
+
export * from 'rimecms/dist/core/plugins/sse/module.server.js';
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
declare module '$rime/modules/rimecms/core/plugins/cache' {
|
|
6
|
+
export * from 'rimecms/dist/core/plugins/cache/module.server.js';
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
declare module '$rime/modules/rimecms/core/plugins/mailer' {
|
|
10
|
+
export * from 'rimecms/dist/core/plugins/mailer/module.server.js';
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
declare module '$rime/modules/rimecms/core/plugins/api-init' {
|
|
14
|
+
export * from 'rimecms/dist/core/plugins/api-init/module.server.js';
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
declare module '$rime/modules/rimecms/fields/relation' {
|
|
18
|
+
export * from 'rimecms/dist/fields/relation/module.server.js';
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
declare module '$rime/modules/rimecms/fields/link' {
|
|
22
|
+
export * from 'rimecms/dist/fields/link/module.server.js';
|
|
23
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"core/plugins/sse":{"server":"core/plugins/sse/module.server.js"},"core/plugins/cache":{"client":"core/plugins/cache/module.js","server":"core/plugins/cache/module.server.js"},"core/plugins/mailer":{"server":"core/plugins/mailer/module.server.js"},"core/plugins/api-init":{"server":"core/plugins/api-init/module.server.js"},"fields/relation":{"client":"fields/relation/module.js","server":"fields/relation/module.server.js"},"fields/link":{"client":"fields/link/module.js","server":"fields/link/module.server.js"}}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import cache from '../../core/dev/cache/index.server.js';
|
|
2
2
|
import { getPackageManager } from '../../core/dev/cli/util/package-manager.server.js';
|
|
3
|
+
import { schemaPath } from '../../core/dev/constants.js';
|
|
3
4
|
import { logger } from '../../core/logger/index.server.js';
|
|
4
5
|
import fs from 'fs';
|
|
5
6
|
import { spawnSync } from 'node:child_process';
|
|
6
7
|
import path from 'node:path';
|
|
7
|
-
const OUTPUT_DIR = '+rime.generated';
|
|
8
8
|
const write = (schema) => {
|
|
9
9
|
const cachedSchema = cache.get('schema');
|
|
10
10
|
if (cachedSchema && cachedSchema === schema) {
|
|
11
11
|
return;
|
|
12
12
|
}
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
if (!fs.existsSync(
|
|
16
|
-
fs.mkdirSync(
|
|
13
|
+
const outputFile = schemaPath();
|
|
14
|
+
const outputDir = path.dirname(outputFile);
|
|
15
|
+
if (!fs.existsSync(outputDir)) {
|
|
16
|
+
fs.mkdirSync(outputDir, { recursive: true });
|
|
17
17
|
}
|
|
18
18
|
try {
|
|
19
19
|
fs.writeFileSync(outputFile, schema);
|
|
@@ -30,7 +30,7 @@ const write = (schema) => {
|
|
|
30
30
|
deno: 'npx'
|
|
31
31
|
};
|
|
32
32
|
const command = commandMap[pm];
|
|
33
|
-
logger.info(
|
|
33
|
+
logger.info(`[✓] Schema: generated at ${outputFile}`);
|
|
34
34
|
console.log(`\n ⚡︎ ${command} drizzle-kit generate \n`);
|
|
35
35
|
const generateResult = spawnSync(command, ['drizzle-kit', 'generate'], { stdio: 'inherit' });
|
|
36
36
|
if (generateResult.error || generateResult.status !== 0) {
|
|
@@ -8,7 +8,6 @@ export declare const hook: {
|
|
|
8
8
|
beforeUpsert: <S extends import("../../types/doc").DocType = "raw">(handler: import("../../operations/hooks/index.server.js").Hook<S, "create" | "update", "before">) => import("../../operations/hooks/index.server.js").Hook<S, "create" | "update", "before">;
|
|
9
9
|
beforeUpdate: <S extends import("../../types/doc").DocType = "raw">(handler: import("../../operations/hooks/index.server.js").Hook<S, "update", "before">) => import("../../operations/hooks/index.server.js").Hook<S, "update", "before">;
|
|
10
10
|
beforeDelete: <S extends import("../../types/doc").DocType = "raw">(handler: import("../../operations/hooks/index.server.js").Hook<S, "delete", "before">) => import("../../operations/hooks/index.server.js").Hook<S, "delete", "before">;
|
|
11
|
-
afterRead: <S extends import("../../types/doc").DocType = "raw">(handler: import("../../operations/hooks/index.server.js").Hook<S, "read", "after">) => import("../../operations/hooks/index.server.js").Hook<S, "read", "after">;
|
|
12
11
|
afterCreate: <S extends import("../../types/doc").DocType = "raw">(handler: import("../../operations/hooks/index.server.js").Hook<S, "create", "after">) => import("../../operations/hooks/index.server.js").Hook<S, "create", "after">;
|
|
13
12
|
afterUpsert: <S extends import("../../types/doc").DocType = "raw">(handler: import("../../operations/hooks/index.server.js").Hook<S, "create" | "update", "after">) => import("../../operations/hooks/index.server.js").Hook<S, "create" | "update", "after">;
|
|
14
13
|
afterUpdate: <S extends import("../../types/doc").DocType = "raw">(handler: import("../../operations/hooks/index.server.js").Hook<S, "update", "after">) => import("../../operations/hooks/index.server.js").Hook<S, "update", "after">;
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* add fields password and confirmPassword
|
|
4
4
|
* to add validations
|
|
5
5
|
*/
|
|
6
|
-
export declare const augmentFieldsPassword: import("../../../../operations/hooks/index.server.js").Hook<"auth", "
|
|
6
|
+
export declare const augmentFieldsPassword: import("../../../../operations/hooks/index.server.js").Hook<"auth", "create" | "update", "before">;
|
|
@@ -8,7 +8,6 @@ export declare const hook: {
|
|
|
8
8
|
beforeUpsert: <S extends import("../../types/doc.js").DocType = "raw">(handler: import("../../operations/hooks/index.server.js").Hook<S, "create" | "update", "before">) => import("../../operations/hooks/index.server.js").Hook<S, "create" | "update", "before">;
|
|
9
9
|
beforeUpdate: <S extends import("../../types/doc.js").DocType = "raw">(handler: import("../../operations/hooks/index.server.js").Hook<S, "update", "before">) => import("../../operations/hooks/index.server.js").Hook<S, "update", "before">;
|
|
10
10
|
beforeDelete: <S extends import("../../types/doc.js").DocType = "raw">(handler: import("../../operations/hooks/index.server.js").Hook<S, "delete", "before">) => import("../../operations/hooks/index.server.js").Hook<S, "delete", "before">;
|
|
11
|
-
afterRead: <S extends import("../../types/doc.js").DocType = "raw">(handler: import("../../operations/hooks/index.server.js").Hook<S, "read", "after">) => import("../../operations/hooks/index.server.js").Hook<S, "read", "after">;
|
|
12
11
|
afterCreate: <S extends import("../../types/doc.js").DocType = "raw">(handler: import("../../operations/hooks/index.server.js").Hook<S, "create", "after">) => import("../../operations/hooks/index.server.js").Hook<S, "create", "after">;
|
|
13
12
|
afterUpsert: <S extends import("../../types/doc.js").DocType = "raw">(handler: import("../../operations/hooks/index.server.js").Hook<S, "create" | "update", "after">) => import("../../operations/hooks/index.server.js").Hook<S, "create" | "update", "after">;
|
|
14
13
|
afterUpdate: <S extends import("../../types/doc.js").DocType = "raw">(handler: import("../../operations/hooks/index.server.js").Hook<S, "update", "after">) => import("../../operations/hooks/index.server.js").Hook<S, "update", "after">;
|
|
@@ -10,4 +10,4 @@
|
|
|
10
10
|
* @param args Hook arguments containing the document to process
|
|
11
11
|
* @returns Updated args object with converted file data
|
|
12
12
|
*/
|
|
13
|
-
export declare const castBase64ToFile: import("../../../operations/hooks/index.server.js").Hook<"upload", "
|
|
13
|
+
export declare const castBase64ToFile: import("../../../operations/hooks/index.server.js").Hook<"upload", "create" | "update", "before">;
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* the function normalize and validate path ({slug}_directories.id).
|
|
4
4
|
* Then extract parent, name from the given path.
|
|
5
5
|
*/
|
|
6
|
-
export declare const exctractPath: import("../../../operations/hooks/index.server.js").Hook<"directory", "
|
|
6
|
+
export declare const exctractPath: import("../../../operations/hooks/index.server.js").Hook<"directory", "create" | "update", "before">;
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* the function get the document _path and check if it exists,
|
|
4
4
|
* if it doesn't it create {upload_slug}_directories entries recursively
|
|
5
5
|
*/
|
|
6
|
-
export declare const handlePathCreation: import("../../../operations/hooks/index.server.js").Hook<"upload", "
|
|
6
|
+
export declare const handlePathCreation: import("../../../operations/hooks/index.server.js").Hook<"upload", "create" | "update", "before">;
|
|
@@ -17,4 +17,4 @@
|
|
|
17
17
|
* - Cleans up image variations
|
|
18
18
|
* - Nullifies related document fields
|
|
19
19
|
*/
|
|
20
|
-
export declare const processFileUpload: import("../../../operations/hooks/index.server.js").Hook<"upload", "
|
|
20
|
+
export declare const processFileUpload: import("../../../operations/hooks/index.server.js").Hook<"upload", "create" | "update", "before">;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { MailerActions } from '../../plugins/mailer/
|
|
1
|
+
import type { MailerActions } from '../../plugins/mailer/module.server.js';
|
|
2
2
|
import type { ConfigContext } from '../../rime.server.js';
|
|
3
3
|
import type { Config } from '../../../types.js';
|
|
4
4
|
export declare function getBaseAuthConfig<const C extends Config>(ctx: {
|
|
@@ -1752,13 +1752,13 @@ export declare function getBaseAuthConfig<const C extends Config>(ctx: {
|
|
|
1752
1752
|
$Infer: {
|
|
1753
1753
|
body: ({
|
|
1754
1754
|
permission: {
|
|
1755
|
-
readonly user?: ("
|
|
1755
|
+
readonly user?: ("create" | "update" | "delete" | "list" | "get" | "set-role" | "ban" | "impersonate" | "set-password")[] | undefined;
|
|
1756
1756
|
readonly session?: ("delete" | "list" | "revoke")[] | undefined;
|
|
1757
1757
|
};
|
|
1758
1758
|
permissions?: never | undefined;
|
|
1759
1759
|
} | {
|
|
1760
1760
|
permissions: {
|
|
1761
|
-
readonly user?: ("
|
|
1761
|
+
readonly user?: ("create" | "update" | "delete" | "list" | "get" | "set-role" | "ban" | "impersonate" | "set-password")[] | undefined;
|
|
1762
1762
|
readonly session?: ("delete" | "list" | "revoke")[] | undefined;
|
|
1763
1763
|
};
|
|
1764
1764
|
permission?: never | undefined;
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import type { SanitizedConfigClient } from '../types.js';
|
|
2
2
|
export declare const augmentPlugins: <const T extends SanitizedConfigClient>(config: T) => T & {
|
|
3
|
-
readonly plugins:
|
|
4
|
-
readonly name: "cache/client";
|
|
5
|
-
readonly type: "client";
|
|
6
|
-
readonly configure: <const C extends SanitizedConfigClient>(config: C) => C;
|
|
7
|
-
})[];
|
|
3
|
+
readonly plugins: any[];
|
|
8
4
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { cache } from '../../plugins/cache/index.js';
|
|
2
2
|
export const augmentPlugins = (config) => {
|
|
3
|
-
const plugins = [
|
|
3
|
+
const plugins = [cache(), ...(config.plugins || [])];
|
|
4
4
|
for (const plugin of plugins) {
|
|
5
5
|
if ('configure' in plugin && typeof plugin.configure === 'function') {
|
|
6
6
|
config = plugin.configure(config);
|
|
@@ -8,6 +8,6 @@ export const augmentPlugins = (config) => {
|
|
|
8
8
|
}
|
|
9
9
|
return {
|
|
10
10
|
...config,
|
|
11
|
-
plugins
|
|
11
|
+
plugins
|
|
12
12
|
};
|
|
13
13
|
};
|
|
@@ -37,9 +37,5 @@ export declare const buildConfigClient: <C extends SanitizedConfigClient>(config
|
|
|
37
37
|
} & {
|
|
38
38
|
readonly collections: readonly import("../types.js").BuiltCollection[];
|
|
39
39
|
} & {
|
|
40
|
-
readonly plugins:
|
|
41
|
-
readonly name: "cache/client";
|
|
42
|
-
readonly type: "client";
|
|
43
|
-
readonly configure: <const C_1 extends SanitizedConfigClient>(config: C_1) => C_1;
|
|
44
|
-
})[];
|
|
40
|
+
readonly plugins: any[];
|
|
45
41
|
};
|
|
@@ -54,7 +54,7 @@ export declare function createConfigContext<const C extends Config>(config: Buil
|
|
|
54
54
|
/**
|
|
55
55
|
* Retrieves either an area or collection configuration by its slug
|
|
56
56
|
*/
|
|
57
|
-
getBySlug: (slug: string) => import("../../types.js").
|
|
57
|
+
getBySlug: (slug: string) => import("../../types.js").BuiltCollection | import("../../types.js").BuiltArea;
|
|
58
58
|
/**
|
|
59
59
|
* Checks if a slug represents a collection
|
|
60
60
|
*/
|
|
@@ -1,45 +1,5 @@
|
|
|
1
1
|
import type { Config } from '../types.js';
|
|
2
|
+
import type { Plugin } from '../../plugins/index.js';
|
|
2
3
|
export declare const augmentPluginsServer: <const T extends Config>(config: T) => T & {
|
|
3
|
-
readonly $plugins:
|
|
4
|
-
readonly name: "sse";
|
|
5
|
-
readonly type: "server";
|
|
6
|
-
readonly actions: {
|
|
7
|
-
readonly broadcast: (data: import("../../plugins/sse/types").ContentUpdatePayload) => void;
|
|
8
|
-
};
|
|
9
|
-
readonly routes: {
|
|
10
|
-
readonly '/api/sse': {
|
|
11
|
-
readonly GET: import("@sveltejs/kit").RequestHandler;
|
|
12
|
-
};
|
|
13
|
-
};
|
|
14
|
-
}, {
|
|
15
|
-
readonly name: "cache";
|
|
16
|
-
readonly type: "server";
|
|
17
|
-
readonly configure: <const C extends Config>(config: C) => C;
|
|
18
|
-
readonly routes: {
|
|
19
|
-
readonly '/api/clear-cache': {
|
|
20
|
-
readonly POST: () => Response;
|
|
21
|
-
};
|
|
22
|
-
};
|
|
23
|
-
readonly actions: import("../../plugins/cache/index.server.js").CacheActions;
|
|
24
|
-
readonly handler: import("@sveltejs/kit").Handle;
|
|
25
|
-
}, ...(import("../../plugins").Plugin | {
|
|
26
|
-
readonly name: "apiInit";
|
|
27
|
-
readonly type: "server";
|
|
28
|
-
readonly routes: {
|
|
29
|
-
readonly '/api/init': {
|
|
30
|
-
readonly POST: import("@sveltejs/kit").RequestHandler;
|
|
31
|
-
};
|
|
32
|
-
};
|
|
33
|
-
} | {
|
|
34
|
-
readonly name: "mailer";
|
|
35
|
-
readonly type: "server";
|
|
36
|
-
readonly actions: {
|
|
37
|
-
readonly sendMail: (args: {
|
|
38
|
-
to: string;
|
|
39
|
-
subject: string;
|
|
40
|
-
text: string;
|
|
41
|
-
html?: string;
|
|
42
|
-
}) => Promise<import("nodemailer/lib/smtp-transport").SentMessageInfo>;
|
|
43
|
-
};
|
|
44
|
-
})[]];
|
|
4
|
+
readonly $plugins: Plugin[];
|
|
45
5
|
};
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { dev } from '$app/environment';
|
|
2
|
-
import { apiInit } from '../../plugins/api-init/index.
|
|
3
|
-
import { cache } from '../../plugins/cache/index.
|
|
4
|
-
import { mailer } from '../../plugins/mailer/index.
|
|
5
|
-
import { sse } from '../../plugins/sse/index.
|
|
6
|
-
// export type WithPluginsServer<T> = T & { $plugins: ReturnType<Plugin>[] };
|
|
2
|
+
import { apiInit } from '../../plugins/api-init/index.js';
|
|
3
|
+
import { cache } from '../../plugins/cache/index.js';
|
|
4
|
+
import { mailer } from '../../plugins/mailer/index.js';
|
|
5
|
+
import { sse } from '../../plugins/sse/index.js';
|
|
7
6
|
export const augmentPluginsServer = (config) => {
|
|
8
7
|
//
|
|
9
8
|
const corePluginsServer = [
|
|
@@ -16,7 +15,13 @@ export const augmentPluginsServer = (config) => {
|
|
|
16
15
|
// Mailer plugin
|
|
17
16
|
...(config.$smtp ? [mailer(config.$smtp)] : [])
|
|
18
17
|
];
|
|
19
|
-
|
|
18
|
+
// Widened to Plugin[] on purpose: each factory's own `as const satisfies Plugin` return
|
|
19
|
+
// keeps a precise literal shape (no `handler` key at all on sse's, no `actions` on
|
|
20
|
+
// apiInit's, ...) — left as a tuple, downstream code reading `.handler`/`.actions` off
|
|
21
|
+
// the union fails to typecheck even though both are optional on Plugin. Doesn't affect
|
|
22
|
+
// build-config.server.ts's ExtractCustomPlugins/InferCorePlugins, which infer off the
|
|
23
|
+
// pre-augmentation config type, not this array.
|
|
24
|
+
const plugins = [...corePluginsServer, ...(config.plugins || [])];
|
|
20
25
|
let configWithPlugins = config;
|
|
21
26
|
for (const plugin of plugins) {
|
|
22
27
|
if ('configure' in plugin && typeof plugin.configure === 'function') {
|