@ethlete/cli 3.0.0-next.23 → 3.0.0-next.25
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/CHANGELOG.md +85 -0
- package/design/contrast.ts +49 -0
- package/design/define-call.ts +48 -8
- package/design/define-part.ts +83 -1
- package/design/embed-page.ts +37 -4
- package/design/icon-sheet.ts +151 -0
- package/design/mark-part.ts +79 -2
- package/design/morph.ts +67 -0
- package/design/motion-runtime.ts +407 -0
- package/design/spring.ts +53 -0
- package/design/token-sheet.ts +87 -0
- package/design/web/env.d.ts +6 -2
- package/design/web/frame.ts +159 -6
- package/package.json +2 -1
- package/src/lib/design/calls-tsconfig.js +1 -2
- package/src/lib/design/calls-tsconfig.js.map +1 -1
- package/src/lib/design/changed-parts.d.ts +4 -4
- package/src/lib/design/changed-parts.js +10 -6
- package/src/lib/design/changed-parts.js.map +1 -1
- package/src/lib/design/contact-sheet.d.ts +26 -13
- package/src/lib/design/contact-sheet.js +122 -40
- package/src/lib/design/contact-sheet.js.map +1 -1
- package/src/lib/design/design-command.js +50 -2
- package/src/lib/design/design-command.js.map +1 -1
- package/src/lib/design/force-interactions.d.ts +2 -1
- package/src/lib/design/force-interactions.js +7 -4
- package/src/lib/design/force-interactions.js.map +1 -1
- package/src/lib/design/generated-stylesheets.d.ts +15 -0
- package/src/lib/design/generated-stylesheets.js +52 -0
- package/src/lib/design/generated-stylesheets.js.map +1 -0
- package/src/lib/design/inbox-command.d.ts +1 -0
- package/src/lib/design/inbox-command.js +15 -0
- package/src/lib/design/inbox-command.js.map +1 -1
- package/src/lib/design/mcp-command.d.ts +60 -0
- package/src/lib/design/mcp-command.js +327 -0
- package/src/lib/design/mcp-command.js.map +1 -0
- package/src/lib/design/merge-compare.d.ts +10 -0
- package/src/lib/design/merge-compare.js +17 -4
- package/src/lib/design/merge-compare.js.map +1 -1
- package/src/lib/design/motion-command.d.ts +71 -0
- package/src/lib/design/motion-command.js +314 -0
- package/src/lib/design/motion-command.js.map +1 -0
- package/src/lib/design/motion-endpoint.d.ts +61 -0
- package/src/lib/design/motion-endpoint.js +133 -0
- package/src/lib/design/motion-endpoint.js.map +1 -0
- package/src/lib/design/motion-flow.d.ts +5 -0
- package/src/lib/design/motion-flow.js +29 -0
- package/src/lib/design/motion-flow.js.map +1 -0
- package/src/lib/design/motion-shot.d.ts +43 -0
- package/src/lib/design/motion-shot.js +97 -0
- package/src/lib/design/motion-shot.js.map +1 -0
- package/src/lib/design/paths.d.ts +11 -0
- package/src/lib/design/paths.js.map +1 -1
- package/src/lib/design/ready-shots.d.ts +7 -0
- package/src/lib/design/ready-shots.js +22 -1
- package/src/lib/design/ready-shots.js.map +1 -1
- package/src/lib/design/render-packages.d.ts +9 -0
- package/src/lib/design/render-packages.js +13 -3
- package/src/lib/design/render-packages.js.map +1 -1
- package/src/lib/design/render.js +3 -3
- package/src/lib/design/render.js.map +1 -1
- package/src/lib/design/serve.js +108 -21
- package/src/lib/design/serve.js.map +1 -1
- package/src/lib/design/shot-command.d.ts +12 -6
- package/src/lib/design/shot-command.js +60 -48
- package/src/lib/design/shot-command.js.map +1 -1
- package/src/lib/design/shot.d.ts +30 -4
- package/src/lib/design/shot.js +138 -53
- package/src/lib/design/shot.js.map +1 -1
- package/src/lib/design/sketch-command.js +132 -39
- package/src/lib/design/sketch-command.js.map +1 -1
- package/src/lib/design/sketch-stylesheets.d.ts +7 -0
- package/src/lib/design/sketch-stylesheets.js +63 -0
- package/src/lib/design/sketch-stylesheets.js.map +1 -0
- package/src/lib/design/studio-api.d.ts +28 -6
- package/src/lib/design/studio-api.js +102 -17
- package/src/lib/design/studio-api.js.map +1 -1
- package/src/lib/design/system/check-system.js +8 -0
- package/src/lib/design/system/check-system.js.map +1 -1
- package/src/lib/design/system/comments/comment.d.ts +17 -0
- package/src/lib/design/system/comments/comment.js +35 -1
- package/src/lib/design/system/comments/comment.js.map +1 -1
- package/src/lib/design/system/comments/complete.js +4 -2
- package/src/lib/design/system/comments/complete.js.map +1 -1
- package/src/lib/design/system/complete-command.d.ts +9 -0
- package/src/lib/design/system/complete-command.js +134 -0
- package/src/lib/design/system/complete-command.js.map +1 -0
- package/src/lib/design/system/complete.d.ts +171 -0
- package/src/lib/design/system/complete.js +1106 -0
- package/src/lib/design/system/complete.js.map +1 -0
- package/src/lib/design/system/contrast-check.d.ts +26 -0
- package/src/lib/design/system/contrast-check.js +153 -0
- package/src/lib/design/system/contrast-check.js.map +1 -0
- package/src/lib/design/system/exceptions.d.ts +59 -0
- package/src/lib/design/system/exceptions.js +132 -0
- package/src/lib/design/system/exceptions.js.map +1 -0
- package/src/lib/design/system/flows/flow.d.ts +3 -0
- package/src/lib/design/system/flows/flow.js +5 -3
- package/src/lib/design/system/flows/flow.js.map +1 -1
- package/src/lib/design/system/handoff.d.ts +11 -0
- package/src/lib/design/system/handoff.js +30 -0
- package/src/lib/design/system/handoff.js.map +1 -0
- package/src/lib/design/system/imports.d.ts +28 -3
- package/src/lib/design/system/imports.js +84 -7
- package/src/lib/design/system/imports.js.map +1 -1
- package/src/lib/design/system/inventory-approval.d.ts +41 -0
- package/src/lib/design/system/inventory-approval.js +71 -0
- package/src/lib/design/system/inventory-approval.js.map +1 -0
- package/src/lib/design/system/inventory.d.ts +65 -0
- package/src/lib/design/system/inventory.js +168 -0
- package/src/lib/design/system/inventory.js.map +1 -0
- package/src/lib/design/system/list-system.d.ts +11 -0
- package/src/lib/design/system/list-system.js +26 -3
- package/src/lib/design/system/list-system.js.map +1 -1
- package/src/lib/design/system/product-stylesheets.d.ts +3 -0
- package/src/lib/design/system/product-stylesheets.js +40 -0
- package/src/lib/design/system/product-stylesheets.js.map +1 -0
- package/src/lib/design/system/render-check.js +30 -4
- package/src/lib/design/system/render-check.js.map +1 -1
- package/src/lib/design/system/resolve-product.d.ts +2 -3
- package/src/lib/design/system/resolve-product.js +4 -6
- package/src/lib/design/system/resolve-product.js.map +1 -1
- package/src/lib/design/system/rules/canonical-class.d.ts +9 -0
- package/src/lib/design/system/rules/canonical-class.js +132 -0
- package/src/lib/design/system/rules/canonical-class.js.map +1 -0
- package/src/lib/design/system/rules/inline-svg.d.ts +7 -0
- package/src/lib/design/system/rules/inline-svg.js +28 -0
- package/src/lib/design/system/rules/inline-svg.js.map +1 -0
- package/src/lib/design/system/rules/motion.d.ts +4 -0
- package/src/lib/design/system/rules/motion.js +46 -2
- package/src/lib/design/system/rules/motion.js.map +1 -1
- package/src/lib/design/system/rules/stale-replace.js +41 -2
- package/src/lib/design/system/rules/stale-replace.js.map +1 -1
- package/src/lib/design/system/rules/token-selectors.js +1 -1
- package/src/lib/design/system/rules/token-selectors.js.map +1 -1
- package/src/lib/design/system/rules/utility-css.d.ts +11 -0
- package/src/lib/design/system/rules/utility-css.js +290 -0
- package/src/lib/design/system/rules/utility-css.js.map +1 -0
- package/src/lib/design/system/sketch/baseline.d.ts +3 -2
- package/src/lib/design/system/sketch/baseline.js +10 -4
- package/src/lib/design/system/sketch/baseline.js.map +1 -1
- package/src/lib/design/system/sketch/host-edit.d.ts +4 -0
- package/src/lib/design/system/sketch/host-edit.js +68 -0
- package/src/lib/design/system/sketch/host-edit.js.map +1 -0
- package/src/lib/design/system/sketch/merge-preview.d.ts +4 -2
- package/src/lib/design/system/sketch/merge-preview.js +20 -3
- package/src/lib/design/system/sketch/merge-preview.js.map +1 -1
- package/src/lib/design/system/sketch/merge-shared.d.ts +42 -6
- package/src/lib/design/system/sketch/merge-shared.js +122 -24
- package/src/lib/design/system/sketch/merge-shared.js.map +1 -1
- package/src/lib/design/system/sketch/merge.d.ts +6 -5
- package/src/lib/design/system/sketch/merge.js +95 -35
- package/src/lib/design/system/sketch/merge.js.map +1 -1
- package/src/lib/design/system/sketch/merged-parts.d.ts +17 -0
- package/src/lib/design/system/sketch/merged-parts.js +35 -2
- package/src/lib/design/system/sketch/merged-parts.js.map +1 -1
- package/src/lib/design/system/sketch/no-visible-change.d.ts +10 -3
- package/src/lib/design/system/sketch/no-visible-change.js +75 -20
- package/src/lib/design/system/sketch/no-visible-change.js.map +1 -1
- package/src/lib/design/system/sketch/overlay.js +16 -3
- package/src/lib/design/system/sketch/overlay.js.map +1 -1
- package/src/lib/design/system/sketch/part-definition.d.ts +12 -0
- package/src/lib/design/system/sketch/part-definition.js +40 -1
- package/src/lib/design/system/sketch/part-definition.js.map +1 -1
- package/src/lib/design/system/sketch/sketch.d.ts +40 -3
- package/src/lib/design/system/sketch/sketch.js +147 -50
- package/src/lib/design/system/sketch/sketch.js.map +1 -1
- package/src/lib/design/system/sketch/unchanged-states.d.ts +10 -4
- package/src/lib/design/system/sketch/unchanged-states.js +37 -23
- package/src/lib/design/system/sketch/unchanged-states.js.map +1 -1
- package/src/lib/design/system/sketch/unused-closure.d.ts +12 -0
- package/src/lib/design/system/sketch/unused-closure.js +185 -0
- package/src/lib/design/system/sketch/unused-closure.js.map +1 -0
- package/src/lib/design/system/system-modules.d.ts +5 -1
- package/src/lib/design/system/system-modules.js +32 -17
- package/src/lib/design/system/system-modules.js.map +1 -1
- package/src/lib/design/system/system-tsconfig.d.ts +2 -1
- package/src/lib/design/system/system-tsconfig.js +11 -6
- package/src/lib/design/system/system-tsconfig.js.map +1 -1
- package/src/lib/design/thumb.d.ts +6 -2
- package/src/lib/design/thumb.js +36 -15
- package/src/lib/design/thumb.js.map +1 -1
- package/src/lib/design/variant-diff.d.ts +12 -10
- package/src/lib/design/variant-diff.js +14 -13
- package/src/lib/design/variant-diff.js.map +1 -1
- package/src/lib/design/warm-pages.d.ts +20 -0
- package/src/lib/design/warm-pages.js +78 -0
- package/src/lib/design/warm-pages.js.map +1 -0
- package/src/lib/update/commits.d.ts +9 -0
- package/src/lib/update/commits.js +15 -1
- package/src/lib/update/commits.js.map +1 -1
- package/src/lib/update/migration-manifest.d.ts +6 -0
- package/src/lib/update/migration-manifest.js +7 -0
- package/src/lib/update/migration-manifest.js.map +1 -1
- package/src/lib/update/migrations-command.js +1 -0
- package/src/lib/update/migrations-command.js.map +1 -1
- package/src/lib/update/run-migrations.d.ts +22 -0
- package/src/lib/update/run-migrations.js +60 -1
- package/src/lib/update/run-migrations.js.map +1 -1
- package/src/lib/update/update-command.d.ts +10 -0
- package/src/lib/update/update-command.js +28 -2
- package/src/lib/update/update-command.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overlay.js","sourceRoot":"","sources":["../../../../../../../libs/cli/src/lib/design/system/sketch/overlay.ts"],"names":[],"mappings":";;;AAAA,2BAA8C;AAC9C,+BAA+B;AAC/B,sCAA0C;AAC1C,
|
|
1
|
+
{"version":3,"file":"overlay.js","sourceRoot":"","sources":["../../../../../../../libs/cli/src/lib/design/system/sketch/overlay.ts"],"names":[],"mappings":";;;AAAA,2BAA8C;AAC9C,+BAA+B;AAC/B,sCAA0C;AAC1C,sCAAsD;AACtD,wCAAqD;AAErD,wDAA8E;AAC9E,2CAA+D;AAC/D,qCAAiF;AASjF,MAAM,SAAS,GAAG,CAAC,MAAc,EAAE,IAAsD,EAAE,EAAE,CAC3F,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;IAC1B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAU,CAAC;IAEzC,OAAO,GAAG,KAAK,IAAA,2BAAS,EAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,IAAI,mBAAU,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnG,CAAC,CAAC,CAAC;AAEL;;;;;;GAMG;AACI,MAAM,aAAa,GAAG,CAAC,OAI7B,EAAmB,EAAE;;IACpB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC7C,MAAM,GAAG,GAAG,IAAA,qBAAY,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,IAAA,qBAAW,EAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,2BAAS,CAAC,CAAC,CAAC;IACnG,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAgB,EAAE,CAAC,iCAClD,IAAI,KACP,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAA,2BAAS,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,EAChE,MAAM,EAAE,IAAA,iBAAY,EAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EACvC,SAAS,EAAE,IAAI,CAAC,GAAG,IAAI,IAAA,eAAU,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAA,iBAAY,EAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,IACnF,CAAC,CAAC;IACJ,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,2BAAS,CAAC,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAA,2BAAS,EAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,IAAI,CAC7F,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,eAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,eAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAC5F,CAAC;IACF,MAAM,oBAAoB,GAAG,CAAC,IAAkB,EAAE,EAAE;QAClD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAA,2BAAS,EAAC,SAAS,CAAC,KAAK,IAAA,2BAAS,EAAC,IAAI,CAAC,CAAC,CAAC;QAE3F,OAAO,CACL,MAAM,KAAK,SAAS;YACpB,MAAM,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS;YACnC,IAAA,wBAAY,EAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC;YAC3C,IAAA,8BAAkB,EAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAC/C,CAAC;IACJ,CAAC,CAAC;IACF,MAAM,OAAO,GAAc,QAAQ;SAChC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;SACzE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACd,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,GACP,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YACvB,CAAC,CAAC,eAAe,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,2DAA2D,IAAA,2BAAS,EAAC,IAAI,CAAC,EAAE;YACtH,CAAC,CAAC,eAAe,MAAM,CAAC,MAAM,eAAe,MAAM,CAAC,KAAK,iCAAiC,IAAA,2BAAS,EAAC,IAAI,CAAC,EAC7G,GAAG,IAAA,wBAAY,EAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC,EAAE,EAAE;KACpG,CAAC,CAAC,CAAC;IAEN,uCACK,OAAO,KACV,KAAK,EACL,QAAQ,EAAE,MAAA,IAAA,oBAAU,EAAC,GAAG,CAAC,mCAAI,OAAO,CAAC,QAAQ,EAC7C,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC,EAC5D,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,EACnB,SAAS,EAAE,IAAA,oBAAW,EAAC,MAAM,CAAC,EAC9B,gBAAgB,EAAE,IAAA,2BAAkB,EAAC,MAAM,EAAE,OAAO,CAAC,EACrD,SAAS,EAAE,IAAA,cAAO,EAAC,GAAG,EAAE,sBAAa,CAAC,IACtC;AACJ,CAAC,CAAC;AAnDW,QAAA,aAAa,iBAmDxB"}
|
|
@@ -29,3 +29,15 @@ export declare const widthsOf: (source: string) => number[] | null;
|
|
|
29
29
|
* without running it. An empty list when it has none or they are not written as a literal list.
|
|
30
30
|
*/
|
|
31
31
|
export declare const interactionNamesOf: (source: string) => string[];
|
|
32
|
+
/**
|
|
33
|
+
* The motions a part file writes in `definePart({ motions: { … } })` with the `from` and `to` it gives as string
|
|
34
|
+
* literals, and the `motion` each literal rule in `rules` names, read without running it.
|
|
35
|
+
*/
|
|
36
|
+
export declare const motionRefsOf: (source: string) => {
|
|
37
|
+
motions: {
|
|
38
|
+
name: string;
|
|
39
|
+
from: string | null;
|
|
40
|
+
to: string | null;
|
|
41
|
+
}[];
|
|
42
|
+
ruleMotions: string[];
|
|
43
|
+
};
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.interactionNamesOf = exports.widthsOf = exports.hasBadWidths = exports.withMadeBy = exports.withNote = exports.noteOf = exports.madeByOf = exports.stateNamesOf = void 0;
|
|
6
|
+
exports.motionRefsOf = exports.interactionNamesOf = exports.widthsOf = exports.hasBadWidths = exports.withMadeBy = exports.withNote = exports.noteOf = exports.madeByOf = exports.stateNamesOf = void 0;
|
|
7
7
|
const typescript_1 = __importDefault(require("typescript"));
|
|
8
8
|
const definitionOf = (source) => {
|
|
9
9
|
const file = typescript_1.default.createSourceFile('part.ts', source, typescript_1.default.ScriptTarget.Latest, true);
|
|
@@ -154,4 +154,43 @@ const interactionNamesOf = (source) => {
|
|
|
154
154
|
return interactions.elements.flatMap((element) => typescript_1.default.isStringLiteral(element) || typescript_1.default.isNoSubstitutionTemplateLiteral(element) ? [element.text] : []);
|
|
155
155
|
};
|
|
156
156
|
exports.interactionNamesOf = interactionNamesOf;
|
|
157
|
+
const literalOf = (node) => node && (typescript_1.default.isStringLiteral(node) || typescript_1.default.isNoSubstitutionTemplateLiteral(node)) ? node.text : null;
|
|
158
|
+
/**
|
|
159
|
+
* The motions a part file writes in `definePart({ motions: { … } })` with the `from` and `to` it gives as string
|
|
160
|
+
* literals, and the `motion` each literal rule in `rules` names, read without running it.
|
|
161
|
+
*/
|
|
162
|
+
const motionRefsOf = (source) => {
|
|
163
|
+
var _a, _b;
|
|
164
|
+
const { definition } = definitionOf(source);
|
|
165
|
+
const motions = definition ? (_a = propertyOf(definition, 'motions')) === null || _a === void 0 ? void 0 : _a.initializer : undefined;
|
|
166
|
+
const rules = definition ? (_b = propertyOf(definition, 'rules')) === null || _b === void 0 ? void 0 : _b.initializer : undefined;
|
|
167
|
+
return {
|
|
168
|
+
motions: motions && typescript_1.default.isObjectLiteralExpression(motions)
|
|
169
|
+
? motions.properties.flatMap((property) => {
|
|
170
|
+
var _a, _b;
|
|
171
|
+
if (!typescript_1.default.isPropertyAssignment(property) || !typescript_1.default.isObjectLiteralExpression(property.initializer))
|
|
172
|
+
return [];
|
|
173
|
+
const name = nameOf(property.name);
|
|
174
|
+
if (name === null)
|
|
175
|
+
return [];
|
|
176
|
+
const body = property.initializer;
|
|
177
|
+
return [
|
|
178
|
+
{
|
|
179
|
+
name,
|
|
180
|
+
from: literalOf((_a = propertyOf(body, 'from')) === null || _a === void 0 ? void 0 : _a.initializer),
|
|
181
|
+
to: literalOf((_b = propertyOf(body, 'to')) === null || _b === void 0 ? void 0 : _b.initializer),
|
|
182
|
+
},
|
|
183
|
+
];
|
|
184
|
+
})
|
|
185
|
+
: [],
|
|
186
|
+
ruleMotions: rules && typescript_1.default.isArrayLiteralExpression(rules)
|
|
187
|
+
? rules.elements.flatMap((rule) => {
|
|
188
|
+
var _a;
|
|
189
|
+
const name = typescript_1.default.isObjectLiteralExpression(rule) ? literalOf((_a = propertyOf(rule, 'motion')) === null || _a === void 0 ? void 0 : _a.initializer) : null;
|
|
190
|
+
return name === null ? [] : [name];
|
|
191
|
+
})
|
|
192
|
+
: [],
|
|
193
|
+
};
|
|
194
|
+
};
|
|
195
|
+
exports.motionRefsOf = motionRefsOf;
|
|
157
196
|
//# sourceMappingURL=part-definition.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"part-definition.js","sourceRoot":"","sources":["../../../../../../../libs/cli/src/lib/design/system/sketch/part-definition.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"part-definition.js","sourceRoot":"","sources":["../../../../../../../libs/cli/src/lib/design/system/sketch/part-definition.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SHARED_FOLDER } from '../imports';
|
|
1
2
|
import { Layer } from '../layers';
|
|
2
3
|
import { ResolvedProduct } from '../resolve-product';
|
|
3
4
|
export declare const SKETCH_STATUSES: readonly ["in progress", "ready"];
|
|
@@ -53,8 +54,16 @@ export type SketchRound = {
|
|
|
53
54
|
lost?: string;
|
|
54
55
|
drops?: string[];
|
|
55
56
|
};
|
|
57
|
+
/** A change to the sketch that waits on something; while it holds, the sketch stays in progress and cannot be ready. */
|
|
58
|
+
export type SketchHold = {
|
|
59
|
+
until: string;
|
|
60
|
+
by: string;
|
|
61
|
+
heldAt: string;
|
|
62
|
+
};
|
|
56
63
|
export type SketchFile = {
|
|
57
64
|
target: string;
|
|
65
|
+
/** Every part the sketch targets, `target` first; absent on a sketch with one target. */
|
|
66
|
+
targets?: string[];
|
|
58
67
|
status: SketchStatus;
|
|
59
68
|
createdAt: string;
|
|
60
69
|
/** The content hash of each part and of the fixtures in the product when the sketch was created or rebased. */
|
|
@@ -64,9 +73,18 @@ export type SketchFile = {
|
|
|
64
73
|
/** Per variant, every rejection it had, oldest first. */
|
|
65
74
|
rejections?: Record<string, SketchRejection[]>;
|
|
66
75
|
rounds?: SketchRound[];
|
|
76
|
+
/**
|
|
77
|
+
* Where a target the product takes from its base merges: absent, into the base; `override`, into a product copy;
|
|
78
|
+
* `into-base`, into the base, removing the product copy the sketch started from.
|
|
79
|
+
*/
|
|
80
|
+
merge?: SketchMerge;
|
|
81
|
+
hold?: SketchHold;
|
|
67
82
|
};
|
|
83
|
+
export declare const SKETCH_MERGES: readonly ["override", "into-base"];
|
|
84
|
+
export type SketchMerge = (typeof SKETCH_MERGES)[number];
|
|
68
85
|
/** A sketch as read: `rounds` holds at least one round, and `variantInfo` names the round of every variant. */
|
|
69
86
|
export type Sketch = SketchFile & {
|
|
87
|
+
targets: string[];
|
|
70
88
|
rounds: SketchRound[];
|
|
71
89
|
variantInfo: Record<string, SketchVariantInfo>;
|
|
72
90
|
product: string;
|
|
@@ -83,8 +101,7 @@ export declare const sketchDirOf: (options: {
|
|
|
83
101
|
sketch: SketchTarget;
|
|
84
102
|
}) => string;
|
|
85
103
|
export declare const variantDirOf: (sketch: Sketch, variant: string) => string;
|
|
86
|
-
|
|
87
|
-
export declare const SHARED_FOLDER = "shared";
|
|
104
|
+
export { SHARED_FOLDER };
|
|
88
105
|
export declare const sharedDirOf: (sketch: Pick<Sketch, "dir">) => string;
|
|
89
106
|
/** A variant's own `shared/` folder: a file there wins over the sketch's `shared/` file of the same path. */
|
|
90
107
|
export declare const variantSharedDirOf: (sketch: Sketch, variant: string) => string;
|
|
@@ -110,6 +127,7 @@ export declare const listSketches: (options: {
|
|
|
110
127
|
productDir: string;
|
|
111
128
|
product: string;
|
|
112
129
|
}) => (string | Sketch)[];
|
|
130
|
+
/** The open sketch that targets `sketch`, found by its first target or by any other it names; `null` when none does. */
|
|
113
131
|
export declare const findSketch: (options: {
|
|
114
132
|
productDir: string;
|
|
115
133
|
product: string;
|
|
@@ -135,17 +153,20 @@ export declare const sketchSourceOf: (options: {
|
|
|
135
153
|
* author. Each variant starts from `like` when given - renamed to the target, without its `madeBy`, and with its
|
|
136
154
|
* sketch's `shared/` folder - else from the part the product resolves for the target, or from an empty part when the
|
|
137
155
|
* target is new. A part's own `shared/` folder becomes the sketch's, imported as `@shared/`. A target holds one open
|
|
138
|
-
* sketch at a time.
|
|
156
|
+
* sketch at a time. Each of `others` joins every variant the same way, as a further target; `like` takes one target only.
|
|
157
|
+
* A target the product overrides in its base needs `merge`: `override` or `into-base`.
|
|
139
158
|
*/
|
|
140
159
|
export declare const createSketch: (options: {
|
|
141
160
|
product: ResolvedProduct;
|
|
142
161
|
sketch: SketchTarget;
|
|
162
|
+
others?: SketchTarget[];
|
|
143
163
|
variants: string[];
|
|
144
164
|
roundTitle?: string;
|
|
145
165
|
roundNote?: string;
|
|
146
166
|
author?: string;
|
|
147
167
|
like?: SketchSource;
|
|
148
168
|
variantNotes?: Map<string, string>;
|
|
169
|
+
merge?: SketchMerge;
|
|
149
170
|
}) => Sketch | string;
|
|
150
171
|
/** The sketch with `author` among the authors of `variant`; the same sketch when it is there already. */
|
|
151
172
|
export declare const withAuthor: (options: {
|
|
@@ -200,6 +221,22 @@ export declare const markSketchReady: (options: {
|
|
|
200
221
|
sketch: Sketch;
|
|
201
222
|
author?: string;
|
|
202
223
|
}) => Sketch | string;
|
|
224
|
+
/** Why a held sketch cannot be ready, or `null` when it holds nothing. */
|
|
225
|
+
export declare const heldProblemOf: (sketch: Pick<Sketch, "target" | "hold">) => string | null;
|
|
226
|
+
/**
|
|
227
|
+
* Holds a sketch until a change that waits on something is made: it goes back to in progress, which drops a pick
|
|
228
|
+
* and takes it out of the merge queue, and `sketch ready` refuses until the hold is released.
|
|
229
|
+
*/
|
|
230
|
+
export declare const holdSketch: (options: {
|
|
231
|
+
sketch: Sketch;
|
|
232
|
+
until: string;
|
|
233
|
+
by: string;
|
|
234
|
+
now?: Date;
|
|
235
|
+
}) => Sketch | string;
|
|
236
|
+
/** Removes the hold on a sketch, so it can be marked ready again. */
|
|
237
|
+
export declare const releaseSketch: (options: {
|
|
238
|
+
sketch: Sketch;
|
|
239
|
+
}) => Sketch | string;
|
|
203
240
|
/** A verdict on one variant: reject it, set the reason of its rejection, or reopen it. */
|
|
204
241
|
export type SketchVariantVerdict = {
|
|
205
242
|
kind: 'reject';
|
|
@@ -11,18 +11,21 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
11
11
|
return t;
|
|
12
12
|
};
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.editRound = exports.addVariant = exports.rebaseSketch = exports.decideSketch = exports.markSketchReady = exports.finishSketchReport = exports.clearSketchReport = exports.readSketchReport = exports.reportSketch = exports.sketchReportPath = exports.withAuthor = exports.createSketch = exports.sketchSourceOf = exports.writeSketchFile = exports.findSketch = exports.listSketches = exports.readSketch = exports.authorsOf = exports.rejectedProblemOf = exports.rejectionOf = exports.runningRoundOf = exports.isVariantName = exports.parseTarget = exports.sourceFilesIn = exports.variantSharedDirOf = exports.sharedDirOf = exports.SHARED_FOLDER = exports.variantDirOf = exports.sketchDirOf = exports.sketchFolderOf = exports.sketchesDirOf = exports.SKETCH_FILE = exports.SKETCH_STATUSES = void 0;
|
|
14
|
+
exports.editRound = exports.addVariant = exports.rebaseSketch = exports.decideSketch = exports.releaseSketch = exports.holdSketch = exports.heldProblemOf = exports.markSketchReady = exports.finishSketchReport = exports.clearSketchReport = exports.readSketchReport = exports.reportSketch = exports.sketchReportPath = exports.withAuthor = exports.createSketch = exports.sketchSourceOf = exports.writeSketchFile = exports.findSketch = exports.listSketches = exports.readSketch = exports.authorsOf = exports.rejectedProblemOf = exports.rejectionOf = exports.runningRoundOf = exports.isVariantName = exports.parseTarget = exports.sourceFilesIn = exports.variantSharedDirOf = exports.sharedDirOf = exports.SHARED_FOLDER = exports.variantDirOf = exports.sketchDirOf = exports.sketchFolderOf = exports.sketchesDirOf = exports.SKETCH_FILE = exports.SKETCH_MERGES = exports.SKETCH_STATUSES = void 0;
|
|
15
15
|
const fs_1 = require("fs");
|
|
16
16
|
const path_1 = require("path");
|
|
17
17
|
const json_layout_1 = require("../../json-layout");
|
|
18
18
|
const status_1 = require("../../status");
|
|
19
19
|
const assets_1 = require("../assets");
|
|
20
20
|
const imports_1 = require("../imports");
|
|
21
|
+
Object.defineProperty(exports, "SHARED_FOLDER", { enumerable: true, get: function () { return imports_1.SHARED_FOLDER; } });
|
|
22
|
+
const base_1 = require("../base");
|
|
21
23
|
const layers_1 = require("../layers");
|
|
22
24
|
const resolve_product_1 = require("../resolve-product");
|
|
23
25
|
const baseline_1 = require("./baseline");
|
|
24
26
|
const part_definition_1 = require("./part-definition");
|
|
25
27
|
exports.SKETCH_STATUSES = ['in progress', 'ready'];
|
|
28
|
+
exports.SKETCH_MERGES = ['override', 'into-base'];
|
|
26
29
|
const NAME = /^[a-z0-9][a-z0-9-]*$/u;
|
|
27
30
|
exports.SKETCH_FILE = 'sketch.json';
|
|
28
31
|
const sketchesDirOf = (productDir) => (0, path_1.resolve)(productDir, 'sketches');
|
|
@@ -33,12 +36,10 @@ const sketchDirOf = (options) => (0, path_1.resolve)((0, exports.sketchesDirOf)(
|
|
|
33
36
|
exports.sketchDirOf = sketchDirOf;
|
|
34
37
|
const variantDirOf = (sketch, variant) => (0, path_1.resolve)(sketch.dir, variant);
|
|
35
38
|
exports.variantDirOf = variantDirOf;
|
|
36
|
-
|
|
37
|
-
exports.SHARED_FOLDER = 'shared';
|
|
38
|
-
const sharedDirOf = (sketch) => (0, path_1.resolve)(sketch.dir, exports.SHARED_FOLDER);
|
|
39
|
+
const sharedDirOf = (sketch) => (0, path_1.resolve)(sketch.dir, imports_1.SHARED_FOLDER);
|
|
39
40
|
exports.sharedDirOf = sharedDirOf;
|
|
40
41
|
/** A variant's own `shared/` folder: a file there wins over the sketch's `shared/` file of the same path. */
|
|
41
|
-
const variantSharedDirOf = (sketch, variant) => (0, path_1.resolve)((0, exports.variantDirOf)(sketch, variant),
|
|
42
|
+
const variantSharedDirOf = (sketch, variant) => (0, path_1.resolve)((0, exports.variantDirOf)(sketch, variant), imports_1.SHARED_FOLDER);
|
|
42
43
|
exports.variantSharedDirOf = variantSharedDirOf;
|
|
43
44
|
const SOURCE = /\.(?:ts|js|mjs)$/u;
|
|
44
45
|
const sourceFilesIn = (dir) => (0, fs_1.existsSync)(dir)
|
|
@@ -49,7 +50,7 @@ const sourceFilesIn = (dir) => (0, fs_1.existsSync)(dir)
|
|
|
49
50
|
exports.sourceFilesIn = sourceFilesIn;
|
|
50
51
|
const liftShared = (options) => {
|
|
51
52
|
const { partDir, sketchSharedDir } = options;
|
|
52
|
-
const shared = (0, path_1.resolve)(partDir,
|
|
53
|
+
const shared = (0, path_1.resolve)(partDir, imports_1.SHARED_FOLDER);
|
|
53
54
|
if (!(0, fs_1.existsSync)(shared))
|
|
54
55
|
return;
|
|
55
56
|
for (const file of (0, exports.sourceFilesIn)(partDir)) {
|
|
@@ -66,6 +67,23 @@ const liftShared = (options) => {
|
|
|
66
67
|
(0, fs_1.cpSync)(shared, sketchSharedDir, { recursive: true });
|
|
67
68
|
(0, fs_1.rmSync)(shared, { recursive: true });
|
|
68
69
|
};
|
|
70
|
+
const sharedClashOf = (parts) => {
|
|
71
|
+
const seen = new Map();
|
|
72
|
+
for (const part of parts) {
|
|
73
|
+
if (!part)
|
|
74
|
+
continue;
|
|
75
|
+
const shared = (0, path_1.resolve)((0, path_1.dirname)(part.file), imports_1.SHARED_FOLDER);
|
|
76
|
+
for (const file of (0, assets_1.filesBelow)(shared)) {
|
|
77
|
+
const path = (0, path_1.relative)(shared, file).split(path_1.sep).join('/');
|
|
78
|
+
const source = (0, fs_1.readFileSync)(file, 'utf8');
|
|
79
|
+
const held = seen.get(path);
|
|
80
|
+
if (held && held.source !== source)
|
|
81
|
+
return `${held.key} and ${(0, resolve_product_1.partKeyOf)(part)} each hold a different ${imports_1.SHARED_FOLDER}/${path} - rename one, then open the sketch`;
|
|
82
|
+
seen.set(path, { key: (0, resolve_product_1.partKeyOf)(part), source });
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return undefined;
|
|
86
|
+
};
|
|
69
87
|
/** Reads `<layer>/<name>` as a sketch target, or answers with why it is not one. */
|
|
70
88
|
const parseTarget = (value) => {
|
|
71
89
|
const [layer = '', name = '', ...rest] = (value !== null && value !== void 0 ? value : '').split('/');
|
|
@@ -74,7 +92,7 @@ const parseTarget = (value) => {
|
|
|
74
92
|
return { layer, name };
|
|
75
93
|
};
|
|
76
94
|
exports.parseTarget = parseTarget;
|
|
77
|
-
const isVariantName = (name) => NAME.test(name) && name !==
|
|
95
|
+
const isVariantName = (name) => NAME.test(name) && name !== imports_1.SHARED_FOLDER;
|
|
78
96
|
exports.isVariantName = isVariantName;
|
|
79
97
|
const foldersOf = (dir) => (0, fs_1.existsSync)(dir)
|
|
80
98
|
? (0, fs_1.readdirSync)(dir)
|
|
@@ -127,6 +145,15 @@ const isRounds = (value) => Array.isArray(value) &&
|
|
|
127
145
|
(round.lost === undefined || typeof round.lost === 'string') &&
|
|
128
146
|
(round.drops === undefined || (Array.isArray(round.drops) && round.drops.every((d) => typeof d === 'string')))) &&
|
|
129
147
|
new Set(value.map((round) => round.key)).size === value.length;
|
|
148
|
+
const isHold = (value) => {
|
|
149
|
+
const hold = value;
|
|
150
|
+
return (typeof hold === 'object' &&
|
|
151
|
+
hold !== null &&
|
|
152
|
+
typeof hold.until === 'string' &&
|
|
153
|
+
hold.until.trim() !== '' &&
|
|
154
|
+
typeof hold.by === 'string' &&
|
|
155
|
+
typeof hold.heldAt === 'string');
|
|
156
|
+
};
|
|
130
157
|
const FIRST_ROUND = 'r1';
|
|
131
158
|
const firstRoundOf = (title = '', note = '') => ({ key: FIRST_ROUND, title, note: note.trim() });
|
|
132
159
|
const nextRoundKeyOf = (rounds) => `r${Math.max(0, ...rounds.map((round) => { var _a, _b; return Number((_b = (_a = /^r(\d+)$/u.exec(round.key)) === null || _a === void 0 ? void 0 : _a[1]) !== null && _b !== void 0 ? _b : 0); })) + 1}`;
|
|
@@ -154,7 +181,7 @@ const authorsOf = (sketch, variant) => { var _a, _b, _c; return (_c = (_b = (_a
|
|
|
154
181
|
exports.authorsOf = authorsOf;
|
|
155
182
|
/** The sketch in a sketch folder, or why it cannot be read. */
|
|
156
183
|
const readSketch = (options) => {
|
|
157
|
-
var _a, _b, _c, _d;
|
|
184
|
+
var _a, _b, _c, _d, _e;
|
|
158
185
|
const { product, dir } = options;
|
|
159
186
|
const file = (0, path_1.resolve)(dir, exports.SKETCH_FILE);
|
|
160
187
|
if (!(0, fs_1.existsSync)(file))
|
|
@@ -169,6 +196,12 @@ const readSketch = (options) => {
|
|
|
169
196
|
const target = (0, exports.parseTarget)(parsed.target);
|
|
170
197
|
if (typeof target === 'string')
|
|
171
198
|
return `${file}: ${target}`;
|
|
199
|
+
const targets = (_a = parsed.targets) !== null && _a !== void 0 ? _a : [(0, resolve_product_1.partKeyOf)(target)];
|
|
200
|
+
if (!Array.isArray(targets) ||
|
|
201
|
+
targets[0] !== (0, resolve_product_1.partKeyOf)(target) ||
|
|
202
|
+
new Set(targets).size !== targets.length ||
|
|
203
|
+
targets.some((entry) => typeof (0, exports.parseTarget)(entry) === 'string'))
|
|
204
|
+
return `${file}: targets must list unique <layer>/<name> keys, the target first`;
|
|
172
205
|
if (!isStatus(parsed.status))
|
|
173
206
|
return `${file}: status must be one of ${exports.SKETCH_STATUSES.join(', ')}`;
|
|
174
207
|
if (parsed.variantInfo !== undefined && !isVariantInfo(parsed.variantInfo))
|
|
@@ -177,16 +210,23 @@ const readSketch = (options) => {
|
|
|
177
210
|
return `${file}: rejections must be { <variant>: [{ by: designer | agent, decidedAt, reason?, reasonBy?, reopened?: { by, decidedAt, reason? } }] }, each but the last reopened`;
|
|
178
211
|
if (parsed.rounds !== undefined && !isRounds(parsed.rounds))
|
|
179
212
|
return `${file}: rounds must be a non-empty list of { key, title, note } with unique keys`;
|
|
180
|
-
|
|
213
|
+
if (parsed.merge !== undefined && !exports.SKETCH_MERGES.includes(parsed.merge))
|
|
214
|
+
return `${file}: merge must be one of ${exports.SKETCH_MERGES.join(', ')}`;
|
|
215
|
+
if (parsed.hold !== undefined && !isHold(parsed.hold))
|
|
216
|
+
return `${file}: hold must be { until, by, heldAt }`;
|
|
217
|
+
if (parsed.hold !== undefined && parsed.status !== 'in progress')
|
|
218
|
+
return `${file}: a held sketch must be in progress`;
|
|
219
|
+
const rounds = (_b = parsed.rounds) !== null && _b !== void 0 ? _b : [firstRoundOf()];
|
|
181
220
|
const running = (0, exports.runningRoundOf)({ rounds }).key;
|
|
182
|
-
const variants = foldersOf(dir).filter((folder) => folder !==
|
|
221
|
+
const variants = foldersOf(dir).filter((folder) => folder !== imports_1.SHARED_FOLDER);
|
|
183
222
|
const variantInfo = Object.assign({}, parsed.variantInfo);
|
|
184
223
|
for (const variant of variants)
|
|
185
|
-
variantInfo[variant] = Object.assign(Object.assign({}, variantInfo[variant]), { round: (
|
|
224
|
+
variantInfo[variant] = Object.assign(Object.assign({}, variantInfo[variant]), { round: (_d = (_c = variantInfo[variant]) === null || _c === void 0 ? void 0 : _c.round) !== null && _d !== void 0 ? _d : running });
|
|
186
225
|
const lost = variants.find((variant) => !rounds.some((round) => { var _a; return round.key === ((_a = variantInfo[variant]) === null || _a === void 0 ? void 0 : _a.round); }));
|
|
187
226
|
if (lost !== undefined)
|
|
188
|
-
return `${file}: variant ${lost} names round "${(
|
|
189
|
-
return Object.assign(Object.assign({}, parsed), {
|
|
227
|
+
return `${file}: variant ${lost} names round "${(_e = variantInfo[lost]) === null || _e === void 0 ? void 0 : _e.round}", which rounds does not hold`;
|
|
228
|
+
return Object.assign(Object.assign({}, parsed), { targets,
|
|
229
|
+
rounds,
|
|
190
230
|
variantInfo,
|
|
191
231
|
product, layer: target.layer, name: target.name, dir,
|
|
192
232
|
variants });
|
|
@@ -195,13 +235,18 @@ exports.readSketch = readSketch;
|
|
|
195
235
|
/** Every sketch folder of a product, read; a folder that cannot be read answers with its problem. */
|
|
196
236
|
const listSketches = (options) => foldersOf((0, exports.sketchesDirOf)(options.productDir)).map((folder) => (0, exports.readSketch)({ product: options.product, dir: (0, path_1.resolve)((0, exports.sketchesDirOf)(options.productDir), folder) }));
|
|
197
237
|
exports.listSketches = listSketches;
|
|
238
|
+
/** The open sketch that targets `sketch`, found by its first target or by any other it names; `null` when none does. */
|
|
198
239
|
const findSketch = (options) => {
|
|
240
|
+
var _a;
|
|
199
241
|
const dir = (0, exports.sketchDirOf)(options);
|
|
200
|
-
|
|
242
|
+
if ((0, fs_1.existsSync)(dir))
|
|
243
|
+
return (0, exports.readSketch)({ product: options.product, dir });
|
|
244
|
+
const key = (0, resolve_product_1.partKeyOf)(options.sketch);
|
|
245
|
+
return ((_a = (0, exports.listSketches)(options).find((sketch) => typeof sketch !== 'string' && sketch.targets.includes(key))) !== null && _a !== void 0 ? _a : null);
|
|
201
246
|
};
|
|
202
247
|
exports.findSketch = findSketch;
|
|
203
248
|
const writeSketchFile = (sketch) => {
|
|
204
|
-
const file = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ target: (0, resolve_product_1.partKeyOf)(sketch), status: sketch.status, createdAt: sketch.createdAt }, (sketch.baseline ? { baseline: sketch.baseline } : {})), (sketch.decision ? { decision: sketch.decision } : {})), { rounds: sketch.rounds }), (Object.keys(sketch.variantInfo).length > 0 ? { variantInfo: sketch.variantInfo } : {})), (sketch.rejections && Object.keys(sketch.rejections).length > 0 ? { rejections: sketch.rejections } : {}));
|
|
249
|
+
const file = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ target: (0, resolve_product_1.partKeyOf)(sketch) }, (sketch.targets.length > 1 ? { targets: sketch.targets } : {})), { status: sketch.status, createdAt: sketch.createdAt }), (sketch.baseline ? { baseline: sketch.baseline } : {})), (sketch.decision ? { decision: sketch.decision } : {})), { rounds: sketch.rounds }), (Object.keys(sketch.variantInfo).length > 0 ? { variantInfo: sketch.variantInfo } : {})), (sketch.rejections && Object.keys(sketch.rejections).length > 0 ? { rejections: sketch.rejections } : {})), (sketch.merge ? { merge: sketch.merge } : {})), (sketch.hold ? { hold: sketch.hold } : {}));
|
|
205
250
|
(0, fs_1.writeFileSync)((0, path_1.resolve)(sketch.dir, exports.SKETCH_FILE), (0, json_layout_1.jsonLayoutOf)(file));
|
|
206
251
|
};
|
|
207
252
|
exports.writeSketchFile = writeSketchFile;
|
|
@@ -279,6 +324,22 @@ const copyPartAs = (options) => {
|
|
|
279
324
|
const source = (0, fs_1.readFileSync)(file, 'utf8').split(`./${from.name}.css`).join(`./${name}.css`);
|
|
280
325
|
(0, fs_1.writeFileSync)(file, (_a = (0, part_definition_1.withMadeBy)(source, [])) !== null && _a !== void 0 ? _a : source);
|
|
281
326
|
};
|
|
327
|
+
/** Why the sketch cannot open with `merge` on its targets, or `null`: a base part merges into the base unless `override`. */
|
|
328
|
+
const mergeProblemOf = (options) => {
|
|
329
|
+
var _a, _b, _c;
|
|
330
|
+
const { product, targets, merge } = options;
|
|
331
|
+
const originOf = (key) => { var _a; return (_a = product.parts.find((part) => (0, resolve_product_1.partKeyOf)(part) === key)) === null || _a === void 0 ? void 0 : _a.origin; };
|
|
332
|
+
const overridden = targets.filter((key) => originOf(key) === 'overridden');
|
|
333
|
+
const fromBase = targets.filter((key) => originOf(key) === 'base' || originOf(key) === 'overridden');
|
|
334
|
+
const baseName = (_b = (_a = product.base) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : 'base';
|
|
335
|
+
if (merge === 'into-base' && overridden.length === 0)
|
|
336
|
+
return `--into-base: ${product.name} has no override of ${targets.join(', ')}`;
|
|
337
|
+
if (merge === undefined && overridden.length > 0)
|
|
338
|
+
return `${product.name} overrides the ${baseName} base part ${overridden.join(', ')} - pass --override to sketch the product copy, or --into-base to start from it and merge into the base, which removes the copy`;
|
|
339
|
+
if (merge !== 'override' && fromBase.length > 0 && product.base && (0, base_1.isBuiltInBase)((_c = product.config.base) !== null && _c !== void 0 ? _c : ''))
|
|
340
|
+
return `${fromBase.join(', ')} comes from the built-in base ${product.config.base}, which a sketch cannot merge into - pass --override`;
|
|
341
|
+
return null;
|
|
342
|
+
};
|
|
282
343
|
const variantInfoOf = (options) => {
|
|
283
344
|
var _a;
|
|
284
345
|
return (Object.assign(Object.assign(Object.assign({}, (options.author ? { authors: [options.author] } : {})), { round: options.round }), (((_a = options.note) === null || _a === void 0 ? void 0 : _a.trim()) ? { note: options.note.trim() } : {})));
|
|
@@ -288,63 +349,68 @@ const variantInfoOf = (options) => {
|
|
|
288
349
|
* author. Each variant starts from `like` when given - renamed to the target, without its `madeBy`, and with its
|
|
289
350
|
* sketch's `shared/` folder - else from the part the product resolves for the target, or from an empty part when the
|
|
290
351
|
* target is new. A part's own `shared/` folder becomes the sketch's, imported as `@shared/`. A target holds one open
|
|
291
|
-
* sketch at a time.
|
|
352
|
+
* sketch at a time. Each of `others` joins every variant the same way, as a further target; `like` takes one target only.
|
|
353
|
+
* A target the product overrides in its base needs `merge`: `override` or `into-base`.
|
|
292
354
|
*/
|
|
293
355
|
const createSketch = (options) => {
|
|
294
|
-
|
|
356
|
+
var _a;
|
|
357
|
+
const { product, sketch, variants, roundTitle, roundNote, author, like, variantNotes, merge } = options;
|
|
295
358
|
const dir = (0, exports.sketchDirOf)({ productDir: product.dir, sketch });
|
|
296
359
|
const key = (0, resolve_product_1.partKeyOf)(sketch);
|
|
297
|
-
|
|
298
|
-
|
|
360
|
+
const all = [sketch, ...((_a = options.others) !== null && _a !== void 0 ? _a : [])];
|
|
361
|
+
const targets = all.map(resolve_product_1.partKeyOf);
|
|
362
|
+
if (new Set(targets).size !== targets.length)
|
|
363
|
+
return 'name each target once';
|
|
364
|
+
if (like && all.length > 1)
|
|
365
|
+
return '--like starts one target - open a sketch with several targets without it';
|
|
366
|
+
const taken = all.find((target) => (0, exports.findSketch)({ productDir: product.dir, product: product.name, sketch: target }) !== null);
|
|
367
|
+
if ((0, fs_1.existsSync)(dir) || taken)
|
|
368
|
+
return `${(0, resolve_product_1.partKeyOf)(taken !== null && taken !== void 0 ? taken : sketch)} already has an open sketch - merge or discard it first`;
|
|
299
369
|
if (variants.length === 0)
|
|
300
370
|
return 'name at least one variant';
|
|
371
|
+
const mergeProblem = mergeProblemOf({ product, targets, merge });
|
|
372
|
+
if (mergeProblem)
|
|
373
|
+
return mergeProblem;
|
|
301
374
|
const invalid = variants.find((variant) => !(0, exports.isVariantName)(variant));
|
|
302
375
|
if (invalid !== undefined)
|
|
303
376
|
return `"${invalid}" is no variant name - use lower case letters, digits and dashes, and not "shared"`;
|
|
304
377
|
if (new Set(variants).size !== variants.length)
|
|
305
378
|
return 'each variant name must be unique';
|
|
306
|
-
const
|
|
379
|
+
const clash = like
|
|
380
|
+
? undefined
|
|
381
|
+
: sharedClashOf(all.map((target) => product.parts.find((part) => (0, resolve_product_1.partKeyOf)(part) === (0, resolve_product_1.partKeyOf)(target))));
|
|
382
|
+
if (clash)
|
|
383
|
+
return clash;
|
|
307
384
|
for (const variant of variants) {
|
|
308
|
-
const folder = (0, path_1.resolve)(dir, variant, sketch.layer, sketch.name);
|
|
309
|
-
(0, fs_1.mkdirSync)(folder, { recursive: true });
|
|
310
385
|
(0, fs_1.mkdirSync)((0, path_1.resolve)(dir, variant, assets_1.ASSETS_FOLDER), { recursive: true });
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
386
|
+
for (const target of all) {
|
|
387
|
+
const folder = (0, path_1.resolve)(dir, variant, target.layer, target.name);
|
|
388
|
+
const existing = product.parts.find((part) => (0, resolve_product_1.partKeyOf)(part) === (0, resolve_product_1.partKeyOf)(target));
|
|
389
|
+
(0, fs_1.mkdirSync)(folder, { recursive: true });
|
|
390
|
+
if (like) {
|
|
391
|
+
copyPartAs({ from: like, to: folder, name: target.name });
|
|
392
|
+
liftShared({ partDir: folder, sketchSharedDir: (0, path_1.resolve)(dir, imports_1.SHARED_FOLDER) });
|
|
393
|
+
}
|
|
394
|
+
else if (existing) {
|
|
395
|
+
(0, fs_1.cpSync)((0, path_1.resolve)(existing.file, '..'), folder, { recursive: true });
|
|
396
|
+
liftShared({ partDir: folder, sketchSharedDir: (0, path_1.resolve)(dir, imports_1.SHARED_FOLDER) });
|
|
397
|
+
}
|
|
398
|
+
else if (target.layer === 'pages') {
|
|
321
399
|
const widths = [...new Set(Object.values(product.presets).map((preset) => preset.width))].sort((a, b) => a - b);
|
|
322
|
-
(0, fs_1.writeFileSync)((0, path_1.resolve)(folder, `${
|
|
400
|
+
(0, fs_1.writeFileSync)((0, path_1.resolve)(folder, `${target.name}.ts`), pageStubOf({ name: target.name, madeBy: author, widths }));
|
|
323
401
|
}
|
|
324
402
|
else {
|
|
325
|
-
(0, fs_1.writeFileSync)((0, path_1.resolve)(folder, `${
|
|
326
|
-
(0, fs_1.writeFileSync)((0, path_1.resolve)(folder, `${
|
|
403
|
+
(0, fs_1.writeFileSync)((0, path_1.resolve)(folder, `${target.name}.ts`), stubOf(target.name));
|
|
404
|
+
(0, fs_1.writeFileSync)((0, path_1.resolve)(folder, `${target.name}.css`), '');
|
|
327
405
|
}
|
|
328
406
|
}
|
|
329
407
|
}
|
|
330
408
|
if (like === null || like === void 0 ? void 0 : like.shared)
|
|
331
|
-
(0, fs_1.cpSync)(like.shared, (0, path_1.resolve)(dir,
|
|
332
|
-
const created = {
|
|
333
|
-
target: key,
|
|
334
|
-
status: 'in progress',
|
|
335
|
-
createdAt: new Date().toISOString(),
|
|
336
|
-
baseline: (0, baseline_1.baselineOf)(product),
|
|
337
|
-
rounds: [firstRoundOf(roundTitle, roundNote)],
|
|
338
|
-
variantInfo: Object.fromEntries(variants.map((variant) => [
|
|
409
|
+
(0, fs_1.cpSync)(like.shared, (0, path_1.resolve)(dir, imports_1.SHARED_FOLDER), { recursive: true });
|
|
410
|
+
const created = Object.assign({ target: key, targets, status: 'in progress', createdAt: new Date().toISOString(), baseline: (0, baseline_1.baselineOf)(product), rounds: [firstRoundOf(roundTitle, roundNote)], variantInfo: Object.fromEntries(variants.map((variant) => [
|
|
339
411
|
variant,
|
|
340
412
|
variantInfoOf({ round: FIRST_ROUND, author, note: variantNotes === null || variantNotes === void 0 ? void 0 : variantNotes.get(variant) }),
|
|
341
|
-
])),
|
|
342
|
-
product: product.name,
|
|
343
|
-
layer: sketch.layer,
|
|
344
|
-
name: sketch.name,
|
|
345
|
-
dir,
|
|
346
|
-
variants: [...variants].sort(),
|
|
347
|
-
};
|
|
413
|
+
])), product: product.name, layer: sketch.layer, name: sketch.name, dir, variants: [...variants].sort() }, (merge ? { merge } : {}));
|
|
348
414
|
(0, exports.writeSketchFile)(created);
|
|
349
415
|
return created;
|
|
350
416
|
};
|
|
@@ -430,6 +496,9 @@ const markSketchReady = (options) => {
|
|
|
430
496
|
const { checkout, sketch, author } = options;
|
|
431
497
|
if (sketch.status !== 'in progress')
|
|
432
498
|
return `${sketch.target} is ${sketch.status}, not in progress`;
|
|
499
|
+
const held = (0, exports.heldProblemOf)(sketch);
|
|
500
|
+
if (held !== null)
|
|
501
|
+
return held;
|
|
433
502
|
if (sketch.variants.length === 0)
|
|
434
503
|
return `${sketch.target} holds no variant`;
|
|
435
504
|
const authored = author
|
|
@@ -443,6 +512,34 @@ const markSketchReady = (options) => {
|
|
|
443
512
|
return ready;
|
|
444
513
|
};
|
|
445
514
|
exports.markSketchReady = markSketchReady;
|
|
515
|
+
/** Why a held sketch cannot be ready, or `null` when it holds nothing. */
|
|
516
|
+
const heldProblemOf = (sketch) => sketch.hold ? `${sketch.target} is held until: ${sketch.hold.until} - make the change, then sketch release it` : null;
|
|
517
|
+
exports.heldProblemOf = heldProblemOf;
|
|
518
|
+
/**
|
|
519
|
+
* Holds a sketch until a change that waits on something is made: it goes back to in progress, which drops a pick
|
|
520
|
+
* and takes it out of the merge queue, and `sketch ready` refuses until the hold is released.
|
|
521
|
+
*/
|
|
522
|
+
const holdSketch = (options) => {
|
|
523
|
+
const { sketch, by, now = new Date() } = options;
|
|
524
|
+
const until = options.until.trim();
|
|
525
|
+
if (until === '')
|
|
526
|
+
return 'a hold needs --until <what the change waits on>';
|
|
527
|
+
const { decision: _decision } = sketch, undecided = __rest(sketch, ["decision"]);
|
|
528
|
+
const held = Object.assign(Object.assign({}, undecided), { status: 'in progress', hold: { until, by, heldAt: now.toISOString() } });
|
|
529
|
+
(0, exports.writeSketchFile)(held);
|
|
530
|
+
return held;
|
|
531
|
+
};
|
|
532
|
+
exports.holdSketch = holdSketch;
|
|
533
|
+
/** Removes the hold on a sketch, so it can be marked ready again. */
|
|
534
|
+
const releaseSketch = (options) => {
|
|
535
|
+
const { sketch } = options;
|
|
536
|
+
if (!sketch.hold)
|
|
537
|
+
return `${sketch.target} is not held`;
|
|
538
|
+
const { hold: _hold } = sketch, released = __rest(sketch, ["hold"]);
|
|
539
|
+
(0, exports.writeSketchFile)(released);
|
|
540
|
+
return released;
|
|
541
|
+
};
|
|
542
|
+
exports.releaseSketch = releaseSketch;
|
|
446
543
|
const withVerdict = (sketch, verdict) => {
|
|
447
544
|
var _a, _b, _c, _d;
|
|
448
545
|
const { variant, by } = verdict;
|