@storybook/react-webpack5 0.0.0-pr-23479-sha-bcda497a → 0.0.0-pr-23435-sha-bd98198e

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/preset.d.ts CHANGED
@@ -19,40 +19,7 @@ type Primitive =
19
19
  | symbol
20
20
  | bigint;
21
21
 
22
- /**
23
- Matches a JSON object.
24
-
25
- This type can be useful to enforce some input to be JSON-compatible or as a super-type to be extended from. Don't use this as a direct return type as the user would have to double-cast it: `jsonObject as unknown as CustomResponse`. Instead, you could extend your CustomResponse type from it to ensure your type only uses JSON-compatible types: `interface CustomResponse extends JsonObject { … }`.
26
-
27
- @category JSON
28
- */
29
- type JsonObject = {[Key in string]: JsonValue} & {[Key in string]?: JsonValue | undefined};
30
-
31
- /**
32
- Matches a JSON array.
33
-
34
- @category JSON
35
- */
36
- type JsonArray = JsonValue[] | readonly JsonValue[];
37
-
38
- /**
39
- Matches any valid JSON primitive value.
40
-
41
- @category JSON
42
- */
43
- type JsonPrimitive = string | number | boolean | null;
44
-
45
- /**
46
- Matches any valid JSON value.
47
-
48
- @see `Jsonify` if you need to transform a type to one that is assignable to `JsonValue`.
49
-
50
- @category JSON
51
- */
52
- type JsonValue = JsonPrimitive | JsonObject | JsonArray;
53
-
54
22
  declare global {
55
- // eslint-disable-next-line @typescript-eslint/consistent-type-definitions -- It has to be an `interface` so that it can be merged.
56
23
  interface SymbolConstructor {
57
24
  readonly observable: symbol;
58
25
  }
@@ -118,8 +85,8 @@ declare namespace PackageJson$1 {
118
85
  email?: string;
119
86
  };
120
87
 
121
- export type DirectoryLocations = {
122
- [directoryType: string]: JsonValue | undefined;
88
+ export interface DirectoryLocations {
89
+ [directoryType: string]: unknown;
123
90
 
124
91
  /**
125
92
  Location for executable scripts. Sugar to generate entries in the `bin` property by walking the folder.
@@ -150,7 +117,7 @@ declare namespace PackageJson$1 {
150
117
  Location for test files.
151
118
  */
152
119
  test?: string;
153
- };
120
+ }
154
121
 
155
122
  export type Scripts = {
156
123
  /**
@@ -300,11 +267,22 @@ declare namespace PackageJson$1 {
300
267
  export type Dependency = Partial<Record<string, string>>;
301
268
 
302
269
  /**
303
- A mapping of conditions and the paths to which they resolve.
270
+ Conditions which provide a way to resolve a package entry point based on the environment.
304
271
  */
305
- type ExportConditions = { // eslint-disable-line @typescript-eslint/consistent-indexed-object-style
306
- [condition: string]: Exports;
307
- };
272
+ export type ExportCondition = LiteralUnion<
273
+ | 'import'
274
+ | 'require'
275
+ | 'node'
276
+ | 'node-addons'
277
+ | 'deno'
278
+ | 'browser'
279
+ | 'electron'
280
+ | 'react-native'
281
+ | 'default',
282
+ string
283
+ >;
284
+
285
+ type ExportConditions = {[condition in ExportCondition]: Exports};
308
286
 
309
287
  /**
310
288
  Entry points of a module, optionally with conditions and subpath exports.
@@ -313,16 +291,16 @@ declare namespace PackageJson$1 {
313
291
  | null
314
292
  | string
315
293
  | Array<string | ExportConditions>
316
- | ExportConditions;
294
+ | ExportConditions
295
+ | {[path: string]: Exports}; // eslint-disable-line @typescript-eslint/consistent-indexed-object-style
317
296
 
318
297
  /**
319
- Import map entries of a module, optionally with conditions and subpath imports.
298
+ Import map entries of a module, optionally with conditions.
320
299
  */
321
300
  export type Imports = { // eslint-disable-line @typescript-eslint/consistent-indexed-object-style
322
- [key: `#${string}`]: Exports;
301
+ [key: string]: string | {[key in ExportCondition]: Exports};
323
302
  };
324
303
 
325
- // eslint-disable-next-line @typescript-eslint/consistent-type-definitions
326
304
  export interface NonStandardEntryPoints {
327
305
  /**
328
306
  An ECMAScript module ID that is the primary entry point to the program.
@@ -355,7 +333,7 @@ declare namespace PackageJson$1 {
355
333
  sideEffects?: boolean | string[];
356
334
  }
357
335
 
358
- export type TypeScriptConfiguration = {
336
+ export interface TypeScriptConfiguration {
359
337
  /**
360
338
  Location of the bundled TypeScript declaration file.
361
339
  */
@@ -370,12 +348,12 @@ declare namespace PackageJson$1 {
370
348
  Location of the bundled TypeScript declaration file. Alias of `types`.
371
349
  */
372
350
  typings?: string;
373
- };
351
+ }
374
352
 
375
353
  /**
376
- An alternative configuration for workspaces.
354
+ An alternative configuration for Yarn workspaces.
377
355
  */
378
- export type WorkspaceConfig = {
356
+ export interface WorkspaceConfig {
379
357
  /**
380
358
  An array of workspace pattern strings which contain the workspace packages.
381
359
  */
@@ -384,11 +362,10 @@ declare namespace PackageJson$1 {
384
362
  /**
385
363
  Designed to solve the problem of packages which break when their `node_modules` are moved to the root workspace directory - a process known as hoisting. For these packages, both within your workspace, and also some that have been installed via `node_modules`, it is important to have a mechanism for preventing the default Yarn workspace behavior. By adding workspace pattern strings here, Yarn will resume non-workspace behavior for any package which matches the defined patterns.
386
364
 
387
- [Supported](https://classic.yarnpkg.com/blog/2018/02/15/nohoist/) by Yarn.
388
- [Not supported](https://github.com/npm/rfcs/issues/287) by npm.
365
+ [Read more](https://classic.yarnpkg.com/blog/2018/02/15/nohoist/)
389
366
  */
390
367
  nohoist?: WorkspacePattern[];
391
- };
368
+ }
392
369
 
393
370
  /**
394
371
  A workspace pattern points to a directory or group of directories which contain packages that should be included in the workspace installation process.
@@ -401,7 +378,16 @@ declare namespace PackageJson$1 {
401
378
  */
402
379
  type WorkspacePattern = string;
403
380
 
404
- export type YarnConfiguration = {
381
+ export interface YarnConfiguration {
382
+ /**
383
+ Used to configure [Yarn workspaces](https://classic.yarnpkg.com/docs/workspaces/).
384
+
385
+ Workspaces allow you to manage multiple packages within the same repository in such a way that you only need to run `yarn install` once to install all of them in a single pass.
386
+
387
+ Please note that the top-level `private` property of `package.json` **must** be set to `true` in order to use workspaces.
388
+ */
389
+ workspaces?: WorkspacePattern[] | WorkspaceConfig;
390
+
405
391
  /**
406
392
  If your package only allows one version of a given dependency, and you’d like to enforce the same behavior as `yarn install --flat` on the command-line, set this to `true`.
407
393
 
@@ -413,19 +399,18 @@ declare namespace PackageJson$1 {
413
399
  Selective version resolutions. Allows the definition of custom package versions inside dependencies without manual edits in the `yarn.lock` file.
414
400
  */
415
401
  resolutions?: Dependency;
416
- };
402
+ }
417
403
 
418
- export type JSPMConfiguration = {
404
+ export interface JSPMConfiguration {
419
405
  /**
420
406
  JSPM configuration.
421
407
  */
422
408
  jspm?: PackageJson$1;
423
- };
409
+ }
424
410
 
425
411
  /**
426
412
  Type for [npm's `package.json` file](https://docs.npmjs.com/creating-a-package-json-file). Containing standard npm properties.
427
413
  */
428
- // eslint-disable-next-line @typescript-eslint/consistent-type-definitions
429
414
  export interface PackageJsonStandard {
430
415
  /**
431
416
  The name of the package.
@@ -555,7 +540,7 @@ declare namespace PackageJson$1 {
555
540
  /**
556
541
  Is used to set configuration parameters used in package scripts that persist across upgrades.
557
542
  */
558
- config?: JsonObject;
543
+ config?: Record<string, unknown>;
559
544
 
560
545
  /**
561
546
  The dependencies of the package.
@@ -596,7 +581,7 @@ declare namespace PackageJson$1 {
596
581
  Engines that this package runs on.
597
582
  */
598
583
  engines?: {
599
- [EngineName in 'npm' | 'node' | string]?: string; // eslint-disable-line @typescript-eslint/no-redundant-type-constituents
584
+ [EngineName in 'npm' | 'node' | string]?: string;
600
585
  };
601
586
 
602
587
  /**
@@ -695,41 +680,13 @@ declare namespace PackageJson$1 {
695
680
  */
696
681
  url: string;
697
682
  };
698
-
699
- /**
700
- Used to configure [npm workspaces](https://docs.npmjs.com/cli/using-npm/workspaces) / [Yarn workspaces](https://classic.yarnpkg.com/docs/workspaces/).
701
-
702
- Workspaces allow you to manage multiple packages within the same repository in such a way that you only need to run your install command once in order to install all of them in a single pass.
703
-
704
- Please note that the top-level `private` property of `package.json` **must** be set to `true` in order to use workspaces.
705
- */
706
- workspaces?: WorkspacePattern[] | WorkspaceConfig;
707
683
  }
708
684
 
709
- /**
710
- Type for [`package.json` file used by the Node.js runtime](https://nodejs.org/api/packages.html#nodejs-packagejson-field-definitions).
711
- */
712
- export type NodeJsStandard = {
713
- /**
714
- Defines which package manager is expected to be used when working on the current project. It can set to any of the [supported package managers](https://nodejs.org/api/corepack.html#supported-package-managers), and will ensure that your teams use the exact same package manager versions without having to install anything else than Node.js.
715
-
716
- __This field is currently experimental and needs to be opted-in; check the [Corepack](https://nodejs.org/api/corepack.html) page for details about the procedure.__
717
-
718
- @example
719
- ```json
720
- {
721
- "packageManager": "<package manager name>@<version>"
722
- }
723
- ```
724
- */
725
- packageManager?: string;
726
- };
727
-
728
- export type PublishConfig = {
685
+ export interface PublishConfig {
729
686
  /**
730
687
  Additional, less common properties from the [npm docs on `publishConfig`](https://docs.npmjs.com/cli/v7/configuring-npm/package-json#publishconfig).
731
688
  */
732
- [additionalProperties: string]: JsonValue | undefined;
689
+ [additionalProperties: string]: unknown;
733
690
 
734
691
  /**
735
692
  When publishing scoped packages, the access level defaults to restricted. If you want your scoped package to be publicly viewable (and installable) set `--access=public`. The only valid values for access are public and restricted. Unscoped packages always have an access level of public.
@@ -749,7 +706,7 @@ declare namespace PackageJson$1 {
749
706
  Default: `'latest'`
750
707
  */
751
708
  tag?: string;
752
- };
709
+ }
753
710
  }
754
711
 
755
712
  /**
@@ -758,18 +715,22 @@ Type for [npm's `package.json` file](https://docs.npmjs.com/creating-a-package-j
758
715
  @category File
759
716
  */
760
717
  type PackageJson$1 =
761
- JsonObject &
762
- PackageJson$1.NodeJsStandard &
763
718
  PackageJson$1.PackageJsonStandard &
764
719
  PackageJson$1.NonStandardEntryPoints &
765
720
  PackageJson$1.TypeScriptConfiguration &
766
721
  PackageJson$1.YarnConfiguration &
767
722
  PackageJson$1.JSPMConfiguration;
723
+
724
+ type StoryId = string;
725
+ type ComponentTitle = string;
726
+ type StoryName = string;
768
727
  type Tag = string;
769
728
  interface Parameters {
770
729
  [name: string]: any;
771
730
  }
772
731
 
732
+ type ExportName = string;
733
+ type MetaId = string;
773
734
  interface StoriesSpecifier {
774
735
  /**
775
736
  * When auto-titling, what to prefix all generated titles with (default: '')
@@ -798,15 +759,89 @@ interface IndexedStory {
798
759
  }
799
760
  interface IndexedCSFFile {
800
761
  meta: {
762
+ id?: string;
801
763
  title?: string;
802
764
  tags?: Tag[];
803
765
  };
804
766
  stories: IndexedStory[];
805
767
  }
806
- interface StoryIndexer {
768
+ /**
769
+ * FIXME: This is a temporary type to allow us to deprecate the old indexer API.
770
+ * We should remove this type and the deprecated indexer API in 8.0.
771
+ */
772
+ type BaseIndexer = {
773
+ /**
774
+ * A regular expression that should match all files to be handled by this indexer
775
+ */
807
776
  test: RegExp;
777
+ };
778
+ /**
779
+ * An indexer describes which filenames it handles, and how to index each individual file - turning it into an entry in the index.
780
+ */
781
+ type Indexer = BaseIndexer & {
782
+ /**
783
+ * Indexes a file containing stories or docs.
784
+ * @param fileName The name of the file to index.
785
+ * @param options {@link IndexerOptions} for indexing the file.
786
+ * @returns A promise that resolves to an array of {@link IndexInput} objects.
787
+ */
788
+ index: (fileName: string, options: IndexerOptions) => Promise<IndexInput[]>;
789
+ /**
790
+ * @soonDeprecated Use {@link index} instead
791
+ */
792
+ indexer?: never;
793
+ };
794
+ type DeprecatedIndexer = BaseIndexer & {
808
795
  indexer: (fileName: string, options: IndexerOptions) => Promise<IndexedCSFFile>;
809
- }
796
+ index?: never;
797
+ };
798
+ /**
799
+ * @soonDeprecated Use {@link Indexer} instead
800
+ */
801
+ type StoryIndexer = Indexer | DeprecatedIndexer;
802
+ /**
803
+ * The base input for indexing a story or docs entry.
804
+ */
805
+ type BaseIndexInput = {
806
+ /** The file to import from e.g. the story file. */
807
+ importPath: Path;
808
+ /** The name of the export to import. */
809
+ exportName: ExportName;
810
+ /** The name of the entry, auto-generated from {@link exportName} if unspecified. */
811
+ name?: StoryName;
812
+ /** The location in the sidebar, auto-generated from {@link importPath} if unspecified. */
813
+ title?: ComponentTitle;
814
+ /**
815
+ * The custom id optionally set at `meta.id` if it needs to differ from the id generated via {@link title}.
816
+ * If unspecified, the meta id will be auto-generated from {@link title}.
817
+ * If specified, the meta in the CSF file _must_ have a matching id set at `meta.id`, to be correctly matched.
818
+ */
819
+ metaId?: MetaId;
820
+ /** Tags for filtering entries in Storybook and its tools. */
821
+ tags?: Tag[];
822
+ /**
823
+ * The id of the entry, auto-generated from {@link title}/{@link metaId} and {@link exportName} if unspecified.
824
+ * If specified, the story in the CSF file _must_ have a matching id set at `parameters.__id`, to be correctly matched.
825
+ * Only use this if you need to override the auto-generated id.
826
+ */
827
+ __id?: StoryId;
828
+ };
829
+ /**
830
+ * The input for indexing a story entry.
831
+ */
832
+ type StoryIndexInput = BaseIndexInput & {
833
+ type: 'story';
834
+ };
835
+ /**
836
+ * The input for indexing a docs entry.
837
+ */
838
+ type DocsIndexInput = BaseIndexInput & {
839
+ type: 'docs';
840
+ /** Paths to story files that must be pre-loaded for this docs entry. */
841
+ storiesImports?: Path[];
842
+ };
843
+ type IndexInput = StoryIndexInput | DocsIndexInput;
844
+ type Path = string;
810
845
 
811
846
  interface Options$1 {
812
847
  allowRegExp: boolean;
@@ -972,6 +1007,7 @@ type CoreCommon_StorybookRefs = Record<string, {
972
1007
  url: string;
973
1008
  } | {
974
1009
  disable: boolean;
1010
+ expanded?: boolean;
975
1011
  }>;
976
1012
  type DocsOptions = {
977
1013
  /**
@@ -1081,8 +1117,13 @@ interface StorybookConfig {
1081
1117
  previewAnnotations?: PresetValue<Entry[]>;
1082
1118
  /**
1083
1119
  * Process CSF files for the story index.
1120
+ * @soonDeprecated use {@link experimental_indexers} instead
1084
1121
  */
1085
1122
  storyIndexers?: PresetValue<StoryIndexer[]>;
1123
+ /**
1124
+ * Process CSF files for the story index.
1125
+ */
1126
+ experimental_indexers?: PresetValue<Indexer[]>;
1086
1127
  /**
1087
1128
  * Docs related features in index generation
1088
1129
  */
package/dist/preset.js CHANGED
@@ -1 +1 @@
1
- "use strict";var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var preset_exports={};__export(preset_exports,{addons:()=>addons,core:()=>core,frameworkOptions:()=>frameworkOptions,webpack:()=>webpack});module.exports=__toCommonJS(preset_exports);var import_path=require("path"),wrapForPnP=input=>(0,import_path.dirname)(require.resolve((0,import_path.join)(input,"package.json"))),addons=[wrapForPnP("@storybook/preset-react-webpack")],defaultFrameworkOptions={legacyRootApi:!0},frameworkOptions=async(_,options)=>{let config=await options.presets.apply("framework");return typeof config=="string"?{name:config,options:defaultFrameworkOptions}:typeof config>"u"?{name:wrapForPnP("@storybook/react-webpack5"),options:defaultFrameworkOptions}:{name:config.name,options:{...defaultFrameworkOptions,...config.options}}},core=async(config,options)=>{let framework=await options.presets.apply("framework");return{...config,builder:{name:wrapForPnP("@storybook/builder-webpack5"),options:typeof framework=="string"?{}:framework.options.builder||{}},renderer:wrapForPnP("@storybook/react")}},webpack=async config=>{var _a;return config.resolve=config.resolve||{},config.resolve.alias={...(_a=config.resolve)==null?void 0:_a.alias,"@storybook/react":wrapForPnP("@storybook/react")},config};0&&(module.exports={addons,core,frameworkOptions,webpack});
1
+ "use strict";var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var preset_exports={};__export(preset_exports,{addons:()=>addons,core:()=>core,frameworkOptions:()=>frameworkOptions,webpack:()=>webpack});module.exports=__toCommonJS(preset_exports);var import_path=require("path"),getAbsolutePath=input=>(0,import_path.dirname)(require.resolve((0,import_path.join)(input,"package.json"))),addons=[getAbsolutePath("@storybook/preset-react-webpack")],defaultFrameworkOptions={legacyRootApi:!0},frameworkOptions=async(_,options)=>{let config=await options.presets.apply("framework");return typeof config=="string"?{name:config,options:defaultFrameworkOptions}:typeof config>"u"?{name:getAbsolutePath("@storybook/react-webpack5"),options:defaultFrameworkOptions}:{name:config.name,options:{...defaultFrameworkOptions,...config.options}}},core=async(config,options)=>{let framework=await options.presets.apply("framework");return{...config,builder:{name:getAbsolutePath("@storybook/builder-webpack5"),options:typeof framework=="string"?{}:framework.options.builder||{}},renderer:getAbsolutePath("@storybook/react")}},webpack=async config=>{var _a;return config.resolve=config.resolve||{},config.resolve.alias={...(_a=config.resolve)==null?void 0:_a.alias,"@storybook/react":getAbsolutePath("@storybook/react")},config};0&&(module.exports={addons,core,frameworkOptions,webpack});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/react-webpack5",
3
- "version": "0.0.0-pr-23479-sha-bcda497a",
3
+ "version": "0.0.0-pr-23435-sha-bd98198e",
4
4
  "description": "Storybook for React: Develop React Component in isolation with Hot Reloading.",
5
5
  "keywords": [
6
6
  "storybook"
@@ -47,9 +47,9 @@
47
47
  "prep": "../../../scripts/prepare/bundle.ts"
48
48
  },
49
49
  "dependencies": {
50
- "@storybook/builder-webpack5": "0.0.0-pr-23479-sha-bcda497a",
51
- "@storybook/preset-react-webpack": "0.0.0-pr-23479-sha-bcda497a",
52
- "@storybook/react": "0.0.0-pr-23479-sha-bcda497a",
50
+ "@storybook/builder-webpack5": "0.0.0-pr-23435-sha-bd98198e",
51
+ "@storybook/preset-react-webpack": "0.0.0-pr-23435-sha-bd98198e",
52
+ "@storybook/react": "0.0.0-pr-23435-sha-bd98198e",
53
53
  "@types/node": "^16.0.0"
54
54
  },
55
55
  "devDependencies": {