@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.
Files changed (65) hide show
  1. package/dist/{api-B1yTKITq.js → api-DHSz_ruC.js} +1 -1
  2. package/dist/api-DVSjNleu.cjs +1 -0
  3. package/dist/cjs/form/index.js +1 -1
  4. package/dist/cjs/index.js +1 -1
  5. package/dist/cjs/plugins/create-experience/index.js +1 -1
  6. package/dist/cjs/plugins/dynamic-experiences/index.js +1 -1
  7. package/dist/docs/actions.md +58 -0
  8. package/dist/docs/api/index.md +32 -0
  9. package/dist/docs/api-keys.md +33 -0
  10. package/dist/docs/conditions.md +52 -0
  11. package/dist/docs/experiences.md +33 -0
  12. package/dist/docs/features.md +51 -0
  13. package/dist/docs/fields.md +70 -0
  14. package/dist/docs/flow-builder/building-flows.md +61 -0
  15. package/dist/docs/flow-builder/condition-builder.md +54 -0
  16. package/dist/docs/flow-builder/keyboard-shortcuts.md +66 -0
  17. package/dist/docs/flow-builder/nodes.md +43 -0
  18. package/dist/docs/flow-builder/overview.md +43 -0
  19. package/dist/docs/index.md +79 -0
  20. package/dist/docs/pickedql/data-sources.md +39 -0
  21. package/dist/docs/pickedql/dimensions.md +23 -0
  22. package/dist/docs/pickedql/examples.md +165 -0
  23. package/dist/docs/pickedql/filtering.md +31 -0
  24. package/dist/docs/pickedql/index.md +34 -0
  25. package/dist/docs/pickedql/schema.md +95 -0
  26. package/dist/docs/pickedql/virtual-functions.md +84 -0
  27. package/dist/docs/projects.md +30 -0
  28. package/dist/docs/reference/index.md +11 -0
  29. package/dist/docs/reports.md +11 -0
  30. package/dist/docs/sdk/actions.md +7 -0
  31. package/dist/docs/sdk/conditions.md +131 -0
  32. package/dist/docs/sdk/content-security-policy.md +31 -0
  33. package/dist/docs/sdk/experiences.md +41 -0
  34. package/dist/docs/sdk/features.md +213 -0
  35. package/dist/docs/sdk/fields.md +263 -0
  36. package/dist/docs/sdk/index.md +74 -0
  37. package/dist/docs/sdk/plugins/create-experience.md +133 -0
  38. package/dist/docs/sdk/plugins/dynamic-experiences.md +59 -0
  39. package/dist/docs/sdk/plugins/index.md +9 -0
  40. package/dist/docs/sdk/plugins/window-object.md +20 -0
  41. package/dist/docs/sdk/predicates.md +113 -0
  42. package/dist/docs/sdk/steps.md +411 -0
  43. package/dist/docs/steps.md +35 -0
  44. package/dist/docs/team-management.md +40 -0
  45. package/dist/docs/tooling/chrome-extension.md +29 -0
  46. package/dist/docs/tooling/gtm-template.md +69 -0
  47. package/dist/docs/tooling/index.md +19 -0
  48. package/dist/docs/tooling/mcp.md +120 -0
  49. package/dist/docs/tooling/vite-plugin.md +82 -0
  50. package/dist/docs/workspaces.md +35 -0
  51. package/dist/esm/form/index.js +2 -2
  52. package/dist/esm/index.js +1 -1
  53. package/dist/esm/plugins/create-experience/index.js +1 -1
  54. package/dist/esm/plugins/dynamic-experiences/index.js +11 -2
  55. package/dist/types/entities/step/step.d.ts +1 -1
  56. package/dist/types/entities/step/step.d.ts.map +1 -1
  57. package/dist/types/form/create-field-evaluator.d.ts +5 -5
  58. package/dist/types/form/create-field-evaluator.d.ts.map +1 -1
  59. package/dist/types/form/create-form.d.ts +7 -7
  60. package/dist/types/form/create-form.d.ts.map +1 -1
  61. package/dist/types/plugins/dynamic-experiences/plugin.d.ts.map +1 -1
  62. package/dist/types/plugins/dynamic-experiences/types.d.ts +9 -1
  63. package/dist/types/plugins/dynamic-experiences/types.d.ts.map +1 -1
  64. package/package.json +2 -2
  65. 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.
@@ -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
- fieldIds: n,
69
+ fieldKeys: n,
70
70
  staged: i,
71
71
  committed: e.responses.getAllStore
72
72
  },
73
- effect: r(async ({ allFields: t, fieldIds: n, staged: r, committed: i }) => await p(e, t.filter((e) => n.includes(e.id)), { responses: {
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-B1yTKITq.js";
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";
@@ -102,7 +102,7 @@ var t = {
102
102
  id: this.id,
103
103
  key: this.key,
104
104
  name: this.name,
105
- fieldIds: this.fields.map((e) => e.id)
105
+ fieldKeys: this.fields.map((e) => e.key)
106
106
  });
107
107
  }
108
108
  };
@@ -1,5 +1,5 @@
1
1
  import "../../../logger-6z_gb4rA.js";
2
- import { i as e, t } from "../../../api-B1yTKITq.js";
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)) for (let n of t.steps) e.registerStep(n);
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);
@@ -4,7 +4,7 @@ export interface ExperienceStep {
4
4
  id: string;
5
5
  key: string;
6
6
  name: string;
7
- fieldIds: string[];
7
+ fieldKeys: string[];
8
8
  layoutName?: string | null;
9
9
  }
10
10
  declare const createStepIndexFactory: () => {
@@ -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,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,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"}
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 IDs.
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 IDs change (e.g. A step is entered)
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 fieldIds - Store of field IDs to evaluate.
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, fieldIdsStore, stagedStore)
21
+ * const { fieldsStore } = createFieldEvaluator(client, fieldKeysStore, stagedStore)
22
22
  * ```
23
23
  */
24
- export declare function createFieldEvaluator(client: Picked, fieldIds: Store<string[]>, stagedValuesStore: StoreWritable<Record<string, FieldValue>>): {
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,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,EACzB,iBAAiB,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,GAC3D;IAAE,WAAW,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAwCjC"}
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<TFieldIds extends string = string> {
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<TFieldIds>) => () => void;
50
+ onBeforeSubmit: (callback: SubmitCallback<TFieldKeys>) => () => void;
51
51
  /** Register callbacks to run on successful form submission. Returns unsubscribe. */
52
- onSuccess: (callback: SuccessCallback<TFieldIds>) => () => void;
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 IDs.
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[]>} fieldIds - Reactive store of field IDs that belong to this form.
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
- * $fieldIds,
92
+ * $fieldKeys,
93
93
  * )
94
94
  * ```
95
95
  */
96
- export declare function createForm(deps: CreateFormDeps, formId: string, title: Store<string>, fieldIds: Store<string[]>): FormInstance;
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,SAAS,SAAS,MAAM,GAAG,MAAM;IAC7D,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,SAAS,CAAC,KAAK,MAAM,IAAI,CAAA;QACnE,oFAAoF;QACpF,SAAS,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC,SAAS,CAAC,KAAK,MAAM,IAAI,CAAA;QAC/D,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,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,GACxB,YAAY,CAoLd"}
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;AAmUhB;;;;;;;;;;;;;;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"}
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: ExperienceStep[];
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,cAAc,EAAE,CAAA;IACvB,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"}
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.55",
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",
@@ -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}});