@vicacha-devs/strapi-plugin-inbox 0.0.0-stage → 1.1.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.
- package/LICENSE +22 -0
- package/README.md +17 -2
- package/dist/admin/InboxHomePage-B5xUPD7Y.mjs +2153 -0
- package/dist/admin/InboxHomePage-BCHbPE2t.js +2171 -0
- package/dist/admin/LocalizationRoutingTab-CEXbHNe4.mjs +282 -0
- package/dist/admin/LocalizationRoutingTab-Dt6U-kXn.js +281 -0
- package/dist/admin/SettingsPage-Dif7Cq7I.mjs +819 -0
- package/dist/admin/SettingsPage-qB_efKCl.js +837 -0
- package/dist/admin/ar-CbjX4o07.mjs +268 -0
- package/dist/admin/ar-KedDMvsH.js +268 -0
- package/dist/admin/de-BrJIGJEV.mjs +268 -0
- package/dist/admin/de-rj5pqQ0S.js +268 -0
- package/dist/admin/en-BE8TARw0.mjs +268 -0
- package/dist/admin/en-CuTmgXZL.js +268 -0
- package/dist/admin/es-Berf1dRb.js +268 -0
- package/dist/admin/es-Ce4nMwC7.mjs +268 -0
- package/dist/admin/fr-CfdjWCiu.js +268 -0
- package/dist/admin/fr-Y3GKi6mQ.mjs +268 -0
- package/dist/admin/index-5e9dAMBs.mjs +822 -0
- package/dist/admin/index-DLfoIVZP.js +839 -0
- package/dist/admin/index.js +5 -0
- package/dist/admin/index.mjs +5 -0
- package/dist/admin/it-DXXnvX5J.mjs +268 -0
- package/dist/admin/it-DkJ3WwLA.js +268 -0
- package/dist/admin/pt-D7WKv-MR.js +268 -0
- package/dist/admin/pt-QDCJ6lOH.mjs +268 -0
- package/dist/admin/ru-DgYTw9aE.js +268 -0
- package/dist/admin/ru-DzP0H4fh.mjs +268 -0
- package/dist/admin/src/components/Initializer.d.ts +6 -0
- package/dist/admin/src/components/PluginIcon.d.ts +3 -0
- package/dist/admin/src/components/inbox/AlertBannersTab.d.ts +10 -0
- package/dist/admin/src/components/inbox/CaseworkDetailPanel.d.ts +15 -0
- package/dist/admin/src/components/inbox/CaseworkPayloadChecklistColumn.d.ts +12 -0
- package/dist/admin/src/components/inbox/CaseworkSubmissionsTab.d.ts +12 -0
- package/dist/admin/src/components/inbox/FormBuilderTab.d.ts +17 -0
- package/dist/admin/src/components/inbox/FormChecklistAndLocalePanels.d.ts +17 -0
- package/dist/admin/src/components/inbox/FormRoutingDrawer.d.ts +15 -0
- package/dist/admin/src/components/inbox/SubscribersTab.d.ts +10 -0
- package/dist/admin/src/components/settings/AntiSpamCaptchaTab.d.ts +9 -0
- package/dist/admin/src/components/settings/BridgesNotificationsTab.d.ts +8 -0
- package/dist/admin/src/components/settings/CaptchaProviderCard.d.ts +21 -0
- package/dist/admin/src/components/settings/LocalizationRoutingTab.d.ts +16 -0
- package/dist/admin/src/index.d.ts +21 -0
- package/dist/admin/src/pages/InboxHomePage.d.ts +3 -0
- package/dist/admin/src/pages/SettingsPage.d.ts +3 -0
- package/dist/admin/src/pluginId.d.ts +3 -0
- package/dist/admin/src/translations/cmLabels.d.ts +1 -0
- package/dist/admin/src/translations/cmPlaceholders.d.ts +1 -0
- package/dist/admin/src/utils/getTranslation.d.ts +3 -0
- package/dist/admin/tr-5q4NwTgF.mjs +268 -0
- package/dist/admin/tr-CT-24fLA.js +268 -0
- package/dist/admin/zh-CYhWM5Qr.mjs +268 -0
- package/dist/admin/zh-CmCHcNcd.js +268 -0
- package/dist/server/index.js +3108 -0
- package/dist/server/index.mjs +3108 -0
- package/dist/server/src/bootstrap.d.ts +5 -0
- package/dist/server/src/config/index.d.ts +5 -0
- package/dist/server/src/content-types/alert-banner/index.d.ts +73 -0
- package/dist/server/src/content-types/alert-banner/schema.json.d.ts +73 -0
- package/dist/server/src/content-types/index.d.ts +253 -0
- package/dist/server/src/content-types/submission/index.d.ts +111 -0
- package/dist/server/src/content-types/submission/schema.json.d.ts +126 -0
- package/dist/server/src/content-types/subscriber/index.d.ts +69 -0
- package/dist/server/src/content-types/subscriber/schema.json.d.ts +69 -0
- package/dist/server/src/controllers/caseworkHandlers.d.ts +10 -0
- package/dist/server/src/controllers/communityHandlers.d.ts +10 -0
- package/dist/server/src/controllers/formHandlers.d.ts +14 -0
- package/dist/server/src/controllers/inboxController.d.ts +40 -0
- package/dist/server/src/controllers/index.d.ts +2 -0
- package/dist/server/src/destroy.d.ts +5 -0
- package/dist/server/src/index.d.ts +2 -0
- package/dist/server/src/register.d.ts +5 -0
- package/dist/server/src/routes/admin.d.ts +12 -0
- package/dist/server/src/routes/content-api.d.ts +13 -0
- package/dist/server/src/routes/index.d.ts +26 -0
- package/dist/server/src/services/alertService.d.ts +16 -0
- package/dist/server/src/services/docHelper.d.ts +28 -0
- package/dist/server/src/services/formBuilderMapper.d.ts +22 -0
- package/dist/server/src/services/formBuilderSync.d.ts +13 -0
- package/dist/server/src/services/formService.d.ts +40 -0
- package/dist/server/src/services/index.d.ts +2 -0
- package/dist/server/src/services/settings.d.ts +9 -0
- package/dist/server/src/services/submissionEcosystemBridges.d.ts +21 -0
- package/dist/server/src/services/submissionFormBuilderBridge.d.ts +23 -0
- package/dist/server/src/services/submissionService.d.ts +58 -0
- package/dist/server/src/services/subscriberService.d.ts +22 -0
- package/dist/shared/index.d.ts +1 -0
- package/dist/shared/index.js +917 -0
- package/dist/shared/index.mjs +917 -0
- package/package.json +125 -3
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
schema: {
|
|
3
|
+
kind: string;
|
|
4
|
+
collectionName: string;
|
|
5
|
+
info: {
|
|
6
|
+
singularName: string;
|
|
7
|
+
pluralName: string;
|
|
8
|
+
displayName: string;
|
|
9
|
+
description: string;
|
|
10
|
+
};
|
|
11
|
+
options: {
|
|
12
|
+
draftAndPublish: boolean;
|
|
13
|
+
};
|
|
14
|
+
pluginOptions: {
|
|
15
|
+
"content-manager": {
|
|
16
|
+
visible: boolean;
|
|
17
|
+
};
|
|
18
|
+
"content-type-builder": {
|
|
19
|
+
visible: boolean;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
attributes: {
|
|
23
|
+
email: {
|
|
24
|
+
type: string;
|
|
25
|
+
required: boolean;
|
|
26
|
+
unique: boolean;
|
|
27
|
+
};
|
|
28
|
+
fullName: {
|
|
29
|
+
type: string;
|
|
30
|
+
};
|
|
31
|
+
phone: {
|
|
32
|
+
type: string;
|
|
33
|
+
};
|
|
34
|
+
locale: {
|
|
35
|
+
type: string;
|
|
36
|
+
default: string;
|
|
37
|
+
};
|
|
38
|
+
topics: {
|
|
39
|
+
type: string;
|
|
40
|
+
default: string[];
|
|
41
|
+
};
|
|
42
|
+
status: {
|
|
43
|
+
type: string;
|
|
44
|
+
enum: string[];
|
|
45
|
+
default: string;
|
|
46
|
+
required: boolean;
|
|
47
|
+
};
|
|
48
|
+
confirmToken: {
|
|
49
|
+
type: string;
|
|
50
|
+
private: boolean;
|
|
51
|
+
};
|
|
52
|
+
unsubscribeToken: {
|
|
53
|
+
type: string;
|
|
54
|
+
required: boolean;
|
|
55
|
+
private: boolean;
|
|
56
|
+
};
|
|
57
|
+
confirmedAt: {
|
|
58
|
+
type: string;
|
|
59
|
+
};
|
|
60
|
+
unsubscribedAt: {
|
|
61
|
+
type: string;
|
|
62
|
+
};
|
|
63
|
+
sourceFormSlug: {
|
|
64
|
+
type: string;
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
export default _default;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
"kind": "collectionType",
|
|
3
|
+
"collectionName": "inbox_subscribers",
|
|
4
|
+
"info": {
|
|
5
|
+
"singularName": "subscriber",
|
|
6
|
+
"pluralName": "subscribers",
|
|
7
|
+
"displayName": "Inbox Subscriber",
|
|
8
|
+
"description": "Double Opt-In newsletter and community topic subscriber"
|
|
9
|
+
},
|
|
10
|
+
"options": {
|
|
11
|
+
"draftAndPublish": false
|
|
12
|
+
},
|
|
13
|
+
"pluginOptions": {
|
|
14
|
+
"content-manager": {
|
|
15
|
+
"visible": true
|
|
16
|
+
},
|
|
17
|
+
"content-type-builder": {
|
|
18
|
+
"visible": true
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"attributes": {
|
|
22
|
+
"email": {
|
|
23
|
+
"type": "email",
|
|
24
|
+
"required": true,
|
|
25
|
+
"unique": true
|
|
26
|
+
},
|
|
27
|
+
"fullName": {
|
|
28
|
+
"type": "string"
|
|
29
|
+
},
|
|
30
|
+
"phone": {
|
|
31
|
+
"type": "string"
|
|
32
|
+
},
|
|
33
|
+
"locale": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"default": "es"
|
|
36
|
+
},
|
|
37
|
+
"topics": {
|
|
38
|
+
"type": "json",
|
|
39
|
+
"default": ["announcements"]
|
|
40
|
+
},
|
|
41
|
+
"status": {
|
|
42
|
+
"type": "enumeration",
|
|
43
|
+
"enum": ["pending", "confirmed", "unsubscribed"],
|
|
44
|
+
"default": "pending",
|
|
45
|
+
"required": true
|
|
46
|
+
},
|
|
47
|
+
"confirmToken": {
|
|
48
|
+
"type": "string",
|
|
49
|
+
"private": true
|
|
50
|
+
},
|
|
51
|
+
"unsubscribeToken": {
|
|
52
|
+
"type": "string",
|
|
53
|
+
"required": true,
|
|
54
|
+
"private": true
|
|
55
|
+
},
|
|
56
|
+
"confirmedAt": {
|
|
57
|
+
"type": "datetime"
|
|
58
|
+
},
|
|
59
|
+
"unsubscribedAt": {
|
|
60
|
+
"type": "datetime"
|
|
61
|
+
},
|
|
62
|
+
"sourceFormSlug": {
|
|
63
|
+
"type": "string"
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
;
|
|
68
|
+
|
|
69
|
+
export default _default;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Core } from '@strapi/strapi';
|
|
2
|
+
import { ControllerCtx } from './inboxController';
|
|
3
|
+
export declare const createCaseworkHandlers: (strapi: Core.Strapi) => {
|
|
4
|
+
listSubmissions(ctx: ControllerCtx): Promise<void>;
|
|
5
|
+
updateCasework(ctx: ControllerCtx): Promise<void>;
|
|
6
|
+
scheduleBooking(ctx: ControllerCtx): Promise<void>;
|
|
7
|
+
issueCertificate(ctx: ControllerCtx): Promise<void>;
|
|
8
|
+
exportCsv(ctx: ControllerCtx): Promise<void>;
|
|
9
|
+
testCaptcha(ctx: ControllerCtx): Promise<void>;
|
|
10
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Core } from '@strapi/strapi';
|
|
2
|
+
import { ControllerCtx } from './inboxController';
|
|
3
|
+
export declare const createCommunityHandlers: (strapi: Core.Strapi) => {
|
|
4
|
+
subscribe(ctx: ControllerCtx): Promise<void>;
|
|
5
|
+
confirmSubscription(ctx: ControllerCtx): Promise<void>;
|
|
6
|
+
unsubscribe(ctx: ControllerCtx): Promise<void>;
|
|
7
|
+
listSubscribers(ctx: ControllerCtx): Promise<void>;
|
|
8
|
+
getActiveAlerts(ctx: ControllerCtx): Promise<void>;
|
|
9
|
+
upsertAlertBanner(ctx: ControllerCtx): Promise<void>;
|
|
10
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Core } from '@strapi/strapi';
|
|
2
|
+
import { ControllerCtx } from './inboxController';
|
|
3
|
+
export declare const createFormHandlers: (strapi: Core.Strapi) => {
|
|
4
|
+
getSettings(ctx: ControllerCtx): Promise<void>;
|
|
5
|
+
updateSettings(ctx: ControllerCtx): Promise<void>;
|
|
6
|
+
listTemplates(ctx: ControllerCtx): Promise<void>;
|
|
7
|
+
listFormBuilderForms(ctx: ControllerCtx): Promise<void>;
|
|
8
|
+
syncFormBuilder(ctx: ControllerCtx): Promise<void>;
|
|
9
|
+
listForms(ctx: ControllerCtx): Promise<void>;
|
|
10
|
+
getFormBySlug(ctx: ControllerCtx): Promise<void>;
|
|
11
|
+
saveForm(ctx: ControllerCtx): Promise<void>;
|
|
12
|
+
createFromTemplate(ctx: ControllerCtx): Promise<void>;
|
|
13
|
+
submitForm(ctx: ControllerCtx): Promise<void>;
|
|
14
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Core } from '@strapi/strapi';
|
|
2
|
+
export interface ControllerCtx {
|
|
3
|
+
params?: Record<string, string>;
|
|
4
|
+
query?: Record<string, string>;
|
|
5
|
+
request: {
|
|
6
|
+
body?: Record<string, unknown>;
|
|
7
|
+
ip?: string;
|
|
8
|
+
headers?: Record<string, string | undefined>;
|
|
9
|
+
};
|
|
10
|
+
set?: (header: string, value: string) => void;
|
|
11
|
+
status?: number;
|
|
12
|
+
body?: unknown;
|
|
13
|
+
}
|
|
14
|
+
declare const _default: ({ strapi }: {
|
|
15
|
+
strapi: Core.Strapi;
|
|
16
|
+
}) => {
|
|
17
|
+
subscribe(ctx: ControllerCtx): Promise<void>;
|
|
18
|
+
confirmSubscription(ctx: ControllerCtx): Promise<void>;
|
|
19
|
+
unsubscribe(ctx: ControllerCtx): Promise<void>;
|
|
20
|
+
listSubscribers(ctx: ControllerCtx): Promise<void>;
|
|
21
|
+
getActiveAlerts(ctx: ControllerCtx): Promise<void>;
|
|
22
|
+
upsertAlertBanner(ctx: ControllerCtx): Promise<void>;
|
|
23
|
+
listSubmissions(ctx: ControllerCtx): Promise<void>;
|
|
24
|
+
updateCasework(ctx: ControllerCtx): Promise<void>;
|
|
25
|
+
scheduleBooking(ctx: ControllerCtx): Promise<void>;
|
|
26
|
+
issueCertificate(ctx: ControllerCtx): Promise<void>;
|
|
27
|
+
exportCsv(ctx: ControllerCtx): Promise<void>;
|
|
28
|
+
testCaptcha(ctx: ControllerCtx): Promise<void>;
|
|
29
|
+
getSettings(ctx: ControllerCtx): Promise<void>;
|
|
30
|
+
updateSettings(ctx: ControllerCtx): Promise<void>;
|
|
31
|
+
listTemplates(ctx: ControllerCtx): Promise<void>;
|
|
32
|
+
listFormBuilderForms(ctx: ControllerCtx): Promise<void>;
|
|
33
|
+
syncFormBuilder(ctx: ControllerCtx): Promise<void>;
|
|
34
|
+
listForms(ctx: ControllerCtx): Promise<void>;
|
|
35
|
+
getFormBySlug(ctx: ControllerCtx): Promise<void>;
|
|
36
|
+
saveForm(ctx: ControllerCtx): Promise<void>;
|
|
37
|
+
createFromTemplate(ctx: ControllerCtx): Promise<void>;
|
|
38
|
+
submitForm(ctx: ControllerCtx): Promise<void>;
|
|
39
|
+
};
|
|
40
|
+
export default _default;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
"content-api": {
|
|
3
|
+
type: string;
|
|
4
|
+
routes: {
|
|
5
|
+
method: string;
|
|
6
|
+
path: string;
|
|
7
|
+
handler: string;
|
|
8
|
+
config: {
|
|
9
|
+
policies: never[];
|
|
10
|
+
auth: boolean;
|
|
11
|
+
};
|
|
12
|
+
}[];
|
|
13
|
+
};
|
|
14
|
+
admin: {
|
|
15
|
+
type: string;
|
|
16
|
+
routes: {
|
|
17
|
+
method: string;
|
|
18
|
+
path: string;
|
|
19
|
+
handler: string;
|
|
20
|
+
config: {
|
|
21
|
+
policies: never[];
|
|
22
|
+
};
|
|
23
|
+
}[];
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
export default _default;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Core } from '@strapi/strapi';
|
|
2
|
+
import { AlertBannerRecord } from '../../../shared';
|
|
3
|
+
declare const _default: ({ strapi }: {
|
|
4
|
+
strapi: Core.Strapi;
|
|
5
|
+
}) => {
|
|
6
|
+
getActiveAlerts(params?: {
|
|
7
|
+
locale?: string;
|
|
8
|
+
nowIso?: string;
|
|
9
|
+
}): Promise<AlertBannerRecord[]>;
|
|
10
|
+
upsertAlertBanner(input: Partial<AlertBannerRecord> & {
|
|
11
|
+
code: string;
|
|
12
|
+
title: string;
|
|
13
|
+
message: string;
|
|
14
|
+
}): Promise<AlertBannerRecord>;
|
|
15
|
+
};
|
|
16
|
+
export default _default;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Core } from '@strapi/strapi';
|
|
2
|
+
export interface DocumentServiceLike {
|
|
3
|
+
findMany(params?: {
|
|
4
|
+
limit?: number;
|
|
5
|
+
locale?: string;
|
|
6
|
+
status?: "draft" | "published";
|
|
7
|
+
filters?: Record<string, unknown>;
|
|
8
|
+
populate?: string[];
|
|
9
|
+
sort?: string;
|
|
10
|
+
}): Promise<Array<Record<string, unknown>>>;
|
|
11
|
+
findOne(params: {
|
|
12
|
+
documentId: string;
|
|
13
|
+
locale?: string;
|
|
14
|
+
populate?: string[];
|
|
15
|
+
}): Promise<Record<string, unknown> | null>;
|
|
16
|
+
create(params: {
|
|
17
|
+
data: Record<string, unknown>;
|
|
18
|
+
locale?: string;
|
|
19
|
+
status?: "draft" | "published";
|
|
20
|
+
}): Promise<Record<string, unknown>>;
|
|
21
|
+
update(params: {
|
|
22
|
+
documentId: string;
|
|
23
|
+
locale?: string;
|
|
24
|
+
status?: "draft" | "published";
|
|
25
|
+
data: Record<string, unknown>;
|
|
26
|
+
}): Promise<Record<string, unknown> | null>;
|
|
27
|
+
}
|
|
28
|
+
export declare function getDocuments(strapi: Core.Strapi, uid: string): DocumentServiceLike;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ChecklistItem, FormCategory, FormRecord, FormTranslation, SubmissionPriority } from '../../../shared';
|
|
2
|
+
export interface EmbeddedInboxMetadata {
|
|
3
|
+
category?: FormCategory;
|
|
4
|
+
checklistTemplate?: ChecklistItem[];
|
|
5
|
+
translations?: Record<string, FormTranslation>;
|
|
6
|
+
active?: boolean;
|
|
7
|
+
submissionCount?: number;
|
|
8
|
+
department?: string;
|
|
9
|
+
defaultPriority?: SubmissionPriority;
|
|
10
|
+
honeypotField?: string;
|
|
11
|
+
webhookUrl?: string;
|
|
12
|
+
enableBookingBridge?: boolean;
|
|
13
|
+
defaultBookingServiceSlug?: string;
|
|
14
|
+
enableCertificateBridge?: boolean;
|
|
15
|
+
defaultCertificateTemplateId?: string;
|
|
16
|
+
localizedSubmitLabels?: Record<string, string>;
|
|
17
|
+
localizedSuccessMessages?: Record<string, string>;
|
|
18
|
+
}
|
|
19
|
+
export declare function sanitizePublicForm(form: FormRecord, locale?: string): FormRecord;
|
|
20
|
+
export declare function toFormBuilderCmsPayload(form: FormRecord, existingCms?: Record<string, unknown> | null): Record<string, unknown>;
|
|
21
|
+
export declare function fromFormBuilderCmsRow(cmsForm: Record<string, unknown>, existing?: FormRecord | null): FormRecord;
|
|
22
|
+
export declare const mergeFormBuilderCmsIntoInboxForm: typeof fromFormBuilderCmsRow;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Core } from '@strapi/strapi';
|
|
2
|
+
import { FormBuilderCmsFormSummary, FormRecord } from '../../../shared';
|
|
3
|
+
export declare function isFormBuilderCmsAvailable(strapi: Core.Strapi): boolean;
|
|
4
|
+
export declare function countSubmissionsForForm(strapi: Core.Strapi, formId: number, slug: string): Promise<number>;
|
|
5
|
+
export declare function listFormBuilderForms(strapi: Core.Strapi): Promise<{
|
|
6
|
+
available: boolean;
|
|
7
|
+
forms: FormBuilderCmsFormSummary[];
|
|
8
|
+
}>;
|
|
9
|
+
export declare function syncFormToBuilderCms(strapi: Core.Strapi, form: FormRecord): Promise<{
|
|
10
|
+
formBuilderId: number;
|
|
11
|
+
formBuilderSlug: string;
|
|
12
|
+
} | null>;
|
|
13
|
+
export declare function syncFormFromBuilderCms(strapi: Core.Strapi, cmsForm: Record<string, unknown>): Promise<FormRecord | null>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Core } from '@strapi/strapi';
|
|
2
|
+
import { FormBuilderCmsFormSummary, FormCategory, FormRecord } from '../../../shared';
|
|
3
|
+
import { fromFormBuilderCmsRow, mergeFormBuilderCmsIntoInboxForm, sanitizePublicForm, toFormBuilderCmsPayload } from './formBuilderMapper';
|
|
4
|
+
export { fromFormBuilderCmsRow, mergeFormBuilderCmsIntoInboxForm, sanitizePublicForm, toFormBuilderCmsPayload, };
|
|
5
|
+
declare const _default: ({ strapi }: {
|
|
6
|
+
strapi: Core.Strapi;
|
|
7
|
+
}) => {
|
|
8
|
+
isFormBuilderCmsAvailable(): boolean;
|
|
9
|
+
listFormBuilderForms(): Promise<{
|
|
10
|
+
available: boolean;
|
|
11
|
+
forms: FormBuilderCmsFormSummary[];
|
|
12
|
+
}>;
|
|
13
|
+
syncFormToBuilderCms(form: FormRecord): Promise<{
|
|
14
|
+
formBuilderId: number;
|
|
15
|
+
formBuilderSlug: string;
|
|
16
|
+
} | null>;
|
|
17
|
+
syncFormFromBuilderCms(cmsForm: Record<string, unknown>): Promise<FormRecord | null>;
|
|
18
|
+
syncWithFormBuilderCms(): Promise<{
|
|
19
|
+
available: boolean;
|
|
20
|
+
syncedToBuilder: number;
|
|
21
|
+
syncedFromBuilder: number;
|
|
22
|
+
forms: FormRecord[];
|
|
23
|
+
}>;
|
|
24
|
+
listForms(params?: {
|
|
25
|
+
category?: FormCategory;
|
|
26
|
+
activeOnly?: boolean;
|
|
27
|
+
locale?: string;
|
|
28
|
+
publicSafe?: boolean;
|
|
29
|
+
}): Promise<FormRecord[]>;
|
|
30
|
+
findBySlug(slug: string, options?: {
|
|
31
|
+
locale?: string;
|
|
32
|
+
publicSafe?: boolean;
|
|
33
|
+
}): Promise<FormRecord | null>;
|
|
34
|
+
saveForm(input: Partial<FormRecord> & {
|
|
35
|
+
slug: string;
|
|
36
|
+
title: string;
|
|
37
|
+
}): Promise<FormRecord>;
|
|
38
|
+
createFromTemplate(templateId: string, overrides?: Partial<FormRecord>): Promise<FormRecord>;
|
|
39
|
+
};
|
|
40
|
+
export default _default;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Core } from '@strapi/strapi';
|
|
2
|
+
import { InboxSettings } from '../../../shared';
|
|
3
|
+
declare const _default: ({ strapi }: {
|
|
4
|
+
strapi: Core.Strapi;
|
|
5
|
+
}) => {
|
|
6
|
+
getSettings(): Promise<InboxSettings>;
|
|
7
|
+
updateSettings(patch: Partial<InboxSettings>): Promise<InboxSettings>;
|
|
8
|
+
};
|
|
9
|
+
export default _default;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Core } from '@strapi/strapi';
|
|
2
|
+
import { SubmissionRecord } from '../../../shared';
|
|
3
|
+
export declare function scheduleBookingFromSubmission(strapi: Core.Strapi, documentId: string, bookingInput: {
|
|
4
|
+
serviceSlug: string;
|
|
5
|
+
date: string;
|
|
6
|
+
startTime: string;
|
|
7
|
+
endTime?: string;
|
|
8
|
+
notes?: string;
|
|
9
|
+
}): Promise<{
|
|
10
|
+
submission: SubmissionRecord;
|
|
11
|
+
bookingId: string;
|
|
12
|
+
}>;
|
|
13
|
+
export declare function issueCertificateFromSubmission(strapi: Core.Strapi, documentId: string, certInput?: {
|
|
14
|
+
templateSlug?: string;
|
|
15
|
+
recipientName?: string;
|
|
16
|
+
requireChecklistVerified?: boolean;
|
|
17
|
+
}): Promise<{
|
|
18
|
+
submission: SubmissionRecord;
|
|
19
|
+
certificateNumber: string;
|
|
20
|
+
}>;
|
|
21
|
+
export declare function exportSubmissionsCsv(strapi: Core.Strapi, submissions: SubmissionRecord[], formSlug?: string): Promise<string>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Core } from '@strapi/strapi';
|
|
2
|
+
import { FormRecord, InboxSettings, SubmissionRecord } from '../../../shared';
|
|
3
|
+
export declare function generateReferenceCode(now?: Date): string;
|
|
4
|
+
export declare function mirrorSubmissionToFormBuilderCms(strapi: Core.Strapi, params: {
|
|
5
|
+
settings: InboxSettings;
|
|
6
|
+
form: FormRecord;
|
|
7
|
+
cleanedData: Record<string, unknown>;
|
|
8
|
+
ip: string;
|
|
9
|
+
userAgent: string;
|
|
10
|
+
}): Promise<number | null>;
|
|
11
|
+
export declare function resolveCmsSubmissionFormRef(cmsSubmission: Record<string, unknown>, meta?: {
|
|
12
|
+
formId?: number;
|
|
13
|
+
formSlug?: string;
|
|
14
|
+
}): {
|
|
15
|
+
formId: number | null;
|
|
16
|
+
formSlug: string;
|
|
17
|
+
};
|
|
18
|
+
export declare function ingestFormBuilderSubmission(strapi: Core.Strapi, cmsSubmission: Record<string, unknown>, meta?: {
|
|
19
|
+
formId?: number;
|
|
20
|
+
formSlug?: string;
|
|
21
|
+
nowMs?: number;
|
|
22
|
+
}): Promise<SubmissionRecord | null>;
|
|
23
|
+
export declare function syncSubmissionsFromFormBuilderCms(strapi: Core.Strapi): Promise<number>;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Core } from '@strapi/strapi';
|
|
2
|
+
import { ChecklistItem, FetchLike, SubmissionPriority, SubmissionRecord, SubmissionStatus } from '../../../shared';
|
|
3
|
+
declare const _default: ({ strapi }: {
|
|
4
|
+
strapi: Core.Strapi;
|
|
5
|
+
}) => {
|
|
6
|
+
testCaptchaSecret(provider: "none" | "turnstile" | "recaptcha", secret: string, fetchImpl?: FetchLike): Promise<{
|
|
7
|
+
ok: boolean;
|
|
8
|
+
reason?: string;
|
|
9
|
+
}>;
|
|
10
|
+
submitForm(slug: string, payload: Record<string, unknown>, meta?: {
|
|
11
|
+
ip?: string;
|
|
12
|
+
userAgent?: string;
|
|
13
|
+
locale?: string;
|
|
14
|
+
captchaToken?: string;
|
|
15
|
+
nowMs?: number;
|
|
16
|
+
fetchImpl?: FetchLike;
|
|
17
|
+
}): Promise<SubmissionRecord>;
|
|
18
|
+
ingestFormBuilderSubmission(cmsSubmission: Record<string, unknown>, meta?: {
|
|
19
|
+
formId?: number;
|
|
20
|
+
formSlug?: string;
|
|
21
|
+
nowMs?: number;
|
|
22
|
+
}): Promise<SubmissionRecord | null>;
|
|
23
|
+
listSubmissions(filters?: {
|
|
24
|
+
formSlug?: string;
|
|
25
|
+
status?: SubmissionStatus;
|
|
26
|
+
priority?: SubmissionPriority;
|
|
27
|
+
department?: string;
|
|
28
|
+
limit?: number;
|
|
29
|
+
}): Promise<SubmissionRecord[]>;
|
|
30
|
+
updateCasework(documentId: string, patch: {
|
|
31
|
+
status?: SubmissionStatus;
|
|
32
|
+
priority?: SubmissionPriority;
|
|
33
|
+
department?: string;
|
|
34
|
+
staffNotes?: string;
|
|
35
|
+
assignedTo?: string;
|
|
36
|
+
checklistItems?: ChecklistItem[];
|
|
37
|
+
}): Promise<SubmissionRecord>;
|
|
38
|
+
scheduleBookingFromSubmission(documentId: string, bookingInput: {
|
|
39
|
+
serviceSlug: string;
|
|
40
|
+
date: string;
|
|
41
|
+
startTime: string;
|
|
42
|
+
endTime?: string;
|
|
43
|
+
notes?: string;
|
|
44
|
+
}): Promise<{
|
|
45
|
+
submission: SubmissionRecord;
|
|
46
|
+
bookingId: string;
|
|
47
|
+
}>;
|
|
48
|
+
issueCertificateFromSubmission(documentId: string, certInput?: {
|
|
49
|
+
templateSlug?: string;
|
|
50
|
+
recipientName?: string;
|
|
51
|
+
requireChecklistVerified?: boolean;
|
|
52
|
+
}): Promise<{
|
|
53
|
+
submission: SubmissionRecord;
|
|
54
|
+
certificateNumber: string;
|
|
55
|
+
}>;
|
|
56
|
+
exportCsv(formSlug?: string): Promise<string>;
|
|
57
|
+
};
|
|
58
|
+
export default _default;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Core } from '@strapi/strapi';
|
|
2
|
+
import { SubscriberRecord, SubscriberStatus } from '../../../shared';
|
|
3
|
+
declare const _default: ({ strapi }: {
|
|
4
|
+
strapi: Core.Strapi;
|
|
5
|
+
}) => {
|
|
6
|
+
subscribe(input: {
|
|
7
|
+
email: string;
|
|
8
|
+
fullName?: string;
|
|
9
|
+
phone?: string;
|
|
10
|
+
locale?: string;
|
|
11
|
+
topics?: string[];
|
|
12
|
+
sourceFormSlug?: string;
|
|
13
|
+
}): Promise<SubscriberRecord>;
|
|
14
|
+
confirmSubscription(token: string): Promise<SubscriberRecord>;
|
|
15
|
+
unsubscribe(token: string): Promise<SubscriberRecord>;
|
|
16
|
+
listSubscribers(filters?: {
|
|
17
|
+
status?: SubscriberStatus;
|
|
18
|
+
topic?: string;
|
|
19
|
+
locale?: string;
|
|
20
|
+
}): Promise<SubscriberRecord[]>;
|
|
21
|
+
};
|
|
22
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../../shared/index.js';
|