@marvalt/wadapter 2.0.0 → 2.2.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/README.md CHANGED
@@ -34,20 +34,20 @@ Required environment variables:
34
34
  # Mode
35
35
  VITE_AUTH_MODE=cloudflare_proxy|direct
36
36
 
37
- # WordPress
37
+ # WordPress (non-secret)
38
38
  VITE_WORDPRESS_API_URL=https://your-wordpress-site.com
39
39
  VITE_CLOUDFLARE_WORKER_URL=https://your-worker.your-subdomain.workers.dev # when cloudflare_proxy
40
- VITE_WP_API_USERNAME=your-username # when direct
41
- VITE_WP_APP_PASSWORD=your-app-password # when direct
40
+
41
+ # Direct mode credentials (server-side build/generator only; do not ship to browser)
42
+ VITE_WP_API_USERNAME=your-username
43
+ VITE_WP_API_APP_PASSWORD=your-app-password
42
44
 
43
45
  # Gravity Forms
44
46
  VITE_GRAVITY_FORMS_API_URL=https://your-wordpress-site.com # base site URL
45
47
  VITE_GRAVITY_FORMS_USERNAME=your-username # when direct
46
48
  VITE_GRAVITY_FORMS_PASSWORD=your-app-password # when direct
47
49
 
48
- # Optional worker headers (set at runtime by frontend; CF Access secrets live in the worker env)
49
- VITE_APP_ID=your-app-id
50
- VITE_WORKER_SECRET=your-shared-secret
50
+ # No client app headers are required; the Worker handles authentication
51
51
  ```
52
52
 
53
53
  ## Build-time generation
@@ -59,6 +59,14 @@ The generators fetch WordPress and Gravity Forms data and write static JSON:
59
59
 
60
60
  You can wire them into npm scripts using your preferred runner. Example entry points are included in the docs.
61
61
 
62
+ ### Pages now include Gutenberg blocks
63
+
64
+ - Pages are fetched with `context=edit` so `content.raw` is available.
65
+ - We parse `content.raw` using `@wordpress/block-serialization-default-parser` and persist `pages[n].blocks`.
66
+ - Posts remain unchanged (HTML `content.rendered`).
67
+
68
+ Proxy mode note: the Cloudflare worker can inject Basic Auth for `context=edit` if `WP_API_USERNAME` and `WP_API_APP_PASSWORD` are set in the worker env.
69
+
62
70
  ## Runtime access (static-only)
63
71
 
64
72
  - Loaders
@@ -71,6 +79,19 @@ You can wire them into npm scripts using your preferred runner. Example entry po
71
79
 
72
80
  Note: These selectors read only from static JSON. They do not fetch live content at runtime.
73
81
 
82
+ ## Exports and types
83
+
84
+ - Generators
85
+ - `WordPressGenerator`, `generateWordPressData`
86
+ - `GravityFormsGenerator`, `generateGravityFormsData`
87
+ - Generator output type for GF: `GravityFormsStaticBundle`
88
+
89
+ - Static runtime selectors
90
+ - WordPress: `loadWordPressData`, `getWordPressPosts`, `getWordPressPages`, `getWordPressMedia`, `getWordPressCategories`, `getWordPressTags`
91
+ - Gravity Forms: `loadGravityFormsData`, `hasGravityFormsStatic`, `getActiveForms`, `getPublishedForms`, `getFormById`
92
+
93
+ > Note: The generator bundle type was renamed to avoid conflicts with runtime static selectors.
94
+
74
95
  ## Form submissions
75
96
 
76
97
  Use the package Gravity Forms client. It routes per mode:
@@ -1 +1 @@
1
- {"version":3,"file":"wordpress-client.d.ts","sourceRoot":"","sources":["../../src/client/wordpress-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE1J,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAkB;gBAEpB,MAAM,EAAE,eAAe;YAIrB,WAAW;IAmGzB,OAAO,CAAC,UAAU;IASZ,QAAQ,CAAC,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAIrE,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAI3C,QAAQ,CAAC,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAIrE,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAI3C,QAAQ,CAAC,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAItE,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAIjD,aAAa,CAAC,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAI9E,OAAO,CAAC,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAKnE,eAAe,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAIjC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAI5C,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAQ3E,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC;IAIlC,UAAU,CAAC,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAAC;QAC3D,KAAK,EAAE,aAAa,EAAE,CAAC;QACvB,KAAK,EAAE,aAAa,EAAE,CAAC;QACvB,KAAK,EAAE,cAAc,EAAE,CAAC;QACxB,UAAU,EAAE,iBAAiB,EAAE,CAAC;QAChC,IAAI,EAAE,YAAY,EAAE,CAAC;KACtB,CAAC;CAWH"}
1
+ {"version":3,"file":"wordpress-client.d.ts","sourceRoot":"","sources":["../../src/client/wordpress-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE1J,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAkB;gBAEpB,MAAM,EAAE,eAAe;YAIrB,WAAW;IAyFzB,OAAO,CAAC,UAAU;IASZ,QAAQ,CAAC,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAIrE,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAI3C,QAAQ,CAAC,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAIrE,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAI3C,QAAQ,CAAC,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAItE,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAIjD,aAAa,CAAC,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAI9E,OAAO,CAAC,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAKnE,eAAe,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAIjC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAI5C,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAQ3E,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC;IAIlC,UAAU,CAAC,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAAC;QAC3D,KAAK,EAAE,aAAa,EAAE,CAAC;QACvB,KAAK,EAAE,aAAa,EAAE,CAAC;QACvB,KAAK,EAAE,cAAc,EAAE,CAAC;QACxB,UAAU,EAAE,iBAAiB,EAAE,CAAC;QAChC,IAAI,EAAE,YAAY,EAAE,CAAC;KACtB,CAAC;CAWH"}
@@ -20,7 +20,7 @@ export interface GravityFormsGeneratorConfig extends GravityFormsConfig {
20
20
  formIds?: number[];
21
21
  includeInactive?: boolean;
22
22
  }
23
- export interface GravityFormsStaticData {
23
+ export interface GravityFormsStaticBundle {
24
24
  generated_at: string;
25
25
  total_forms: number;
26
26
  forms: GravityForm[];
@@ -28,9 +28,9 @@ export interface GravityFormsStaticData {
28
28
  export declare class GravityFormsGenerator {
29
29
  private config;
30
30
  constructor(config: GravityFormsGeneratorConfig);
31
- generateStaticData(): Promise<GravityFormsStaticData>;
31
+ generateStaticData(): Promise<GravityFormsStaticBundle>;
32
32
  private writeStaticData;
33
33
  generateFormConfig(formId: number): Promise<GravityForm>;
34
34
  }
35
- export declare function generateGravityFormsData(config: GravityFormsGeneratorConfig): Promise<GravityFormsStaticData>;
35
+ export declare function generateGravityFormsData(config: GravityFormsGeneratorConfig): Promise<GravityFormsStaticBundle>;
36
36
  //# sourceMappingURL=gravity-forms-generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gravity-forms-generator.d.ts","sourceRoot":"","sources":["../../../src/generators/gravity-forms/gravity-forms-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAI5E,MAAM,WAAW,2BAA4B,SAAQ,kBAAkB;IACrE,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAA8B;gBAEhC,MAAM,EAAE,2BAA2B;IAIzC,kBAAkB,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAyE3D,OAAO,CAAC,eAAe;IAWjB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAI/D;AAGD,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAGnH"}
1
+ {"version":3,"file":"gravity-forms-generator.d.ts","sourceRoot":"","sources":["../../../src/generators/gravity-forms/gravity-forms-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAI5E,MAAM,WAAW,2BAA4B,SAAQ,kBAAkB;IACrE,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,wBAAwB;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAA8B;gBAEhC,MAAM,EAAE,2BAA2B;IAIzC,kBAAkB,IAAI,OAAO,CAAC,wBAAwB,CAAC;IAyE7D,OAAO,CAAC,eAAe;IAWjB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAI/D;AAGD,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAGrH"}
@@ -1 +1 @@
1
- {"version":3,"file":"wordpress-generator.d.ts","sourceRoot":"","sources":["../../../src/generators/wordpress/wordpress-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAmC,MAAM,uBAAuB,CAAC;AAIvI,MAAM,WAAW,wBAAyB,SAAQ,eAAe;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;YACzB,SAAS,EAAE,MAAM,CAAC;YAClB,gBAAgB,EAAE,OAAO,CAAC;YAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;YACvB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;SACvB,CAAC,CAAC;KACJ,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAA2B;gBAE7B,MAAM,EAAE,wBAAwB;IAItC,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC;IAiDpD,OAAO,CAAC,eAAe;IAWjB,iBAAiB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAK7C,iBAAiB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAK7C,iBAAiB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;CAIrD;AAGD,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,eAAe,CAAC,CAGtG"}
1
+ {"version":3,"file":"wordpress-generator.d.ts","sourceRoot":"","sources":["../../../src/generators/wordpress/wordpress-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAmC,MAAM,uBAAuB,CAAC;AAKvI,MAAM,WAAW,wBAAyB,SAAQ,eAAe;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;YACzB,SAAS,EAAE,MAAM,CAAC;YAClB,gBAAgB,EAAE,OAAO,CAAC;YAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;YACvB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;SACvB,CAAC,CAAC;KACJ,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAA2B;gBAE7B,MAAM,EAAE,wBAAwB;IAItC,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC;IA4DpD,OAAO,CAAC,eAAe;IAWjB,iBAAiB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAK7C,iBAAiB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAK7C,iBAAiB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;CAIrD;AAGD,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,eAAe,CAAC,CAGtG"}
@@ -1 +1 @@
1
- {"version":3,"file":"gravity-forms-client.d.ts","sourceRoot":"","sources":["../../src/gravity-forms/gravity-forms-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAE7H,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAqB;gBAEvB,MAAM,EAAE,kBAAkB;YAIxB,WAAW;IAiEzB,OAAO,CAAC,UAAU;IASZ,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQzC,QAAQ,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAOlC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAO/C,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,qBAAqB,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAUnG,SAAS,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CAM1F"}
1
+ {"version":3,"file":"gravity-forms-client.d.ts","sourceRoot":"","sources":["../../src/gravity-forms/gravity-forms-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAE7H,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAqB;gBAEvB,MAAM,EAAE,kBAAkB;YAIxB,WAAW;IAuDzB,OAAO,CAAC,UAAU;IASZ,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQzC,QAAQ,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAOlC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAO/C,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,qBAAqB,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAUnG,SAAS,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CAM1F"}
package/dist/index.d.ts CHANGED
@@ -35,6 +35,7 @@ interface WordPressPost {
35
35
  content: {
36
36
  rendered: string;
37
37
  protected: boolean;
38
+ raw?: string;
38
39
  };
39
40
  excerpt: {
40
41
  rendered: string;
@@ -346,6 +347,7 @@ interface WordPressQueryParams {
346
347
  include?: number[];
347
348
  offset?: number;
348
349
  _embed?: boolean;
350
+ context?: 'view' | 'embed' | 'edit';
349
351
  }
350
352
 
351
353
  /**
@@ -823,12 +825,12 @@ declare function getWordPressTags(): WordPressTag[];
823
825
  * See the GNU General Public License for more details.
824
826
  */
825
827
 
826
- interface GravityFormsStaticData$1 {
828
+ interface GravityFormsStaticData {
827
829
  generated_at?: string;
828
830
  total_forms: number;
829
831
  forms: GravityForm$1[];
830
832
  }
831
- declare function loadGravityFormsData(path?: string): Promise<GravityFormsStaticData$1 | null>;
833
+ declare function loadGravityFormsData(path?: string): Promise<GravityFormsStaticData | null>;
832
834
  declare function hasGravityFormsStatic(): boolean;
833
835
  declare function getActiveForms(): GravityForm$1[];
834
836
  declare function getPublishedForms(): GravityForm$1[];
@@ -909,7 +911,7 @@ interface GravityFormsGeneratorConfig extends GravityFormsConfig {
909
911
  formIds?: number[];
910
912
  includeInactive?: boolean;
911
913
  }
912
- interface GravityFormsStaticData {
914
+ interface GravityFormsStaticBundle {
913
915
  generated_at: string;
914
916
  total_forms: number;
915
917
  forms: GravityForm$1[];
@@ -917,11 +919,11 @@ interface GravityFormsStaticData {
917
919
  declare class GravityFormsGenerator {
918
920
  private config;
919
921
  constructor(config: GravityFormsGeneratorConfig);
920
- generateStaticData(): Promise<GravityFormsStaticData>;
922
+ generateStaticData(): Promise<GravityFormsStaticBundle>;
921
923
  private writeStaticData;
922
924
  generateFormConfig(formId: number): Promise<GravityForm$1>;
923
925
  }
924
- declare function generateGravityFormsData(config: GravityFormsGeneratorConfig): Promise<GravityFormsStaticData>;
926
+ declare function generateGravityFormsData(config: GravityFormsGeneratorConfig): Promise<GravityFormsStaticBundle>;
925
927
 
926
928
  /**
927
929
  * @license GPL-3.0-or-later
@@ -1069,4 +1071,4 @@ declare function validateFormData(formData: Record<string, any>, rules: Record<s
1069
1071
  };
1070
1072
 
1071
1073
  export { FormProtectionGenerator, GravityForm, GravityFormsClient, GravityFormsGenerator, GravityFormsProvider, WordPressClient, WordPressContent, WordPressGenerator, WordPressProvider, createFormProtectionConfig, createGravityFormsConfig, createWordPressConfig, generateFormProtectionData, generateGravityFormsData, generateWordPressData, getActiveForms, getFormById, getPublishedForms, getWordPressCategories, getWordPressMedia, getWordPressPages, getWordPressPosts, getWordPressTags, hasGravityFormsStatic, hasWordPressStatic, loadGravityFormsData, loadWordPressData, sanitizeHtml, transformWordPressMedia, transformWordPressMediaItems, transformWordPressPage, transformWordPressPages, transformWordPressPost, transformWordPressPosts, useGravityForms, useGravityFormsConfig, useGravityFormsContext, useWordPress, useWordPressCategories, useWordPressContext, useWordPressMedia, useWordPressPage, useWordPressPages, useWordPressPost, useWordPressPosts, useWordPressTags, validateEmail, validateFormData, validateFormProtectionConfig, validateGravityFormsConfig, validateMaxLength, validateMinLength, validatePhoneNumber, validateRequired, validateUrl, validateWordPressConfig };
1072
- export type { EmailVerificationData, FormProtectionConfig, FormProtectionGeneratorConfig, FormProtectionResult, FormProtectionStaticData, FormProtectionValidation, GravityFormConfirmation, GravityFormField, GravityFormNotification, GravityFormSubmission, GravityFormSubmissionResult, GravityFormsConfig, GravityFormsGeneratorConfig, StaticDataStore, TransformedWordPressMedia, TransformedWordPressPage, TransformedWordPressPost, UseGravityFormsResult, UseWordPressResult, WordPressAuthor, WordPressCategory, WordPressConfig, WordPressGeneratorConfig, WordPressMedia, WordPressPage, WordPressPost, WordPressQueryParams, WordPressStaticData, WordPressTag };
1074
+ export type { EmailVerificationData, FormProtectionConfig, FormProtectionGeneratorConfig, FormProtectionResult, FormProtectionStaticData, FormProtectionValidation, GravityFormConfirmation, GravityFormField, GravityFormNotification, GravityFormSubmission, GravityFormSubmissionResult, GravityFormsConfig, GravityFormsGeneratorConfig, GravityFormsStaticBundle, GravityFormsStaticData, StaticDataStore, TransformedWordPressMedia, TransformedWordPressPage, TransformedWordPressPost, UseGravityFormsResult, UseWordPressResult, WordPressAuthor, WordPressCategory, WordPressConfig, WordPressGeneratorConfig, WordPressMedia, WordPressPage, WordPressPost, WordPressQueryParams, WordPressStaticData, WordPressTag };
package/dist/index.esm.js CHANGED
@@ -50,19 +50,7 @@ class WordPressClient {
50
50
  'Content-Type': 'application/json',
51
51
  };
52
52
  // Add authentication based on mode
53
- if (this.config.authMode === 'cloudflare_proxy') {
54
- // Add Cloudflare proxy authentication headers
55
- if (this.config.appId) {
56
- headers['x-app-id'] = this.config.appId;
57
- }
58
- if (this.config.workerSecret) {
59
- headers['x-app-secret'] = this.config.workerSecret;
60
- }
61
- if (this.config.cfAccessClientId && this.config.cfAccessClientSecret) {
62
- headers['CF-Access-Client-Id'] = this.config.cfAccessClientId;
63
- headers['CF-Access-Client-Secret'] = this.config.cfAccessClientSecret;
64
- }
65
- }
53
+ if (this.config.authMode === 'cloudflare_proxy') ;
66
54
  else {
67
55
  // Direct mode - use basic auth
68
56
  if (this.config.username && this.config.password) {
@@ -296,19 +284,7 @@ class GravityFormsClient {
296
284
  ...options.headers,
297
285
  };
298
286
  // Add authentication based on mode
299
- if (this.config.authMode === 'cloudflare_proxy') {
300
- // Add Cloudflare proxy authentication headers
301
- if (this.config.appId) {
302
- headers['x-app-id'] = this.config.appId;
303
- }
304
- if (this.config.workerSecret) {
305
- headers['x-app-secret'] = this.config.workerSecret;
306
- }
307
- if (this.config.cfAccessClientId && this.config.cfAccessClientSecret) {
308
- headers['CF-Access-Client-Id'] = this.config.cfAccessClientId;
309
- headers['CF-Access-Client-Secret'] = this.config.cfAccessClientSecret;
310
- }
311
- }
287
+ if (this.config.authMode === 'cloudflare_proxy') ;
312
288
  else {
313
289
  // Direct mode - use basic auth
314
290
  if (this.config.username && this.config.password) {
@@ -2105,6 +2081,205 @@ function getFormById(id) {
2105
2081
  return (gravityFormsStaticData?.forms ?? []).find(f => String(f.id) === key);
2106
2082
  }
2107
2083
 
2084
+ let document;
2085
+ let offset;
2086
+ let output;
2087
+ let stack;
2088
+ const tokenizer = /<!--\s+(\/)?wp:([a-z][a-z0-9_-]*\/)?([a-z][a-z0-9_-]*)\s+({(?:(?=([^}]+|}+(?=})|(?!}\s+\/?-->)[^])*)\5|[^]*?)}\s+)?(\/)?-->/g;
2089
+ function Block(blockName, attrs, innerBlocks, innerHTML, innerContent) {
2090
+ return {
2091
+ blockName,
2092
+ attrs,
2093
+ innerBlocks,
2094
+ innerHTML,
2095
+ innerContent
2096
+ };
2097
+ }
2098
+ function Freeform(innerHTML) {
2099
+ return Block(null, {}, [], innerHTML, [innerHTML]);
2100
+ }
2101
+ function Frame(block, tokenStart, tokenLength, prevOffset, leadingHtmlStart) {
2102
+ return {
2103
+ block,
2104
+ tokenStart,
2105
+ tokenLength,
2106
+ prevOffset: prevOffset || tokenStart + tokenLength,
2107
+ leadingHtmlStart
2108
+ };
2109
+ }
2110
+ const parse = (doc) => {
2111
+ document = doc;
2112
+ offset = 0;
2113
+ output = [];
2114
+ stack = [];
2115
+ tokenizer.lastIndex = 0;
2116
+ do {
2117
+ } while (proceed());
2118
+ return output;
2119
+ };
2120
+ function proceed() {
2121
+ const stackDepth = stack.length;
2122
+ const next = nextToken();
2123
+ const [tokenType, blockName, attrs, startOffset, tokenLength] = next;
2124
+ const leadingHtmlStart = startOffset > offset ? offset : null;
2125
+ switch (tokenType) {
2126
+ case "no-more-tokens":
2127
+ if (0 === stackDepth) {
2128
+ addFreeform();
2129
+ return false;
2130
+ }
2131
+ if (1 === stackDepth) {
2132
+ addBlockFromStack();
2133
+ return false;
2134
+ }
2135
+ while (0 < stack.length) {
2136
+ addBlockFromStack();
2137
+ }
2138
+ return false;
2139
+ case "void-block":
2140
+ if (0 === stackDepth) {
2141
+ if (null !== leadingHtmlStart) {
2142
+ output.push(
2143
+ Freeform(
2144
+ document.substr(
2145
+ leadingHtmlStart,
2146
+ startOffset - leadingHtmlStart
2147
+ )
2148
+ )
2149
+ );
2150
+ }
2151
+ output.push(Block(blockName, attrs, [], "", []));
2152
+ offset = startOffset + tokenLength;
2153
+ return true;
2154
+ }
2155
+ addInnerBlock(
2156
+ Block(blockName, attrs, [], "", []),
2157
+ startOffset,
2158
+ tokenLength
2159
+ );
2160
+ offset = startOffset + tokenLength;
2161
+ return true;
2162
+ case "block-opener":
2163
+ stack.push(
2164
+ Frame(
2165
+ Block(blockName, attrs, [], "", []),
2166
+ startOffset,
2167
+ tokenLength,
2168
+ startOffset + tokenLength,
2169
+ leadingHtmlStart
2170
+ )
2171
+ );
2172
+ offset = startOffset + tokenLength;
2173
+ return true;
2174
+ case "block-closer":
2175
+ if (0 === stackDepth) {
2176
+ addFreeform();
2177
+ return false;
2178
+ }
2179
+ if (1 === stackDepth) {
2180
+ addBlockFromStack(startOffset);
2181
+ offset = startOffset + tokenLength;
2182
+ return true;
2183
+ }
2184
+ const stackTop = stack.pop();
2185
+ const html = document.substr(
2186
+ stackTop.prevOffset,
2187
+ startOffset - stackTop.prevOffset
2188
+ );
2189
+ stackTop.block.innerHTML += html;
2190
+ stackTop.block.innerContent.push(html);
2191
+ stackTop.prevOffset = startOffset + tokenLength;
2192
+ addInnerBlock(
2193
+ stackTop.block,
2194
+ stackTop.tokenStart,
2195
+ stackTop.tokenLength,
2196
+ startOffset + tokenLength
2197
+ );
2198
+ offset = startOffset + tokenLength;
2199
+ return true;
2200
+ default:
2201
+ addFreeform();
2202
+ return false;
2203
+ }
2204
+ }
2205
+ function parseJSON(input) {
2206
+ try {
2207
+ return JSON.parse(input);
2208
+ } catch (e) {
2209
+ return null;
2210
+ }
2211
+ }
2212
+ function nextToken() {
2213
+ const matches = tokenizer.exec(document);
2214
+ if (null === matches) {
2215
+ return ["no-more-tokens", "", null, 0, 0];
2216
+ }
2217
+ const startedAt = matches.index;
2218
+ const [
2219
+ match,
2220
+ closerMatch,
2221
+ namespaceMatch,
2222
+ nameMatch,
2223
+ attrsMatch,
2224
+ ,
2225
+ voidMatch
2226
+ ] = matches;
2227
+ const length = match.length;
2228
+ const isCloser = !!closerMatch;
2229
+ const isVoid = !!voidMatch;
2230
+ const namespace = namespaceMatch || "core/";
2231
+ const name = namespace + nameMatch;
2232
+ const hasAttrs = !!attrsMatch;
2233
+ const attrs = hasAttrs ? parseJSON(attrsMatch) : {};
2234
+ if (isVoid) {
2235
+ return ["void-block", name, attrs, startedAt, length];
2236
+ }
2237
+ if (isCloser) {
2238
+ return ["block-closer", name, null, startedAt, length];
2239
+ }
2240
+ return ["block-opener", name, attrs, startedAt, length];
2241
+ }
2242
+ function addFreeform(rawLength) {
2243
+ const length = document.length - offset;
2244
+ if (0 === length) {
2245
+ return;
2246
+ }
2247
+ output.push(Freeform(document.substr(offset, length)));
2248
+ }
2249
+ function addInnerBlock(block, tokenStart, tokenLength, lastOffset) {
2250
+ const parent = stack[stack.length - 1];
2251
+ parent.block.innerBlocks.push(block);
2252
+ const html = document.substr(
2253
+ parent.prevOffset,
2254
+ tokenStart - parent.prevOffset
2255
+ );
2256
+ if (html) {
2257
+ parent.block.innerHTML += html;
2258
+ parent.block.innerContent.push(html);
2259
+ }
2260
+ parent.block.innerContent.push(null);
2261
+ parent.prevOffset = lastOffset ? lastOffset : tokenStart + tokenLength;
2262
+ }
2263
+ function addBlockFromStack(endOffset) {
2264
+ const { block, leadingHtmlStart, prevOffset, tokenStart } = stack.pop();
2265
+ const html = endOffset ? document.substr(prevOffset, endOffset - prevOffset) : document.substr(prevOffset);
2266
+ if (html) {
2267
+ block.innerHTML += html;
2268
+ block.innerContent.push(html);
2269
+ }
2270
+ if (null !== leadingHtmlStart) {
2271
+ output.push(
2272
+ Freeform(
2273
+ document.substr(
2274
+ leadingHtmlStart,
2275
+ tokenStart - leadingHtmlStart
2276
+ )
2277
+ )
2278
+ );
2279
+ }
2280
+ output.push(block);
2281
+ }
2282
+
2108
2283
  /**
2109
2284
  * @license GPL-3.0-or-later
2110
2285
  *
@@ -2135,6 +2310,8 @@ class WordPressGenerator {
2135
2310
  const data = await client.getAllData({
2136
2311
  per_page: this.config.maxItems || 100,
2137
2312
  _embed: this.config.includeEmbedded || false,
2313
+ // required for content.raw with Gutenberg comments
2314
+ context: 'edit',
2138
2315
  });
2139
2316
  // Create the static data structure matching the existing format
2140
2317
  const staticData = {
@@ -2156,7 +2333,17 @@ class WordPressGenerator {
2156
2333
  },
2157
2334
  // Map the data to the expected structure
2158
2335
  posts: data.posts,
2159
- pages: data.pages,
2336
+ pages: (data.pages || []).map((p) => {
2337
+ let blocks = [];
2338
+ try {
2339
+ const raw = p?.content?.raw || '';
2340
+ blocks = raw ? parse(raw) : [];
2341
+ }
2342
+ catch (e) {
2343
+ console.warn('⚠️ Failed to parse Gutenberg blocks for page', p?.id, e);
2344
+ }
2345
+ return { ...p, blocks };
2346
+ }),
2160
2347
  media: data.media,
2161
2348
  categories: data.categories,
2162
2349
  tags: data.tags,