@funnelsgrove/cli 0.1.29 → 0.1.43
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/cli.d.ts +44 -0
- package/dist/cli.js +74 -24
- package/funnel-contract-compatibility.json +56 -56
- package/package.json +4 -3
- package/template_docs/.funnelsgrove-docs.json +7 -7
- package/template_docs/docs/funnelsgrove/START-HERE.md +4 -1
- package/template_docs/docs/funnelsgrove/contracts/analytics-events.md +4 -2
- package/template_docs/docs/funnelsgrove/contracts/payments.md +3 -1
- package/template_docs/docs/funnelsgrove/migrations/step-contract-v3.md +1 -1
- package/template_docs/docs/funnelsgrove/qa/analytics.md +3 -1
- package/template_docs/funnel-docs.config.json +1 -1
- package/template_scaffold/.funnelsgrove-docs.json +7 -7
- package/template_scaffold/.funnelsgrove-scaffold.json +159 -154
- package/template_scaffold/docs/funnelsgrove/START-HERE.md +4 -1
- package/template_scaffold/docs/funnelsgrove/contracts/analytics-events.md +4 -2
- package/template_scaffold/docs/funnelsgrove/contracts/payments.md +3 -1
- package/template_scaffold/docs/funnelsgrove/migrations/step-contract-v3.md +1 -1
- package/template_scaffold/docs/funnelsgrove/qa/analytics.md +3 -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} +29 -19
- 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/vercel.json +6 -0
- /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
|
@@ -24,7 +24,9 @@ Contract hash: `d761e91d5ac6ff9e72c6d49c5bcd014270912473a66f99c49d726c65998085cf
|
|
|
24
24
|
| `step_exited` | `step_exited` | `step_exit` | `any` | `any` | `controller` | `true` | `step-visit` | `funnelId`, `funnelVersionId`, `environment`, `stepContractVersion`, `stepId`, `stepName`, `stepType` |
|
|
25
25
|
| `step_started` | `step_started` | `step_start` | `any` | `any` | `controller` | `true` | `step-visit` | `funnelId`, `funnelVersionId`, `environment`, `stepContractVersion`, `stepId`, `stepName`, `stepType` |
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
Quiz completed counts each unique user who reaches a paywall step. `purchase_completed` remains trusted-server-only purchase verification and does not define Quiz completed. Browser terminal reach and `funnel_completed` remain lifecycle-only and are not purchase conversions.
|
|
28
|
+
|
|
29
|
+
The `purchase_completed` event is owned by `trusted-server` and is recorded only after the backend verifies a successful initial purchase. The separate `registration_completed` event remains owned by `trusted-server` for the later app-link claim. The `email_captured` event is owned by `transactional-server` and uses `logical-email-conversion` deduplication.
|
|
28
30
|
<!-- funnelsgrove:generated:end contract-v3/contract/analytics-events -->
|
|
29
31
|
|
|
30
32
|
## Ownership rules
|
|
@@ -34,7 +36,7 @@ The `purchase_completed` event is owned by `trusted-server` and is recorded only
|
|
|
34
36
|
- `submitEmailCapture` creates `email_captured` transactionally, then routes only after success.
|
|
35
37
|
- Named payment helpers emit checkout semantic events at real payment boundaries.
|
|
36
38
|
- The terminal helper owns funnel completion.
|
|
37
|
-
- A trusted backend owns `purchase_completed` after verifying an initial subscription or one-time payment; browser code never emits it
|
|
39
|
+
- A trusted backend owns `purchase_completed` after verifying an initial subscription or one-time payment; browser code never emits it. This purchase event is independent from the paywall-reach definition of Quiz completed.
|
|
38
40
|
- A separate trusted server claim owns `registration_completed` when the purchased subscription is later linked in the app.
|
|
39
41
|
- Provider adapters and the durable outbox own PostHog and server Meta delivery.
|
|
40
42
|
|
|
@@ -37,6 +37,8 @@ A paywall presents purchasable plans. A reveal, loading state, calculation, or
|
|
|
37
37
|
|
|
38
38
|
## Purchase completion separation
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
Quiz completed counts each unique user who reaches a paywall step. `purchase_completed` remains trusted-server-only purchase verification and does not define Quiz completed. Browser terminal reach and `funnel_completed` remain lifecycle-only and are not purchase conversions.
|
|
41
|
+
|
|
42
|
+
The canonical `subscription-started` route keeps its stable identity and remains the `purchase_completed` terminal type in contract v3. Only the trusted backend emits the purchase event after verifying an initial subscription or one-time payment; renewals, pending payments, and browser checkout returns do not qualify. `registration_completed` remains the later app-link conversion.
|
|
41
43
|
|
|
42
44
|
Before publishing, complete [paywall/checkout QA](../qa/paywall-checkout.md) and [publish QA](../qa/publish.md).
|
|
@@ -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.63` first, then `@funnelsgrove/analytics` `0.1.41`, then `@funnelsgrove/payments` `0.1.58`. Deploy the API and funnel template, then confirm production `/health` reports the new docs identity. Only then publish `@funnelsgrove/cli` `0.1.43`. 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
|
|
@@ -32,7 +32,9 @@ Contract hash: `d761e91d5ac6ff9e72c6d49c5bcd014270912473a66f99c49d726c65998085cf
|
|
|
32
32
|
- Choice steps save the exact stable ID shape before completion.
|
|
33
33
|
- Email success creates one server conversion; duplicate capture skips browser fanout; failure changes no state/lifecycle/route.
|
|
34
34
|
- Checkout helpers fire only at real boundaries with complete metadata and stable event IDs.
|
|
35
|
-
- Quiz completed
|
|
35
|
+
- Quiz completed counts each unique user who reaches a paywall step.
|
|
36
|
+
- `purchase_completed` remains trusted-server-only purchase verification and does not define Quiz completed.
|
|
37
|
+
- Browser terminal reach and `funnel_completed` remain lifecycle-only and are not purchase conversions.
|
|
36
38
|
- `registration_completed` remains the separate later app-link claim.
|
|
37
39
|
- Preview sends no API/provider analytics.
|
|
38
40
|
- No component sends PostHog or server Meta directly.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"bundleVersion": "2.0.
|
|
3
|
+
"bundleVersion": "2.0.31",
|
|
4
4
|
"stepContractVersion": 3,
|
|
5
5
|
"contractHash": "d761e91d5ac6ff9e72c6d49c5bcd014270912473a66f99c49d726c65998085cf",
|
|
6
6
|
"managedFiles": [
|
|
@@ -14,11 +14,11 @@
|
|
|
14
14
|
},
|
|
15
15
|
{
|
|
16
16
|
"path": "docs/funnelsgrove/START-HERE.md",
|
|
17
|
-
"sha256": "
|
|
17
|
+
"sha256": "ef7525739aa0cd5ea42906fca2ae6ca0327465e6939956f9567e3029148a0bd5"
|
|
18
18
|
},
|
|
19
19
|
{
|
|
20
20
|
"path": "docs/funnelsgrove/contracts/analytics-events.md",
|
|
21
|
-
"sha256": "
|
|
21
|
+
"sha256": "496ebab7c1fd00b40f9a5b29a5d3f8b6605549bf5927eb4280ccdc3023acd3c9"
|
|
22
22
|
},
|
|
23
23
|
{
|
|
24
24
|
"path": "docs/funnelsgrove/contracts/content-answers.md",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
},
|
|
31
31
|
{
|
|
32
32
|
"path": "docs/funnelsgrove/contracts/payments.md",
|
|
33
|
-
"sha256": "
|
|
33
|
+
"sha256": "3614a2c6e4d48411c9eba21400ce2699a49782d802aa08acc72335ed4ef2421d"
|
|
34
34
|
},
|
|
35
35
|
{
|
|
36
36
|
"path": "docs/funnelsgrove/contracts/step-metadata.md",
|
|
@@ -38,11 +38,11 @@
|
|
|
38
38
|
},
|
|
39
39
|
{
|
|
40
40
|
"path": "docs/funnelsgrove/migrations/step-contract-v3.md",
|
|
41
|
-
"sha256": "
|
|
41
|
+
"sha256": "ba0ca2563f34ffb8ab23da1600ffbbaa225e9aa1fb2e87b5404a356edd2ae0fc"
|
|
42
42
|
},
|
|
43
43
|
{
|
|
44
44
|
"path": "docs/funnelsgrove/qa/analytics.md",
|
|
45
|
-
"sha256": "
|
|
45
|
+
"sha256": "1a42fcb7fccfb35f41fe2df297aadd67d6ea86fa3a9de2960c861664f32cf9ab"
|
|
46
46
|
},
|
|
47
47
|
{
|
|
48
48
|
"path": "docs/funnelsgrove/qa/local.md",
|
|
@@ -138,7 +138,7 @@
|
|
|
138
138
|
},
|
|
139
139
|
{
|
|
140
140
|
"path": "funnel-docs.config.json",
|
|
141
|
-
"sha256": "
|
|
141
|
+
"sha256": "b5ff393f6429e787a599fe1b3a1a9e3e06346de5654acb9094741ee0089206f8"
|
|
142
142
|
}
|
|
143
143
|
]
|
|
144
144
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"sourceTreeHash": "
|
|
3
|
+
"sourceTreeHash": "248b8b8dab9727597328fa39d488a5a015c985a6e8db0b1f8cf0da373fe325e5",
|
|
4
4
|
"stepContractVersion": 3,
|
|
5
|
-
"docsBundleVersion": "2.0.
|
|
5
|
+
"docsBundleVersion": "2.0.31",
|
|
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": "1ed236d8cef95a216c5def1abe7cdeee368c35363be3487ff0aaae0d61d98a81",
|
|
20
20
|
"mode": "100644"
|
|
21
21
|
},
|
|
22
22
|
{
|
|
@@ -71,12 +71,12 @@
|
|
|
71
71
|
},
|
|
72
72
|
{
|
|
73
73
|
"path": "docs/funnelsgrove/START-HERE.md",
|
|
74
|
-
"sha256": "
|
|
74
|
+
"sha256": "ef7525739aa0cd5ea42906fca2ae6ca0327465e6939956f9567e3029148a0bd5",
|
|
75
75
|
"mode": "100644"
|
|
76
76
|
},
|
|
77
77
|
{
|
|
78
78
|
"path": "docs/funnelsgrove/contracts/analytics-events.md",
|
|
79
|
-
"sha256": "
|
|
79
|
+
"sha256": "496ebab7c1fd00b40f9a5b29a5d3f8b6605549bf5927eb4280ccdc3023acd3c9",
|
|
80
80
|
"mode": "100644"
|
|
81
81
|
},
|
|
82
82
|
{
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
},
|
|
92
92
|
{
|
|
93
93
|
"path": "docs/funnelsgrove/contracts/payments.md",
|
|
94
|
-
"sha256": "
|
|
94
|
+
"sha256": "3614a2c6e4d48411c9eba21400ce2699a49782d802aa08acc72335ed4ef2421d",
|
|
95
95
|
"mode": "100644"
|
|
96
96
|
},
|
|
97
97
|
{
|
|
@@ -101,12 +101,12 @@
|
|
|
101
101
|
},
|
|
102
102
|
{
|
|
103
103
|
"path": "docs/funnelsgrove/migrations/step-contract-v3.md",
|
|
104
|
-
"sha256": "
|
|
104
|
+
"sha256": "ba0ca2563f34ffb8ab23da1600ffbbaa225e9aa1fb2e87b5404a356edd2ae0fc",
|
|
105
105
|
"mode": "100644"
|
|
106
106
|
},
|
|
107
107
|
{
|
|
108
108
|
"path": "docs/funnelsgrove/qa/analytics.md",
|
|
109
|
-
"sha256": "
|
|
109
|
+
"sha256": "1a42fcb7fccfb35f41fe2df297aadd67d6ea86fa3a9de2960c861664f32cf9ab",
|
|
110
110
|
"mode": "100644"
|
|
111
111
|
},
|
|
112
112
|
{
|
|
@@ -234,14 +234,9 @@
|
|
|
234
234
|
"sha256": "059cab3c5d3244a3695879763e6ca845e862850598b6c23a3c7a62a30b085954",
|
|
235
235
|
"mode": "100644"
|
|
236
236
|
},
|
|
237
|
-
{
|
|
238
|
-
"path": "funnel-agent-docs.test.ts",
|
|
239
|
-
"sha256": "ecf210609282fa186eaedbdea39e7ce226fbe5f76fded2b4d77a57b858f6713a",
|
|
240
|
-
"mode": "100644"
|
|
241
|
-
},
|
|
242
237
|
{
|
|
243
238
|
"path": "funnel-docs.config.json",
|
|
244
|
-
"sha256": "
|
|
239
|
+
"sha256": "b5ff393f6429e787a599fe1b3a1a9e3e06346de5654acb9094741ee0089206f8",
|
|
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": "1753c85db32177e3eb0341a0ff5c4b2d658924a10c156a94f2fc69fc3e678578",
|
|
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": "d116d70fb57dc62fff99e9aa673e423cc995e972c634453635fead6d19f02b77",
|
|
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,11 +924,156 @@
|
|
|
1064
924
|
"sha256": "9d776dca7729383f4b98156f82f9cd0a35be4e8efd903c14a7ffe10267cb1427",
|
|
1065
925
|
"mode": "100644"
|
|
1066
926
|
},
|
|
927
|
+
{
|
|
928
|
+
"path": "tests/funnel-agent-docs.test.ts",
|
|
929
|
+
"sha256": "050d253bcdd9de14d2310574faeaa58cfd06243ffc6f4246ad942b2063c9c4f5",
|
|
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",
|
|
1070
1070
|
"mode": "100644"
|
|
1071
1071
|
},
|
|
1072
|
+
{
|
|
1073
|
+
"path": "vercel.json",
|
|
1074
|
+
"sha256": "b2ca3677c797f6006864cf604eee0ad15713d2d2b5f8b8b8b6f74a683095f428",
|
|
1075
|
+
"mode": "100644"
|
|
1076
|
+
},
|
|
1072
1077
|
{
|
|
1073
1078
|
"path": "vitest.config.ts",
|
|
1074
1079
|
"sha256": "60019594865106f483d16e204d47e894fdc0f12d6c759a0d40a2b24af480117d",
|