strapi-plugin-hubspot 0.7.0 → 0.9.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/CHANGELOG.md +38 -0
- package/README.md +28 -0
- package/dist/_chunks/{Forms-CKA6ukB6.mjs → Forms-BsKys-Hc.mjs} +404 -42
- package/dist/_chunks/{Forms-HMZbTk_B.js → Forms-JuzNfsbL.js} +401 -39
- package/dist/_chunks/{HubspotFormInput-CKYRcNNU.mjs → HubspotFormInput-CIvHS5rp.mjs} +1 -1
- package/dist/_chunks/{HubspotFormInput-BequMb12.js → HubspotFormInput-ph9pe6xY.js} +1 -1
- package/dist/_chunks/{HubspotObjectInput-V3uhGK8k.mjs → HubspotObjectInput-BX1qYD2c.mjs} +3 -3
- package/dist/_chunks/{HubspotObjectInput-D-FGwsyS.js → HubspotObjectInput-dAd-lMdD.js} +3 -3
- package/dist/_chunks/{HubspotPropertyInput-Dn1QvOcu.js → HubspotPropertyInput-BM3ZaY8f.js} +3 -3
- package/dist/_chunks/{HubspotPropertyInput-DrBsx9jQ.mjs → HubspotPropertyInput-C2Z6472q.mjs} +3 -3
- package/dist/_chunks/{Settings-Cgp7M1Cv.js → Settings-Cdcjy9DA.js} +2 -2
- package/dist/_chunks/{Settings-BjkNbyna.mjs → Settings-DnwGetcc.mjs} +2 -2
- package/dist/_chunks/{en-Cun5LoUP.mjs → en-CcQWnXra.mjs} +50 -3
- package/dist/_chunks/{en-D5Ch9YFo.js → en-Cqfair98.js} +50 -3
- package/dist/_chunks/{fr-ClOWflse.mjs → fr-CBRZ9q8U.mjs} +50 -3
- package/dist/_chunks/{fr-CqlhHltZ.js → fr-D117-3Ta.js} +50 -3
- package/dist/_chunks/{index-D2Q34BuH.js → index-BbRtXnAL.js} +6 -6
- package/dist/_chunks/{index-FKsiOEPB.mjs → index-LTaVoyWJ.mjs} +6 -6
- package/dist/_chunks/{objectLabels-DBKevJle.mjs → objectLabels-DE2xGq7f.mjs} +1 -1
- package/dist/_chunks/{objectLabels-LAQ0M6-a.js → objectLabels-DU0Cagt_.js} +1 -1
- package/dist/_chunks/{useHubspotSchema-BC0Od-Wl.mjs → useHubspotSchema-BSKow0X3.mjs} +1 -1
- package/dist/_chunks/{useHubspotSchema-C08qBAyy.js → useHubspotSchema-DzBMAxv7.js} +1 -1
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/admin/src/builder/types.d.ts +26 -0
- package/dist/admin/src/pages/Forms.d.ts +5 -1
- package/dist/admin/src/pages/Submissions.d.ts +8 -0
- package/dist/server/index.js +396 -21
- package/dist/server/index.mjs +396 -21
- package/dist/server/src/__tests__/importHubspot.test.d.ts +1 -0
- package/dist/server/src/__tests__/submissions.test.d.ts +1 -0
- package/dist/server/src/content-types.d.ts +3 -0
- package/dist/server/src/forms.d.ts +2 -0
- package/dist/server/src/formsAdmin.d.ts +19 -0
- package/dist/server/src/importHubspot.d.ts +85 -0
- package/dist/server/src/importLegacy.d.ts +1 -0
- package/dist/server/src/index.d.ts +32 -1
- package/dist/server/src/submissions.d.ts +28 -0
- package/dist/shared/types.d.ts +2 -0
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,43 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.9.0 — 2026-08-29
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
- **Import from HubSpot**: forms built in HubSpot (marketing v3 Forms API,
|
|
7
|
+
`forms` read scope) can be translated into builder drafts — fields, options,
|
|
8
|
+
two-per-row layouts and dependent-field conditions carried over, with a
|
|
9
|
+
**CRM mapping that is valid on arrival** since a HubSpot form field is a CRM
|
|
10
|
+
property. What the builder can't express (file uploads, hidden fields,
|
|
11
|
+
content blocks, GDPR consent, exotic operators) is skipped and **reported**
|
|
12
|
+
after the import instead of silently dropped. Re-importing overwrites the
|
|
13
|
+
draft; the HubSpot original is never touched.
|
|
14
|
+
- **Submissions browser**: a Submissions page in the admin (button on the
|
|
15
|
+
forms list + per-form counts in the table) — newest first, filterable by
|
|
16
|
+
form, sync state at a glance, full answers in a modal, and a per-form
|
|
17
|
+
**CSV export** whose columns follow the field order of the form (historical
|
|
18
|
+
keys appended, never dropped).
|
|
19
|
+
- Admin routes: `GET/POST /hubspot/builder/import/hubspot`,
|
|
20
|
+
`GET /hubspot/builder/submissions`, `GET /hubspot/builder/submissions/export`
|
|
21
|
+
(all RBAC-gated by `plugin::hubspot.forms`); the forms list now carries a
|
|
22
|
+
`submissions` count per row.
|
|
23
|
+
|
|
24
|
+
## 0.8.0 — 2026-08-29
|
|
25
|
+
|
|
26
|
+
### Improved (builder UX pass, from a live session)
|
|
27
|
+
- **The whole step card now selects the step** — the click target was the tiny
|
|
28
|
+
"Step N" text, which read as "step titles can't be edited". Inner controls
|
|
29
|
+
stop propagation, so field selection and the action buttons are unaffected.
|
|
30
|
+
- Field panel gains the imported-but-invisible settings: **icon**, **answer
|
|
31
|
+
memory (persist)** and **CSS classes**; the step and form panels gain **CSS
|
|
32
|
+
classes** too.
|
|
33
|
+
- **Form-level `class`** now exists end to end: content-type attribute, save,
|
|
34
|
+
public API, legacy import (it used to be silently dropped on migration).
|
|
35
|
+
- **Duplicate** action on the forms list — every locale of the draft is
|
|
36
|
+
copied under a fresh slug.
|
|
37
|
+
- Leaving the editor with unsaved changes now warns before the tab closes.
|
|
38
|
+
- Cosmetics: the actions column no longer shows a raw translation key, and the
|
|
39
|
+
structure column pluralizes properly.
|
|
40
|
+
|
|
3
41
|
## 0.7.0 — 2026-08-29
|
|
4
42
|
|
|
5
43
|
### Added
|
package/README.md
CHANGED
|
@@ -66,6 +66,16 @@ Every submission is stored in **HubSpot form submissions** (Content Manager),
|
|
|
66
66
|
synced or not, with the CRM ids when the sync succeeded — the source of truth
|
|
67
67
|
lives in your database, not in HubSpot's availability.
|
|
68
68
|
|
|
69
|
+
### Browsing submissions
|
|
70
|
+
|
|
71
|
+
The **Submissions** button on the forms list (also reachable from a form's
|
|
72
|
+
count in the table) opens the submissions browser: every stored answer,
|
|
73
|
+
newest first, filterable by form, with the sync state at a glance and the
|
|
74
|
+
full answer set one click away. **Export CSV** downloads one form's whole
|
|
75
|
+
history — columns follow the form's field order, and keys found only in older
|
|
76
|
+
submissions (a renamed or removed field) are appended rather than dropped.
|
|
77
|
+
Deleting stays in the Content Manager, where the type remains visible.
|
|
78
|
+
|
|
69
79
|
Typed payloads for your frontend:
|
|
70
80
|
|
|
71
81
|
```ts
|
|
@@ -99,6 +109,24 @@ never modified, re-importing overwrites the draft only, and unpublishing rolls
|
|
|
99
109
|
a migrated form back. Migrate form by form; the validation middleware keeps
|
|
100
110
|
protecting the ones that stay.
|
|
101
111
|
|
|
112
|
+
### Importing forms from HubSpot
|
|
113
|
+
|
|
114
|
+
Forms built **in HubSpot itself** can be imported too — give the private app
|
|
115
|
+
token the `forms` read scope and the list page offers every regular form of
|
|
116
|
+
the portal. The translation carries over what the builder can express:
|
|
117
|
+
|
|
118
|
+
- fields, labels, placeholders, help texts, required flags and options —
|
|
119
|
+
and since a HubSpot form field *is* a CRM property, the imported form
|
|
120
|
+
arrives with a **mapping that is already valid** for the portal;
|
|
121
|
+
- two-fields-per-row layouts become two half-width fields;
|
|
122
|
+
- dependent fields become `visibleIf` conditions (value lists are expanded
|
|
123
|
+
into OR'd/AND'd rules).
|
|
124
|
+
|
|
125
|
+
Everything else — file uploads, hidden fields, content blocks, GDPR consent
|
|
126
|
+
blocks, an operator with no equivalent — is **skipped and reported** after the
|
|
127
|
+
import, so nothing is silently half-migrated. The HubSpot original is never
|
|
128
|
+
modified; re-importing overwrites the draft, never the published version.
|
|
129
|
+
|
|
102
130
|
### i18n and publishing
|
|
103
131
|
|
|
104
132
|
Forms are draft & publish, localized like your content: `name` and `slug` are
|