nextpress-core 1.1.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/cli/install.js +27 -0
  2. package/{dist/acf-functions/core/acf-builder.js → lib/acf-functions/core/acf-builder.ts} +45 -17
  3. package/{dist/acf-functions/core/acf-component-autoloader.js → lib/acf-functions/core/acf-component-autoloader.ts} +13 -7
  4. package/{dist/acf-functions/core/acf-field-group-autoloader.js → lib/acf-functions/core/acf-field-group-autoloader.ts} +11 -5
  5. package/{dist/acf-functions/services/define-field-group.d.ts → lib/acf-functions/services/define-field-group.ts} +4 -1
  6. package/{dist/acf-functions/services/define-layout.d.ts → lib/acf-functions/services/define-layout.ts} +4 -1
  7. package/lib/acf-functions/services/map-fields/helpers/map-choice-object.ts +20 -0
  8. package/{dist/acf-functions/services/map-fields/map-fields.js → lib/acf-functions/services/map-fields/map-fields.ts} +128 -89
  9. package/{dist/acf-functions/types/acf-field-group.d.ts → lib/acf-functions/types/acf-field-group.ts} +49 -28
  10. package/lib/acf-functions/types/acf-field.ts +2853 -0
  11. package/lib/acf-functions/types/acf-layout.ts +22 -0
  12. package/lib/acf-functions/types/components/field-props.ts +189 -0
  13. package/{dist/acf-functions/types/components/nextpress-component.d.ts → lib/acf-functions/types/components/nextpress-component.ts} +4 -3
  14. package/lib/ambient.d.ts +16 -0
  15. package/{dist/entities/common.d.ts → lib/entities/common.ts} +6 -4
  16. package/{dist/entities/option/option.interface.d.ts → lib/entities/option/option.interface.ts} +3 -3
  17. package/{dist/entities/option/option.js → lib/entities/option/option.ts} +21 -14
  18. package/{dist/entities/post/post.interface.d.ts → lib/entities/post/post.interface.ts} +26 -21
  19. package/lib/entities/post/post.ts +209 -0
  20. package/{dist/entities/term/term.interface.d.ts → lib/entities/term/term.interface.ts} +3 -3
  21. package/lib/entities/term/term.ts +82 -0
  22. package/{dist/entities/user/user.interface.d.ts → lib/entities/user/user.interface.ts} +2 -1
  23. package/lib/entities/user/user.ts +86 -0
  24. package/{dist/globals/entity-loader/entity-loader-base.js → lib/globals/entity-loader/entity-loader-base.ts} +64 -10
  25. package/{dist/globals/entity-loader/entity-loader.interface.d.ts → lib/globals/entity-loader/entity-loader.ts} +2 -4
  26. package/lib/globals/entity-loader/option-loader.ts +56 -0
  27. package/lib/globals/entity-loader/post-loader.ts +60 -0
  28. package/lib/globals/entity-loader/term-loader.ts +60 -0
  29. package/lib/globals/entity-loader/user-loader.ts +61 -0
  30. package/lib/globals/get-field/get-field.ts +76 -0
  31. package/{dist/globals/globals.js → lib/globals/globals.ts} +8 -3
  32. package/{dist/globals/nextpress-config/nextpress-config.interface.d.ts → lib/globals/nextpress-config/nextpress-config.interface.ts} +10 -6
  33. package/lib/globals/nextpress-config/nextpress-config.ts +8 -0
  34. package/lib/globals/queried-object/queried-object.ts +124 -0
  35. package/{dist/repository/optionquery/option-query-args.d.ts → lib/repository/optionquery/option-query-args.ts} +5 -2
  36. package/lib/repository/optionquery/option-query.ts +29 -0
  37. package/{dist/repository/postquery/post-query-args.d.ts → lib/repository/postquery/post-query-args.ts} +10 -6
  38. package/lib/repository/postquery/post-query.ts +282 -0
  39. package/{dist/repository/termquery/term-query-args.d.ts → lib/repository/termquery/term-query-args.ts} +16 -6
  40. package/lib/repository/termquery/term-query.ts +244 -0
  41. package/{dist/repository/userquery/user-query-args.d.ts → lib/repository/userquery/user-query-args.ts} +19 -7
  42. package/{dist/repository/userquery/user-query.js → lib/repository/userquery/user-query.ts} +93 -76
  43. package/{dist/router/helpers.js → lib/router/helpers.ts} +4 -4
  44. package/{dist/router/nextpress-layout.js → lib/router/nextpress-layout.tsx} +28 -9
  45. package/{dist/router/routes/not-found-page.js → lib/router/nextpress-not-found-route.tsx} +7 -5
  46. package/{dist/router/nextpress-proxy.js → lib/router/nextpress-proxy.ts} +15 -3
  47. package/{dist/router/nextpress-static-params.js → lib/router/nextpress-static-params.ts} +17 -5
  48. package/{dist/router/router.js → lib/router/router.tsx} +29 -22
  49. package/{dist/router/routes/api/api-get-admin-bar.js → lib/router/routes/api/api-get-admin-bar.ts} +8 -6
  50. package/{dist/router/routes/api/api-get-draft-mode.js → lib/router/routes/api/api-get-draft-mode.ts} +15 -6
  51. package/{dist/router/routes/api/api-get-field-groups.js → lib/router/routes/api/api-get-field-groups.ts} +13 -8
  52. package/{dist/router/routes/api/api-post-revalidate.js → lib/router/routes/api/api-post-revalidate.ts} +6 -4
  53. package/{dist/router/routes/api/helpers.js → lib/router/routes/api/helpers.ts} +4 -3
  54. package/lib/router/routes/author-archive.tsx +75 -0
  55. package/lib/router/routes/post-index-page.tsx +58 -0
  56. package/lib/router/routes/singular-page.tsx +78 -0
  57. package/lib/router/routes/site-front-page.tsx +51 -0
  58. package/lib/router/routes/term-archive.tsx +93 -0
  59. package/{dist/router/types.d.ts → lib/router/types.ts} +4 -2
  60. package/{dist/services/get-menu.js → lib/services/get-menu.ts} +56 -32
  61. package/{dist/services/get-theme-mods.js → lib/services/get-theme-mods.ts} +6 -4
  62. package/{dist/services/metadata/get-blogname.js → lib/services/metadata/get-blogname.ts} +2 -2
  63. package/{dist/services/metadata/get-favicon-url.js → lib/services/metadata/get-favicon-url.ts} +5 -4
  64. package/{dist/services/metadata/get-language-attribute.js → lib/services/metadata/get-language-attribute.ts} +1 -1
  65. package/{dist/services/utilities/capitalise-first-letter.js → lib/services/utilities/capitalise-first-letter.ts} +2 -3
  66. package/{dist/services/utilities/esc-html.js → lib/services/utilities/esc-html.ts} +3 -1
  67. package/{dist/services/utilities/get-date-time-formatter.js → lib/services/utilities/get-date-time-formatter.ts} +16 -6
  68. package/{dist/services/utilities/kses-post.js → lib/services/utilities/kses-post.ts} +2 -1
  69. package/{dist/services/utilities/process-url.js → lib/services/utilities/process-url.ts} +4 -3
  70. package/{dist/template-heirarchy/_autoloader/template-autoloader.js → lib/template-heirarchy/_autoloader/template-autoloader.ts} +18 -9
  71. package/{dist/template-heirarchy/archive/archive.js → lib/template-heirarchy/archive/archive.tsx} +10 -7
  72. package/{dist/template-heirarchy/archive/author.js → lib/template-heirarchy/archive/author.tsx} +10 -7
  73. package/{dist/template-heirarchy/archive/category.js → lib/template-heirarchy/archive/category.tsx} +11 -7
  74. package/{dist/template-heirarchy/archive/posttypearchive.js → lib/template-heirarchy/archive/posttypearchive.tsx} +11 -8
  75. package/{dist/template-heirarchy/archive/tag.js → lib/template-heirarchy/archive/tag.tsx} +12 -7
  76. package/{dist/template-heirarchy/archive/taxonomy.js → lib/template-heirarchy/archive/taxonomy.tsx} +10 -7
  77. package/{dist/template-heirarchy/home/home.js → lib/template-heirarchy/home/home.tsx} +10 -7
  78. package/{dist/template-heirarchy/index.js → lib/template-heirarchy/index.tsx} +9 -5
  79. package/{dist/template-heirarchy/not-found.tsx/not-found.js → lib/template-heirarchy/not-found.tsx/not-found.tsx} +10 -7
  80. package/{dist/template-heirarchy/page/page.js → lib/template-heirarchy/page/page.tsx} +10 -7
  81. package/{dist/template-heirarchy/page/posttype.js → lib/template-heirarchy/page/posttype.tsx} +12 -8
  82. package/{dist/template-heirarchy/page/single.js → lib/template-heirarchy/page/single.tsx} +10 -7
  83. package/{dist/template-heirarchy/page/singular.js → lib/template-heirarchy/page/singular.tsx} +10 -7
  84. package/lib/ui/render-attachment-image.tsx +28 -0
  85. package/lib/ui/render-components.tsx +12 -0
  86. package/lib/ui/render-the-admin-bar.tsx +79 -0
  87. package/lib/ui/render-the-logo.tsx +24 -0
  88. package/{dist/wpdb/wpdb.interface.d.ts → lib/wpdb/wpdb.interface.ts} +20 -1
  89. package/{dist/wpdb/wpdb.js → lib/wpdb/wpdb.ts} +9 -5
  90. package/package.json +8 -43
  91. package/dist/acf-functions/core/acf-builder.d.ts +0 -51
  92. package/dist/acf-functions/core/acf-component-autoloader.d.ts +0 -11
  93. package/dist/acf-functions/core/acf-field-group-autoloader.d.ts +0 -10
  94. package/dist/acf-functions/field-props.d.ts +0 -196
  95. package/dist/acf-functions/field-props.js +0 -1
  96. package/dist/acf-functions/index.d.ts +0 -13
  97. package/dist/acf-functions/index.js +0 -13
  98. package/dist/acf-functions/services/define-field-group.js +0 -10
  99. package/dist/acf-functions/services/define-layout.js +0 -10
  100. package/dist/acf-functions/services/map-fields/helpers/map-choice-object.d.ts +0 -2
  101. package/dist/acf-functions/services/map-fields/helpers/map-choice-object.js +0 -18
  102. package/dist/acf-functions/services/map-fields/map-fields.d.ts +0 -21
  103. package/dist/acf-functions/types/acf-field-group.js +0 -1
  104. package/dist/acf-functions/types/acf-field.d.ts +0 -2813
  105. package/dist/acf-functions/types/acf-field.js +0 -1
  106. package/dist/acf-functions/types/acf-layout.d.ts +0 -19
  107. package/dist/acf-functions/types/acf-layout.js +0 -1
  108. package/dist/acf-functions/types/acf-values.js +0 -1
  109. package/dist/acf-functions/types/components/field-props.d.ts +0 -196
  110. package/dist/acf-functions/types/components/field-props.js +0 -1
  111. package/dist/acf-functions/types/components/nextpress-component.js +0 -1
  112. package/dist/entities/common.js +0 -1
  113. package/dist/entities/index.d.ts +0 -9
  114. package/dist/entities/index.js +0 -9
  115. package/dist/entities/option/option.d.ts +0 -19
  116. package/dist/entities/option/option.interface.js +0 -2
  117. package/dist/entities/post/post.d.ts +0 -50
  118. package/dist/entities/post/post.interface.js +0 -2
  119. package/dist/entities/post/post.js +0 -184
  120. package/dist/entities/term/term.d.ts +0 -28
  121. package/dist/entities/term/term.interface.js +0 -1
  122. package/dist/entities/term/term.js +0 -67
  123. package/dist/entities/user/user.d.ts +0 -27
  124. package/dist/entities/user/user.interface.js +0 -1
  125. package/dist/entities/user/user.js +0 -74
  126. package/dist/globals/entity-loader/entity-loader-base.d.ts +0 -65
  127. package/dist/globals/entity-loader/entity-loader.interface.js +0 -1
  128. package/dist/globals/entity-loader/option-loader.d.ts +0 -15
  129. package/dist/globals/entity-loader/option-loader.js +0 -31
  130. package/dist/globals/entity-loader/post-loader.d.ts +0 -21
  131. package/dist/globals/entity-loader/post-loader.js +0 -28
  132. package/dist/globals/entity-loader/term-loader.d.ts +0 -21
  133. package/dist/globals/entity-loader/term-loader.js +0 -28
  134. package/dist/globals/entity-loader/user-loader.d.ts +0 -21
  135. package/dist/globals/entity-loader/user-loader.js +0 -28
  136. package/dist/globals/get-field/get-field.d.ts +0 -18
  137. package/dist/globals/get-field/get-field.js +0 -44
  138. package/dist/globals/globals.d.ts +0 -18
  139. package/dist/globals/index.d.ts +0 -10
  140. package/dist/globals/index.js +0 -10
  141. package/dist/globals/nextpress-config/nextpress-config.d.ts +0 -4
  142. package/dist/globals/nextpress-config/nextpress-config.interface.js +0 -1
  143. package/dist/globals/nextpress-config/nextpress-config.js +0 -2
  144. package/dist/globals/queried-object/queried-object.d.ts +0 -62
  145. package/dist/globals/queried-object/queried-object.js +0 -56
  146. package/dist/repository/index.d.ts +0 -5
  147. package/dist/repository/index.js +0 -5
  148. package/dist/repository/optionquery/option-query-args.js +0 -1
  149. package/dist/repository/optionquery/option-query.d.ts +0 -12
  150. package/dist/repository/optionquery/option-query.js +0 -20
  151. package/dist/repository/postquery/post-query-args.js +0 -1
  152. package/dist/repository/postquery/post-query.d.ts +0 -12
  153. package/dist/repository/postquery/post-query.js +0 -272
  154. package/dist/repository/termquery/term-query-args.js +0 -1
  155. package/dist/repository/termquery/term-query.d.ts +0 -11
  156. package/dist/repository/termquery/term-query.js +0 -213
  157. package/dist/repository/userquery/user-query-args.js +0 -1
  158. package/dist/repository/userquery/user-query.d.ts +0 -12
  159. package/dist/router/helpers.d.ts +0 -14
  160. package/dist/router/index.d.ts +0 -17
  161. package/dist/router/index.js +0 -17
  162. package/dist/router/nextpress-layout.d.ts +0 -11
  163. package/dist/router/nextpress-proxy.d.ts +0 -8
  164. package/dist/router/nextpress-static-params.d.ts +0 -9
  165. package/dist/router/router.d.ts +0 -23
  166. package/dist/router/routes/api/api-get-admin-bar.d.ts +0 -8
  167. package/dist/router/routes/api/api-get-draft-mode.d.ts +0 -8
  168. package/dist/router/routes/api/api-get-field-groups.d.ts +0 -7
  169. package/dist/router/routes/api/api-post-revalidate.d.ts +0 -7
  170. package/dist/router/routes/api/helpers.d.ts +0 -8
  171. package/dist/router/routes/author-archive.d.ts +0 -25
  172. package/dist/router/routes/author-archive.js +0 -49
  173. package/dist/router/routes/not-found-page.d.ts +0 -15
  174. package/dist/router/routes/post-index-page.d.ts +0 -25
  175. package/dist/router/routes/post-index-page.js +0 -33
  176. package/dist/router/routes/singular-page.d.ts +0 -29
  177. package/dist/router/routes/singular-page.js +0 -51
  178. package/dist/router/routes/site-front-page.d.ts +0 -27
  179. package/dist/router/routes/site-front-page.js +0 -26
  180. package/dist/router/routes/term-archive.d.ts +0 -29
  181. package/dist/router/routes/term-archive.js +0 -65
  182. package/dist/router/types.js +0 -1
  183. package/dist/services/get-menu.d.ts +0 -13
  184. package/dist/services/get-theme-mods.d.ts +0 -7
  185. package/dist/services/index.d.ts +0 -10
  186. package/dist/services/index.js +0 -10
  187. package/dist/services/metadata/get-blogname.d.ts +0 -6
  188. package/dist/services/metadata/get-favicon-url.d.ts +0 -6
  189. package/dist/services/metadata/get-language-attribute.d.ts +0 -6
  190. package/dist/services/services.d.ts +0 -3
  191. package/dist/services/services.js +0 -3
  192. package/dist/services/utilities/capitalise-first-letter.d.ts +0 -7
  193. package/dist/services/utilities/esc-html.d.ts +0 -7
  194. package/dist/services/utilities/get-date-time-formatter.d.ts +0 -6
  195. package/dist/services/utilities/index.d.ts +0 -0
  196. package/dist/services/utilities/index.js +0 -1
  197. package/dist/services/utilities/kses-post.d.ts +0 -7
  198. package/dist/services/utilities/process-url.d.ts +0 -7
  199. package/dist/template-heirarchy/_autoloader/template-autoloader.d.ts +0 -9
  200. package/dist/template-heirarchy/archive/archive.d.ts +0 -16
  201. package/dist/template-heirarchy/archive/author.d.ts +0 -16
  202. package/dist/template-heirarchy/archive/category.d.ts +0 -16
  203. package/dist/template-heirarchy/archive/posttypearchive.d.ts +0 -24
  204. package/dist/template-heirarchy/archive/tag.d.ts +0 -16
  205. package/dist/template-heirarchy/archive/taxonomy.d.ts +0 -16
  206. package/dist/template-heirarchy/home/home.d.ts +0 -16
  207. package/dist/template-heirarchy/index.d.ts +0 -17
  208. package/dist/template-heirarchy/not-found.tsx/not-found.d.ts +0 -16
  209. package/dist/template-heirarchy/page/page.d.ts +0 -16
  210. package/dist/template-heirarchy/page/posttype.d.ts +0 -24
  211. package/dist/template-heirarchy/page/single.d.ts +0 -16
  212. package/dist/template-heirarchy/page/singular.d.ts +0 -16
  213. package/dist/ui/index.d.ts +0 -4
  214. package/dist/ui/index.js +0 -4
  215. package/dist/ui/render-attachment-image.d.ts +0 -12
  216. package/dist/ui/render-attachment-image.js +0 -24
  217. package/dist/ui/render-components.d.ts +0 -9
  218. package/dist/ui/render-components.js +0 -7
  219. package/dist/ui/render-the-admin-bar.d.ts +0 -8
  220. package/dist/ui/render-the-admin-bar.js +0 -36
  221. package/dist/ui/render-the-logo.d.ts +0 -10
  222. package/dist/ui/render-the-logo.js +0 -16
  223. package/dist/wpdb/index.d.ts +0 -0
  224. package/dist/wpdb/index.js +0 -1
  225. package/dist/wpdb/wpdb.d.ts +0 -3
  226. package/dist/wpdb/wpdb.interface.js +0 -5
  227. /package/{dist/acf-functions/types/acf-values.d.ts → lib/acf-functions/types/acf-values.ts} +0 -0
@@ -1 +0,0 @@
1
- export {};
@@ -1,19 +0,0 @@
1
- import { ACFField, NextpressField } from "./acf-field";
2
- type TransformACFLayout<T> = T extends any ? Omit<T, 'key' | 'sub_fields'> & ('sub_fields' extends keyof T ? {
3
- sub_fields: NextpressField[];
4
- } : []) : never;
5
- /** ACF Layout without key constraints to allow key generation */
6
- export type NextpressLayout = TransformACFLayout<ACFLayout>;
7
- /**
8
- * Represents a layout within an ACF Flexible Content field.
9
- */
10
- export type ACFLayout = {
11
- key: string;
12
- name: string;
13
- label: string;
14
- display: 'table' | 'block' | 'row';
15
- sub_fields: ACFField[];
16
- min?: string;
17
- max?: string;
18
- };
19
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1,196 +0,0 @@
1
- import { IPost } from "@/entities/post/post.interface";
2
- import { ITerm } from "@/entities/term/term.interface";
3
- import { IUser } from "@/entities/user/user.interface";
4
- import { JSX } from "react";
5
- type GetFields<T> = T extends {
6
- fields: readonly any[];
7
- } ? T['fields'] : T extends {
8
- sub_fields: readonly any[];
9
- } ? T['sub_fields'] : never;
10
- /**
11
- * Represents the properties passed to a Nextpress ACF component.
12
- *
13
- * @template T - The expected type of the mapped ACF fields.
14
- */
15
- export type FieldProps<LayoutT> = LayoutT extends {
16
- fields: readonly any[];
17
- } | {
18
- sub_fields: readonly any[];
19
- } ? ResolvedFields<GetFields<LayoutT>> : never;
20
- /**
21
- * An array of ACF field configurations to a strongly-typed object representing the resolved data structure.
22
- * It iterates over the array, using the `name` property of each field as the object key, and determines the expected value type using the `MapFieldType` utility.
23
- *
24
- * @template Fields - A readonly array of ACF field configuration objects.
25
- */
26
- export type ResolvedFields<Fields extends readonly any[]> = {
27
- [F in Fields[number] as F['name']]: MapFieldType<F>;
28
- };
29
- /**
30
- * Maps an array of ACF Flexible Content layouts to a union type representing the resolved layout blocks.
31
- * For each layout, it checks for the presence of `fields` or `sub_fields`, and resolves to a specific object
32
- * structure containing the layout's React component and its deeply resolved field content.
33
- *
34
- * @template Layouts - A readonly array of ACF Flexible Content layout configuration objects.
35
- */
36
- export type ResolvedFlexibleContent<Layouts extends readonly any[]> = {
37
- [L in Layouts[number] as L['name']]: L extends {
38
- name: infer Name;
39
- } & ({
40
- fields: readonly any[];
41
- } | {
42
- sub_fields: readonly any[];
43
- }) ? {
44
- Component: () => Promise<JSX.Element>;
45
- content: ResolvedFields<GetFields<L>>;
46
- }[] : never;
47
- }[Layouts[number]['name']];
48
- type MapFieldType<Field> = Field extends {
49
- type: 'color_picker';
50
- } ? string | null : Field extends {
51
- type: 'date_picker';
52
- } ? string | null : Field extends {
53
- type: 'date_time_picker';
54
- } ? string | null : Field extends {
55
- type: 'google_map';
56
- } ? ACFGoogleMapsObject | null : Field extends {
57
- type: 'icon_picker';
58
- } ? Field extends {
59
- return_format: 'string';
60
- } ? string | null : Field extends {
61
- return_format: 'array';
62
- } ? ACFIconObject | null : ACFIconObject | null : Field extends {
63
- type: 'time_picker';
64
- } ? string | null : Field extends {
65
- type: 'email';
66
- } ? string | null : Field extends {
67
- type: 'number';
68
- } ? number | null : Field extends {
69
- type: 'password';
70
- } ? string | null : Field extends {
71
- type: 'range';
72
- } ? number | null : Field extends {
73
- type: 'text';
74
- } ? string | null : Field extends {
75
- type: 'textarea';
76
- } ? string | null : Field extends {
77
- type: 'button_group';
78
- } ? Field extends {
79
- return_format: 'array';
80
- } ? ACFChoiceObject | null : string | null : Field extends {
81
- type: 'checkbox';
82
- } ? Field extends {
83
- return_format: 'array';
84
- } ? ACFChoiceObject[] : string[] : Field extends {
85
- type: 'radio';
86
- } ? Field extends {
87
- return_format: 'array';
88
- } ? ACFChoiceObject | null : string | null : Field extends {
89
- type: 'select';
90
- } ? Field extends {
91
- multiple: 1;
92
- } ? Field extends {
93
- return_format: 'array';
94
- } ? ACFChoiceObject[] : string[] : Field extends {
95
- return_format: 'array';
96
- } ? ACFChoiceObject | null : string | null : Field extends {
97
- type: 'true_false';
98
- } ? boolean : Field extends {
99
- type: 'file';
100
- } ? number | null : Field extends {
101
- type: 'gallery';
102
- } ? number[] : Field extends {
103
- type: 'image';
104
- } ? number | null : Field extends {
105
- type: 'oembed';
106
- } ? string | null : Field extends {
107
- type: 'wysiwyg';
108
- } ? string | null : Field extends {
109
- type: 'link';
110
- } ? Field extends {
111
- return_format: 'url';
112
- } ? string | null : Field extends {
113
- return_format: 'array';
114
- } ? ACFLinkObject | null : ACFLinkObject : Field extends {
115
- type: 'page_link';
116
- } ? Field extends {
117
- multiple: 1;
118
- } ? string[] : string | null : Field extends {
119
- type: 'post_object';
120
- } ? Field extends {
121
- multiple: 1;
122
- } ? Field extends {
123
- return_format: 'object';
124
- } ? IPost[] : number[] : Field extends {
125
- return_format: 'object';
126
- } ? IPost | null : number | null : Field extends {
127
- type: 'relationship';
128
- } ? Field extends {
129
- return_format: 'object';
130
- } ? IPost[] | null : number[] | null : Field extends {
131
- type: 'taxonomy';
132
- } ? Field extends {
133
- multiple: 1;
134
- } ? Field extends {
135
- return_format: 'object';
136
- } ? ITerm[] : number[] : Field extends {
137
- return_format: 'object';
138
- } ? ITerm | null : number | null : Field extends {
139
- type: 'user';
140
- } ? Field extends {
141
- multiple: 1;
142
- } ? Field extends {
143
- return_format: 'object';
144
- } ? IUser[] : number[] : Field extends {
145
- return_format: 'object';
146
- } ? IUser | null : number | null : Field extends {
147
- type: 'group';
148
- } & ({
149
- fields: readonly any[];
150
- } | {
151
- sub_fields: readonly any[];
152
- }) ? ResolvedFields<GetFields<Field>> | null : Field extends {
153
- type: 'repeater';
154
- } & ({
155
- fields: readonly any[];
156
- } | {
157
- sub_fields: readonly any[];
158
- }) ? ResolvedFields<GetFields<Field>>[] | null : Field extends {
159
- type: 'flexible_content';
160
- layouts: readonly any[];
161
- } ? ResolvedFlexibleContent<Field['layouts']> | null : Field extends {
162
- fields: readonly any[];
163
- } | {
164
- sub_fields: readonly any[];
165
- } ? ResolvedFields<GetFields<Field>> : never;
166
- export type ACFIconObject = {
167
- type: string;
168
- value: string;
169
- };
170
- export type ACFLinkObject = {
171
- title: string;
172
- url: string;
173
- target: string;
174
- };
175
- export type ACFChoiceObject = {
176
- label?: string;
177
- value?: string;
178
- };
179
- export type ACFGoogleMapsObject = {
180
- address: string;
181
- lat: string | number;
182
- lng: string | number;
183
- zoom: string | number;
184
- place_id: string;
185
- name: string;
186
- street_number: string | number;
187
- street_name: string;
188
- street_name_short: string;
189
- city: string;
190
- state: string;
191
- state_short: string;
192
- post_code: string | number;
193
- country: string;
194
- country_short: string;
195
- };
196
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1,9 +0,0 @@
1
- export * from './common';
2
- export * from './post/post.interface';
3
- export * from './post/post';
4
- export * from './user/user';
5
- export * from './user/user.interface';
6
- export * from './term/term.interface';
7
- export * from './term/term';
8
- export * from './option/option.interface';
9
- export * from './option/option';
@@ -1,9 +0,0 @@
1
- export * from './common';
2
- export * from './post/post.interface';
3
- export * from './post/post';
4
- export * from './user/user';
5
- export * from './user/user.interface';
6
- export * from './term/term.interface';
7
- export * from './term/term';
8
- export * from './option/option.interface';
9
- export * from './option/option';
@@ -1,19 +0,0 @@
1
- import { IOption } from "./option.interface";
2
- /**
3
- * Implementation of IOption entity.
4
- */
5
- export declare class Option implements IOption {
6
- optionId: number;
7
- constructor(optionId: number);
8
- /** Raw option data from database. */
9
- private optionData?;
10
- /**
11
- * Retrieves array of Option instances by IDs.
12
- *
13
- * @param {number[]} ids - Array of option IDs to retrieve.
14
- * @returns {Promise<Option[]>} Promise resolving to array of Option instances.
15
- */
16
- static get(ids: number[]): Promise<Option[]>;
17
- get optionName(): string;
18
- get optionValue(): string;
19
- }
@@ -1,2 +0,0 @@
1
- ;
2
- export {};
@@ -1,50 +0,0 @@
1
- import { Fields } from "../common";
2
- import { IPost, PostImageAttributes, MenuItemAttributes } from "./post.interface";
3
- /**
4
- * Implementation of IPost entity.
5
- */
6
- export declare class Post implements IPost {
7
- ID: number;
8
- constructor(ID: number);
9
- /** Raw post data from database. */
10
- private postData?;
11
- /** Map of post meta key-value pairs. */
12
- private metaMap?;
13
- /**
14
- * Retrieves array of Post instances by IDs.
15
- *
16
- * @param {number[]} ids - Array of post IDs to retrieve.
17
- * @returns {Promise<Post[]>} Promise resolving to array of Post instances.
18
- */
19
- static get(ids: number[]): Promise<Post[]>;
20
- get path(): string;
21
- get thumbnailId(): number;
22
- private _imageAttributes?;
23
- get imageAttributes(): PostImageAttributes;
24
- private _menuItemAttributes?;
25
- get menuItemAttributes(): MenuItemAttributes | null;
26
- private _postExcerpt?;
27
- get postExcerpt(): string;
28
- get commentCount(): number;
29
- get commentStatus(): string;
30
- get guid(): string;
31
- get menuOrder(): number;
32
- get pinged(): string;
33
- get pingStatus(): string;
34
- get postAuthor(): number;
35
- get postContent(): string;
36
- get postContentFiltered(): string;
37
- get postDate(): Date;
38
- get postDateGmt(): Date;
39
- get postMimeType(): string;
40
- get postModified(): Date;
41
- get postModifiedGmt(): Date;
42
- get postName(): string;
43
- get postParent(): number;
44
- get postPassword(): string;
45
- get postStatus(): string;
46
- get postTitle(): string;
47
- get postType(): string;
48
- get toPing(): string;
49
- getFields(name: string): Promise<Fields>;
50
- }
@@ -1,2 +0,0 @@
1
- ;
2
- export {};
@@ -1,184 +0,0 @@
1
- var _a;
2
- import { unserialize } from "php-serialize";
3
- import { processURL } from "@/services/utilities/process-url";
4
- import { wpdb } from "@/wpdb/wpdb";
5
- const excerptLength = (_a = nextpressConfig.excerptLength) !== null && _a !== void 0 ? _a : 55;
6
- /**
7
- * Implementation of IPost entity.
8
- */
9
- export class Post {
10
- constructor(ID) {
11
- this.ID = ID;
12
- }
13
- /**
14
- * Retrieves array of Post instances by IDs.
15
- *
16
- * @param {number[]} ids - Array of post IDs to retrieve.
17
- * @returns {Promise<Post[]>} Promise resolving to array of Post instances.
18
- */
19
- static async get(ids) {
20
- var _a;
21
- ids = ids.filter(Boolean);
22
- if (!ids || !ids.length)
23
- return [];
24
- const postsData = await wpdb
25
- .selectFrom('wpPosts')
26
- .where('ID', 'in', ids)
27
- .selectAll()
28
- .execute();
29
- const metaData = await wpdb
30
- .selectFrom('wpPostmeta')
31
- .where('postId', 'in', ids)
32
- .where('metaKey', 'in', [
33
- '_nextpress_path',
34
- '_thumbnail_id',
35
- '_wp_attachment_image_alt',
36
- '_wp_attachment_metadata',
37
- '_menu_item_type',
38
- '_menu_item_object_id',
39
- '_menu_item_url',
40
- '_menu_item_menu_item_parent'
41
- ])
42
- .select(['postId', 'metaKey', 'metaValue'])
43
- .execute();
44
- const metaByPostId = new Map();
45
- for (const row of metaData) {
46
- const postId = Number(row.postId);
47
- if (!metaByPostId.has(postId)) {
48
- metaByPostId.set(postId, new Map());
49
- }
50
- (_a = metaByPostId.get(postId)) === null || _a === void 0 ? void 0 : _a.set(row.metaKey || '', row.metaValue || '');
51
- }
52
- const postDataMap = new Map(postsData.map(post => [Number(post.ID), post]));
53
- return ids.map(id => {
54
- const instance = new Post(id);
55
- instance.postData = postDataMap.get(id);
56
- instance.metaMap = metaByPostId.get(id) || new Map();
57
- postLoader.prime([instance.thumbnailId]);
58
- return instance;
59
- });
60
- }
61
- get path() {
62
- var _a, _b;
63
- return (_b = (_a = this.metaMap) === null || _a === void 0 ? void 0 : _a.get('_nextpress_path')) !== null && _b !== void 0 ? _b : '';
64
- }
65
- get thumbnailId() {
66
- var _a;
67
- const val = (_a = this.metaMap) === null || _a === void 0 ? void 0 : _a.get('_thumbnail_id');
68
- return val ? Number(val) : 0;
69
- }
70
- get imageAttributes() {
71
- var _a;
72
- if (this._imageAttributes !== undefined)
73
- return this._imageAttributes;
74
- if (!this.metaMap)
75
- return {};
76
- const alt = (_a = this.metaMap.get('_wp_attachment_image_alt')) !== null && _a !== void 0 ? _a : '';
77
- const rawMetadata = this.metaMap.get('_wp_attachment_metadata');
78
- if (!rawMetadata && !alt) {
79
- this._imageAttributes = {};
80
- return this._imageAttributes;
81
- }
82
- const guid = this.guid;
83
- const index = guid.indexOf('/wp-content');
84
- const path = index !== -1 ? guid.slice(index) : guid;
85
- const srcPath = `${process.env.WP_SERVICE_URL}${path}`;
86
- try {
87
- const metadata = unserialize(rawMetadata !== null && rawMetadata !== void 0 ? rawMetadata : 'a:0:{}');
88
- this._imageAttributes = {
89
- src: srcPath,
90
- alt: alt,
91
- height: metadata.height ? Number(metadata.height) : undefined,
92
- width: metadata.width ? Number(metadata.width) : undefined
93
- };
94
- }
95
- catch (error) {
96
- console.warn('Error while getting post: Could not unserialize php: ', error.message);
97
- this._imageAttributes = {};
98
- }
99
- return this._imageAttributes;
100
- }
101
- get menuItemAttributes() {
102
- var _a, _b;
103
- if (this._menuItemAttributes !== undefined)
104
- return this._menuItemAttributes;
105
- if (!this.metaMap)
106
- return null;
107
- const typeMeta = this.metaMap.get('_menu_item_type');
108
- const type = ['custom', 'post_type', 'taxonomy'].includes(typeMeta !== null && typeMeta !== void 0 ? typeMeta : '')
109
- ? typeMeta
110
- : undefined;
111
- let url;
112
- let objectId;
113
- if (type === 'custom') {
114
- const urlMeta = this.metaMap.get('_menu_item_url');
115
- url = urlMeta ? processURL(urlMeta) : '';
116
- }
117
- else {
118
- objectId = Number(this.metaMap.get('_menu_item_object_id'));
119
- }
120
- const parentId = (_a = Number(this.metaMap.get('_menu_item_menu_item_parent'))) !== null && _a !== void 0 ? _a : 0;
121
- const label = (_b = this.postTitle) !== null && _b !== void 0 ? _b : '';
122
- return {
123
- label,
124
- type: type !== null && type !== void 0 ? type : 'custom',
125
- parentId,
126
- objectId: objectId !== null && objectId !== void 0 ? objectId : 0,
127
- url: url !== null && url !== void 0 ? url : ''
128
- };
129
- }
130
- get postExcerpt() {
131
- var _a, _b;
132
- if (this._postExcerpt !== undefined)
133
- return this._postExcerpt;
134
- const excerpt = (_b = (_a = this.postData) === null || _a === void 0 ? void 0 : _a['postExcerpt']) !== null && _b !== void 0 ? _b : '';
135
- if (excerpt)
136
- return excerpt;
137
- const postContent = this.postContent;
138
- if (!postContent)
139
- return '';
140
- const plainText = postContent
141
- .replace(/<[^>]+>/g, ' ') // Strip HTML tags
142
- .replace(/\s+/g, ' ') // Normalize multiple spaces into a single space
143
- .trim();
144
- const words = plainText.split(' ');
145
- if (words.length > (excerptLength)) {
146
- return words.slice(0, excerptLength).join(' ') + '...';
147
- }
148
- this._postExcerpt = plainText;
149
- return this._postExcerpt;
150
- }
151
- get commentCount() { var _a, _b; return (_b = (_a = this.postData) === null || _a === void 0 ? void 0 : _a['commentCount']) !== null && _b !== void 0 ? _b : 0; }
152
- get commentStatus() { var _a, _b; return (_b = (_a = this.postData) === null || _a === void 0 ? void 0 : _a['commentStatus']) !== null && _b !== void 0 ? _b : 'closed'; }
153
- get guid() { var _a, _b; return (_b = (_a = this.postData) === null || _a === void 0 ? void 0 : _a['guid']) !== null && _b !== void 0 ? _b : ''; }
154
- get menuOrder() { var _a, _b; return (_b = (_a = this.postData) === null || _a === void 0 ? void 0 : _a['menuOrder']) !== null && _b !== void 0 ? _b : 0; }
155
- get pinged() { var _a, _b; return (_b = (_a = this.postData) === null || _a === void 0 ? void 0 : _a['pinged']) !== null && _b !== void 0 ? _b : ''; }
156
- get pingStatus() { var _a, _b; return (_b = (_a = this.postData) === null || _a === void 0 ? void 0 : _a['pingStatus']) !== null && _b !== void 0 ? _b : 'closed'; }
157
- get postAuthor() { var _a, _b; return (_b = (_a = this.postData) === null || _a === void 0 ? void 0 : _a['postAuthor']) !== null && _b !== void 0 ? _b : 0; }
158
- get postContent() { var _a, _b; return (_b = (_a = this.postData) === null || _a === void 0 ? void 0 : _a['postContent']) !== null && _b !== void 0 ? _b : ''; }
159
- get postContentFiltered() { var _a, _b; return (_b = (_a = this.postData) === null || _a === void 0 ? void 0 : _a['postContentFiltered']) !== null && _b !== void 0 ? _b : ''; }
160
- get postDate() { var _a, _b; return (_b = (_a = this.postData) === null || _a === void 0 ? void 0 : _a['postDate']) !== null && _b !== void 0 ? _b : new Date(); }
161
- get postDateGmt() { var _a, _b; return (_b = (_a = this.postData) === null || _a === void 0 ? void 0 : _a['postDateGmt']) !== null && _b !== void 0 ? _b : new Date(); }
162
- get postMimeType() { var _a, _b; return (_b = (_a = this.postData) === null || _a === void 0 ? void 0 : _a['postMimeType']) !== null && _b !== void 0 ? _b : ''; }
163
- get postModified() { var _a, _b; return (_b = (_a = this.postData) === null || _a === void 0 ? void 0 : _a['postModified']) !== null && _b !== void 0 ? _b : new Date(); }
164
- get postModifiedGmt() { var _a, _b; return (_b = (_a = this.postData) === null || _a === void 0 ? void 0 : _a['postModifiedGmt']) !== null && _b !== void 0 ? _b : new Date(); }
165
- get postName() { var _a, _b; return (_b = (_a = this.postData) === null || _a === void 0 ? void 0 : _a['postName']) !== null && _b !== void 0 ? _b : ''; }
166
- get postParent() { var _a, _b; return (_b = (_a = this.postData) === null || _a === void 0 ? void 0 : _a['postParent']) !== null && _b !== void 0 ? _b : 0; }
167
- get postPassword() { var _a, _b; return (_b = (_a = this.postData) === null || _a === void 0 ? void 0 : _a['postPassword']) !== null && _b !== void 0 ? _b : ''; }
168
- get postStatus() { var _a, _b; return (_b = (_a = this.postData) === null || _a === void 0 ? void 0 : _a['postStatus']) !== null && _b !== void 0 ? _b : 'draft'; }
169
- get postTitle() { var _a, _b; return (_b = (_a = this.postData) === null || _a === void 0 ? void 0 : _a['postTitle']) !== null && _b !== void 0 ? _b : ''; }
170
- get postType() { var _a, _b; return (_b = (_a = this.postData) === null || _a === void 0 ? void 0 : _a['postType']) !== null && _b !== void 0 ? _b : 'post'; }
171
- get toPing() { var _a, _b; return (_b = (_a = this.postData) === null || _a === void 0 ? void 0 : _a['toPing']) !== null && _b !== void 0 ? _b : ''; }
172
- async getFields(name) {
173
- const meta = await wpdb
174
- .selectFrom('wpPostmeta')
175
- .where('metaKey', 'like', `${name}%`)
176
- .where('postId', '=', this.ID)
177
- .select(['metaKey', 'metaValue'])
178
- .execute();
179
- return meta.map(m => ({
180
- key: m.metaKey || '',
181
- value: m.metaValue || ''
182
- }));
183
- }
184
- }
@@ -1,28 +0,0 @@
1
- import { ITerm } from "./term.interface";
2
- /**
3
- * Implementation of ITerm entity.
4
- */
5
- export declare class Term implements ITerm {
6
- termId: number;
7
- constructor(termId: number);
8
- /** Raw term data from database. */
9
- private termData?;
10
- /** Map of term meta key-value pairs. */
11
- private metaMap?;
12
- /**
13
- * Retrieves array of Term instances by IDs.
14
- *
15
- * @param {number[]} ids - Array of term IDs to retrieve.
16
- * @returns {Promise<Term[]>} Promise resolving to array of Term instances.
17
- */
18
- static get(ids: number[]): Promise<Term[]>;
19
- get path(): string;
20
- get name(): string;
21
- get slug(): string;
22
- get termGroup(): number;
23
- get parent(): number;
24
- get description(): string;
25
- get termTaxonomyId(): number;
26
- get count(): number;
27
- get taxonomy(): string;
28
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,67 +0,0 @@
1
- import { wpdb } from "@/wpdb/wpdb";
2
- /**
3
- * Implementation of ITerm entity.
4
- */
5
- export class Term {
6
- constructor(termId) {
7
- this.termId = termId;
8
- }
9
- /**
10
- * Retrieves array of Term instances by IDs.
11
- *
12
- * @param {number[]} ids - Array of term IDs to retrieve.
13
- * @returns {Promise<Term[]>} Promise resolving to array of Term instances.
14
- */
15
- static async get(ids) {
16
- var _a;
17
- ids = ids.filter(Boolean);
18
- if (!ids || !ids.length)
19
- return [];
20
- const combinedData = await wpdb
21
- .selectFrom('wpTerms as term')
22
- .innerJoin('wpTermTaxonomy as taxonomy', 'term.termId', 'taxonomy.termId')
23
- .where('term.termId', 'in', ids)
24
- .select([
25
- 'term.termId as termId',
26
- 'term.name as name',
27
- 'term.slug as slug',
28
- 'term.termGroup as termGroup',
29
- 'taxonomy.termTaxonomyId as termTaxonomyId',
30
- 'taxonomy.taxonomy as taxonomy',
31
- 'taxonomy.description as description',
32
- 'taxonomy.parent as parent',
33
- 'taxonomy.count as count'
34
- ])
35
- .execute();
36
- const metaData = await wpdb
37
- .selectFrom('wpTermmeta')
38
- .where('termId', 'in', ids)
39
- .where('metaKey', '=', '_nextpress_path')
40
- .select(['termId', 'metaKey', 'metaValue'])
41
- .execute();
42
- const metaByTermId = new Map();
43
- for (const row of metaData) {
44
- const termId = Number(row.termId);
45
- if (!metaByTermId.has(termId)) {
46
- metaByTermId.set(termId, new Map());
47
- }
48
- (_a = metaByTermId.get(termId)) === null || _a === void 0 ? void 0 : _a.set(row.metaKey || '', row.metaValue || '');
49
- }
50
- const combinedDataMap = new Map(combinedData.map(row => [Number(row.termId), row]));
51
- return ids.map(id => {
52
- const instance = new Term(id);
53
- instance.termData = combinedDataMap.get(id);
54
- instance.metaMap = metaByTermId.get(id) || new Map();
55
- return instance;
56
- });
57
- }
58
- get path() { var _a, _b; return (_b = (_a = this.metaMap) === null || _a === void 0 ? void 0 : _a.get('_nextpress_path')) !== null && _b !== void 0 ? _b : ''; }
59
- get name() { var _a, _b; return (_b = (_a = this.termData) === null || _a === void 0 ? void 0 : _a['name']) !== null && _b !== void 0 ? _b : ''; }
60
- get slug() { var _a, _b; return (_b = (_a = this.termData) === null || _a === void 0 ? void 0 : _a['slug']) !== null && _b !== void 0 ? _b : ''; }
61
- get termGroup() { var _a; return ((_a = this.termData) === null || _a === void 0 ? void 0 : _a['termGroup']) ? Number(this.termData['termGroup']) : 0; }
62
- get parent() { var _a; return ((_a = this.termData) === null || _a === void 0 ? void 0 : _a['parent']) ? Number(this.termData['parent']) : 0; }
63
- get description() { var _a, _b; return (_b = (_a = this.termData) === null || _a === void 0 ? void 0 : _a['description']) !== null && _b !== void 0 ? _b : ''; }
64
- get termTaxonomyId() { var _a; return ((_a = this.termData) === null || _a === void 0 ? void 0 : _a['termTaxonomyId']) ? Number(this.termData['termTaxonomyId']) : 0; }
65
- get count() { var _a; return ((_a = this.termData) === null || _a === void 0 ? void 0 : _a['count']) ? Number(this.termData['count']) : 0; }
66
- get taxonomy() { var _a, _b; return (_b = (_a = this.termData) === null || _a === void 0 ? void 0 : _a['taxonomy']) !== null && _b !== void 0 ? _b : ''; }
67
- }
@@ -1,27 +0,0 @@
1
- import { IUser } from "./user.interface";
2
- export declare class User implements IUser {
3
- ID: number;
4
- constructor(ID: number);
5
- /** Raw user data from database. */
6
- private userData?;
7
- /** Map of user meta key-value pairs. */
8
- private metaMap?;
9
- /**
10
- * Retrieves array of User instances by IDs.
11
- *
12
- * @param {number[]} ids - Array of user IDs to retrieve.
13
- * @returns {Promise<User[]>} Promise resolving to array of User instances.
14
- */
15
- static get(ids: number[]): Promise<User[]>;
16
- get roles(): string[];
17
- get showAdminBar(): boolean;
18
- get displayName(): string;
19
- get userActivationKey(): string;
20
- get userEmail(): string;
21
- get userLogin(): string;
22
- get userNicename(): string;
23
- get userPass(): string;
24
- get userRegistered(): Date;
25
- get userStatus(): number;
26
- get userUrl(): string;
27
- }
@@ -1 +0,0 @@
1
- export {};