@ethlete/cli 3.0.0-next.24 → 3.0.0-next.26

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 (194) hide show
  1. package/CHANGELOG.md +126 -0
  2. package/design/define-call.ts +69 -0
  3. package/design/define-part.ts +43 -9
  4. package/design/embed-page.ts +37 -4
  5. package/design/icon-sheet.ts +151 -0
  6. package/design/logo-sheet.ts +52 -0
  7. package/design/mark-part.ts +79 -2
  8. package/design/motion-drive.ts +215 -0
  9. package/design/motion-runtime.ts +224 -5
  10. package/design/motion-tokens.ts +177 -0
  11. package/design/spring.ts +53 -0
  12. package/design/token-sheet.ts +87 -0
  13. package/design/web/frame-fill.ts +4 -0
  14. package/design/web/frame-scheme.ts +44 -0
  15. package/design/web/frame.ts +239 -31
  16. package/package.json +1 -1
  17. package/src/lib/design/calls-tsconfig.d.ts +2 -0
  18. package/src/lib/design/calls-tsconfig.js +11 -5
  19. package/src/lib/design/calls-tsconfig.js.map +1 -1
  20. package/src/lib/design/check.d.ts +1 -0
  21. package/src/lib/design/check.js +62 -6
  22. package/src/lib/design/check.js.map +1 -1
  23. package/src/lib/design/contact-sheet.d.ts +9 -0
  24. package/src/lib/design/contact-sheet.js +38 -4
  25. package/src/lib/design/contact-sheet.js.map +1 -1
  26. package/src/lib/design/design-command.js +56 -7
  27. package/src/lib/design/design-command.js.map +1 -1
  28. package/src/lib/design/draw-ledger.d.ts +36 -0
  29. package/src/lib/design/draw-ledger.js +52 -0
  30. package/src/lib/design/draw-ledger.js.map +1 -0
  31. package/src/lib/design/force-interactions.d.ts +2 -1
  32. package/src/lib/design/force-interactions.js +7 -4
  33. package/src/lib/design/force-interactions.js.map +1 -1
  34. package/src/lib/design/mcp-command.d.ts +81 -0
  35. package/src/lib/design/mcp-command.js +422 -0
  36. package/src/lib/design/mcp-command.js.map +1 -0
  37. package/src/lib/design/motion-command.d.ts +71 -0
  38. package/src/lib/design/motion-command.js +308 -0
  39. package/src/lib/design/motion-command.js.map +1 -0
  40. package/src/lib/design/motion-endpoint.d.ts +61 -0
  41. package/src/lib/design/motion-endpoint.js +133 -0
  42. package/src/lib/design/motion-endpoint.js.map +1 -0
  43. package/src/lib/design/motion-flow.d.ts +5 -0
  44. package/src/lib/design/motion-flow.js +29 -0
  45. package/src/lib/design/motion-flow.js.map +1 -0
  46. package/src/lib/design/motion-shot.d.ts +43 -0
  47. package/src/lib/design/motion-shot.js +97 -0
  48. package/src/lib/design/motion-shot.js.map +1 -0
  49. package/src/lib/design/paths.d.ts +14 -0
  50. package/src/lib/design/paths.js +50 -1
  51. package/src/lib/design/paths.js.map +1 -1
  52. package/src/lib/design/ready-shots.d.ts +7 -0
  53. package/src/lib/design/ready-shots.js +22 -1
  54. package/src/lib/design/ready-shots.js.map +1 -1
  55. package/src/lib/design/render-packages.d.ts +14 -0
  56. package/src/lib/design/render-packages.js +18 -3
  57. package/src/lib/design/render-packages.js.map +1 -1
  58. package/src/lib/design/render-worker.js +1 -0
  59. package/src/lib/design/render-worker.js.map +1 -1
  60. package/src/lib/design/render.js +3 -3
  61. package/src/lib/design/render.js.map +1 -1
  62. package/src/lib/design/serve.d.ts +2 -2
  63. package/src/lib/design/serve.js +191 -21
  64. package/src/lib/design/serve.js.map +1 -1
  65. package/src/lib/design/shot-command.d.ts +13 -4
  66. package/src/lib/design/shot-command.js +30 -24
  67. package/src/lib/design/shot-command.js.map +1 -1
  68. package/src/lib/design/shot-store.d.ts +24 -0
  69. package/src/lib/design/shot-store.js +120 -0
  70. package/src/lib/design/shot-store.js.map +1 -0
  71. package/src/lib/design/shot.d.ts +37 -1
  72. package/src/lib/design/shot.js +185 -34
  73. package/src/lib/design/shot.js.map +1 -1
  74. package/src/lib/design/sketch-command.js +197 -51
  75. package/src/lib/design/sketch-command.js.map +1 -1
  76. package/src/lib/design/ssr-shims.d.ts +2 -0
  77. package/src/lib/design/ssr-shims.js +12 -1
  78. package/src/lib/design/ssr-shims.js.map +1 -1
  79. package/src/lib/design/studio-api.d.ts +31 -0
  80. package/src/lib/design/studio-api.js +118 -1
  81. package/src/lib/design/studio-api.js.map +1 -1
  82. package/src/lib/design/system/check-system.d.ts +6 -2
  83. package/src/lib/design/system/check-system.js +102 -20
  84. package/src/lib/design/system/check-system.js.map +1 -1
  85. package/src/lib/design/system/colour.d.ts +4 -1
  86. package/src/lib/design/system/colour.js +54 -2
  87. package/src/lib/design/system/colour.js.map +1 -1
  88. package/src/lib/design/system/complete-command.d.ts +1 -1
  89. package/src/lib/design/system/complete-command.js +80 -6
  90. package/src/lib/design/system/complete-command.js.map +1 -1
  91. package/src/lib/design/system/complete.d.ts +172 -9
  92. package/src/lib/design/system/complete.js +792 -167
  93. package/src/lib/design/system/complete.js.map +1 -1
  94. package/src/lib/design/system/contrast-check.d.ts +6 -1
  95. package/src/lib/design/system/contrast-check.js +167 -12
  96. package/src/lib/design/system/contrast-check.js.map +1 -1
  97. package/src/lib/design/system/drawn-open-points.d.ts +16 -0
  98. package/src/lib/design/system/drawn-open-points.js +43 -0
  99. package/src/lib/design/system/drawn-open-points.js.map +1 -0
  100. package/src/lib/design/system/exceptions.d.ts +59 -0
  101. package/src/lib/design/system/exceptions.js +132 -0
  102. package/src/lib/design/system/exceptions.js.map +1 -0
  103. package/src/lib/design/system/flows/flow.d.ts +3 -0
  104. package/src/lib/design/system/flows/flow.js +5 -3
  105. package/src/lib/design/system/flows/flow.js.map +1 -1
  106. package/src/lib/design/system/handoff.d.ts +11 -0
  107. package/src/lib/design/system/handoff.js +30 -0
  108. package/src/lib/design/system/handoff.js.map +1 -0
  109. package/src/lib/design/system/inventory-approval.d.ts +41 -0
  110. package/src/lib/design/system/inventory-approval.js +71 -0
  111. package/src/lib/design/system/inventory-approval.js.map +1 -0
  112. package/src/lib/design/system/inventory.d.ts +65 -0
  113. package/src/lib/design/system/inventory.js +168 -0
  114. package/src/lib/design/system/inventory.js.map +1 -0
  115. package/src/lib/design/system/list-system.d.ts +4 -1
  116. package/src/lib/design/system/list-system.js +11 -3
  117. package/src/lib/design/system/list-system.js.map +1 -1
  118. package/src/lib/design/system/open-points.d.ts +101 -0
  119. package/src/lib/design/system/open-points.js +156 -0
  120. package/src/lib/design/system/open-points.js.map +1 -0
  121. package/src/lib/design/system/part-ready.d.ts +52 -0
  122. package/src/lib/design/system/part-ready.js +101 -0
  123. package/src/lib/design/system/part-ready.js.map +1 -0
  124. package/src/lib/design/system/read-open-points.d.ts +27 -0
  125. package/src/lib/design/system/read-open-points.js +81 -0
  126. package/src/lib/design/system/read-open-points.js.map +1 -0
  127. package/src/lib/design/system/ready-command.d.ts +7 -0
  128. package/src/lib/design/system/ready-command.js +65 -0
  129. package/src/lib/design/system/ready-command.js.map +1 -0
  130. package/src/lib/design/system/render-check.d.ts +2 -0
  131. package/src/lib/design/system/render-check.js +216 -32
  132. package/src/lib/design/system/render-check.js.map +1 -1
  133. package/src/lib/design/system/resolve-product.d.ts +4 -4
  134. package/src/lib/design/system/resolve-product.js +22 -7
  135. package/src/lib/design/system/resolve-product.js.map +1 -1
  136. package/src/lib/design/system/rules/implements.d.ts +7 -0
  137. package/src/lib/design/system/rules/implements.js +43 -0
  138. package/src/lib/design/system/rules/implements.js.map +1 -0
  139. package/src/lib/design/system/rules/motion.d.ts +2 -0
  140. package/src/lib/design/system/rules/motion.js +26 -1
  141. package/src/lib/design/system/rules/motion.js.map +1 -1
  142. package/src/lib/design/system/rules/option-values.d.ts +15 -0
  143. package/src/lib/design/system/rules/option-values.js +145 -0
  144. package/src/lib/design/system/rules/option-values.js.map +1 -0
  145. package/src/lib/design/system/rules/stale-replace.js +80 -3
  146. package/src/lib/design/system/rules/stale-replace.js.map +1 -1
  147. package/src/lib/design/system/rules/token-selectors.js +1 -1
  148. package/src/lib/design/system/rules/token-selectors.js.map +1 -1
  149. package/src/lib/design/system/sketch/baseline.d.ts +11 -2
  150. package/src/lib/design/system/sketch/baseline.js +4 -2
  151. package/src/lib/design/system/sketch/baseline.js.map +1 -1
  152. package/src/lib/design/system/sketch/check-sketches.d.ts +1 -0
  153. package/src/lib/design/system/sketch/check-sketches.js +4 -2
  154. package/src/lib/design/system/sketch/check-sketches.js.map +1 -1
  155. package/src/lib/design/system/sketch/host-edit.d.ts +4 -0
  156. package/src/lib/design/system/sketch/host-edit.js +68 -0
  157. package/src/lib/design/system/sketch/host-edit.js.map +1 -0
  158. package/src/lib/design/system/sketch/merge.d.ts +3 -2
  159. package/src/lib/design/system/sketch/merge.js +79 -12
  160. package/src/lib/design/system/sketch/merge.js.map +1 -1
  161. package/src/lib/design/system/sketch/merged-parts.d.ts +11 -1
  162. package/src/lib/design/system/sketch/merged-parts.js +24 -3
  163. package/src/lib/design/system/sketch/merged-parts.js.map +1 -1
  164. package/src/lib/design/system/sketch/no-visible-change.d.ts +6 -0
  165. package/src/lib/design/system/sketch/no-visible-change.js +25 -1
  166. package/src/lib/design/system/sketch/no-visible-change.js.map +1 -1
  167. package/src/lib/design/system/sketch/overlay.js +11 -3
  168. package/src/lib/design/system/sketch/overlay.js.map +1 -1
  169. package/src/lib/design/system/sketch/part-definition.d.ts +36 -0
  170. package/src/lib/design/system/sketch/part-definition.js +56 -2
  171. package/src/lib/design/system/sketch/part-definition.js.map +1 -1
  172. package/src/lib/design/system/sketch/sketch.d.ts +47 -0
  173. package/src/lib/design/system/sketch/sketch.js +137 -44
  174. package/src/lib/design/system/sketch/sketch.js.map +1 -1
  175. package/src/lib/design/system/sketch/unchanged-states.d.ts +4 -1
  176. package/src/lib/design/system/sketch/unchanged-states.js +9 -5
  177. package/src/lib/design/system/sketch/unchanged-states.js.map +1 -1
  178. package/src/lib/design/system/sketch/unused-closure.d.ts +12 -0
  179. package/src/lib/design/system/sketch/unused-closure.js +195 -0
  180. package/src/lib/design/system/sketch/unused-closure.js.map +1 -0
  181. package/src/lib/design/system/sketch/unused-files.d.ts +1 -1
  182. package/src/lib/design/system/sketch/unused-files.js +6 -3
  183. package/src/lib/design/system/sketch/unused-files.js.map +1 -1
  184. package/src/lib/design/system/system-modules.js +6 -9
  185. package/src/lib/design/system/system-modules.js.map +1 -1
  186. package/src/lib/design/system/system-tsconfig.d.ts +2 -1
  187. package/src/lib/design/system/system-tsconfig.js +10 -6
  188. package/src/lib/design/system/system-tsconfig.js.map +1 -1
  189. package/src/lib/design/system/ts-source.d.ts +3 -0
  190. package/src/lib/design/system/ts-source.js +21 -4
  191. package/src/lib/design/system/ts-source.js.map +1 -1
  192. package/src/lib/design/thumb.d.ts +31 -4
  193. package/src/lib/design/thumb.js +105 -40
  194. package/src/lib/design/thumb.js.map +1 -1
@@ -1,5 +1,6 @@
1
1
  import { IncomingMessage, ServerResponse } from 'http';
2
2
  import { Chromium, chromiumOf } from './browser';
3
+ import { DrawLedger } from './draw-ledger';
3
4
  export declare const THUMB_PATH = "/__design/thumb";
4
5
  /** The pixel width a thumbnail comes out at: twice the 180px tile Studio shows it in. */
5
6
  export declare const THUMB_PIXEL_WIDTH = 360;
@@ -23,6 +24,9 @@ export declare class ShotFailedError extends Error {
23
24
  }
24
25
  export declare class ShotTimeoutError extends Error {
25
26
  }
27
+ /** Rejects a drawing that was still waiting when every ask that wanted it was aborted. */
28
+ export declare class DrawDroppedError extends Error {
29
+ }
26
30
  type Page = Awaited<ReturnType<Awaited<ReturnType<Browser['newContext']>>['newPage']>>;
27
31
  /**
28
32
  * Opens a frame and waits until it drew its content or its error, then for its embedded frames. A frame that
@@ -33,19 +37,41 @@ export declare const settled = "new Promise((done) => document.fonts.ready.then(
33
37
  export declare const finished = "document.getAnimations()\n .filter((animation) => animation.effect?.getComputedTiming().endTime !== Infinity)\n .forEach((animation) => animation.finish())";
34
38
  export type DrawPriority = 'high' | 'low';
35
39
  /**
36
- * One shared headless Chromium, launched on the first ask, that runs up to four drawings at once. A waiting
37
- * `high` drawing runs before every waiting `low` one, each lane in the order asked. A failed launch is
38
- * not kept, so the next ask tries again.
40
+ * What one ask wants of a drawing. `view` is a number the asker raises with each view change; the
41
+ * highest one seen is the shown view. `rank` places the ask in that view. `onWithdraw` gets the callback
42
+ * that withdraws the ask, to call once the asker no longer waits, or at once if it already stopped.
43
+ */
44
+ export type DrawWant = {
45
+ priority: DrawPriority;
46
+ view?: number | null;
47
+ rank?: 'active' | 'visible' | null;
48
+ onWithdraw?: (withdraw: () => void) => void;
49
+ };
50
+ export declare const DRAWS_AT_ONCE = 8;
51
+ /**
52
+ * One shared headless Chromium, launched on the first ask, that runs up to `DRAWS_AT_ONCE` drawings at once.
53
+ * A waiting `high` drawing runs first; of the `low` ones, those for the active frame of the shown view,
54
+ * then its visible cells, then the rest, then those of views no longer shown, each lane in the order asked.
55
+ * A drawing every ask withdrew before it started is dropped. A failed launch is not kept, so the next ask
56
+ * tries again.
39
57
  */
40
58
  export declare const createDrawQueue: (options: {
41
59
  target: string;
42
60
  chromiumOf?: typeof chromiumOf;
61
+ ledger?: DrawLedger;
43
62
  }) => {
44
- run: <T>(draw: (browser: Browser) => Promise<T>, priority?: DrawPriority) => Promise<T>;
63
+ run: <T>(draw: (browser: Browser) => Promise<T>, want?: DrawPriority | DrawWant) => Promise<T>;
64
+ /** Adds an ask to a drawing `run` returned, so it runs in the best lane any of its asks wants, unless it already started. */
65
+ join: (drawn: Promise<unknown>, want: DrawWant) => void;
45
66
  /** Moves a drawing `run` returned into the high lane, unless it already started. */
46
67
  hurry: (drawn: Promise<unknown>) => void;
47
68
  close: () => Promise<void>;
48
69
  };
70
+ /** Calls `failed` with the status and message a shot answers when it fails, and returns the shot. */
71
+ export declare const noteFailure: <T>(shot: Promise<T>, failed: (failure: {
72
+ status: number;
73
+ message: string;
74
+ }) => void) => Promise<T>;
49
75
  export declare const sendShot: (response: ServerResponse, shot: Promise<Buffer>) => undefined;
50
76
  export declare const send: (response: ServerResponse, { status, type, body }: Shot) => void;
51
77
  /** Whether a call may draw from a file under the calls root: its own, or one in a folder above it. */
@@ -61,6 +87,7 @@ export declare const createThumbnailer: (options: {
61
87
  target: string;
62
88
  base: string | (() => string);
63
89
  chromiumOf?: typeof chromiumOf;
90
+ ledger?: DrawLedger;
64
91
  }) => {
65
92
  middleware: (request: IncomingMessage, response: ServerResponse) => void;
66
93
  /** Drops the pictures a changed file may draw into: its own call's, or every call below its folder. */
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.createThumbnailer = exports.callDrawsFrom = exports.send = exports.sendShot = exports.createDrawQueue = exports.finished = exports.settled = exports.openFrame = exports.ShotTimeoutError = exports.ShotFailedError = exports.ShotUnprocessableError = exports.ThumbMissingError = exports.ThumbUnavailableError = exports.DRAW_TIMEOUT_MS = exports.THUMB_PIXEL_WIDTH = exports.THUMB_PATH = void 0;
12
+ exports.createThumbnailer = exports.callDrawsFrom = exports.send = exports.sendShot = exports.noteFailure = exports.createDrawQueue = exports.DRAWS_AT_ONCE = exports.finished = exports.settled = exports.openFrame = exports.DrawDroppedError = exports.ShotTimeoutError = exports.ShotFailedError = exports.ShotUnprocessableError = exports.ThumbMissingError = exports.ThumbUnavailableError = exports.DRAW_TIMEOUT_MS = exports.THUMB_PIXEL_WIDTH = exports.THUMB_PATH = void 0;
13
13
  const path_1 = require("path");
14
14
  const browser_1 = require("./browser");
15
15
  exports.THUMB_PATH = '/__design/thumb';
@@ -37,6 +37,10 @@ exports.ShotFailedError = ShotFailedError;
37
37
  class ShotTimeoutError extends Error {
38
38
  }
39
39
  exports.ShotTimeoutError = ShotTimeoutError;
40
+ /** Rejects a drawing that was still waiting when every ask that wanted it was aborted. */
41
+ class DrawDroppedError extends Error {
42
+ }
43
+ exports.DrawDroppedError = DrawDroppedError;
40
44
  const frameWidthOf = (slug) => `(async (slug) => {
41
45
  const { calls } = await import('/@id/__x00__virtual:design-explore');
42
46
  if (!calls[slug]) return null;
@@ -77,20 +81,23 @@ exports.finished = `document.getAnimations()
77
81
  // Partial raster redraws only the invalidated part of a tile, so the anti-aliased edge of a rounded clip over an
78
82
  // embedded frame depends on which frame painted first: two draws of the same page differed under load.
79
83
  const DRAW_BROWSER_ARGS = ['--disable-partial-raster'];
80
- const DRAWS_AT_ONCE = 4;
84
+ exports.DRAWS_AT_ONCE = 8;
81
85
  /**
82
- * One shared headless Chromium, launched on the first ask, that runs up to four drawings at once. A waiting
83
- * `high` drawing runs before every waiting `low` one, each lane in the order asked. A failed launch is
84
- * not kept, so the next ask tries again.
86
+ * One shared headless Chromium, launched on the first ask, that runs up to `DRAWS_AT_ONCE` drawings at once.
87
+ * A waiting `high` drawing runs first; of the `low` ones, those for the active frame of the shown view,
88
+ * then its visible cells, then the rest, then those of views no longer shown, each lane in the order asked.
89
+ * A drawing every ask withdrew before it started is dropped. A failed launch is not kept, so the next ask
90
+ * tries again.
85
91
  */
86
92
  const createDrawQueue = (options) => {
87
93
  var _a;
88
- const { target } = options;
94
+ const { target, ledger } = options;
89
95
  const resolveChromium = (_a = options.chromiumOf) !== null && _a !== void 0 ? _a : browser_1.chromiumOf;
90
96
  let browser = null;
91
- const waiting = { high: [], low: [] };
92
- const jobs = new WeakMap();
97
+ const waiting = [];
98
+ const entries = new WeakMap();
93
99
  let drawing = 0;
100
+ let shownView = 0;
94
101
  const launch = () => {
95
102
  browser !== null && browser !== void 0 ? browser : (browser = resolveChromium(target).then((resolved) => {
96
103
  if (!resolved) {
@@ -103,37 +110,86 @@ const createDrawQueue = (options) => {
103
110
  browser.catch(() => (browser = null));
104
111
  return browser;
105
112
  };
113
+ const laneOf = (want) => {
114
+ if (want.priority === 'high')
115
+ return 0;
116
+ if (typeof want.view === 'number' && want.view < shownView)
117
+ return 4;
118
+ return want.rank === 'active' ? 1 : want.rank === 'visible' ? 2 : 3;
119
+ };
120
+ const entryLaneOf = (entry) => Math.min(...[...entry.wants].map(laneOf));
106
121
  const next = () => {
107
- var _a;
108
- while (drawing < DRAWS_AT_ONCE) {
109
- const job = (_a = waiting.high.shift()) !== null && _a !== void 0 ? _a : waiting.low.shift();
110
- if (!job)
122
+ while (drawing < exports.DRAWS_AT_ONCE && waiting.length > 0) {
123
+ const lanes = waiting.map(entryLaneOf);
124
+ const at = lanes.indexOf(Math.min(...lanes));
125
+ const [entry] = waiting.splice(at, 1);
126
+ if (!entry)
111
127
  return;
112
128
  drawing++;
113
- void job().finally(() => {
129
+ void entry.job().finally(() => {
114
130
  drawing--;
115
131
  next();
116
132
  });
117
133
  }
118
134
  };
135
+ const withdraw = (entry, want) => {
136
+ entry.wants.delete(want);
137
+ const at = waiting.indexOf(entry);
138
+ if (at < 0 || entry.wants.size > 0)
139
+ return;
140
+ waiting.splice(at, 1);
141
+ entry.drop();
142
+ };
143
+ const see = (want) => {
144
+ if (typeof want.view === 'number' && want.view > shownView)
145
+ shownView = want.view;
146
+ };
147
+ const add = (entry, want) => {
148
+ var _a;
149
+ see(want);
150
+ if (!waiting.includes(entry))
151
+ return;
152
+ entry.wants.add(want);
153
+ (_a = want.onWithdraw) === null || _a === void 0 ? void 0 : _a.call(want, () => withdraw(entry, want));
154
+ };
155
+ const join = (drawn, want) => {
156
+ const entry = entries.get(drawn);
157
+ if (entry)
158
+ add(entry, want);
159
+ else
160
+ see(want);
161
+ };
119
162
  return {
120
- run: (draw, priority = 'high') => {
121
- let job = () => Promise.resolve();
163
+ run: (draw, want = 'high') => {
164
+ const ticket = ledger === null || ledger === void 0 ? void 0 : ledger.ask();
165
+ const entry = {
166
+ job: () => Promise.resolve(),
167
+ wants: new Set(),
168
+ drop: () => undefined,
169
+ };
122
170
  const drawn = new Promise((resolve, reject) => {
123
- job = () => launch().then(draw).then(resolve, reject);
171
+ entry.job = () => {
172
+ ticket === null || ticket === void 0 ? void 0 : ticket.start();
173
+ return launch()
174
+ .then(draw)
175
+ .then(resolve, reject)
176
+ .finally(() => ticket === null || ticket === void 0 ? void 0 : ticket.end());
177
+ };
178
+ entry.drop = () => {
179
+ ticket === null || ticket === void 0 ? void 0 : ticket.end();
180
+ reject(new DrawDroppedError('design-explore: every ask withdrew the drawing before it started'));
181
+ };
124
182
  });
125
- jobs.set(drawn, job);
126
- waiting[priority].push(job);
183
+ entries.set(drawn, entry);
184
+ waiting.push(entry);
185
+ add(entry, typeof want === 'string' ? { priority: want } : want);
127
186
  next();
128
187
  return drawn;
129
188
  },
189
+ /** Adds an ask to a drawing `run` returned, so it runs in the best lane any of its asks wants, unless it already started. */
190
+ join,
130
191
  /** Moves a drawing `run` returned into the high lane, unless it already started. */
131
- hurry: (drawn) => {
132
- const job = jobs.get(drawn);
133
- const at = job ? waiting.low.indexOf(job) : -1;
134
- if (job && at >= 0)
135
- waiting.high.push(...waiting.low.splice(at, 1));
136
- },
192
+ hurry: (drawn) => join(drawn, { priority: 'high' }),
137
193
  close: () => __awaiter(void 0, void 0, void 0, function* () {
138
194
  const running = browser;
139
195
  browser = null;
@@ -142,21 +198,30 @@ const createDrawQueue = (options) => {
142
198
  };
143
199
  };
144
200
  exports.createDrawQueue = createDrawQueue;
145
- const sendShot = (response, shot) => void shot.then((body) => (0, exports.send)(response, { status: 200, type: 'image/png', body }), (error) => (0, exports.send)(response, error instanceof ShotFailedError
146
- ? { status: 500, type: 'image/png', body: error.png }
147
- : {
148
- status: error instanceof ThumbUnavailableError
149
- ? 503
150
- : error instanceof ThumbMissingError
151
- ? 404
152
- : error instanceof ShotUnprocessableError
153
- ? 422
154
- : error instanceof ShotTimeoutError
155
- ? 504
156
- : 500,
157
- type: 'text/plain; charset=utf-8',
158
- body: error instanceof Error ? error.message : String(error),
159
- }));
201
+ const failureOf = (error) => ({
202
+ status: error instanceof ThumbUnavailableError
203
+ ? 503
204
+ : error instanceof ThumbMissingError
205
+ ? 404
206
+ : error instanceof ShotUnprocessableError
207
+ ? 422
208
+ : error instanceof ShotTimeoutError
209
+ ? 504
210
+ : 500,
211
+ message: error instanceof Error ? error.message : String(error),
212
+ });
213
+ /** Calls `failed` with the status and message a shot answers when it fails, and returns the shot. */
214
+ const noteFailure = (shot, failed) => {
215
+ shot.catch((error) => !(error instanceof DrawDroppedError) && failed(failureOf(error)));
216
+ return shot;
217
+ };
218
+ exports.noteFailure = noteFailure;
219
+ const sendShot = (response, shot) => void shot.then((body) => (0, exports.send)(response, { status: 200, type: 'image/png', body }), (error) => {
220
+ const failure = failureOf(error);
221
+ (0, exports.send)(response, error instanceof ShotFailedError
222
+ ? { status: 500, type: 'image/png', body: error.png }
223
+ : { status: failure.status, type: 'text/plain; charset=utf-8', body: failure.message });
224
+ });
160
225
  exports.sendShot = sendShot;
161
226
  const send = (response, { status, type, body }) => {
162
227
  response.statusCode = status;
@@ -223,7 +288,7 @@ const createThumbnailer = (options) => {
223
288
  });
224
289
  return;
225
290
  }
226
- (0, exports.sendShot)(response, shotOf(slug, url.search));
291
+ (0, exports.sendShot)(response, (0, exports.noteFailure)(shotOf(slug, url.search), (failure) => { var _a, _b; return (_a = options.ledger) === null || _a === void 0 ? void 0 : _a.fail(Object.assign({ part: slug, state: (_b = url.searchParams.get('variant')) !== null && _b !== void 0 ? _b : '' }, failure)); }));
227
292
  },
228
293
  /** Drops the pictures a changed file may draw into: its own call's, or every call below its folder. */
229
294
  forget: (file) => {
@@ -1 +1 @@
1
- {"version":3,"file":"thumb.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/design/thumb.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thumb.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/design/thumb.ts"],"names":[],"mappings":"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"}