@sqrzro/addon-admins 4.0.0-alpha.10

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.
Files changed (121) hide show
  1. package/LICENSE +5 -0
  2. package/dist/DEPRECATED_addon/config.d.ts +10 -0
  3. package/dist/DEPRECATED_addon/config.d.ts.map +1 -0
  4. package/dist/DEPRECATED_addon/config.js +11 -0
  5. package/dist/DEPRECATED_addon/defaults.d.ts +6 -0
  6. package/dist/DEPRECATED_addon/defaults.d.ts.map +1 -0
  7. package/dist/DEPRECATED_addon/defaults.js +6 -0
  8. package/dist/DEPRECATED_addon/index.d.ts +6 -0
  9. package/dist/DEPRECATED_addon/index.d.ts.map +1 -0
  10. package/dist/DEPRECATED_addon/index.js +9 -0
  11. package/dist/DEPRECATED_addon/interfaces.d.ts +8 -0
  12. package/dist/DEPRECATED_addon/interfaces.d.ts.map +1 -0
  13. package/dist/DEPRECATED_addon/interfaces.js +1 -0
  14. package/dist/addon/config.d.ts +10 -0
  15. package/dist/addon/config.d.ts.map +1 -0
  16. package/dist/addon/config.js +11 -0
  17. package/dist/addon/defaults.d.ts +6 -0
  18. package/dist/addon/defaults.d.ts.map +1 -0
  19. package/dist/addon/defaults.js +6 -0
  20. package/dist/addon/index.d.ts +6 -0
  21. package/dist/addon/index.d.ts.map +1 -0
  22. package/dist/addon/index.js +9 -0
  23. package/dist/addon/interfaces.d.ts +8 -0
  24. package/dist/addon/interfaces.d.ts.map +1 -0
  25. package/dist/addon/interfaces.js +1 -0
  26. package/dist/addon.d.ts +4 -0
  27. package/dist/addon.d.ts.map +1 -0
  28. package/dist/addon.js +4 -0
  29. package/dist/components/AdminHomeActions/index.d.ts +7 -0
  30. package/dist/components/AdminHomeActions/index.d.ts.map +1 -0
  31. package/dist/components/AdminHomeActions/index.js +17 -0
  32. package/dist/components/AdminHomeActions/server.d.ts +8 -0
  33. package/dist/components/AdminHomeActions/server.d.ts.map +1 -0
  34. package/dist/components/AdminHomeActions/server.js +8 -0
  35. package/dist/components/AdminHomePage/index.d.ts +4 -0
  36. package/dist/components/AdminHomePage/index.d.ts.map +1 -0
  37. package/dist/components/AdminHomePage/index.js +11 -0
  38. package/dist/components/AdminListPage/index.d.ts +4 -0
  39. package/dist/components/AdminListPage/index.d.ts.map +1 -0
  40. package/dist/components/AdminListPage/index.js +9 -0
  41. package/dist/components/AdminPage/index.d.ts +3 -0
  42. package/dist/components/AdminPage/index.js +5 -0
  43. package/dist/components/Admins/index.d.ts +4 -0
  44. package/dist/components/Admins/index.d.ts.map +1 -0
  45. package/dist/components/Admins/index.js +16 -0
  46. package/dist/config/index.d.ts +7 -0
  47. package/dist/config/index.d.ts.map +1 -0
  48. package/dist/config/index.js +10 -0
  49. package/dist/config.d.ts +4 -0
  50. package/dist/config.d.ts.map +1 -0
  51. package/dist/config.js +10 -0
  52. package/dist/forms/AdminCreateForm/index.d.ts +3 -0
  53. package/dist/forms/AdminCreateForm/index.d.ts.map +1 -0
  54. package/dist/forms/AdminCreateForm/index.js +13 -0
  55. package/dist/forms/AdminCreateForm/interfaces.d.ts +5 -0
  56. package/dist/forms/AdminCreateForm/interfaces.d.ts.map +1 -0
  57. package/dist/forms/AdminCreateForm/interfaces.js +1 -0
  58. package/dist/forms/AdminCreateForm/server.d.ts +6 -0
  59. package/dist/forms/AdminCreateForm/server.d.ts.map +1 -0
  60. package/dist/forms/AdminCreateForm/server.js +22 -0
  61. package/dist/forms/AdminPersonalForm/index.d.ts +8 -0
  62. package/dist/forms/AdminPersonalForm/index.d.ts.map +1 -0
  63. package/dist/forms/AdminPersonalForm/index.js +13 -0
  64. package/dist/forms/AdminPersonalForm/interfaces.d.ts +7 -0
  65. package/dist/forms/AdminPersonalForm/interfaces.d.ts.map +1 -0
  66. package/dist/forms/AdminPersonalForm/interfaces.js +1 -0
  67. package/dist/forms/AdminPersonalForm/server.d.ts +6 -0
  68. package/dist/forms/AdminPersonalForm/server.d.ts.map +1 -0
  69. package/dist/forms/AdminPersonalForm/server.js +22 -0
  70. package/dist/index.d.ts +8 -0
  71. package/dist/index.d.ts.map +1 -0
  72. package/dist/index.js +7 -0
  73. package/dist/interfaces.d.ts +2 -0
  74. package/dist/interfaces.d.ts.map +1 -0
  75. package/dist/interfaces.js +1 -0
  76. package/dist/lists/AdminList/index.d.ts +4 -0
  77. package/dist/lists/AdminList/index.d.ts.map +1 -0
  78. package/dist/lists/AdminList/index.js +21 -0
  79. package/dist/lists/AdminList/server.d.ts +5 -0
  80. package/dist/lists/AdminList/server.d.ts.map +1 -0
  81. package/dist/lists/AdminList/server.js +6 -0
  82. package/dist/mail/AdminInviteMail.d.ts +6 -0
  83. package/dist/mail/AdminInviteMail.d.ts.map +1 -0
  84. package/dist/mail/AdminInviteMail.js +14 -0
  85. package/dist/register-admins-addon.d.ts +4 -0
  86. package/dist/register-admins-addon.d.ts.map +1 -0
  87. package/dist/register-admins-addon.js +5 -0
  88. package/dist/repositories/AdminRepository.d.ts +114 -0
  89. package/dist/repositories/AdminRepository.d.ts.map +1 -0
  90. package/dist/repositories/AdminRepository.js +63 -0
  91. package/dist/repositories/index.d.ts +147 -0
  92. package/dist/repositories/index.d.ts.map +1 -0
  93. package/dist/repositories/index.js +67 -0
  94. package/dist/repository/index.d.ts +149 -0
  95. package/dist/repository/index.d.ts.map +1 -0
  96. package/dist/repository/index.js +80 -0
  97. package/dist/rules/email.d.ts +4 -0
  98. package/dist/rules/email.d.ts.map +1 -0
  99. package/dist/rules/email.js +11 -0
  100. package/dist/rules/id.d.ts +11 -0
  101. package/dist/rules/id.d.ts.map +1 -0
  102. package/dist/rules/id.js +13 -0
  103. package/dist/schema.d.ts +96 -0
  104. package/dist/schema.d.ts.map +1 -0
  105. package/dist/schema.js +11 -0
  106. package/dist/utility/generate-admins-metadata.d.ts +5 -0
  107. package/dist/utility/generate-admins-metadata.d.ts.map +1 -0
  108. package/dist/utility/generate-admins-metadata.js +4 -0
  109. package/dist/utility/ids.d.ts +3 -0
  110. package/dist/utility/ids.d.ts.map +1 -0
  111. package/dist/utility/ids.js +1 -0
  112. package/dist/utility/interfaces.d.ts +5 -0
  113. package/dist/utility/interfaces.d.ts.map +1 -0
  114. package/dist/utility/interfaces.js +1 -0
  115. package/dist/utility/prepare-seed-admins.d.ts +4 -0
  116. package/dist/utility/prepare-seed-admins.d.ts.map +1 -0
  117. package/dist/utility/prepare-seed-admins.js +6 -0
  118. package/dist/utility/seed-admin.d.ts +10 -0
  119. package/dist/utility/seed-admin.d.ts.map +1 -0
  120. package/dist/utility/seed-admin.js +29 -0
  121. package/package.json +47 -0
package/LICENSE ADDED
@@ -0,0 +1,5 @@
1
+ Copyright 2024 Richard Carter
2
+
3
+ Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
4
+
5
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
@@ -0,0 +1,10 @@
1
+ import { AppConfig } from '@sqrzro/config';
2
+ import type { NodePgDatabase } from 'drizzle-orm/node-postgres';
3
+ import type { AdminsAddonConfigObject, BaseAdminsAddonConfigObject } from './interfaces';
4
+ export declare function setConfig(
5
+ db: NodePgDatabase,
6
+ appConfig: AppConfig,
7
+ cfg?: Partial<BaseAdminsAddonConfigObject>
8
+ ): void;
9
+ export declare function getConfig(): AdminsAddonConfigObject;
10
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/DEPRECATED_addon/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGhE,OAAO,KAAK,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAIzF,wBAAgB,SAAS,CACrB,EAAE,EAAE,cAAc,EAClB,SAAS,EAAE,SAAS,EACpB,GAAG,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,GAC3C,IAAI,CAEN;AAED,wBAAgB,SAAS,IAAI,uBAAuB,CAKnD"}
@@ -0,0 +1,11 @@
1
+ import applyDefaults from './defaults';
2
+ let config = null;
3
+ export function setConfig(db, appConfig, cfg) {
4
+ config = { ...applyDefaults(cfg), db, app: appConfig };
5
+ }
6
+ export function getConfig() {
7
+ // if (!config) {
8
+ // throw new MissingConfigError('admins');
9
+ // }
10
+ return config;
11
+ }
@@ -0,0 +1,6 @@
1
+ import type { BaseAdminsAddonConfigObject } from './interfaces';
2
+ declare function applyDefaults(
3
+ config?: Partial<BaseAdminsAddonConfigObject>
4
+ ): BaseAdminsAddonConfigObject;
5
+ export default applyDefaults;
6
+ //# sourceMappingURL=defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/DEPRECATED_addon/defaults.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAIhE,iBAAS,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,GAAG,2BAA2B,CAEjG;AAED,eAAe,aAAa,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { deepMerge } from '@sqrzro/utility';
2
+ const defaults = {};
3
+ function applyDefaults(config) {
4
+ return deepMerge(defaults, config || {});
5
+ }
6
+ export default applyDefaults;
@@ -0,0 +1,6 @@
1
+ import type { AddonRegisterFunction } from '@sqrzro/addons';
2
+ import { BaseAdminsAddonConfigObject } from './interfaces';
3
+ export * from './interfaces';
4
+ declare const withAdmin: AddonRegisterFunction<Partial<BaseAdminsAddonConfigObject>>;
5
+ export default withAdmin;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/DEPRECATED_addon/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAG5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAE3D,cAAc,cAAc,CAAC;AAE7B,QAAA,MAAM,SAAS,EAAE,qBAAqB,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAOzE,CAAC;AAEH,eAAe,SAAS,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { setConfig } from './config';
2
+ export * from './interfaces';
3
+ const withAdmin = (config) => ({
4
+ register: (db, appConfig) => {
5
+ setConfig(db, appConfig, config);
6
+ },
7
+ schema: '@sqrzro/addon-admins/schema',
8
+ });
9
+ export default withAdmin;
@@ -0,0 +1,8 @@
1
+ import { AppConfig } from '@sqrzro/config';
2
+ import type { NodePgDatabase } from 'drizzle-orm/node-postgres';
3
+ export interface BaseAdminsAddonConfigObject {}
4
+ export interface AdminsAddonConfigObject extends BaseAdminsAddonConfigObject {
5
+ app: AppConfig;
6
+ db: NodePgDatabase;
7
+ }
8
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/DEPRECATED_addon/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,MAAM,WAAW,2BAA2B;CAAG;AAE/C,MAAM,WAAW,uBAAwB,SAAQ,2BAA2B;IACxE,GAAG,EAAE,SAAS,CAAC;IACf,EAAE,EAAE,cAAc,CAAC;CACtB"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,10 @@
1
+ import { AppConfig } from '@sqrzro/config';
2
+ import type { NodePgDatabase } from 'drizzle-orm/node-postgres';
3
+ import type { AdminsAddonConfigObject, BaseAdminsAddonConfigObject } from './interfaces';
4
+ export declare function setConfig(
5
+ db: NodePgDatabase,
6
+ appConfig: AppConfig,
7
+ cfg?: Partial<BaseAdminsAddonConfigObject>
8
+ ): void;
9
+ export declare function getConfig(): AdminsAddonConfigObject;
10
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/addon/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGhE,OAAO,KAAK,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAIzF,wBAAgB,SAAS,CACrB,EAAE,EAAE,cAAc,EAClB,SAAS,EAAE,SAAS,EACpB,GAAG,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,GAC3C,IAAI,CAEN;AAED,wBAAgB,SAAS,IAAI,uBAAuB,CAKnD"}
@@ -0,0 +1,11 @@
1
+ import applyDefaults from './defaults';
2
+ let config = null;
3
+ export function setConfig(db, appConfig, cfg) {
4
+ config = { ...applyDefaults(cfg), db, app: appConfig };
5
+ }
6
+ export function getConfig() {
7
+ // if (!config) {
8
+ // throw new MissingConfigError('admins');
9
+ // }
10
+ return config;
11
+ }
@@ -0,0 +1,6 @@
1
+ import type { BaseAdminsAddonConfigObject } from './interfaces';
2
+ declare function applyDefaults(
3
+ config?: Partial<BaseAdminsAddonConfigObject>
4
+ ): BaseAdminsAddonConfigObject;
5
+ export default applyDefaults;
6
+ //# sourceMappingURL=defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/addon/defaults.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAIhE,iBAAS,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,GAAG,2BAA2B,CAEjG;AAED,eAAe,aAAa,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { deepMerge } from '@sqrzro/utility';
2
+ const defaults = {};
3
+ function applyDefaults(config) {
4
+ return deepMerge(defaults, config || {});
5
+ }
6
+ export default applyDefaults;
@@ -0,0 +1,6 @@
1
+ import type { AddonRegisterFunction } from '@sqrzro/addons';
2
+ import { BaseAdminsAddonConfigObject } from './interfaces';
3
+ export * from './interfaces';
4
+ declare const withAdmin: AddonRegisterFunction<Partial<BaseAdminsAddonConfigObject>>;
5
+ export default withAdmin;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/addon/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAG5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAE3D,cAAc,cAAc,CAAC;AAE7B,QAAA,MAAM,SAAS,EAAE,qBAAqB,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAOzE,CAAC;AAEH,eAAe,SAAS,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { setConfig } from './config';
2
+ export * from './interfaces';
3
+ const withAdmin = (config) => ({
4
+ register: (db, appConfig) => {
5
+ setConfig(db, appConfig, config);
6
+ },
7
+ schema: '@sqrzro/addon-admins/schema',
8
+ });
9
+ export default withAdmin;
@@ -0,0 +1,8 @@
1
+ import { AppConfig } from '@sqrzro/config';
2
+ import type { NodePgDatabase } from 'drizzle-orm/node-postgres';
3
+ export interface BaseAdminsAddonConfigObject {}
4
+ export interface AdminsAddonConfigObject extends BaseAdminsAddonConfigObject {
5
+ app: AppConfig;
6
+ db: NodePgDatabase;
7
+ }
8
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/addon/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,MAAM,WAAW,2BAA2B;CAAG;AAE/C,MAAM,WAAW,uBAAwB,SAAQ,2BAA2B;IACxE,GAAG,EAAE,SAAS,CAAC;IACf,EAAE,EAAE,cAAc,CAAC;CACtB"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ import type { AddonObject } from '@sqrzro/addons';
2
+ declare const addon: AddonObject;
3
+ export default addon;
4
+ //# sourceMappingURL=addon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addon.d.ts","sourceRoot":"","sources":["../src/addon.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,QAAA,MAAM,KAAK,EAAE,WAEZ,CAAC;AAEF,eAAe,KAAK,CAAC"}
package/dist/addon.js ADDED
@@ -0,0 +1,4 @@
1
+ const addon = {
2
+ schema: '@sqrzro/addon-admins/schema',
3
+ };
4
+ export default addon;
@@ -0,0 +1,7 @@
1
+ import type { Admin } from '../../utility/interfaces';
2
+ interface AdminHomeActionsProps {
3
+ data: Admin;
4
+ }
5
+ declare function AdminHomeActions({ data }: AdminHomeActionsProps): Promise<React.ReactElement>;
6
+ export default AdminHomeActions;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/AdminHomeActions/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAKtD,UAAU,qBAAqB;IAC3B,IAAI,EAAE,KAAK,CAAC;CACf;AAED,iBAAe,gBAAgB,CAAC,EAAE,IAAI,EAAE,EAAE,qBAAqB,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CA8C5F;AAED,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { AdminPageActions } from '@sqrzro/admin';
3
+ import { ActionButton, InfoPanel } from '@sqrzro/ui/components';
4
+ import AdminRepository from '../../repositories/AdminRepository';
5
+ import { cancel, uncancel } from './server';
6
+ import { Fragment } from 'react/jsx-runtime';
7
+ async function AdminHomeActions({ data }) {
8
+ const sessionAdmin = await AdminRepository.ensureFromSession();
9
+ if (data.id === sessionAdmin.id) {
10
+ return (_jsx(InfoPanel, { variant: "warning", children: "This is your admin account. Some functions, like cancelling the account, are unavailable." }));
11
+ }
12
+ if (data.deletedAt) {
13
+ return (_jsxs(Fragment, { children: [_jsx(InfoPanel, { variant: "danger", children: "This admin's account has been cancelled. There are currently unable to sign in to the admin site." }), _jsx(AdminPageActions, { children: _jsx(ActionButton, { action: uncancel, classNameProps: { isOnDark: true }, confirmable: {}, data: { id: data.id }, children: "Re-Activate Account" }) })] }));
14
+ }
15
+ return (_jsx(AdminPageActions, { children: _jsx(ActionButton, { action: cancel, classNameProps: { isOnDark: true }, confirmable: {}, data: { id: data.id }, variant: "danger", children: "Cancel Account" }) }));
16
+ }
17
+ export default AdminHomeActions;
@@ -0,0 +1,8 @@
1
+ import { AdminID } from '../../utility/ids';
2
+ export declare function cancel({ id }: {
3
+ id: AdminID;
4
+ }): Promise<void>;
5
+ export declare function uncancel({ id }: {
6
+ id: AdminID;
7
+ }): Promise<void>;
8
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/components/AdminHomeActions/server.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,wBAAsB,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnE;AAED,wBAAsB,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAErE"}
@@ -0,0 +1,8 @@
1
+ 'use server';
2
+ import AdminRepository from '../../repositories/AdminRepository';
3
+ export async function cancel({ id }) {
4
+ return AdminRepository.delete(id);
5
+ }
6
+ export async function uncancel({ id }) {
7
+ return AdminRepository.undelete(id);
8
+ }
@@ -0,0 +1,4 @@
1
+ import type { NextPageProps } from '@sqrzro/ui/utility';
2
+ declare function AdminHomePage(props: NextPageProps): React.ReactElement;
3
+ export default AdminHomePage;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/AdminHomePage/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAQxD,iBAAS,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,KAAK,CAAC,YAAY,CAe/D;AAED,eAAe,aAAa,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Fragment } from 'react';
3
+ import { AdminPage } from '@sqrzro/admin';
4
+ import { pick } from '@sqrzro/utility';
5
+ import AdminPersonalForm from '../../forms/AdminPersonalForm';
6
+ import AdminRepository from '../../repositories/AdminRepository';
7
+ import AdminHomeActions from '../AdminHomeActions';
8
+ function AdminHomePage(props) {
9
+ return (_jsx(AdminPage, { fn: AdminRepository.ensureFromParams, pageProps: props, title: (admin) => admin.name, children: (admin) => (_jsxs(Fragment, { children: [_jsx(AdminHomeActions, { data: admin }), _jsx(AdminPersonalForm, { defaults: pick(admin, ['id', 'email', 'name']) })] })) }));
10
+ }
11
+ export default AdminHomePage;
@@ -0,0 +1,4 @@
1
+ import { NextPageProps } from '@sqrzro/ui/utility';
2
+ declare function AdminListPage(props: NextPageProps): React.ReactElement;
3
+ export default AdminListPage;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/AdminListPage/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAKnD,iBAAS,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,KAAK,CAAC,YAAY,CAY/D;AAED,eAAe,aAAa,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { AdminPage, AdminPageActions } from '@sqrzro/admin';
3
+ import { ActionButton, ModalLauncher } from '@sqrzro/ui/components';
4
+ import AdminCreateForm from '../../forms/AdminCreateForm';
5
+ import AdminList from '../../lists/AdminList';
6
+ function AdminListPage(props) {
7
+ return (_jsxs(AdminPage, { title: "Admins", children: [_jsx(AdminPageActions, { children: _jsx(ActionButton, { searchParams: { action: 'new' }, variant: "primary", children: "Add New Admin" }) }), _jsx(AdminList, { ...props }), _jsx(ModalLauncher, { data: { new: _jsx(AdminCreateForm, {}) } })] }));
8
+ }
9
+ export default AdminListPage;
@@ -0,0 +1,3 @@
1
+ interface AdminPageProps {}
2
+ declare function AdminPage({}: AdminPageProps): React.ReactElement;
3
+ export default AdminPage;
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx } from 'react/jsx-runtime';
2
+ function AdminPage({}) {
3
+ return _jsx('div', { children: 'AdminPage' });
4
+ }
5
+ export default AdminPage;
@@ -0,0 +1,4 @@
1
+ import { NextPageProps } from '@sqrzro/ui/utility';
2
+ declare function Admins(props: NextPageProps): React.ReactElement;
3
+ export default Admins;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Admins/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAenD,iBAAS,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,KAAK,CAAC,YAAY,CAMxD;AAED,eAAe,MAAM,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Suspense } from 'react';
3
+ import { AdminPage } from '@sqrzro/admin';
4
+ import AdminListPage from '../AdminListPage';
5
+ import AdminHomePage from '../AdminHomePage';
6
+ async function AdminsComponent(props) {
7
+ const params = await props.params;
8
+ if (params?.admins) {
9
+ return _jsx(AdminHomePage, { ...props });
10
+ }
11
+ return _jsx(AdminListPage, { ...props });
12
+ }
13
+ function Admins(props) {
14
+ return (_jsx(Suspense, { fallback: _jsx(AdminPage, { children: null, title: "\u2022\u2022\u2022" }), children: _jsx(AdminsComponent, { ...props }) }));
15
+ }
16
+ export default Admins;
@@ -0,0 +1,7 @@
1
+ import createAdminRepository from '../repository';
2
+ export interface AdminsConfig {
3
+ repository: ReturnType<typeof createAdminRepository>;
4
+ }
5
+ export declare function setConfig(cfg: AdminsConfig): void;
6
+ export declare function getConfig(): AdminsConfig;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,eAAe,CAAC;AAElD,MAAM,WAAW,YAAY;IACzB,UAAU,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC;CACxD;AAID,wBAAgB,SAAS,CAAC,GAAG,EAAE,YAAY,QAE1C;AAED,wBAAgB,SAAS,IAAI,YAAY,CAKxC"}
@@ -0,0 +1,10 @@
1
+ let config = null;
2
+ export function setConfig(cfg) {
3
+ config = cfg;
4
+ }
5
+ export function getConfig() {
6
+ if (!config) {
7
+ throw new Error('Admin config has not been set');
8
+ }
9
+ return config;
10
+ }
@@ -0,0 +1,4 @@
1
+ import type { AddonRegistrationConfig } from '@sqrzro/addons';
2
+ export declare function setConfig(newConfig: AddonRegistrationConfig): void;
3
+ export declare function getConfig(): AddonRegistrationConfig;
4
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAI9D,wBAAgB,SAAS,CAAC,SAAS,EAAE,uBAAuB,GAAG,IAAI,CAElE;AAED,wBAAgB,SAAS,IAAI,uBAAuB,CAKnD"}
package/dist/config.js ADDED
@@ -0,0 +1,10 @@
1
+ let config = null;
2
+ export function setConfig(newConfig) {
3
+ config = newConfig;
4
+ }
5
+ export function getConfig() {
6
+ if (!config) {
7
+ throw new Error('Config has not been set yet');
8
+ }
9
+ return config;
10
+ }
@@ -0,0 +1,3 @@
1
+ declare function AdminCreateForm(): React.ReactElement;
2
+ export default AdminCreateForm;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/AdminCreateForm/index.tsx"],"names":[],"mappings":"AAMA,iBAAS,eAAe,IAAI,KAAK,CAAC,YAAY,CAa7C;AAED,eAAe,eAAe,CAAC"}
@@ -0,0 +1,13 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { ModalForm, TextFormField, useModalForm } from '@sqrzro/ui/forms';
4
+ import submit from './server';
5
+ function AdminCreateForm() {
6
+ const { fieldProps, formProps } = useModalForm({
7
+ onSubmit: submit,
8
+ submitLabel: 'Save Admin',
9
+ title: 'Add New Admin',
10
+ });
11
+ return (_jsxs(ModalForm, { ...formProps, children: [_jsx(TextFormField, { ...fieldProps('name') }), _jsx(TextFormField, { ...fieldProps('email') })] }));
12
+ }
13
+ export default AdminCreateForm;
@@ -0,0 +1,5 @@
1
+ export interface AdminCreateFormFields {
2
+ email: string;
3
+ name: string;
4
+ }
5
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/forms/AdminCreateForm/interfaces.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ import { FormResponse } from '@sqrzro/server/forms';
2
+ import type { Admin } from '../../utility/interfaces';
3
+ import type { AdminCreateFormFields } from './interfaces';
4
+ declare function submit(formData: AdminCreateFormFields): FormResponse<Admin>;
5
+ export default submit;
6
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/forms/AdminCreateForm/server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAc,MAAM,sBAAsB,CAAC;AAKhE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAc1D,iBAAe,MAAM,CAAC,QAAQ,EAAE,qBAAqB,GAAG,YAAY,CAAC,KAAK,CAAC,CAM1E;AAED,eAAe,MAAM,CAAC"}
@@ -0,0 +1,22 @@
1
+ 'use server';
2
+ import { submitForm } from '@sqrzro/server/forms';
3
+ import { z } from 'zod';
4
+ import AdminRepository from '../../repositories/AdminRepository';
5
+ import getAdminEmailRule from '../../rules/email';
6
+ const schema = z.object({
7
+ email: getAdminEmailRule().validator,
8
+ name: z.string().nonempty(),
9
+ });
10
+ async function fn(data) {
11
+ const admin = await AdminRepository.create(data);
12
+ await AdminRepository.sendInvite(admin);
13
+ return admin;
14
+ }
15
+ async function submit(formData) {
16
+ return submitForm({
17
+ fn,
18
+ formData,
19
+ schema,
20
+ });
21
+ }
22
+ export default submit;
@@ -0,0 +1,8 @@
1
+ import { Default } from '@sqrzro/ui/forms';
2
+ import type { AdminPersonalFormFields } from './interfaces';
3
+ interface AdminPersonalFormProps {
4
+ defaults?: Default<AdminPersonalFormFields>;
5
+ }
6
+ declare function AdminPersonalForm({ defaults }: Readonly<AdminPersonalFormProps>): React.ReactElement;
7
+ export default AdminPersonalForm;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/AdminPersonalForm/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAwD,MAAM,kBAAkB,CAAC;AAGjG,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAE5D,UAAU,sBAAsB;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;CAC/C;AAED,iBAAS,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GAAG,KAAK,CAAC,YAAY,CAa7F;AAED,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,13 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { EditableForm, EditableTextFormField, useEditableForm } from '@sqrzro/ui/forms';
4
+ import submit from './server';
5
+ function AdminPersonalForm({ defaults }) {
6
+ const { fieldProps, formProps } = useEditableForm({
7
+ defaults,
8
+ onSubmit: submit,
9
+ title: 'Personal Details',
10
+ });
11
+ return (_jsxs(EditableForm, { ...formProps, children: [_jsx(EditableTextFormField, { ...fieldProps('name') }), _jsx(EditableTextFormField, { ...fieldProps('email') })] }));
12
+ }
13
+ export default AdminPersonalForm;
@@ -0,0 +1,7 @@
1
+ import { AdminID } from '../../utility/ids';
2
+ export interface AdminPersonalFormFields {
3
+ email: string;
4
+ id: AdminID;
5
+ name: string;
6
+ }
7
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/forms/AdminPersonalForm/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,WAAW,uBAAuB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ import { FormResponse } from '@sqrzro/server/forms';
2
+ import type { Admin } from '../../utility/interfaces';
3
+ import type { AdminPersonalFormFields } from './interfaces';
4
+ declare function submit(formData: AdminPersonalFormFields): FormResponse<Admin>;
5
+ export default submit;
6
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/forms/AdminPersonalForm/server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAc,MAAM,sBAAsB,CAAC;AAMhE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAY5D,iBAAe,MAAM,CAAC,QAAQ,EAAE,uBAAuB,GAAG,YAAY,CAAC,KAAK,CAAC,CAM5E;AAED,eAAe,MAAM,CAAC"}
@@ -0,0 +1,22 @@
1
+ 'use server';
2
+ import { submitForm } from '@sqrzro/server/forms';
3
+ import { z } from 'zod';
4
+ import AdminRepository from '../../repositories/AdminRepository';
5
+ import getAdminEmailRule from '../../rules/email';
6
+ import getAdminIDRule from '../../rules/id';
7
+ const schema = z.object({
8
+ email: getAdminEmailRule().validator,
9
+ id: getAdminIDRule().validator,
10
+ name: z.string().nonempty(),
11
+ });
12
+ async function fn(data) {
13
+ return AdminRepository.update(data);
14
+ }
15
+ async function submit(formData) {
16
+ return submitForm({
17
+ fn,
18
+ formData,
19
+ schema,
20
+ });
21
+ }
22
+ export default submit;
@@ -0,0 +1,8 @@
1
+ export * from './utility/ids';
2
+ export * from './utility/interfaces';
3
+ export { default as Admins } from './components/Admins';
4
+ export { default as AdminRepository } from './repositories/AdminRepository';
5
+ export { default as generateAdminsMetadata } from './utility/generate-admins-metadata';
6
+ export { default as prepareSeedAdmins } from './utility/prepare-seed-admins';
7
+ export { default as seedAdmin } from './utility/seed-admin';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AAErC,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAE5E,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACvF,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,7 @@
1
+ export * from './utility/ids';
2
+ export * from './utility/interfaces';
3
+ export { default as Admins } from './components/Admins';
4
+ export { default as AdminRepository } from './repositories/AdminRepository';
5
+ export { default as generateAdminsMetadata } from './utility/generate-admins-metadata';
6
+ export { default as prepareSeedAdmins } from './utility/prepare-seed-admins';
7
+ export { default as seedAdmin } from './utility/seed-admin';
@@ -0,0 +1,2 @@
1
+ export interface AdminsConfigObject {}
2
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;CAAG"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ import type { NextPageProps } from '@sqrzro/ui/utility';
2
+ declare function AdminList(props: NextPageProps): Promise<React.ReactElement>;
3
+ export default AdminList;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lists/AdminList/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAoBxD,iBAAe,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAG1E;AAED,eAAe,SAAS,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Badge, List } from '@sqrzro/ui/components';
3
+ import getList from './server';
4
+ import AdminRepository from '../../repositories/AdminRepository';
5
+ function getTransformer(sessionAdmin) {
6
+ return (item) => ({
7
+ href: `./${item.id}`,
8
+ id: item.id,
9
+ meta: [
10
+ item.id === sessionAdmin.id ? _jsx(Badge, { variant: "info", children: "You" }) : null,
11
+ item.deletedAt ? _jsx(Badge, { variant: "danger", children: "Account Cancelled" }) : null,
12
+ item.email,
13
+ ],
14
+ title: item.name,
15
+ });
16
+ }
17
+ async function AdminList(props) {
18
+ const admin = await AdminRepository.ensureFromSession();
19
+ return _jsx(List, { fn: getList, pageProps: props, transformer: getTransformer(admin) });
20
+ }
21
+ export default AdminList;