@nestjs-dash/nestjs 0.1.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 (195) hide show
  1. package/dist/client/nestjs-dash.js +2126 -0
  2. package/dist/client/nestjs-dash.js.map +7 -0
  3. package/dist/controllers/admin-api.controller.d.ts +41 -0
  4. package/dist/controllers/admin-api.controller.d.ts.map +1 -0
  5. package/dist/controllers/admin-api.controller.js +299 -0
  6. package/dist/controllers/admin-api.controller.js.map +1 -0
  7. package/dist/controllers/admin-auth.controller.d.ts +17 -0
  8. package/dist/controllers/admin-auth.controller.d.ts.map +1 -0
  9. package/dist/controllers/admin-auth.controller.js +111 -0
  10. package/dist/controllers/admin-auth.controller.js.map +1 -0
  11. package/dist/controllers/admin-upload.controller.d.ts +50 -0
  12. package/dist/controllers/admin-upload.controller.d.ts.map +1 -0
  13. package/dist/controllers/admin-upload.controller.js +210 -0
  14. package/dist/controllers/admin-upload.controller.js.map +1 -0
  15. package/dist/controllers/admin.controller.d.ts +69 -0
  16. package/dist/controllers/admin.controller.d.ts.map +1 -0
  17. package/dist/controllers/admin.controller.js +1062 -0
  18. package/dist/controllers/admin.controller.js.map +1 -0
  19. package/dist/decorators/admin-action.decorator.d.ts +4 -0
  20. package/dist/decorators/admin-action.decorator.d.ts.map +1 -0
  21. package/dist/decorators/admin-action.decorator.js +6 -0
  22. package/dist/decorators/admin-action.decorator.js.map +1 -0
  23. package/dist/decorators/admin-page.decorator.d.ts +3 -0
  24. package/dist/decorators/admin-page.decorator.d.ts.map +1 -0
  25. package/dist/decorators/admin-page.decorator.js +6 -0
  26. package/dist/decorators/admin-page.decorator.js.map +1 -0
  27. package/dist/decorators/admin-resource.decorator.d.ts +3 -0
  28. package/dist/decorators/admin-resource.decorator.d.ts.map +1 -0
  29. package/dist/decorators/admin-resource.decorator.js +6 -0
  30. package/dist/decorators/admin-resource.decorator.js.map +1 -0
  31. package/dist/features/audit/audit.interceptor.d.ts +17 -0
  32. package/dist/features/audit/audit.interceptor.d.ts.map +1 -0
  33. package/dist/features/audit/audit.interceptor.js +94 -0
  34. package/dist/features/audit/audit.interceptor.js.map +1 -0
  35. package/dist/features/audit/index.d.ts +2 -0
  36. package/dist/features/audit/index.d.ts.map +1 -0
  37. package/dist/features/audit/index.js +2 -0
  38. package/dist/features/audit/index.js.map +1 -0
  39. package/dist/features/auth/auth.types.d.ts +13 -0
  40. package/dist/features/auth/auth.types.d.ts.map +1 -0
  41. package/dist/features/auth/auth.types.js +2 -0
  42. package/dist/features/auth/auth.types.js.map +1 -0
  43. package/dist/features/auth/index.d.ts +12 -0
  44. package/dist/features/auth/index.d.ts.map +1 -0
  45. package/dist/features/auth/index.js +7 -0
  46. package/dist/features/auth/index.js.map +1 -0
  47. package/dist/features/auth/public.decorator.d.ts +3 -0
  48. package/dist/features/auth/public.decorator.d.ts.map +1 -0
  49. package/dist/features/auth/public.decorator.js +4 -0
  50. package/dist/features/auth/public.decorator.js.map +1 -0
  51. package/dist/features/auth/resolvers/credentials.resolver.d.ts +10 -0
  52. package/dist/features/auth/resolvers/credentials.resolver.d.ts.map +1 -0
  53. package/dist/features/auth/resolvers/credentials.resolver.js +35 -0
  54. package/dist/features/auth/resolvers/credentials.resolver.js.map +1 -0
  55. package/dist/features/auth/resolvers/custom.resolver.d.ts +7 -0
  56. package/dist/features/auth/resolvers/custom.resolver.d.ts.map +1 -0
  57. package/dist/features/auth/resolvers/custom.resolver.js +9 -0
  58. package/dist/features/auth/resolvers/custom.resolver.js.map +1 -0
  59. package/dist/features/auth/resolvers/jwt.resolver.d.ts +10 -0
  60. package/dist/features/auth/resolvers/jwt.resolver.d.ts.map +1 -0
  61. package/dist/features/auth/resolvers/jwt.resolver.js +24 -0
  62. package/dist/features/auth/resolvers/jwt.resolver.js.map +1 -0
  63. package/dist/features/auth/resolvers/passport.resolver.d.ts +9 -0
  64. package/dist/features/auth/resolvers/passport.resolver.d.ts.map +1 -0
  65. package/dist/features/auth/resolvers/passport.resolver.js +15 -0
  66. package/dist/features/auth/resolvers/passport.resolver.js.map +1 -0
  67. package/dist/features/auth/session.d.ts +9 -0
  68. package/dist/features/auth/session.d.ts.map +1 -0
  69. package/dist/features/auth/session.js +55 -0
  70. package/dist/features/auth/session.js.map +1 -0
  71. package/dist/features/media/enrich.d.ts +13 -0
  72. package/dist/features/media/enrich.d.ts.map +1 -0
  73. package/dist/features/media/enrich.js +56 -0
  74. package/dist/features/media/enrich.js.map +1 -0
  75. package/dist/features/media/index.d.ts +3 -0
  76. package/dist/features/media/index.d.ts.map +1 -0
  77. package/dist/features/media/index.js +3 -0
  78. package/dist/features/media/index.js.map +1 -0
  79. package/dist/features/media/media.helpers.d.ts +13 -0
  80. package/dist/features/media/media.helpers.d.ts.map +1 -0
  81. package/dist/features/media/media.helpers.js +63 -0
  82. package/dist/features/media/media.helpers.js.map +1 -0
  83. package/dist/guards/admin-auth.guard.d.ts +17 -0
  84. package/dist/guards/admin-auth.guard.d.ts.map +1 -0
  85. package/dist/guards/admin-auth.guard.js +82 -0
  86. package/dist/guards/admin-auth.guard.js.map +1 -0
  87. package/dist/guards/admin-policy.guard.d.ts +10 -0
  88. package/dist/guards/admin-policy.guard.d.ts.map +1 -0
  89. package/dist/guards/admin-policy.guard.js +60 -0
  90. package/dist/guards/admin-policy.guard.js.map +1 -0
  91. package/dist/helpers/action.helpers.d.ts +6 -0
  92. package/dist/helpers/action.helpers.d.ts.map +1 -0
  93. package/dist/helpers/action.helpers.js +14 -0
  94. package/dist/helpers/action.helpers.js.map +1 -0
  95. package/dist/helpers/data-source.helpers.d.ts +4 -0
  96. package/dist/helpers/data-source.helpers.d.ts.map +1 -0
  97. package/dist/helpers/data-source.helpers.js +14 -0
  98. package/dist/helpers/data-source.helpers.js.map +1 -0
  99. package/dist/helpers/icons.d.ts +8 -0
  100. package/dist/helpers/icons.d.ts.map +1 -0
  101. package/dist/helpers/icons.js +50 -0
  102. package/dist/helpers/icons.js.map +1 -0
  103. package/dist/helpers/nav-collapse.helper.d.ts +6 -0
  104. package/dist/helpers/nav-collapse.helper.d.ts.map +1 -0
  105. package/dist/helpers/nav-collapse.helper.js +25 -0
  106. package/dist/helpers/nav-collapse.helper.js.map +1 -0
  107. package/dist/helpers/relation.helpers.d.ts +17 -0
  108. package/dist/helpers/relation.helpers.d.ts.map +1 -0
  109. package/dist/helpers/relation.helpers.js +98 -0
  110. package/dist/helpers/relation.helpers.js.map +1 -0
  111. package/dist/helpers/shell-assets.helper.d.ts +6 -0
  112. package/dist/helpers/shell-assets.helper.d.ts.map +1 -0
  113. package/dist/helpers/shell-assets.helper.js +14 -0
  114. package/dist/helpers/shell-assets.helper.js.map +1 -0
  115. package/dist/index.d.ts +29 -0
  116. package/dist/index.d.ts.map +1 -0
  117. package/dist/index.js +27 -0
  118. package/dist/index.js.map +1 -0
  119. package/dist/modules/admin-api-host.module.d.ts +3 -0
  120. package/dist/modules/admin-api-host.module.d.ts.map +1 -0
  121. package/dist/modules/admin-api-host.module.js +17 -0
  122. package/dist/modules/admin-api-host.module.js.map +1 -0
  123. package/dist/modules/admin-core.module.d.ts +3 -0
  124. package/dist/modules/admin-core.module.d.ts.map +1 -0
  125. package/dist/modules/admin-core.module.js +37 -0
  126. package/dist/modules/admin-core.module.js.map +1 -0
  127. package/dist/modules/admin-feature.module.d.ts +3 -0
  128. package/dist/modules/admin-feature.module.d.ts.map +1 -0
  129. package/dist/modules/admin-feature.module.js +14 -0
  130. package/dist/modules/admin-feature.module.js.map +1 -0
  131. package/dist/modules/admin-ui-host.module.d.ts +3 -0
  132. package/dist/modules/admin-ui-host.module.d.ts.map +1 -0
  133. package/dist/modules/admin-ui-host.module.js +19 -0
  134. package/dist/modules/admin-ui-host.module.js.map +1 -0
  135. package/dist/modules/admin.module.d.ts +18 -0
  136. package/dist/modules/admin.module.d.ts.map +1 -0
  137. package/dist/modules/admin.module.js +197 -0
  138. package/dist/modules/admin.module.js.map +1 -0
  139. package/dist/plugin-contracts.d.ts +88 -0
  140. package/dist/plugin-contracts.d.ts.map +1 -0
  141. package/dist/plugin-contracts.js +4 -0
  142. package/dist/plugin-contracts.js.map +1 -0
  143. package/dist/plugins/openapi/admin-openapi.d.ts +21 -0
  144. package/dist/plugins/openapi/admin-openapi.d.ts.map +1 -0
  145. package/dist/plugins/openapi/admin-openapi.js +237 -0
  146. package/dist/plugins/openapi/admin-openapi.js.map +1 -0
  147. package/dist/providers/admin-page.explorer.d.ts +8 -0
  148. package/dist/providers/admin-page.explorer.d.ts.map +1 -0
  149. package/dist/providers/admin-page.explorer.js +43 -0
  150. package/dist/providers/admin-page.explorer.js.map +1 -0
  151. package/dist/providers/admin-page.registry.d.ts +9 -0
  152. package/dist/providers/admin-page.registry.d.ts.map +1 -0
  153. package/dist/providers/admin-page.registry.js +39 -0
  154. package/dist/providers/admin-page.registry.js.map +1 -0
  155. package/dist/providers/admin-panel.bootstrap.d.ts +23 -0
  156. package/dist/providers/admin-panel.bootstrap.d.ts.map +1 -0
  157. package/dist/providers/admin-panel.bootstrap.js +122 -0
  158. package/dist/providers/admin-panel.bootstrap.js.map +1 -0
  159. package/dist/providers/admin-resource.explorer.d.ts +8 -0
  160. package/dist/providers/admin-resource.explorer.d.ts.map +1 -0
  161. package/dist/providers/admin-resource.explorer.js +43 -0
  162. package/dist/providers/admin-resource.explorer.js.map +1 -0
  163. package/dist/providers/admin-resource.registry.d.ts +9 -0
  164. package/dist/providers/admin-resource.registry.d.ts.map +1 -0
  165. package/dist/providers/admin-resource.registry.js +39 -0
  166. package/dist/providers/admin-resource.registry.js.map +1 -0
  167. package/dist/react/admin-app.d.ts +14 -0
  168. package/dist/react/admin-app.d.ts.map +1 -0
  169. package/dist/react/admin-app.js +421 -0
  170. package/dist/react/admin-app.js.map +1 -0
  171. package/dist/react/document.d.ts +13 -0
  172. package/dist/react/document.d.ts.map +1 -0
  173. package/dist/react/document.js +47 -0
  174. package/dist/react/document.js.map +1 -0
  175. package/dist/react/nav-client.d.ts +10 -0
  176. package/dist/react/nav-client.d.ts.map +1 -0
  177. package/dist/react/nav-client.js +153 -0
  178. package/dist/react/nav-client.js.map +1 -0
  179. package/dist/react/theme.d.ts +6 -0
  180. package/dist/react/theme.d.ts.map +1 -0
  181. package/dist/react/theme.js +51 -0
  182. package/dist/react/theme.js.map +1 -0
  183. package/dist/react/types.d.ts +107 -0
  184. package/dist/react/types.d.ts.map +1 -0
  185. package/dist/react/types.js +2 -0
  186. package/dist/react/types.js.map +1 -0
  187. package/dist/tokens.d.ts +106 -0
  188. package/dist/tokens.d.ts.map +1 -0
  189. package/dist/tokens.js +74 -0
  190. package/dist/tokens.js.map +1 -0
  191. package/dist/views/admin.views.d.ts +114 -0
  192. package/dist/views/admin.views.d.ts.map +1 -0
  193. package/dist/views/admin.views.js +212 -0
  194. package/dist/views/admin.views.js.map +1 -0
  195. package/package.json +98 -0
@@ -0,0 +1,17 @@
1
+ import { type ResourceAdapter } from '@nestjs-dash/adapter';
2
+ import type { Panel, SerializedRelationManager, SerializedResource } from '@nestjs-dash/core';
3
+ import type { ListQueryView } from '../views/admin.views.js';
4
+ export declare function requireRelationManager(resource: SerializedResource, relationship: string): SerializedRelationManager;
5
+ export declare function requireRelationAdapter(adapter: ResourceAdapter): ResourceAdapter & import("@nestjs-dash/adapter").RelationCapableAdapter;
6
+ export declare function parseRelationManagerQuery(relationship: string, query: Record<string, string | undefined>): ListQueryView;
7
+ export declare function loadRelationSections(panel: Panel, resource: SerializedResource, ownerId: string, rawQuery?: Record<string, string | undefined>): Promise<{
8
+ manager: SerializedRelationManager;
9
+ records: import("@nestjs-dash/adapter").RecordData[];
10
+ meta: import("@nestjs-dash/adapter").PaginatedMeta;
11
+ query: ListQueryView;
12
+ }[]>;
13
+ export declare function resolveBelongsToOptions(panel: Panel, resource: SerializedResource): Promise<Record<string, Array<{
14
+ value: string;
15
+ label: string;
16
+ }>>>;
17
+ //# sourceMappingURL=relation.helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relation.helpers.d.ts","sourceRoot":"","sources":["../../src/helpers/relation.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,KAAK,eAAe,EACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,KAAK,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAG9F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,kBAAkB,EAC5B,YAAY,EAAE,MAAM,GACnB,yBAAyB,CAM3B;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,eAAe,2EAK9D;AAGD,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GACxC,aAAa,CAmBf;AAED,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAM;;;;;KAyBlD;AAED,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,kBAAkB,GAC3B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAAC,CAsBlE"}
@@ -0,0 +1,98 @@
1
+ import { isRelationCapable, } from '@nestjs-dash/adapter';
2
+ import { BadRequestException, NotFoundException } from '@nestjs/common';
3
+ export function requireRelationManager(resource, relationship) {
4
+ const manager = resource.relationManagers.find((item) => item.relationship === relationship);
5
+ if (!manager) {
6
+ throw new NotFoundException(`Relation ${relationship} not found on ${resource.slug}`);
7
+ }
8
+ return manager;
9
+ }
10
+ export function requireRelationAdapter(adapter) {
11
+ if (!isRelationCapable(adapter)) {
12
+ throw new BadRequestException('Adapter does not support relation operations');
13
+ }
14
+ return adapter;
15
+ }
16
+ export function parseRelationManagerQuery(relationship, query) {
17
+ const prefix = `rm.${relationship}.`;
18
+ const filter = {};
19
+ for (const [key, value] of Object.entries(query)) {
20
+ if (key.startsWith(`${prefix}filter.`) && value) {
21
+ filter[key.slice(`${prefix}filter.`.length)] = value;
22
+ }
23
+ }
24
+ const pageRaw = query[`${prefix}page`];
25
+ const limitRaw = query[`${prefix}limit`];
26
+ const page = pageRaw ? Number(pageRaw) : undefined;
27
+ const limit = limitRaw ? Number(limitRaw) : undefined;
28
+ return {
29
+ search: query[`${prefix}search`],
30
+ filter: Object.keys(filter).length > 0 ? filter : undefined,
31
+ filtersOpen: query[`${prefix}filtersOpen`] === '1' || query[`${prefix}filtersOpen`] === 'true',
32
+ page: page != null && Number.isFinite(page) && page > 0 ? Math.trunc(page) : undefined,
33
+ limit: limit != null && Number.isFinite(limit) && limit > 0 ? Math.trunc(limit) : undefined,
34
+ };
35
+ }
36
+ export async function loadRelationSections(panel, resource, ownerId, rawQuery = {}) {
37
+ const adapter = panel.getResourceAdapter(resource.slug);
38
+ if (!adapter || !isRelationCapable(adapter)) {
39
+ return [];
40
+ }
41
+ return Promise.all(resource.relationManagers.map(async (manager) => {
42
+ const viewQuery = parseRelationManagerQuery(manager.relationship, rawQuery);
43
+ const listQuery = {
44
+ page: viewQuery.page ?? 1,
45
+ limit: viewQuery.limit ?? manager.listQueryConfig?.defaultLimit ?? 20,
46
+ search: viewQuery.search,
47
+ filter: viewQuery.filter,
48
+ };
49
+ const page = await adapter.findRelated(ownerId, manager.definition, listQuery);
50
+ return {
51
+ manager,
52
+ records: page.data,
53
+ meta: page.meta,
54
+ query: viewQuery,
55
+ };
56
+ }));
57
+ }
58
+ export async function resolveBelongsToOptions(panel, resource) {
59
+ const options = {};
60
+ for (const field of flattenFormFields(resource.form)) {
61
+ const relationship = field.props.relationship;
62
+ if (!relationship?.resource || relationship.preload === false) {
63
+ continue;
64
+ }
65
+ const name = String(field.name ?? field.props.name ?? '');
66
+ const adapter = panel.getResourceAdapter(resource.slug) ?? panel.getResourceAdapter(relationship.resource);
67
+ if (!adapter || !isRelationCapable(adapter)) {
68
+ continue;
69
+ }
70
+ options[name] = await adapter.searchRelatedOptions({
71
+ resource: relationship.resource,
72
+ titleAttribute: relationship.titleAttribute,
73
+ searchBy: relationship.searchBy,
74
+ });
75
+ }
76
+ return options;
77
+ }
78
+ function flattenFormFields(node) {
79
+ if (!node?.children?.length) {
80
+ return [];
81
+ }
82
+ const result = [];
83
+ const walk = (nodes) => {
84
+ for (const child of nodes) {
85
+ if (child.kind === 'html') {
86
+ continue;
87
+ }
88
+ if (child.children?.length) {
89
+ walk(child.children);
90
+ continue;
91
+ }
92
+ result.push(child);
93
+ }
94
+ };
95
+ walk(node.children);
96
+ return result;
97
+ }
98
+ //# sourceMappingURL=relation.helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relation.helpers.js","sourceRoot":"","sources":["../../src/helpers/relation.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,iBAAiB,GAIpB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGxE,MAAM,UAAU,sBAAsB,CACpC,QAA4B,EAC5B,YAAoB;IAEpB,MAAM,OAAO,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,KAAK,YAAY,CAAC,CAAC;IAC7F,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,iBAAiB,CAAC,YAAY,YAAY,iBAAiB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAwB;IAC7D,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,mBAAmB,CAAC,8CAA8C,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAGD,MAAM,UAAU,yBAAyB,CACvC,YAAoB,EACpB,KAAyC;IAEzC,MAAM,MAAM,GAAG,MAAM,YAAY,GAAG,CAAC;IACrC,MAAM,MAAM,GAAsC,EAAE,CAAC;IACrD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,MAAM,SAAS,CAAC,IAAI,KAAK,EAAE,CAAC;YAChD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC;QACvD,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,MAAM,MAAM,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtD,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,QAAQ,CAAC;QAChC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAC3D,WAAW,EAAE,KAAK,CAAC,GAAG,MAAM,aAAa,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,MAAM,aAAa,CAAC,KAAK,MAAM;QAC9F,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;QACtF,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;KAC5F,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,KAAY,EACZ,QAA4B,EAC5B,OAAe,EACf,WAA+C,EAAE;IAEjD,MAAM,OAAO,GAAG,KAAK,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,CAAC,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,OAAO,CAAC,GAAG,CAChB,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QAC9C,MAAM,SAAS,GAAG,yBAAyB,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAC5E,MAAM,SAAS,GAAc;YAC3B,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC;YACzB,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,OAAO,CAAC,eAAe,EAAE,YAAY,IAAI,EAAE;YACrE,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,MAAM,EAAE,SAAS,CAAC,MAAM;SACzB,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAC/E,OAAO;YACL,OAAO;YACP,OAAO,EAAE,IAAI,CAAC,IAAI;YAClB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,SAAS;SACjB,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,KAAY,EACZ,QAA4B;IAE5B,MAAM,OAAO,GAA4D,EAAE,CAAC;IAC5E,KAAK,MAAM,KAAK,IAAI,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,YAEpB,CAAC;QACd,IAAI,CAAC,YAAY,EAAE,QAAQ,IAAI,YAAY,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YAC9D,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC1D,MAAM,OAAO,GACX,KAAK,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC7F,IAAI,CAAC,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5C,SAAS;QACX,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,oBAAoB,CAAC;YACjD,QAAQ,EAAE,YAAY,CAAC,QAAQ;YAC/B,cAAc,EAAE,YAAY,CAAC,cAAc;YAC3C,QAAQ,EAAE,YAAY,CAAC,QAAQ;SAChC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAmC;IAC5D,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,CAAC,KAAmB,EAAE,EAAE;QACnC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;YAC1B,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC1B,SAAS;YACX,CAAC;YACD,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;gBAC3B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACrB,SAAS;YACX,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpB,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { Panel } from '@nestjs-dash/core';
2
+ import type { Request } from 'express';
3
+ import type { ShellModel } from '../react/types.js';
4
+ export type ShellAssets = Pick<ShellModel, 'theme' | 'stylesheetHref' | 'scriptHref' | 'themeOverrides'>;
5
+ export declare function resolveShellAssets(panel: Panel, req?: Request): ShellAssets;
6
+ //# sourceMappingURL=shell-assets.helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell-assets.helper.d.ts","sourceRoot":"","sources":["../../src/helpers/shell-assets.helper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,MAAM,WAAW,GAAG,IAAI,CAC5B,UAAU,EACV,OAAO,GAAG,gBAAgB,GAAG,YAAY,GAAG,gBAAgB,CAC7D,CAAC;AAQF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,WAAW,CAU3E"}
@@ -0,0 +1,14 @@
1
+ import { parseCookies } from '../features/auth/session.js';
2
+ import { THEME_COOKIE_NAME, isThemeCookieValue } from '../react/theme.js';
3
+ export function resolveShellAssets(panel, req) {
4
+ const path = panel.getPath();
5
+ const cookieTheme = parseCookies(req?.headers.cookie)[THEME_COOKIE_NAME];
6
+ const theme = isThemeCookieValue(cookieTheme) ? cookieTheme : panel.getTheme();
7
+ return {
8
+ theme,
9
+ stylesheetHref: panel.getStylesheetUrl() ?? `${path}/_/assets/nestjs-dash.css`,
10
+ scriptHref: `${path}/_/assets/nestjs-dash.js`,
11
+ themeOverrides: panel.getThemeOverrides(),
12
+ };
13
+ }
14
+ //# sourceMappingURL=shell-assets.helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell-assets.helper.js","sourceRoot":"","sources":["../../src/helpers/shell-assets.helper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAc1E,MAAM,UAAU,kBAAkB,CAAC,KAAY,EAAE,GAAa;IAC5D,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IAC7B,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IACzE,MAAM,KAAK,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/E,OAAO;QACL,KAAK;QACL,cAAc,EAAE,KAAK,CAAC,gBAAgB,EAAE,IAAI,GAAG,IAAI,2BAA2B;QAC9E,UAAU,EAAE,GAAG,IAAI,0BAA0B;QAC7C,cAAc,EAAE,KAAK,CAAC,iBAAiB,EAAE;KAC1C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,29 @@
1
+ export { AdminApiHostModule } from './modules/admin-api-host.module.js';
2
+ export { AdminCoreModule } from './modules/admin-core.module.js';
3
+ export { AdminUiHostModule } from './modules/admin-ui-host.module.js';
4
+ export { AdminModule } from './modules/admin.module.js';
5
+ export { AdminApiController } from './controllers/admin-api.controller.js';
6
+ export { AdminAuthController } from './controllers/admin-auth.controller.js';
7
+ export { AdminUploadController } from './controllers/admin-upload.controller.js';
8
+ export { AdminController } from './controllers/admin.controller.js';
9
+ export { ADMIN_ACTION_METADATA, AdminAction, type StandardAdminAction } from './decorators/admin-action.decorator.js';
10
+ export { ADMIN_PAGE_METADATA, AdminPage } from './decorators/admin-page.decorator.js';
11
+ export { ADMIN_RESOURCE_METADATA, AdminResource } from './decorators/admin-resource.decorator.js';
12
+ export { AdminAuditInterceptor } from './features/audit/index.js';
13
+ export { AdminPublic, credentialsAuthResolver, customAuthResolver, jwtAuthResolver, passportAuthResolver } from './features/auth/index.js';
14
+ export type { AdminAuthResolver, AdminAuthResult, AdminAuthUser, CredentialsAuthResolverOptions, JwtAuthResolverOptions, PassportAuthResolverOptions } from './features/auth/index.js';
15
+ export { collectImageUploadFields, extractMediaFields, parseMediaPayload } from './features/media/media.helpers.js';
16
+ export { AdminAuthGuard } from './guards/admin-auth.guard.js';
17
+ export { AdminPolicyGuard } from './guards/admin-policy.guard.js';
18
+ export { isDataSourceLike, requireDataSource } from './helpers/data-source.helpers.js';
19
+ export { renderIconHtml, toLucideIconName } from './helpers/icons.js';
20
+ export type { RenderIconOptions } from './helpers/icons.js';
21
+ export { buildAdminOpenApiDocument, setupAdminSwagger, type AdminOpenApiDocument } from './plugins/openapi/admin-openapi.js';
22
+ export { AdminPageExplorer } from './providers/admin-page.explorer.js';
23
+ export { AdminPageRegistry, clearRegisteredAdminPages, getRegisteredAdminPages, registerAdminPages } from './providers/admin-page.registry.js';
24
+ export { AdminPanelBootstrap } from './providers/admin-panel.bootstrap.js';
25
+ export { AdminResourceExplorer } from './providers/admin-resource.explorer.js';
26
+ export { AdminResourceRegistry, clearRegisteredAdminResources, getRegisteredAdminResources, registerAdminResources } from './providers/admin-resource.registry.js';
27
+ export * from './tokens.js';
28
+ export { escapeHtml, renderLabeledContent } from './views/admin.views.js';
29
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EACH,qBAAqB,EACrB,WAAW,EACX,KAAK,mBAAmB,EAC3B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGlE,OAAO,EACH,WAAW,EACX,uBAAuB,EACvB,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACvB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACR,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,8BAA8B,EAC9B,sBAAsB,EACtB,2BAA2B,EAC9B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACH,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,EACpB,MAAM,mCAAmC,CAAC;AAO3C,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtE,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EACH,yBAAyB,EACzB,iBAAiB,EACjB,KAAK,oBAAoB,EAC5B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EACH,iBAAiB,EACjB,yBAAyB,EACzB,uBAAuB,EACvB,kBAAkB,EACrB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,EACH,qBAAqB,EACrB,6BAA6B,EAC7B,2BAA2B,EAC3B,sBAAsB,EACzB,MAAM,wCAAwC,CAAC;AAChD,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,27 @@
1
+ export { AdminApiHostModule } from './modules/admin-api-host.module.js';
2
+ export { AdminCoreModule } from './modules/admin-core.module.js';
3
+ export { AdminUiHostModule } from './modules/admin-ui-host.module.js';
4
+ export { AdminModule } from './modules/admin.module.js';
5
+ export { AdminApiController } from './controllers/admin-api.controller.js';
6
+ export { AdminAuthController } from './controllers/admin-auth.controller.js';
7
+ export { AdminUploadController } from './controllers/admin-upload.controller.js';
8
+ export { AdminController } from './controllers/admin.controller.js';
9
+ export { ADMIN_ACTION_METADATA, AdminAction } from './decorators/admin-action.decorator.js';
10
+ export { ADMIN_PAGE_METADATA, AdminPage } from './decorators/admin-page.decorator.js';
11
+ export { ADMIN_RESOURCE_METADATA, AdminResource } from './decorators/admin-resource.decorator.js';
12
+ export { AdminAuditInterceptor } from './features/audit/index.js';
13
+ export { AdminPublic, credentialsAuthResolver, customAuthResolver, jwtAuthResolver, passportAuthResolver } from './features/auth/index.js';
14
+ export { collectImageUploadFields, extractMediaFields, parseMediaPayload } from './features/media/media.helpers.js';
15
+ export { AdminAuthGuard } from './guards/admin-auth.guard.js';
16
+ export { AdminPolicyGuard } from './guards/admin-policy.guard.js';
17
+ export { isDataSourceLike, requireDataSource } from './helpers/data-source.helpers.js';
18
+ export { renderIconHtml, toLucideIconName } from './helpers/icons.js';
19
+ export { buildAdminOpenApiDocument, setupAdminSwagger } from './plugins/openapi/admin-openapi.js';
20
+ export { AdminPageExplorer } from './providers/admin-page.explorer.js';
21
+ export { AdminPageRegistry, clearRegisteredAdminPages, getRegisteredAdminPages, registerAdminPages } from './providers/admin-page.registry.js';
22
+ export { AdminPanelBootstrap } from './providers/admin-panel.bootstrap.js';
23
+ export { AdminResourceExplorer } from './providers/admin-resource.explorer.js';
24
+ export { AdminResourceRegistry, clearRegisteredAdminResources, getRegisteredAdminResources, registerAdminResources } from './providers/admin-resource.registry.js';
25
+ export * from './tokens.js';
26
+ export { escapeHtml, renderLabeledContent } from './views/admin.views.js';
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EACH,qBAAqB,EACrB,WAAW,EAEd,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGlE,OAAO,EACH,WAAW,EACX,uBAAuB,EACvB,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACvB,MAAM,0BAA0B,CAAC;AASlC,OAAO,EACH,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,EACpB,MAAM,mCAAmC,CAAC;AAO3C,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtE,OAAO,EACH,yBAAyB,EACzB,iBAAiB,EAEpB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EACH,iBAAiB,EACjB,yBAAyB,EACzB,uBAAuB,EACvB,kBAAkB,EACrB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,EACH,qBAAqB,EACrB,6BAA6B,EAC7B,2BAA2B,EAC3B,sBAAsB,EACzB,MAAM,wCAAwC,CAAC;AAChD,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare class AdminApiHostModule {
2
+ }
3
+ //# sourceMappingURL=admin-api-host.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-api-host.module.d.ts","sourceRoot":"","sources":["../../src/modules/admin-api-host.module.ts"],"names":[],"mappings":"AAGA,qBAGa,kBAAkB;CAAG"}
@@ -0,0 +1,17 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { Module } from '@nestjs/common';
8
+ import { AdminApiController } from '../controllers/admin-api.controller.js';
9
+ let AdminApiHostModule = class AdminApiHostModule {
10
+ };
11
+ AdminApiHostModule = __decorate([
12
+ Module({
13
+ controllers: [AdminApiController],
14
+ })
15
+ ], AdminApiHostModule);
16
+ export { AdminApiHostModule };
17
+ //# sourceMappingURL=admin-api-host.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-api-host.module.js","sourceRoot":"","sources":["../../src/modules/admin-api-host.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAKrE,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;CAAG,CAAA;AAArB,kBAAkB;IAH9B,MAAM,CAAC;QACN,WAAW,EAAE,CAAC,kBAAkB,CAAC;KAClC,CAAC;GACW,kBAAkB,CAAG"}
@@ -0,0 +1,3 @@
1
+ export declare class AdminCoreModule {
2
+ }
3
+ //# sourceMappingURL=admin-core.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-core.module.d.ts","sourceRoot":"","sources":["../../src/modules/admin-core.module.ts"],"names":[],"mappings":"AASA,qBAqBa,eAAe;CAAG"}
@@ -0,0 +1,37 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { Global, Module } from '@nestjs/common';
8
+ import { AdminPageRegistry } from '../providers/admin-page.registry.js';
9
+ import { AdminResourceRegistry } from '../providers/admin-resource.registry.js';
10
+ import { NESTJS_DASH_PAGE_REGISTRY, NESTJS_DASH_RESOURCE_REGISTRY } from '../tokens.js';
11
+ let AdminCoreModule = class AdminCoreModule {
12
+ };
13
+ AdminCoreModule = __decorate([
14
+ Global(),
15
+ Module({
16
+ providers: [
17
+ AdminResourceRegistry,
18
+ {
19
+ provide: NESTJS_DASH_RESOURCE_REGISTRY,
20
+ useExisting: AdminResourceRegistry,
21
+ },
22
+ AdminPageRegistry,
23
+ {
24
+ provide: NESTJS_DASH_PAGE_REGISTRY,
25
+ useExisting: AdminPageRegistry,
26
+ },
27
+ ],
28
+ exports: [
29
+ AdminResourceRegistry,
30
+ NESTJS_DASH_RESOURCE_REGISTRY,
31
+ AdminPageRegistry,
32
+ NESTJS_DASH_PAGE_REGISTRY,
33
+ ],
34
+ })
35
+ ], AdminCoreModule);
36
+ export { AdminCoreModule };
37
+ //# sourceMappingURL=admin-core.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-core.module.js","sourceRoot":"","sources":["../../src/modules/admin-core.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AA2BjF,IAAM,eAAe,GAArB,MAAM,eAAe;CAAG,CAAA;AAAlB,eAAe;IArB3B,MAAM,EAAE;IACR,MAAM,CAAC;QACN,SAAS,EAAE;YACT,qBAAqB;YACrB;gBACE,OAAO,EAAE,6BAA6B;gBACtC,WAAW,EAAE,qBAAqB;aACnC;YACD,iBAAiB;YACjB;gBACE,OAAO,EAAE,yBAAyB;gBAClC,WAAW,EAAE,iBAAiB;aAC/B;SACF;QACD,OAAO,EAAE;YACP,qBAAqB;YACrB,6BAA6B;YAC7B,iBAAiB;YACjB,yBAAyB;SAC1B;KACF,CAAC;GACW,eAAe,CAAG"}
@@ -0,0 +1,3 @@
1
+ export declare class AdminFeatureHostModule {
2
+ }
3
+ //# sourceMappingURL=admin-feature.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-feature.module.d.ts","sourceRoot":"","sources":["../../src/modules/admin-feature.module.ts"],"names":[],"mappings":"AAGA,qBACa,sBAAsB;CAAG"}
@@ -0,0 +1,14 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { Module } from '@nestjs/common';
8
+ let AdminFeatureHostModule = class AdminFeatureHostModule {
9
+ };
10
+ AdminFeatureHostModule = __decorate([
11
+ Module({})
12
+ ], AdminFeatureHostModule);
13
+ export { AdminFeatureHostModule };
14
+ //# sourceMappingURL=admin-feature.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-feature.module.js","sourceRoot":"","sources":["../../src/modules/admin-feature.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAIjC,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;CAAG,CAAA;AAAzB,sBAAsB;IADlC,MAAM,CAAC,EAAE,CAAC;GACE,sBAAsB,CAAG"}
@@ -0,0 +1,3 @@
1
+ export declare class AdminUiHostModule {
2
+ }
3
+ //# sourceMappingURL=admin-ui-host.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-ui-host.module.d.ts","sourceRoot":"","sources":["../../src/modules/admin-ui-host.module.ts"],"names":[],"mappings":"AAKA,qBAKa,iBAAiB;CAAG"}
@@ -0,0 +1,19 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { Module } from '@nestjs/common';
8
+ import { AdminAuthController } from '../controllers/admin-auth.controller.js';
9
+ import { AdminUploadController } from '../controllers/admin-upload.controller.js';
10
+ import { AdminController } from '../controllers/admin.controller.js';
11
+ let AdminUiHostModule = class AdminUiHostModule {
12
+ };
13
+ AdminUiHostModule = __decorate([
14
+ Module({
15
+ controllers: [AdminAuthController, AdminController, AdminUploadController],
16
+ })
17
+ ], AdminUiHostModule);
18
+ export { AdminUiHostModule };
19
+ //# sourceMappingURL=admin-ui-host.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-ui-host.module.js","sourceRoot":"","sources":["../../src/modules/admin-ui-host.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAO9D,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;CAAG,CAAA;AAApB,iBAAiB;IAL7B,MAAM,CAAC;QAGN,WAAW,EAAE,CAAC,mBAAmB,EAAE,eAAe,EAAE,qBAAqB,CAAC;KAC3E,CAAC;GACW,iBAAiB,CAAG"}
@@ -0,0 +1,18 @@
1
+ import type { ResourceClass } from '@nestjs-dash/core';
2
+ import { type DynamicModule, type INestApplication, type MiddlewareConsumer, type NestModule } from '@nestjs/common';
3
+ import { type AdminModuleOptions } from '../tokens.js';
4
+ export declare class AdminModule implements NestModule {
5
+ static forRoot(options: AdminModuleOptions): DynamicModule;
6
+ static forFeature(resources: ResourceClass[]): DynamicModule;
7
+ static forRootAsync(options: {
8
+ useFactory: (...args: any[]) => Promise<AdminModuleOptions> | AdminModuleOptions;
9
+ inject?: any[];
10
+ path?: string;
11
+ apiPath?: string;
12
+ apiEnabled?: boolean;
13
+ }): DynamicModule;
14
+ private static createModule;
15
+ configure(_consumer: MiddlewareConsumer): void;
16
+ static setupSwagger(app: INestApplication): Promise<void>;
17
+ }
18
+ //# sourceMappingURL=admin.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.module.d.ts","sourceRoot":"","sources":["../../src/modules/admin.module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAEH,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,UAAU,EAElB,MAAM,gBAAgB,CAAC;AAgBxB,OAAO,EAQH,KAAK,kBAAkB,EAE1B,MAAM,cAAc,CAAC;AAuGtB,qBACa,WAAY,YAAW,UAAU;IAC5C,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,aAAa;IAQ1D,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,aAAa;IAU5D,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE;QAG3B,UAAU,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,kBAAkB,CAAC,GAAG,kBAAkB,CAAC;QAEjF,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QAEf,IAAI,CAAC,EAAE,MAAM,CAAC;QAEd,OAAO,CAAC,EAAE,MAAM,CAAC;QAEjB,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,GAAG,aAAa;IAyDjB,OAAO,CAAC,MAAM,CAAC,YAAY;IA+C3B,SAAS,CAAC,SAAS,EAAE,kBAAkB,GAAG,IAAI;WASjC,YAAY,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CAUhE"}
@@ -0,0 +1,197 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var AdminModule_1;
8
+ import { Module, } from '@nestjs/common';
9
+ import { DiscoveryModule, RouterModule } from '@nestjs/core';
10
+ import { isDataSourceLike } from '../helpers/data-source.helpers.js';
11
+ import { NESTJS_DASH_AUDIT_SERVICE, NESTJS_DASH_MEDIA_SERVICE, NESTJS_DASH_STORAGE_SERVICE, } from '../plugin-contracts.js';
12
+ import { AdminPageExplorer } from '../providers/admin-page.explorer.js';
13
+ import { AdminPanelBootstrap } from '../providers/admin-panel.bootstrap.js';
14
+ import { AdminResourceExplorer } from '../providers/admin-resource.explorer.js';
15
+ import { registerAdminResources } from '../providers/admin-resource.registry.js';
16
+ import { NESTJS_DASH_AUTH, NESTJS_DASH_DATA_SOURCE, NESTJS_DASH_OPTIONS, NESTJS_DASH_PANEL, NESTJS_DASH_STORAGE_CONFIG, resolvePanel, } from '../tokens.js';
17
+ import { AdminApiHostModule } from './admin-api-host.module.js';
18
+ import { AdminCoreModule } from './admin-core.module.js';
19
+ import { AdminFeatureHostModule } from './admin-feature.module.js';
20
+ import { AdminUiHostModule } from './admin-ui-host.module.js';
21
+ const STORAGE_PLUGIN_SPECIFIER = '@nestjs-dash/storage';
22
+ const MEDIA_PLUGIN_SPECIFIER = '@nestjs-dash/media';
23
+ const AUDIT_LOG_PLUGIN_SPECIFIER = '@nestjs-dash/audit-log';
24
+ function pluginServiceProviders() {
25
+ return [
26
+ {
27
+ provide: NESTJS_DASH_STORAGE_CONFIG,
28
+ useFactory: (options) => options.storage ?? {},
29
+ inject: [NESTJS_DASH_OPTIONS],
30
+ },
31
+ {
32
+ provide: NESTJS_DASH_STORAGE_SERVICE,
33
+ useFactory: async (config) => {
34
+ const { StorageService } = (await import(STORAGE_PLUGIN_SPECIFIER));
35
+ return new StorageService(config);
36
+ },
37
+ inject: [NESTJS_DASH_STORAGE_CONFIG],
38
+ },
39
+ {
40
+ provide: NESTJS_DASH_MEDIA_SERVICE,
41
+ useFactory: async (storage, options) => {
42
+ if (options.media?.enabled !== true) {
43
+ return null;
44
+ }
45
+ const { MediaService } = (await import(MEDIA_PLUGIN_SPECIFIER));
46
+ return new MediaService(storage, options);
47
+ },
48
+ inject: [NESTJS_DASH_STORAGE_SERVICE, NESTJS_DASH_OPTIONS],
49
+ },
50
+ {
51
+ provide: NESTJS_DASH_AUDIT_SERVICE,
52
+ useFactory: async (options) => {
53
+ if (options.audit?.enabled !== true) {
54
+ return null;
55
+ }
56
+ const { AuditService } = (await import(AUDIT_LOG_PLUGIN_SPECIFIER));
57
+ return new AuditService(options);
58
+ },
59
+ inject: [NESTJS_DASH_OPTIONS],
60
+ },
61
+ ];
62
+ }
63
+ function dataSourceProvider() {
64
+ return {
65
+ provide: NESTJS_DASH_DATA_SOURCE,
66
+ useFactory: (options) => isDataSourceLike(options.dataSource) ? options.dataSource : null,
67
+ inject: [NESTJS_DASH_OPTIONS],
68
+ };
69
+ }
70
+ let AdminModule = AdminModule_1 = class AdminModule {
71
+ static forRoot(options) {
72
+ return this.createModule(options);
73
+ }
74
+ static forFeature(resources) {
75
+ registerAdminResources(resources);
76
+ return {
77
+ module: AdminFeatureHostModule,
78
+ imports: [AdminCoreModule],
79
+ };
80
+ }
81
+ static forRootAsync(options) {
82
+ const uiPath = (options.path ?? 'admin').replace(/^\//, '');
83
+ const apiEnabled = options.apiEnabled !== false;
84
+ const apiPath = (options.apiPath ?? 'api').replace(/^\//, '');
85
+ return {
86
+ module: AdminModule_1,
87
+ global: true,
88
+ imports: [
89
+ DiscoveryModule,
90
+ AdminCoreModule,
91
+ RouterModule.register([
92
+ { path: uiPath, module: AdminUiHostModule },
93
+ ...(apiEnabled ? [{ path: apiPath, module: AdminApiHostModule }] : []),
94
+ ]),
95
+ AdminUiHostModule,
96
+ ...(apiEnabled ? [AdminApiHostModule] : []),
97
+ ],
98
+ providers: [
99
+ {
100
+ provide: NESTJS_DASH_OPTIONS,
101
+ useFactory: async (...args) => {
102
+ const resolved = await options.useFactory(...args);
103
+ const panel = resolvePanel(resolved.panel);
104
+ return { ...resolved, panel };
105
+ },
106
+ inject: (options.inject ?? []),
107
+ },
108
+ {
109
+ provide: NESTJS_DASH_PANEL,
110
+ useFactory: async (resolved) => resolvePanel(resolved.panel),
111
+ inject: [NESTJS_DASH_OPTIONS],
112
+ },
113
+ {
114
+ provide: NESTJS_DASH_AUTH,
115
+ useFactory: async (resolved) => resolved.auth ?? {},
116
+ inject: [NESTJS_DASH_OPTIONS],
117
+ },
118
+ ...pluginServiceProviders(),
119
+ dataSourceProvider(),
120
+ AdminResourceExplorer,
121
+ AdminPageExplorer,
122
+ AdminPanelBootstrap,
123
+ ],
124
+ exports: [
125
+ NESTJS_DASH_OPTIONS,
126
+ NESTJS_DASH_PANEL,
127
+ NESTJS_DASH_AUTH,
128
+ NESTJS_DASH_DATA_SOURCE,
129
+ AdminCoreModule,
130
+ NESTJS_DASH_STORAGE_SERVICE,
131
+ NESTJS_DASH_MEDIA_SERVICE,
132
+ NESTJS_DASH_AUDIT_SERVICE,
133
+ ],
134
+ };
135
+ }
136
+ static createModule(options) {
137
+ const panel = resolvePanel(options.panel);
138
+ const normalized = { ...options, panel };
139
+ const auth = options.auth ?? {};
140
+ const api = options.api ?? {};
141
+ const uiPath = panel.getPath().replace(/^\//, '');
142
+ const apiEnabled = api.enabled !== false;
143
+ const apiPath = (api.path ?? panel.getApiPath()).replace(/^\//, '');
144
+ const providers = [
145
+ { provide: NESTJS_DASH_OPTIONS, useValue: normalized },
146
+ { provide: NESTJS_DASH_PANEL, useValue: panel },
147
+ { provide: NESTJS_DASH_AUTH, useValue: auth },
148
+ ...pluginServiceProviders(),
149
+ dataSourceProvider(),
150
+ AdminResourceExplorer,
151
+ AdminPageExplorer,
152
+ AdminPanelBootstrap,
153
+ ];
154
+ return {
155
+ module: AdminModule_1,
156
+ global: true,
157
+ imports: [
158
+ DiscoveryModule,
159
+ AdminCoreModule,
160
+ RouterModule.register([
161
+ { path: uiPath, module: AdminUiHostModule },
162
+ ...(apiEnabled ? [{ path: apiPath, module: AdminApiHostModule }] : []),
163
+ ]),
164
+ AdminUiHostModule,
165
+ ...(apiEnabled ? [AdminApiHostModule] : []),
166
+ ],
167
+ providers,
168
+ exports: [
169
+ NESTJS_DASH_OPTIONS,
170
+ NESTJS_DASH_PANEL,
171
+ NESTJS_DASH_AUTH,
172
+ NESTJS_DASH_DATA_SOURCE,
173
+ AdminCoreModule,
174
+ NESTJS_DASH_STORAGE_SERVICE,
175
+ NESTJS_DASH_MEDIA_SERVICE,
176
+ NESTJS_DASH_AUDIT_SERVICE,
177
+ ],
178
+ };
179
+ }
180
+ configure(_consumer) {
181
+ }
182
+ static async setupSwagger(app) {
183
+ const options = app.get(NESTJS_DASH_OPTIONS);
184
+ if (!options.swagger) {
185
+ return;
186
+ }
187
+ const panel = app.get(NESTJS_DASH_PANEL);
188
+ const swaggerOptions = options.swagger === true ? {} : options.swagger;
189
+ const { setupAdminSwagger } = await import('../plugins/openapi/admin-openapi.js');
190
+ await setupAdminSwagger(app, panel, swaggerOptions);
191
+ }
192
+ };
193
+ AdminModule = AdminModule_1 = __decorate([
194
+ Module({})
195
+ ], AdminModule);
196
+ export { AdminModule };
197
+ //# sourceMappingURL=admin.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.module.js","sourceRoot":"","sources":["../../src/modules/admin.module.ts"],"names":[],"mappings":"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"}