kizlo 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +74 -0
- package/dist/adapters/auth.d.ts +18 -0
- package/dist/adapters/auth.js +15 -0
- package/dist/adapters/captcha.d.ts +28 -0
- package/dist/adapters/captcha.js +86 -0
- package/dist/adapters/geo.d.ts +18 -0
- package/dist/adapters/geo.js +18 -0
- package/dist/adapters/geo.vercel.d.ts +6 -0
- package/dist/adapters/geo.vercel.js +41 -0
- package/dist/adapters/logger.d.ts +31 -0
- package/dist/adapters/logger.js +30 -0
- package/dist/cli/banner.js +26 -0
- package/dist/cli/commands/generate.js +34 -0
- package/dist/cli/commands/init.js +313 -0
- package/dist/cli/commands/test.js +68 -0
- package/dist/cli/commands/watch.js +53 -0
- package/dist/cli/commands/wp.js +66 -0
- package/dist/cli/daemon/config.js +87 -0
- package/dist/cli/daemon/generate.js +40 -0
- package/dist/cli/daemon/lock.js +31 -0
- package/dist/cli/daemon/logger.js +8 -0
- package/dist/cli/daemon/watch.js +37 -0
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.js +22 -0
- package/dist/cli/presets/base.js +23 -0
- package/dist/cli/presets/index.js +16 -0
- package/dist/cli/presets/nextjs.js +39 -0
- package/dist/cli/utils.js +182 -0
- package/dist/cli/wp/bootstrap.js +114 -0
- package/dist/cli/wp/compose/docker-compose.yml +73 -0
- package/dist/cli/wp/constants.js +52 -0
- package/dist/cli/wp/docker.d.ts +24 -0
- package/dist/cli/wp/docker.js +69 -0
- package/dist/cli/wp/setup.js +39 -0
- package/dist/cli/wp/types.d.ts +72 -0
- package/dist/cli/wp/types.js +8 -0
- package/dist/cli/wp/utils.d.ts +39 -0
- package/dist/cli/wp/utils.js +105 -0
- package/dist/client.d.ts +24 -0
- package/dist/client.js +55 -0
- package/dist/comment/errors.js +47 -0
- package/dist/comment/index.js +138 -0
- package/dist/comment/schema.js +72 -0
- package/dist/comment/utils.js +35 -0
- package/dist/config.d.ts +39 -0
- package/dist/config.js +7 -0
- package/dist/context.d.ts +73 -0
- package/dist/context.js +145 -0
- package/dist/cookie.d.ts +19 -0
- package/dist/cookie.js +25 -0
- package/dist/email/service.d.ts +11 -0
- package/dist/email/service.interface.d.ts +8 -0
- package/dist/email/service.js +20 -0
- package/dist/index.d.ts +39 -0
- package/dist/index.js +31 -0
- package/dist/integrations/nextjs/kizlo.client.d.ts +10 -0
- package/dist/integrations/nextjs/kizlo.client.js +13 -0
- package/dist/integrations/nextjs/kizlo.server.d.ts +12 -0
- package/dist/integrations/nextjs/kizlo.server.js +13 -0
- package/dist/integrations/nextjs/utils.js +11 -0
- package/dist/kizlo.d.ts +73 -0
- package/dist/kizlo.js +144 -0
- package/dist/menu/errors.js +16 -0
- package/dist/menu/fixture.d.ts +8 -0
- package/dist/menu/fixture.js +62 -0
- package/dist/menu/index.js +70 -0
- package/dist/menu/schema.js +70 -0
- package/dist/menu/utils.js +57 -0
- package/dist/nextjs/server.d.ts +2 -0
- package/dist/nextjs/server.js +3 -0
- package/dist/nextjs.d.ts +2 -0
- package/dist/nextjs.js +3 -0
- package/dist/package.js +5 -0
- package/dist/post/error.js +30 -0
- package/dist/post/fixture.d.ts +8 -0
- package/dist/post/fixture.js +71 -0
- package/dist/post/index.js +123 -0
- package/dist/post/schema.js +120 -0
- package/dist/post/utils.js +42 -0
- package/dist/post-type/service.js +48 -0
- package/dist/router.d.ts +624 -0
- package/dist/router.js +15 -0
- package/dist/seo/index.js +54 -0
- package/dist/seo/schema.d.ts +196 -0
- package/dist/seo/schema.js +96 -0
- package/dist/seo/types.d.ts +80 -0
- package/dist/seo/utils.js +44 -0
- package/dist/service.d.ts +17 -0
- package/dist/service.js +17 -0
- package/dist/shared/constants.js +10 -0
- package/dist/shared/contract.d.ts +21 -0
- package/dist/shared/contract.js +43 -0
- package/dist/shared/crypto.d.ts +28 -0
- package/dist/shared/crypto.js +34 -0
- package/dist/shared/error.d.ts +128 -0
- package/dist/shared/error.js +147 -0
- package/dist/shared/extension.d.ts +25 -0
- package/dist/shared/extension.js +7 -0
- package/dist/shared/identifier.d.ts +11 -0
- package/dist/shared/identifier.js +26 -0
- package/dist/shared/middleware.d.ts +29 -0
- package/dist/shared/procedure.d.ts +114 -0
- package/dist/shared/procedure.js +114 -0
- package/dist/shared/result.d.ts +24 -0
- package/dist/shared/result.js +49 -0
- package/dist/shared/router.d.ts +7 -0
- package/dist/shared/router.js +26 -0
- package/dist/shared/schema.d.ts +55 -0
- package/dist/shared/schema.js +43 -0
- package/dist/shared/serialize.d.ts +12 -0
- package/dist/shared/serialize.js +51 -0
- package/dist/shared/types.d.ts +35 -0
- package/dist/shared/utils.js +17 -0
- package/dist/test/auth.d.ts +7 -0
- package/dist/test/auth.js +15 -0
- package/dist/test/captcha.d.ts +7 -0
- package/dist/test/captcha.js +8 -0
- package/dist/test/client.d.ts +11 -0
- package/dist/test/client.js +14 -0
- package/dist/test/fixtures.d.ts +14 -0
- package/dist/test/fixtures.js +13 -0
- package/dist/test/server.d.ts +10 -0
- package/dist/test/server.js +32 -0
- package/dist/test/users.d.ts +14 -0
- package/dist/test/users.js +17 -0
- package/dist/test.d.ts +12 -0
- package/dist/test.js +13 -0
- package/dist/webhook/index.d.ts +38 -0
- package/dist/webhook/index.js +44 -0
- package/dist/webhook/schema.d.ts +45 -0
- package/dist/webhook/schema.js +72 -0
- package/dist/webhook/utils.js +21 -0
- package/dist/wordpress/comment/service.d.ts +28 -0
- package/dist/wordpress/comment/service.js +55 -0
- package/dist/wordpress/comment/types.d.ts +206 -0
- package/dist/wordpress/constants.d.ts +14 -0
- package/dist/wordpress/constants.js +13 -0
- package/dist/wordpress/error.d.ts +9 -0
- package/dist/wordpress/error.js +12 -0
- package/dist/wordpress/index.d.ts +15 -0
- package/dist/wordpress/menu/items/service.d.ts +28 -0
- package/dist/wordpress/menu/items/service.js +55 -0
- package/dist/wordpress/menu/items/types.d.ts +214 -0
- package/dist/wordpress/menu/service.d.ts +30 -0
- package/dist/wordpress/menu/service.js +58 -0
- package/dist/wordpress/menu/types.d.ts +115 -0
- package/dist/wordpress/post/service.d.ts +28 -0
- package/dist/wordpress/post/service.js +55 -0
- package/dist/wordpress/post/types.d.ts +290 -0
- package/dist/wordpress/service.d.ts +77 -0
- package/dist/wordpress/service.js +180 -0
- package/dist/wordpress/types.d.ts +67 -0
- package/dist/wordpress/user/service.d.ts +28 -0
- package/dist/wordpress/user/service.js +55 -0
- package/dist/wordpress/user/types.d.ts +221 -0
- package/dist/wordpress/utils.d.ts +7 -0
- package/dist/wordpress/utils.js +9 -0
- package/package.json +109 -0
package/dist/config.js
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { WordPressCredentials } from "./wordpress/types.js";
|
|
2
|
+
import "./wordpress/index.js";
|
|
3
|
+
import { AuthUser } from "./adapters/auth.js";
|
|
4
|
+
import { ConnInfo } from "./adapters/geo.js";
|
|
5
|
+
import { Logger } from "./adapters/logger.js";
|
|
6
|
+
import { PreviewTokenPayload } from "./shared/schema.js";
|
|
7
|
+
import { CookiesStorage } from "./cookie.js";
|
|
8
|
+
import { ServiceAdapters } from "./kizlo.js";
|
|
9
|
+
import { Service } from "./service.js";
|
|
10
|
+
|
|
11
|
+
//#region src/context.d.ts
|
|
12
|
+
interface ContextConfig {
|
|
13
|
+
siteSecret: string;
|
|
14
|
+
adapters?: ServiceAdapters;
|
|
15
|
+
credentials: WordPressCredentials;
|
|
16
|
+
}
|
|
17
|
+
type AuthUserFn = () => Promise<AuthUser | null>;
|
|
18
|
+
type ConnInfoFn = () => Promise<ConnInfo | null>;
|
|
19
|
+
type VerifyCaptchaFn = (token: string) => Promise<boolean>;
|
|
20
|
+
type VerifyPreviewTokenFn = (token: string) => Promise<PreviewTokenPayload | null>;
|
|
21
|
+
interface ServerContext {
|
|
22
|
+
request: Request | null;
|
|
23
|
+
headers: Headers | null;
|
|
24
|
+
logger: Logger;
|
|
25
|
+
service: Service;
|
|
26
|
+
config: ContextConfig;
|
|
27
|
+
getConnInfo: ConnInfoFn;
|
|
28
|
+
getAuthUser: AuthUserFn;
|
|
29
|
+
cookies: CookiesStorage;
|
|
30
|
+
verifyCaptcha: VerifyCaptchaFn;
|
|
31
|
+
verifyPreviewToken: VerifyPreviewTokenFn;
|
|
32
|
+
invokedBy: "client" | "server";
|
|
33
|
+
}
|
|
34
|
+
declare class Context {
|
|
35
|
+
private readonly config;
|
|
36
|
+
private readonly logger;
|
|
37
|
+
private readonly service;
|
|
38
|
+
constructor(config: ContextConfig);
|
|
39
|
+
createRestContext(request: Request): {
|
|
40
|
+
headers: Headers;
|
|
41
|
+
request: Request;
|
|
42
|
+
config: ContextConfig;
|
|
43
|
+
logger: Logger;
|
|
44
|
+
service: Service;
|
|
45
|
+
getConnInfo: ConnInfoFn;
|
|
46
|
+
verifyCaptcha: VerifyCaptchaFn;
|
|
47
|
+
getAuthUser: AuthUserFn;
|
|
48
|
+
verifyPreviewToken: VerifyPreviewTokenFn;
|
|
49
|
+
cookies: CookiesStorage;
|
|
50
|
+
invokedBy: "client";
|
|
51
|
+
};
|
|
52
|
+
createServerContext(): {
|
|
53
|
+
cookies: CookiesStorage;
|
|
54
|
+
headers: null;
|
|
55
|
+
request: null;
|
|
56
|
+
config: ContextConfig;
|
|
57
|
+
logger: Logger;
|
|
58
|
+
service: Service;
|
|
59
|
+
getAuthUser: AuthUserFn;
|
|
60
|
+
getConnInfo: ConnInfoFn;
|
|
61
|
+
verifyCaptcha: VerifyCaptchaFn;
|
|
62
|
+
verifyPreviewToken: VerifyPreviewTokenFn;
|
|
63
|
+
invokedBy: "server";
|
|
64
|
+
};
|
|
65
|
+
private createRestCookieStorage;
|
|
66
|
+
private createVerifyCaptchaFn;
|
|
67
|
+
private createConnInfoFn;
|
|
68
|
+
private createGetUserFn;
|
|
69
|
+
private createVerifyPreviewTokenFn;
|
|
70
|
+
private createLogger;
|
|
71
|
+
}
|
|
72
|
+
//#endregion
|
|
73
|
+
export { AuthUserFn, ConnInfoFn, Context, ContextConfig, ServerContext, VerifyCaptchaFn, VerifyPreviewTokenFn };
|
package/dist/context.js
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { noopAdapter } from "./adapters/logger.js";
|
|
2
|
+
import { PreviewTokenData } from "./shared/schema.js";
|
|
3
|
+
import { CookiesStorage } from "./cookie.js";
|
|
4
|
+
import { Service } from "./service.js";
|
|
5
|
+
import { compare, hmac } from "./shared/crypto.js";
|
|
6
|
+
import { base64Decode, tryCatchSync } from "@kizlo/shared";
|
|
7
|
+
import { serialize } from "cookie";
|
|
8
|
+
|
|
9
|
+
//#region src/context.ts
|
|
10
|
+
var Context = class {
|
|
11
|
+
config;
|
|
12
|
+
logger;
|
|
13
|
+
service;
|
|
14
|
+
constructor(config) {
|
|
15
|
+
this.config = config;
|
|
16
|
+
this.service = new Service(config);
|
|
17
|
+
this.logger = this.createLogger();
|
|
18
|
+
}
|
|
19
|
+
createRestContext(request) {
|
|
20
|
+
const headers = new Headers();
|
|
21
|
+
return {
|
|
22
|
+
headers,
|
|
23
|
+
request,
|
|
24
|
+
config: this.config,
|
|
25
|
+
logger: this.logger,
|
|
26
|
+
service: this.service,
|
|
27
|
+
getConnInfo: this.createConnInfoFn(request),
|
|
28
|
+
verifyCaptcha: this.createVerifyCaptchaFn(request),
|
|
29
|
+
getAuthUser: this.createGetUserFn(request),
|
|
30
|
+
verifyPreviewToken: this.createVerifyPreviewTokenFn(),
|
|
31
|
+
cookies: this.createRestCookieStorage(request, headers),
|
|
32
|
+
invokedBy: "client"
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
createServerContext() {
|
|
36
|
+
return {
|
|
37
|
+
cookies: new CookiesStorage(this.config.adapters?.cookies),
|
|
38
|
+
headers: null,
|
|
39
|
+
request: null,
|
|
40
|
+
config: this.config,
|
|
41
|
+
logger: this.logger,
|
|
42
|
+
service: this.service,
|
|
43
|
+
getAuthUser: this.createGetUserFn(null),
|
|
44
|
+
getConnInfo: this.createConnInfoFn(null),
|
|
45
|
+
verifyCaptcha: this.createVerifyCaptchaFn(null),
|
|
46
|
+
verifyPreviewToken: this.createVerifyPreviewTokenFn(),
|
|
47
|
+
invokedBy: "server"
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
createRestCookieStorage(request, headers) {
|
|
51
|
+
return new CookiesStorage({
|
|
52
|
+
getAll: async () => {
|
|
53
|
+
const cookieHeader = request.headers.get("cookie");
|
|
54
|
+
if (!cookieHeader) return [];
|
|
55
|
+
const cookies = [];
|
|
56
|
+
for (const cookie of cookieHeader.split(";")) {
|
|
57
|
+
const [name, ...valueParts] = cookie.trim().split("=");
|
|
58
|
+
if (!name?.trim()) continue;
|
|
59
|
+
cookies.push({
|
|
60
|
+
name: name.trim(),
|
|
61
|
+
value: valueParts.join("=").trim()
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
return cookies;
|
|
65
|
+
},
|
|
66
|
+
setAll: async (cookies) => {
|
|
67
|
+
cookies.forEach((cookie) => {
|
|
68
|
+
headers.append("Set-Cookie", serialize(cookie.name, cookie.value, cookie.options));
|
|
69
|
+
});
|
|
70
|
+
},
|
|
71
|
+
deleteAll: async (cookies) => {
|
|
72
|
+
cookies.forEach((cookie) => {
|
|
73
|
+
headers.append("Set-Cookie", serialize(cookie.name, "", {
|
|
74
|
+
...cookie.options,
|
|
75
|
+
maxAge: 0,
|
|
76
|
+
expires: /* @__PURE__ */ new Date(0)
|
|
77
|
+
}));
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
createVerifyCaptchaFn(request) {
|
|
83
|
+
return async (token) => {
|
|
84
|
+
const connInfo = await this.config.adapters?.geo?.getConnInfo?.(request) ?? null;
|
|
85
|
+
return await this.config.adapters?.captcha?.({
|
|
86
|
+
ip: connInfo?.ip ?? "unknown-ip",
|
|
87
|
+
token
|
|
88
|
+
}) ?? false;
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
createConnInfoFn(request) {
|
|
92
|
+
return async () => {
|
|
93
|
+
return await this.config.adapters?.geo?.getConnInfo?.(request) ?? null;
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
createGetUserFn(request) {
|
|
97
|
+
return async () => {
|
|
98
|
+
return await Promise.resolve(this.config.adapters?.auth?.getUser?.(request)) ?? null;
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
createVerifyPreviewTokenFn() {
|
|
102
|
+
return async (token) => {
|
|
103
|
+
const [, decoded] = tryCatchSync(() => base64Decode(token));
|
|
104
|
+
if (!decoded) return null;
|
|
105
|
+
const { data, error } = PreviewTokenData.safeParse(decoded);
|
|
106
|
+
if (error) return null;
|
|
107
|
+
if (Date.now() > data.payload.expires * 1e3) return null;
|
|
108
|
+
const payloadStr = `${data.payload.id}.${data.payload.parent}.${data.payload.expires}`;
|
|
109
|
+
if (!compare(hmac(this.config.siteSecret ?? "", payloadStr), data.hash)) return null;
|
|
110
|
+
return data.payload;
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
createLogger() {
|
|
114
|
+
const adapter = this.config.adapters?.logger ?? noopAdapter;
|
|
115
|
+
function build(boundContext) {
|
|
116
|
+
const emit = (level, message, context, error) => {
|
|
117
|
+
const mergedContext = {
|
|
118
|
+
...boundContext,
|
|
119
|
+
...context
|
|
120
|
+
};
|
|
121
|
+
adapter({
|
|
122
|
+
level,
|
|
123
|
+
error,
|
|
124
|
+
message,
|
|
125
|
+
timestamp: /* @__PURE__ */ new Date(),
|
|
126
|
+
context: Object.keys(mergedContext).length > 0 ? mergedContext : void 0
|
|
127
|
+
});
|
|
128
|
+
};
|
|
129
|
+
return {
|
|
130
|
+
debug: (msg, ctx) => emit("debug", msg, ctx),
|
|
131
|
+
info: (msg, ctx) => emit("info", msg, ctx),
|
|
132
|
+
warn: (msg, ctx) => emit("warn", msg, ctx),
|
|
133
|
+
error: (msg, err, ctx) => emit("error", msg, ctx, err),
|
|
134
|
+
child: (ctx) => build({
|
|
135
|
+
...boundContext,
|
|
136
|
+
...ctx
|
|
137
|
+
})
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
return build({});
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
//#endregion
|
|
145
|
+
export { Context };
|
package/dist/cookie.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { CookiesAdapter } from "./shared/types.js";
|
|
2
|
+
import { Cookie, CookieOptions, CookieWithOptions } from "@kizlo/shared";
|
|
3
|
+
|
|
4
|
+
//#region src/cookie.d.ts
|
|
5
|
+
declare class CookiesStorage {
|
|
6
|
+
private readonly cookies?;
|
|
7
|
+
constructor(cookies?: CookiesAdapter);
|
|
8
|
+
get(): Promise<Cookie[]>;
|
|
9
|
+
get(name: string): Promise<string | null>;
|
|
10
|
+
set(cookie: CookieWithOptions): Promise<void>;
|
|
11
|
+
set(cookies: CookieWithOptions[]): Promise<void>;
|
|
12
|
+
delete(name: string, options?: CookieOptions): Promise<void>;
|
|
13
|
+
delete(cookies: {
|
|
14
|
+
name: string;
|
|
15
|
+
options?: CookieOptions;
|
|
16
|
+
}[]): Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
//#endregion
|
|
19
|
+
export { CookiesStorage };
|
package/dist/cookie.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
//#region src/cookie.ts
|
|
2
|
+
var CookiesStorage = class {
|
|
3
|
+
cookies;
|
|
4
|
+
constructor(cookies) {
|
|
5
|
+
this.cookies = cookies;
|
|
6
|
+
}
|
|
7
|
+
async get(name) {
|
|
8
|
+
const cookies = await Promise.resolve(this.cookies?.getAll()) ?? [];
|
|
9
|
+
if (name) return cookies.find((item) => item.name === name)?.value ?? null;
|
|
10
|
+
return cookies;
|
|
11
|
+
}
|
|
12
|
+
async set(cookieOrCookies) {
|
|
13
|
+
const cookies = Array.isArray(cookieOrCookies) ? cookieOrCookies : [cookieOrCookies];
|
|
14
|
+
return await Promise.resolve(this.cookies?.setAll(cookies));
|
|
15
|
+
}
|
|
16
|
+
async delete(nameOrCookies, options) {
|
|
17
|
+
return await Promise.resolve(this.cookies?.deleteAll(Array.isArray(nameOrCookies) ? nameOrCookies : [{
|
|
18
|
+
name: nameOrCookies,
|
|
19
|
+
options
|
|
20
|
+
}]));
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
//#endregion
|
|
25
|
+
export { CookiesStorage };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { EmailSendParams } from "./service.interface.js";
|
|
2
|
+
import { Service } from "../service.js";
|
|
3
|
+
|
|
4
|
+
//#region src/email/service.d.ts
|
|
5
|
+
declare class EmailService {
|
|
6
|
+
private readonly service;
|
|
7
|
+
constructor(service: Service);
|
|
8
|
+
send(params: EmailSendParams): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
//#endregion
|
|
11
|
+
export { EmailService };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { WP_KIZLO_BASE } from "../wordpress/constants.js";
|
|
2
|
+
|
|
3
|
+
//#region src/email/service.ts
|
|
4
|
+
var EmailService = class {
|
|
5
|
+
service;
|
|
6
|
+
constructor(service) {
|
|
7
|
+
this.service = service;
|
|
8
|
+
}
|
|
9
|
+
async send(params) {
|
|
10
|
+
const { data, error } = await this.service.wordpress.post("/email/send", {
|
|
11
|
+
body: params,
|
|
12
|
+
base: WP_KIZLO_BASE
|
|
13
|
+
});
|
|
14
|
+
if (error) throw error;
|
|
15
|
+
if (!data?.success) throw new Error("Failed to send email");
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
//#endregion
|
|
20
|
+
export { EmailService };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { WP_Error } from "./wordpress/error.js";
|
|
2
|
+
import { WP_CommonErrorCode, WP_Context, WP_CurrencyFormat, WP_ErrorData, WP_Link, WP_List, WP_ListMetadata, WP_ListOrder, WP_RequestInput, WP_Result, WordPressCredentials } from "./wordpress/types.js";
|
|
3
|
+
import { WP_MenuItem, WP_MenuItemCreateErrorCode, WP_MenuItemCreateInput, WP_MenuItemDeleteErrorCode, WP_MenuItemDeleteInput, WP_MenuItemDeleteResponse, WP_MenuItemLinks, WP_MenuItemListErrorCode, WP_MenuItemListInput, WP_MenuItemOrderBy, WP_MenuItemRetrieveErrorCode, WP_MenuItemRetrieveInput, WP_MenuItemStatus, WP_MenuItemStatusFilter, WP_MenuItemTarget, WP_MenuItemTaxRelation, WP_MenuItemTitle, WP_MenuItemTitleInput, WP_MenuItemType, WP_MenuItemUpdateErrorCode, WP_MenuItemUpdateInput } from "./wordpress/menu/items/types.js";
|
|
4
|
+
import { MenuItemService } from "./wordpress/menu/items/service.js";
|
|
5
|
+
import { WP_Menu, WP_MenuCreateErrorCode, WP_MenuCreateInput, WP_MenuDeleteErrorCode, WP_MenuDeleteInput, WP_MenuDeleteResponse, WP_MenuLinks, WP_MenuListErrorCode, WP_MenuListInput, WP_MenuOrderBy, WP_MenuRetrieveErrorCode, WP_MenuRetrieveInput, WP_MenuUpdateErrorCode, WP_MenuUpdateInput } from "./wordpress/menu/types.js";
|
|
6
|
+
import { MenuService } from "./wordpress/menu/service.js";
|
|
7
|
+
import { WP_Post, WP_PostCommentStatus, WP_PostContent, WP_PostContentInput, WP_PostCreateErrorCode, WP_PostCreateInput, WP_PostDeleteErrorCode, WP_PostDeleteInput, WP_PostDeleteResponse, WP_PostExcerpt, WP_PostExcerptInput, WP_PostFormat, WP_PostGuid, WP_PostLinks, WP_PostListErrorCode, WP_PostListInput, WP_PostOrderBy, WP_PostRetrieveErrorCode, WP_PostRetrieveInput, WP_PostStatus, WP_PostStatusFilter, WP_PostTaxRelation, WP_PostTitle, WP_PostTitleInput, WP_PostUpdateErrorCode, WP_PostUpdateInput } from "./wordpress/post/types.js";
|
|
8
|
+
import { PostService } from "./wordpress/post/service.js";
|
|
9
|
+
import { WP_User, WP_UserAvatarUrls, WP_UserCapabilities, WP_UserCreateErrorCode, WP_UserCreateInput, WP_UserDeleteErrorCode, WP_UserDeleteInput, WP_UserDeleteMeErrorCode, WP_UserDeleteMeInput, WP_UserDeleteMeResponse, WP_UserDeleteResponse, WP_UserLinks, WP_UserListErrorCode, WP_UserListInput, WP_UserOrderBy, WP_UserRetrieveErrorCode, WP_UserRetrieveInput, WP_UserRetrieveMeErrorCode, WP_UserRetrieveMeInput, WP_UserUpdateErrorCode, WP_UserUpdateInput, WP_UserUpdateMeErrorCode, WP_UserUpdateMeInput, WP_UserWho } from "./wordpress/user/types.js";
|
|
10
|
+
import { UserService } from "./wordpress/user/service.js";
|
|
11
|
+
import { WordPressService } from "./wordpress/service.js";
|
|
12
|
+
import { WP_Comment, WP_CommentAvatarUrls, WP_CommentContent, WP_CommentContentInput, WP_CommentCreateErrorCode, WP_CommentCreateInput, WP_CommentDeleteErrorCode, WP_CommentDeleteInput, WP_CommentDeleteResponse, WP_CommentLinks, WP_CommentListErrorCode, WP_CommentListInput, WP_CommentOrderBy, WP_CommentRetrieveErrorCode, WP_CommentRetrieveInput, WP_CommentStatus, WP_CommentStatusFilter, WP_CommentStatusInput, WP_CommentType, WP_CommentUpdateErrorCode, WP_CommentUpdateInput } from "./wordpress/comment/types.js";
|
|
13
|
+
import { CommentService } from "./wordpress/comment/service.js";
|
|
14
|
+
import { CART_HASH_HEADER_KEY, SAFE_REQUEST_TIMEOUT, UNEXPECTED_BODY_SNIPPET_LENGTH, WC_CORE_BASE, WC_STORE_BASE, WP_AUTH_HEADER_KEY, WP_AUTH_TYPE, WP_CORE_BASE, WP_KIZLO_BASE } from "./wordpress/constants.js";
|
|
15
|
+
import { isWordPressResourceError } from "./wordpress/utils.js";
|
|
16
|
+
import "./wordpress/index.js";
|
|
17
|
+
import { AuthAdapter, AuthUser, authMock } from "./adapters/auth.js";
|
|
18
|
+
import { CaptchaAdapter, altcha, arkose, friendlyCaptcha, hcaptcha, recaptcha, turnstile } from "./adapters/captcha.js";
|
|
19
|
+
import { ConnInfo, GeoAdapter, geoMock } from "./adapters/geo.js";
|
|
20
|
+
import { geoVercelNext } from "./adapters/geo.vercel.js";
|
|
21
|
+
import { ConsoleLogAdapterOptions, Environment, LogLevel, LogPayload, Logger, LoggerAdapter, consoleLog, noopAdapter } from "./adapters/logger.js";
|
|
22
|
+
import { CurrencyFormat, IdentifierInput, LIST_ORDER, ListMetadata, ListOrder, Media, PreviewTokenData, PreviewTokenPayload } from "./shared/schema.js";
|
|
23
|
+
import { AnyContext, AnyNestedClient, CookiesAdapter, HTTPMethod, List, MaybeOptionalOptions, RedirectInput, RedirectStatus } from "./shared/types.js";
|
|
24
|
+
import { AnyWebhookEventSchema, AnyWebhookEvents, EventHandler, InferWebhookEventUnion, WebhookHandlerFn, WebhookOptions, createEventHandler, createWebhookRouter } from "./webhook/index.js";
|
|
25
|
+
import { AnyExtension, Extension, ExtensionInitFn, ExtensionInitOptions, ExtensionInitResult, ExtractExtensionRouter, InferExtensionRouter, createExtension } from "./shared/extension.js";
|
|
26
|
+
import { COMMON_ERRORS, CommonErrorCode, CommonErrorLiteral, CommonErrorMap, DefinedErrorLike, DefinedErrorMapLike, KizloError, KizloErrorOptions, ThrowableErrorFn, ThrowableErrorMap, WithCommonErrorMap, createThrowableErrorMap, defineErrorMap, isKizloError, toKizloError } from "./shared/error.js";
|
|
27
|
+
import { AnyKizloConfig, CreateKizloOptions, Kizlo, KizloConfig, RootRouter, S2SClient, ServiceAdapters, createKizlo, resolveKizloConfig } from "./kizlo.js";
|
|
28
|
+
import { Service, ServiceConfig } from "./service.js";
|
|
29
|
+
import { AuthUserFn, ConnInfoFn, Context, ContextConfig, ServerContext, VerifyCaptchaFn, VerifyPreviewTokenFn } from "./context.js";
|
|
30
|
+
import { AnyMiddleware, AnyProcedure, AnyProcedureRouter, ExtractMiddlewareContextOutput, ExtractParams, ExtractProcedureByScope, InvocationScope, Middleware, MiddlewareHandler, MiddlewareNextFn, MiddlewareOptions, MiddlewareResult, OpenapiPart, Procedure, ProcedureContext, ProcedureHandler, ProcedureOptions, ResolveParamsPart, ResolvedSchemaInput, ResolvedSchemaOutput, RouterDepthTuple, SchemaIO, buildProcedure, combineDetailed, createMiddleware, createProcedure, handleUnexpectedError, schemaType } from "./shared/procedure.js";
|
|
31
|
+
import { KizloClient, KizloClientConfig, createKizloClient } from "./client.js";
|
|
32
|
+
import { CONTENT_TYPES, ContentType, ListSitemapUrlInput, ListSitemapUrlInputBase, Robots, RobotsRule, Seo, SeoHead, SeoSchema, Sitemap, SitemapList, SitemapUrl, SitemapUrlImage, SitemapUrlList } from "./seo/schema.js";
|
|
33
|
+
import { WPK_ListSitemapUrlInput, WPK_RobotRule, WPK_Robots, WPK_Seo, WPK_Sitemap, WPK_SitemapContentType, WPK_SitemapUrl, WPK_SitemapUrlImage } from "./seo/types.js";
|
|
34
|
+
import { Contract, ContractProcedure, generateContract, isContractProcedure, restoreContract } from "./shared/contract.js";
|
|
35
|
+
import { compare, hash, hmac } from "./shared/crypto.js";
|
|
36
|
+
import { Identifier, parseIdentifier } from "./shared/identifier.js";
|
|
37
|
+
import { createOrpcRouter } from "./shared/router.js";
|
|
38
|
+
import { deserializeCurrencyFormat, deserializeListMetadata, emptyList, serializeCurrencyFormat } from "./shared/serialize.js";
|
|
39
|
+
export { AnyContext, AnyExtension, AnyKizloConfig, AnyMiddleware, AnyNestedClient, AnyProcedure, AnyProcedureRouter, AnyWebhookEventSchema, AnyWebhookEvents, AuthAdapter, AuthUser, AuthUserFn, CART_HASH_HEADER_KEY, COMMON_ERRORS, CONTENT_TYPES, CaptchaAdapter, CommentService, CommonErrorCode, CommonErrorLiteral, CommonErrorMap, ConnInfo, ConnInfoFn, ConsoleLogAdapterOptions, ContentType, Context, ContextConfig, Contract, ContractProcedure, CookiesAdapter, CreateKizloOptions, CurrencyFormat, DefinedErrorLike, DefinedErrorMapLike, Environment, EventHandler, Extension, ExtensionInitFn, ExtensionInitOptions, ExtensionInitResult, ExtractExtensionRouter, ExtractMiddlewareContextOutput, ExtractParams, ExtractProcedureByScope, GeoAdapter, HTTPMethod, Identifier, IdentifierInput, InferExtensionRouter, InferWebhookEventUnion, InvocationScope, Kizlo, KizloClient, KizloClientConfig, KizloConfig, KizloError, KizloErrorOptions, LIST_ORDER, List, ListMetadata, ListOrder, ListSitemapUrlInput, ListSitemapUrlInputBase, LogLevel, LogPayload, Logger, LoggerAdapter, MaybeOptionalOptions, Media, MenuItemService, MenuService, Middleware, MiddlewareHandler, MiddlewareNextFn, MiddlewareOptions, MiddlewareResult, OpenapiPart, PostService, PreviewTokenData, PreviewTokenPayload, Procedure, ProcedureContext, ProcedureHandler, ProcedureOptions, RedirectInput, RedirectStatus, ResolveParamsPart, ResolvedSchemaInput, ResolvedSchemaOutput, Robots, RobotsRule, RootRouter, RouterDepthTuple, S2SClient, SAFE_REQUEST_TIMEOUT, SchemaIO, Seo, SeoHead, SeoSchema, ServerContext, Service, ServiceAdapters, ServiceConfig, Sitemap, SitemapList, SitemapUrl, SitemapUrlImage, SitemapUrlList, ThrowableErrorFn, ThrowableErrorMap, UNEXPECTED_BODY_SNIPPET_LENGTH, UserService, VerifyCaptchaFn, VerifyPreviewTokenFn, WC_CORE_BASE, WC_STORE_BASE, WPK_ListSitemapUrlInput, WPK_RobotRule, WPK_Robots, WPK_Seo, WPK_Sitemap, WPK_SitemapContentType, WPK_SitemapUrl, WPK_SitemapUrlImage, WP_AUTH_HEADER_KEY, WP_AUTH_TYPE, WP_CORE_BASE, WP_Comment, WP_CommentAvatarUrls, WP_CommentContent, WP_CommentContentInput, WP_CommentCreateErrorCode, WP_CommentCreateInput, WP_CommentDeleteErrorCode, WP_CommentDeleteInput, WP_CommentDeleteResponse, WP_CommentLinks, WP_CommentListErrorCode, WP_CommentListInput, WP_CommentOrderBy, WP_CommentRetrieveErrorCode, WP_CommentRetrieveInput, WP_CommentStatus, WP_CommentStatusFilter, WP_CommentStatusInput, WP_CommentType, WP_CommentUpdateErrorCode, WP_CommentUpdateInput, WP_CommonErrorCode, WP_Context, WP_CurrencyFormat, WP_Error, WP_ErrorData, WP_KIZLO_BASE, WP_Link, WP_List, WP_ListMetadata, WP_ListOrder, WP_Menu, WP_MenuCreateErrorCode, WP_MenuCreateInput, WP_MenuDeleteErrorCode, WP_MenuDeleteInput, WP_MenuDeleteResponse, WP_MenuItem, WP_MenuItemCreateErrorCode, WP_MenuItemCreateInput, WP_MenuItemDeleteErrorCode, WP_MenuItemDeleteInput, WP_MenuItemDeleteResponse, WP_MenuItemLinks, WP_MenuItemListErrorCode, WP_MenuItemListInput, WP_MenuItemOrderBy, WP_MenuItemRetrieveErrorCode, WP_MenuItemRetrieveInput, WP_MenuItemStatus, WP_MenuItemStatusFilter, WP_MenuItemTarget, WP_MenuItemTaxRelation, WP_MenuItemTitle, WP_MenuItemTitleInput, WP_MenuItemType, WP_MenuItemUpdateErrorCode, WP_MenuItemUpdateInput, WP_MenuLinks, WP_MenuListErrorCode, WP_MenuListInput, WP_MenuOrderBy, WP_MenuRetrieveErrorCode, WP_MenuRetrieveInput, WP_MenuUpdateErrorCode, WP_MenuUpdateInput, WP_Post, WP_PostCommentStatus, WP_PostContent, WP_PostContentInput, WP_PostCreateErrorCode, WP_PostCreateInput, WP_PostDeleteErrorCode, WP_PostDeleteInput, WP_PostDeleteResponse, WP_PostExcerpt, WP_PostExcerptInput, WP_PostFormat, WP_PostGuid, WP_PostLinks, WP_PostListErrorCode, WP_PostListInput, WP_PostOrderBy, WP_PostRetrieveErrorCode, WP_PostRetrieveInput, WP_PostStatus, WP_PostStatusFilter, WP_PostTaxRelation, WP_PostTitle, WP_PostTitleInput, WP_PostUpdateErrorCode, WP_PostUpdateInput, WP_RequestInput, WP_Result, WP_User, WP_UserAvatarUrls, WP_UserCapabilities, WP_UserCreateErrorCode, WP_UserCreateInput, WP_UserDeleteErrorCode, WP_UserDeleteInput, WP_UserDeleteMeErrorCode, WP_UserDeleteMeInput, WP_UserDeleteMeResponse, WP_UserDeleteResponse, WP_UserLinks, WP_UserListErrorCode, WP_UserListInput, WP_UserOrderBy, WP_UserRetrieveErrorCode, WP_UserRetrieveInput, WP_UserRetrieveMeErrorCode, WP_UserRetrieveMeInput, WP_UserUpdateErrorCode, WP_UserUpdateInput, WP_UserUpdateMeErrorCode, WP_UserUpdateMeInput, WP_UserWho, WebhookHandlerFn, WebhookOptions, WithCommonErrorMap, WordPressCredentials, WordPressService, altcha, arkose, authMock, buildProcedure, combineDetailed, compare, consoleLog, createEventHandler, createExtension, createKizlo, createKizloClient, createMiddleware, createOrpcRouter, createProcedure, createThrowableErrorMap, createWebhookRouter, defineErrorMap, deserializeCurrencyFormat, deserializeListMetadata, emptyList, friendlyCaptcha, generateContract, geoMock, geoVercelNext, handleUnexpectedError, hash, hcaptcha, hmac, isContractProcedure, isKizloError, isWordPressResourceError, noopAdapter, parseIdentifier, recaptcha, resolveKizloConfig, restoreContract, schemaType, serializeCurrencyFormat, toKizloError, turnstile };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { authMock } from "./adapters/auth.js";
|
|
2
|
+
import { altcha, arkose, friendlyCaptcha, hcaptcha, recaptcha, turnstile } from "./adapters/captcha.js";
|
|
3
|
+
import { geoMock } from "./adapters/geo.js";
|
|
4
|
+
import { geoVercelNext } from "./adapters/geo.vercel.js";
|
|
5
|
+
import { consoleLog, noopAdapter } from "./adapters/logger.js";
|
|
6
|
+
import { COMMON_ERRORS, KizloError, createThrowableErrorMap, defineErrorMap, isKizloError, toKizloError } from "./shared/error.js";
|
|
7
|
+
import { buildProcedure, combineDetailed, createMiddleware, createProcedure, handleUnexpectedError, schemaType } from "./shared/procedure.js";
|
|
8
|
+
import { createOrpcRouter } from "./shared/router.js";
|
|
9
|
+
import { generateContract, isContractProcedure, restoreContract } from "./shared/contract.js";
|
|
10
|
+
import { CurrencyFormat, IdentifierInput, LIST_ORDER, ListMetadata, ListOrder, Media, PreviewTokenData, PreviewTokenPayload } from "./shared/schema.js";
|
|
11
|
+
import { KizloClient, createKizloClient } from "./client.js";
|
|
12
|
+
import { CART_HASH_HEADER_KEY, SAFE_REQUEST_TIMEOUT, UNEXPECTED_BODY_SNIPPET_LENGTH, WC_CORE_BASE, WC_STORE_BASE, WP_AUTH_HEADER_KEY, WP_AUTH_TYPE, WP_CORE_BASE, WP_KIZLO_BASE } from "./wordpress/constants.js";
|
|
13
|
+
import { CommentService } from "./wordpress/comment/service.js";
|
|
14
|
+
import { WP_Error } from "./wordpress/error.js";
|
|
15
|
+
import { MenuItemService } from "./wordpress/menu/items/service.js";
|
|
16
|
+
import { MenuService } from "./wordpress/menu/service.js";
|
|
17
|
+
import { PostService } from "./wordpress/post/service.js";
|
|
18
|
+
import { UserService } from "./wordpress/user/service.js";
|
|
19
|
+
import { isWordPressResourceError } from "./wordpress/utils.js";
|
|
20
|
+
import { WordPressService } from "./wordpress/service.js";
|
|
21
|
+
import { Service } from "./service.js";
|
|
22
|
+
import { compare, hash, hmac } from "./shared/crypto.js";
|
|
23
|
+
import { Context } from "./context.js";
|
|
24
|
+
import { deserializeCurrencyFormat, deserializeListMetadata, emptyList, serializeCurrencyFormat } from "./shared/serialize.js";
|
|
25
|
+
import { parseIdentifier } from "./shared/identifier.js";
|
|
26
|
+
import { CONTENT_TYPES, ContentType, ListSitemapUrlInput, ListSitemapUrlInputBase, Robots, RobotsRule, Seo, SeoHead, SeoSchema, Sitemap, SitemapList, SitemapUrl, SitemapUrlImage, SitemapUrlList } from "./seo/schema.js";
|
|
27
|
+
import { createEventHandler, createWebhookRouter } from "./webhook/index.js";
|
|
28
|
+
import { Kizlo, createKizlo, resolveKizloConfig } from "./kizlo.js";
|
|
29
|
+
import { createExtension } from "./shared/extension.js";
|
|
30
|
+
|
|
31
|
+
export { CART_HASH_HEADER_KEY, COMMON_ERRORS, CONTENT_TYPES, CommentService, ContentType, Context, CurrencyFormat, IdentifierInput, Kizlo, KizloClient, KizloError, LIST_ORDER, ListMetadata, ListOrder, ListSitemapUrlInput, ListSitemapUrlInputBase, Media, MenuItemService, MenuService, PostService, PreviewTokenData, PreviewTokenPayload, Robots, RobotsRule, SAFE_REQUEST_TIMEOUT, Seo, SeoHead, SeoSchema, Service, Sitemap, SitemapList, SitemapUrl, SitemapUrlImage, SitemapUrlList, UNEXPECTED_BODY_SNIPPET_LENGTH, UserService, WC_CORE_BASE, WC_STORE_BASE, WP_AUTH_HEADER_KEY, WP_AUTH_TYPE, WP_CORE_BASE, WP_Error, WP_KIZLO_BASE, WordPressService, altcha, arkose, authMock, buildProcedure, combineDetailed, compare, consoleLog, createEventHandler, createExtension, createKizlo, createKizloClient, createMiddleware, createOrpcRouter, createProcedure, createThrowableErrorMap, createWebhookRouter, defineErrorMap, deserializeCurrencyFormat, deserializeListMetadata, emptyList, friendlyCaptcha, generateContract, geoMock, geoVercelNext, handleUnexpectedError, hash, hcaptcha, hmac, isContractProcedure, isKizloError, isWordPressResourceError, noopAdapter, parseIdentifier, recaptcha, resolveKizloConfig, restoreContract, schemaType, serializeCurrencyFormat, toKizloError, turnstile };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AnyProcedureRouter } from "../../shared/procedure.js";
|
|
2
|
+
import { KizloClient } from "../../client.js";
|
|
3
|
+
|
|
4
|
+
//#region src/integrations/nextjs/kizlo.client.d.ts
|
|
5
|
+
interface KizloClientOptions {
|
|
6
|
+
url?: string;
|
|
7
|
+
}
|
|
8
|
+
declare function createKizloClient<T extends AnyProcedureRouter>(contract: T, options?: KizloClientOptions): KizloClient<T>;
|
|
9
|
+
//#endregion
|
|
10
|
+
export { KizloClientOptions, createKizloClient };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { KizloClient } from "../../client.js";
|
|
2
|
+
import { getServerBaseUrl } from "./utils.js";
|
|
3
|
+
|
|
4
|
+
//#region src/integrations/nextjs/kizlo.client.ts
|
|
5
|
+
function createKizloClient(contract, options) {
|
|
6
|
+
return new KizloClient({
|
|
7
|
+
url: options?.url ?? getServerBaseUrl(),
|
|
8
|
+
contract
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
//#endregion
|
|
13
|
+
export { createKizloClient };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AnyExtension } from "../../shared/extension.js";
|
|
2
|
+
import { CreateKizloOptions, Kizlo } from "../../kizlo.js";
|
|
3
|
+
|
|
4
|
+
//#region src/integrations/nextjs/kizlo.server.d.ts
|
|
5
|
+
type KizloServerOptions<TExts extends readonly AnyExtension[] = []> = CreateKizloOptions<TExts>;
|
|
6
|
+
/**
|
|
7
|
+
* Creates a Kizlo server for Next.js — same as the base `createKizlo`, but reads
|
|
8
|
+
* the public base URL from `NEXT_PUBLIC_SERVER_BASE_URL`.
|
|
9
|
+
*/
|
|
10
|
+
declare function createKizlo<TExts extends readonly AnyExtension[] = []>(options?: CreateKizloOptions<TExts>): Kizlo<TExts>;
|
|
11
|
+
//#endregion
|
|
12
|
+
export { KizloServerOptions, createKizlo };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Kizlo, resolveKizloConfig } from "../../kizlo.js";
|
|
2
|
+
|
|
3
|
+
//#region src/integrations/nextjs/kizlo.server.ts
|
|
4
|
+
/**
|
|
5
|
+
* Creates a Kizlo server for Next.js — same as the base `createKizlo`, but reads
|
|
6
|
+
* the public base URL from `NEXT_PUBLIC_SERVER_BASE_URL`.
|
|
7
|
+
*/
|
|
8
|
+
function createKizlo(options) {
|
|
9
|
+
return new Kizlo(resolveKizloConfig(options, { baseUrlEnvKey: "NEXT_PUBLIC_SERVER_BASE_URL" }));
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
//#endregion
|
|
13
|
+
export { createKizlo };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { KizloError } from "../../shared/error.js";
|
|
2
|
+
|
|
3
|
+
//#region src/integrations/nextjs/utils.ts
|
|
4
|
+
function getServerBaseUrl() {
|
|
5
|
+
const baseUrl = process.env.NEXT_PUBLIC_SERVER_BASE_URL;
|
|
6
|
+
if (!baseUrl) throw new KizloError("MISSING_ENV_VARIABLE", { message: "Please define NEXT_PUBLIC_SERVER_BASE_URL in you .env file." });
|
|
7
|
+
return baseUrl;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
//#endregion
|
|
11
|
+
export { getServerBaseUrl };
|
package/dist/kizlo.d.ts
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { WordPressCredentials } from "./wordpress/types.js";
|
|
2
|
+
import "./wordpress/index.js";
|
|
3
|
+
import { AuthAdapter } from "./adapters/auth.js";
|
|
4
|
+
import { CaptchaAdapter } from "./adapters/captcha.js";
|
|
5
|
+
import { GeoAdapter } from "./adapters/geo.js";
|
|
6
|
+
import { Environment, LoggerAdapter } from "./adapters/logger.js";
|
|
7
|
+
import { CookiesAdapter } from "./shared/types.js";
|
|
8
|
+
import { RouterMap } from "./router.js";
|
|
9
|
+
import { AnyExtension, InferExtensionRouter } from "./shared/extension.js";
|
|
10
|
+
import { ResultClient } from "./shared/result.js";
|
|
11
|
+
import { Context } from "./context.js";
|
|
12
|
+
import { Pathname } from "@kizlo/shared";
|
|
13
|
+
|
|
14
|
+
//#region src/kizlo.d.ts
|
|
15
|
+
type AnyKizloConfig = KizloConfig<any>;
|
|
16
|
+
interface KizloConfig<TExts extends readonly AnyExtension[]> {
|
|
17
|
+
baseUrl: string;
|
|
18
|
+
siteSecret: string;
|
|
19
|
+
extensions?: TExts;
|
|
20
|
+
environment: Environment;
|
|
21
|
+
adapters?: ServiceAdapters;
|
|
22
|
+
credentials: WordPressCredentials;
|
|
23
|
+
webhookPath?: Pathname;
|
|
24
|
+
}
|
|
25
|
+
interface ServiceAdapters {
|
|
26
|
+
geo?: GeoAdapter;
|
|
27
|
+
auth?: AuthAdapter;
|
|
28
|
+
logger?: LoggerAdapter;
|
|
29
|
+
captcha?: CaptchaAdapter;
|
|
30
|
+
cookies?: CookiesAdapter;
|
|
31
|
+
}
|
|
32
|
+
type RootRouter<TExts extends readonly AnyExtension[]> = InferExtensionRouter<TExts> & RouterMap;
|
|
33
|
+
type S2SClient<TExts extends readonly AnyExtension[]> = ResultClient<RootRouter<TExts>>;
|
|
34
|
+
declare class Kizlo<TExts extends readonly AnyExtension[] = []> {
|
|
35
|
+
readonly context: Context;
|
|
36
|
+
readonly client: S2SClient<TExts>;
|
|
37
|
+
readonly router: RootRouter<TExts>;
|
|
38
|
+
private readonly remoteHandler;
|
|
39
|
+
private readonly openapiHandler;
|
|
40
|
+
private readonly config;
|
|
41
|
+
constructor(config: KizloConfig<TExts>);
|
|
42
|
+
handler(request: Request): Promise<Response>;
|
|
43
|
+
private errorInterceptor;
|
|
44
|
+
private checkInvocationScope;
|
|
45
|
+
private registerExtensions;
|
|
46
|
+
}
|
|
47
|
+
interface CreateKizloOptions<TExts extends readonly AnyExtension[] = []> {
|
|
48
|
+
baseUrl?: string;
|
|
49
|
+
siteSecret?: string;
|
|
50
|
+
extensions?: TExts;
|
|
51
|
+
environment?: Environment;
|
|
52
|
+
adapters?: ServiceAdapters;
|
|
53
|
+
wordpress?: {
|
|
54
|
+
credentials?: Partial<WordPressCredentials>;
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Resolves a full `KizloConfig` from options and the environment. Shared by the
|
|
59
|
+
* base `createKizlo` and each framework factory — the single place env values
|
|
60
|
+
* and credentials are read. `baseUrlEnvKey` is the only framework-varying part.
|
|
61
|
+
*/
|
|
62
|
+
declare function resolveKizloConfig<TExts extends readonly AnyExtension[]>(options: CreateKizloOptions<TExts> | undefined, defaults: {
|
|
63
|
+
baseUrlEnvKey: string;
|
|
64
|
+
adapters?: ServiceAdapters;
|
|
65
|
+
}): KizloConfig<TExts>;
|
|
66
|
+
/**
|
|
67
|
+
* Creates a Kizlo server from the environment (`SERVER_BASE_URL`, `SITE_SECRET`,
|
|
68
|
+
* `WORDPRESS_*`), with options taking precedence. Framework packages wrap this
|
|
69
|
+
* with their own URL convention and adapters.
|
|
70
|
+
*/
|
|
71
|
+
declare function createKizlo<TExts extends readonly AnyExtension[] = []>(options?: CreateKizloOptions<TExts>): Kizlo<TExts>;
|
|
72
|
+
//#endregion
|
|
73
|
+
export { AnyKizloConfig, CreateKizloOptions, Kizlo, KizloConfig, RootRouter, S2SClient, ServiceAdapters, createKizlo, resolveKizloConfig };
|