@aphexcms/cms-core 3.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/index.d.ts +9 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +43 -4
- 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/index.d.ts +9 -1
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +43 -4
- package/dist/lib/index.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
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,10 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './types/index.js';
|
|
2
|
+
export type { SidebarUser, SidebarNavItem, SidebarBranding, SidebarData } from './types/sidebar.js';
|
|
3
|
+
export * from './field-validation/rule.js';
|
|
4
|
+
export * from './field-validation/utils.js';
|
|
5
|
+
export { createContentHash, hasUnpublishedChanges } from './utils/content-hash.js';
|
|
6
|
+
export * from './schema-utils/index.js';
|
|
7
|
+
export * from './utils/index.js';
|
|
8
|
+
export * from './api/index.js';
|
|
9
|
+
export type { ApiResponse } from './api/index.js';
|
|
2
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":"AAkBA,cAAc,eAAe,CAAC;AAC9B,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGjG,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AAGzC,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAGhF,cAAc,sBAAsB,CAAC;AAGrC,cAAc,eAAe,CAAC;AAG9B,cAAc,aAAa,CAAC;AAC5B,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,43 @@
|
|
|
1
|
-
// Aphex CMS Core - Main exports
|
|
2
|
-
//
|
|
3
|
-
//
|
|
4
|
-
|
|
1
|
+
// Aphex CMS Core - Main exports
|
|
2
|
+
//
|
|
3
|
+
// This barrel is the "universal" entry point: every export here is safe to
|
|
4
|
+
// resolve from Node ESM as well as Vite/SvelteKit — i.e. no `.svelte`
|
|
5
|
+
// component files. That matters because ES-module `export *` eagerly links
|
|
6
|
+
// every re-export, and if any server-side import path hits a raw `.svelte`
|
|
7
|
+
// re-export, Node's native loader throws `ERR_UNKNOWN_FILE_EXTENSION` for
|
|
8
|
+
// anything it happens to resolve through native ESM (SSR edge cases,
|
|
9
|
+
// loader-hook workers, etc).
|
|
10
|
+
//
|
|
11
|
+
// If you need the Svelte admin components (`DocumentEditor`, `AdminApp`,
|
|
12
|
+
// `Sidebar`, field components, `ConfirmDialogHost`, `PermissionsDebug`…)
|
|
13
|
+
// import them from `@aphexcms/cms-core/client` instead.
|
|
14
|
+
//
|
|
15
|
+
// For server-only functionality (adapters, hooks, engine, routes), import
|
|
16
|
+
// from `@aphexcms/cms-core/server`.
|
|
17
|
+
// Core types (shared between client and server)
|
|
18
|
+
export * from './types/index.js';
|
|
19
|
+
// Field validation
|
|
20
|
+
export * from './field-validation/rule.js';
|
|
21
|
+
export * from './field-validation/utils.js';
|
|
22
|
+
// Content hashing utilities
|
|
23
|
+
export { createContentHash, hasUnpublishedChanges } from './utils/content-hash.js';
|
|
24
|
+
// Schema utilities
|
|
25
|
+
export * from './schema-utils/index.js';
|
|
26
|
+
// General utility functions (logger, image URL builder, etc)
|
|
27
|
+
export * from './utils/index.js';
|
|
28
|
+
// Unified API client
|
|
29
|
+
export * from './api/index.js';
|
|
30
|
+
// NOTE: The following are intentionally NOT re-exported from this root
|
|
31
|
+
// barrel. They're all Svelte runtime constructs — rune modules that use
|
|
32
|
+
// `$state` or real `.svelte` components — and re-exporting them here would
|
|
33
|
+
// transitively pull Svelte-only code through every import of
|
|
34
|
+
// `@aphexcms/cms-core`, breaking Node-side usage (SSR module evaluation,
|
|
35
|
+
// loader hooks, etc). Import from their dedicated subpaths instead:
|
|
36
|
+
//
|
|
37
|
+
// import { setSchemaContext, getSchemaContext } from '@aphexcms/cms-core/client';
|
|
38
|
+
// import { setPermissionsContext, usePermissions } from '@aphexcms/cms-core/client';
|
|
39
|
+
// import { confirmDialog } from '@aphexcms/cms-core/client';
|
|
40
|
+
// import { toast } from 'svelte-sonner';
|
|
41
|
+
//
|
|
42
|
+
// Only use the root barrel (`@aphexcms/cms-core`) for server-safe utilities,
|
|
43
|
+
// types, and pure JS helpers.
|
|
@@ -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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"}
|