creevey 0.7.39 → 0.9.0-beta.0

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 (102) hide show
  1. package/CHANGELOG.md +12 -2
  2. package/README.md +1 -1
  3. package/docs/config.md +37 -5
  4. package/docs/grid.md +2 -1
  5. package/lib/cjs/client/addon/Manager.js +3 -2
  6. package/lib/cjs/client/addon/preset.js +1 -0
  7. package/lib/cjs/client/addon/readyForCapture.js +12 -0
  8. package/lib/cjs/client/addon/utils.js +1 -41
  9. package/lib/cjs/client/addon/withCreevey.js +313 -41
  10. package/lib/cjs/client/shared/components/ImagesView/BlendView.js +3 -3
  11. package/lib/cjs/client/shared/components/ImagesView/SideBySideView.js +3 -3
  12. package/lib/cjs/client/shared/components/ImagesView/SlideView.js +4 -3
  13. package/lib/cjs/client/shared/components/ImagesView/SwapView.js +3 -3
  14. package/lib/cjs/client/shared/helpers.js +1 -1
  15. package/lib/cjs/client/web/1.js +2 -2
  16. package/lib/cjs/client/web/2.js +1 -1
  17. package/lib/cjs/client/web/main.js +6 -6
  18. package/lib/cjs/index.js +27 -9
  19. package/lib/cjs/server/config.js +7 -3
  20. package/lib/cjs/server/extract.js +11 -4
  21. package/lib/cjs/server/index.js +2 -4
  22. package/lib/cjs/server/loaders/babel/register.js +2 -1
  23. package/lib/cjs/server/master/index.js +3 -9
  24. package/lib/cjs/server/master/master.js +1 -0
  25. package/lib/cjs/server/master/pool.js +29 -29
  26. package/lib/cjs/server/master/server.js +75 -3
  27. package/lib/cjs/server/messages.js +124 -12
  28. package/lib/cjs/server/parser.js +85 -0
  29. package/lib/cjs/server/selenium/browser.js +119 -21
  30. package/lib/cjs/server/selenium/selenoid.js +1 -1
  31. package/lib/cjs/server/stories.js +49 -58
  32. package/lib/cjs/server/storybook/entry.js +5 -4
  33. package/lib/cjs/server/storybook/helpers.js +11 -3
  34. package/lib/cjs/server/storybook/providers/browser.js +78 -0
  35. package/lib/cjs/server/storybook/providers/hybrid.js +79 -0
  36. package/lib/cjs/server/storybook/{nodejs-provider.js → providers/nodejs.js} +42 -18
  37. package/lib/cjs/server/utils.js +32 -2
  38. package/lib/cjs/server/worker/helpers.js +2 -6
  39. package/lib/cjs/server/worker/worker.js +15 -3
  40. package/lib/cjs/shared.js +107 -0
  41. package/lib/cjs/types.js +5 -0
  42. package/lib/esm/client/addon/Manager.js +3 -3
  43. package/lib/esm/client/addon/preset.js +1 -0
  44. package/lib/esm/client/addon/readyForCapture.js +5 -0
  45. package/lib/esm/client/addon/utils.js +1 -33
  46. package/lib/esm/client/addon/withCreevey.js +303 -41
  47. package/lib/esm/client/shared/components/ImagesView/BlendView.js +2 -3
  48. package/lib/esm/client/shared/components/ImagesView/SideBySideView.js +2 -3
  49. package/lib/esm/client/shared/components/ImagesView/SlideView.js +3 -3
  50. package/lib/esm/client/shared/components/ImagesView/SwapView.js +2 -3
  51. package/lib/esm/client/shared/helpers.js +1 -1
  52. package/lib/esm/index.js +6 -3
  53. package/lib/esm/server/config.js +7 -5
  54. package/lib/esm/server/extract.js +8 -4
  55. package/lib/esm/server/index.js +2 -3
  56. package/lib/esm/server/loaders/babel/register.js +3 -2
  57. package/lib/esm/server/master/index.js +4 -10
  58. package/lib/esm/server/master/master.js +1 -0
  59. package/lib/esm/server/master/pool.js +31 -31
  60. package/lib/esm/server/master/server.js +73 -5
  61. package/lib/esm/server/messages.js +118 -12
  62. package/lib/esm/server/parser.js +63 -0
  63. package/lib/esm/server/selenium/browser.js +116 -23
  64. package/lib/esm/server/selenium/selenoid.js +1 -1
  65. package/lib/esm/server/stories.js +51 -58
  66. package/lib/esm/server/storybook/entry.js +4 -4
  67. package/lib/esm/server/storybook/helpers.js +9 -3
  68. package/lib/esm/server/storybook/providers/browser.js +61 -0
  69. package/lib/esm/server/storybook/providers/hybrid.js +63 -0
  70. package/lib/esm/server/storybook/{nodejs-provider.js → providers/nodejs.js} +40 -18
  71. package/lib/esm/server/utils.js +29 -2
  72. package/lib/esm/server/worker/helpers.js +2 -6
  73. package/lib/esm/server/worker/worker.js +16 -4
  74. package/lib/esm/shared.js +76 -0
  75. package/lib/esm/types.js +3 -0
  76. package/lib/types/client/addon/preset.d.ts +2 -0
  77. package/lib/types/client/addon/readyForCapture.d.ts +6 -0
  78. package/lib/types/client/addon/utils.d.ts +1 -5
  79. package/lib/types/client/addon/withCreevey.d.ts +13 -2
  80. package/lib/types/client/web/CreeveyView/SideBar/SuiteLink.d.ts +2 -2
  81. package/lib/types/index.d.ts +2 -1
  82. package/lib/types/server/config.d.ts +1 -1
  83. package/lib/types/server/master/master.d.ts +1 -0
  84. package/lib/types/server/master/pool.d.ts +1 -0
  85. package/lib/types/server/master/server.d.ts +1 -1
  86. package/lib/types/server/messages.d.ts +12 -2
  87. package/lib/types/server/parser.d.ts +12 -0
  88. package/lib/types/server/selenium/browser.d.ts +5 -2
  89. package/lib/types/server/stories.d.ts +1 -2
  90. package/lib/types/server/storybook/entry.d.ts +13 -9
  91. package/lib/types/server/storybook/helpers.d.ts +1 -0
  92. package/lib/types/server/storybook/providers/browser.d.ts +4 -0
  93. package/lib/types/server/storybook/providers/hybrid.d.ts +4 -0
  94. package/lib/types/server/storybook/providers/nodejs.d.ts +9 -0
  95. package/lib/types/server/utils.d.ts +2 -0
  96. package/lib/types/server/worker/helpers.d.ts +2 -1
  97. package/lib/types/shared.d.ts +16 -0
  98. package/lib/types/types.d.ts +33 -4
  99. package/package.json +28 -18
  100. package/storybook-static/stories.json +4 -513
  101. package/types/mocha.d.ts +1 -0
  102. package/lib/types/server/storybook/nodejs-provider.d.ts +0 -5
@@ -206,11 +206,13 @@ export interface Config {
206
206
  * module.exports = {
207
207
  * storiesProvider: provider
208
208
  * }
209
+ * ```
209
210
  */
210
- storiesProvider: (config: Config, { watch, debug, }: {
211
+ storiesProvider: (config: Config, options: {
211
212
  watch: boolean;
212
213
  debug: boolean;
213
- }, storiesListener: (stories: Map<string, StoryInput[]>) => void) => Promise<SetStoriesData>;
214
+ port: number;
215
+ }, storiesListener: (stories: Map<string, StoryInput[]>) => void) => Promise<StoriesRaw>;
214
216
  /**
215
217
  * Define custom babel options for load stories transformation
216
218
  */
@@ -244,6 +246,8 @@ export interface Config {
244
246
  * Specify platform for docker images
245
247
  */
246
248
  dockerImagePlatform: string;
249
+ testRegex?: RegExp;
250
+ testDir?: string;
247
251
  }
248
252
  export declare type CreeveyConfig = Partial<Config>;
249
253
  export interface Options {
@@ -271,6 +275,22 @@ export declare type WorkerMessage = {
271
275
  error: string;
272
276
  };
273
277
  };
278
+ export declare type StoriesMessage = {
279
+ type: 'get';
280
+ payload?: never;
281
+ } | {
282
+ type: 'set';
283
+ payload: {
284
+ stories: StoriesRaw;
285
+ oldTests: string[];
286
+ };
287
+ } | {
288
+ type: 'update';
289
+ payload: [string, StoryInput[]][];
290
+ } | {
291
+ type: 'capture';
292
+ payload?: CaptureOptions;
293
+ };
274
294
  export declare type TestMessage = {
275
295
  type: 'start';
276
296
  payload: {
@@ -307,6 +327,8 @@ export declare type DockerMessage = {
307
327
  export declare type ShutdownMessage = unknown;
308
328
  export declare type ProcessMessage = (WorkerMessage & {
309
329
  scope: 'worker';
330
+ }) | (StoriesMessage & {
331
+ scope: 'stories';
310
332
  }) | (TestMessage & {
311
333
  scope: 'test';
312
334
  }) | (WebpackMessage & {
@@ -317,6 +339,7 @@ export declare type ProcessMessage = (WorkerMessage & {
317
339
  scope: 'shutdown';
318
340
  });
319
341
  export declare type WorkerHandler = (message: WorkerMessage) => void;
342
+ export declare type StoriesHandler = (message: StoriesMessage) => void;
320
343
  export declare type TestHandler = (message: TestMessage) => void;
321
344
  export declare type WebpackHandler = (message: WebpackMessage) => void;
322
345
  export declare type DockerHandler = (message: DockerMessage) => void;
@@ -384,7 +407,7 @@ export interface SkipOption {
384
407
  stories?: string | string[] | RegExp;
385
408
  tests?: string | string[] | RegExp;
386
409
  }
387
- export declare type SkipOptions = boolean | string | SkipOption | SkipOption[];
410
+ export declare type SkipOptions = boolean | string | SkipOption | SkipOption[] | Record<string, SkipOption | SkipOption[]>;
388
411
  export declare type CreeveyTestFunction = (this: {
389
412
  browser: WebDriver;
390
413
  until: typeof until;
@@ -394,9 +417,12 @@ export declare type CreeveyTestFunction = (this: {
394
417
  updateStoryArgs: <Args extends Record<string, unknown>>(updatedArgs: Args) => Promise<void>;
395
418
  readonly captureElement?: WebElementPromise;
396
419
  }) => Promise<void>;
397
- export interface CreeveyStoryParams {
420
+ export interface CaptureOptions {
421
+ imageName?: string;
398
422
  captureElement?: string | null;
399
423
  ignoreElements?: string | string[] | null;
424
+ }
425
+ export interface CreeveyStoryParams extends CaptureOptions {
400
426
  waitForReady?: boolean;
401
427
  delay?: number | {
402
428
  for: string[];
@@ -429,6 +455,8 @@ export declare type Response = {
429
455
  } | {
430
456
  type: 'update';
431
457
  payload: CreeveyUpdate;
458
+ } | {
459
+ type: 'capture';
432
460
  };
433
461
  export interface CreeveyTest extends TestData {
434
462
  checked: boolean;
@@ -454,6 +482,7 @@ export declare function isFunction(x: unknown): x is (...args: any[]) => any;
454
482
  export declare function isImageError(error: unknown): error is ImagesError;
455
483
  export declare function isProcessMessage(message: unknown): message is ProcessMessage;
456
484
  export declare function isWorkerMessage(message: unknown): message is WorkerMessage;
485
+ export declare function isStoriesMessage(message: unknown): message is StoriesMessage;
457
486
  export declare function isTestMessage(message: unknown): message is TestMessage;
458
487
  export declare function isWebpackMessage(message: unknown): message is WebpackMessage;
459
488
  export declare function isDockerMessage(message: unknown): message is DockerMessage;
package/package.json CHANGED
@@ -13,7 +13,7 @@
13
13
  "addon",
14
14
  "test"
15
15
  ],
16
- "version": "0.7.39",
16
+ "version": "0.9.0-beta.0",
17
17
  "bin": {
18
18
  "creevey": "./lib/cjs/cli.js"
19
19
  },
@@ -46,6 +46,7 @@
46
46
  "creevey": "node --require ./scripts/babel-register -- src/cli",
47
47
  "creevey:github": "yarn creevey --config .creevey/github.config.ts",
48
48
  "creevey:gitlab": "yarn creevey --config .creevey/gitlab.config.ts",
49
+ "creevey:hybrid": "yarn creevey --config .creevey/hybrid.config.ts",
49
50
  "fix": "run-s fix:*",
50
51
  "fix:eslint": "eslint --fix ./",
51
52
  "fix:prettier": "prettier --write .",
@@ -62,7 +63,6 @@
62
63
  "version": "conventional-changelog -p angular -i CHANGELOG.md -s && git add CHANGELOG.md",
63
64
  "build-storybook": "build-storybook",
64
65
  "chromatic": "npx chromatic --project-token t3010eknrh",
65
- "prepublishOnly": "yarn build",
66
66
  "prepare": "husky install"
67
67
  },
68
68
  "engines": {
@@ -79,10 +79,12 @@
79
79
  "@babel/runtime-corejs3": "^7.15.3",
80
80
  "@babel/traverse": "^7.15.0",
81
81
  "@babel/types": "^7.15.0",
82
+ "@koa/cors": "^3.2.0",
82
83
  "@octokit/core": "^3.3.1",
83
- "@storybook/components": "^6.3.7",
84
- "@storybook/csf": "^0.0.1",
85
- "@storybook/theming": "^6.3.7",
84
+ "@storybook/components": "^6.4.19",
85
+ "@storybook/csf": "0.0.2--canary.87bc651.0",
86
+ "@storybook/testing-library": "^0.0.9",
87
+ "@storybook/theming": "^6.4.19",
86
88
  "@types/chai": "^4.2.15",
87
89
  "@types/selenium-webdriver": "^4.0.12",
88
90
  "airbnb-js-shims": "^2.2.1",
@@ -91,11 +93,12 @@
91
93
  "chokidar": "^3.5.1",
92
94
  "core-js": "^3.16.3",
93
95
  "dockerode": "^3.2.1",
94
- "event-source-polyfill": "^1.0.25",
96
+ "event-source-polyfill": "1.0.25",
95
97
  "find-cache-dir": "^3.3.1",
96
98
  "global-jsdom": "8.3.0",
97
99
  "jsdom": "^16.5.2",
98
100
  "koa": "^2.13.1",
101
+ "koa-bodyparser": "^4.3.0",
99
102
  "koa-mount": "^4.0.0",
100
103
  "koa-static": "^5.0.0",
101
104
  "loader-utils": "^2.0.0",
@@ -128,27 +131,30 @@
128
131
  "@babel/preset-react": "^7.13.13",
129
132
  "@babel/preset-typescript": "^7.15.0",
130
133
  "@mdx-js/mdx": "^1.6.22",
131
- "@storybook/addon-essentials": "^6.3.7",
134
+ "@storybook/addon-essentials": "^6.4.19",
132
135
  "@storybook/addon-postcss": "^2.0.0",
133
- "@storybook/addons": "^6.3.7",
134
- "@storybook/api": "^6.3.7",
135
- "@storybook/channels": "^6.3.7",
136
- "@storybook/client-api": "^6.3.7",
137
- "@storybook/client-logger": "^6.3.7",
138
- "@storybook/core": "^6.3.7",
139
- "@storybook/core-client": "^6.3.7",
140
- "@storybook/core-common": "^6.3.7",
141
- "@storybook/core-events": "^6.3.7",
142
- "@storybook/core-server": "^6.3.7",
143
- "@storybook/react": "^6.3.7",
136
+ "@storybook/addons": "^6.4.19",
137
+ "@storybook/api": "^6.4.19",
138
+ "@storybook/channels": "^6.4.19",
139
+ "@storybook/client-api": "^6.4.19",
140
+ "@storybook/client-logger": "^6.4.19",
141
+ "@storybook/core": "^6.4.19",
142
+ "@storybook/core-client": "^6.4.19",
143
+ "@storybook/core-common": "^6.4.19",
144
+ "@storybook/core-events": "^6.4.19",
145
+ "@storybook/core-server": "^6.4.19",
146
+ "@storybook/preview-web": "^6.4.19",
147
+ "@storybook/react": "^6.4.19",
144
148
  "@types/babel__code-frame": "^7.0.2",
145
149
  "@types/babel__generator": "^7.6.2",
146
150
  "@types/babel__traverse": "^7.11.1",
147
151
  "@types/dockerode": "^3.2.3",
148
152
  "@types/find-cache-dir": "^3.2.0",
149
153
  "@types/koa": "^2.13.1",
154
+ "@types/koa-bodyparser": "^4.3.7",
150
155
  "@types/koa-mount": "^4.0.1",
151
156
  "@types/koa-static": "^4.0.1",
157
+ "@types/koa__cors": "^3.1.1",
152
158
  "@types/loader-utils": "^2.0.2",
153
159
  "@types/lodash": "^4.14.172",
154
160
  "@types/micromatch": "^4.0.1",
@@ -218,5 +224,9 @@
218
224
  },
219
225
  "storybook": {
220
226
  "displayName": "Creevey"
227
+ },
228
+ "volta": {
229
+ "node": "14.19.0",
230
+ "yarn": "1.22.17"
221
231
  }
222
232
  }