@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
@@ -0,0 +1,80 @@
1
+ import { extendRepository } from '@sqrzro/addons';
2
+ import withAuth from '@sqrzro/addon-auth/repository';
3
+ import withOnboarding from '@sqrzro/addon-onboarding/repository';
4
+ import { db } from '@sqrzro/server/database';
5
+ import { createRepository } from '@sqrzro/server/database';
6
+ import { generateID } from '@sqrzro/server/utility';
7
+ import { pick } from '@sqrzro/utility';
8
+ import { and, count, eq } from 'drizzle-orm';
9
+ import { ADMIN_PREFIX } from '../utility/ids';
10
+ import { adminTable } from '../schema';
11
+ export const ADMIN_ROLE = 100;
12
+ const fillable = ['email', 'name'];
13
+ function createAdminRepository(site) {
14
+ const BaseAdminRepository = createRepository({
15
+ indexes: { email: adminTable.email, id: adminTable.id },
16
+ async makeCountQuery(conditions) {
17
+ const [meta] = await db
18
+ .select({ count: count() })
19
+ .from(adminTable)
20
+ .where(and(...conditions));
21
+ return meta.count;
22
+ },
23
+ async makeQuery(conditions, config) {
24
+ return db
25
+ .select()
26
+ .from(adminTable)
27
+ .where(and(...conditions))
28
+ .limit(config.limit)
29
+ .offset(config.offset);
30
+ },
31
+ async makeDeleteMutation(id) {
32
+ await db.update(adminTable).set({ deletedAt: new Date() }).where(eq(adminTable.id, id));
33
+ },
34
+ async makeUndeleteMutation(id) {
35
+ await db.update(adminTable).set({ deletedAt: null }).where(eq(adminTable.id, id));
36
+ },
37
+ async makeInsertMutation(data) {
38
+ const values = {
39
+ id: generateID(ADMIN_PREFIX),
40
+ ...pick(data, fillable),
41
+ };
42
+ const [result] = await db.insert(adminTable).values(values).returning();
43
+ return result;
44
+ },
45
+ async makeUpdateMutation(data) {
46
+ const [result] = await db
47
+ .update(adminTable)
48
+ .set(data)
49
+ .where(eq(adminTable.id, data.id))
50
+ .returning();
51
+ return result;
52
+ },
53
+ paramKey: 'admins[0]',
54
+ prefix: ADMIN_PREFIX,
55
+ });
56
+ const AdminRepository = extendRepository(
57
+ BaseAdminRepository,
58
+ withAuth({ role: ADMIN_ROLE }),
59
+ withOnboarding({
60
+ baseURL: site.url,
61
+ role: ADMIN_ROLE,
62
+ siteName: site.name,
63
+ })
64
+ );
65
+ return {
66
+ ...AdminRepository,
67
+ getByEmail: async (email) => AdminRepository.getByIndex('email', email),
68
+ };
69
+ }
70
+ let repository = null;
71
+ export function setRepository(repo) {
72
+ repository = repo;
73
+ }
74
+ export function getRepository() {
75
+ if (!repository) {
76
+ throw new Error('Admin repository has not been set');
77
+ }
78
+ return repository;
79
+ }
80
+ export default createAdminRepository;
@@ -0,0 +1,4 @@
1
+ import z from 'zod';
2
+ declare function getAdminEmailRule(): import("@sqrzro/server/forms").ValidationRule<z.ZodEmail, undefined, undefined>;
3
+ export default getAdminEmailRule;
4
+ //# sourceMappingURL=email.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../src/rules/email.ts"],"names":[],"mappings":"AACA,OAAO,CAAC,MAAM,KAAK,CAAC;AAIpB,iBAAS,iBAAiB,oFAOzB;AAED,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { createRule, getNotExistsValidator } from '@sqrzro/server/forms';
2
+ import z from 'zod';
3
+ import AdminRepository from '../repositories/AdminRepository';
4
+ function getAdminEmailRule() {
5
+ const validator = z
6
+ .email()
7
+ .nonempty()
8
+ .refine(...getNotExistsValidator(AdminRepository.getByEmail));
9
+ return createRule({ validator });
10
+ }
11
+ export default getAdminEmailRule;
@@ -0,0 +1,11 @@
1
+ import z from 'zod';
2
+ import { AdminID } from '../utility/ids';
3
+ import type { Admin } from '../utility/interfaces';
4
+ declare function transformer<T extends {
5
+ adminID: AdminID;
6
+ }>(data: T): Promise<T & {
7
+ admin: Admin;
8
+ }>;
9
+ declare function getAdminIDRule(): import("@sqrzro/server/forms").ValidationRule<z.ZodNonOptional<z.ZodTemplateLiteral<`adm_${string}`>>, typeof transformer, undefined>;
10
+ export default getAdminIDRule;
11
+ //# sourceMappingURL=id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../src/rules/id.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAMpB,OAAO,EAAE,OAAO,EAAgB,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,iBAAe,WAAW,CAAC,CAAC,SAAS;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC,CAIjG;AAED,iBAAS,cAAc,0IAGtB;AAED,eAAe,cAAc,CAAC"}
@@ -0,0 +1,13 @@
1
+ import z from 'zod';
2
+ import { createRule, getExistsTransformer } from '@sqrzro/server/forms';
3
+ import AdminRepository from '../repositories/AdminRepository';
4
+ import { ADMIN_PREFIX } from '../utility/ids';
5
+ async function transformer(data) {
6
+ const admin = await getExistsTransformer('adminID', data.adminID, AdminRepository.getByID);
7
+ return { ...data, admin };
8
+ }
9
+ function getAdminIDRule() {
10
+ const validator = z.templateLiteral([ADMIN_PREFIX, '_', z.string()]).nonoptional();
11
+ return createRule({ validator, transformer });
12
+ }
13
+ export default getAdminIDRule;
@@ -0,0 +1,96 @@
1
+ export declare const adminTable: import("drizzle-orm/pg-core").PgTableWithColumns<{
2
+ name: "admins";
3
+ schema: undefined;
4
+ columns: {
5
+ id: import("drizzle-orm/pg-core").PgColumn<{
6
+ name: "id";
7
+ tableName: "admins";
8
+ dataType: "string";
9
+ columnType: "PgText";
10
+ data: `adm_${string}`;
11
+ driverParam: string;
12
+ notNull: true;
13
+ hasDefault: false;
14
+ isPrimaryKey: true;
15
+ isAutoincrement: false;
16
+ hasRuntimeDefault: false;
17
+ enumValues: [string, ...string[]];
18
+ baseColumn: never;
19
+ identity: undefined;
20
+ generated: undefined;
21
+ }, {}, {
22
+ $type: `adm_${string}`;
23
+ }>;
24
+ name: import("drizzle-orm/pg-core").PgColumn<{
25
+ name: "name";
26
+ tableName: "admins";
27
+ dataType: "string";
28
+ columnType: "PgText";
29
+ data: string;
30
+ driverParam: string;
31
+ notNull: true;
32
+ hasDefault: false;
33
+ isPrimaryKey: false;
34
+ isAutoincrement: false;
35
+ hasRuntimeDefault: false;
36
+ enumValues: [string, ...string[]];
37
+ baseColumn: never;
38
+ identity: undefined;
39
+ generated: undefined;
40
+ }, {}, {}>;
41
+ email: import("drizzle-orm/pg-core").PgColumn<{
42
+ name: "email";
43
+ tableName: "admins";
44
+ dataType: "string";
45
+ columnType: "PgText";
46
+ data: string;
47
+ driverParam: string;
48
+ notNull: true;
49
+ hasDefault: false;
50
+ isPrimaryKey: false;
51
+ isAutoincrement: false;
52
+ hasRuntimeDefault: false;
53
+ enumValues: [string, ...string[]];
54
+ baseColumn: never;
55
+ identity: undefined;
56
+ generated: undefined;
57
+ }, {}, {}>;
58
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
59
+ name: "createdAt";
60
+ tableName: "admins";
61
+ dataType: "date";
62
+ columnType: "PgTimestamp";
63
+ data: Date;
64
+ driverParam: string;
65
+ notNull: true;
66
+ hasDefault: true;
67
+ isPrimaryKey: false;
68
+ isAutoincrement: false;
69
+ hasRuntimeDefault: false;
70
+ enumValues: undefined;
71
+ baseColumn: never;
72
+ identity: undefined;
73
+ generated: undefined;
74
+ }, {}, {}>;
75
+ deletedAt: import("drizzle-orm/pg-core").PgColumn<{
76
+ name: "deletedAt";
77
+ tableName: "admins";
78
+ dataType: "date";
79
+ columnType: "PgTimestamp";
80
+ data: Date;
81
+ driverParam: string;
82
+ notNull: false;
83
+ hasDefault: false;
84
+ isPrimaryKey: false;
85
+ isAutoincrement: false;
86
+ hasRuntimeDefault: false;
87
+ enumValues: undefined;
88
+ baseColumn: never;
89
+ identity: undefined;
90
+ generated: undefined;
91
+ }, {}, {}>;
92
+ };
93
+ dialect: "pg";
94
+ }>;
95
+ export type AdminTable = typeof adminTable.$inferSelect;
96
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQrB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,YAAY,CAAC"}
package/dist/schema.js ADDED
@@ -0,0 +1,11 @@
1
+ import { sql } from 'drizzle-orm';
2
+ import { pgTable, text, timestamp } from 'drizzle-orm/pg-core';
3
+ export const adminTable = pgTable('admins', {
4
+ id: text('id').$type().primaryKey(),
5
+ name: text('name').notNull(),
6
+ email: text('email').notNull().unique(),
7
+ createdAt: timestamp('createdAt')
8
+ .notNull()
9
+ .default(sql `CURRENT_TIMESTAMP`),
10
+ deletedAt: timestamp('deletedAt'),
11
+ });
@@ -0,0 +1,5 @@
1
+ declare function generateAdminsMetadata(): {
2
+ title: string;
3
+ };
4
+ export default generateAdminsMetadata;
5
+ //# sourceMappingURL=generate-admins-metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-admins-metadata.d.ts","sourceRoot":"","sources":["../../src/utility/generate-admins-metadata.ts"],"names":[],"mappings":"AAAA,iBAAS,sBAAsB;;EAE9B;AAED,eAAe,sBAAsB,CAAC"}
@@ -0,0 +1,4 @@
1
+ function generateAdminsMetadata() {
2
+ return { title: 'Admins' };
3
+ }
4
+ export default generateAdminsMetadata;
@@ -0,0 +1,3 @@
1
+ export declare const ADMIN_PREFIX = "adm";
2
+ export type AdminID = `${typeof ADMIN_PREFIX}_${string}`;
3
+ //# sourceMappingURL=ids.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../src/utility/ids.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,QAAQ,CAAC;AAElC,MAAM,MAAM,OAAO,GAAG,GAAG,OAAO,YAAY,IAAI,MAAM,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ export const ADMIN_PREFIX = 'adm';
@@ -0,0 +1,5 @@
1
+ import type { AdminTable } from '../schema';
2
+ export type Admin = AdminTable;
3
+ export type AdminDataWithID = Omit<Admin, 'createdAt' | 'deletedAt'>;
4
+ export type AdminData = Omit<AdminDataWithID, 'id'>;
5
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/utility/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC;AAC/B,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,CAAC,CAAC;AACrE,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ import { NodePgDatabase } from 'drizzle-orm/node-postgres';
2
+ declare function prepareSeedAdmins(db: NodePgDatabase): Promise<void>;
3
+ export default prepareSeedAdmins;
4
+ //# sourceMappingURL=prepare-seed-admins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepare-seed-admins.d.ts","sourceRoot":"","sources":["../../src/utility/prepare-seed-admins.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAI3D,iBAAe,iBAAiB,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAElE;AAED,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { prepareSeedAuth } from '@sqrzro/addon-auth';
2
+ import { ADMIN_ROLE } from '../repositories/AdminRepository';
3
+ async function prepareSeedAdmins(db) {
4
+ await prepareSeedAuth(db, 'admins', ADMIN_ROLE);
5
+ }
6
+ export default prepareSeedAdmins;
@@ -0,0 +1,10 @@
1
+ import { NodePgDatabase } from 'drizzle-orm/node-postgres';
2
+ import { Admin } from './interfaces';
3
+ interface AdminSeedData {
4
+ email: string;
5
+ name: string;
6
+ password: string;
7
+ }
8
+ declare function seedAdmin(db: NodePgDatabase, data: AdminSeedData): Promise<Admin>;
9
+ export default seedAdmin;
10
+ //# sourceMappingURL=seed-admin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seed-admin.d.ts","sourceRoot":"","sources":["../../src/utility/seed-admin.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAM3D,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC,UAAU,aAAa;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,iBAAe,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,CAyBhF;AAED,eAAe,SAAS,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { seedUser } from '@sqrzro/addon-auth';
2
+ import { seedOnboarding } from '@sqrzro/addon-onboarding';
3
+ import { generateID } from '@sqrzro/server/utility';
4
+ import { ADMIN_ROLE } from '../repositories/AdminRepository';
5
+ import { adminTable } from '../schema';
6
+ import { ADMIN_PREFIX } from './ids';
7
+ async function seedAdmin(db, data) {
8
+ const id = generateID(ADMIN_PREFIX);
9
+ const [result] = await db
10
+ .insert(adminTable)
11
+ .values({
12
+ email: data.email,
13
+ id,
14
+ name: data.name,
15
+ })
16
+ .returning();
17
+ await seedUser(db, {
18
+ email: data.email,
19
+ id,
20
+ password: data.password,
21
+ role: ADMIN_ROLE,
22
+ });
23
+ await seedOnboarding(db, {
24
+ steps: ['INVITED', 'HAS_PASSWORD'],
25
+ userID: id,
26
+ });
27
+ return result;
28
+ }
29
+ export default seedAdmin;
package/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "@sqrzro/addon-admins",
3
+ "type": "module",
4
+ "version": "4.0.0-alpha.10",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "license": "ISC",
8
+ "exports": {
9
+ ".": {
10
+ "default": "./dist/index.js",
11
+ "types": "./dist/index.d.ts"
12
+ },
13
+ "./schema": {
14
+ "default": "./dist/schema.js",
15
+ "types": "./dist/schema.d.ts"
16
+ }
17
+ },
18
+ "files": [
19
+ "dist/**/*"
20
+ ],
21
+ "dependencies": {
22
+ "drizzle-orm": "^0.45.1",
23
+ "zod": "^4.3.6",
24
+ "@sqrzro/addon-auth": "^4.0.0-alpha.12",
25
+ "@sqrzro/server": "^4.0.0-alpha.38",
26
+ "@sqrzro/addon-onboarding": "^4.0.0-alpha.14",
27
+ "@sqrzro/addons": "^4.0.0-alpha.9",
28
+ "@sqrzro/admin": "^4.0.0-alpha.22",
29
+ "@sqrzro/ui": "^4.0.0-alpha.52",
30
+ "@sqrzro/utility": "^4.0.0-alpha.19"
31
+ },
32
+ "devDependencies": {
33
+ "@types/react": "^19.2.14",
34
+ "typescript": "^5.9.3",
35
+ "szx": "^4.0.0-alpha.8"
36
+ },
37
+ "peerDependencies": {
38
+ "next": "^16.1.6",
39
+ "react": "^19.2.4"
40
+ },
41
+ "scripts": {
42
+ "build": "tsc",
43
+ "dev": "tsc --watch",
44
+ "start": "pnpm dev",
45
+ "szx": "szx"
46
+ }
47
+ }