@wix/vibe-forms-app-plugin 0.1.0 → 0.1.1
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/dist/index.cjs +546 -58
- package/dist/index.cjs.map +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -98,72 +98,549 @@ function createDedent(options) {
|
|
|
98
98
|
|
|
99
99
|
// src/constants.ts
|
|
100
100
|
var VERTICAL_NAME = "forms-app";
|
|
101
|
+
var FORMS_APP_DEF_ID = "225dd912-7dea-4738-8688-4b8c6955ffc2";
|
|
101
102
|
|
|
102
|
-
// src/
|
|
103
|
-
var
|
|
104
|
-
return
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
103
|
+
// src/wix-apis.ts
|
|
104
|
+
var isErrorWithRequestId = (error) => {
|
|
105
|
+
return error instanceof Error && "requestId" in error;
|
|
106
|
+
};
|
|
107
|
+
var callWixAPI = async (url, method, _siteId, body, headers) => {
|
|
108
|
+
if (!process.env.WIX_TOKEN) {
|
|
109
|
+
console.error("[wix-apis] WIX_TOKEN is not set");
|
|
110
|
+
}
|
|
111
|
+
try {
|
|
112
|
+
console.log("[wix-apis] Calling Wix API...", {
|
|
113
|
+
url,
|
|
114
|
+
method,
|
|
115
|
+
_siteId,
|
|
116
|
+
headers
|
|
117
|
+
});
|
|
118
|
+
const response = await fetch(url, {
|
|
119
|
+
method,
|
|
120
|
+
headers: {
|
|
121
|
+
"Content-Type": "application/json",
|
|
122
|
+
Authorization: process.env.WIX_TOKEN,
|
|
123
|
+
...headers
|
|
124
|
+
},
|
|
125
|
+
...method === "GET" ? {} : { body: JSON.stringify(body) }
|
|
126
|
+
});
|
|
127
|
+
if (!response.ok) {
|
|
128
|
+
const text = await response.text();
|
|
129
|
+
console.error("[wix-apis] Error calling Wix API", {
|
|
130
|
+
repsponseText: text,
|
|
131
|
+
url,
|
|
132
|
+
method,
|
|
133
|
+
body,
|
|
134
|
+
requestId: response.headers.get("x-wix-request-id")
|
|
135
|
+
});
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
const data = await response.json();
|
|
139
|
+
return data;
|
|
140
|
+
} catch (error) {
|
|
141
|
+
console.error("[wix-apis] Error calling Wix API", {
|
|
142
|
+
error,
|
|
143
|
+
url,
|
|
144
|
+
method,
|
|
145
|
+
body,
|
|
146
|
+
requestId: isErrorWithRequestId(error) ? error.requestId : void 0
|
|
147
|
+
});
|
|
148
|
+
return null;
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
var installWixApp = async (env, appDefId) => {
|
|
152
|
+
const siteId = env.WIX_SITE_ID;
|
|
153
|
+
console.log("Installing Wix app...", { appDefId, siteId });
|
|
154
|
+
const response = await callWixAPI(
|
|
155
|
+
"https://www.wixapis.com/apps-installer-service/v1/app-instance/install",
|
|
156
|
+
"POST",
|
|
157
|
+
siteId,
|
|
113
158
|
{
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
159
|
+
tenant: {
|
|
160
|
+
tenantType: "SITE",
|
|
161
|
+
id: siteId
|
|
162
|
+
},
|
|
163
|
+
appInstance: { appDefId }
|
|
117
164
|
}
|
|
118
|
-
|
|
119
|
-
|
|
165
|
+
);
|
|
166
|
+
return response;
|
|
120
167
|
};
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
168
|
+
|
|
169
|
+
// src/utils.ts
|
|
170
|
+
var MOCK_SCHEMA = {
|
|
171
|
+
id: "475c8304-35a2-4263-b2af-23c239e43cdc",
|
|
172
|
+
fields: [
|
|
173
|
+
{
|
|
174
|
+
id: "ca3ae82f-828e-4df1-666b-930afce2d75d",
|
|
175
|
+
pii: false,
|
|
176
|
+
hidden: false,
|
|
177
|
+
view: {
|
|
178
|
+
submitText: "Submit",
|
|
179
|
+
thankYouMessageDuration: 8,
|
|
180
|
+
thankYouMessageText: {
|
|
181
|
+
nodes: [
|
|
182
|
+
{
|
|
183
|
+
id: "zoay71",
|
|
184
|
+
type: "PARAGRAPH",
|
|
185
|
+
nodes: [
|
|
186
|
+
{
|
|
187
|
+
id: "",
|
|
188
|
+
type: "TEXT",
|
|
189
|
+
nodes: [],
|
|
190
|
+
textData: {
|
|
191
|
+
text: "Thanks, we received your submission.",
|
|
192
|
+
decorations: []
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
],
|
|
196
|
+
paragraphData: {
|
|
197
|
+
textStyle: {
|
|
198
|
+
textAlignment: "CENTER"
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
]
|
|
203
|
+
},
|
|
204
|
+
nextText: "Next",
|
|
205
|
+
submitAction: "THANK_YOU_MESSAGE",
|
|
206
|
+
fieldType: "SUBMIT_BUTTON",
|
|
207
|
+
previousText: "Back"
|
|
208
|
+
},
|
|
209
|
+
readOnly: false
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
id: "1eb04437-ef8b-4e5f-54c6-59a7fdcd168d",
|
|
213
|
+
target: "first_name_b86d",
|
|
214
|
+
validation: {
|
|
215
|
+
string: {
|
|
216
|
+
format: "UNDEFINED",
|
|
217
|
+
enum: []
|
|
218
|
+
},
|
|
219
|
+
required: false
|
|
220
|
+
},
|
|
221
|
+
pii: true,
|
|
222
|
+
hidden: false,
|
|
223
|
+
view: {
|
|
224
|
+
label: "First name",
|
|
225
|
+
fieldType: "CONTACTS_FIRST_NAME",
|
|
226
|
+
placeholder: "Enter your first name"
|
|
227
|
+
},
|
|
228
|
+
readOnly: false
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
id: "f10ad323-bd45-451b-9d22-f46f8882d33b",
|
|
232
|
+
target: "last_name_1729",
|
|
233
|
+
validation: {
|
|
234
|
+
string: {
|
|
235
|
+
format: "UNDEFINED",
|
|
236
|
+
enum: []
|
|
237
|
+
},
|
|
238
|
+
required: false
|
|
239
|
+
},
|
|
240
|
+
pii: true,
|
|
241
|
+
hidden: false,
|
|
242
|
+
view: {
|
|
243
|
+
label: "Last name",
|
|
244
|
+
fieldType: "CONTACTS_LAST_NAME",
|
|
245
|
+
placeholder: "Enter your last name"
|
|
246
|
+
},
|
|
247
|
+
readOnly: false
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
id: "945e271e-cbd0-4b1a-f5d1-895a017e85c2",
|
|
251
|
+
target: "email_687e",
|
|
252
|
+
validation: {
|
|
253
|
+
string: {
|
|
254
|
+
format: "EMAIL",
|
|
255
|
+
enum: []
|
|
256
|
+
},
|
|
257
|
+
required: true
|
|
258
|
+
},
|
|
259
|
+
pii: true,
|
|
260
|
+
hidden: false,
|
|
261
|
+
view: {
|
|
262
|
+
label: "Email",
|
|
263
|
+
fieldType: "CONTACTS_EMAIL",
|
|
264
|
+
placeholder: "Enter your email"
|
|
265
|
+
},
|
|
266
|
+
readOnly: false
|
|
267
|
+
}
|
|
268
|
+
],
|
|
269
|
+
fieldsV2: [
|
|
270
|
+
{
|
|
271
|
+
id: "ca3ae82f-828e-4df1-666b-930afce2d75d",
|
|
272
|
+
hidden: false,
|
|
273
|
+
identifier: "SUBMIT_BUTTON",
|
|
274
|
+
fieldType: "DISPLAY",
|
|
275
|
+
displayOptions: {
|
|
276
|
+
displayFieldType: "PAGE_NAVIGATION",
|
|
277
|
+
pageNavigationOptions: {
|
|
278
|
+
nextPageText: "Next",
|
|
279
|
+
previousPageText: "Back",
|
|
280
|
+
submitText: "Submit"
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
},
|
|
284
|
+
{
|
|
285
|
+
id: "1eb04437-ef8b-4e5f-54c6-59a7fdcd168d",
|
|
286
|
+
hidden: false,
|
|
287
|
+
identifier: "CONTACTS_FIRST_NAME",
|
|
288
|
+
fieldType: "INPUT",
|
|
289
|
+
inputOptions: {
|
|
290
|
+
target: "first_name_b86d",
|
|
291
|
+
pii: true,
|
|
292
|
+
required: false,
|
|
293
|
+
inputType: "STRING",
|
|
294
|
+
contactMapping: {
|
|
295
|
+
contactField: "FIRST_NAME"
|
|
296
|
+
},
|
|
297
|
+
readOnly: false,
|
|
298
|
+
stringOptions: {
|
|
299
|
+
validation: {
|
|
300
|
+
format: "UNKNOWN_FORMAT",
|
|
301
|
+
enum: []
|
|
302
|
+
},
|
|
303
|
+
componentType: "TEXT_INPUT",
|
|
304
|
+
textInputOptions: {
|
|
305
|
+
label: "First name",
|
|
306
|
+
placeholder: "Enter your first name",
|
|
307
|
+
showLabel: true,
|
|
308
|
+
mediaSettings: {
|
|
309
|
+
imagePosition: "ABOVE",
|
|
310
|
+
imageAlignment: "CENTER",
|
|
311
|
+
imageFit: "COVER"
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
id: "f10ad323-bd45-451b-9d22-f46f8882d33b",
|
|
319
|
+
hidden: false,
|
|
320
|
+
identifier: "CONTACTS_LAST_NAME",
|
|
321
|
+
fieldType: "INPUT",
|
|
322
|
+
inputOptions: {
|
|
323
|
+
target: "last_name_1729",
|
|
324
|
+
pii: true,
|
|
325
|
+
required: false,
|
|
326
|
+
inputType: "STRING",
|
|
327
|
+
contactMapping: {
|
|
328
|
+
contactField: "LAST_NAME"
|
|
329
|
+
},
|
|
330
|
+
readOnly: false,
|
|
331
|
+
stringOptions: {
|
|
332
|
+
validation: {
|
|
333
|
+
format: "UNKNOWN_FORMAT",
|
|
334
|
+
enum: []
|
|
335
|
+
},
|
|
336
|
+
componentType: "TEXT_INPUT",
|
|
337
|
+
textInputOptions: {
|
|
338
|
+
label: "Last name",
|
|
339
|
+
placeholder: "Enter your last name",
|
|
340
|
+
showLabel: true,
|
|
341
|
+
mediaSettings: {
|
|
342
|
+
imagePosition: "ABOVE",
|
|
343
|
+
imageAlignment: "CENTER",
|
|
344
|
+
imageFit: "COVER"
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
},
|
|
350
|
+
{
|
|
351
|
+
id: "945e271e-cbd0-4b1a-f5d1-895a017e85c2",
|
|
352
|
+
hidden: false,
|
|
353
|
+
identifier: "CONTACTS_EMAIL",
|
|
354
|
+
fieldType: "INPUT",
|
|
355
|
+
inputOptions: {
|
|
356
|
+
target: "email_687e",
|
|
357
|
+
pii: true,
|
|
358
|
+
required: true,
|
|
359
|
+
inputType: "STRING",
|
|
360
|
+
contactMapping: {
|
|
361
|
+
contactField: "EMAIL",
|
|
362
|
+
emailInfo: {
|
|
363
|
+
tag: "UNTAGGED"
|
|
364
|
+
}
|
|
365
|
+
},
|
|
366
|
+
readOnly: false,
|
|
367
|
+
stringOptions: {
|
|
368
|
+
validation: {
|
|
369
|
+
format: "EMAIL",
|
|
370
|
+
enum: []
|
|
371
|
+
},
|
|
372
|
+
componentType: "TEXT_INPUT",
|
|
373
|
+
textInputOptions: {
|
|
374
|
+
label: "Email",
|
|
375
|
+
placeholder: "Enter your email",
|
|
376
|
+
showLabel: true,
|
|
377
|
+
mediaSettings: {
|
|
378
|
+
imagePosition: "ABOVE",
|
|
379
|
+
imageAlignment: "CENTER",
|
|
380
|
+
imageFit: "COVER"
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
],
|
|
387
|
+
formFields: [
|
|
388
|
+
{
|
|
389
|
+
id: "ca3ae82f-828e-4df1-666b-930afce2d75d",
|
|
390
|
+
hidden: false,
|
|
391
|
+
identifier: "SUBMIT_BUTTON",
|
|
392
|
+
fieldType: "DISPLAY",
|
|
393
|
+
displayOptions: {
|
|
394
|
+
displayFieldType: "PAGE_NAVIGATION",
|
|
395
|
+
pageNavigationOptions: {
|
|
396
|
+
nextPageText: "Next",
|
|
397
|
+
previousPageText: "Back",
|
|
398
|
+
submitText: "Submit"
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
},
|
|
402
|
+
{
|
|
403
|
+
id: "1eb04437-ef8b-4e5f-54c6-59a7fdcd168d",
|
|
404
|
+
hidden: false,
|
|
405
|
+
identifier: "CONTACTS_FIRST_NAME",
|
|
406
|
+
fieldType: "INPUT",
|
|
407
|
+
inputOptions: {
|
|
408
|
+
target: "first_name_b86d",
|
|
409
|
+
pii: true,
|
|
410
|
+
required: false,
|
|
411
|
+
inputType: "STRING",
|
|
412
|
+
contactMapping: {
|
|
413
|
+
contactField: "FIRST_NAME"
|
|
414
|
+
},
|
|
415
|
+
readOnly: false,
|
|
416
|
+
stringOptions: {
|
|
417
|
+
validation: {
|
|
418
|
+
format: "UNKNOWN_FORMAT",
|
|
419
|
+
enum: []
|
|
420
|
+
},
|
|
421
|
+
componentType: "TEXT_INPUT",
|
|
422
|
+
textInputOptions: {
|
|
423
|
+
label: "First name",
|
|
424
|
+
placeholder: "Enter your first name",
|
|
425
|
+
showLabel: true,
|
|
426
|
+
mediaSettings: {
|
|
427
|
+
imagePosition: "ABOVE",
|
|
428
|
+
imageAlignment: "CENTER",
|
|
429
|
+
imageFit: "COVER"
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
},
|
|
435
|
+
{
|
|
436
|
+
id: "f10ad323-bd45-451b-9d22-f46f8882d33b",
|
|
437
|
+
hidden: false,
|
|
438
|
+
identifier: "CONTACTS_LAST_NAME",
|
|
439
|
+
fieldType: "INPUT",
|
|
440
|
+
inputOptions: {
|
|
441
|
+
target: "last_name_1729",
|
|
442
|
+
pii: true,
|
|
443
|
+
required: false,
|
|
444
|
+
inputType: "STRING",
|
|
445
|
+
contactMapping: {
|
|
446
|
+
contactField: "LAST_NAME"
|
|
447
|
+
},
|
|
448
|
+
readOnly: false,
|
|
449
|
+
stringOptions: {
|
|
450
|
+
validation: {
|
|
451
|
+
format: "UNKNOWN_FORMAT",
|
|
452
|
+
enum: []
|
|
453
|
+
},
|
|
454
|
+
componentType: "TEXT_INPUT",
|
|
455
|
+
textInputOptions: {
|
|
456
|
+
label: "Last name",
|
|
457
|
+
placeholder: "Enter your last name",
|
|
458
|
+
showLabel: true,
|
|
459
|
+
mediaSettings: {
|
|
460
|
+
imagePosition: "ABOVE",
|
|
461
|
+
imageAlignment: "CENTER",
|
|
462
|
+
imageFit: "COVER"
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
},
|
|
468
|
+
{
|
|
469
|
+
id: "945e271e-cbd0-4b1a-f5d1-895a017e85c2",
|
|
470
|
+
hidden: false,
|
|
471
|
+
identifier: "CONTACTS_EMAIL",
|
|
472
|
+
fieldType: "INPUT",
|
|
473
|
+
inputOptions: {
|
|
474
|
+
target: "email_687e",
|
|
475
|
+
pii: true,
|
|
476
|
+
required: true,
|
|
477
|
+
inputType: "STRING",
|
|
478
|
+
contactMapping: {
|
|
479
|
+
contactField: "EMAIL",
|
|
480
|
+
emailInfo: {
|
|
481
|
+
tag: "UNTAGGED"
|
|
482
|
+
}
|
|
483
|
+
},
|
|
484
|
+
readOnly: false,
|
|
485
|
+
stringOptions: {
|
|
486
|
+
validation: {
|
|
487
|
+
format: "EMAIL",
|
|
488
|
+
enum: []
|
|
489
|
+
},
|
|
490
|
+
componentType: "TEXT_INPUT",
|
|
491
|
+
textInputOptions: {
|
|
492
|
+
label: "Email",
|
|
493
|
+
placeholder: "Enter your email",
|
|
494
|
+
showLabel: true,
|
|
495
|
+
mediaSettings: {
|
|
496
|
+
imagePosition: "ABOVE",
|
|
497
|
+
imageAlignment: "CENTER",
|
|
498
|
+
imageFit: "COVER"
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
],
|
|
505
|
+
steps: [
|
|
506
|
+
{
|
|
507
|
+
id: "88eff206-d589-45b3-c21b-bf0eb336fc1e",
|
|
508
|
+
name: "Page 1",
|
|
509
|
+
hidden: false,
|
|
510
|
+
layout: {
|
|
511
|
+
large: {
|
|
512
|
+
items: [
|
|
513
|
+
{
|
|
514
|
+
fieldId: "ca3ae82f-828e-4df1-666b-930afce2d75d",
|
|
515
|
+
row: 2,
|
|
516
|
+
column: 0,
|
|
517
|
+
width: 12,
|
|
518
|
+
height: 1
|
|
519
|
+
},
|
|
520
|
+
{
|
|
521
|
+
fieldId: "1eb04437-ef8b-4e5f-54c6-59a7fdcd168d",
|
|
522
|
+
row: 0,
|
|
523
|
+
column: 0,
|
|
524
|
+
width: 6,
|
|
525
|
+
height: 1
|
|
526
|
+
},
|
|
527
|
+
{
|
|
528
|
+
fieldId: "f10ad323-bd45-451b-9d22-f46f8882d33b",
|
|
529
|
+
row: 0,
|
|
530
|
+
column: 6,
|
|
531
|
+
width: 6,
|
|
532
|
+
height: 1
|
|
533
|
+
},
|
|
534
|
+
{
|
|
535
|
+
fieldId: "945e271e-cbd0-4b1a-f5d1-895a017e85c2",
|
|
536
|
+
row: 1,
|
|
537
|
+
column: 0,
|
|
538
|
+
width: 12,
|
|
539
|
+
height: 1
|
|
540
|
+
}
|
|
541
|
+
],
|
|
542
|
+
sections: []
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
],
|
|
547
|
+
rules: [],
|
|
548
|
+
revision: "5",
|
|
549
|
+
createdDate: "2025-08-29T11:04:06.698Z",
|
|
550
|
+
updatedDate: "2025-09-17T07:28:08.956Z",
|
|
551
|
+
properties: {
|
|
552
|
+
name: "My Form",
|
|
553
|
+
disabled: false
|
|
554
|
+
},
|
|
555
|
+
deletedFields: [],
|
|
556
|
+
deletedFieldsV2: [],
|
|
557
|
+
deletedFormFields: [],
|
|
558
|
+
kind: "REGULAR",
|
|
559
|
+
postSubmissionTriggers: {
|
|
560
|
+
upsertContact: {
|
|
561
|
+
fieldsMapping: {
|
|
562
|
+
email_687e: {
|
|
563
|
+
contactField: "EMAIL",
|
|
564
|
+
emailInfo: {
|
|
565
|
+
tag: "UNTAGGED"
|
|
566
|
+
}
|
|
567
|
+
},
|
|
568
|
+
last_name_1729: {
|
|
569
|
+
contactField: "LAST_NAME"
|
|
570
|
+
},
|
|
571
|
+
first_name_b86d: {
|
|
572
|
+
contactField: "FIRST_NAME"
|
|
573
|
+
}
|
|
574
|
+
},
|
|
575
|
+
labels: []
|
|
576
|
+
}
|
|
577
|
+
},
|
|
578
|
+
extendedFields: {
|
|
579
|
+
namespaces: {
|
|
580
|
+
"@forms/form-app": {
|
|
581
|
+
automationId: "9baf5f88-cec6-4e69-9488-238d5d0d1765"
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
},
|
|
585
|
+
namespace: "wix.form_app.form",
|
|
586
|
+
nestedForms: [],
|
|
587
|
+
spamFilterProtectionLevel: "ADVANCED",
|
|
588
|
+
requiredIndicatorProperties: {
|
|
589
|
+
requiredIndicator: "NONE",
|
|
590
|
+
requiredIndicatorPlacement: "AFTER_FIELD_TITLE"
|
|
591
|
+
},
|
|
592
|
+
submitSettings: {
|
|
593
|
+
submitSuccessAction: "THANK_YOU_MESSAGE",
|
|
594
|
+
thankYouMessageOptions: {
|
|
595
|
+
durationInSeconds: 8,
|
|
596
|
+
richContent: {
|
|
597
|
+
nodes: [
|
|
135
598
|
{
|
|
136
|
-
type: "
|
|
137
|
-
|
|
599
|
+
type: "PARAGRAPH",
|
|
600
|
+
id: "r3uj22",
|
|
601
|
+
nodes: [
|
|
602
|
+
{
|
|
603
|
+
type: "TEXT",
|
|
604
|
+
id: "",
|
|
605
|
+
nodes: [],
|
|
606
|
+
textData: {
|
|
607
|
+
text: "Thanks, we received your submission.",
|
|
608
|
+
decorations: []
|
|
609
|
+
}
|
|
610
|
+
}
|
|
611
|
+
],
|
|
612
|
+
paragraphData: {
|
|
613
|
+
textStyle: {
|
|
614
|
+
textAlignment: "CENTER"
|
|
615
|
+
}
|
|
616
|
+
}
|
|
138
617
|
}
|
|
139
|
-
]
|
|
618
|
+
],
|
|
619
|
+
metadata: {
|
|
620
|
+
version: 1,
|
|
621
|
+
createdTimestamp: "2025-08-29T11:04:01.756Z",
|
|
622
|
+
updatedTimestamp: "2025-08-29T11:04:01.756Z",
|
|
623
|
+
id: "ffdbcb9b-bb51-4971-89b3-53bb11a2536a"
|
|
624
|
+
}
|
|
140
625
|
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
);
|
|
150
|
-
return {};
|
|
151
|
-
}
|
|
152
|
-
let parsedResult;
|
|
153
|
-
try {
|
|
154
|
-
parsedResult = JSON.parse(response.text);
|
|
155
|
-
} catch (error) {
|
|
156
|
-
console.error(
|
|
157
|
-
`[${VERTICAL_NAME}-plugin-generateData] Error parsing result:`,
|
|
158
|
-
error
|
|
159
|
-
);
|
|
160
|
-
parsedResult = response.text;
|
|
161
|
-
}
|
|
626
|
+
}
|
|
627
|
+
},
|
|
628
|
+
fieldGroups: [],
|
|
629
|
+
enabled: true,
|
|
630
|
+
name: "Contact Us",
|
|
631
|
+
formRules: []
|
|
632
|
+
};
|
|
633
|
+
var installFormsApp = async (env) => {
|
|
162
634
|
console.log(
|
|
163
|
-
|
|
164
|
-
|
|
635
|
+
"[forms-app-plugin-install] Installing vertical functionality...",
|
|
636
|
+
env
|
|
165
637
|
);
|
|
166
|
-
|
|
638
|
+
await installWixApp(env, FORMS_APP_DEF_ID);
|
|
639
|
+
console.log("[forms-app-plugin-install] Forms App installation completed");
|
|
640
|
+
};
|
|
641
|
+
var generateMockData = async (env) => {
|
|
642
|
+
console.log(`[${VERTICAL_NAME}-plugin-generateData] Generating mock data...`);
|
|
643
|
+
return MOCK_SCHEMA;
|
|
167
644
|
};
|
|
168
645
|
|
|
169
646
|
// src/forms-app-instructions.ts
|
|
@@ -237,13 +714,23 @@ and change the static text the translate it to the new language.
|
|
|
237
714
|
`;
|
|
238
715
|
|
|
239
716
|
// src/index.ts
|
|
717
|
+
var install = async (env) => {
|
|
718
|
+
console.log("[forms-app-plugin-install] Starting installation", env);
|
|
719
|
+
console.log(
|
|
720
|
+
"[forms-app-plugin-install] Installing forms app functionality..."
|
|
721
|
+
);
|
|
722
|
+
await installFormsApp(env);
|
|
723
|
+
console.log(
|
|
724
|
+
"\n\x1B[34m ==== Forms App installation completed ==== \x1B[0m\n"
|
|
725
|
+
);
|
|
726
|
+
};
|
|
240
727
|
var generateData = async (env) => {
|
|
241
728
|
console.log(
|
|
242
729
|
`[${VERTICAL_NAME}-plugin-generateData] Starting data generation`,
|
|
243
730
|
env
|
|
244
731
|
);
|
|
245
732
|
console.log(`[${VERTICAL_NAME}-plugin-generateData] Generating mock data...`);
|
|
246
|
-
const generatedData = await generateMockData(
|
|
733
|
+
const generatedData = await generateMockData();
|
|
247
734
|
console.log(`
|
|
248
735
|
\x1B[34m ==== Forms data generation completed ==== \x1B[0m
|
|
249
736
|
`);
|
|
@@ -262,6 +749,7 @@ var getInstructions = async (params) => {
|
|
|
262
749
|
return actualInstructions;
|
|
263
750
|
};
|
|
264
751
|
var formsPlugin = {
|
|
752
|
+
install,
|
|
265
753
|
generateData,
|
|
266
754
|
getInstructions
|
|
267
755
|
};
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../node_modules/dedent/dist/dedent.mjs","../src/constants.ts","../src/utils.ts","../src/forms-app-instructions.ts","../src/index.ts"],"names":["dedent"],"mappings":"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","file":"index.cjs","sourcesContent":["function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nconst dedent = createDedent({});\nexport default dedent;\nfunction createDedent(options) {\n dedent.withOptions = newOptions => createDedent(_objectSpread(_objectSpread({}, options), newOptions));\n return dedent;\n function dedent(strings, ...values) {\n const raw = typeof strings === \"string\" ? [strings] : strings.raw;\n const {\n escapeSpecialCharacters = Array.isArray(strings),\n trimWhitespace = true\n } = options;\n\n // first, perform interpolation\n let result = \"\";\n for (let i = 0; i < raw.length; i++) {\n let next = raw[i];\n if (escapeSpecialCharacters) {\n // handle escaped newlines, backticks, and interpolation characters\n next = next.replace(/\\\\\\n[ \\t]*/g, \"\").replace(/\\\\`/g, \"`\").replace(/\\\\\\$/g, \"$\").replace(/\\\\\\{/g, \"{\");\n }\n result += next;\n if (i < values.length) {\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n result += values[i];\n }\n }\n\n // now strip indentation\n const lines = result.split(\"\\n\");\n let mindent = null;\n for (const l of lines) {\n const m = l.match(/^(\\s+)\\S+/);\n if (m) {\n const indent = m[1].length;\n if (!mindent) {\n // this is the first indented line\n mindent = indent;\n } else {\n mindent = Math.min(mindent, indent);\n }\n }\n }\n if (mindent !== null) {\n const m = mindent; // appease TypeScript\n result = lines\n // https://github.com/typescript-eslint/typescript-eslint/issues/7140\n // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with\n .map(l => l[0] === \" \" || l[0] === \"\\t\" ? l.slice(m) : l).join(\"\\n\");\n }\n\n // dedent eats leading and trailing whitespace too\n if (trimWhitespace) {\n result = result.trim();\n }\n\n // handle escaped newlines at the end to ensure they don't get stripped too\n if (escapeSpecialCharacters) {\n result = result.replace(/\\\\n/g, \"\\n\");\n }\n return result;\n }\n}\n","export const VERTICAL_NAME = \"forms-app\";\n","import dedent from \"dedent\";\nimport { PluginEnv } from \"./types\";\nimport { VERTICAL_NAME } from \"./constants\";\n\nconst getSetupPrompt = () => {\n return dedent`\n You are a helpful assistant that generates mock data for a vertical.\n You will be given a user request and you will need to generate mock data for the vertical.\n\n # Output example:\n User request: Example of a user request\n\n # Output:\n \\`\\`\\`json\n {\n \"message\": \"Replace this with your actual mock data\",\n \"userRequest\": \"Example of a user request\",\n // Add your generated data here\n }\n \\`\\`\\`\n `;\n};\n\n/**\n * Generate mock data for your vertical\n * This is where you would create sample data for development/testing\n */\nexport const generateMockData = async (env: PluginEnv) => {\n console.log(`[${VERTICAL_NAME}-plugin-generateData] Generating mock data...`);\n\n // you can replace all the code below with your own vertical-specific data generation logic\n // env.providers is a util for you to use the Wix Vibe LLM providers\n // besides generating the data payload,you can (and should) use env.generateImage to generate images for your data (according to the user request)\n\n const model = await (env.providers as any).getOpenAIProvider({\n model: \"O3_MINI_2025_01_31\" as any,\n tag: \"Some Vertical Data Generation\",\n responseFormat: { type: \"json_object\" },\n });\n\n const userMessage = env.userRequest;\n\n const response = await model.doGenerate({\n prompt: [\n { role: \"system\", content: getSetupPrompt() },\n {\n role: \"user\",\n content: [\n {\n type: \"text\",\n text: `The User original request is: ${userMessage}`,\n },\n ],\n },\n ],\n inputFormat: \"messages\",\n mode: { type: \"regular\" },\n });\n\n if (!response?.text) {\n console.error(\n `[${VERTICAL_NAME}-plugin-generateData] Error generating mock data:`,\n { response, userMessage },\n );\n return {};\n }\n\n let parsedResult;\n try {\n parsedResult = JSON.parse(response.text!);\n } catch (error) {\n console.error(\n `[${VERTICAL_NAME}-plugin-generateData] Error parsing result:`,\n error,\n );\n parsedResult = response.text;\n }\n\n console.log(\n `[${VERTICAL_NAME}-plugin-generateData] parsedResult`,\n parsedResult,\n );\n\n return parsedResult;\n};\n","import dedent from \"dedent\";\n\nexport const getFormsCodingInstructions = () => dedent`\n<forms_instructions>\n\nYour tasks for implementing and integrating the Forms features of the site are:\n\n# FIRST TASK: ADD FORMS COMPONENT ON A SITE PAGE\n\nAdd the form component on a site page.\n\n## Usage Examples\n\n### Form component\n\\`\\`\\`tsx\nimport { FormComponent } from '@/components/forms/Form';\n\n<FormComponent formServiceConfig={{ formId: \"custom-form\" }} />\n\\`\\`\\`\n\n## Form Service Configuration\n\nForms are configured using a \\`formServiceConfig\\` object:\n\n\\`\\`\\`tsx\ninterface FormProps {\n formServiceConfig: {\n form?: forms.Form; // Pre-loaded form data (SSR/SSG)\n formId?: string; // Form ID for lazy loading (client-side)\n };\n}\n\n// Example usage\nconst formServiceConfig = {\n formId: \"contact-form\", // Lazy load form by ID\n};\n\n// Or with pre-loaded data\nconst formServiceConfig = {\n form: formData, // Use pre-loaded form data\n};\n\\`\\`\\`\n\n\n\n# SECOND TASK: FORMS CODE CHANGES:\n- The general instruction is to NOT CHANGE THE FORMS COMPONENTS CODE and only integrate the forms components into a site page.\n- i.e DO NOT EDIT or READ ANY FILE in <code>./src/wix-verticals/</code> USE EVERYTHING AS IS!!\n<code-changes-exceptions>\n- Exceptions are when the user explicitly asks for changes to the forms components code\n- For example, if the user asks a site in non english language, you REQUIRED to go make changes to forms composite components in: \\`src/components/forms/...\\`:\n\n\\`\\`\\`bash\nsrc/components/forms/Form.tsx\nsrc/components/forms/fields.tsx\n\\`\\`\\`\n\nand change the static text the translate it to the new language.\n</code-changes-exceptions>\n\n# THIRD TASK: CODE THE REST OF THE SITE PAGES\n\n<important_notes>\n<strong>ALL FORMS FEATURES (submit button, validation, etc.) ARE ALREADY IMPLEMENTED BY THE FORMS COMPONENTS.</strong>\n<strong>THE REST OF THE SITE PAGES SHOULD BE IMPLEMENTED AS USUAL ACCORDING TO THE PLAN AND USER REQUESTS, FOLLOWING THE OTHER INSTRUCTIONS IN THE CONTEXT.</strong>\n\n</important_notes>\n\n</forms_instructions>\n`;\n","import { PluginModule } from \"@wix/wix-vibe-plugins\";\nimport { PluginEnv } from \"./types\";\nimport { generateMockData } from \"./utils\";\nimport { getFormsCodingInstructions } from \"./forms-app-instructions\";\nimport { VERTICAL_NAME } from \"./constants\";\n\nconst generateData = async (env: PluginEnv): Promise<any> => {\n console.log(\n `[${VERTICAL_NAME}-plugin-generateData] Starting data generation`,\n env,\n );\n\n // Generate mock data based on the user's request\n console.log(`[${VERTICAL_NAME}-plugin-generateData] Generating mock data...`);\n // const userRequest = env.userRequest;\n\n // TODO: call rocky\n const generatedData = await generateMockData(env);\n\n console.log(`\\n\\x1b[34m ==== Forms data generation completed ==== \\x1b[0m\\n`);\n\n return generatedData;\n};\n\n/**\n * Get instructions function - provides coding guidance to the AI\n * This helps the AI understand how to work with your vertical\n * originalInstructions is the instructions from dev center\n * result is the result of the install function\n */\nconst getInstructions = async (params: {\n result: unknown;\n originalInstructions: string | undefined;\n}) => {\n const actualInstructions = getFormsCodingInstructions();\n\n console.log(\n `[${VERTICAL_NAME}-plugin-getInstructions] Getting instructions`,\n {\n result: params.result,\n originalInstructions: params.originalInstructions,\n actualInstructions,\n },\n );\n\n return actualInstructions;\n};\n\nexport const formsPlugin: PluginModule = {\n generateData,\n getInstructions,\n};\n\nexport default formsPlugin;\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/dedent/dist/dedent.mjs","../src/constants.ts","../src/wix-apis.ts","../src/utils.ts","../src/forms-app-instructions.ts","../src/index.ts"],"names":["dedent"],"mappings":"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","file":"index.cjs","sourcesContent":["function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nconst dedent = createDedent({});\nexport default dedent;\nfunction createDedent(options) {\n dedent.withOptions = newOptions => createDedent(_objectSpread(_objectSpread({}, options), newOptions));\n return dedent;\n function dedent(strings, ...values) {\n const raw = typeof strings === \"string\" ? [strings] : strings.raw;\n const {\n escapeSpecialCharacters = Array.isArray(strings),\n trimWhitespace = true\n } = options;\n\n // first, perform interpolation\n let result = \"\";\n for (let i = 0; i < raw.length; i++) {\n let next = raw[i];\n if (escapeSpecialCharacters) {\n // handle escaped newlines, backticks, and interpolation characters\n next = next.replace(/\\\\\\n[ \\t]*/g, \"\").replace(/\\\\`/g, \"`\").replace(/\\\\\\$/g, \"$\").replace(/\\\\\\{/g, \"{\");\n }\n result += next;\n if (i < values.length) {\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n result += values[i];\n }\n }\n\n // now strip indentation\n const lines = result.split(\"\\n\");\n let mindent = null;\n for (const l of lines) {\n const m = l.match(/^(\\s+)\\S+/);\n if (m) {\n const indent = m[1].length;\n if (!mindent) {\n // this is the first indented line\n mindent = indent;\n } else {\n mindent = Math.min(mindent, indent);\n }\n }\n }\n if (mindent !== null) {\n const m = mindent; // appease TypeScript\n result = lines\n // https://github.com/typescript-eslint/typescript-eslint/issues/7140\n // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with\n .map(l => l[0] === \" \" || l[0] === \"\\t\" ? l.slice(m) : l).join(\"\\n\");\n }\n\n // dedent eats leading and trailing whitespace too\n if (trimWhitespace) {\n result = result.trim();\n }\n\n // handle escaped newlines at the end to ensure they don't get stripped too\n if (escapeSpecialCharacters) {\n result = result.replace(/\\\\n/g, \"\\n\");\n }\n return result;\n }\n}\n","export const VERTICAL_NAME = \"forms-app\";\nexport const FORMS_APP_DEF_ID = \"225dd912-7dea-4738-8688-4b8c6955ffc2\";\n","import { PluginEnv } from \"./types\";\n\nconst isErrorWithRequestId = (\n error: unknown,\n): error is Error & { requestId: string } => {\n return error instanceof Error && \"requestId\" in error;\n};\n\nexport const callWixAPI = async (\n url: string,\n method: string,\n _siteId?: string,\n body?: unknown,\n headers?: Record<string, string>,\n) => {\n if (!process.env.WIX_TOKEN) {\n console.error(\"[wix-apis] WIX_TOKEN is not set\");\n }\n\n try {\n console.log(\"[wix-apis] Calling Wix API...\", {\n url,\n method,\n _siteId,\n headers,\n });\n\n const response = await fetch(url, {\n method,\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: process.env.WIX_TOKEN!,\n ...headers,\n },\n ...(method === \"GET\" ? {} : { body: JSON.stringify(body) }),\n });\n\n if (!response.ok) {\n const text = await response.text();\n console.error(\"[wix-apis] Error calling Wix API\", {\n repsponseText: text,\n url,\n method,\n body,\n requestId: response.headers.get(\"x-wix-request-id\"),\n });\n return null;\n }\n\n const data = await response.json();\n\n /* console.log('Wix API response', {\n data,\n url,\n method,\n }); */\n\n return data;\n } catch (error: unknown) {\n console.error(\"[wix-apis] Error calling Wix API\", {\n error,\n url,\n method,\n body,\n requestId: isErrorWithRequestId(error) ? error.requestId : undefined,\n });\n return null;\n }\n};\n\nexport const installWixApp = async (env: PluginEnv, appDefId: string) => {\n const siteId = env.WIX_SITE_ID;\n console.log(\"Installing Wix app...\", { appDefId, siteId });\n\n const response = await callWixAPI(\n \"https://www.wixapis.com/apps-installer-service/v1/app-instance/install\",\n \"POST\",\n siteId,\n {\n tenant: {\n tenantType: \"SITE\",\n id: siteId,\n },\n appInstance: { appDefId },\n },\n );\n\n return response;\n};\n\n/**\n * Example: Create data via Wix API\n */\nexport const createVerticalData = async (env: PluginEnv) => {\n // TODO: Implement your vertical-specific data creation\n // Examples:\n // - Create products via Wix Stores API\n // - Create bookings via Wix Bookings API\n // - Create blog posts via Wix Blog API\n // - Create events via Wix Events API\n\n const results = {\n message: \"Replace this with actual API results\",\n createdItems: [],\n // Add your API response data here\n };\n\n // Log completion when implemented\n void env; // Suppress unused variable warning\n return results;\n};\n","import dedent from \"dedent\";\nimport { PluginEnv } from \"./types\";\nimport { FORMS_APP_DEF_ID, VERTICAL_NAME } from \"./constants\";\nimport { installWixApp } from \"./wix-apis\";\n\nconst MOCK_SCHEMA = {\n id: \"475c8304-35a2-4263-b2af-23c239e43cdc\",\n fields: [\n {\n id: \"ca3ae82f-828e-4df1-666b-930afce2d75d\",\n pii: false,\n hidden: false,\n view: {\n submitText: \"Submit\",\n thankYouMessageDuration: 8,\n thankYouMessageText: {\n nodes: [\n {\n id: \"zoay71\",\n type: \"PARAGRAPH\",\n nodes: [\n {\n id: \"\",\n type: \"TEXT\",\n nodes: [],\n textData: {\n text: \"Thanks, we received your submission.\",\n decorations: [],\n },\n },\n ],\n paragraphData: {\n textStyle: {\n textAlignment: \"CENTER\",\n },\n },\n },\n ],\n },\n nextText: \"Next\",\n submitAction: \"THANK_YOU_MESSAGE\",\n fieldType: \"SUBMIT_BUTTON\",\n previousText: \"Back\",\n },\n readOnly: false,\n },\n {\n id: \"1eb04437-ef8b-4e5f-54c6-59a7fdcd168d\",\n target: \"first_name_b86d\",\n validation: {\n string: {\n format: \"UNDEFINED\",\n enum: [],\n },\n required: false,\n },\n pii: true,\n hidden: false,\n view: {\n label: \"First name\",\n fieldType: \"CONTACTS_FIRST_NAME\",\n placeholder: \"Enter your first name\",\n },\n readOnly: false,\n },\n {\n id: \"f10ad323-bd45-451b-9d22-f46f8882d33b\",\n target: \"last_name_1729\",\n validation: {\n string: {\n format: \"UNDEFINED\",\n enum: [],\n },\n required: false,\n },\n pii: true,\n hidden: false,\n view: {\n label: \"Last name\",\n fieldType: \"CONTACTS_LAST_NAME\",\n placeholder: \"Enter your last name\",\n },\n readOnly: false,\n },\n {\n id: \"945e271e-cbd0-4b1a-f5d1-895a017e85c2\",\n target: \"email_687e\",\n validation: {\n string: {\n format: \"EMAIL\",\n enum: [],\n },\n required: true,\n },\n pii: true,\n hidden: false,\n view: {\n label: \"Email\",\n fieldType: \"CONTACTS_EMAIL\",\n placeholder: \"Enter your email\",\n },\n readOnly: false,\n },\n ],\n fieldsV2: [\n {\n id: \"ca3ae82f-828e-4df1-666b-930afce2d75d\",\n hidden: false,\n identifier: \"SUBMIT_BUTTON\",\n fieldType: \"DISPLAY\",\n displayOptions: {\n displayFieldType: \"PAGE_NAVIGATION\",\n pageNavigationOptions: {\n nextPageText: \"Next\",\n previousPageText: \"Back\",\n submitText: \"Submit\",\n },\n },\n },\n {\n id: \"1eb04437-ef8b-4e5f-54c6-59a7fdcd168d\",\n hidden: false,\n identifier: \"CONTACTS_FIRST_NAME\",\n fieldType: \"INPUT\",\n inputOptions: {\n target: \"first_name_b86d\",\n pii: true,\n required: false,\n inputType: \"STRING\",\n contactMapping: {\n contactField: \"FIRST_NAME\",\n },\n readOnly: false,\n stringOptions: {\n validation: {\n format: \"UNKNOWN_FORMAT\",\n enum: [],\n },\n componentType: \"TEXT_INPUT\",\n textInputOptions: {\n label: \"First name\",\n placeholder: \"Enter your first name\",\n showLabel: true,\n mediaSettings: {\n imagePosition: \"ABOVE\",\n imageAlignment: \"CENTER\",\n imageFit: \"COVER\",\n },\n },\n },\n },\n },\n {\n id: \"f10ad323-bd45-451b-9d22-f46f8882d33b\",\n hidden: false,\n identifier: \"CONTACTS_LAST_NAME\",\n fieldType: \"INPUT\",\n inputOptions: {\n target: \"last_name_1729\",\n pii: true,\n required: false,\n inputType: \"STRING\",\n contactMapping: {\n contactField: \"LAST_NAME\",\n },\n readOnly: false,\n stringOptions: {\n validation: {\n format: \"UNKNOWN_FORMAT\",\n enum: [],\n },\n componentType: \"TEXT_INPUT\",\n textInputOptions: {\n label: \"Last name\",\n placeholder: \"Enter your last name\",\n showLabel: true,\n mediaSettings: {\n imagePosition: \"ABOVE\",\n imageAlignment: \"CENTER\",\n imageFit: \"COVER\",\n },\n },\n },\n },\n },\n {\n id: \"945e271e-cbd0-4b1a-f5d1-895a017e85c2\",\n hidden: false,\n identifier: \"CONTACTS_EMAIL\",\n fieldType: \"INPUT\",\n inputOptions: {\n target: \"email_687e\",\n pii: true,\n required: true,\n inputType: \"STRING\",\n contactMapping: {\n contactField: \"EMAIL\",\n emailInfo: {\n tag: \"UNTAGGED\",\n },\n },\n readOnly: false,\n stringOptions: {\n validation: {\n format: \"EMAIL\",\n enum: [],\n },\n componentType: \"TEXT_INPUT\",\n textInputOptions: {\n label: \"Email\",\n placeholder: \"Enter your email\",\n showLabel: true,\n mediaSettings: {\n imagePosition: \"ABOVE\",\n imageAlignment: \"CENTER\",\n imageFit: \"COVER\",\n },\n },\n },\n },\n },\n ],\n formFields: [\n {\n id: \"ca3ae82f-828e-4df1-666b-930afce2d75d\",\n hidden: false,\n identifier: \"SUBMIT_BUTTON\",\n fieldType: \"DISPLAY\",\n displayOptions: {\n displayFieldType: \"PAGE_NAVIGATION\",\n pageNavigationOptions: {\n nextPageText: \"Next\",\n previousPageText: \"Back\",\n submitText: \"Submit\",\n },\n },\n },\n {\n id: \"1eb04437-ef8b-4e5f-54c6-59a7fdcd168d\",\n hidden: false,\n identifier: \"CONTACTS_FIRST_NAME\",\n fieldType: \"INPUT\",\n inputOptions: {\n target: \"first_name_b86d\",\n pii: true,\n required: false,\n inputType: \"STRING\",\n contactMapping: {\n contactField: \"FIRST_NAME\",\n },\n readOnly: false,\n stringOptions: {\n validation: {\n format: \"UNKNOWN_FORMAT\",\n enum: [],\n },\n componentType: \"TEXT_INPUT\",\n textInputOptions: {\n label: \"First name\",\n placeholder: \"Enter your first name\",\n showLabel: true,\n mediaSettings: {\n imagePosition: \"ABOVE\",\n imageAlignment: \"CENTER\",\n imageFit: \"COVER\",\n },\n },\n },\n },\n },\n {\n id: \"f10ad323-bd45-451b-9d22-f46f8882d33b\",\n hidden: false,\n identifier: \"CONTACTS_LAST_NAME\",\n fieldType: \"INPUT\",\n inputOptions: {\n target: \"last_name_1729\",\n pii: true,\n required: false,\n inputType: \"STRING\",\n contactMapping: {\n contactField: \"LAST_NAME\",\n },\n readOnly: false,\n stringOptions: {\n validation: {\n format: \"UNKNOWN_FORMAT\",\n enum: [],\n },\n componentType: \"TEXT_INPUT\",\n textInputOptions: {\n label: \"Last name\",\n placeholder: \"Enter your last name\",\n showLabel: true,\n mediaSettings: {\n imagePosition: \"ABOVE\",\n imageAlignment: \"CENTER\",\n imageFit: \"COVER\",\n },\n },\n },\n },\n },\n {\n id: \"945e271e-cbd0-4b1a-f5d1-895a017e85c2\",\n hidden: false,\n identifier: \"CONTACTS_EMAIL\",\n fieldType: \"INPUT\",\n inputOptions: {\n target: \"email_687e\",\n pii: true,\n required: true,\n inputType: \"STRING\",\n contactMapping: {\n contactField: \"EMAIL\",\n emailInfo: {\n tag: \"UNTAGGED\",\n },\n },\n readOnly: false,\n stringOptions: {\n validation: {\n format: \"EMAIL\",\n enum: [],\n },\n componentType: \"TEXT_INPUT\",\n textInputOptions: {\n label: \"Email\",\n placeholder: \"Enter your email\",\n showLabel: true,\n mediaSettings: {\n imagePosition: \"ABOVE\",\n imageAlignment: \"CENTER\",\n imageFit: \"COVER\",\n },\n },\n },\n },\n },\n ],\n steps: [\n {\n id: \"88eff206-d589-45b3-c21b-bf0eb336fc1e\",\n name: \"Page 1\",\n hidden: false,\n layout: {\n large: {\n items: [\n {\n fieldId: \"ca3ae82f-828e-4df1-666b-930afce2d75d\",\n row: 2,\n column: 0,\n width: 12,\n height: 1,\n },\n {\n fieldId: \"1eb04437-ef8b-4e5f-54c6-59a7fdcd168d\",\n row: 0,\n column: 0,\n width: 6,\n height: 1,\n },\n {\n fieldId: \"f10ad323-bd45-451b-9d22-f46f8882d33b\",\n row: 0,\n column: 6,\n width: 6,\n height: 1,\n },\n {\n fieldId: \"945e271e-cbd0-4b1a-f5d1-895a017e85c2\",\n row: 1,\n column: 0,\n width: 12,\n height: 1,\n },\n ],\n sections: [],\n },\n },\n },\n ],\n rules: [],\n revision: \"5\",\n createdDate: \"2025-08-29T11:04:06.698Z\",\n updatedDate: \"2025-09-17T07:28:08.956Z\",\n properties: {\n name: \"My Form\",\n disabled: false,\n },\n deletedFields: [],\n deletedFieldsV2: [],\n deletedFormFields: [],\n kind: \"REGULAR\",\n postSubmissionTriggers: {\n upsertContact: {\n fieldsMapping: {\n email_687e: {\n contactField: \"EMAIL\",\n emailInfo: {\n tag: \"UNTAGGED\",\n },\n },\n last_name_1729: {\n contactField: \"LAST_NAME\",\n },\n first_name_b86d: {\n contactField: \"FIRST_NAME\",\n },\n },\n labels: [],\n },\n },\n extendedFields: {\n namespaces: {\n \"@forms/form-app\": {\n automationId: \"9baf5f88-cec6-4e69-9488-238d5d0d1765\",\n },\n },\n },\n namespace: \"wix.form_app.form\",\n nestedForms: [],\n spamFilterProtectionLevel: \"ADVANCED\",\n requiredIndicatorProperties: {\n requiredIndicator: \"NONE\",\n requiredIndicatorPlacement: \"AFTER_FIELD_TITLE\",\n },\n submitSettings: {\n submitSuccessAction: \"THANK_YOU_MESSAGE\",\n thankYouMessageOptions: {\n durationInSeconds: 8,\n richContent: {\n nodes: [\n {\n type: \"PARAGRAPH\",\n id: \"r3uj22\",\n nodes: [\n {\n type: \"TEXT\",\n id: \"\",\n nodes: [],\n textData: {\n text: \"Thanks, we received your submission.\",\n decorations: [],\n },\n },\n ],\n paragraphData: {\n textStyle: {\n textAlignment: \"CENTER\",\n },\n },\n },\n ],\n metadata: {\n version: 1,\n createdTimestamp: \"2025-08-29T11:04:01.756Z\",\n updatedTimestamp: \"2025-08-29T11:04:01.756Z\",\n id: \"ffdbcb9b-bb51-4971-89b3-53bb11a2536a\",\n },\n },\n },\n },\n fieldGroups: [],\n enabled: true,\n name: \"Contact Us\",\n formRules: [],\n};\n\nexport const installFormsApp = async (env: PluginEnv) => {\n console.log(\n \"[forms-app-plugin-install] Installing vertical functionality...\",\n env,\n );\n\n await installWixApp(env, FORMS_APP_DEF_ID);\n\n console.log(\"[forms-app-plugin-install] Forms App installation completed\");\n};\n\nconst getSetupPrompt = () => {\n return dedent`\n You are a helpful assistant that generates mock data for a vertical.\n You will be given a user request and you will need to generate mock data for the vertical.\n\n # Output example:\n User request: Example of a user request\n\n # Output:\n \\`\\`\\`json\n {\n \"message\": \"Replace this with your actual mock data\",\n \"userRequest\": \"Example of a user request\",\n // Add your generated data here\n }\n \\`\\`\\`\n `;\n};\n\n/**\n * Generate mock data for your vertical\n * This is where you would create sample data for development/testing\n */\nexport const generateMockData = async (env: PluginEnv) => {\n console.log(`[${VERTICAL_NAME}-plugin-generateData] Generating mock data...`);\n\n // you can replace all the code below with your own vertical-specific data generation logic\n // env.providers is a util for you to use the Wix Vibe LLM providers\n // besides generating the data payload,you can (and should) use env.generateImage to generate images for your data (according to the user request)\n\n // const model = await (env.providers as any).getOpenAIProvider({\n // model: \"O3_MINI_2025_01_31\" as any,\n // tag: \"Some Vertical Data Generation\",\n // responseFormat: { type: \"json_object\" },\n // });\n\n // const userMessage = env.userRequest;\n\n // const response = await model.doGenerate({\n // prompt: [\n // { role: \"system\", content: getSetupPrompt() },\n // {\n // role: \"user\",\n // content: [\n // {\n // type: \"text\",\n // text: `The User original request is: ${userMessage}`,\n // },\n // ],\n // },\n // ],\n // inputFormat: \"messages\",\n // mode: { type: \"regular\" },\n // });\n\n // if (!response?.text) {\n // console.error(\n // `[${VERTICAL_NAME}-plugin-generateData] Error generating mock data:`,\n // { response, userMessage },\n // );\n // return {};\n // }\n\n // let parsedResult;\n // try {\n // parsedResult = JSON.parse(response.text!);\n // } catch (error) {\n // console.error(\n // `[${VERTICAL_NAME}-plugin-generateData] Error parsing result:`,\n // error,\n // );\n // parsedResult = response.text;\n // }\n\n // console.log(\n // `[${VERTICAL_NAME}-plugin-generateData] parsedResult`,\n // parsedResult,\n // );\n\n return MOCK_SCHEMA;\n // return parsedResult;\n};\n","import dedent from \"dedent\";\n\nexport const getFormsCodingInstructions = () => dedent`\n<forms_instructions>\n\nYour tasks for implementing and integrating the Forms features of the site are:\n\n# FIRST TASK: ADD FORMS COMPONENT ON A SITE PAGE\n\nAdd the form component on a site page.\n\n## Usage Examples\n\n### Form component\n\\`\\`\\`tsx\nimport { FormComponent } from '@/components/forms/Form';\n\n<FormComponent formServiceConfig={{ formId: \"custom-form\" }} />\n\\`\\`\\`\n\n## Form Service Configuration\n\nForms are configured using a \\`formServiceConfig\\` object:\n\n\\`\\`\\`tsx\ninterface FormProps {\n formServiceConfig: {\n form?: forms.Form; // Pre-loaded form data (SSR/SSG)\n formId?: string; // Form ID for lazy loading (client-side)\n };\n}\n\n// Example usage\nconst formServiceConfig = {\n formId: \"contact-form\", // Lazy load form by ID\n};\n\n// Or with pre-loaded data\nconst formServiceConfig = {\n form: formData, // Use pre-loaded form data\n};\n\\`\\`\\`\n\n\n\n# SECOND TASK: FORMS CODE CHANGES:\n- The general instruction is to NOT CHANGE THE FORMS COMPONENTS CODE and only integrate the forms components into a site page.\n- i.e DO NOT EDIT or READ ANY FILE in <code>./src/wix-verticals/</code> USE EVERYTHING AS IS!!\n<code-changes-exceptions>\n- Exceptions are when the user explicitly asks for changes to the forms components code\n- For example, if the user asks a site in non english language, you REQUIRED to go make changes to forms composite components in: \\`src/components/forms/...\\`:\n\n\\`\\`\\`bash\nsrc/components/forms/Form.tsx\nsrc/components/forms/fields.tsx\n\\`\\`\\`\n\nand change the static text the translate it to the new language.\n</code-changes-exceptions>\n\n# THIRD TASK: CODE THE REST OF THE SITE PAGES\n\n<important_notes>\n<strong>ALL FORMS FEATURES (submit button, validation, etc.) ARE ALREADY IMPLEMENTED BY THE FORMS COMPONENTS.</strong>\n<strong>THE REST OF THE SITE PAGES SHOULD BE IMPLEMENTED AS USUAL ACCORDING TO THE PLAN AND USER REQUESTS, FOLLOWING THE OTHER INSTRUCTIONS IN THE CONTEXT.</strong>\n\n</important_notes>\n\n</forms_instructions>\n`;\n","import { PluginModule } from \"@wix/wix-vibe-plugins\";\nimport { PluginEnv } from \"./types\";\nimport { generateMockData, installFormsApp } from \"./utils\";\nimport { getFormsCodingInstructions } from \"./forms-app-instructions\";\nimport { VERTICAL_NAME } from \"./constants\";\n\nconst install = async (env: PluginEnv) => {\n console.log(\"[forms-app-plugin-install] Starting installation\", env);\n\n console.log(\n \"[forms-app-plugin-install] Installing forms app functionality...\",\n );\n await installFormsApp(env);\n\n console.log(\n \"\\n\\x1b[34m ==== Forms App installation completed ==== \\x1b[0m\\n\",\n );\n};\n\nconst generateData = async (env: PluginEnv): Promise<any> => {\n console.log(\n `[${VERTICAL_NAME}-plugin-generateData] Starting data generation`,\n env,\n );\n\n // Generate mock data based on the user's request\n console.log(`[${VERTICAL_NAME}-plugin-generateData] Generating mock data...`);\n // const userRequest = env.userRequest;\n\n // TODO: call rocky\n const generatedData = await generateMockData(env);\n\n console.log(`\\n\\x1b[34m ==== Forms data generation completed ==== \\x1b[0m\\n`);\n\n return generatedData;\n};\n\n/**\n * Get instructions function - provides coding guidance to the AI\n * This helps the AI understand how to work with your vertical\n * originalInstructions is the instructions from dev center\n * result is the result of the install function\n */\nconst getInstructions = async (params: {\n result: unknown;\n originalInstructions: string | undefined;\n}) => {\n const actualInstructions = getFormsCodingInstructions();\n\n console.log(\n `[${VERTICAL_NAME}-plugin-getInstructions] Getting instructions`,\n {\n result: params.result,\n originalInstructions: params.originalInstructions,\n actualInstructions,\n },\n );\n\n return actualInstructions;\n};\n\nexport const formsPlugin: PluginModule = {\n install,\n generateData,\n getInstructions,\n};\n\nexport default formsPlugin;\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wix/vibe-forms-app-plugin",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"main": "dist/index.cjs",
|
|
5
5
|
"types": "./dist/index.d.ts",
|
|
6
6
|
"files": [
|
|
@@ -52,5 +52,5 @@
|
|
|
52
52
|
]
|
|
53
53
|
}
|
|
54
54
|
},
|
|
55
|
-
"falconPackageHash": "
|
|
55
|
+
"falconPackageHash": "7a9b0c33175fac114155546e3ba2ce5cc8c2e50063afe040797a3566"
|
|
56
56
|
}
|