@geekron/strapi 0.1.3 → 0.1.5

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.
@@ -1,22 +1,545 @@
1
+ // server/src/api/common/content-types/common/schema.json
2
+ var schema_default = {
3
+ kind: "singleType",
4
+ collectionName: "commons",
5
+ info: {
6
+ singularName: "common",
7
+ pluralName: "commons",
8
+ displayName: "Common",
9
+ description: "Define common settings"
10
+ },
11
+ options: {
12
+ draftAndPublish: true
13
+ },
14
+ pluginOptions: {
15
+ i18n: {
16
+ localized: true
17
+ }
18
+ },
19
+ attributes: {
20
+ favicon: {
21
+ type: "media",
22
+ pluginOptions: {
23
+ i18n: {
24
+ localized: true
25
+ }
26
+ },
27
+ multiple: false,
28
+ required: false,
29
+ allowedTypes: [
30
+ "images",
31
+ "files",
32
+ "videos"
33
+ ]
34
+ },
35
+ title: {
36
+ type: "string",
37
+ pluginOptions: {
38
+ i18n: {
39
+ localized: true
40
+ }
41
+ },
42
+ required: true
43
+ },
44
+ description: {
45
+ type: "text",
46
+ pluginOptions: {
47
+ i18n: {
48
+ localized: true
49
+ }
50
+ },
51
+ required: false
52
+ },
53
+ copyright: {
54
+ type: "string",
55
+ pluginOptions: {
56
+ i18n: {
57
+ localized: true
58
+ }
59
+ },
60
+ default: "Copyright"
61
+ },
62
+ icp: {
63
+ type: "string",
64
+ pluginOptions: {
65
+ i18n: {
66
+ localized: true
67
+ }
68
+ }
69
+ }
70
+ }
71
+ };
72
+
73
+ // server/src/api/common/controllers/common.ts
74
+ import { factories } from "@strapi/strapi";
75
+ var common_default = factories.createCoreController("plugin::website.common");
76
+
77
+ // server/src/api/common/routes/common.ts
78
+ import { factories as factories2 } from "@strapi/strapi";
79
+ var common_default2 = factories2.createCoreRouter("plugin::website.common");
80
+
81
+ // server/src/api/common/services/common.ts
82
+ import { factories as factories3 } from "@strapi/strapi";
83
+ var common_default3 = factories3.createCoreService("plugin::website.common");
84
+
85
+ // server/src/api/common/index.ts
86
+ var common_default4 = {
87
+ schema: schema_default,
88
+ controllers: common_default,
89
+ services: common_default3,
90
+ routes: common_default2
91
+ };
92
+ // server/src/api/menu/content-types/menu/schema.json
93
+ var schema_default2 = {
94
+ kind: "singleType",
95
+ collectionName: "menus",
96
+ info: {
97
+ singularName: "menu",
98
+ pluralName: "menus",
99
+ displayName: "Menu"
100
+ },
101
+ options: {
102
+ draftAndPublish: true
103
+ },
104
+ pluginOptions: {
105
+ i18n: {
106
+ localized: true
107
+ }
108
+ },
109
+ attributes: {
110
+ title: {
111
+ type: "string",
112
+ pluginOptions: {
113
+ i18n: {
114
+ localized: true
115
+ }
116
+ },
117
+ required: true
118
+ }
119
+ }
120
+ };
121
+
122
+ // server/src/api/menu/controllers/menu.ts
123
+ import { factories as factories4 } from "@strapi/strapi";
124
+ var menu_default = factories4.createCoreController("plugin::website.menu");
125
+
126
+ // server/src/api/menu/routes/menu.ts
127
+ import { factories as factories5 } from "@strapi/strapi";
128
+ var menu_default2 = factories5.createCoreRouter("plugin::website.menu");
129
+
130
+ // server/src/api/menu/services/menu.ts
131
+ import { factories as factories6 } from "@strapi/strapi";
132
+ var menu_default3 = factories6.createCoreService("plugin::website.menu");
133
+
134
+ // server/src/api/menu/index.ts
135
+ var menu_default4 = {
136
+ schema: schema_default2,
137
+ controllers: menu_default,
138
+ services: menu_default3,
139
+ routes: menu_default2
140
+ };
141
+ // server/src/api/site/content-types/site/schema.json
142
+ var schema_default3 = {
143
+ kind: "singleType",
144
+ collectionName: "sites",
145
+ info: {
146
+ singularName: "site",
147
+ pluralName: "sites",
148
+ displayName: "Site"
149
+ },
150
+ options: {
151
+ draftAndPublish: true
152
+ },
153
+ pluginOptions: {
154
+ i18n: {
155
+ localized: true
156
+ }
157
+ },
158
+ attributes: {
159
+ enabled: {
160
+ type: "boolean",
161
+ pluginOptions: {
162
+ i18n: {
163
+ localized: true
164
+ }
165
+ },
166
+ required: true,
167
+ default: true
168
+ },
169
+ title: {
170
+ type: "string",
171
+ pluginOptions: {
172
+ i18n: {
173
+ localized: true
174
+ }
175
+ }
176
+ },
177
+ logo: {
178
+ type: "media",
179
+ pluginOptions: {
180
+ i18n: {
181
+ localized: true
182
+ }
183
+ },
184
+ multiple: false,
185
+ allowedTypes: [
186
+ "images"
187
+ ]
188
+ },
189
+ icon: {
190
+ type: "media",
191
+ pluginOptions: {
192
+ i18n: {
193
+ localized: true
194
+ }
195
+ },
196
+ multiple: false,
197
+ allowedTypes: [
198
+ "images"
199
+ ]
200
+ },
201
+ url: {
202
+ type: "string",
203
+ pluginOptions: {
204
+ i18n: {
205
+ localized: true
206
+ }
207
+ }
208
+ },
209
+ robots: {
210
+ type: "text",
211
+ pluginOptions: {
212
+ i18n: {
213
+ localized: true
214
+ }
215
+ }
216
+ },
217
+ head: {
218
+ type: "text",
219
+ pluginOptions: {
220
+ i18n: {
221
+ localized: true
222
+ }
223
+ }
224
+ },
225
+ foot: {
226
+ type: "text",
227
+ pluginOptions: {
228
+ i18n: {
229
+ localized: true
230
+ }
231
+ }
232
+ },
233
+ inquiryEmail: {
234
+ type: "email",
235
+ pluginOptions: {
236
+ i18n: {
237
+ localized: true
238
+ }
239
+ }
240
+ },
241
+ index: {
242
+ type: "boolean",
243
+ pluginOptions: {
244
+ i18n: {
245
+ localized: true
246
+ }
247
+ },
248
+ default: false
249
+ }
250
+ }
251
+ };
252
+
253
+ // server/src/api/site/controllers/site.ts
254
+ import { factories as factories7 } from "@strapi/strapi";
255
+ var site_default = factories7.createCoreController("plugin::website.site");
256
+
257
+ // server/src/api/site/routes/site.ts
258
+ import { factories as factories8 } from "@strapi/strapi";
259
+ var site_default2 = factories8.createCoreRouter("plugin::website.site");
260
+
261
+ // server/src/api/site/services/site.ts
262
+ import { factories as factories9 } from "@strapi/strapi";
263
+ var site_default3 = factories9.createCoreService("plugin::website.site");
264
+
265
+ // server/src/api/site/index.ts
266
+ var site_default4 = {
267
+ schema: schema_default3,
268
+ controllers: site_default,
269
+ services: site_default3,
270
+ routes: site_default2
271
+ };
272
+ // server/src/api/translation/content-types/translation/schema.json
273
+ var schema_default4 = {
274
+ kind: "collectionType",
275
+ collectionName: "translations",
276
+ info: {
277
+ singularName: "translation",
278
+ pluralName: "translations",
279
+ displayName: "Translation"
280
+ },
281
+ options: {
282
+ draftAndPublish: true
283
+ },
284
+ pluginOptions: {
285
+ i18n: {
286
+ localized: true
287
+ }
288
+ },
289
+ attributes: {
290
+ key: {
291
+ type: "string",
292
+ pluginOptions: {
293
+ i18n: {
294
+ localized: false
295
+ }
296
+ },
297
+ required: true,
298
+ unique: true
299
+ },
300
+ value: {
301
+ type: "text",
302
+ pluginOptions: {
303
+ i18n: {
304
+ localized: true
305
+ }
306
+ },
307
+ required: true
308
+ }
309
+ }
310
+ };
311
+
312
+ // server/src/api/translation/controllers/translation.ts
313
+ import { factories as factories10 } from "@strapi/strapi";
314
+ var translation_default = factories10.createCoreController("plugin::website.translation");
315
+
316
+ // server/src/api/translation/routes/translation.ts
317
+ import { factories as factories11 } from "@strapi/strapi";
318
+ var translation_default2 = factories11.createCoreRouter("plugin::website.translation");
319
+
320
+ // server/src/api/translation/services/translation.ts
321
+ import { factories as factories12 } from "@strapi/strapi";
322
+ var translation_default3 = factories12.createCoreService("plugin::website.translation");
323
+
324
+ // server/src/api/translation/index.ts
325
+ var translation_default4 = {
326
+ schema: schema_default4,
327
+ controllers: translation_default,
328
+ services: translation_default3,
329
+ routes: translation_default2
330
+ };
331
+
332
+ // server/src/api/index.ts
333
+ var contentTypes = {};
334
+ var controllers = {};
335
+ var routes = {};
336
+ var services = {};
337
+ contentTypes.common = {
338
+ schema: common_default4.schema
339
+ };
340
+ contentTypes.menu = {
341
+ schema: menu_default4.schema
342
+ };
343
+ contentTypes.site = {
344
+ schema: site_default4.schema
345
+ };
346
+ contentTypes.translation = {
347
+ schema: translation_default4.schema
348
+ };
349
+ routes.common = common_default4.routes;
350
+ routes.menu = menu_default4.routes;
351
+ routes.site = site_default4.routes;
352
+ routes.translation = translation_default4.routes;
353
+ services.common = common_default4.services;
354
+ services.menu = menu_default4.services;
355
+ services.site = site_default4.services;
356
+ services.translation = translation_default4.services;
357
+ controllers.common = common_default4.controllers;
358
+ controllers.menu = menu_default4.controllers;
359
+ controllers.site = site_default4.controllers;
360
+ controllers.translation = translation_default4.controllers;
361
+ var api_default = {
362
+ contentTypes,
363
+ controllers,
364
+ routes,
365
+ services
366
+ };
367
+
1
368
  // server/src/bootstrap.ts
2
- var bootstrap = ({ strapi }) => {
3
- strapi.log.info("dashboard server plugin: bootstrap");
369
+ var bootstrap = ({ strapi: strapi2 }) => {
370
+ strapi2.log.info("website server plugin: bootstrap");
4
371
  };
5
372
  var bootstrap_default = bootstrap;
6
373
 
374
+ // server/src/config/index.ts
375
+ var config = {
376
+ default: {},
377
+ validator: (config2) => config2
378
+ };
379
+ var config_default = config;
380
+
7
381
  // server/src/contentTypes/index.ts
8
- var contentTypes = {};
9
- var contentTypes_default = contentTypes;
382
+ var contentTypes2 = {};
383
+ var contentTypes_default = contentTypes2;
384
+
385
+ // server/src/controllers/fields.ts
386
+ var checkAvailable = async (context) => {
387
+ const body = context.request.body;
388
+ if (body.kind === "collectionType") {
389
+ const entities = await strapi.entityService.findMany(body.uid, {
390
+ filters: {
391
+ [body.field]: {
392
+ $eq: body.value
393
+ }
394
+ }
395
+ });
396
+ return { isAvailable: !entities?.length };
397
+ }
398
+ return { isAvailable: true };
399
+ };
400
+ var fields = {
401
+ checkAvailable
402
+ };
403
+ var fields_default = fields;
404
+
405
+ // server/src/controllers/utils/request.ts
406
+ var getWebsiteConfig = async () => {
407
+ const locale = await strapi.plugin("i18n").service("locales").getDefaultLocale();
408
+ const [site, [token]] = await Promise.all([
409
+ strapi.db.query("plugin::website.site").findOne({ where: { locale } }),
410
+ strapi.db.query("admin::api-token").findMany({ where: { type: "full-access" } })
411
+ ]);
412
+ if (!site || !token) {
413
+ throw new Error("You need to configure Site url and a full-access API token first.");
414
+ }
415
+ const accessKey = strapi.service("admin::encryption").decrypt(token.encryptedKey);
416
+ return {
417
+ url: site?.url,
418
+ token: accessKey
419
+ };
420
+ };
421
+ var buildHeaders = (token, extraHeaders = {}) => {
422
+ const headers = { ...extraHeaders };
423
+ if (token) {
424
+ headers.Authorization = `Bearer ${token}`;
425
+ }
426
+ return headers;
427
+ };
428
+ var fetchWebsite = async (endpoint, options = {}) => {
429
+ const { url, token } = await getWebsiteConfig();
430
+ const fullUrl = `${url}${endpoint}`;
431
+ console.debug("Fetch Website Server Url:", fullUrl);
432
+ const headers = buildHeaders(token, options.headers);
433
+ const response = await fetch(fullUrl, { ...options, headers });
434
+ if (!response.ok) {
435
+ throw new Error(`HTTP error! status: ${response.status}`);
436
+ }
437
+ const result = await response.json();
438
+ return result;
439
+ };
440
+ var handleError = (ctx, error, defaultMessage) => {
441
+ const timestamp = new Date().toISOString();
442
+ let code = 500;
443
+ let message = error.message || defaultMessage;
444
+ if (error.status === 404 || error.message?.includes("404")) {
445
+ code = 404;
446
+ message = error.message || "Resource not found";
447
+ } else if (error.status === 400 || error.message?.includes("400")) {
448
+ code = 400;
449
+ message = error.message || "Bad request";
450
+ } else if (error.status === 401 || error.message?.includes("401")) {
451
+ code = 401;
452
+ message = error.message || "Unauthorized";
453
+ } else if (error.status === 403 || error.message?.includes("403")) {
454
+ code = 403;
455
+ message = error.message || "Forbidden";
456
+ }
457
+ const errorResponse = {
458
+ code,
459
+ message: `${defaultMessage}: ${message}`,
460
+ timestamp
461
+ };
462
+ ctx.status = code;
463
+ return errorResponse;
464
+ };
465
+ var buildQueryParams = (params) => {
466
+ const queryParams = new URLSearchParams;
467
+ Object.entries(params).forEach(([key, value]) => {
468
+ if (value !== undefined && value !== null && value !== "") {
469
+ queryParams.append(key, String(value));
470
+ }
471
+ });
472
+ return queryParams.toString();
473
+ };
474
+ var paginateData = (data, limit, offset) => {
475
+ const total = data.length;
476
+ const startIndex = offset;
477
+ const endIndex = startIndex + limit;
478
+ const items = data.slice(startIndex, endIndex);
479
+ return {
480
+ code: 200,
481
+ message: "success",
482
+ data: {
483
+ items,
484
+ pagination: {
485
+ page: Math.floor(offset / limit) + 1,
486
+ pageSize: limit,
487
+ total
488
+ }
489
+ },
490
+ timestamp: new Date().toISOString()
491
+ };
492
+ };
10
493
 
11
494
  // server/src/controllers/inquiries.ts
12
495
  var list = async (ctx) => {
13
- ctx.body = "Hello World!";
496
+ const {
497
+ page = 1,
498
+ pageSize = 10,
499
+ keyword = "",
500
+ start = "",
501
+ end = "",
502
+ sortBy = "createdAt",
503
+ order = "desc"
504
+ } = ctx.query;
505
+ const queryString = buildQueryParams({
506
+ page,
507
+ pageSize,
508
+ keyword,
509
+ start,
510
+ end,
511
+ sortBy,
512
+ order
513
+ });
514
+ try {
515
+ return await fetchWebsite(`/api/inquiries?${queryString}`);
516
+ } catch (error) {
517
+ return handleError(ctx, error, "Failed to fetch inquiries");
518
+ }
14
519
  };
15
520
  var detail = async (ctx) => {
16
- ctx.body = "refresh";
521
+ const { id } = ctx.params;
522
+ try {
523
+ return await fetchWebsite(`/api/inquiries/${id}`);
524
+ } catch (error) {
525
+ return handleError(ctx, error, "Failed to fetch inquiry detail");
526
+ }
17
527
  };
18
528
  var read = async (ctx) => {
19
- ctx.body = "dashboard";
529
+ const { id } = ctx.params;
530
+ const operatorId = ctx.state?.user?.id;
531
+ if (!operatorId) {
532
+ ctx.throw(400, "operatorId is required");
533
+ }
534
+ try {
535
+ return await fetchWebsite(`/api/inquiries/${id}/read`, {
536
+ method: "PUT",
537
+ headers: { "Content-Type": "application/json" },
538
+ body: JSON.stringify({ operatorId })
539
+ });
540
+ } catch (error) {
541
+ return handleError(ctx, error, "Failed to mark inquiry as read");
542
+ }
20
543
  };
21
544
  var inquiries = {
22
545
  list,
@@ -27,13 +550,34 @@ var inquiries_default = inquiries;
27
550
 
28
551
  // server/src/controllers/visitors.ts
29
552
  var pageViews = async (ctx) => {
30
- ctx.body = "Hello World!";
553
+ const { limit = 10, offset = 0, start, end, ip } = ctx.query;
554
+ const queryString = buildQueryParams({ start, end, ip });
555
+ try {
556
+ const allData = await fetchWebsite(`/api/visitor/page-views?${queryString}`);
557
+ return paginateData(allData, Number(limit), Number(offset));
558
+ } catch (error) {
559
+ return handleError(ctx, error, "Failed to fetch page views");
560
+ }
31
561
  };
32
562
  var sessions = async (ctx) => {
33
- ctx.body = "refresh";
563
+ const { limit = 10, offset = 0, start, end, ip } = ctx.query;
564
+ const queryString = buildQueryParams({ start, end, ip });
565
+ try {
566
+ const allData = await fetchWebsite(`/api/visitor/sessions?${queryString}`);
567
+ return paginateData(allData, Number(limit), Number(offset));
568
+ } catch (error) {
569
+ return handleError(ctx, error, "Failed to fetch visitor sessions");
570
+ }
34
571
  };
35
572
  var dailyPageStats = async (ctx) => {
36
- ctx.body = "dashboard";
573
+ const { start, end, page, limit = 10, offset = 0 } = ctx.query;
574
+ const queryString = buildQueryParams({ start, end, page });
575
+ try {
576
+ const allData = await fetchWebsite(`/api/visitor/stats/daily-page?${queryString}`);
577
+ return paginateData(allData, Number(limit), Number(offset));
578
+ } catch (error) {
579
+ return handleError(ctx, error, "Failed to fetch daily page stats");
580
+ }
37
581
  };
38
582
  var visitors = {
39
583
  pageViews,
@@ -43,64 +587,284 @@ var visitors = {
43
587
  var visitors_default = visitors;
44
588
 
45
589
  // server/src/controllers/website.ts
46
- var hello = async (ctx) => {
47
- ctx.body = "Hello World!";
590
+ var hello = async () => {
591
+ return { message: "hello world" };
592
+ };
593
+ var check = async (ctx) => {
594
+ try {
595
+ return await fetchWebsite("/api/site/hello");
596
+ } catch (error) {
597
+ return handleError(ctx, error, "Failed to refresh website cache");
598
+ }
48
599
  };
49
600
  var refresh = async (ctx) => {
50
- ctx.body = "refresh";
601
+ try {
602
+ return await fetchWebsite("/api/site/refresh");
603
+ } catch (error) {
604
+ return handleError(ctx, error, "Failed to refresh website cache");
605
+ }
51
606
  };
52
607
  var dashboard = async (ctx) => {
53
- ctx.body = "dashboard";
608
+ try {
609
+ return await fetchWebsite("/api/common/dashboard");
610
+ } catch (error) {
611
+ return handleError(ctx, error, "Failed to fetch dashboard stats");
612
+ }
54
613
  };
55
614
  var website = {
56
615
  hello,
616
+ check,
57
617
  refresh,
58
618
  dashboard
59
619
  };
60
620
  var website_default = website;
61
621
 
62
622
  // server/src/controllers/index.ts
63
- var controllers = {
623
+ var controllers2 = {
64
624
  website: website_default,
65
625
  visitors: visitors_default,
66
- inquiries: inquiries_default
626
+ inquiries: inquiries_default,
627
+ fields: fields_default
67
628
  };
68
- var controllers_default = controllers;
629
+ var controllers_default = controllers2;
69
630
 
70
631
  // server/src/destroy.ts
71
- var destroy = ({ strapi }) => {
72
- strapi.log.info("dashboard server plugin: bootstrap");
632
+ var destroy = ({ strapi: strapi2 }) => {
633
+ strapi2.log.info("dashboard server plugin: bootstrap");
73
634
  };
74
635
  var destroy_default = destroy;
75
636
 
637
+ // server/src/components/index.ts
638
+ var createComponent = (strapi2, { name, displayName, icon, attributes }) => {
639
+ const category = "website";
640
+ if (strapi2.components[`${category}.${name}`])
641
+ return;
642
+ const builder = strapi2.plugin("content-type-builder");
643
+ builder.services.components.createComponent({
644
+ component: {
645
+ icon,
646
+ category,
647
+ displayName,
648
+ attributes
649
+ }
650
+ }).then((r) => {
651
+ console.log(`create ${name} component`, r);
652
+ });
653
+ };
654
+ var registerComponents = (strapi2, components) => {
655
+ components.forEach((component) => {
656
+ createComponent(strapi2, component);
657
+ });
658
+ };
659
+
660
+ // server/src/components/banner.ts
661
+ var component = {
662
+ name: "banner",
663
+ icon: "landscape",
664
+ displayName: "Banner",
665
+ attributes: {
666
+ title: {
667
+ type: "string"
668
+ },
669
+ subtitle: {
670
+ type: "string"
671
+ },
672
+ description: {
673
+ type: "string"
674
+ },
675
+ image: {
676
+ type: "media",
677
+ multiple: false,
678
+ required: true,
679
+ allowedTypes: ["images"]
680
+ },
681
+ mImage: {
682
+ type: "media",
683
+ multiple: false,
684
+ allowedTypes: ["images"]
685
+ }
686
+ }
687
+ };
688
+ var banner_default = component;
689
+
690
+ // server/src/components/logo.ts
691
+ var component2 = {
692
+ name: "logo",
693
+ icon: "picture",
694
+ displayName: "Logo",
695
+ attributes: {
696
+ main: {
697
+ type: "media",
698
+ multiple: false,
699
+ allowedTypes: ["images"]
700
+ },
701
+ sub: {
702
+ type: "media",
703
+ multiple: false,
704
+ allowedTypes: ["images"]
705
+ }
706
+ }
707
+ };
708
+ var logo_default = component2;
709
+
710
+ // server/src/components/social.ts
711
+ var component3 = {
712
+ name: "social",
713
+ icon: "paperPlane",
714
+ displayName: "Social",
715
+ attributes: {
716
+ type: {
717
+ type: "enumeration",
718
+ enum: ["url", "qrcode"]
719
+ },
720
+ url: {
721
+ type: "string",
722
+ conditions: {
723
+ visible: {
724
+ "==": [
725
+ {
726
+ var: "type"
727
+ },
728
+ "url"
729
+ ]
730
+ }
731
+ }
732
+ },
733
+ qrcode: {
734
+ type: "media",
735
+ conditions: {
736
+ visible: {
737
+ "==": [
738
+ {
739
+ var: "type"
740
+ },
741
+ "qrcode"
742
+ ]
743
+ }
744
+ },
745
+ multiple: false,
746
+ allowedTypes: ["images"]
747
+ }
748
+ }
749
+ };
750
+ var social_default = component3;
751
+
752
+ // server/src/components/video.ts
753
+ var component4 = {
754
+ name: "video",
755
+ icon: "play",
756
+ displayName: "Video",
757
+ attributes: {
758
+ url: {
759
+ type: "string",
760
+ required: true
761
+ },
762
+ title: {
763
+ type: "string"
764
+ },
765
+ image: {
766
+ type: "media",
767
+ multiple: false,
768
+ allowedTypes: ["images"]
769
+ }
770
+ }
771
+ };
772
+ var video_default = component4;
773
+
76
774
  // server/src/register.ts
77
- var register = ({ strapi }) => {
78
- strapi.log.info("dashboard server plugin: bootstrap");
775
+ var register = ({ strapi: strapi2 }) => {
776
+ strapi2.log.info("website server plugin: register");
777
+ registerComponents(strapi2, [
778
+ banner_default,
779
+ social_default,
780
+ logo_default,
781
+ video_default
782
+ ]);
783
+ strapi2.customFields.register([
784
+ {
785
+ name: "slugInput",
786
+ plugin: "website",
787
+ type: "string",
788
+ inputSize: {
789
+ default: 6,
790
+ isResizable: true
791
+ }
792
+ },
793
+ {
794
+ name: "dataNested",
795
+ plugin: "website",
796
+ type: "json",
797
+ inputSize: {
798
+ default: 12,
799
+ isResizable: false
800
+ }
801
+ },
802
+ {
803
+ name: "dataSelect",
804
+ plugin: "website",
805
+ type: "json",
806
+ inputSize: {
807
+ default: 12,
808
+ isResizable: false
809
+ }
810
+ },
811
+ {
812
+ name: "iconPicker",
813
+ plugin: "website",
814
+ type: "json",
815
+ inputSize: {
816
+ default: 4,
817
+ isResizable: true
818
+ }
819
+ },
820
+ {
821
+ name: "colorPicker",
822
+ plugin: "website",
823
+ type: "string",
824
+ inputSize: {
825
+ default: 4,
826
+ isResizable: true
827
+ }
828
+ }
829
+ ]);
79
830
  };
80
831
  var register_default = register;
81
832
 
82
833
  // server/src/routes/index.ts
83
- var routes = {
834
+ var routes2 = {
84
835
  admin: {
85
836
  type: "admin",
86
837
  routes: [
838
+ {
839
+ method: "POST",
840
+ path: "/fields/check-available",
841
+ handler: "fields.checkAvailable",
842
+ info: {}
843
+ },
87
844
  {
88
845
  method: "GET",
89
- path: "/website/hello",
846
+ path: "/hello",
90
847
  handler: "website.hello",
91
848
  config: { auth: false },
92
849
  info: {}
93
850
  },
94
851
  {
95
852
  method: "GET",
96
- path: "/website/refresh",
853
+ path: "/check",
854
+ handler: "website.check",
855
+ config: {},
856
+ info: {}
857
+ },
858
+ {
859
+ method: "GET",
860
+ path: "/refresh",
97
861
  handler: "website.refresh",
98
862
  config: {},
99
863
  info: {}
100
864
  },
101
865
  {
102
866
  method: "GET",
103
- path: "/website/dashboard",
867
+ path: "/dashboard",
104
868
  handler: "website.dashboard",
105
869
  config: {},
106
870
  info: {}
@@ -150,27 +914,36 @@ var routes = {
150
914
  ]
151
915
  }
152
916
  };
153
- var routes_default = routes;
917
+ var routes_default = routes2;
154
918
 
155
919
  // server/src/services/index.ts
156
- var services = {};
157
- var services_default = services;
920
+ var services2 = {};
921
+ var services_default = services2;
158
922
 
159
923
  // server/src/index.ts
160
924
  var plugin = {
161
925
  register: register_default,
162
926
  bootstrap: bootstrap_default,
163
927
  destroy: destroy_default,
164
- controllers: controllers_default,
165
- routes: routes_default,
166
- services: services_default,
167
- contentTypes: contentTypes_default,
928
+ config: config_default,
929
+ contentTypes: {
930
+ ...contentTypes_default,
931
+ ...api_default.contentTypes
932
+ },
933
+ controllers: {
934
+ ...controllers_default,
935
+ ...api_default.controllers
936
+ },
937
+ routes: {
938
+ ...routes_default,
939
+ ...api_default.routes
940
+ },
941
+ services: {
942
+ ...services_default,
943
+ ...api_default.services
944
+ },
168
945
  policies: {},
169
- middlewares: {},
170
- config: {
171
- default: {},
172
- validator: () => {}
173
- }
946
+ middlewares: {}
174
947
  };
175
948
  var src_default = plugin;
176
949
  export {