@paroicms/server 1.109.6 → 1.110.1

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 (108) hide show
  1. package/ddl/main.ddl.sql +51 -10
  2. package/dist/admin-backend/account/account-role.queries.d.ts +3 -0
  3. package/dist/admin-backend/account/account-role.queries.js +18 -0
  4. package/dist/admin-backend/account/account-role.queries.js.map +1 -0
  5. package/dist/admin-backend/account/account-role.resolver.d.ts +3 -0
  6. package/dist/admin-backend/account/account-role.resolver.js +49 -0
  7. package/dist/admin-backend/account/account-role.resolver.js.map +1 -0
  8. package/dist/admin-backend/account/account.queries.d.ts +11 -2
  9. package/dist/admin-backend/account/account.queries.js +114 -25
  10. package/dist/admin-backend/account/account.queries.js.map +1 -1
  11. package/dist/admin-backend/account/account.resolver.js +126 -10
  12. package/dist/admin-backend/account/account.resolver.js.map +1 -1
  13. package/dist/admin-backend/account/author-account.queries.d.ts +12 -0
  14. package/dist/admin-backend/account/author-account.queries.js +110 -0
  15. package/dist/admin-backend/account/author-account.queries.js.map +1 -0
  16. package/dist/admin-backend/account/author-account.resolver.d.ts +3 -0
  17. package/dist/admin-backend/account/author-account.resolver.js +39 -0
  18. package/dist/admin-backend/account/author-account.resolver.js.map +1 -0
  19. package/dist/admin-backend/auth/auth.helper.d.ts +2 -0
  20. package/dist/admin-backend/auth/auth.helper.js +10 -2
  21. package/dist/admin-backend/auth/auth.helper.js.map +1 -1
  22. package/dist/admin-backend/auth/auth.service.d.ts +1 -1
  23. package/dist/admin-backend/auth/auth.service.js +145 -65
  24. package/dist/admin-backend/auth/auth.service.js.map +1 -1
  25. package/dist/admin-backend/auth/auth.types.d.ts +3 -1
  26. package/dist/admin-backend/auth/authorization.helper.d.ts +11 -0
  27. package/dist/admin-backend/auth/authorization.helper.js +37 -0
  28. package/dist/admin-backend/auth/authorization.helper.js.map +1 -0
  29. package/dist/admin-backend/auth/special-account.helper.d.ts +10 -0
  30. package/dist/admin-backend/auth/special-account.helper.js +38 -0
  31. package/dist/admin-backend/auth/special-account.helper.js.map +1 -0
  32. package/dist/admin-backend/backup/backup.resolver.js +2 -2
  33. package/dist/admin-backend/backup/backup.resolver.js.map +1 -1
  34. package/dist/admin-backend/document/document.resolver.extend.js +1 -3
  35. package/dist/admin-backend/document/document.resolver.extend.js.map +1 -1
  36. package/dist/admin-backend/document/document.resolver.js +95 -13
  37. package/dist/admin-backend/document/document.resolver.js.map +1 -1
  38. package/dist/admin-backend/event-log/event-log.queries.d.ts +24 -0
  39. package/dist/admin-backend/event-log/event-log.queries.js +84 -0
  40. package/dist/admin-backend/event-log/event-log.queries.js.map +1 -0
  41. package/dist/admin-backend/event-log/event-log.resolver.d.ts +3 -0
  42. package/dist/admin-backend/event-log/event-log.resolver.js +21 -0
  43. package/dist/admin-backend/event-log/event-log.resolver.js.map +1 -0
  44. package/dist/admin-backend/event-log/event-log.service.d.ts +11 -0
  45. package/dist/admin-backend/event-log/event-log.service.js +290 -0
  46. package/dist/admin-backend/event-log/event-log.service.js.map +1 -0
  47. package/dist/admin-backend/event-log/event-log.types.d.ts +142 -0
  48. package/dist/admin-backend/event-log/event-log.types.js +2 -0
  49. package/dist/admin-backend/event-log/event-log.types.js.map +1 -0
  50. package/dist/admin-backend/fields/fields.resolver.js +3 -2
  51. package/dist/admin-backend/fields/fields.resolver.js.map +1 -1
  52. package/dist/admin-backend/lnode/lnode-wrap.resolver.js +6 -6
  53. package/dist/admin-backend/lnode/lnode-wrap.resolver.js.map +1 -1
  54. package/dist/admin-backend/login/login.controller.js +32 -3
  55. package/dist/admin-backend/login/login.controller.js.map +1 -1
  56. package/dist/admin-backend/media/media-upload.controller.js +15 -0
  57. package/dist/admin-backend/media/media-upload.controller.js.map +1 -1
  58. package/dist/admin-backend/media/media.resolver.extend.js +1 -3
  59. package/dist/admin-backend/media/media.resolver.extend.js.map +1 -1
  60. package/dist/admin-backend/media/media.resolver.js +70 -11
  61. package/dist/admin-backend/media/media.resolver.js.map +1 -1
  62. package/dist/admin-backend/migration/migration.resolver.js +3 -3
  63. package/dist/admin-backend/migration/migration.resolver.js.map +1 -1
  64. package/dist/admin-backend/node/node.resolver.extend.js +1 -3
  65. package/dist/admin-backend/node/node.resolver.extend.js.map +1 -1
  66. package/dist/admin-backend/node/node.resolver.js +6 -5
  67. package/dist/admin-backend/node/node.resolver.js.map +1 -1
  68. package/dist/admin-backend/part/part.resolver.extend.js +2 -5
  69. package/dist/admin-backend/part/part.resolver.extend.js.map +1 -1
  70. package/dist/admin-backend/part/part.resolver.js +56 -10
  71. package/dist/admin-backend/part/part.resolver.js.map +1 -1
  72. package/dist/admin-backend/routing-cluster/routing-cluster.resolver.js +7 -7
  73. package/dist/admin-backend/routing-cluster/routing-cluster.resolver.js.map +1 -1
  74. package/dist/common/data-format.d.ts +5 -1
  75. package/dist/common/data-format.js +3 -1
  76. package/dist/common/data-format.js.map +1 -1
  77. package/dist/connector/app-conf/app-conf-formatter.js +4 -1
  78. package/dist/connector/app-conf/app-conf-formatter.js.map +1 -1
  79. package/dist/connector/app-conf/app-conf.types.d.ts +3 -3
  80. package/dist/connector/db-init/db-constants.d.ts +1 -1
  81. package/dist/connector/db-init/db-constants.js +1 -1
  82. package/dist/connector/db-init/ddl-migration.js +60 -0
  83. package/dist/connector/db-init/ddl-migration.js.map +1 -1
  84. package/dist/connector/row-types.d.ts +5 -3
  85. package/dist/connector/site-schema/site-schema-factory.js +76 -0
  86. package/dist/connector/site-schema/site-schema-factory.js.map +1 -1
  87. package/dist/graphql/apollo-server-init.js +6 -0
  88. package/dist/graphql/apollo-server-init.js.map +1 -1
  89. package/dist/maintenance/maintenance-task.d.ts +1 -1
  90. package/dist/maintenance/maintenance-task.js +5 -0
  91. package/dist/maintenance/maintenance-task.js.map +1 -1
  92. package/dist/protected-site/protected-access-token.d.ts +3 -3
  93. package/dist/protected-site/protected-access-token.js +3 -3
  94. package/dist/protected-site/protected-access-token.js.map +1 -1
  95. package/dist/protected-site/protected-site.req-handler.js +4 -4
  96. package/dist/protected-site/protected-site.req-handler.js.map +1 -1
  97. package/dist/public-api/password-reset/password-reset.service.js +9 -6
  98. package/dist/public-api/password-reset/password-reset.service.js.map +1 -1
  99. package/dist/rendered-site/feed/feed-generator.js +2 -2
  100. package/dist/rendered-site/feed/feed-generator.js.map +1 -1
  101. package/dist/site-context/load-site-context.js +1 -3
  102. package/dist/site-context/load-site-context.js.map +1 -1
  103. package/dist/tsconfig.tsbuildinfo +1 -1
  104. package/package.json +28 -28
  105. package/schema.graphql +43 -0
  106. package/dist/helpers/special-account.helpers.d.ts +0 -9
  107. package/dist/helpers/special-account.helpers.js +0 -36
  108. package/dist/helpers/special-account.helpers.js.map +0 -1
package/ddl/main.ddl.sql CHANGED
@@ -8,16 +8,7 @@ create table PaMetadata (
8
8
  primary key (dbSchema, k)
9
9
  );
10
10
 
11
- insert into PaMetadata (dbSchema, k, val) values ('main', 'dbSchemaVersion', '20');
12
-
13
- create table PaAccount (
14
- id integer not null primary key autoincrement,
15
- email varchar(200) not null unique,
16
- name varchar(200),
17
- preferences text,
18
- passwordHash varchar(200),
19
- passwordResetToken varchar(200)
20
- );
11
+ insert into PaMetadata (dbSchema, k, val) values ('main', 'dbSchemaVersion', '26');
21
12
 
22
13
  create table PaNode (
23
14
  id integer not null primary key autoincrement,
@@ -29,6 +20,8 @@ create table PaNode (
29
20
  );
30
21
 
31
22
  create index PaNode_typeName_idx on PaNode (typeName);
23
+ create index PaNode_parentId_idx on PaNode (parentId);
24
+ create index PaNode_publishDate_idx on PaNode (publishDate);
32
25
 
33
26
  create table PaOrderedNode (
34
27
  nodeId integer not null primary key references PaNode (id) on delete cascade,
@@ -42,6 +35,7 @@ create table PaPartNode (
42
35
  );
43
36
 
44
37
  create index PaPartNode_listName_idx on PaPartNode (listName);
38
+ create index PaPartNode_documentNodeId_idx on PaPartNode (documentNodeId);
45
39
 
46
40
  create table PaLNode (
47
41
  nodeId integer not null references PaNode (id),
@@ -70,6 +64,9 @@ create table PaFieldLabeling (
70
64
  primary key (field, nodeId, termId)
71
65
  );
72
66
 
67
+ create index PaFieldLabeling_nodeId_idx on PaFieldLabeling (nodeId);
68
+ create index PaFieldLabeling_termId_idx on PaFieldLabeling (termId);
69
+
73
70
  create table PaFieldVarchar (
74
71
  field varchar(100) not null,
75
72
  nodeId integer not null references PaNode (id) on delete cascade,
@@ -81,6 +78,8 @@ create table PaFieldVarchar (
81
78
  primary key (field, nodeId, language)
82
79
  );
83
80
 
81
+ create index PaFieldVarchar_nodeId_idx on PaFieldVarchar (nodeId);
82
+
84
83
  create table PaFieldText (
85
84
  field varchar(100) not null,
86
85
  nodeId integer not null references PaNode (id) on delete cascade,
@@ -93,6 +92,48 @@ create table PaFieldText (
93
92
  primary key (field, nodeId, language)
94
93
  );
95
94
 
95
+ create index PaFieldText_nodeId_idx on PaFieldText (nodeId);
96
+
96
97
  create index PaFieldVarchar_plugin_idx on PaFieldVarchar (plugin);
97
98
  create index PaFieldText_plugin_idx on PaFieldText (plugin);
98
99
  create index PaFieldLabeling_plugin_idx on PaFieldLabeling (plugin);
100
+
101
+ create table PaAccount (
102
+ id integer not null primary key autoincrement,
103
+ email varchar(200) not null unique,
104
+ name varchar(200),
105
+ preferences text,
106
+ passwordHash varchar(200),
107
+ passwordResetToken varchar(200),
108
+ loginMethod varchar(50),
109
+ active tinyint(1) not null default 1
110
+ );
111
+
112
+ create table PaAccountRole (
113
+ accountId integer not null references PaAccount (id) on delete cascade,
114
+ role varchar(100) not null,
115
+ primary key (accountId, role)
116
+ );
117
+
118
+ create table PaAuthorAccount (
119
+ authorNodeId integer not null references PaNode (id) on delete cascade,
120
+ accountId integer not null references PaAccount (id) on delete cascade,
121
+ primary key (authorNodeId, accountId)
122
+ );
123
+
124
+ create index PaAuthorAccount_accountId_idx on PaAuthorAccount (accountId);
125
+
126
+ create table PaEventLog (
127
+ id integer not null primary key autoincrement,
128
+ eventType varchar(100) not null,
129
+ actorId integer references PaAccount (id),
130
+ targetType varchar(50) not null,
131
+ targetId varchar(100) not null,
132
+ eventData text,
133
+ createdAt timestamp not null default current_timestamp
134
+ );
135
+
136
+ create index PaEventLog_eventType_idx on PaEventLog (eventType);
137
+ create index PaEventLog_actorId_idx on PaEventLog (actorId);
138
+ create index PaEventLog_targetType_targetId_idx on PaEventLog (targetType, targetId);
139
+ create index PaEventLog_createdAt_idx on PaEventLog (createdAt);
@@ -0,0 +1,3 @@
1
+ import type { SiteContext } from "../../site-context/site-context.types.js";
2
+ export declare function getAccountRoles(siteContext: Pick<SiteContext, "cn">, accountId: string): Promise<string[]>;
3
+ export declare function updateAccountRoles(siteContext: Pick<SiteContext, "cn">, accountId: string, roles: string[]): Promise<void>;
@@ -0,0 +1,18 @@
1
+ import { type } from "arktype";
2
+ const RoleRowAT = type({
3
+ role: "string",
4
+ "+": "reject",
5
+ });
6
+ export async function getAccountRoles(siteContext, accountId) {
7
+ const rows = await siteContext.cn("PaAccountRole").select("role").where("accountId", accountId);
8
+ return rows.map((row) => RoleRowAT.assert(row).role);
9
+ }
10
+ export async function updateAccountRoles(siteContext, accountId, roles) {
11
+ await siteContext.cn.transaction(async (tx) => {
12
+ await tx("PaAccountRole").where("accountId", accountId).delete();
13
+ if (roles.length > 0) {
14
+ await tx("PaAccountRole").insert(roles.map((role) => ({ accountId, role })));
15
+ }
16
+ });
17
+ }
18
+ //# sourceMappingURL=account-role.queries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-role.queries.js","sourceRoot":"","sources":["../../../src/admin-backend/account/account-role.queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG/B,MAAM,SAAS,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,QAAQ;IACd,GAAG,EAAE,QAAQ;CACd,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,WAAoC,EACpC,SAAiB;IAEjB,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAEhG,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,WAAoC,EACpC,SAAiB,EACjB,KAAe;IAEf,MAAM,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QAC5C,MAAM,EAAE,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC;QAEjE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,EAAE,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { GqlResolvers } from "../../graphql/generated-graphql-types.d.ts";
2
+ import { type GraphqlContext } from "../../graphql/graphql.types.js";
3
+ export declare const accountRoleResolvers: GqlResolvers<GraphqlContext>;
@@ -0,0 +1,49 @@
1
+ import { ApiError } from "@paroicms/public-server-lib";
2
+ import { siteReadyGuard } from "../../graphql/graphql.types.js";
3
+ import { permissionGuard } from "../auth/authorization.helper.js";
4
+ import { loadAccountRoles } from "../auth/special-account.helper.js";
5
+ import { recordEvent } from "../event-log/event-log.service.js";
6
+ import { updateAccountRoles } from "./account-role.queries.js";
7
+ import { getAccount } from "./account.queries.js";
8
+ export const accountRoleResolvers = {
9
+ Query: {
10
+ accountRoles: async (_parent, { accountId }, { siteContext, httpContext }) => {
11
+ siteReadyGuard(siteContext);
12
+ await permissionGuard(siteContext, httpContext, "site.manageUsers");
13
+ const account = await getAccount(siteContext, accountId);
14
+ return await loadAccountRoles(siteContext, account);
15
+ },
16
+ },
17
+ Mutation: {
18
+ updateAccountRoles: async (_parent, { accountId, roles }, { siteContext, httpContext }) => {
19
+ siteReadyGuard(siteContext);
20
+ const authorizedAccount = await permissionGuard(siteContext, httpContext, "site.manageUsers");
21
+ if (accountId === authorizedAccount.accountId) {
22
+ const currentRoles = await loadAccountRoles(siteContext, authorizedAccount);
23
+ if (currentRoles.includes("admin") && !roles.includes("admin")) {
24
+ throw new ApiError("Cannot remove your own admin role", 403);
25
+ }
26
+ }
27
+ await updateAccountRoles(siteContext, accountId, roles);
28
+ const account = await getAccount(siteContext, accountId);
29
+ recordEvent(siteContext, {
30
+ eventType: "account.update",
31
+ actorId: authorizedAccount.accountId,
32
+ targetType: "account",
33
+ targetId: accountId,
34
+ eventData: {
35
+ accountId,
36
+ email: account.email,
37
+ changedFields: ["roles"],
38
+ },
39
+ });
40
+ return account;
41
+ },
42
+ },
43
+ Account: {
44
+ roles: async (parent, _args, { siteContext }) => {
45
+ return await loadAccountRoles(siteContext, parent);
46
+ },
47
+ },
48
+ };
49
+ //# sourceMappingURL=account-role.resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-role.resolver.js","sourceRoot":"","sources":["../../../src/admin-backend/account/account-role.resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAuB,MAAM,gCAAgC,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAEhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,CAAC,MAAM,oBAAoB,GAAiC;IAChE,KAAK,EAAE;QACL,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE;YAC3E,cAAc,CAAC,WAAW,CAAC,CAAC;YAC5B,MAAM,eAAe,CAAC,WAAW,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;YACpE,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YACzD,OAAO,MAAM,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;KACF;IAED,QAAQ,EAAE;QACR,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE;YACxF,cAAc,CAAC,WAAW,CAAC,CAAC;YAC5B,MAAM,iBAAiB,GAAG,MAAM,eAAe,CAAC,WAAW,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;YAE9F,IAAI,SAAS,KAAK,iBAAiB,CAAC,SAAS,EAAE,CAAC;gBAC9C,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;gBAC5E,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC/D,MAAM,IAAI,QAAQ,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;YAED,MAAM,kBAAkB,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YAExD,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YAEzD,WAAW,CAAC,WAAW,EAAE;gBACvB,SAAS,EAAE,gBAAgB;gBAC3B,OAAO,EAAE,iBAAiB,CAAC,SAAS;gBACpC,UAAU,EAAE,SAAS;gBACrB,QAAQ,EAAE,SAAS;gBACnB,SAAS,EAAE;oBACT,SAAS;oBACT,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,aAAa,EAAE,CAAC,OAAO,CAAC;iBACS;aACpC,CAAC,CAAC;YAEH,OAAO,OAAO,CAAC;QACjB,CAAC;KACF;IAED,OAAO,EAAE;QACP,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;YAC9C,OAAO,MAAM,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACrD,CAAC;KACF;CACF,CAAC"}
@@ -1,18 +1,22 @@
1
+ import type { LoginMethod } from "@paroicms/public-anywhere-lib";
1
2
  import { type Account, type AuthenticatedAccount } from "../../common/data-format.js";
2
3
  import type { AccountRow } from "../../connector/row-types.js";
3
4
  import type { SiteContext } from "../../site-context/site-context.types.js";
4
5
  export declare function findAccountByIdAndEmail(siteContext: Pick<SiteContext, "cn">, payload: {
5
6
  id: string;
6
7
  email: string;
7
- }): Promise<Pick<AccountRow, "id" | "name" | "preferences" | "email">>;
8
- export declare function findAccountByEmail(siteContext: Pick<SiteContext, "cn">, email: string): Promise<Pick<AccountRow, "id" | "name" | "preferences" | "email" | "passwordHash"> | undefined>;
8
+ }): Promise<AccountRow>;
9
+ export declare function findAccountByEmail(siteContext: Pick<SiteContext, "cn">, email: string): Promise<AccountRow | undefined>;
9
10
  export declare function getAccount(siteContext: SiteContext, id: string): Promise<Account>;
10
11
  export declare function getAuthenticatedAccount(siteContext: SiteContext, id: string): Promise<AuthenticatedAccount>;
11
12
  export declare function getAllAccounts(siteContext: SiteContext): Promise<Account[]>;
12
13
  export interface AccountPreferencesInput {
13
14
  language?: string;
15
+ currentAuthorNodeId?: string;
14
16
  }
15
17
  export declare function setAccountPreferences(siteContext: SiteContext, accountId: string, values: AccountPreferencesInput): Promise<void>;
18
+ export declare function updateAccountLoginMethod(siteContext: Pick<SiteContext, "cn">, accountId: string, loginMethod: LoginMethod): Promise<void>;
19
+ export declare function updateAccountActive(siteContext: Pick<SiteContext, "cn">, accountId: string, active: boolean): Promise<void>;
16
20
  export interface CreateAccountInput {
17
21
  email: string;
18
22
  language: string;
@@ -20,6 +24,11 @@ export interface CreateAccountInput {
20
24
  accountType: "local" | "google";
21
25
  }
22
26
  export declare function createAccount(siteContext: SiteContext, payload: CreateAccountInput): Promise<Account>;
27
+ export declare function insertSpecialAccount(siteContext: Pick<SiteContext, "cn">, payload: {
28
+ email: string;
29
+ name: string;
30
+ loginMethod: "localDev" | "platformAdmin";
31
+ }): Promise<string>;
23
32
  export interface UpdateAccountInput {
24
33
  email?: string;
25
34
  name?: string;
@@ -3,7 +3,6 @@ import { ApiError } from "@paroicms/public-server-lib";
3
3
  import { type } from "arktype";
4
4
  import { formatAccount, formatAuthenticatedAccount, } from "../../common/data-format.js";
5
5
  import { simpleI18n } from "../../context.js";
6
- import { getDevAccount, getPlatformAdminAccount, isDevAccountId, parsePlatformAdminAccountId, } from "../../helpers/special-account.helpers.js";
7
6
  import { executeHook } from "../../plugin-services/make-backend-plugin-service.js";
8
7
  const AccountRowAT = type({
9
8
  id: "number",
@@ -11,6 +10,8 @@ const AccountRowAT = type({
11
10
  name: "string|null",
12
11
  preferences: "string|null",
13
12
  passwordResetToken: "string|null",
13
+ loginMethod: "string|null",
14
+ active: "0|1",
14
15
  "+": "reject",
15
16
  }).pipe((r) => ({
16
17
  id: String(r.id),
@@ -18,26 +19,33 @@ const AccountRowAT = type({
18
19
  name: r.name ?? undefined,
19
20
  preferences: r.preferences ?? undefined,
20
21
  passwordResetToken: r.passwordResetToken ?? undefined,
22
+ loginMethod: formatLoginMethod(r.loginMethod),
23
+ active: r.active === 1,
21
24
  }));
22
25
  const FindAccountByIdAndEmailRowAT = type({
23
26
  id: "number",
24
27
  email: "string",
25
28
  name: "string|null",
26
29
  preferences: "string|null",
30
+ loginMethod: "string|null",
31
+ active: "0|1",
27
32
  "+": "reject",
28
33
  }).pipe((r) => ({
29
34
  id: String(r.id),
30
35
  email: r.email,
31
36
  name: r.name ?? undefined,
32
37
  preferences: r.preferences ?? undefined,
38
+ loginMethod: formatLoginMethod(r.loginMethod),
39
+ active: r.active === 1,
33
40
  }));
34
41
  export async function findAccountByIdAndEmail(siteContext, payload) {
42
+ const normalizedEmail = payload.email.trim().toLowerCase();
35
43
  const account = await siteContext
36
44
  .cn("PaAccount as a")
37
- .select("a.id", "a.email", "a.name", "a.preferences")
45
+ .select("a.id", "a.email", "a.name", "a.preferences", "a.loginMethod", "a.active")
38
46
  .where({
39
47
  "a.id": payload.id,
40
- "a.email": payload.email,
48
+ "a.email": normalizedEmail,
41
49
  })
42
50
  .first();
43
51
  if (!account)
@@ -50,6 +58,8 @@ const FindAccountByEmailRowAT = type({
50
58
  name: "string|null",
51
59
  preferences: "string|null",
52
60
  passwordHash: "string|null",
61
+ loginMethod: "string|null",
62
+ active: "0|1",
53
63
  "+": "reject",
54
64
  }).pipe((r) => ({
55
65
  id: String(r.id),
@@ -57,12 +67,23 @@ const FindAccountByEmailRowAT = type({
57
67
  name: r.name ?? undefined,
58
68
  preferences: r.preferences ?? undefined,
59
69
  passwordHash: r.passwordHash ?? undefined,
70
+ loginMethod: formatLoginMethod(r.loginMethod),
71
+ active: r.active === 1,
60
72
  }));
61
73
  export async function findAccountByEmail(siteContext, email) {
74
+ const normalizedEmail = email.trim().toLowerCase();
62
75
  const account = await siteContext
63
76
  .cn("PaAccount as a")
64
- .select(["a.id", "a.email", "a.name", "a.preferences", "a.passwordHash"])
65
- .where("a.email", email)
77
+ .select([
78
+ "a.id",
79
+ "a.email",
80
+ "a.name",
81
+ "a.preferences",
82
+ "a.passwordHash",
83
+ "a.loginMethod",
84
+ "a.active",
85
+ ])
86
+ .where("a.email", normalizedEmail)
66
87
  .first();
67
88
  if (!account)
68
89
  return;
@@ -73,23 +94,21 @@ const GetAccountRowAT = type({
73
94
  email: "string",
74
95
  name: "string|null",
75
96
  passwordResetToken: "string|null",
97
+ loginMethod: "string|null",
98
+ active: "0|1",
76
99
  "+": "reject",
77
100
  }).pipe((r) => ({
78
101
  id: String(r.id),
79
102
  email: r.email,
80
103
  name: r.name ?? undefined,
81
104
  passwordResetToken: r.passwordResetToken ?? undefined,
105
+ loginMethod: formatLoginMethod(r.loginMethod),
106
+ active: r.active === 1,
82
107
  }));
83
108
  export async function getAccount(siteContext, id) {
84
- if (isDevAccountId(id))
85
- return formatAccount(getDevAccount(id));
86
- const parsedPlatformAccountId = parsePlatformAdminAccountId(id);
87
- if (parsedPlatformAccountId) {
88
- return formatAccount(getPlatformAdminAccount(parsedPlatformAccountId));
89
- }
90
109
  const found = await siteContext
91
110
  .cn("PaAccount as a")
92
- .select(["a.id", "a.email", "a.name", "a.passwordResetToken"])
111
+ .select(["a.id", "a.email", "a.name", "a.passwordResetToken", "a.loginMethod", "a.active"])
93
112
  .where("a.id", id)
94
113
  .first();
95
114
  if (!found)
@@ -98,15 +117,17 @@ export async function getAccount(siteContext, id) {
98
117
  return formatAccount(account);
99
118
  }
100
119
  export async function getAuthenticatedAccount(siteContext, id) {
101
- if (isDevAccountId(id))
102
- return formatAuthenticatedAccount(getDevAccount(id));
103
- const parsedPlatformAccountId = parsePlatformAdminAccountId(id);
104
- if (parsedPlatformAccountId) {
105
- return formatAuthenticatedAccount(getPlatformAdminAccount(parsedPlatformAccountId));
106
- }
107
120
  const found = await siteContext
108
121
  .cn("PaAccount as a")
109
- .select(["a.id", "a.email", "a.name", "a.preferences", "a.passwordResetToken"])
122
+ .select([
123
+ "a.id",
124
+ "a.email",
125
+ "a.name",
126
+ "a.preferences",
127
+ "a.passwordResetToken",
128
+ "a.loginMethod",
129
+ "a.active",
130
+ ])
110
131
  .where("a.id", id)
111
132
  .first();
112
133
  if (!found)
@@ -117,7 +138,15 @@ export async function getAuthenticatedAccount(siteContext, id) {
117
138
  export async function getAllAccounts(siteContext) {
118
139
  const accounts = await siteContext
119
140
  .cn("PaAccount as a")
120
- .select(["a.id", "a.email", "a.name", "a.preferences", "a.passwordResetToken"]);
141
+ .select([
142
+ "a.id",
143
+ "a.email",
144
+ "a.name",
145
+ "a.preferences",
146
+ "a.passwordResetToken",
147
+ "a.loginMethod",
148
+ "a.active",
149
+ ]);
121
150
  const parsedAccounts = accounts
122
151
  .map((account) => {
123
152
  return AccountRowAT.assert(account);
@@ -131,6 +160,15 @@ export async function setAccountPreferences(siteContext, accountId, values) {
131
160
  .where({ id: accountId })
132
161
  .update({ preferences: JSON.stringify(values) });
133
162
  }
163
+ export async function updateAccountLoginMethod(siteContext, accountId, loginMethod) {
164
+ await siteContext.cn("PaAccount").where({ id: accountId }).update({ loginMethod });
165
+ }
166
+ export async function updateAccountActive(siteContext, accountId, active) {
167
+ await siteContext
168
+ .cn("PaAccount")
169
+ .where({ id: accountId })
170
+ .update({ active: active ? 1 : 0 });
171
+ }
134
172
  const CreateAccountInsertedAT = type({
135
173
  id: "number",
136
174
  "+": "reject",
@@ -138,13 +176,14 @@ const CreateAccountInsertedAT = type({
138
176
  id: String(r.id),
139
177
  }));
140
178
  export async function createAccount(siteContext, payload) {
141
- const account = await findAccountByEmail(siteContext, payload.email);
179
+ const normalizedEmail = payload.email.trim().toLowerCase();
180
+ const account = await findAccountByEmail(siteContext, normalizedEmail);
142
181
  if (account)
143
182
  throw new ApiError("email already exists", 409);
144
183
  const [inserted] = await siteContext
145
184
  .cn("PaAccount")
146
185
  .insert({
147
- email: payload.email,
186
+ email: normalizedEmail,
148
187
  name: payload.name,
149
188
  preferences: JSON.stringify({ language: payload.language }),
150
189
  })
@@ -167,6 +206,25 @@ export async function createAccount(siteContext, payload) {
167
206
  });
168
207
  return formatAccount(newAccount);
169
208
  }
209
+ export async function insertSpecialAccount(siteContext, payload) {
210
+ const CreateAccountInsertedAT = type({
211
+ id: "number",
212
+ "+": "reject",
213
+ }).pipe((r) => ({
214
+ id: String(r.id),
215
+ }));
216
+ const normalizedEmail = payload.email.trim().toLowerCase();
217
+ const [inserted] = await siteContext
218
+ .cn("PaAccount")
219
+ .insert({
220
+ email: normalizedEmail,
221
+ name: payload.name,
222
+ loginMethod: payload.loginMethod,
223
+ active: 1,
224
+ })
225
+ .returning("id");
226
+ return CreateAccountInsertedAT.assert(inserted).id;
227
+ }
170
228
  async function createGoogleAccount(siteContext, { payload, newAccount, }) {
171
229
  const subject = simpleI18n.translate({
172
230
  key: "accountCreation.subject",
@@ -190,10 +248,14 @@ export async function updateAccount(siteContext, accountId, payload) {
190
248
  const account = await findAccountById(siteContext, accountId);
191
249
  if (!account)
192
250
  throw new ApiError("Account not found", 404);
193
- await siteContext.cn("PaAccount").where({ id: account.id }).update(payload);
251
+ const updatePayload = {
252
+ ...payload,
253
+ email: payload.email ? payload.email.trim().toLowerCase() : undefined,
254
+ };
255
+ await siteContext.cn("PaAccount").where({ id: account.id }).update(updatePayload);
194
256
  return formatAccount({
195
257
  ...account,
196
- email: payload.email ?? account.email,
258
+ email: updatePayload.email ?? account.email,
197
259
  name: payload.name ?? account.name,
198
260
  });
199
261
  }
@@ -201,7 +263,18 @@ export async function deleteAccount(siteContext, accountId) {
201
263
  const account = await findAccountById(siteContext, accountId);
202
264
  if (!account)
203
265
  throw new ApiError("Account not found", 404);
204
- await siteContext.cn("PaAccount").where({ id: account.id }).delete();
266
+ const eventCount = await siteContext
267
+ .cn("PaEventLog")
268
+ .where("actorId", accountId)
269
+ .count("* as count")
270
+ .first();
271
+ const isReferenced = eventCount && eventCount.count > 0;
272
+ if (isReferenced) {
273
+ await updateAccountActive(siteContext, accountId, false);
274
+ }
275
+ else {
276
+ await siteContext.cn("PaAccount").where({ id: account.id }).delete();
277
+ }
205
278
  }
206
279
  export async function resetAccountPassword(siteContext, accountId) {
207
280
  const account = await findAccountById(siteContext, accountId);
@@ -217,6 +290,7 @@ const FindAccountByIdRowAT = type({
217
290
  preferences: "string|null",
218
291
  passwordHash: "string|null",
219
292
  passwordResetToken: "string|null",
293
+ active: "0|1",
220
294
  "+": "reject",
221
295
  }).pipe((data) => ({
222
296
  id: String(data.id),
@@ -225,6 +299,7 @@ const FindAccountByIdRowAT = type({
225
299
  preferences: data.preferences ?? undefined,
226
300
  passwordHash: data.passwordHash ?? undefined,
227
301
  passwordResetToken: data.passwordResetToken ?? undefined,
302
+ active: data.active === 1,
228
303
  }));
229
304
  async function findAccountById(siteContext, id) {
230
305
  const found = await siteContext
@@ -236,6 +311,7 @@ async function findAccountById(siteContext, id) {
236
311
  "a.preferences",
237
312
  "a.passwordHash",
238
313
  "a.passwordResetToken",
314
+ "a.active",
239
315
  ])
240
316
  .where("a.id", id)
241
317
  .first();
@@ -271,4 +347,17 @@ function getAccountLanguage(siteContext, account) {
271
347
  const preferences = account.preferences ? JSON.parse(account.preferences) : undefined;
272
348
  return preferences?.language ?? siteContext.siteSchema.defaultLanguage;
273
349
  }
350
+ function formatLoginMethod(loginMethod) {
351
+ if (!loginMethod)
352
+ return;
353
+ switch (loginMethod) {
354
+ case "local":
355
+ case "localDev":
356
+ case "platform":
357
+ case "platformAdmin":
358
+ return loginMethod;
359
+ default:
360
+ throw new Error(`Invalid login method "${loginMethod}"`);
361
+ }
362
+ }
274
363
  //# sourceMappingURL=account.queries.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"account.queries.js","sourceRoot":"","sources":["../../../src/admin-backend/account/account.queries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"account.queries.js","sourceRoot":"","sources":["../../../src/admin-backend/account/account.queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAGL,aAAa,EACb,0BAA0B,GAC3B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,sDAAsD,CAAC;AAGnF,MAAM,YAAY,GAAG,IAAI,CAAC;IACxB,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,aAAa;IAC1B,kBAAkB,EAAE,aAAa;IACjC,WAAW,EAAE,aAAa;IAC1B,MAAM,EAAE,KAAK;IACb,GAAG,EAAE,QAAQ;CACd,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACd,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAChB,KAAK,EAAE,CAAC,CAAC,KAAK;IACd,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,SAAS;IACzB,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,SAAS;IACvC,kBAAkB,EAAE,CAAC,CAAC,kBAAkB,IAAI,SAAS;IACrD,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAC;IAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC;CACvB,CAAC,CAAC,CAAC;AAEJ,MAAM,4BAA4B,GAAG,IAAI,CAAC;IACxC,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,aAAa;IAC1B,MAAM,EAAE,KAAK;IACb,GAAG,EAAE,QAAQ;CACd,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACd,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAChB,KAAK,EAAE,CAAC,CAAC,KAAK;IACd,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,SAAS;IACzB,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,SAAS;IACvC,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAC;IAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC;CACvB,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,WAAoC,EACpC,OAAsC;IAEtC,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3D,MAAM,OAAO,GAAG,MAAM,WAAW;SAC9B,EAAE,CAAC,gBAAgB,CAAC;SACpB,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,CAAC;SACjF,KAAK,CAAC;QACL,MAAM,EAAE,OAAO,CAAC,EAAE;QAClB,SAAS,EAAE,eAAe;KAC3B,CAAC;SACD,KAAK,EAAE,CAAC;IAEX,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,QAAQ,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;IAE3D,OAAO,4BAA4B,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,uBAAuB,GAAG,IAAI,CAAC;IACnC,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,aAAa;IAC3B,WAAW,EAAE,aAAa;IAC1B,MAAM,EAAE,KAAK;IACb,GAAG,EAAE,QAAQ;CACd,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACd,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAChB,KAAK,EAAE,CAAC,CAAC,KAAK;IACd,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,SAAS;IACzB,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,SAAS;IACvC,YAAY,EAAE,CAAC,CAAC,YAAY,IAAI,SAAS;IACzC,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAC;IAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC;CACvB,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,WAAoC,EACpC,KAAa;IAEb,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACnD,MAAM,OAAO,GAAG,MAAM,WAAW;SAC9B,EAAE,CAAC,gBAAgB,CAAC;SACpB,MAAM,CAAC;QACN,MAAM;QACN,SAAS;QACT,QAAQ;QACR,eAAe;QACf,gBAAgB;QAChB,eAAe;QACf,UAAU;KACX,CAAC;SACD,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC;SACjC,KAAK,EAAE,CAAC;IACX,IAAI,CAAC,OAAO;QAAE,OAAO;IAErB,OAAO,uBAAuB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,eAAe,GAAG,IAAI,CAAC;IAC3B,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,aAAa;IACnB,kBAAkB,EAAE,aAAa;IACjC,WAAW,EAAE,aAAa;IAC1B,MAAM,EAAE,KAAK;IACb,GAAG,EAAE,QAAQ;CACd,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACd,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAChB,KAAK,EAAE,CAAC,CAAC,KAAK;IACd,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,SAAS;IACzB,kBAAkB,EAAE,CAAC,CAAC,kBAAkB,IAAI,SAAS;IACrD,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAC;IAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC;CACvB,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,WAAwB,EAAE,EAAU;IACnE,MAAM,KAAK,GAAG,MAAM,WAAW;SAC5B,EAAE,CAAC,gBAAgB,CAAC;SACpB,MAAM,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,sBAAsB,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;SAC1F,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;SACjB,KAAK,EAAE,CAAC;IAEX,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,QAAQ,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;IAEzD,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE9C,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,WAAwB,EACxB,EAAU;IAEV,MAAM,KAAK,GAAG,MAAM,WAAW;SAC5B,EAAE,CAAC,gBAAgB,CAAC;SACpB,MAAM,CAAC;QACN,MAAM;QACN,SAAS;QACT,QAAQ;QACR,eAAe;QACf,sBAAsB;QACtB,eAAe;QACf,UAAU;KACX,CAAC;SACD,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;SACjB,KAAK,EAAE,CAAC;IAEX,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,QAAQ,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;IAEzD,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE3C,OAAO,0BAA0B,CAAC,OAAO,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,WAAwB;IAC3D,MAAM,QAAQ,GAAG,MAAM,WAAW;SAC/B,EAAE,CAAC,gBAAgB,CAAC;SACpB,MAAM,CAAC;QACN,MAAM;QACN,SAAS;QACT,QAAQ;QACR,eAAe;QACf,sBAAsB;QACtB,eAAe;QACf,UAAU;KACX,CAAC,CAAC;IAEL,MAAM,cAAc,GAAc,QAAQ;SACvC,GAAG,CAAa,CAAC,OAAO,EAAE,EAAE;QAC3B,OAAO,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IAEtC,OAAO,cAAc,CAAC;AACxB,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,WAAwB,EACxB,SAAiB,EACjB,MAA+B;IAE/B,MAAM,WAAW;SACd,EAAE,CAAC,WAAW,CAAC;SACf,KAAK,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC;SACxB,MAAM,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,WAAoC,EACpC,SAAiB,EACjB,WAAwB;IAExB,MAAM,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;AACrF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,WAAoC,EACpC,SAAiB,EACjB,MAAe;IAEf,MAAM,WAAW;SACd,EAAE,CAAC,WAAW,CAAC;SACf,KAAK,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC;SACxB,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACxC,CAAC;AASD,MAAM,uBAAuB,GAAG,IAAI,CAAC;IACnC,EAAE,EAAE,QAAQ;IACZ,GAAG,EAAE,QAAQ;CACd,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACd,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;CACjB,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,WAAwB,EACxB,OAA2B;IAE3B,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3D,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IACvE,IAAI,OAAO;QAAE,MAAM,IAAI,QAAQ,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;IAE7D,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,WAAW;SACjC,EAAE,CAAC,WAAW,CAAC;SACf,MAAM,CAAC;QACN,KAAK,EAAE,eAAe;QACtB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;KAC5D,CAAC;SACD,SAAS,CAAC,IAAI,CAAC,CAAC;IAEnB,MAAM,EAAE,GAAG,uBAAuB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;IAEvD,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAE1D,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,QAAQ,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,OAAO,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,MAAM,mBAAmB,CAAC,WAAW,EAAE;YAC5C,OAAO;YACP,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IAED,MAAM,iBAAiB,CAAC,WAAW,EAAE;QACnC,EAAE,EAAE,UAAU,CAAC,EAAE;QACjB,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC,CAAC;IACH,OAAO,aAAa,CAAC,UAAU,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,WAAoC,EACpC,OAIC;IAED,MAAM,uBAAuB,GAAG,IAAI,CAAC;QACnC,EAAE,EAAE,QAAQ;QACZ,GAAG,EAAE,QAAQ;KACd,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACd,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;KACjB,CAAC,CAAC,CAAC;IAEJ,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3D,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,WAAW;SACjC,EAAE,CAAC,WAAW,CAAC;SACf,MAAM,CAAC;QACN,KAAK,EAAE,eAAe;QACtB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,MAAM,EAAE,CAAC;KACV,CAAC;SACD,SAAS,CAAC,IAAI,CAAC,CAAC;IAEnB,OAAO,uBAAuB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;AACrD,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,WAAwB,EACxB,EACE,OAAO,EACP,UAAU,GAIX;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC;QACnC,GAAG,EAAE,yBAAyB;QAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC;QACnC,GAAG,EAAE,yBAAyB;QAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,IAAI,EAAE,CAAC,GAAG,WAAW,CAAC,OAAO,MAAM,CAAC;KACrC,CAAC,CAAC;IAEH,MAAM,WAAW,CAAC,WAAW,EAAE,UAAU,EAAE;QACzC,KAAK,EAAE;YACL,OAAO,EAAE,GAAG,OAAO,MAAM,WAAW,CAAC,IAAI,EAAE;YAC3C,IAAI,EAAE,OAAO;YACb,EAAE,EAAE,UAAU,CAAC,KAAK;SACrB;KACF,CAAC,CAAC;IAEH,OAAO,aAAa,CAAC,UAAU,CAAC,CAAC;AACnC,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,WAAwB,EACxB,SAAiB,EACjB,OAA2B;IAE3B,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC9D,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,QAAQ,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;IAE3D,MAAM,aAAa,GAAG;QACpB,GAAG,OAAO;QACV,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS;KACtE,CAAC;IAEF,MAAM,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAElF,OAAO,aAAa,CAAC;QACnB,GAAG,OAAO;QACV,KAAK,EAAE,aAAa,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK;QAC3C,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI;KACnC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,WAAwB,EAAE,SAAiB;IAC7E,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC9D,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,QAAQ,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;IAE3D,MAAM,UAAU,GAAG,MAAM,WAAW;SACjC,EAAE,CAAC,YAAY,CAAC;SAChB,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC;SAC3B,KAAK,CAAC,YAAY,CAAC;SACnB,KAAK,EAAE,CAAC;IAEX,MAAM,YAAY,GAAG,UAAU,IAAK,UAAkB,CAAC,KAAK,GAAG,CAAC,CAAC;IAEjE,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,mBAAmB,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;SAAM,CAAC;QACN,MAAM,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IACvE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,WAAwB,EACxB,SAAiB;IAEjB,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC9D,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,QAAQ,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,kBAAkB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC1D,MAAM,iBAAiB,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,oBAAoB,GAAG,IAAI,CAAC;IAChC,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,aAAa;IAC3B,kBAAkB,EAAE,aAAa;IACjC,MAAM,EAAE,KAAK;IACb,GAAG,EAAE,QAAQ;CACd,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;IACnB,KAAK,EAAE,IAAI,CAAC,KAAK;IACjB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,SAAS;IAC5B,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,SAAS;IAC1C,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,SAAS;IAC5C,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,IAAI,SAAS;IACxD,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,CAAC;CAC1B,CAAC,CAAC,CAAC;AAEJ,KAAK,UAAU,eAAe,CAC5B,WAAwB,EACxB,EAAU;IAEV,MAAM,KAAK,GAAG,MAAM,WAAW;SAC5B,EAAE,CAAC,gBAAgB,CAAC;SACpB,MAAM,CAAC;QACN,MAAM;QACN,SAAS;QACT,QAAQ;QACR,eAAe;QACf,gBAAgB;QAChB,sBAAsB;QACtB,UAAU;KACX,CAAC;SACD,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;SACjB,KAAK,EAAE,CAAC;IAEX,IAAI,CAAC,KAAK;QAAE,OAAO;IAEnB,OAAO,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,WAAwB,EACxB,OAAwD;IAExD,MAAM,kBAAkB,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;IAE1C,MAAM,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;QACjE,kBAAkB;QAClB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC;QACnC,GAAG,EAAE,8BAA8B;QACnC,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,GAAG,WAAW,CAAC,OAAO,iBACrC,OAAO,CAAC,EACV,mBAAmB,kBAAkB,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAE5D,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC;QACnC,GAAG,EAAE,8BAA8B;QACnC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,IAAI,EAAE,CAAC,QAAQ,CAAC;KACjB,CAAC,CAAC;IAEH,MAAM,WAAW,CAAC,WAAW,EAAE,UAAU,EAAE;QACzC,KAAK,EAAE;YACL,OAAO,EAAE,GAAG,OAAO,MAAM,WAAW,CAAC,IAAI,EAAE;YAC3C,IAAI,EAAE,OAAO;YACb,EAAE,EAAE,OAAO,CAAC,KAAK;SAClB;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,WAAwB,EAAE,OAAmB;IACvE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtF,OAAO,WAAW,EAAE,QAAQ,IAAI,WAAW,CAAC,UAAU,CAAC,eAAe,CAAC;AACzE,CAAC;AAED,SAAS,iBAAiB,CAAC,WAA0B;IACnD,IAAI,CAAC,WAAW;QAAE,OAAO;IACzB,QAAQ,WAAW,EAAE,CAAC;QACpB,KAAK,OAAO,CAAC;QACb,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU,CAAC;QAChB,KAAK,eAAe;YAClB,OAAO,WAAW,CAAC;QACrB;YACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,WAAW,GAAG,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC"}