@picked/client 0.0.55 → 0.0.56-next.2
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/{api-B1yTKITq.js → api-DHSz_ruC.js} +1 -1
- package/dist/api-DVSjNleu.cjs +1 -0
- package/dist/cjs/form/index.js +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/plugins/create-experience/index.js +1 -1
- package/dist/cjs/plugins/dynamic-experiences/index.js +1 -1
- package/dist/docs/actions.md +58 -0
- package/dist/docs/api/index.md +32 -0
- package/dist/docs/api-keys.md +33 -0
- package/dist/docs/conditions.md +52 -0
- package/dist/docs/experiences.md +33 -0
- package/dist/docs/features.md +51 -0
- package/dist/docs/fields.md +70 -0
- package/dist/docs/flow-builder/building-flows.md +61 -0
- package/dist/docs/flow-builder/condition-builder.md +54 -0
- package/dist/docs/flow-builder/keyboard-shortcuts.md +66 -0
- package/dist/docs/flow-builder/nodes.md +43 -0
- package/dist/docs/flow-builder/overview.md +43 -0
- package/dist/docs/index.md +79 -0
- package/dist/docs/pickedql/data-sources.md +39 -0
- package/dist/docs/pickedql/dimensions.md +23 -0
- package/dist/docs/pickedql/examples.md +165 -0
- package/dist/docs/pickedql/filtering.md +31 -0
- package/dist/docs/pickedql/index.md +34 -0
- package/dist/docs/pickedql/schema.md +95 -0
- package/dist/docs/pickedql/virtual-functions.md +84 -0
- package/dist/docs/projects.md +30 -0
- package/dist/docs/reference/index.md +11 -0
- package/dist/docs/reports.md +11 -0
- package/dist/docs/sdk/actions.md +7 -0
- package/dist/docs/sdk/conditions.md +131 -0
- package/dist/docs/sdk/content-security-policy.md +31 -0
- package/dist/docs/sdk/experiences.md +41 -0
- package/dist/docs/sdk/features.md +213 -0
- package/dist/docs/sdk/fields.md +263 -0
- package/dist/docs/sdk/index.md +74 -0
- package/dist/docs/sdk/plugins/create-experience.md +133 -0
- package/dist/docs/sdk/plugins/dynamic-experiences.md +59 -0
- package/dist/docs/sdk/plugins/index.md +9 -0
- package/dist/docs/sdk/plugins/window-object.md +20 -0
- package/dist/docs/sdk/predicates.md +113 -0
- package/dist/docs/sdk/steps.md +411 -0
- package/dist/docs/steps.md +35 -0
- package/dist/docs/team-management.md +40 -0
- package/dist/docs/tooling/chrome-extension.md +29 -0
- package/dist/docs/tooling/gtm-template.md +69 -0
- package/dist/docs/tooling/index.md +19 -0
- package/dist/docs/tooling/mcp.md +120 -0
- package/dist/docs/tooling/vite-plugin.md +82 -0
- package/dist/docs/workspaces.md +35 -0
- package/dist/esm/form/index.js +2 -2
- package/dist/esm/index.js +1 -1
- package/dist/esm/plugins/create-experience/index.js +1 -1
- package/dist/esm/plugins/dynamic-experiences/index.js +11 -2
- package/dist/types/entities/step/step.d.ts +1 -1
- package/dist/types/entities/step/step.d.ts.map +1 -1
- package/dist/types/form/create-field-evaluator.d.ts +5 -5
- package/dist/types/form/create-field-evaluator.d.ts.map +1 -1
- package/dist/types/form/create-form.d.ts +7 -7
- package/dist/types/form/create-form.d.ts.map +1 -1
- package/dist/types/plugins/dynamic-experiences/plugin.d.ts.map +1 -1
- package/dist/types/plugins/dynamic-experiences/types.d.ts +9 -1
- package/dist/types/plugins/dynamic-experiences/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/api-DO5hnUsd.cjs +0 -1
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: docs
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# MCP server
|
|
6
|
+
|
|
7
|
+
Manage your Picked workspace from AI coding tools using the Model Context Protocol (MCP).
|
|
8
|
+
|
|
9
|
+
## Connecting
|
|
10
|
+
|
|
11
|
+
The server URL is `https://api.picked.app/mcp`.
|
|
12
|
+
|
|
13
|
+
### Claude Desktop
|
|
14
|
+
|
|
15
|
+
1. Open **Settings > Connectors > Add custom connector**
|
|
16
|
+
2. Set **Name** to `Picked` and **URL** to `https://api.picked.app/mcp`
|
|
17
|
+
3. Click **Connect** and complete the authorization prompt
|
|
18
|
+
|
|
19
|
+
### Project configuration (.mcp.json)
|
|
20
|
+
|
|
21
|
+
Add to your repository root. Works with Claude Code, Cursor, Windsurf, and other MCP-compatible tools.
|
|
22
|
+
|
|
23
|
+
:::code-group
|
|
24
|
+
|
|
25
|
+
```json [.mcp.json]
|
|
26
|
+
{
|
|
27
|
+
"mcpServers": {
|
|
28
|
+
"picked": {
|
|
29
|
+
"type": "http",
|
|
30
|
+
"url": "https://api.picked.app/mcp"
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
:::
|
|
37
|
+
|
|
38
|
+
### Cursor
|
|
39
|
+
|
|
40
|
+
Add to `.cursor/mcp.json` in your project root:
|
|
41
|
+
|
|
42
|
+
```json
|
|
43
|
+
{
|
|
44
|
+
"mcpServers": {
|
|
45
|
+
"picked": {
|
|
46
|
+
"type": "http",
|
|
47
|
+
"url": "https://api.picked.app/mcp"
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Available tools
|
|
54
|
+
|
|
55
|
+
### Discovery
|
|
56
|
+
|
|
57
|
+
| Tool | Description |
|
|
58
|
+
| ------------------------ | ------------------------------------------------------------ |
|
|
59
|
+
| `list_projects` | List organizations and projects |
|
|
60
|
+
| `get_workspace_overview` | Full workspace state |
|
|
61
|
+
| `get_schema_info` | Documentation for Picked concepts and data model |
|
|
62
|
+
| `get_picked_docs` | Fetch the complete Picked documentation (LLM-optimized text) |
|
|
63
|
+
|
|
64
|
+
### Experiences
|
|
65
|
+
|
|
66
|
+
| Tool | Description |
|
|
67
|
+
| ------------------------ | ----------------------------------------------------------------------------------------- |
|
|
68
|
+
| `create_experience` | Create an experience |
|
|
69
|
+
| `get_experience` | Get experience details including flow graph |
|
|
70
|
+
| `list_experiences` | List experiences |
|
|
71
|
+
| `update_experience_flow` | Atomically create, update, or delete steps, conditions, actions, fields, nodes, and edges |
|
|
72
|
+
|
|
73
|
+
### Steps, fields, conditions, and actions
|
|
74
|
+
|
|
75
|
+
| Tool | Description |
|
|
76
|
+
| ----------------------------------- | --------------- |
|
|
77
|
+
| `get_step` / `list_steps` | Read steps |
|
|
78
|
+
| `get_field` / `list_fields` | Read fields |
|
|
79
|
+
| `get_condition` / `list_conditions` | Read conditions |
|
|
80
|
+
| `get_action` / `list_actions` | Read actions |
|
|
81
|
+
|
|
82
|
+
### Features
|
|
83
|
+
|
|
84
|
+
| Tool | Description |
|
|
85
|
+
| ---------------- | -------------------------------------------------- |
|
|
86
|
+
| `create_feature` | Create a feature |
|
|
87
|
+
| `get_feature` | Get feature details |
|
|
88
|
+
| `list_features` | List features |
|
|
89
|
+
| `update_feature` | Update name, description, enabled state, or weight |
|
|
90
|
+
|
|
91
|
+
### Analytics
|
|
92
|
+
|
|
93
|
+
| Tool | Description |
|
|
94
|
+
| ---------------- | ---------------------------------------------------------------- |
|
|
95
|
+
| `query_pickedql` | Execute a PickedQL analytics query and return results as a table |
|
|
96
|
+
|
|
97
|
+
Use `get_schema_info` with topic `pickedql` to see available tables, virtual functions, and dimension columns before writing queries.
|
|
98
|
+
|
|
99
|
+
### Publishing
|
|
100
|
+
|
|
101
|
+
| Tool | Description |
|
|
102
|
+
| ------------------- | ---------------------------------------------- |
|
|
103
|
+
| `get_preview_url` | Generate a preview URL for unpublished changes |
|
|
104
|
+
| `publish_workspace` | Publish the workspace |
|
|
105
|
+
|
|
106
|
+
## Example prompts
|
|
107
|
+
|
|
108
|
+
- "List my Picked projects and show me what's configured"
|
|
109
|
+
- "Create a feature flag called 'new-checkout' enabled at 50% traffic"
|
|
110
|
+
- "Create an experience with a step that collects email addresses"
|
|
111
|
+
- "Show me control vs variant users by device for the last 30 days"
|
|
112
|
+
- "Generate a preview URL for my workspace on https://example.com"
|
|
113
|
+
|
|
114
|
+
## Tips
|
|
115
|
+
|
|
116
|
+
- Ask your agent to list your projects first, then explore your workspace to see what's configured.
|
|
117
|
+
- When building complex experiences, ask your agent about flow graphs and JSON Logic — it can look up the documentation for you.
|
|
118
|
+
- Experience flow updates are atomic — your agent can create steps, fields, nodes, and edges in a single operation.
|
|
119
|
+
- Preview your changes on your site before publishing to verify everything looks right.
|
|
120
|
+
- Ask your agent to query analytics data with PickedQL — it can look up the schema, write the SQL, and explain the results.
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: docs
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Vite Plugin
|
|
6
|
+
|
|
7
|
+
`@picked/vite-plugin-picked` integrates Picked into your Vite project. It fetches your project configuration at build time and injects it via Vite's `define`, eliminating the runtime API request. During development it also serves a launcher page for previewing experiences with feature overrides.
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
:::code-group
|
|
12
|
+
|
|
13
|
+
```bash [npm]
|
|
14
|
+
npm install @picked/vite-plugin-picked
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
```bash [pnpm]
|
|
18
|
+
pnpm add @picked/vite-plugin-picked
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
```bash [yarn]
|
|
22
|
+
yarn add @picked/vite-plugin-picked
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
:::
|
|
26
|
+
|
|
27
|
+
## Setup
|
|
28
|
+
|
|
29
|
+
Add the plugin to your `vite.config.ts`:
|
|
30
|
+
|
|
31
|
+
```typescript
|
|
32
|
+
import { defineConfig } from 'vite'
|
|
33
|
+
import { picked } from '@picked/vite-plugin-picked'
|
|
34
|
+
|
|
35
|
+
export default defineConfig({
|
|
36
|
+
plugins: [
|
|
37
|
+
picked({
|
|
38
|
+
projectId: 'your-project-id',
|
|
39
|
+
}),
|
|
40
|
+
],
|
|
41
|
+
})
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## How It Works
|
|
45
|
+
|
|
46
|
+
### Build-Time Config Injection
|
|
47
|
+
|
|
48
|
+
When Vite starts (both `dev` and `build`), the plugin:
|
|
49
|
+
|
|
50
|
+
1. Fetches your project configuration from the Picked API
|
|
51
|
+
2. Embeds the config directly into your bundle
|
|
52
|
+
3. The SDK reads the embedded config at runtime, skipping the network request
|
|
53
|
+
|
|
54
|
+
When a preview token is present at runtime, the SDK ignores the build-time config and fetches fresh data from the API.
|
|
55
|
+
|
|
56
|
+
### Dev Launcher
|
|
57
|
+
|
|
58
|
+
During development, the plugin serves an HTML page at `/` that lets you:
|
|
59
|
+
|
|
60
|
+
- See all features in your project with their current status
|
|
61
|
+
- Toggle features on/off for local testing
|
|
62
|
+
- Preview experiences with specific feature overrides
|
|
63
|
+
|
|
64
|
+
After the dev server starts, the launcher URL appears alongside Vite's native output:
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
➜ Picked: http://localhost:5173/
|
|
68
|
+
➜ Local: http://localhost:5173/
|
|
69
|
+
➜ Network: use --host to expose
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Options
|
|
73
|
+
|
|
74
|
+
| Option | Type | Default | Description |
|
|
75
|
+
| ---------------- | --------- | ---------------------------- | -------------------------------------------------------- |
|
|
76
|
+
| `projectId` | `string` | — | **Required.** Your Picked project ID. |
|
|
77
|
+
| `apiUrl` | `string` | `https://api.picked.app` | Custom API URL for self-hosted or local API instances. |
|
|
78
|
+
| `disableLauncher`| `boolean` | `false` | Disable the launcher page in both dev and build output. |
|
|
79
|
+
|
|
80
|
+
## Build Output
|
|
81
|
+
|
|
82
|
+
When building for production (`vite build`), the plugin emits an `index.html` file containing the launcher page (unless `disableLauncher` is set). This lets you deploy the launcher alongside your application for stakeholder previews.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: docs
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Workspaces
|
|
6
|
+
|
|
7
|
+
A workspace is a version of your project's configuration. Use workspaces to stage changes, preview them, and publish when ready.
|
|
8
|
+
|
|
9
|
+
## How workspaces work
|
|
10
|
+
|
|
11
|
+
Each project has a workspace that holds your experiences, features, and entity configurations. When you make changes in the dashboard — editing a flow, updating a feature, or modifying an entity — those changes exist in the workspace until you publish.
|
|
12
|
+
|
|
13
|
+
## Preview
|
|
14
|
+
|
|
15
|
+
Preview your workspace to see how changes look before publishing.
|
|
16
|
+
|
|
17
|
+
1. Click **Preview** in the workspace toolbar.
|
|
18
|
+
2. Enter the URL of your site.
|
|
19
|
+
3. Optionally override individual features — set each to **Default**, **On**, or **Off**.
|
|
20
|
+
4. Click **Open Preview**.
|
|
21
|
+
|
|
22
|
+
Your site opens in a new tab with the unpublished workspace applied. Preview uses query parameters to pass the workspace state to the SDK, so visitors on your live site are unaffected.
|
|
23
|
+
|
|
24
|
+
## Publish
|
|
25
|
+
|
|
26
|
+
Publishing creates an immutable snapshot of your workspace. Once published, the SDK serves the new configuration to visitors.
|
|
27
|
+
|
|
28
|
+
1. Click **Publish** in the workspace toolbar.
|
|
29
|
+
2. Confirm in the publish dialog.
|
|
30
|
+
|
|
31
|
+
The publish button is only enabled when there are unpublished changes. A status badge in the toolbar shows whether the workspace has unpublished changes or is up to date.
|
|
32
|
+
|
|
33
|
+
## Unpublished changes
|
|
34
|
+
|
|
35
|
+
The workspace tracks whether any changes have been made since the last publish. If you create or update an experience, feature, or entity after the last publish, the toolbar shows a warning badge indicating unpublished changes.
|
package/dist/esm/form/index.js
CHANGED
|
@@ -66,11 +66,11 @@ function m(e, n, i) {
|
|
|
66
66
|
let s = a([]), c = t({
|
|
67
67
|
source: {
|
|
68
68
|
allFields: e.fields.listStore,
|
|
69
|
-
|
|
69
|
+
fieldKeys: n,
|
|
70
70
|
staged: i,
|
|
71
71
|
committed: e.responses.getAllStore
|
|
72
72
|
},
|
|
73
|
-
effect: r(async ({ allFields: t,
|
|
73
|
+
effect: r(async ({ allFields: t, fieldKeys: n, staged: r, committed: i }) => await p(e, t.filter((e) => n.includes(e.key)), { responses: {
|
|
74
74
|
...i,
|
|
75
75
|
...r
|
|
76
76
|
} }))
|
package/dist/esm/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import { t as r } from "../logger-6z_gb4rA.js";
|
|
|
4
4
|
import { a as i, c as a, d as o, i as s, l as c, n as l, o as u, p as d, r as f, s as p, t as m, u as h } from "../supports-0XIfd4-R.js";
|
|
5
5
|
import { a as g, c as _, i as v, l as ee, n as te, o as ne, r as re, s as y } from "../experience-instance-DffMstSs.js";
|
|
6
6
|
import { i as ie, n as b, r as x, t as S } from "../storage-6Xk0uAxB.js";
|
|
7
|
-
import { n as ae, r as oe } from "../api-
|
|
7
|
+
import { n as ae, r as oe } from "../api-DHSz_ruC.js";
|
|
8
8
|
import { t as se } from "../id-CRqy981z.js";
|
|
9
9
|
import { attach as C, combine as w, createApi as T, createDomain as E, createEffect as D, createEvent as O, createStore as k, sample as A } from "effector";
|
|
10
10
|
import { createFactory as j, invoke as M } from "@withease/factories";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "../../../logger-6z_gb4rA.js";
|
|
2
|
-
import { i as e, t } from "../../../api-
|
|
2
|
+
import { i as e, t } from "../../../api-DHSz_ruC.js";
|
|
3
3
|
//#region src/plugins/dynamic-experiences/hash.ts
|
|
4
4
|
function n(e) {
|
|
5
5
|
let t = 2166136261;
|
|
@@ -37,7 +37,16 @@ function c(e, t) {
|
|
|
37
37
|
if (Array.isArray(t.fields)) for (let n of t.fields) e.registerField(n);
|
|
38
38
|
}
|
|
39
39
|
function l(e, t) {
|
|
40
|
-
if (Array.isArray(t.steps))
|
|
40
|
+
if (!Array.isArray(t.steps)) return;
|
|
41
|
+
let n = /* @__PURE__ */ new Map();
|
|
42
|
+
if (Array.isArray(t.fields)) for (let e of t.fields) n.set(e.id, e.key);
|
|
43
|
+
for (let r of t.steps) e.registerStep({
|
|
44
|
+
id: r.id,
|
|
45
|
+
key: r.key,
|
|
46
|
+
name: r.name,
|
|
47
|
+
fieldKeys: r.fieldIds.map((e) => n.get(e) ?? e),
|
|
48
|
+
layoutName: r.layoutName
|
|
49
|
+
});
|
|
41
50
|
}
|
|
42
51
|
function u(e, t) {
|
|
43
52
|
if (Array.isArray(t.experiences)) for (let n of t.experiences) s(e, n);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../../../../src/entities/step/step.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,OAAO,EAA2B,KAAK,KAAK,EAAE,MAAM,UAAU,CAAA;AAG9D,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAA;AAI3D,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,
|
|
1
|
+
{"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../../../../src/entities/step/step.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,OAAO,EAA2B,KAAK,KAAK,EAAE,MAAM,UAAU,CAAA;AAG9D,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAA;AAI3D,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B;AAGD,QAAA,MAAM,sBAAsB;qBAuBF,cAAc,KAAG,IAAI;kBAkBxB,cAAc,CAAC,IAAI,CAAC,KAAG,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;oBAcjD,cAAc,CAAC,KAAK,CAAC,KAAG,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;;;;;CAa3E,CAAA;AAEF;;;;;;;GAOG;AACH,wBAAgB,eAAe,IAAI,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAE3E;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,GAAG,IAAI,CAE/F"}
|
|
@@ -2,10 +2,10 @@ import { Store, StoreWritable } from 'effector';
|
|
|
2
2
|
import { Field, FieldValue } from '../entities/field/field';
|
|
3
3
|
import { Picked } from '../picked';
|
|
4
4
|
/**
|
|
5
|
-
* Creates a reactive store of evaluated fields for a given set of field
|
|
5
|
+
* Creates a reactive store of evaluated fields for a given set of field keys.
|
|
6
6
|
*
|
|
7
7
|
* Fields are re-evaluated whenever:
|
|
8
|
-
* - The available field
|
|
8
|
+
* - The available field keys change (e.g. A step is entered)
|
|
9
9
|
* - Any response is committed (options may depend on prior answers)
|
|
10
10
|
* - The global field registry changes (fields registered after init)
|
|
11
11
|
* - Staged values change (field visibility conditions may reference responses.*).
|
|
@@ -14,14 +14,14 @@ import { Picked } from '../picked';
|
|
|
14
14
|
* so visibility conditions see live in-session values rather than only committed responses.
|
|
15
15
|
*
|
|
16
16
|
* @param client - The Picked client instance.
|
|
17
|
-
* @param
|
|
17
|
+
* @param fieldKeys - Store of field keys to evaluate.
|
|
18
18
|
* @param stagedValuesStore - Store of in-progress field values not yet committed.
|
|
19
19
|
* @example
|
|
20
20
|
* ```typescript
|
|
21
|
-
* const { fieldsStore } = createFieldEvaluator(client,
|
|
21
|
+
* const { fieldsStore } = createFieldEvaluator(client, fieldKeysStore, stagedStore)
|
|
22
22
|
* ```
|
|
23
23
|
*/
|
|
24
|
-
export declare function createFieldEvaluator(client: Picked,
|
|
24
|
+
export declare function createFieldEvaluator(client: Picked, fieldKeys: Store<string[]>, stagedValuesStore: StoreWritable<Record<string, FieldValue>>): {
|
|
25
25
|
fieldsStore: Store<Field[]>;
|
|
26
26
|
};
|
|
27
27
|
//# sourceMappingURL=create-field-evaluator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-field-evaluator.d.ts","sourceRoot":"","sources":["../../../src/form/create-field-evaluator.ts"],"names":[],"mappings":"AAAA,8GAA8G;AAC9G,OAAO,EAA6C,KAAK,KAAK,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAA;AACpG,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAGvC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,
|
|
1
|
+
{"version":3,"file":"create-field-evaluator.d.ts","sourceRoot":"","sources":["../../../src/form/create-field-evaluator.ts"],"names":[],"mappings":"AAAA,8GAA8G;AAC9G,OAAO,EAA6C,KAAK,KAAK,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAA;AACpG,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAGvC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,EAC1B,iBAAiB,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,GAC3D;IAAE,WAAW,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAwCjC"}
|
|
@@ -35,7 +35,7 @@ export interface CreateFormDeps {
|
|
|
35
35
|
* Return type for createForm().
|
|
36
36
|
* Provides form handlers, reactive stores, and callback registration.
|
|
37
37
|
*/
|
|
38
|
-
export interface FormInstance<
|
|
38
|
+
export interface FormInstance<TFieldKeys extends string = string> {
|
|
39
39
|
/** Form element props (bind to a form element). */
|
|
40
40
|
form: {
|
|
41
41
|
/** HTML-safe attributes to spread onto a form element. */
|
|
@@ -47,9 +47,9 @@ export interface FormInstance<TFieldIds extends string = string> {
|
|
|
47
47
|
/** Reactive store indicating if form is currently submitting. */
|
|
48
48
|
submitting: Store<boolean>;
|
|
49
49
|
/** Register callbacks to transform/validate data before submission. Returns unsubscribe. */
|
|
50
|
-
onBeforeSubmit: (callback: SubmitCallback<
|
|
50
|
+
onBeforeSubmit: (callback: SubmitCallback<TFieldKeys>) => () => void;
|
|
51
51
|
/** Register callbacks to run on successful form submission. Returns unsubscribe. */
|
|
52
|
-
onSuccess: (callback: SuccessCallback<
|
|
52
|
+
onSuccess: (callback: SuccessCallback<TFieldKeys>) => () => void;
|
|
53
53
|
/** Register callbacks to run on form validation errors. Returns unsubscribe. */
|
|
54
54
|
onError: (callback: ErrorCallback) => () => void;
|
|
55
55
|
};
|
|
@@ -70,7 +70,7 @@ export interface FormInstance<TFieldIds extends string = string> {
|
|
|
70
70
|
*/
|
|
71
71
|
export declare function getEventValue(e: Event): FieldValue | undefined;
|
|
72
72
|
/**
|
|
73
|
-
* Creates a form instance tied to a set of field
|
|
73
|
+
* Creates a form instance tied to a set of field keys.
|
|
74
74
|
* Handles field evaluation, form submission, data transformation,
|
|
75
75
|
* validation, event bus tracking, and step navigation.
|
|
76
76
|
*
|
|
@@ -81,7 +81,7 @@ export declare function getEventValue(e: Event): FieldValue | undefined;
|
|
|
81
81
|
* @param {CreateFormDeps} deps - Client and experience instance injected by the framework wrapper.
|
|
82
82
|
* @param {string} formId - Unique identifier for this form instance.
|
|
83
83
|
* @param {Store<string>} title - Reactive store holding the form/step title.
|
|
84
|
-
* @param {Store<string[]>}
|
|
84
|
+
* @param {Store<string[]>} fieldKeys - Reactive store of field keys that belong to this form.
|
|
85
85
|
* @returns {FormInstance} A form instance with reactive field stores, submission handlers, and callback registration.
|
|
86
86
|
* @example
|
|
87
87
|
* ```ts
|
|
@@ -89,9 +89,9 @@ export declare function getEventValue(e: Event): FieldValue | undefined;
|
|
|
89
89
|
* { client, experienceInstance },
|
|
90
90
|
* 'lead-capture',
|
|
91
91
|
* $title,
|
|
92
|
-
* $
|
|
92
|
+
* $fieldKeys,
|
|
93
93
|
* )
|
|
94
94
|
* ```
|
|
95
95
|
*/
|
|
96
|
-
export declare function createForm(deps: CreateFormDeps, formId: string, title: Store<string>,
|
|
96
|
+
export declare function createForm(deps: CreateFormDeps, formId: string, title: Store<string>, fieldKeys: Store<string[]>): FormInstance;
|
|
97
97
|
//# sourceMappingURL=create-form.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-form.d.ts","sourceRoot":"","sources":["../../../src/form/create-form.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,KAAK,EAEX,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qDAAqD,CAAA;AAC7F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAGvC,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,4BAA4B,EACjC,KAAK,eAAe,EACrB,MAAM,0BAA0B,CAAA;AAEjC,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG;IAC9B,KAAK,EAAE,UAAU,GAAG,SAAS,CAAA;IAC7B,8DAA8D;IAC9D,KAAK,EAAE,eAAe,GAAG,SAAS,CAAA;IAClC,OAAO,EAAE,OAAO,CAAA;IAChB,4DAA4D;IAC5D,KAAK,EAAE;QACL,EAAE,EAAE,MAAM,CAAA;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,GAAG,EAAE,MAAM,CAAA;QACX,KAAK,EAAE,UAAU,GAAG,SAAS,CAAA;QAC7B,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAA;QACpC,QAAQ,EAAE,OAAO,CAAA;QACjB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;QAC/B,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAA;QAC3B,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAA;QAC5B,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAA;KAC3B,CAAA;CACF,CAAA;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,kBAAkB,EAAE,kBAAkB,CAAA;CACvC;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"create-form.d.ts","sourceRoot":"","sources":["../../../src/form/create-form.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,KAAK,EAEX,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qDAAqD,CAAA;AAC7F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAGvC,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,4BAA4B,EACjC,KAAK,eAAe,EACrB,MAAM,0BAA0B,CAAA;AAEjC,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG;IAC9B,KAAK,EAAE,UAAU,GAAG,SAAS,CAAA;IAC7B,8DAA8D;IAC9D,KAAK,EAAE,eAAe,GAAG,SAAS,CAAA;IAClC,OAAO,EAAE,OAAO,CAAA;IAChB,4DAA4D;IAC5D,KAAK,EAAE;QACL,EAAE,EAAE,MAAM,CAAA;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,GAAG,EAAE,MAAM,CAAA;QACX,KAAK,EAAE,UAAU,GAAG,SAAS,CAAA;QAC7B,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAA;QACpC,QAAQ,EAAE,OAAO,CAAA;QACjB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;QAC/B,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAA;QAC3B,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAA;QAC5B,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAA;KAC3B,CAAA;CACF,CAAA;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,kBAAkB,EAAE,kBAAkB,CAAA;CACvC;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY,CAAC,UAAU,SAAS,MAAM,GAAG,MAAM;IAC9D,mDAAmD;IACnD,IAAI,EAAE;QACJ,0DAA0D;QAC1D,KAAK,EAAE;YACL,QAAQ,EAAE,aAAa,CAAC,4BAA4B,CAAC,CAAA;SACtD,CAAA;QACD,6EAA6E;QAC7E,MAAM,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC,CAAA;QAChC,iEAAiE;QACjE,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;QAC1B,4FAA4F;QAC5F,cAAc,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,KAAK,MAAM,IAAI,CAAA;QACpE,oFAAoF;QACpF,SAAS,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,KAAK,MAAM,IAAI,CAAA;QAChE,gFAAgF;QAChF,OAAO,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,MAAM,IAAI,CAAA;KACjD,CAAA;IACD,+FAA+F;IAC/F,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAA;CAC3B;AAED;;;;;;;;;;;GAWG;AAEH,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,GAAG,UAAU,GAAG,SAAS,CAW9D;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EACpB,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,GACzB,YAAY,CAoLd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/plugins/dynamic-experiences/plugin.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAK1D,OAAO,KAAK,EACV,+BAA+B,EAC/B,mBAAmB,EACnB,aAAa,EAGd,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/plugins/dynamic-experiences/plugin.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAK1D,OAAO,KAAK,EACV,+BAA+B,EAC/B,mBAAmB,EACnB,aAAa,EAGd,MAAM,SAAS,CAAA;AAgVhB;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAmC/B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE,+BAA+B,GAAG,MAAM,CAgD1F"}
|
|
@@ -3,6 +3,14 @@ import { Field } from '../../entities/field/field';
|
|
|
3
3
|
import { ExperienceEdge, ExperienceNode, ExperienceTarget } from '../../entities/experience/experience';
|
|
4
4
|
import { Condition } from '../../entities/condition/condition';
|
|
5
5
|
import { LogicRule, LogicValue } from '../../logic-engine';
|
|
6
|
+
/**
|
|
7
|
+
* Wire-format step as returned by the Picked API. Matches {@link ExperienceStep}
|
|
8
|
+
* except that fields are still referenced by ID — the plugin resolves them to
|
|
9
|
+
* keys against `ProjectConfig.fields` at registration time.
|
|
10
|
+
*/
|
|
11
|
+
export type ApiExperienceStep = Omit<ExperienceStep, 'fieldKeys'> & {
|
|
12
|
+
fieldIds: string[];
|
|
13
|
+
};
|
|
6
14
|
export interface ProjectConfigFeature {
|
|
7
15
|
id: string;
|
|
8
16
|
name: string;
|
|
@@ -42,7 +50,7 @@ export interface ProjectConfig {
|
|
|
42
50
|
/** Experience definitions with steps and conditions referenced by ID. */
|
|
43
51
|
experiences: ProjectConfigExperience[];
|
|
44
52
|
/** Global step definitions shared across experiences. */
|
|
45
|
-
steps:
|
|
53
|
+
steps: ApiExperienceStep[];
|
|
46
54
|
/** Global field definitions shared across steps. */
|
|
47
55
|
fields: Field[];
|
|
48
56
|
/** Global condition definitions referenced by experience flow nodes. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/plugins/dynamic-experiences/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,gBAAgB,EACjB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAA;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAE/D,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAA;AAE9C;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,iBAAiB,EAAE,CAAA;IAC1B,KAAK,EAAE,cAAc,EAAE,CAAA;IACvB,2EAA2E;IAC3E,SAAS,EAAE,SAAS,GAAG,UAAU,CAAA;IACjC,oEAAoE;IACpE,cAAc,EAAE,SAAS,GAAG,UAAU,CAAA;IACtC,+CAA+C;IAC/C,OAAO,EAAE,gBAAgB,EAAE,CAAA;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,oBAAoB,EAAE,CAAA;IAChC,yEAAyE;IACzE,WAAW,EAAE,uBAAuB,EAAE,CAAA;IACtC,yDAAyD;IACzD,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/plugins/dynamic-experiences/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,gBAAgB,EACjB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAA;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAE/D;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,GAAG;IAClE,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB,CAAA;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAA;AAE9C;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,iBAAiB,EAAE,CAAA;IAC1B,KAAK,EAAE,cAAc,EAAE,CAAA;IACvB,2EAA2E;IAC3E,SAAS,EAAE,SAAS,GAAG,UAAU,CAAA;IACjC,oEAAoE;IACpE,cAAc,EAAE,SAAS,GAAG,UAAU,CAAA;IACtC,+CAA+C;IAC/C,OAAO,EAAE,gBAAgB,EAAE,CAAA;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,oBAAoB,EAAE,CAAA;IAChC,yEAAyE;IACzE,WAAW,EAAE,uBAAuB,EAAE,CAAA;IACtC,yDAAyD;IACzD,KAAK,EAAE,iBAAiB,EAAE,CAAA;IAC1B,oDAAoD;IACpD,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,wEAAwE;IACxE,UAAU,EAAE,SAAS,EAAE,CAAA;IACvB,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC1D;AAED,MAAM,WAAW,+BAA+B;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,aAAa,CAAA;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@picked/client",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.56-next.2",
|
|
4
4
|
"dependencies": {
|
|
5
5
|
"@withease/factories": "^1.0.5"
|
|
6
6
|
},
|
|
@@ -140,7 +140,7 @@
|
|
|
140
140
|
},
|
|
141
141
|
"private": false,
|
|
142
142
|
"scripts": {
|
|
143
|
-
"build": "vite build",
|
|
143
|
+
"build": "vite build && node scripts/copy-docs.js",
|
|
144
144
|
"build:docs": "pnpm typedoc",
|
|
145
145
|
"check": "pnpm type-check && pnpm lint && pnpm knip && pnpm jscpd",
|
|
146
146
|
"dev": "vite build --watch",
|
package/dist/api-DO5hnUsd.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e=`Picked-Client`,t=`Picked-Version`;function n(n,r){return{[e]:n,[t]:r}}var r=()=>`0.0.55`,i=`v1`;function a(e,t){return new URL(`/api/${i}/${t}`,e).toString()}function o(e){return{...n(`sdk`,r()),...e}}async function s(e,t,n){let r=a(e,t);return fetch(r,{headers:o(n)})}async function c(e,t,n,r){let i=a(e,t);return fetch(i,{method:`POST`,headers:{"Content-Type":`application/json`,...o(r)},body:JSON.stringify(n)})}Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return s}});
|