@funnelsgrove/cli 0.1.28 → 0.1.35
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 +7 -4
- package/dist/cli.d.ts +20 -0
- package/dist/cli.js +33 -8
- package/dist/githubSyncFlow.d.ts +6 -0
- package/dist/githubSyncFlow.js +55 -10
- package/funnel-contract-compatibility.json +28 -28
- package/package.json +8 -3
- package/template_docs/.funnelsgrove-docs.json +3 -3
- package/template_docs/docs/funnelsgrove/migrations/step-contract-v3.md +1 -1
- package/template_docs/funnel-docs.config.json +1 -1
- package/template_scaffold/.funnelsgrove-docs.json +3 -3
- package/template_scaffold/.funnelsgrove-scaffold.json +150 -150
- package/template_scaffold/docs/funnelsgrove/migrations/step-contract-v3.md +1 -1
- package/template_scaffold/funnel-docs.config.json +1 -1
- package/template_scaffold/package-lock.json +13 -13
- package/template_scaffold/package.json +3 -3
- package/template_scaffold/public/paywall/money-back-badge.png +0 -0
- package/template_scaffold/src/steps/step-32-paywall.tsx +2 -2
- package/template_scaffold/src/steps/step-33-subscription-started.tsx +1 -43
- package/template_scaffold/{funnel-agent-docs.test.ts → tests/funnel-agent-docs.test.ts} +4 -4
- package/template_scaffold/{package.test.ts → tests/package.test.ts} +4 -4
- package/template_scaffold/{src → tests/src}/app/layout.test.ts +2 -2
- package/template_scaffold/{src → tests/src}/components/FunnelFlow.test.tsx +2 -2
- package/template_scaffold/{src → tests/src}/config/billing.plans.test.ts +4 -4
- package/template_scaffold/{src → tests/src}/config/experiments.test.ts +1 -1
- package/template_scaffold/{src → tests/src}/config/funnel.manifest.test.ts +1 -1
- package/template_scaffold/{src → tests/src}/contract/funnel-project.validation.test.ts +2 -2
- package/template_scaffold/{src → tests/src}/contract/golden/golden-fixtures.test.ts +16 -16
- package/template_scaffold/{src → tests/src}/contract/validate-funnel.cli.test.ts +2 -2
- package/template_scaffold/{src → tests/src}/runtime/checkout-runtime-config.test.ts +3 -3
- package/template_scaffold/{src → tests/src}/runtime/funnel-runtime.test.ts +1 -1
- package/template_scaffold/{src → tests/src}/runtime/step-content-context.test.ts +1 -1
- package/template_scaffold/{src → tests/src}/runtime/use-funnel-flow-controller.integration.test.ts +4 -4
- package/template_scaffold/{src → tests/src}/runtime/use-funnel-flow-controller.test.ts +3 -3
- package/template_scaffold/{src → tests/src}/steps/paywall-checkout-options.test.ts +1 -1
- package/template_scaffold/{src → tests/src}/steps/shared-header-contract.test.ts +3 -1
- package/template_scaffold/{src → tests/src}/steps/step-02.test.ts +3 -3
- package/template_scaffold/{src → tests/src}/steps/step-03.test.ts +1 -1
- package/template_scaffold/{src → tests/src}/steps/step-04.test.ts +1 -1
- package/template_scaffold/{src → tests/src}/steps/step-31-email-capture.test.ts +1 -1
- package/template_scaffold/{src → tests/src}/steps/step-32-paywall.test.ts +43 -43
- package/template_scaffold/{src → tests/src}/steps/step-33-subscription-started.test.ts +6 -7
- package/template_scaffold/{src → tests/src}/steps/step-34-upsell-form.test.ts +3 -3
- package/template_scaffold/{src → tests/src}/steps/step-image-migration.test.ts +1 -1
- /package/template_scaffold/{src → tests/src}/app/[stepId]/page.test.tsx +0 -0
- /package/template_scaffold/{src → tests/src}/components/FunnelStepImage.test.ts +0 -0
- /package/template_scaffold/{src → tests/src}/steps/step-01.test.ts +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"sourceTreeHash": "
|
|
3
|
+
"sourceTreeHash": "e00d4d9300d169131cf55df1d9ff45ddb43f369da52d96db47b2a8ee00c0705e",
|
|
4
4
|
"stepContractVersion": 3,
|
|
5
|
-
"docsBundleVersion": "2.0.
|
|
5
|
+
"docsBundleVersion": "2.0.23",
|
|
6
6
|
"files": [
|
|
7
7
|
{
|
|
8
8
|
"path": ".env.example",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
18
|
"path": ".funnelsgrove-docs.json",
|
|
19
|
-
"sha256": "
|
|
19
|
+
"sha256": "777509183cdfb38967f70038bbf70737da8321fc52cc82ac60954374b10ea18d",
|
|
20
20
|
"mode": "100644"
|
|
21
21
|
},
|
|
22
22
|
{
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
},
|
|
102
102
|
{
|
|
103
103
|
"path": "docs/funnelsgrove/migrations/step-contract-v3.md",
|
|
104
|
-
"sha256": "
|
|
104
|
+
"sha256": "bd7ae81ac8617e8d297268a1091e1bea5fb6b412346f6e891a0f08ab49520686",
|
|
105
105
|
"mode": "100644"
|
|
106
106
|
},
|
|
107
107
|
{
|
|
@@ -234,14 +234,9 @@
|
|
|
234
234
|
"sha256": "059cab3c5d3244a3695879763e6ca845e862850598b6c23a3c7a62a30b085954",
|
|
235
235
|
"mode": "100644"
|
|
236
236
|
},
|
|
237
|
-
{
|
|
238
|
-
"path": "funnel-agent-docs.test.ts",
|
|
239
|
-
"sha256": "e557366cf246340c74681736ce0cc2dd7ef0b2e4166dcd005197576b4d195088",
|
|
240
|
-
"mode": "100644"
|
|
241
|
-
},
|
|
242
237
|
{
|
|
243
238
|
"path": "funnel-docs.config.json",
|
|
244
|
-
"sha256": "
|
|
239
|
+
"sha256": "5c2a6798dd3e13269526d43af4a3db1e4c85c748f49f768417f8dcb827803603",
|
|
245
240
|
"mode": "100644"
|
|
246
241
|
},
|
|
247
242
|
{
|
|
@@ -266,17 +261,12 @@
|
|
|
266
261
|
},
|
|
267
262
|
{
|
|
268
263
|
"path": "package-lock.json",
|
|
269
|
-
"sha256": "
|
|
264
|
+
"sha256": "4107cec6df7d25471893b22de2ed514e2e9c381a9f3faa861e6642cd7ed5ceed",
|
|
270
265
|
"mode": "100644"
|
|
271
266
|
},
|
|
272
267
|
{
|
|
273
268
|
"path": "package.json",
|
|
274
|
-
"sha256": "
|
|
275
|
-
"mode": "100644"
|
|
276
|
-
},
|
|
277
|
-
{
|
|
278
|
-
"path": "package.test.ts",
|
|
279
|
-
"sha256": "0631d66d24d25e1486e0c9b9e3fe6bb23c5acf9e04e4888e36525ae12b7711aa",
|
|
269
|
+
"sha256": "2b9dc1e23e4cab876849b7f4c9abb5ae1cd2769129ccb970268cf8791e0886d9",
|
|
280
270
|
"mode": "100644"
|
|
281
271
|
},
|
|
282
272
|
{
|
|
@@ -356,7 +346,7 @@
|
|
|
356
346
|
},
|
|
357
347
|
{
|
|
358
348
|
"path": "public/paywall/money-back-badge.png",
|
|
359
|
-
"sha256": "
|
|
349
|
+
"sha256": "319d812579282d6dd291437b6aa322463cef398f5c74e94cc16329180a64fed1",
|
|
360
350
|
"mode": "100644"
|
|
361
351
|
},
|
|
362
352
|
{
|
|
@@ -454,11 +444,6 @@
|
|
|
454
444
|
"sha256": "fcff5d9b5fed1058de82e81d7cef0501cd94744827317ffb8f183c7b11e6c511",
|
|
455
445
|
"mode": "100644"
|
|
456
446
|
},
|
|
457
|
-
{
|
|
458
|
-
"path": "src/app/[stepId]/page.test.tsx",
|
|
459
|
-
"sha256": "918e1ac9c08355ae7c0f439a453473b498fae4c06784e8f73329cd852c38b17f",
|
|
460
|
-
"mode": "100644"
|
|
461
|
-
},
|
|
462
447
|
{
|
|
463
448
|
"path": "src/app/[stepId]/page.tsx",
|
|
464
449
|
"sha256": "292b9f12317d03061a72823b13ded89872c6f163b33502450ab418e6a397433e",
|
|
@@ -469,11 +454,6 @@
|
|
|
469
454
|
"sha256": "91ff423c95f785d22bbecb82e81ee93a88b57f794ef391a7ac9cb4cc70267032",
|
|
470
455
|
"mode": "100644"
|
|
471
456
|
},
|
|
472
|
-
{
|
|
473
|
-
"path": "src/app/layout.test.ts",
|
|
474
|
-
"sha256": "039a68c7af445bc3f37df2ffa3697edf6e554a6da293c8daa64da9150674a93a",
|
|
475
|
-
"mode": "100644"
|
|
476
|
-
},
|
|
477
457
|
{
|
|
478
458
|
"path": "src/app/layout.tsx",
|
|
479
459
|
"sha256": "739926b65738b1e7e9e52394b8a360ec4ad1e3fb2c03e6f9218f85ba72ba7b12",
|
|
@@ -549,21 +529,11 @@
|
|
|
549
529
|
"sha256": "36dc049600c2dd220c86d4e5ec684e4a3e2527121565efdf0bcf900b61636aa3",
|
|
550
530
|
"mode": "100644"
|
|
551
531
|
},
|
|
552
|
-
{
|
|
553
|
-
"path": "src/components/FunnelFlow.test.tsx",
|
|
554
|
-
"sha256": "7970d20d0105dca78812d7f220c8568320adf5fb3577753207dfe5ff64d9177a",
|
|
555
|
-
"mode": "100644"
|
|
556
|
-
},
|
|
557
532
|
{
|
|
558
533
|
"path": "src/components/FunnelFlow.tsx",
|
|
559
534
|
"sha256": "c3446a33f3c3763b7269ed8eb9281e7a20d82954193d5a7a877e10a3179bb3ac",
|
|
560
535
|
"mode": "100644"
|
|
561
536
|
},
|
|
562
|
-
{
|
|
563
|
-
"path": "src/components/FunnelStepImage.test.ts",
|
|
564
|
-
"sha256": "bcd6ae93cc75554734bc3ade665c05571f6da8bfbfc580e991a4db21398fc9bb",
|
|
565
|
-
"mode": "100644"
|
|
566
|
-
},
|
|
567
537
|
{
|
|
568
538
|
"path": "src/components/FunnelStepImage.tsx",
|
|
569
539
|
"sha256": "fc018e49106f9e7105467fccc21e0b164fc654b0d5f3c92f36315a1296be8a54",
|
|
@@ -574,11 +544,6 @@
|
|
|
574
544
|
"sha256": "214dc27da4de9554bbdc0d59a351bcfc34f94cbad08e748d90adf98326639795",
|
|
575
545
|
"mode": "100644"
|
|
576
546
|
},
|
|
577
|
-
{
|
|
578
|
-
"path": "src/config/billing.plans.test.ts",
|
|
579
|
-
"sha256": "6375cfad4c8ab34783b62132f8382e8f79455dcca39941ecfb6f79a5a46e577c",
|
|
580
|
-
"mode": "100644"
|
|
581
|
-
},
|
|
582
547
|
{
|
|
583
548
|
"path": "src/config/billing.plans.ts",
|
|
584
549
|
"sha256": "95f76f07a47dfe70d13cd21369aa5f1a389326b6d3e71b2246967865f1d13fa5",
|
|
@@ -594,11 +559,6 @@
|
|
|
594
559
|
"sha256": "f25744dcebf4932ce25f378c76f2bd270c997f7792093b07ed0abdd7c74a1049",
|
|
595
560
|
"mode": "100644"
|
|
596
561
|
},
|
|
597
|
-
{
|
|
598
|
-
"path": "src/config/experiments.test.ts",
|
|
599
|
-
"sha256": "049ff313dc5151a13102b2cd77654d3c0c695f8e066500fde9a288dd66a28d3a",
|
|
600
|
-
"mode": "100644"
|
|
601
|
-
},
|
|
602
562
|
{
|
|
603
563
|
"path": "src/config/experiments.ts",
|
|
604
564
|
"sha256": "f008ff0c04a267f03204e34e9d13bc0d897d14053e78287f700801484fc3f937",
|
|
@@ -609,11 +569,6 @@
|
|
|
609
569
|
"sha256": "6826189cdc984b448b9049d80f94fbe78a96cc6101b868a93554004011a3c424",
|
|
610
570
|
"mode": "100644"
|
|
611
571
|
},
|
|
612
|
-
{
|
|
613
|
-
"path": "src/config/funnel.manifest.test.ts",
|
|
614
|
-
"sha256": "466cadbac9ae1ad832412779a6f534ce683271c5829fe27f15223347c9210764",
|
|
615
|
-
"mode": "100644"
|
|
616
|
-
},
|
|
617
572
|
{
|
|
618
573
|
"path": "src/config/funnel.manifest.ts",
|
|
619
574
|
"sha256": "9bdb5e41da57edb5d16afde77c5d108010658160168aeee2ad65f79fd9b82604",
|
|
@@ -624,11 +579,6 @@
|
|
|
624
579
|
"sha256": "732be9f47bb07165c967967196442e2e8c28fece3b651ef4d9907d7c5410bdea",
|
|
625
580
|
"mode": "100644"
|
|
626
581
|
},
|
|
627
|
-
{
|
|
628
|
-
"path": "src/contract/funnel-project.validation.test.ts",
|
|
629
|
-
"sha256": "87797b5e8de6ebc8e23b3c20e6ab4f5b93d411d39c334a0af15101b11c7b6d54",
|
|
630
|
-
"mode": "100644"
|
|
631
|
-
},
|
|
632
582
|
{
|
|
633
583
|
"path": "src/contract/funnel-project.validation.ts",
|
|
634
584
|
"sha256": "b0ec02eac1bd56812eef773be71628ae4e94f80fcd88837bbc5c8bf04e73a62c",
|
|
@@ -654,11 +604,6 @@
|
|
|
654
604
|
"sha256": "46852bbbd36244a0fe513385bd59d585f92feb17049d4621a6ad829752f80e95",
|
|
655
605
|
"mode": "100644"
|
|
656
606
|
},
|
|
657
|
-
{
|
|
658
|
-
"path": "src/contract/golden/golden-fixtures.test.ts",
|
|
659
|
-
"sha256": "b0caad74c84bc0e3a2de09a88e0a6f685818c0138fab71f7fcbfd032b9a750b4",
|
|
660
|
-
"mode": "100644"
|
|
661
|
-
},
|
|
662
607
|
{
|
|
663
608
|
"path": "src/contract/golden/intro_hero.fixture.ts",
|
|
664
609
|
"sha256": "f9ff4676f115085b537e388e1ffd04cc5a09a9c58d8ff871aff92dfceabfd095",
|
|
@@ -724,41 +669,21 @@
|
|
|
724
669
|
"sha256": "44a8edb337628083d516298b9acc6da67151ada9a13fbb6543b52223155ccda7",
|
|
725
670
|
"mode": "100644"
|
|
726
671
|
},
|
|
727
|
-
{
|
|
728
|
-
"path": "src/contract/validate-funnel.cli.test.ts",
|
|
729
|
-
"sha256": "ff231bc1c118a3fc7181927476e2a43e5a40752f3824fc057324d762d32052f4",
|
|
730
|
-
"mode": "100644"
|
|
731
|
-
},
|
|
732
672
|
{
|
|
733
673
|
"path": "src/contract/validate-funnel.cli.ts",
|
|
734
674
|
"sha256": "1b268b194865d633c760b704a0d4552adc2eb4526801da138ab2a4036f643d58",
|
|
735
675
|
"mode": "100644"
|
|
736
676
|
},
|
|
737
|
-
{
|
|
738
|
-
"path": "src/runtime/checkout-runtime-config.test.ts",
|
|
739
|
-
"sha256": "0e0171cf3c60a3d85ccd626231b38995e7dc26df9c0e95f24622480de11c49dc",
|
|
740
|
-
"mode": "100644"
|
|
741
|
-
},
|
|
742
677
|
{
|
|
743
678
|
"path": "src/runtime/checkout-runtime-config.ts",
|
|
744
679
|
"sha256": "aeb2f527d4850e507f9f16de3067f55ef4e3dc3374abf76c041a7a76661ea1da",
|
|
745
680
|
"mode": "100644"
|
|
746
681
|
},
|
|
747
|
-
{
|
|
748
|
-
"path": "src/runtime/funnel-runtime.test.ts",
|
|
749
|
-
"sha256": "1767fdd4d61f6f6d6642c7510386018a181715b0c2e4978fb417ece0331c9b0f",
|
|
750
|
-
"mode": "100644"
|
|
751
|
-
},
|
|
752
682
|
{
|
|
753
683
|
"path": "src/runtime/funnel-runtime.ts",
|
|
754
684
|
"sha256": "a657b8864df422ac16759351a6a1a221ca70f50d56d3e2b066fd5ab23eae79b9",
|
|
755
685
|
"mode": "100644"
|
|
756
686
|
},
|
|
757
|
-
{
|
|
758
|
-
"path": "src/runtime/step-content-context.test.ts",
|
|
759
|
-
"sha256": "c2a22459bc64cbfa1c2fd7d23e1f2863a0998273a6efed7131029c74414fbc7a",
|
|
760
|
-
"mode": "100644"
|
|
761
|
-
},
|
|
762
687
|
{
|
|
763
688
|
"path": "src/runtime/step-content-context.ts",
|
|
764
689
|
"sha256": "a354f949756e673faf2c9f940a5485abce8e618920ff6ae7766dba9d67250bde",
|
|
@@ -774,16 +699,6 @@
|
|
|
774
699
|
"sha256": "a6021318a562accf6c6872dfa1947a51ff1bb302837b60477a35d0b595544e5c",
|
|
775
700
|
"mode": "100644"
|
|
776
701
|
},
|
|
777
|
-
{
|
|
778
|
-
"path": "src/runtime/use-funnel-flow-controller.integration.test.ts",
|
|
779
|
-
"sha256": "d5900401cd2865ad1c0755339861e0a1a84b139dc3a88207927c061ab9a7ef01",
|
|
780
|
-
"mode": "100644"
|
|
781
|
-
},
|
|
782
|
-
{
|
|
783
|
-
"path": "src/runtime/use-funnel-flow-controller.test.ts",
|
|
784
|
-
"sha256": "68ee4fc973c32a44a1b51ab383a80929242c4f53542c0b508b184a05c697fded",
|
|
785
|
-
"mode": "100644"
|
|
786
|
-
},
|
|
787
702
|
{
|
|
788
703
|
"path": "src/runtime/use-funnel-flow-controller.ts",
|
|
789
704
|
"sha256": "9f12ab00b0c0685c3b520b9cc9bad22b7b04323164358b169356dc85338e0f50",
|
|
@@ -884,11 +799,6 @@
|
|
|
884
799
|
"sha256": "21f146040b8c2e47923ee77cbff8ef6dc23481c3647f08de0659d34e0f46d0b8",
|
|
885
800
|
"mode": "100644"
|
|
886
801
|
},
|
|
887
|
-
{
|
|
888
|
-
"path": "src/steps/paywall-checkout-options.test.ts",
|
|
889
|
-
"sha256": "da32caee8dc694a220feef628cfc5b1d10d964ca1c514040568cc3a5f7c2fd32",
|
|
890
|
-
"mode": "100644"
|
|
891
|
-
},
|
|
892
802
|
{
|
|
893
803
|
"path": "src/steps/paywall-checkout-options.ts",
|
|
894
804
|
"sha256": "6c4a21ae44255f31d6dbdfa10312402ef4cf4538a2c73ef3272209923dd09a7b",
|
|
@@ -914,69 +824,34 @@
|
|
|
914
824
|
"sha256": "38ae9ee7f6930ab295b4b389c42c6cea552514788ee67bdc845fd7d8f66b700f",
|
|
915
825
|
"mode": "100644"
|
|
916
826
|
},
|
|
917
|
-
{
|
|
918
|
-
"path": "src/steps/shared-header-contract.test.ts",
|
|
919
|
-
"sha256": "d2827459278da1d60f19f430629cb86f313ab8117fd8ad0f6d48c5d2683635db",
|
|
920
|
-
"mode": "100644"
|
|
921
|
-
},
|
|
922
|
-
{
|
|
923
|
-
"path": "src/steps/step-01.test.ts",
|
|
924
|
-
"sha256": "08c132d7027760196254cdfb6c49881e3bfefffaec518d647a4ce98e58b7328d",
|
|
925
|
-
"mode": "100644"
|
|
926
|
-
},
|
|
927
827
|
{
|
|
928
828
|
"path": "src/steps/step-01.tsx",
|
|
929
829
|
"sha256": "4a6fe1686abf2dfa3d711d540afedba976b09bdf463eeca7833b0f2431936a03",
|
|
930
830
|
"mode": "100644"
|
|
931
831
|
},
|
|
932
|
-
{
|
|
933
|
-
"path": "src/steps/step-02.test.ts",
|
|
934
|
-
"sha256": "b264710e40abe8efc041603a8b18b022a36bee593ebfb1eb18931508257173ef",
|
|
935
|
-
"mode": "100644"
|
|
936
|
-
},
|
|
937
832
|
{
|
|
938
833
|
"path": "src/steps/step-02.tsx",
|
|
939
834
|
"sha256": "e59949c12b1508d4ec1aa6fcd6af1ae8e5f3e2e1fb662af0442552db3da89630",
|
|
940
835
|
"mode": "100644"
|
|
941
836
|
},
|
|
942
|
-
{
|
|
943
|
-
"path": "src/steps/step-03.test.ts",
|
|
944
|
-
"sha256": "2aab2c01a3bdac1f7f731efa38b2b3411da83651cca21536b3f6e78ae3c2565f",
|
|
945
|
-
"mode": "100644"
|
|
946
|
-
},
|
|
947
837
|
{
|
|
948
838
|
"path": "src/steps/step-03.tsx",
|
|
949
839
|
"sha256": "6978118c821d94efede6585ef36a5f7c09f8ba9a9f1a87ef1f0f89ab7df79af2",
|
|
950
840
|
"mode": "100644"
|
|
951
841
|
},
|
|
952
|
-
{
|
|
953
|
-
"path": "src/steps/step-04.test.ts",
|
|
954
|
-
"sha256": "fba9a5c78f5a5b70f7a8f6e811f8dd211c3a02aa3e1cab7542f5a670041de858",
|
|
955
|
-
"mode": "100644"
|
|
956
|
-
},
|
|
957
842
|
{
|
|
958
843
|
"path": "src/steps/step-04.tsx",
|
|
959
844
|
"sha256": "d8a529fdef01ddc7f702ccee95ea9a586042b755c57c4e24ab1944c7f292a7f1",
|
|
960
845
|
"mode": "100644"
|
|
961
846
|
},
|
|
962
|
-
{
|
|
963
|
-
"path": "src/steps/step-31-email-capture.test.ts",
|
|
964
|
-
"sha256": "d76a7fb5571c3bce956d96886987b5d8793516a529b3624f46233800a8895e6a",
|
|
965
|
-
"mode": "100644"
|
|
966
|
-
},
|
|
967
847
|
{
|
|
968
848
|
"path": "src/steps/step-31-email-capture.tsx",
|
|
969
849
|
"sha256": "371398ca371b7a595e5c6f3ae19a5bc35a778ea0bad8195cee36bebda514506c",
|
|
970
850
|
"mode": "100644"
|
|
971
851
|
},
|
|
972
|
-
{
|
|
973
|
-
"path": "src/steps/step-32-paywall.test.ts",
|
|
974
|
-
"sha256": "954a6de5c65c7078ae36d1b7a5537366b6252452660b706b4e7df18c3060578d",
|
|
975
|
-
"mode": "100644"
|
|
976
|
-
},
|
|
977
852
|
{
|
|
978
853
|
"path": "src/steps/step-32-paywall.tsx",
|
|
979
|
-
"sha256": "
|
|
854
|
+
"sha256": "f64fb4dd724be41e8068f473883d9bdb4188272ef289aadd08f27a2c01ebf044",
|
|
980
855
|
"mode": "100644"
|
|
981
856
|
},
|
|
982
857
|
{
|
|
@@ -984,19 +859,9 @@
|
|
|
984
859
|
"sha256": "712383d2ec113a6289d25e2368bdc31f1c02ccd43d4bd997b872f4d50d63a733",
|
|
985
860
|
"mode": "100644"
|
|
986
861
|
},
|
|
987
|
-
{
|
|
988
|
-
"path": "src/steps/step-33-subscription-started.test.ts",
|
|
989
|
-
"sha256": "32ce3f81dfc14fceb9857040bb8aeab2db4b0fe66c423610b13e4d5a5fb11620",
|
|
990
|
-
"mode": "100644"
|
|
991
|
-
},
|
|
992
862
|
{
|
|
993
863
|
"path": "src/steps/step-33-subscription-started.tsx",
|
|
994
|
-
"sha256": "
|
|
995
|
-
"mode": "100644"
|
|
996
|
-
},
|
|
997
|
-
{
|
|
998
|
-
"path": "src/steps/step-34-upsell-form.test.ts",
|
|
999
|
-
"sha256": "7fc73e9a9f585889aefbe5fda05ea7a71847b443db8557b33082119a4f73978b",
|
|
864
|
+
"sha256": "a9c9a58b9a2cb03ea5e7b1110557819ddeb83ceada956448215b759b68c167a2",
|
|
1000
865
|
"mode": "100644"
|
|
1001
866
|
},
|
|
1002
867
|
{
|
|
@@ -1009,11 +874,6 @@
|
|
|
1009
874
|
"sha256": "7e5182231e17d9436aa1761e0d0a0028978336f384823210f8f93da2d5644d2a",
|
|
1010
875
|
"mode": "100644"
|
|
1011
876
|
},
|
|
1012
|
-
{
|
|
1013
|
-
"path": "src/steps/step-image-migration.test.ts",
|
|
1014
|
-
"sha256": "337be95754f771e9429a22db9ef9578993ee0eed0eaf326e302fdc7b29f031e1",
|
|
1015
|
-
"mode": "100644"
|
|
1016
|
-
},
|
|
1017
877
|
{
|
|
1018
878
|
"path": "src/steps/styles/index.css",
|
|
1019
879
|
"sha256": "3adf8dce39f0645fd27d3df97eb02baa908f6904b1844bcd276613295cccc8cd",
|
|
@@ -1064,6 +924,146 @@
|
|
|
1064
924
|
"sha256": "9d776dca7729383f4b98156f82f9cd0a35be4e8efd903c14a7ffe10267cb1427",
|
|
1065
925
|
"mode": "100644"
|
|
1066
926
|
},
|
|
927
|
+
{
|
|
928
|
+
"path": "tests/funnel-agent-docs.test.ts",
|
|
929
|
+
"sha256": "6005c77980962cdf41beff3ba7554e389684e19d218a4c88441d28769b75f60e",
|
|
930
|
+
"mode": "100644"
|
|
931
|
+
},
|
|
932
|
+
{
|
|
933
|
+
"path": "tests/package.test.ts",
|
|
934
|
+
"sha256": "d49df405d41d3183066d2ac9398bf39f9daf56c4d15e871c276a3a6a48117b48",
|
|
935
|
+
"mode": "100644"
|
|
936
|
+
},
|
|
937
|
+
{
|
|
938
|
+
"path": "tests/src/app/[stepId]/page.test.tsx",
|
|
939
|
+
"sha256": "918e1ac9c08355ae7c0f439a453473b498fae4c06784e8f73329cd852c38b17f",
|
|
940
|
+
"mode": "100644"
|
|
941
|
+
},
|
|
942
|
+
{
|
|
943
|
+
"path": "tests/src/app/layout.test.ts",
|
|
944
|
+
"sha256": "eb029712ff42ca281795631e90642d17afc12a341ce335398f52e2b3b3628a70",
|
|
945
|
+
"mode": "100644"
|
|
946
|
+
},
|
|
947
|
+
{
|
|
948
|
+
"path": "tests/src/components/FunnelFlow.test.tsx",
|
|
949
|
+
"sha256": "4103e9c0f12a744f37edd0aa3d86b3222a13d9fdc9894dfa4f1cb14e8f87ea33",
|
|
950
|
+
"mode": "100644"
|
|
951
|
+
},
|
|
952
|
+
{
|
|
953
|
+
"path": "tests/src/components/FunnelStepImage.test.ts",
|
|
954
|
+
"sha256": "bcd6ae93cc75554734bc3ade665c05571f6da8bfbfc580e991a4db21398fc9bb",
|
|
955
|
+
"mode": "100644"
|
|
956
|
+
},
|
|
957
|
+
{
|
|
958
|
+
"path": "tests/src/config/billing.plans.test.ts",
|
|
959
|
+
"sha256": "f91727fc8cbfe09c7aeb48231d0a8f816e87b464d9df4cdca32ac03d95d72c4d",
|
|
960
|
+
"mode": "100644"
|
|
961
|
+
},
|
|
962
|
+
{
|
|
963
|
+
"path": "tests/src/config/experiments.test.ts",
|
|
964
|
+
"sha256": "b50890b91b7bcafd38d61794be56346e882884262140006545b6779038163ef1",
|
|
965
|
+
"mode": "100644"
|
|
966
|
+
},
|
|
967
|
+
{
|
|
968
|
+
"path": "tests/src/config/funnel.manifest.test.ts",
|
|
969
|
+
"sha256": "3fac92396bb0af26be2a9fc2253fd0aad14c89eb94e9a4f08ba720d8411479b6",
|
|
970
|
+
"mode": "100644"
|
|
971
|
+
},
|
|
972
|
+
{
|
|
973
|
+
"path": "tests/src/contract/funnel-project.validation.test.ts",
|
|
974
|
+
"sha256": "9fdbce6320c8f47e5fc1318a61a7272bcfa1a0258e4daff5c47954cba3576176",
|
|
975
|
+
"mode": "100644"
|
|
976
|
+
},
|
|
977
|
+
{
|
|
978
|
+
"path": "tests/src/contract/golden/golden-fixtures.test.ts",
|
|
979
|
+
"sha256": "bd047674fd622ce9ae98cafa71500c36470ff824dec4b5e41000fd89991dc003",
|
|
980
|
+
"mode": "100644"
|
|
981
|
+
},
|
|
982
|
+
{
|
|
983
|
+
"path": "tests/src/contract/validate-funnel.cli.test.ts",
|
|
984
|
+
"sha256": "062c9f41ecfcb9987393b808a82ca79bba64cd60fa37f2b688b5920ee811d12b",
|
|
985
|
+
"mode": "100644"
|
|
986
|
+
},
|
|
987
|
+
{
|
|
988
|
+
"path": "tests/src/runtime/checkout-runtime-config.test.ts",
|
|
989
|
+
"sha256": "32813bd1ba1140c7b43032987285ca021122a87f1f41ac3eb0930d5082020fc8",
|
|
990
|
+
"mode": "100644"
|
|
991
|
+
},
|
|
992
|
+
{
|
|
993
|
+
"path": "tests/src/runtime/funnel-runtime.test.ts",
|
|
994
|
+
"sha256": "04b9ed90eb7cbfeec61255f170e46267670e82d33a82e55a24c6b48ddb477552",
|
|
995
|
+
"mode": "100644"
|
|
996
|
+
},
|
|
997
|
+
{
|
|
998
|
+
"path": "tests/src/runtime/step-content-context.test.ts",
|
|
999
|
+
"sha256": "009ef412a765e623c4f6ea9961c5f226737ffcf698584f44ea6d5a445976fa89",
|
|
1000
|
+
"mode": "100644"
|
|
1001
|
+
},
|
|
1002
|
+
{
|
|
1003
|
+
"path": "tests/src/runtime/use-funnel-flow-controller.integration.test.ts",
|
|
1004
|
+
"sha256": "e55ac3f0c3ab17fb937655c7a7d8716c083960559ae136059659cdb502342214",
|
|
1005
|
+
"mode": "100644"
|
|
1006
|
+
},
|
|
1007
|
+
{
|
|
1008
|
+
"path": "tests/src/runtime/use-funnel-flow-controller.test.ts",
|
|
1009
|
+
"sha256": "45d3405c0306c08889feff8708ae52ec3c65a8a2d2cf88be9baabf999d2bd754",
|
|
1010
|
+
"mode": "100644"
|
|
1011
|
+
},
|
|
1012
|
+
{
|
|
1013
|
+
"path": "tests/src/steps/paywall-checkout-options.test.ts",
|
|
1014
|
+
"sha256": "506d615b3603494668c84aac648bea645f99a049bda4ab2ea8484a24d570d08f",
|
|
1015
|
+
"mode": "100644"
|
|
1016
|
+
},
|
|
1017
|
+
{
|
|
1018
|
+
"path": "tests/src/steps/shared-header-contract.test.ts",
|
|
1019
|
+
"sha256": "085853a4dcc4d223112cd9985683f0652834101a5b89b86a316d6d824761f368",
|
|
1020
|
+
"mode": "100644"
|
|
1021
|
+
},
|
|
1022
|
+
{
|
|
1023
|
+
"path": "tests/src/steps/step-01.test.ts",
|
|
1024
|
+
"sha256": "08c132d7027760196254cdfb6c49881e3bfefffaec518d647a4ce98e58b7328d",
|
|
1025
|
+
"mode": "100644"
|
|
1026
|
+
},
|
|
1027
|
+
{
|
|
1028
|
+
"path": "tests/src/steps/step-02.test.ts",
|
|
1029
|
+
"sha256": "1ce11d76ff8e63002bd2ad1217df0edbdca71f0827768b378ab741fbf00813c4",
|
|
1030
|
+
"mode": "100644"
|
|
1031
|
+
},
|
|
1032
|
+
{
|
|
1033
|
+
"path": "tests/src/steps/step-03.test.ts",
|
|
1034
|
+
"sha256": "a968a15cef20baa311692d31b157331966a8081b0d76039c8423500c6ac81e9e",
|
|
1035
|
+
"mode": "100644"
|
|
1036
|
+
},
|
|
1037
|
+
{
|
|
1038
|
+
"path": "tests/src/steps/step-04.test.ts",
|
|
1039
|
+
"sha256": "bb5e5d52c8383800cce684f9571c3b6d45b4bf55aef6a1c76d3a211fe8e5880f",
|
|
1040
|
+
"mode": "100644"
|
|
1041
|
+
},
|
|
1042
|
+
{
|
|
1043
|
+
"path": "tests/src/steps/step-31-email-capture.test.ts",
|
|
1044
|
+
"sha256": "1dfff79c354b803205fc25546a1713b1a410a814ab96cc5d33f4b5120448b01f",
|
|
1045
|
+
"mode": "100644"
|
|
1046
|
+
},
|
|
1047
|
+
{
|
|
1048
|
+
"path": "tests/src/steps/step-32-paywall.test.ts",
|
|
1049
|
+
"sha256": "fbef52dcd2af543631e2c9dbe328a5421411fd14d72864726ecd3a7fdd0bae3d",
|
|
1050
|
+
"mode": "100644"
|
|
1051
|
+
},
|
|
1052
|
+
{
|
|
1053
|
+
"path": "tests/src/steps/step-33-subscription-started.test.ts",
|
|
1054
|
+
"sha256": "64795d72a03b0ede1a6d42f9fcf575eadb88eb170266f1aa418ce966d0dc57b7",
|
|
1055
|
+
"mode": "100644"
|
|
1056
|
+
},
|
|
1057
|
+
{
|
|
1058
|
+
"path": "tests/src/steps/step-34-upsell-form.test.ts",
|
|
1059
|
+
"sha256": "2e8049ae61d9927af6270e0107c67573a21108775a188b397525d1d9c7250890",
|
|
1060
|
+
"mode": "100644"
|
|
1061
|
+
},
|
|
1062
|
+
{
|
|
1063
|
+
"path": "tests/src/steps/step-image-migration.test.ts",
|
|
1064
|
+
"sha256": "177f1e8ef5724fbd9fc58688ee440aed7bd75b472424a95054f87cc95ffa3856",
|
|
1065
|
+
"mode": "100644"
|
|
1066
|
+
},
|
|
1067
1067
|
{
|
|
1068
1068
|
"path": "tsconfig.json",
|
|
1069
1069
|
"sha256": "d8886cd69d1895576e821ca1c1c8fc2d6e75b9741390b3a3a57b123f18695be3",
|
|
@@ -17,7 +17,7 @@ Supported read versions: `1`, `2`, `3`. Authoring and publish target version `3`
|
|
|
17
17
|
|
|
18
18
|
### Package release order
|
|
19
19
|
|
|
20
|
-
Release `@funnelsgrove/runtime` `0.1.
|
|
20
|
+
Release `@funnelsgrove/runtime` `0.1.62` first, then `@funnelsgrove/analytics` `0.1.39`, then `@funnelsgrove/payments` `0.1.56`. Deploy the API and funnel template, then confirm production `/health` reports the new docs identity. Only then publish `@funnelsgrove/cli` `0.1.35`. Publishing packages and deploying production remain separately approved operational actions.
|
|
21
21
|
<!-- funnelsgrove:generated:end contract-v3/migration/step-contract-v3 -->
|
|
22
22
|
|
|
23
23
|
## Version-last policy
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
"name": "funnel-template",
|
|
9
9
|
"version": "0.1.0",
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@funnelsgrove/analytics": "^0.1.
|
|
12
|
-
"@funnelsgrove/payments": "^0.1.
|
|
13
|
-
"@funnelsgrove/runtime": "^0.1.
|
|
11
|
+
"@funnelsgrove/analytics": "^0.1.39",
|
|
12
|
+
"@funnelsgrove/payments": "^0.1.56",
|
|
13
|
+
"@funnelsgrove/runtime": "^0.1.62",
|
|
14
14
|
"@stripe/react-stripe-js": "^5.6.0",
|
|
15
15
|
"@stripe/stripe-js": "^8.7.0",
|
|
16
16
|
"lucide-react": "^0.553.0",
|
|
@@ -891,17 +891,17 @@
|
|
|
891
891
|
}
|
|
892
892
|
},
|
|
893
893
|
"node_modules/@funnelsgrove/analytics": {
|
|
894
|
-
"version": "0.1.
|
|
895
|
-
"resolved": "https://registry.npmjs.org/@funnelsgrove/analytics/-/analytics-0.1.
|
|
896
|
-
"integrity": "sha512-
|
|
894
|
+
"version": "0.1.39",
|
|
895
|
+
"resolved": "https://registry.npmjs.org/@funnelsgrove/analytics/-/analytics-0.1.39.tgz",
|
|
896
|
+
"integrity": "sha512-c7cBRHrq7FYOJLPJWCRH778ccWLAIK+4ArgD9xrjwSOcHBHeBpt87DMMtvL6vnD/kPSJIu4oLucD3eF3CZ900g==",
|
|
897
897
|
"dependencies": {
|
|
898
|
-
"@funnelsgrove/runtime": "0.1.
|
|
898
|
+
"@funnelsgrove/runtime": "0.1.62"
|
|
899
899
|
}
|
|
900
900
|
},
|
|
901
901
|
"node_modules/@funnelsgrove/payments": {
|
|
902
|
-
"version": "0.1.
|
|
903
|
-
"resolved": "https://registry.npmjs.org/@funnelsgrove/payments/-/payments-0.1.
|
|
904
|
-
"integrity": "sha512-
|
|
902
|
+
"version": "0.1.56",
|
|
903
|
+
"resolved": "https://registry.npmjs.org/@funnelsgrove/payments/-/payments-0.1.56.tgz",
|
|
904
|
+
"integrity": "sha512-3I+LlKKPOJOc/cL2NeqENyFrXiQSjtHbtqXbMRAYoxFK1Zrt3z8kkCq5JPDzOfD/In5xOaDUnxorVuuMXMvXog==",
|
|
905
905
|
"dependencies": {
|
|
906
906
|
"@funnelsgrove/analytics": "^0.1.28",
|
|
907
907
|
"@funnelsgrove/runtime": "^0.1.54",
|
|
@@ -913,9 +913,9 @@
|
|
|
913
913
|
}
|
|
914
914
|
},
|
|
915
915
|
"node_modules/@funnelsgrove/runtime": {
|
|
916
|
-
"version": "0.1.
|
|
917
|
-
"resolved": "https://registry.npmjs.org/@funnelsgrove/runtime/-/runtime-0.1.
|
|
918
|
-
"integrity": "sha512-
|
|
916
|
+
"version": "0.1.62",
|
|
917
|
+
"resolved": "https://registry.npmjs.org/@funnelsgrove/runtime/-/runtime-0.1.62.tgz",
|
|
918
|
+
"integrity": "sha512-S27kA3f7Y30CsqNxajcGwfkdyz19UOlWtjlqYLiM8Mn0HzJoyxGpU4xpMopROqrpArhmy/S9dzvF250pSpgeBw==",
|
|
919
919
|
"dependencies": {
|
|
920
920
|
"posthog-js": "^1.369.2",
|
|
921
921
|
"react": "19.2.3",
|
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
"validate:funnel": "vite-node --config src/contract/funnel-validator.vite.config.ts src/contract/validate-funnel.cli.ts"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@funnelsgrove/analytics": "^0.1.
|
|
16
|
-
"@funnelsgrove/payments": "^0.1.
|
|
17
|
-
"@funnelsgrove/runtime": "^0.1.
|
|
15
|
+
"@funnelsgrove/analytics": "^0.1.39",
|
|
16
|
+
"@funnelsgrove/payments": "^0.1.56",
|
|
17
|
+
"@funnelsgrove/runtime": "^0.1.62",
|
|
18
18
|
"@stripe/react-stripe-js": "^5.6.0",
|
|
19
19
|
"@stripe/stripe-js": "^8.7.0",
|
|
20
20
|
"lucide-react": "^0.553.0",
|
|
Binary file
|
|
@@ -463,7 +463,7 @@ export function StepPaywall({
|
|
|
463
463
|
return;
|
|
464
464
|
}
|
|
465
465
|
|
|
466
|
-
const readyClientSecret = await checkoutSession.prepareCardCheckout();
|
|
466
|
+
const readyClientSecret = await checkoutSession.prepareCardCheckout({ checkoutStartSource: 'checkout_render' });
|
|
467
467
|
if (readyClientSecret) {
|
|
468
468
|
setCheckoutDialogOpen(true);
|
|
469
469
|
}
|
|
@@ -510,7 +510,7 @@ export function StepPaywall({
|
|
|
510
510
|
}
|
|
511
511
|
|
|
512
512
|
const readyClientSecret =
|
|
513
|
-
checkoutSession.activeClientSecret ?? await checkoutSession.prepareCardCheckout();
|
|
513
|
+
checkoutSession.activeClientSecret ?? await checkoutSession.prepareCardCheckout({ checkoutStartSource: 'checkout_render' });
|
|
514
514
|
if (readyClientSecret) {
|
|
515
515
|
setCheckoutDialogOpen(true);
|
|
516
516
|
}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
// PLAN_STEP_PLACEHOLDER_ID:subscription-started
|
|
2
2
|
'use client';
|
|
3
3
|
|
|
4
|
-
import { useEffect } from 'react';
|
|
5
|
-
import { publicAnalyticsSdk } from '@funnelsgrove/analytics';
|
|
6
4
|
import {
|
|
7
5
|
SubscriptionHandoffScreen,
|
|
8
6
|
usePreviewStepLocalizedContent,
|
|
@@ -11,7 +9,6 @@ import {
|
|
|
11
9
|
} from '@funnelsgrove/runtime';
|
|
12
10
|
import { getStepContentLocale } from '@/runtime/step-content-context';
|
|
13
11
|
import { subscriptionStartedContent } from '@/steps/content/subscription-started.content';
|
|
14
|
-
import { funnelManifest } from '@/config/funnel.manifest';
|
|
15
12
|
|
|
16
13
|
export const stepSubscriptionStartedId = 'subscription-started';
|
|
17
14
|
|
|
@@ -29,52 +26,13 @@ export const stepSubscriptionStarted: FunnelStepMeta = {
|
|
|
29
26
|
};
|
|
30
27
|
|
|
31
28
|
export function StepSubscriptionStarted() {
|
|
32
|
-
const {
|
|
29
|
+
const { attributes } = useFunnel();
|
|
33
30
|
const content = usePreviewStepLocalizedContent(
|
|
34
31
|
stepSubscriptionStartedId,
|
|
35
32
|
subscriptionStartedContent,
|
|
36
33
|
getStepContentLocale(attributes),
|
|
37
34
|
);
|
|
38
35
|
|
|
39
|
-
useEffect(() => {
|
|
40
|
-
if (typeof window === 'undefined') {
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
const searchParams = new URLSearchParams(window.location.search);
|
|
45
|
-
const paymentIntent = searchParams.get('payment_intent');
|
|
46
|
-
const redirectStatus = searchParams.get('redirect_status');
|
|
47
|
-
if (!paymentIntent || !redirectStatus) {
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
const dedupeKey = `app-deals:payment-intent:${paymentIntent}`;
|
|
52
|
-
if (window.sessionStorage.getItem(dedupeKey) === '1') {
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
window.sessionStorage.setItem(dedupeKey, '1');
|
|
56
|
-
|
|
57
|
-
const eventInput = {
|
|
58
|
-
stepId: stepSubscriptionStartedId,
|
|
59
|
-
stepName: stepSubscriptionStarted.name || stepSubscriptionStarted.title,
|
|
60
|
-
stepType: stepSubscriptionStarted.type,
|
|
61
|
-
stepContractVersion: funnelManifest.stepContractVersion,
|
|
62
|
-
metadata: {
|
|
63
|
-
source: searchParams.get('source') || null,
|
|
64
|
-
paymentIntent,
|
|
65
|
-
redirectStatus,
|
|
66
|
-
user_id: searchParams.get('user_id') || null,
|
|
67
|
-
funnelUserId: user.id || null,
|
|
68
|
-
},
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
if (redirectStatus === 'succeeded') {
|
|
72
|
-
publicAnalyticsSdk.trackPaymentCheckoutSucceeded(eventInput);
|
|
73
|
-
} else {
|
|
74
|
-
publicAnalyticsSdk.trackPaymentCheckoutReturned(eventInput);
|
|
75
|
-
}
|
|
76
|
-
}, [user.id]);
|
|
77
|
-
|
|
78
36
|
return (
|
|
79
37
|
<SubscriptionHandoffScreen
|
|
80
38
|
stepId={stepSubscriptionStartedId}
|