@aphexcms/cms-core 4.0.0 → 5.0.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/dist/api/schemas/user.d.ts +10 -0
- package/dist/api/schemas/user.d.ts.map +1 -1
- package/dist/api/schemas/user.js +10 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -2
- package/dist/hooks.d.ts +3 -4
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +20 -99
- package/dist/lib/api/schemas/user.d.ts +10 -0
- package/dist/lib/api/schemas/user.d.ts.map +1 -1
- package/dist/lib/api/schemas/user.js +10 -0
- package/dist/lib/api/schemas/user.js.map +1 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +1 -2
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/hooks.d.ts +3 -4
- package/dist/lib/hooks.d.ts.map +1 -1
- package/dist/lib/hooks.js +20 -99
- package/dist/lib/hooks.js.map +1 -1
- package/dist/lib/server/api/index.d.ts +55 -0
- package/dist/lib/server/api/index.d.ts.map +1 -0
- package/dist/lib/server/api/index.js +107 -0
- package/dist/lib/server/api/index.js.map +1 -0
- package/dist/lib/server/api/routes/assets-bulk.d.ts +4 -0
- package/dist/lib/server/api/routes/assets-bulk.d.ts.map +1 -0
- package/dist/{routes → lib/server/api/routes}/assets-bulk.js +23 -23
- package/dist/lib/server/api/routes/assets-bulk.js.map +1 -0
- package/dist/lib/server/api/routes/assets-by-id.d.ts +4 -0
- package/dist/lib/server/api/routes/assets-by-id.d.ts.map +1 -0
- package/dist/lib/server/api/routes/assets-by-id.js +108 -0
- package/dist/lib/server/api/routes/assets-by-id.js.map +1 -0
- package/dist/lib/server/api/routes/assets-references.d.ts +15 -0
- package/dist/lib/server/api/routes/assets-references.d.ts.map +1 -0
- package/dist/lib/server/api/routes/assets-references.js +78 -0
- package/dist/lib/server/api/routes/assets-references.js.map +1 -0
- package/dist/lib/server/api/routes/assets.d.ts +4 -0
- package/dist/lib/server/api/routes/assets.d.ts.map +1 -0
- package/dist/{routes → lib/server/api/routes}/assets.js +76 -87
- package/dist/lib/server/api/routes/assets.js.map +1 -0
- package/dist/lib/server/api/routes/document-versions.d.ts +4 -0
- package/dist/lib/server/api/routes/document-versions.d.ts.map +1 -0
- package/dist/lib/server/api/routes/document-versions.js +113 -0
- package/dist/lib/server/api/routes/document-versions.js.map +1 -0
- package/dist/lib/server/api/routes/documents-by-id.d.ts +4 -0
- package/dist/lib/server/api/routes/documents-by-id.d.ts.map +1 -0
- package/dist/lib/server/api/routes/documents-by-id.js +148 -0
- package/dist/lib/server/api/routes/documents-by-id.js.map +1 -0
- package/dist/lib/server/api/routes/documents-publish.d.ts +4 -0
- package/dist/lib/server/api/routes/documents-publish.d.ts.map +1 -0
- package/dist/{routes → lib/server/api/routes}/documents-publish.js +42 -58
- package/dist/lib/server/api/routes/documents-publish.js.map +1 -0
- package/dist/lib/server/api/routes/documents-query.d.ts +8 -0
- package/dist/lib/server/api/routes/documents-query.d.ts.map +1 -0
- package/dist/lib/server/api/routes/documents-query.js +75 -0
- package/dist/lib/server/api/routes/documents-query.js.map +1 -0
- package/dist/lib/server/api/routes/documents.d.ts +4 -0
- package/dist/lib/server/api/routes/documents.d.ts.map +1 -0
- package/dist/{routes → lib/server/api/routes}/documents.js +55 -76
- package/dist/lib/server/api/routes/documents.js.map +1 -0
- package/dist/lib/server/api/routes/organizations-by-id.d.ts +4 -0
- package/dist/lib/server/api/routes/organizations-by-id.d.ts.map +1 -0
- package/dist/{routes → lib/server/api/routes}/organizations-by-id.js +62 -91
- package/dist/lib/server/api/routes/organizations-by-id.js.map +1 -0
- package/dist/lib/server/api/routes/organizations-invitations.d.ts +10 -0
- package/dist/lib/server/api/routes/organizations-invitations.d.ts.map +1 -0
- package/dist/{routes → lib/server/api/routes}/organizations-invitations.js +67 -78
- package/dist/lib/server/api/routes/organizations-invitations.js.map +1 -0
- package/dist/lib/server/api/routes/organizations-members.d.ts +4 -0
- package/dist/lib/server/api/routes/organizations-members.d.ts.map +1 -0
- package/dist/{routes → lib/server/api/routes}/organizations-members.js +74 -106
- package/dist/lib/server/api/routes/organizations-members.js.map +1 -0
- package/dist/lib/server/api/routes/organizations-switch.d.ts +4 -0
- package/dist/lib/server/api/routes/organizations-switch.d.ts.map +1 -0
- package/dist/lib/server/api/routes/organizations-switch.js +54 -0
- package/dist/lib/server/api/routes/organizations-switch.js.map +1 -0
- package/dist/lib/server/api/routes/organizations.d.ts +4 -0
- package/dist/lib/server/api/routes/organizations.d.ts.map +1 -0
- package/dist/lib/server/api/routes/organizations.js +99 -0
- package/dist/lib/server/api/routes/organizations.js.map +1 -0
- package/dist/lib/server/api/routes/roles.d.ts +12 -0
- package/dist/lib/server/api/routes/roles.d.ts.map +1 -0
- package/dist/lib/server/api/routes/roles.js +219 -0
- package/dist/lib/server/api/routes/roles.js.map +1 -0
- package/dist/lib/server/api/routes/schemas.d.ts +4 -0
- package/dist/lib/server/api/routes/schemas.d.ts.map +1 -0
- package/dist/lib/server/api/routes/schemas.js +27 -0
- package/dist/lib/server/api/routes/schemas.js.map +1 -0
- package/dist/lib/server/api/routes/user-preferences.d.ts +4 -0
- package/dist/lib/server/api/routes/user-preferences.d.ts.map +1 -0
- package/dist/lib/server/api/routes/user-preferences.js +63 -0
- package/dist/lib/server/api/routes/user-preferences.js.map +1 -0
- package/dist/lib/server/api/routes/user.d.ts +12 -0
- package/dist/lib/server/api/routes/user.d.ts.map +1 -0
- package/dist/lib/server/api/routes/user.js +114 -0
- package/dist/lib/server/api/routes/user.js.map +1 -0
- package/dist/lib/server/index.d.ts +2 -1
- package/dist/lib/server/index.d.ts.map +1 -1
- package/dist/lib/server/index.js +7 -3
- package/dist/lib/server/index.js.map +1 -1
- package/dist/lib/types/config.d.ts +28 -29
- package/dist/lib/types/config.d.ts.map +1 -1
- package/dist/server/api/index.d.ts +55 -0
- package/dist/server/api/index.d.ts.map +1 -0
- package/dist/server/api/index.js +106 -0
- package/dist/server/api/routes/assets-bulk.d.ts +4 -0
- package/dist/server/api/routes/assets-bulk.d.ts.map +1 -0
- package/dist/{lib → server/api}/routes/assets-bulk.js +22 -24
- package/dist/server/api/routes/assets-by-id.d.ts +4 -0
- package/dist/server/api/routes/assets-by-id.d.ts.map +1 -0
- package/dist/server/api/routes/assets-by-id.js +107 -0
- package/dist/server/api/routes/assets-references.d.ts +15 -0
- package/dist/server/api/routes/assets-references.d.ts.map +1 -0
- package/dist/server/api/routes/assets-references.js +77 -0
- package/dist/server/api/routes/assets.d.ts +4 -0
- package/dist/server/api/routes/assets.d.ts.map +1 -0
- package/dist/{lib → server/api}/routes/assets.js +75 -88
- package/dist/server/api/routes/document-versions.d.ts +4 -0
- package/dist/server/api/routes/document-versions.d.ts.map +1 -0
- package/dist/server/api/routes/document-versions.js +112 -0
- package/dist/server/api/routes/documents-by-id.d.ts +4 -0
- package/dist/server/api/routes/documents-by-id.d.ts.map +1 -0
- package/dist/server/api/routes/documents-by-id.js +147 -0
- package/dist/server/api/routes/documents-publish.d.ts +4 -0
- package/dist/server/api/routes/documents-publish.d.ts.map +1 -0
- package/dist/{lib → server/api}/routes/documents-publish.js +41 -59
- package/dist/server/api/routes/documents-query.d.ts +8 -0
- package/dist/server/api/routes/documents-query.d.ts.map +1 -0
- package/dist/server/api/routes/documents-query.js +74 -0
- package/dist/server/api/routes/documents.d.ts +4 -0
- package/dist/server/api/routes/documents.d.ts.map +1 -0
- package/dist/{lib → server/api}/routes/documents.js +54 -77
- package/dist/server/api/routes/organizations-by-id.d.ts +4 -0
- package/dist/server/api/routes/organizations-by-id.d.ts.map +1 -0
- package/dist/{lib → server/api}/routes/organizations-by-id.js +61 -92
- package/dist/server/api/routes/organizations-invitations.d.ts +10 -0
- package/dist/server/api/routes/organizations-invitations.d.ts.map +1 -0
- package/dist/{lib → server/api}/routes/organizations-invitations.js +66 -79
- package/dist/server/api/routes/organizations-members.d.ts +4 -0
- package/dist/server/api/routes/organizations-members.d.ts.map +1 -0
- package/dist/{lib → server/api}/routes/organizations-members.js +73 -107
- package/dist/server/api/routes/organizations-switch.d.ts +4 -0
- package/dist/server/api/routes/organizations-switch.d.ts.map +1 -0
- package/dist/server/api/routes/organizations-switch.js +53 -0
- package/dist/server/api/routes/organizations.d.ts +4 -0
- package/dist/server/api/routes/organizations.d.ts.map +1 -0
- package/dist/server/api/routes/organizations.js +98 -0
- package/dist/server/api/routes/roles.d.ts +12 -0
- package/dist/server/api/routes/roles.d.ts.map +1 -0
- package/dist/server/api/routes/roles.js +218 -0
- package/dist/server/api/routes/schemas.d.ts +4 -0
- package/dist/server/api/routes/schemas.d.ts.map +1 -0
- package/dist/server/api/routes/schemas.js +26 -0
- package/dist/server/api/routes/user-preferences.d.ts +4 -0
- package/dist/server/api/routes/user-preferences.d.ts.map +1 -0
- package/dist/server/api/routes/user-preferences.js +62 -0
- package/dist/server/api/routes/user.d.ts +12 -0
- package/dist/server/api/routes/user.d.ts.map +1 -0
- package/dist/server/api/routes/user.js +113 -0
- package/dist/server/index.d.ts +2 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +7 -3
- package/dist/types/config.d.ts +28 -29
- package/dist/types/config.d.ts.map +1 -1
- package/package.json +4 -2
- package/dist/lib/routes/assets-bulk.d.ts +0 -3
- package/dist/lib/routes/assets-bulk.d.ts.map +0 -1
- package/dist/lib/routes/assets-bulk.js.map +0 -1
- package/dist/lib/routes/assets-by-id.d.ts +0 -5
- package/dist/lib/routes/assets-by-id.d.ts.map +0 -1
- package/dist/lib/routes/assets-by-id.js +0 -116
- package/dist/lib/routes/assets-by-id.js.map +0 -1
- package/dist/lib/routes/assets-references-counts.d.ts +0 -7
- package/dist/lib/routes/assets-references-counts.d.ts.map +0 -1
- package/dist/lib/routes/assets-references-counts.js +0 -42
- package/dist/lib/routes/assets-references-counts.js.map +0 -1
- package/dist/lib/routes/assets-references.d.ts +0 -7
- package/dist/lib/routes/assets-references.d.ts.map +0 -1
- package/dist/lib/routes/assets-references.js +0 -35
- package/dist/lib/routes/assets-references.js.map +0 -1
- package/dist/lib/routes/assets.d.ts +0 -4
- package/dist/lib/routes/assets.d.ts.map +0 -1
- package/dist/lib/routes/assets.js.map +0 -1
- package/dist/lib/routes/document-versions.d.ts +0 -5
- package/dist/lib/routes/document-versions.d.ts.map +0 -1
- package/dist/lib/routes/document-versions.js +0 -114
- package/dist/lib/routes/document-versions.js.map +0 -1
- package/dist/lib/routes/documents-by-id.d.ts +0 -5
- package/dist/lib/routes/documents-by-id.d.ts.map +0 -1
- package/dist/lib/routes/documents-by-id.js +0 -188
- package/dist/lib/routes/documents-by-id.js.map +0 -1
- package/dist/lib/routes/documents-publish.d.ts +0 -4
- package/dist/lib/routes/documents-publish.d.ts.map +0 -1
- package/dist/lib/routes/documents-publish.js.map +0 -1
- package/dist/lib/routes/documents-query.d.ts +0 -26
- package/dist/lib/routes/documents-query.d.ts.map +0 -1
- package/dist/lib/routes/documents-query.js +0 -104
- package/dist/lib/routes/documents-query.js.map +0 -1
- package/dist/lib/routes/documents.d.ts +0 -4
- package/dist/lib/routes/documents.d.ts.map +0 -1
- package/dist/lib/routes/documents.js.map +0 -1
- package/dist/lib/routes/index.d.ts +0 -9
- package/dist/lib/routes/index.d.ts.map +0 -1
- package/dist/lib/routes/index.js +0 -15
- package/dist/lib/routes/index.js.map +0 -1
- package/dist/lib/routes/organizations-by-id.d.ts +0 -5
- package/dist/lib/routes/organizations-by-id.d.ts.map +0 -1
- package/dist/lib/routes/organizations-by-id.js.map +0 -1
- package/dist/lib/routes/organizations-invitations.d.ts +0 -4
- package/dist/lib/routes/organizations-invitations.d.ts.map +0 -1
- package/dist/lib/routes/organizations-invitations.js.map +0 -1
- package/dist/lib/routes/organizations-members.d.ts +0 -5
- package/dist/lib/routes/organizations-members.d.ts.map +0 -1
- package/dist/lib/routes/organizations-members.js.map +0 -1
- package/dist/lib/routes/organizations-switch.d.ts +0 -3
- package/dist/lib/routes/organizations-switch.d.ts.map +0 -1
- package/dist/lib/routes/organizations-switch.js +0 -59
- package/dist/lib/routes/organizations-switch.js.map +0 -1
- package/dist/lib/routes/organizations.d.ts +0 -4
- package/dist/lib/routes/organizations.d.ts.map +0 -1
- package/dist/lib/routes/organizations.js +0 -117
- package/dist/lib/routes/organizations.js.map +0 -1
- package/dist/lib/routes/roles-by-name.d.ts +0 -4
- package/dist/lib/routes/roles-by-name.d.ts.map +0 -1
- package/dist/lib/routes/roles-by-name.js +0 -112
- package/dist/lib/routes/roles-by-name.js.map +0 -1
- package/dist/lib/routes/roles.d.ts +0 -4
- package/dist/lib/routes/roles.d.ts.map +0 -1
- package/dist/lib/routes/roles.js +0 -91
- package/dist/lib/routes/roles.js.map +0 -1
- package/dist/lib/routes/schemas-by-type.d.ts +0 -3
- package/dist/lib/routes/schemas-by-type.d.ts.map +0 -1
- package/dist/lib/routes/schemas-by-type.js +0 -27
- package/dist/lib/routes/schemas-by-type.js.map +0 -1
- package/dist/lib/routes/schemas.d.ts +0 -3
- package/dist/lib/routes/schemas.d.ts.map +0 -1
- package/dist/lib/routes/schemas.js +0 -12
- package/dist/lib/routes/schemas.js.map +0 -1
- package/dist/lib/routes/user-preferences.d.ts +0 -4
- package/dist/lib/routes/user-preferences.d.ts.map +0 -1
- package/dist/lib/routes/user-preferences.js +0 -73
- package/dist/lib/routes/user-preferences.js.map +0 -1
- package/dist/lib/routes-exports.d.ts +0 -20
- package/dist/lib/routes-exports.d.ts.map +0 -1
- package/dist/lib/routes-exports.js +0 -27
- package/dist/lib/routes-exports.js.map +0 -1
- package/dist/routes/assets-bulk.d.ts +0 -3
- package/dist/routes/assets-bulk.d.ts.map +0 -1
- package/dist/routes/assets-by-id.d.ts +0 -5
- package/dist/routes/assets-by-id.d.ts.map +0 -1
- package/dist/routes/assets-by-id.js +0 -115
- package/dist/routes/assets-references-counts.d.ts +0 -7
- package/dist/routes/assets-references-counts.d.ts.map +0 -1
- package/dist/routes/assets-references-counts.js +0 -41
- package/dist/routes/assets-references.d.ts +0 -7
- package/dist/routes/assets-references.d.ts.map +0 -1
- package/dist/routes/assets-references.js +0 -34
- package/dist/routes/assets.d.ts +0 -4
- package/dist/routes/assets.d.ts.map +0 -1
- package/dist/routes/document-versions.d.ts +0 -5
- package/dist/routes/document-versions.d.ts.map +0 -1
- package/dist/routes/document-versions.js +0 -113
- package/dist/routes/documents-by-id.d.ts +0 -5
- package/dist/routes/documents-by-id.d.ts.map +0 -1
- package/dist/routes/documents-by-id.js +0 -187
- package/dist/routes/documents-publish.d.ts +0 -4
- package/dist/routes/documents-publish.d.ts.map +0 -1
- package/dist/routes/documents-query.d.ts +0 -26
- package/dist/routes/documents-query.d.ts.map +0 -1
- package/dist/routes/documents-query.js +0 -103
- package/dist/routes/documents.d.ts +0 -4
- package/dist/routes/documents.d.ts.map +0 -1
- package/dist/routes/index.d.ts +0 -9
- package/dist/routes/index.d.ts.map +0 -1
- package/dist/routes/index.js +0 -14
- package/dist/routes/organizations-by-id.d.ts +0 -5
- package/dist/routes/organizations-by-id.d.ts.map +0 -1
- package/dist/routes/organizations-invitations.d.ts +0 -4
- package/dist/routes/organizations-invitations.d.ts.map +0 -1
- package/dist/routes/organizations-members.d.ts +0 -5
- package/dist/routes/organizations-members.d.ts.map +0 -1
- package/dist/routes/organizations-switch.d.ts +0 -3
- package/dist/routes/organizations-switch.d.ts.map +0 -1
- package/dist/routes/organizations-switch.js +0 -58
- package/dist/routes/organizations.d.ts +0 -4
- package/dist/routes/organizations.d.ts.map +0 -1
- package/dist/routes/organizations.js +0 -116
- package/dist/routes/roles-by-name.d.ts +0 -4
- package/dist/routes/roles-by-name.d.ts.map +0 -1
- package/dist/routes/roles-by-name.js +0 -111
- package/dist/routes/roles.d.ts +0 -4
- package/dist/routes/roles.d.ts.map +0 -1
- package/dist/routes/roles.js +0 -90
- package/dist/routes/schemas-by-type.d.ts +0 -3
- package/dist/routes/schemas-by-type.d.ts.map +0 -1
- package/dist/routes/schemas-by-type.js +0 -26
- package/dist/routes/schemas.d.ts +0 -3
- package/dist/routes/schemas.d.ts.map +0 -1
- package/dist/routes/schemas.js +0 -11
- package/dist/routes/user-preferences.d.ts +0 -4
- package/dist/routes/user-preferences.d.ts.map +0 -1
- package/dist/routes/user-preferences.js +0 -72
- package/dist/routes-exports.d.ts +0 -20
- package/dist/routes-exports.d.ts.map +0 -1
- package/dist/routes-exports.js +0 -26
|
@@ -5,6 +5,16 @@ export declare const updateUserRequest: z.ZodObject<{
|
|
|
5
5
|
export declare const updateUserPreferencesRequest: z.ZodObject<{
|
|
6
6
|
includeChildOrganizations: z.ZodOptional<z.ZodBoolean>;
|
|
7
7
|
}, z.core.$strict>;
|
|
8
|
+
export declare const requestPasswordResetRequest: z.ZodObject<{
|
|
9
|
+
email: z.ZodString;
|
|
10
|
+
redirectTo: z.ZodOptional<z.ZodString>;
|
|
11
|
+
}, z.core.$strip>;
|
|
12
|
+
export declare const resetPasswordRequest: z.ZodObject<{
|
|
13
|
+
token: z.ZodString;
|
|
14
|
+
newPassword: z.ZodString;
|
|
15
|
+
}, z.core.$strip>;
|
|
8
16
|
export type UpdateUserRequest = z.infer<typeof updateUserRequest>;
|
|
9
17
|
export type UpdateUserPreferencesRequest = z.infer<typeof updateUserPreferencesRequest>;
|
|
18
|
+
export type RequestPasswordResetRequest = z.infer<typeof requestPasswordResetRequest>;
|
|
19
|
+
export type ResetPasswordRequest = z.infer<typeof resetPasswordRequest>;
|
|
10
20
|
//# sourceMappingURL=user.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../src/lib/api/schemas/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,iBAAiB;;iBAE5B,CAAC;AAIH,eAAO,MAAM,4BAA4B;;kBAI/B,CAAC;AAIX,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAClE,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../src/lib/api/schemas/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,iBAAiB;;iBAE5B,CAAC;AAIH,eAAO,MAAM,4BAA4B;;kBAI/B,CAAC;AAIX,eAAO,MAAM,2BAA2B;;;iBAGtC,CAAC;AAIH,eAAO,MAAM,oBAAoB;;;iBAG/B,CAAC;AAIH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAClE,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AACxF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AACtF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
|
package/dist/api/schemas/user.js
CHANGED
|
@@ -9,3 +9,13 @@ export const updateUserPreferencesRequest = z
|
|
|
9
9
|
includeChildOrganizations: z.boolean().optional()
|
|
10
10
|
})
|
|
11
11
|
.strict();
|
|
12
|
+
// ---------- POST /user/request-password-reset ----------
|
|
13
|
+
export const requestPasswordResetRequest = z.object({
|
|
14
|
+
email: z.string().email(),
|
|
15
|
+
redirectTo: z.string().optional()
|
|
16
|
+
});
|
|
17
|
+
// ---------- POST /user/reset-password ----------
|
|
18
|
+
export const resetPasswordRequest = z.object({
|
|
19
|
+
token: z.string().min(1),
|
|
20
|
+
newPassword: z.string().min(1)
|
|
21
|
+
});
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/lib/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/lib/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAa5D"}
|
package/dist/config.js
CHANGED
package/dist/hooks.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Handle } from '@sveltejs/kit';
|
|
2
|
+
import type { Hono } from 'hono';
|
|
2
3
|
import type { CMSConfig } from './types/index.js';
|
|
3
4
|
import type { DatabaseAdapter } from './db/index.js';
|
|
4
5
|
import type { AssetService } from './services/asset-service.js';
|
|
@@ -9,6 +10,7 @@ import type { GraphQLSettings } from './graphql/index.js';
|
|
|
9
10
|
import { RolesService } from './services/roles-service.js';
|
|
10
11
|
import { CMSEngine } from './engine.js';
|
|
11
12
|
import { type LocalAPI } from './local-api/index.js';
|
|
13
|
+
import { type AphexEnv } from './server/api/index.js';
|
|
12
14
|
export interface CMSInstances {
|
|
13
15
|
config: CMSConfig;
|
|
14
16
|
assetService: AssetService;
|
|
@@ -20,10 +22,7 @@ export interface CMSInstances {
|
|
|
20
22
|
rolesService: RolesService;
|
|
21
23
|
auth?: AuthProvider;
|
|
22
24
|
graphqlSettings?: GraphQLSettings | null;
|
|
23
|
-
|
|
24
|
-
handler: (event: any) => Promise<Response> | Response;
|
|
25
|
-
pluginName: string;
|
|
26
|
-
}>;
|
|
25
|
+
apiApp: Hono<AphexEnv>;
|
|
27
26
|
}
|
|
28
27
|
export declare function createCMSHook(config: CMSConfig): Handle;
|
|
29
28
|
//# sourceMappingURL=hooks.d.ts.map
|
package/dist/hooks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/lib/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/lib/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAKvD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAa,SAAS,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAIN,KAAK,QAAQ,EACb,MAAM,oBAAoB,CAAC;AAG5B,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,SAAS,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,cAAc,CAAC;IAC/B,eAAe,EAAE,eAAe,CAAC;IACjC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACnC,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;CACvB;AA0BD,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAgJvD"}
|
package/dist/hooks.js
CHANGED
|
@@ -5,6 +5,7 @@ import { AssetService as AssetServiceClass } from './services/asset-service.js';
|
|
|
5
5
|
import { RolesService } from './services/roles-service.js';
|
|
6
6
|
import { createCMS } from './engine.js';
|
|
7
7
|
import { createLocalAPI } from './local-api/index.js';
|
|
8
|
+
import { createAphexApi, mountAphexBuiltins, toHonoHandler } from './server/api/index.js';
|
|
8
9
|
let cmsInstances = null;
|
|
9
10
|
let schemaError = null;
|
|
10
11
|
let initPromise = null;
|
|
@@ -26,51 +27,6 @@ function createDefaultStorageAdapter() {
|
|
|
26
27
|
baseUrl: '' // No direct URL - all access through /assets/{id}/{filename}
|
|
27
28
|
});
|
|
28
29
|
}
|
|
29
|
-
/**
|
|
30
|
-
* Resolves a plugin configuration to an actual CMSPlugin instance
|
|
31
|
-
* Supports three formats:
|
|
32
|
-
* 1. String: 'my-plugin' - dynamically imports default export
|
|
33
|
-
* 2. Object with name/options: { name: 'my-plugin', options: {...} }
|
|
34
|
-
* 3. Already instantiated plugin: CMSPlugin object
|
|
35
|
-
*/
|
|
36
|
-
async function resolvePlugin(pluginConfig) {
|
|
37
|
-
// Format 3: Already an instantiated plugin
|
|
38
|
-
if (typeof pluginConfig === 'object' && 'install' in pluginConfig) {
|
|
39
|
-
return pluginConfig;
|
|
40
|
-
}
|
|
41
|
-
// Format 1: String reference
|
|
42
|
-
if (typeof pluginConfig === 'string') {
|
|
43
|
-
try {
|
|
44
|
-
const pluginModule = await import(/* @vite-ignore */ pluginConfig);
|
|
45
|
-
const plugin = pluginModule.default || pluginModule;
|
|
46
|
-
if (typeof plugin === 'function') {
|
|
47
|
-
// If it's a factory function, call it with no options
|
|
48
|
-
return plugin();
|
|
49
|
-
}
|
|
50
|
-
return plugin;
|
|
51
|
-
}
|
|
52
|
-
catch (error) {
|
|
53
|
-
throw new Error(`Failed to load plugin "${pluginConfig}". Make sure it's installed: npm install ${pluginConfig}\nError: ${error}`);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
// Format 2: Object with name and options
|
|
57
|
-
if (typeof pluginConfig === 'object' && 'name' in pluginConfig) {
|
|
58
|
-
try {
|
|
59
|
-
const pluginModule = await import(/* @vite-ignore */ pluginConfig.name);
|
|
60
|
-
const pluginFactory = pluginModule.default || pluginModule;
|
|
61
|
-
if (typeof pluginFactory === 'function') {
|
|
62
|
-
// Call factory with options
|
|
63
|
-
return pluginFactory(pluginConfig.options || {});
|
|
64
|
-
}
|
|
65
|
-
// If not a factory, return as-is (assuming it's already a plugin)
|
|
66
|
-
return pluginFactory;
|
|
67
|
-
}
|
|
68
|
-
catch (error) {
|
|
69
|
-
throw new Error(`Failed to load plugin "${pluginConfig.name}". Make sure it's installed: npm install ${pluginConfig.name}\nError: ${error}`);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
throw new Error(`Invalid plugin configuration: ${JSON.stringify(pluginConfig)}`);
|
|
73
|
-
}
|
|
74
30
|
export function createCMSHook(config) {
|
|
75
31
|
if (!config) {
|
|
76
32
|
throw new Error('[CMS] createCMSHook received an undefined config. ' +
|
|
@@ -112,6 +68,12 @@ export function createCMSHook(config) {
|
|
|
112
68
|
const rolesService = new RolesService(databaseAdapter, config.cache ?? null);
|
|
113
69
|
// Initialize Local API (unified operations layer)
|
|
114
70
|
const localAPI = createLocalAPI(config, databaseAdapter);
|
|
71
|
+
// Build the Hono API app shell. User middleware/overrides register
|
|
72
|
+
// FIRST (so they sit ahead of built-ins in the chain), then we mount
|
|
73
|
+
// the built-in routes, then GraphQL.
|
|
74
|
+
const apiApp = createAphexApi();
|
|
75
|
+
config.api?.(apiApp);
|
|
76
|
+
mountAphexBuiltins(apiApp);
|
|
115
77
|
// Initialize schemas with validation
|
|
116
78
|
try {
|
|
117
79
|
await cmsEngine.initialize();
|
|
@@ -120,44 +82,6 @@ export function createCMSHook(config) {
|
|
|
120
82
|
cmsLogger.error('[CMS]', 'Failed to initialize:', error);
|
|
121
83
|
schemaError = error instanceof Error ? error : new Error(String(error));
|
|
122
84
|
}
|
|
123
|
-
// Build plugin route map and install plugins (do this ONCE at startup)
|
|
124
|
-
const pluginRoutes = new Map();
|
|
125
|
-
// Resolve and install plugins
|
|
126
|
-
if (config.plugins && config.plugins.length > 0) {
|
|
127
|
-
for (const pluginConfig of config.plugins) {
|
|
128
|
-
try {
|
|
129
|
-
// Resolve plugin config to actual CMSPlugin instance (may involve dynamic import)
|
|
130
|
-
const plugin = await resolvePlugin(pluginConfig);
|
|
131
|
-
cmsLogger.info('[CMS]', `Loading plugin: ${plugin.name}@${plugin.version}`);
|
|
132
|
-
// Build route map before installation
|
|
133
|
-
if (plugin.routes) {
|
|
134
|
-
for (const [path, handler] of Object.entries(plugin.routes)) {
|
|
135
|
-
pluginRoutes.set(path, { handler, pluginName: plugin.name });
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
// Create temporary cmsInstances for installation (will be replaced below)
|
|
139
|
-
const tempInstances = {
|
|
140
|
-
config,
|
|
141
|
-
databaseAdapter: databaseAdapter,
|
|
142
|
-
assetService: assetService,
|
|
143
|
-
storageAdapter: storageAdapter,
|
|
144
|
-
emailAdapter: emailAdapter,
|
|
145
|
-
cmsEngine: cmsEngine,
|
|
146
|
-
localAPI: localAPI,
|
|
147
|
-
rolesService,
|
|
148
|
-
auth: config.auth?.provider,
|
|
149
|
-
pluginRoutes
|
|
150
|
-
};
|
|
151
|
-
// Install the plugin
|
|
152
|
-
cmsLogger.info('[CMS]', `Installing plugin: ${plugin.name}`);
|
|
153
|
-
await plugin.install(tempInstances);
|
|
154
|
-
}
|
|
155
|
-
catch (error) {
|
|
156
|
-
cmsLogger.error('[CMS]', 'Failed to load/install plugin:', error);
|
|
157
|
-
throw error;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
85
|
// Initialize built-in GraphQL (enabled by default, opt-out with graphql: false)
|
|
162
86
|
let graphqlSettings = null;
|
|
163
87
|
if (config.graphql !== false) {
|
|
@@ -174,15 +98,20 @@ export function createCMSHook(config) {
|
|
|
174
98
|
localAPI,
|
|
175
99
|
rolesService,
|
|
176
100
|
auth: config.auth?.provider,
|
|
177
|
-
|
|
101
|
+
apiApp
|
|
178
102
|
}, config.schemaTypes, graphqlConfig);
|
|
179
|
-
// Register GraphQL
|
|
103
|
+
// Register GraphQL directly on the Hono app. The Yoga handler
|
|
104
|
+
// internally distinguishes GET (GraphiQL UI) from POST (queries),
|
|
105
|
+
// so we mount with `app.all()` and let it route by method.
|
|
106
|
+
//
|
|
107
|
+
// Path is normalized to be relative to the `/api` basePath:
|
|
108
|
+
// e.g. config path "/api/graphql" → mount at "/graphql".
|
|
180
109
|
const rawPath = graphqlConfig.path ?? '/api/graphql';
|
|
181
|
-
const
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
110
|
+
const fullPath = rawPath.startsWith('/') ? rawPath : `/${rawPath}`;
|
|
111
|
+
const honoPath = fullPath.startsWith('/api')
|
|
112
|
+
? fullPath.slice('/api'.length) || '/'
|
|
113
|
+
: fullPath;
|
|
114
|
+
apiApp.all(honoPath, toHonoHandler(result.handler));
|
|
186
115
|
graphqlSettings = result.settings;
|
|
187
116
|
}
|
|
188
117
|
catch (error) {
|
|
@@ -201,7 +130,7 @@ export function createCMSHook(config) {
|
|
|
201
130
|
rolesService,
|
|
202
131
|
auth: config.auth?.provider,
|
|
203
132
|
graphqlSettings,
|
|
204
|
-
|
|
133
|
+
apiApp
|
|
205
134
|
};
|
|
206
135
|
resolveInit();
|
|
207
136
|
}
|
|
@@ -217,14 +146,6 @@ export function createCMSHook(config) {
|
|
|
217
146
|
if (authResponse)
|
|
218
147
|
return authResponse;
|
|
219
148
|
}
|
|
220
|
-
// Check if a plugin handles this route (O(1) lookup)
|
|
221
|
-
if (cmsInstances.pluginRoutes && cmsInstances.pluginRoutes.size > 0) {
|
|
222
|
-
const pluginRoute = cmsInstances.pluginRoutes.get(event.url.pathname);
|
|
223
|
-
if (pluginRoute) {
|
|
224
|
-
cmsLogger.debug('[CMS]', `Plugin ${pluginRoute.pluginName} handling route: ${event.url.pathname}`);
|
|
225
|
-
return pluginRoute.handler(event);
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
149
|
return resolve(event);
|
|
229
150
|
};
|
|
230
151
|
}
|
|
@@ -5,6 +5,16 @@ export declare const updateUserRequest: z.ZodObject<{
|
|
|
5
5
|
export declare const updateUserPreferencesRequest: z.ZodObject<{
|
|
6
6
|
includeChildOrganizations: z.ZodOptional<z.ZodBoolean>;
|
|
7
7
|
}, z.core.$strict>;
|
|
8
|
+
export declare const requestPasswordResetRequest: z.ZodObject<{
|
|
9
|
+
email: z.ZodString;
|
|
10
|
+
redirectTo: z.ZodOptional<z.ZodString>;
|
|
11
|
+
}, z.core.$strip>;
|
|
12
|
+
export declare const resetPasswordRequest: z.ZodObject<{
|
|
13
|
+
token: z.ZodString;
|
|
14
|
+
newPassword: z.ZodString;
|
|
15
|
+
}, z.core.$strip>;
|
|
8
16
|
export type UpdateUserRequest = z.infer<typeof updateUserRequest>;
|
|
9
17
|
export type UpdateUserPreferencesRequest = z.infer<typeof updateUserPreferencesRequest>;
|
|
18
|
+
export type RequestPasswordResetRequest = z.infer<typeof requestPasswordResetRequest>;
|
|
19
|
+
export type ResetPasswordRequest = z.infer<typeof resetPasswordRequest>;
|
|
10
20
|
//# sourceMappingURL=user.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../src/lib/api/schemas/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,iBAAiB;;iBAE5B,CAAC;AAIH,eAAO,MAAM,4BAA4B;;kBAI/B,CAAC;AAIX,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAClE,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../src/lib/api/schemas/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,iBAAiB;;iBAE5B,CAAC;AAIH,eAAO,MAAM,4BAA4B;;kBAI/B,CAAC;AAIX,eAAO,MAAM,2BAA2B;;;iBAGtC,CAAC;AAIH,eAAO,MAAM,oBAAoB;;;iBAG/B,CAAC;AAIH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAClE,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AACxF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AACtF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
|
|
@@ -9,4 +9,14 @@ export const updateUserPreferencesRequest = z
|
|
|
9
9
|
includeChildOrganizations: z.boolean().optional()
|
|
10
10
|
})
|
|
11
11
|
.strict();
|
|
12
|
+
// ---------- POST /user/request-password-reset ----------
|
|
13
|
+
export const requestPasswordResetRequest = z.object({
|
|
14
|
+
email: z.string().email(),
|
|
15
|
+
redirectTo: z.string().optional()
|
|
16
|
+
});
|
|
17
|
+
// ---------- POST /user/reset-password ----------
|
|
18
|
+
export const resetPasswordRequest = z.object({
|
|
19
|
+
token: z.string().min(1),
|
|
20
|
+
newPassword: z.string().min(1)
|
|
21
|
+
});
|
|
12
22
|
//# sourceMappingURL=user.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../src/lib/api/schemas/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,oCAAoC;AAEpC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACvB,CAAC,CAAC;AAEH,mDAAmD;AAEnD,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC;KAC3C,MAAM,CAAC;IACP,yBAAyB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACjD,CAAC;KACD,MAAM,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../src/lib/api/schemas/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,oCAAoC;AAEpC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACvB,CAAC,CAAC;AAEH,mDAAmD;AAEnD,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC;KAC3C,MAAM,CAAC;IACP,yBAAyB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACjD,CAAC;KACD,MAAM,EAAE,CAAC;AAEX,0DAA0D;AAE1D,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;IACzB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAEH,kDAAkD;AAElD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC9B,CAAC,CAAC"}
|
package/dist/lib/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAa5D"}
|
package/dist/lib/config.js
CHANGED
package/dist/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,eAAe,CAAC,MAAiB;IAChD,OAAO;QACN,yEAAyE;QACzE,GAAG,MAAM;QACT,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI,EAAE,kCAAkC;QACnE,aAAa,EAAE;YACd,QAAQ,EAAE;gBACT,KAAK,EAAE,WAAW;gBAClB,GAAG,MAAM,CAAC,aAAa,EAAE,QAAQ;aACjC;YACD,GAAG,MAAM,CAAC,aAAa;SACvB;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,eAAe,CAAC,MAAiB;IAChD,OAAO;QACN,yEAAyE;QACzE,GAAG,MAAM;QACT,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI,EAAE,kCAAkC;QACnE,aAAa,EAAE;YACd,QAAQ,EAAE;gBACT,KAAK,EAAE,WAAW;gBAClB,GAAG,MAAM,CAAC,aAAa,EAAE,QAAQ;aACjC;YACD,GAAG,MAAM,CAAC,aAAa;SACvB;KACD,CAAC;AACH,CAAC"}
|
package/dist/lib/hooks.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Handle } from '@sveltejs/kit';
|
|
2
|
+
import type { Hono } from 'hono';
|
|
2
3
|
import type { CMSConfig } from './types/index.js';
|
|
3
4
|
import type { DatabaseAdapter } from './db/index.js';
|
|
4
5
|
import type { AssetService } from './services/asset-service.js';
|
|
@@ -9,6 +10,7 @@ import type { GraphQLSettings } from './graphql/index.js';
|
|
|
9
10
|
import { RolesService } from './services/roles-service.js';
|
|
10
11
|
import { CMSEngine } from './engine.js';
|
|
11
12
|
import { type LocalAPI } from './local-api/index.js';
|
|
13
|
+
import { type AphexEnv } from './server/api/index.js';
|
|
12
14
|
export interface CMSInstances {
|
|
13
15
|
config: CMSConfig;
|
|
14
16
|
assetService: AssetService;
|
|
@@ -20,10 +22,7 @@ export interface CMSInstances {
|
|
|
20
22
|
rolesService: RolesService;
|
|
21
23
|
auth?: AuthProvider;
|
|
22
24
|
graphqlSettings?: GraphQLSettings | null;
|
|
23
|
-
|
|
24
|
-
handler: (event: any) => Promise<Response> | Response;
|
|
25
|
-
pluginName: string;
|
|
26
|
-
}>;
|
|
25
|
+
apiApp: Hono<AphexEnv>;
|
|
27
26
|
}
|
|
28
27
|
export declare function createCMSHook(config: CMSConfig): Handle;
|
|
29
28
|
//# sourceMappingURL=hooks.d.ts.map
|
package/dist/lib/hooks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/lib/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/lib/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAKvD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAa,SAAS,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAIN,KAAK,QAAQ,EACb,MAAM,oBAAoB,CAAC;AAG5B,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,SAAS,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,cAAc,CAAC;IAC/B,eAAe,EAAE,eAAe,CAAC;IACjC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACnC,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;CACvB;AA0BD,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAgJvD"}
|
package/dist/lib/hooks.js
CHANGED
|
@@ -5,6 +5,7 @@ import { AssetService as AssetServiceClass } from './services/asset-service.js';
|
|
|
5
5
|
import { RolesService } from './services/roles-service.js';
|
|
6
6
|
import { createCMS } from './engine.js';
|
|
7
7
|
import { createLocalAPI } from './local-api/index.js';
|
|
8
|
+
import { createAphexApi, mountAphexBuiltins, toHonoHandler } from './server/api/index.js';
|
|
8
9
|
let cmsInstances = null;
|
|
9
10
|
let schemaError = null;
|
|
10
11
|
let initPromise = null;
|
|
@@ -26,51 +27,6 @@ function createDefaultStorageAdapter() {
|
|
|
26
27
|
baseUrl: '' // No direct URL - all access through /assets/{id}/{filename}
|
|
27
28
|
});
|
|
28
29
|
}
|
|
29
|
-
/**
|
|
30
|
-
* Resolves a plugin configuration to an actual CMSPlugin instance
|
|
31
|
-
* Supports three formats:
|
|
32
|
-
* 1. String: 'my-plugin' - dynamically imports default export
|
|
33
|
-
* 2. Object with name/options: { name: 'my-plugin', options: {...} }
|
|
34
|
-
* 3. Already instantiated plugin: CMSPlugin object
|
|
35
|
-
*/
|
|
36
|
-
async function resolvePlugin(pluginConfig) {
|
|
37
|
-
// Format 3: Already an instantiated plugin
|
|
38
|
-
if (typeof pluginConfig === 'object' && 'install' in pluginConfig) {
|
|
39
|
-
return pluginConfig;
|
|
40
|
-
}
|
|
41
|
-
// Format 1: String reference
|
|
42
|
-
if (typeof pluginConfig === 'string') {
|
|
43
|
-
try {
|
|
44
|
-
const pluginModule = await import(/* @vite-ignore */ pluginConfig);
|
|
45
|
-
const plugin = pluginModule.default || pluginModule;
|
|
46
|
-
if (typeof plugin === 'function') {
|
|
47
|
-
// If it's a factory function, call it with no options
|
|
48
|
-
return plugin();
|
|
49
|
-
}
|
|
50
|
-
return plugin;
|
|
51
|
-
}
|
|
52
|
-
catch (error) {
|
|
53
|
-
throw new Error(`Failed to load plugin "${pluginConfig}". Make sure it's installed: npm install ${pluginConfig}\nError: ${error}`);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
// Format 2: Object with name and options
|
|
57
|
-
if (typeof pluginConfig === 'object' && 'name' in pluginConfig) {
|
|
58
|
-
try {
|
|
59
|
-
const pluginModule = await import(/* @vite-ignore */ pluginConfig.name);
|
|
60
|
-
const pluginFactory = pluginModule.default || pluginModule;
|
|
61
|
-
if (typeof pluginFactory === 'function') {
|
|
62
|
-
// Call factory with options
|
|
63
|
-
return pluginFactory(pluginConfig.options || {});
|
|
64
|
-
}
|
|
65
|
-
// If not a factory, return as-is (assuming it's already a plugin)
|
|
66
|
-
return pluginFactory;
|
|
67
|
-
}
|
|
68
|
-
catch (error) {
|
|
69
|
-
throw new Error(`Failed to load plugin "${pluginConfig.name}". Make sure it's installed: npm install ${pluginConfig.name}\nError: ${error}`);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
throw new Error(`Invalid plugin configuration: ${JSON.stringify(pluginConfig)}`);
|
|
73
|
-
}
|
|
74
30
|
export function createCMSHook(config) {
|
|
75
31
|
if (!config) {
|
|
76
32
|
throw new Error('[CMS] createCMSHook received an undefined config. ' +
|
|
@@ -112,6 +68,12 @@ export function createCMSHook(config) {
|
|
|
112
68
|
const rolesService = new RolesService(databaseAdapter, config.cache ?? null);
|
|
113
69
|
// Initialize Local API (unified operations layer)
|
|
114
70
|
const localAPI = createLocalAPI(config, databaseAdapter);
|
|
71
|
+
// Build the Hono API app shell. User middleware/overrides register
|
|
72
|
+
// FIRST (so they sit ahead of built-ins in the chain), then we mount
|
|
73
|
+
// the built-in routes, then GraphQL.
|
|
74
|
+
const apiApp = createAphexApi();
|
|
75
|
+
config.api?.(apiApp);
|
|
76
|
+
mountAphexBuiltins(apiApp);
|
|
115
77
|
// Initialize schemas with validation
|
|
116
78
|
try {
|
|
117
79
|
await cmsEngine.initialize();
|
|
@@ -120,44 +82,6 @@ export function createCMSHook(config) {
|
|
|
120
82
|
cmsLogger.error('[CMS]', 'Failed to initialize:', error);
|
|
121
83
|
schemaError = error instanceof Error ? error : new Error(String(error));
|
|
122
84
|
}
|
|
123
|
-
// Build plugin route map and install plugins (do this ONCE at startup)
|
|
124
|
-
const pluginRoutes = new Map();
|
|
125
|
-
// Resolve and install plugins
|
|
126
|
-
if (config.plugins && config.plugins.length > 0) {
|
|
127
|
-
for (const pluginConfig of config.plugins) {
|
|
128
|
-
try {
|
|
129
|
-
// Resolve plugin config to actual CMSPlugin instance (may involve dynamic import)
|
|
130
|
-
const plugin = await resolvePlugin(pluginConfig);
|
|
131
|
-
cmsLogger.info('[CMS]', `Loading plugin: ${plugin.name}@${plugin.version}`);
|
|
132
|
-
// Build route map before installation
|
|
133
|
-
if (plugin.routes) {
|
|
134
|
-
for (const [path, handler] of Object.entries(plugin.routes)) {
|
|
135
|
-
pluginRoutes.set(path, { handler, pluginName: plugin.name });
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
// Create temporary cmsInstances for installation (will be replaced below)
|
|
139
|
-
const tempInstances = {
|
|
140
|
-
config,
|
|
141
|
-
databaseAdapter: databaseAdapter,
|
|
142
|
-
assetService: assetService,
|
|
143
|
-
storageAdapter: storageAdapter,
|
|
144
|
-
emailAdapter: emailAdapter,
|
|
145
|
-
cmsEngine: cmsEngine,
|
|
146
|
-
localAPI: localAPI,
|
|
147
|
-
rolesService,
|
|
148
|
-
auth: config.auth?.provider,
|
|
149
|
-
pluginRoutes
|
|
150
|
-
};
|
|
151
|
-
// Install the plugin
|
|
152
|
-
cmsLogger.info('[CMS]', `Installing plugin: ${plugin.name}`);
|
|
153
|
-
await plugin.install(tempInstances);
|
|
154
|
-
}
|
|
155
|
-
catch (error) {
|
|
156
|
-
cmsLogger.error('[CMS]', 'Failed to load/install plugin:', error);
|
|
157
|
-
throw error;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
85
|
// Initialize built-in GraphQL (enabled by default, opt-out with graphql: false)
|
|
162
86
|
let graphqlSettings = null;
|
|
163
87
|
if (config.graphql !== false) {
|
|
@@ -174,15 +98,20 @@ export function createCMSHook(config) {
|
|
|
174
98
|
localAPI,
|
|
175
99
|
rolesService,
|
|
176
100
|
auth: config.auth?.provider,
|
|
177
|
-
|
|
101
|
+
apiApp
|
|
178
102
|
}, config.schemaTypes, graphqlConfig);
|
|
179
|
-
// Register GraphQL
|
|
103
|
+
// Register GraphQL directly on the Hono app. The Yoga handler
|
|
104
|
+
// internally distinguishes GET (GraphiQL UI) from POST (queries),
|
|
105
|
+
// so we mount with `app.all()` and let it route by method.
|
|
106
|
+
//
|
|
107
|
+
// Path is normalized to be relative to the `/api` basePath:
|
|
108
|
+
// e.g. config path "/api/graphql" → mount at "/graphql".
|
|
180
109
|
const rawPath = graphqlConfig.path ?? '/api/graphql';
|
|
181
|
-
const
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
110
|
+
const fullPath = rawPath.startsWith('/') ? rawPath : `/${rawPath}`;
|
|
111
|
+
const honoPath = fullPath.startsWith('/api')
|
|
112
|
+
? fullPath.slice('/api'.length) || '/'
|
|
113
|
+
: fullPath;
|
|
114
|
+
apiApp.all(honoPath, toHonoHandler(result.handler));
|
|
186
115
|
graphqlSettings = result.settings;
|
|
187
116
|
}
|
|
188
117
|
catch (error) {
|
|
@@ -201,7 +130,7 @@ export function createCMSHook(config) {
|
|
|
201
130
|
rolesService,
|
|
202
131
|
auth: config.auth?.provider,
|
|
203
132
|
graphqlSettings,
|
|
204
|
-
|
|
133
|
+
apiApp
|
|
205
134
|
};
|
|
206
135
|
resolveInit();
|
|
207
136
|
}
|
|
@@ -217,14 +146,6 @@ export function createCMSHook(config) {
|
|
|
217
146
|
if (authResponse)
|
|
218
147
|
return authResponse;
|
|
219
148
|
}
|
|
220
|
-
// Check if a plugin handles this route (O(1) lookup)
|
|
221
|
-
if (cmsInstances.pluginRoutes && cmsInstances.pluginRoutes.size > 0) {
|
|
222
|
-
const pluginRoute = cmsInstances.pluginRoutes.get(event.url.pathname);
|
|
223
|
-
if (pluginRoute) {
|
|
224
|
-
cmsLogger.debug('[CMS]', `Plugin ${pluginRoute.pluginName} handling route: ${event.url.pathname}`);
|
|
225
|
-
return pluginRoute.handler(event);
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
149
|
return resolve(event);
|
|
229
150
|
};
|
|
230
151
|
}
|
package/dist/lib/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/lib/hooks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/lib/hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Hono } from 'hono';
|
|
2
|
+
import type { CMSInstances } from '../../hooks.js';
|
|
3
|
+
import type { Auth } from '../../types/auth.js';
|
|
4
|
+
/**
|
|
5
|
+
* Hono environment for the Aphex API.
|
|
6
|
+
*
|
|
7
|
+
* Variables on `c.var`:
|
|
8
|
+
* - `aphexCMS` — the singleton CMS service container (db, storage, services).
|
|
9
|
+
* - `auth` — the resolved auth principal for this request, or null if anonymous.
|
|
10
|
+
*
|
|
11
|
+
* These are populated by the SvelteKit catch-all, which invokes
|
|
12
|
+
* `app.fetch(request, { aphexCMS, auth })` and the bridge middleware below
|
|
13
|
+
* lifts them onto `c.var`.
|
|
14
|
+
*/
|
|
15
|
+
export type AphexEnv = {
|
|
16
|
+
Variables: {
|
|
17
|
+
aphexCMS: CMSInstances;
|
|
18
|
+
auth: Auth | null;
|
|
19
|
+
};
|
|
20
|
+
Bindings: {
|
|
21
|
+
aphexCMS: CMSInstances;
|
|
22
|
+
auth: Auth | null;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Build the Aphex API Hono app shell.
|
|
27
|
+
*
|
|
28
|
+
* Returns a Hono app with `/api` basePath and the bridge middleware that
|
|
29
|
+
* lifts `app.fetch(req, env)` values onto `c.var`. Built-in routes are NOT
|
|
30
|
+
* mounted yet — call `mountAphexBuiltins(app)` after registering any user
|
|
31
|
+
* middleware/overrides (Hono is registration-order-strict).
|
|
32
|
+
*/
|
|
33
|
+
export declare function createAphexApi(): import("hono/hono-base").HonoBase<AphexEnv, import("hono/types").BlankSchema, "/api", "/api">;
|
|
34
|
+
/**
|
|
35
|
+
* Mount cms-core's built-in resource routes onto an Aphex API app.
|
|
36
|
+
*
|
|
37
|
+
* Called by `createCMSHook` after `config.api?.(app)` runs, so user-provided
|
|
38
|
+
* middleware (e.g. an email-sending wrap on `/organizations/invitations`)
|
|
39
|
+
* registers ahead of the built-in handler and gets the chance to wrap it.
|
|
40
|
+
*/
|
|
41
|
+
export declare function mountAphexBuiltins(app: Hono<AphexEnv>): void;
|
|
42
|
+
export type ApiRoutes = ReturnType<typeof createAphexApi>;
|
|
43
|
+
/**
|
|
44
|
+
* Adapter: wrap a SvelteKit-style `RequestHandler` so it can be mounted
|
|
45
|
+
* onto a Hono router.
|
|
46
|
+
*
|
|
47
|
+
* Used for handlers that already exist in SK form (e.g. the built-in
|
|
48
|
+
* GraphQL Yoga app) and don't need to be rewritten just to flow through
|
|
49
|
+
* the Hono catch-all. We synthesize the minimum `event` shape those
|
|
50
|
+
* handlers actually read: `request` + `locals.{aphexCMS,auth}` + `params`
|
|
51
|
+
* + `url`. If a future SK handler reaches for `cookies`, `setHeaders`, or
|
|
52
|
+
* `getClientAddress`, extend the synthesized event accordingly.
|
|
53
|
+
*/
|
|
54
|
+
export declare function toHonoHandler(skHandler: (event: any) => Promise<Response> | Response): (c: import("hono").Context<AphexEnv>) => Promise<Response>;
|
|
55
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/server/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAoB7C;;;;;;;;;;GAUG;AACH,MAAM,MAAM,QAAQ,GAAG;IACtB,SAAS,EAAE;QACV,QAAQ,EAAE,YAAY,CAAC;QACvB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;KAClB,CAAC;IACF,QAAQ,EAAE;QACT,QAAQ,EAAE,YAAY,CAAC;QACvB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;KAClB,CAAC;CACF,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,cAAc,kGAY7B;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,QAoCrD;AAED,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC5B,SAAS,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,IAEzC,GAAG,OAAO,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,uBAejD"}
|