@measured/puck 0.20.0-canary.93d525c5 → 0.20.0-canary.b2d0f01a

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/rsc.mjs CHANGED
@@ -1,10 +1,14 @@
1
1
  import {
2
2
  Render,
3
+ init_react_import,
3
4
  migrate,
4
5
  resolveAllData,
5
6
  transformProps,
6
7
  walkTree
7
- } from "./chunk-H6KSTNLT.mjs";
8
+ } from "./chunk-IP64IXIP.mjs";
9
+
10
+ // bundle/rsc.tsx
11
+ init_react_import();
8
12
  export {
9
13
  Render,
10
14
  migrate,
@@ -17,7 +17,7 @@ type DropZoneProps = {
17
17
 
18
18
  type FieldOption = {
19
19
  label: string;
20
- value: string | number | boolean;
20
+ value: string | number | boolean | undefined | null | object;
21
21
  };
22
22
  type FieldOptions = Array<FieldOption> | ReadonlyArray<FieldOption>;
23
23
  type BaseField = {
@@ -29,6 +29,7 @@ type BaseField = {
29
29
  type TextField = BaseField & {
30
30
  type: "text";
31
31
  placeholder?: string;
32
+ contentEditable?: boolean;
32
33
  };
33
34
  type NumberField = BaseField & {
34
35
  type: "number";
@@ -40,6 +41,7 @@ type NumberField = BaseField & {
40
41
  type TextareaField = BaseField & {
41
42
  type: "textarea";
42
43
  placeholder?: string;
44
+ contentEditable?: boolean;
43
45
  };
44
46
  type SelectField = BaseField & {
45
47
  type: "select";
@@ -117,6 +119,7 @@ type CustomFieldRender<Value extends any> = (props: {
117
119
  type CustomField<Value extends any> = BaseField & {
118
120
  type: "custom";
119
121
  render: CustomFieldRender<Value>;
122
+ contentEditable?: boolean;
120
123
  };
121
124
  type SlotField = BaseField & {
122
125
  type: "slot";
@@ -209,14 +212,18 @@ type WithChildren<Props> = Props & {
209
212
  };
210
213
  type ExtractPropsFromConfig<UserConfig> = UserConfig extends Config<infer P, any, any> ? P : never;
211
214
  type ExtractRootPropsFromConfig<UserConfig> = UserConfig extends Config<any, infer P, any> ? P : never;
212
- type UserGenerics<UserConfig extends Config = Config, UserProps extends ExtractPropsFromConfig<UserConfig> = ExtractPropsFromConfig<UserConfig>, UserRootProps extends ExtractRootPropsFromConfig<UserConfig> = ExtractRootPropsFromConfig<UserConfig>, UserData extends Data<UserProps, UserRootProps> | Data = Data<UserProps, UserRootProps>, UserAppState extends PrivateAppState<UserData> = PrivateAppState<UserData>, UserComponentData extends ComponentData = UserData["content"][0]> = {
215
+ type UserGenerics<UserConfig extends Config = Config, UserProps extends ExtractPropsFromConfig<UserConfig> = ExtractPropsFromConfig<UserConfig>, UserRootProps extends ExtractRootPropsFromConfig<UserConfig> = ExtractRootPropsFromConfig<UserConfig>, UserData extends Data<UserProps, UserRootProps> | Data = Data<UserProps, UserRootProps>, UserAppState extends PrivateAppState<UserData> = PrivateAppState<UserData>, UserPublicAppState extends AppState<UserData> = AppState<UserData>, UserComponentData extends ComponentData = UserData["content"][0]> = {
213
216
  UserConfig: UserConfig;
214
217
  UserProps: UserProps;
215
218
  UserRootProps: UserRootProps;
216
219
  UserData: UserData;
217
220
  UserAppState: UserAppState;
221
+ UserPublicAppState: UserPublicAppState;
218
222
  UserComponentData: UserComponentData;
219
223
  };
224
+ type ExtractField<T extends Field["type"]> = Extract<Field, {
225
+ type: T;
226
+ }>;
220
227
 
221
228
  type PuckContext = {
222
229
  renderDropZone: React.FC<DropZoneProps>;
@@ -277,6 +284,7 @@ type Metadata = {
277
284
  type ItemWithId = {
278
285
  _arrayId: string;
279
286
  _originalIndex: number;
287
+ _currentIndex: number;
280
288
  };
281
289
  type ArrayState = {
282
290
  items: ItemWithId[];
@@ -285,6 +293,8 @@ type ArrayState = {
285
293
  type UiState = {
286
294
  leftSideBarVisible: boolean;
287
295
  rightSideBarVisible: boolean;
296
+ leftSideBarWidth?: number | null;
297
+ rightSideBarWidth?: number | null;
288
298
  itemSelector: ItemSelector | null;
289
299
  arrayState: Record<string, ArrayState | undefined>;
290
300
  previewMode: "interactive" | "edit";
@@ -340,13 +350,30 @@ type BuiltinTypes = Date | RegExp | Error | Function | symbol | null | undefined
340
350
  type WithDeepSlots<T, SlotType = T> = T extends Slot ? SlotType : T extends (infer U)[] ? Array<WithDeepSlots<U, SlotType>> : T extends (infer U)[] ? WithDeepSlots<U, SlotType>[] : T extends BuiltinTypes ? T : T extends object ? {
341
351
  [K in keyof T]: WithDeepSlots<T[K], SlotType>;
342
352
  } : T;
343
-
344
353
  type RenderFunc<Props extends {
345
354
  [key: string]: any;
346
355
  } = {
347
356
  children: ReactNode;
348
357
  }> = (props: Props) => ReactElement;
349
- declare const overrideKeys: readonly ["header", "headerActions", "fields", "fieldLabel", "components", "componentItem", "outline", "puck", "preview"];
358
+
359
+ type MapFnParams<ThisField = Field> = {
360
+ value: any;
361
+ parentId: string;
362
+ propName: string;
363
+ field: ThisField;
364
+ propPath: string;
365
+ };
366
+
367
+ type FieldTransformFnParams<T> = Omit<MapFnParams<T>, "parentId"> & {
368
+ isReadOnly: boolean;
369
+ componentId: string;
370
+ };
371
+ type FieldTransformFn<T = any> = (params: FieldTransformFnParams<T>) => any;
372
+ type FieldTransforms = Partial<{
373
+ [FieldType in Field["type"]]: FieldTransformFn<ExtractField<FieldType>>;
374
+ }>;
375
+
376
+ declare const overrideKeys: readonly ["header", "headerActions", "fields", "fieldLabel", "drawer", "drawerItem", "componentOverlay", "outline", "puck", "preview"];
350
377
  type OverrideKey = (typeof overrideKeys)[number];
351
378
  type OverridesGeneric<Shape extends {
352
379
  [key in OverrideKey]: any;
@@ -384,11 +411,23 @@ type Overrides = OverridesGeneric<{
384
411
  children: ReactNode;
385
412
  name: string;
386
413
  }>;
414
+ drawer: RenderFunc;
415
+ drawerItem: RenderFunc<{
416
+ children: ReactNode;
417
+ name: string;
418
+ }>;
387
419
  iframe: RenderFunc<{
388
420
  children: ReactNode;
389
421
  document?: Document;
390
422
  }>;
391
423
  outline: RenderFunc;
424
+ componentOverlay: RenderFunc<{
425
+ children: ReactNode;
426
+ hover: boolean;
427
+ isSelected: boolean;
428
+ componentId: string;
429
+ componentType: string;
430
+ }>;
392
431
  puck: RenderFunc;
393
432
  }>;
394
433
  type FieldRenderFunctions = Omit<{
@@ -430,7 +469,12 @@ type IframeConfig = {
430
469
  };
431
470
  type OnAction<UserData extends Data = Data> = (action: PuckAction, appState: AppState<UserData>, prevAppState: AppState<UserData>) => void;
432
471
  type Plugin = {
433
- overrides: Partial<Overrides>;
472
+ name?: string;
473
+ label?: string;
474
+ icon?: ReactNode;
475
+ render?: () => ReactElement;
476
+ overrides?: Partial<Overrides>;
477
+ fieldTransforms?: FieldTransforms;
434
478
  };
435
479
  type History<D = any> = {
436
480
  state: D;
@@ -548,4 +592,4 @@ type WalkTreeOptions = {
548
592
  };
549
593
  declare function walkTree<T extends ComponentData | RootData | G["UserData"], UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>>(data: T, config: UserConfig, callbackFn: (data: Content, options: WalkTreeOptions) => Content | null | void): T;
550
594
 
551
- export { type ExternalFieldWithAdaptor as $, type AppState as A, type BaseData as B, type ComponentData as C, type DropZoneProps as D, type MappedItem as E, type Fields as F, type ComponentDataMap as G, type History as H, type IframeConfig as I, type Content as J, type BaseField as K, type TextareaField as L, type Metadata as M, type NumberField as N, type Overrides as O, type Permissions as P, type SelectField as Q, type RootDataWithProps as R, type Slot as S, type TextField as T, type UserGenerics as U, type Viewports as V, type WithSlotProps as W, type RadioField as X, type ArrayField as Y, type ObjectField as Z, type Adaptor as _, type Config as a, type ExternalField as a0, type CustomFieldRender as a1, type CustomField as a2, type SlotField as a3, type PuckContext as a4, type DefaultRootFieldProps as a5, type DefaultRootRenderProps as a6, type DefaultRootProps as a7, type DefaultComponentProps as a8, type WithId as a9, type WithPuckProps as aa, type AsFieldProps as ab, type WithChildren as ac, type ExtractPropsFromConfig as ad, type ExtractRootPropsFromConfig as ae, migrate as af, transformProps as ag, resolveAllData as ah, type PuckAction as b, type ResolveDataTrigger as c, type Plugin as d, type UiState as e, type ComponentConfig as f, type Field as g, type FieldProps as h, type Data as i, type OnAction as j, type InitialHistory as k, type ItemSelector as l, type Direction as m, type DragAxis as n, type Viewport as o, overrideKeys as p, type OverrideKey as q, type FieldRenderFunctions as r, type ItemWithId as s, type ArrayState as t, type PuckComponent as u, type RootConfig as v, walkTree as w, type RootDataWithoutProps as x, type RootData as y, type ComponentDataOptionalId as z };
595
+ export { type NumberField as $, type AppState as A, type ArrayState as B, type Config as C, type DropZoneProps as D, type SlotComponent as E, type Fields as F, type PuckComponent as G, type History as H, type IframeConfig as I, type RootConfig as J, type BaseData as K, type RootDataWithoutProps as L, type Metadata as M, type RootData as N, type Overrides as O, type Permissions as P, type ComponentDataOptionalId as Q, type RootDataWithProps as R, type Slot as S, type MappedItem as T, type UserGenerics as U, type Viewports as V, type WithSlotProps as W, type ComponentDataMap as X, type Content as Y, type BaseField as Z, type TextField as _, type ComponentData as a, type TextareaField as a0, type SelectField as a1, type RadioField as a2, type ArrayField as a3, type ObjectField as a4, type Adaptor as a5, type ExternalFieldWithAdaptor as a6, type ExternalField as a7, type CustomFieldRender as a8, type CustomField as a9, type SlotField as aa, type PuckContext as ab, type DefaultRootFieldProps as ac, type DefaultRootRenderProps as ad, type DefaultRootProps as ae, type DefaultComponentProps as af, type WithId as ag, type WithPuckProps as ah, type AsFieldProps as ai, type WithChildren as aj, type ExtractPropsFromConfig as ak, type ExtractRootPropsFromConfig as al, type ExtractField as am, type PuckAction as b, type ResolveDataTrigger as c, type Plugin as d, type UiState as e, type ComponentConfig as f, type FieldTransforms as g, type Field as h, type FieldProps as i, type Data as j, type OnAction as k, type InitialHistory as l, migrate as m, type ItemSelector as n, type Direction as o, type DragAxis as p, type Viewport as q, resolveAllData as r, type FieldTransformFnParams as s, transformProps as t, type FieldTransformFn as u, overrideKeys as v, walkTree as w, type OverrideKey as x, type FieldRenderFunctions as y, type ItemWithId as z };
@@ -17,7 +17,7 @@ type DropZoneProps = {
17
17
 
18
18
  type FieldOption = {
19
19
  label: string;
20
- value: string | number | boolean;
20
+ value: string | number | boolean | undefined | null | object;
21
21
  };
22
22
  type FieldOptions = Array<FieldOption> | ReadonlyArray<FieldOption>;
23
23
  type BaseField = {
@@ -29,6 +29,7 @@ type BaseField = {
29
29
  type TextField = BaseField & {
30
30
  type: "text";
31
31
  placeholder?: string;
32
+ contentEditable?: boolean;
32
33
  };
33
34
  type NumberField = BaseField & {
34
35
  type: "number";
@@ -40,6 +41,7 @@ type NumberField = BaseField & {
40
41
  type TextareaField = BaseField & {
41
42
  type: "textarea";
42
43
  placeholder?: string;
44
+ contentEditable?: boolean;
43
45
  };
44
46
  type SelectField = BaseField & {
45
47
  type: "select";
@@ -117,6 +119,7 @@ type CustomFieldRender<Value extends any> = (props: {
117
119
  type CustomField<Value extends any> = BaseField & {
118
120
  type: "custom";
119
121
  render: CustomFieldRender<Value>;
122
+ contentEditable?: boolean;
120
123
  };
121
124
  type SlotField = BaseField & {
122
125
  type: "slot";
@@ -209,14 +212,18 @@ type WithChildren<Props> = Props & {
209
212
  };
210
213
  type ExtractPropsFromConfig<UserConfig> = UserConfig extends Config<infer P, any, any> ? P : never;
211
214
  type ExtractRootPropsFromConfig<UserConfig> = UserConfig extends Config<any, infer P, any> ? P : never;
212
- type UserGenerics<UserConfig extends Config = Config, UserProps extends ExtractPropsFromConfig<UserConfig> = ExtractPropsFromConfig<UserConfig>, UserRootProps extends ExtractRootPropsFromConfig<UserConfig> = ExtractRootPropsFromConfig<UserConfig>, UserData extends Data<UserProps, UserRootProps> | Data = Data<UserProps, UserRootProps>, UserAppState extends PrivateAppState<UserData> = PrivateAppState<UserData>, UserComponentData extends ComponentData = UserData["content"][0]> = {
215
+ type UserGenerics<UserConfig extends Config = Config, UserProps extends ExtractPropsFromConfig<UserConfig> = ExtractPropsFromConfig<UserConfig>, UserRootProps extends ExtractRootPropsFromConfig<UserConfig> = ExtractRootPropsFromConfig<UserConfig>, UserData extends Data<UserProps, UserRootProps> | Data = Data<UserProps, UserRootProps>, UserAppState extends PrivateAppState<UserData> = PrivateAppState<UserData>, UserPublicAppState extends AppState<UserData> = AppState<UserData>, UserComponentData extends ComponentData = UserData["content"][0]> = {
213
216
  UserConfig: UserConfig;
214
217
  UserProps: UserProps;
215
218
  UserRootProps: UserRootProps;
216
219
  UserData: UserData;
217
220
  UserAppState: UserAppState;
221
+ UserPublicAppState: UserPublicAppState;
218
222
  UserComponentData: UserComponentData;
219
223
  };
224
+ type ExtractField<T extends Field["type"]> = Extract<Field, {
225
+ type: T;
226
+ }>;
220
227
 
221
228
  type PuckContext = {
222
229
  renderDropZone: React.FC<DropZoneProps>;
@@ -277,6 +284,7 @@ type Metadata = {
277
284
  type ItemWithId = {
278
285
  _arrayId: string;
279
286
  _originalIndex: number;
287
+ _currentIndex: number;
280
288
  };
281
289
  type ArrayState = {
282
290
  items: ItemWithId[];
@@ -285,6 +293,8 @@ type ArrayState = {
285
293
  type UiState = {
286
294
  leftSideBarVisible: boolean;
287
295
  rightSideBarVisible: boolean;
296
+ leftSideBarWidth?: number | null;
297
+ rightSideBarWidth?: number | null;
288
298
  itemSelector: ItemSelector | null;
289
299
  arrayState: Record<string, ArrayState | undefined>;
290
300
  previewMode: "interactive" | "edit";
@@ -340,13 +350,30 @@ type BuiltinTypes = Date | RegExp | Error | Function | symbol | null | undefined
340
350
  type WithDeepSlots<T, SlotType = T> = T extends Slot ? SlotType : T extends (infer U)[] ? Array<WithDeepSlots<U, SlotType>> : T extends (infer U)[] ? WithDeepSlots<U, SlotType>[] : T extends BuiltinTypes ? T : T extends object ? {
341
351
  [K in keyof T]: WithDeepSlots<T[K], SlotType>;
342
352
  } : T;
343
-
344
353
  type RenderFunc<Props extends {
345
354
  [key: string]: any;
346
355
  } = {
347
356
  children: ReactNode;
348
357
  }> = (props: Props) => ReactElement;
349
- declare const overrideKeys: readonly ["header", "headerActions", "fields", "fieldLabel", "components", "componentItem", "outline", "puck", "preview"];
358
+
359
+ type MapFnParams<ThisField = Field> = {
360
+ value: any;
361
+ parentId: string;
362
+ propName: string;
363
+ field: ThisField;
364
+ propPath: string;
365
+ };
366
+
367
+ type FieldTransformFnParams<T> = Omit<MapFnParams<T>, "parentId"> & {
368
+ isReadOnly: boolean;
369
+ componentId: string;
370
+ };
371
+ type FieldTransformFn<T = any> = (params: FieldTransformFnParams<T>) => any;
372
+ type FieldTransforms = Partial<{
373
+ [FieldType in Field["type"]]: FieldTransformFn<ExtractField<FieldType>>;
374
+ }>;
375
+
376
+ declare const overrideKeys: readonly ["header", "headerActions", "fields", "fieldLabel", "drawer", "drawerItem", "componentOverlay", "outline", "puck", "preview"];
350
377
  type OverrideKey = (typeof overrideKeys)[number];
351
378
  type OverridesGeneric<Shape extends {
352
379
  [key in OverrideKey]: any;
@@ -384,11 +411,23 @@ type Overrides = OverridesGeneric<{
384
411
  children: ReactNode;
385
412
  name: string;
386
413
  }>;
414
+ drawer: RenderFunc;
415
+ drawerItem: RenderFunc<{
416
+ children: ReactNode;
417
+ name: string;
418
+ }>;
387
419
  iframe: RenderFunc<{
388
420
  children: ReactNode;
389
421
  document?: Document;
390
422
  }>;
391
423
  outline: RenderFunc;
424
+ componentOverlay: RenderFunc<{
425
+ children: ReactNode;
426
+ hover: boolean;
427
+ isSelected: boolean;
428
+ componentId: string;
429
+ componentType: string;
430
+ }>;
392
431
  puck: RenderFunc;
393
432
  }>;
394
433
  type FieldRenderFunctions = Omit<{
@@ -430,7 +469,12 @@ type IframeConfig = {
430
469
  };
431
470
  type OnAction<UserData extends Data = Data> = (action: PuckAction, appState: AppState<UserData>, prevAppState: AppState<UserData>) => void;
432
471
  type Plugin = {
433
- overrides: Partial<Overrides>;
472
+ name?: string;
473
+ label?: string;
474
+ icon?: ReactNode;
475
+ render?: () => ReactElement;
476
+ overrides?: Partial<Overrides>;
477
+ fieldTransforms?: FieldTransforms;
434
478
  };
435
479
  type History<D = any> = {
436
480
  state: D;
@@ -548,4 +592,4 @@ type WalkTreeOptions = {
548
592
  };
549
593
  declare function walkTree<T extends ComponentData | RootData | G["UserData"], UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>>(data: T, config: UserConfig, callbackFn: (data: Content, options: WalkTreeOptions) => Content | null | void): T;
550
594
 
551
- export { type ExternalFieldWithAdaptor as $, type AppState as A, type BaseData as B, type ComponentData as C, type DropZoneProps as D, type MappedItem as E, type Fields as F, type ComponentDataMap as G, type History as H, type IframeConfig as I, type Content as J, type BaseField as K, type TextareaField as L, type Metadata as M, type NumberField as N, type Overrides as O, type Permissions as P, type SelectField as Q, type RootDataWithProps as R, type Slot as S, type TextField as T, type UserGenerics as U, type Viewports as V, type WithSlotProps as W, type RadioField as X, type ArrayField as Y, type ObjectField as Z, type Adaptor as _, type Config as a, type ExternalField as a0, type CustomFieldRender as a1, type CustomField as a2, type SlotField as a3, type PuckContext as a4, type DefaultRootFieldProps as a5, type DefaultRootRenderProps as a6, type DefaultRootProps as a7, type DefaultComponentProps as a8, type WithId as a9, type WithPuckProps as aa, type AsFieldProps as ab, type WithChildren as ac, type ExtractPropsFromConfig as ad, type ExtractRootPropsFromConfig as ae, migrate as af, transformProps as ag, resolveAllData as ah, type PuckAction as b, type ResolveDataTrigger as c, type Plugin as d, type UiState as e, type ComponentConfig as f, type Field as g, type FieldProps as h, type Data as i, type OnAction as j, type InitialHistory as k, type ItemSelector as l, type Direction as m, type DragAxis as n, type Viewport as o, overrideKeys as p, type OverrideKey as q, type FieldRenderFunctions as r, type ItemWithId as s, type ArrayState as t, type PuckComponent as u, type RootConfig as v, walkTree as w, type RootDataWithoutProps as x, type RootData as y, type ComponentDataOptionalId as z };
595
+ export { type NumberField as $, type AppState as A, type ArrayState as B, type Config as C, type DropZoneProps as D, type SlotComponent as E, type Fields as F, type PuckComponent as G, type History as H, type IframeConfig as I, type RootConfig as J, type BaseData as K, type RootDataWithoutProps as L, type Metadata as M, type RootData as N, type Overrides as O, type Permissions as P, type ComponentDataOptionalId as Q, type RootDataWithProps as R, type Slot as S, type MappedItem as T, type UserGenerics as U, type Viewports as V, type WithSlotProps as W, type ComponentDataMap as X, type Content as Y, type BaseField as Z, type TextField as _, type ComponentData as a, type TextareaField as a0, type SelectField as a1, type RadioField as a2, type ArrayField as a3, type ObjectField as a4, type Adaptor as a5, type ExternalFieldWithAdaptor as a6, type ExternalField as a7, type CustomFieldRender as a8, type CustomField as a9, type SlotField as aa, type PuckContext as ab, type DefaultRootFieldProps as ac, type DefaultRootRenderProps as ad, type DefaultRootProps as ae, type DefaultComponentProps as af, type WithId as ag, type WithPuckProps as ah, type AsFieldProps as ai, type WithChildren as aj, type ExtractPropsFromConfig as ak, type ExtractRootPropsFromConfig as al, type ExtractField as am, type PuckAction as b, type ResolveDataTrigger as c, type Plugin as d, type UiState as e, type ComponentConfig as f, type FieldTransforms as g, type Field as h, type FieldProps as i, type Data as j, type OnAction as k, type InitialHistory as l, migrate as m, type ItemSelector as n, type Direction as o, type DragAxis as p, type Viewport as q, resolveAllData as r, type FieldTransformFnParams as s, transformProps as t, type FieldTransformFn as u, overrideKeys as v, walkTree as w, type OverrideKey as x, type FieldRenderFunctions as y, type ItemWithId as z };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@measured/puck",
3
- "version": "0.20.0-canary.93d525c5",
3
+ "version": "0.20.0-canary.b2d0f01a",
4
4
  "author": "Chris Villa <chris@puckeditor.com>",
5
5
  "repository": "measuredco/puck",
6
6
  "bugs": "https://github.com/measuredco/puck/issues",
@@ -27,6 +27,7 @@
27
27
  "require": "./dist/rsc.js"
28
28
  },
29
29
  "./puck.css": "./dist/index.css",
30
+ "./no-external.css": "./dist/no-external.css",
30
31
  "./dist/index.css": "./dist/index.css",
31
32
  "./package.json": "./package.json"
32
33
  },
@@ -40,7 +41,7 @@
40
41
  "license": "MIT",
41
42
  "scripts": {
42
43
  "lint": "eslint \"**/*.ts*\"",
43
- "build": "rm -rf dist && tsup index.ts rsc.tsx",
44
+ "build": "rm -rf dist && tsup bundle/index.ts bundle/rsc.tsx bundle/no-external.ts",
44
45
  "test": "jest",
45
46
  "prepare": "cp ../../README.md . && yarn build",
46
47
  "postpublish": "rm README.md"