@owlmeans/planning 0.1.18-rc.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.
- package/README.md +169 -0
- package/agent-meta/manifest.json +16 -0
- package/agent-meta/skills/planning/SKILL.md +248 -0
- package/build/consts.d.ts +126 -0
- package/build/consts.d.ts.map +1 -0
- package/build/consts.js +129 -0
- package/build/consts.js.map +1 -0
- package/build/entrypoints.d.ts +14 -0
- package/build/entrypoints.d.ts.map +1 -0
- package/build/entrypoints.js +69 -0
- package/build/entrypoints.js.map +1 -0
- package/build/errors.d.ts +94 -0
- package/build/errors.d.ts.map +1 -0
- package/build/errors.js +169 -0
- package/build/errors.js.map +1 -0
- package/build/helpers/apply.d.ts +27 -0
- package/build/helpers/apply.d.ts.map +1 -0
- package/build/helpers/apply.js +162 -0
- package/build/helpers/apply.js.map +1 -0
- package/build/helpers/card.d.ts +17 -0
- package/build/helpers/card.d.ts.map +1 -0
- package/build/helpers/card.js +31 -0
- package/build/helpers/card.js.map +1 -0
- package/build/helpers/changes.d.ts +51 -0
- package/build/helpers/changes.d.ts.map +1 -0
- package/build/helpers/changes.js +277 -0
- package/build/helpers/changes.js.map +1 -0
- package/build/helpers/code.d.ts +24 -0
- package/build/helpers/code.d.ts.map +1 -0
- package/build/helpers/code.js +47 -0
- package/build/helpers/code.js.map +1 -0
- package/build/helpers/index.d.ts +9 -0
- package/build/helpers/index.d.ts.map +1 -0
- package/build/helpers/index.js +9 -0
- package/build/helpers/index.js.map +1 -0
- package/build/helpers/query.d.ts +39 -0
- package/build/helpers/query.d.ts.map +1 -0
- package/build/helpers/query.js +293 -0
- package/build/helpers/query.js.map +1 -0
- package/build/helpers/specification.d.ts +21 -0
- package/build/helpers/specification.d.ts.map +1 -0
- package/build/helpers/specification.js +48 -0
- package/build/helpers/specification.js.map +1 -0
- package/build/helpers/status.d.ts +44 -0
- package/build/helpers/status.d.ts.map +1 -0
- package/build/helpers/status.js +78 -0
- package/build/helpers/status.js.map +1 -0
- package/build/helpers/validate.d.ts +30 -0
- package/build/helpers/validate.d.ts.map +1 -0
- package/build/helpers/validate.js +93 -0
- package/build/helpers/validate.js.map +1 -0
- package/build/i18n/be.json +51 -0
- package/build/i18n/de.json +51 -0
- package/build/i18n/en.json +51 -0
- package/build/i18n/es.json +51 -0
- package/build/i18n/pl.json +51 -0
- package/build/i18n/ru.json +51 -0
- package/build/i18n/uk.json +51 -0
- package/build/i18n.d.ts +2 -0
- package/build/i18n.d.ts.map +1 -0
- package/build/i18n.js +19 -0
- package/build/i18n.js.map +1 -0
- package/build/index.d.ts +10 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +9 -0
- package/build/index.js.map +1 -0
- package/build/models/index.d.ts +7 -0
- package/build/models/index.d.ts.map +1 -0
- package/build/models/index.js +19 -0
- package/build/models/index.js.map +1 -0
- package/build/models/project.d.ts +4 -0
- package/build/models/project.d.ts.map +1 -0
- package/build/models/project.js +17 -0
- package/build/models/project.js.map +1 -0
- package/build/models/specification.d.ts +4 -0
- package/build/models/specification.d.ts.map +1 -0
- package/build/models/specification.js +15 -0
- package/build/models/specification.js.map +1 -0
- package/build/models/workcard.d.ts +14 -0
- package/build/models/workcard.d.ts.map +1 -0
- package/build/models/workcard.js +103 -0
- package/build/models/workcard.js.map +1 -0
- package/build/queue/index.d.ts +25 -0
- package/build/queue/index.d.ts.map +1 -0
- package/build/queue/index.js +14 -0
- package/build/queue/index.js.map +1 -0
- package/build/registry.d.ts +10 -0
- package/build/registry.d.ts.map +1 -0
- package/build/registry.js +75 -0
- package/build/registry.js.map +1 -0
- package/build/schemas.d.ts +56 -0
- package/build/schemas.d.ts.map +1 -0
- package/build/schemas.js +578 -0
- package/build/schemas.js.map +1 -0
- package/build/types.d.ts +785 -0
- package/build/types.d.ts.map +1 -0
- package/build/types.js +2 -0
- package/build/types.js.map +1 -0
- package/package.json +58 -0
- package/src/consts.ts +136 -0
- package/src/entrypoints.ts +127 -0
- package/src/errors.ts +207 -0
- package/src/helpers/apply.ts +183 -0
- package/src/helpers/card.ts +42 -0
- package/src/helpers/changes.ts +333 -0
- package/src/helpers/code.ts +66 -0
- package/src/helpers/index.ts +8 -0
- package/src/helpers/query.ts +345 -0
- package/src/helpers/specification.ts +65 -0
- package/src/helpers/status.ts +117 -0
- package/src/helpers/validate.ts +107 -0
- package/src/i18n/be.json +51 -0
- package/src/i18n/de.json +51 -0
- package/src/i18n/en.json +51 -0
- package/src/i18n/es.json +51 -0
- package/src/i18n/pl.json +51 -0
- package/src/i18n/ru.json +51 -0
- package/src/i18n/uk.json +51 -0
- package/src/i18n.ts +21 -0
- package/src/index.ts +9 -0
- package/src/models/index.ts +21 -0
- package/src/models/project.ts +24 -0
- package/src/models/specification.ts +21 -0
- package/src/models/workcard.ts +138 -0
- package/src/queue/index.ts +31 -0
- package/src/registry.ts +90 -0
- package/src/schemas.ts +654 -0
- package/src/types.ts +837 -0
- package/tests/apply.spec.ts +176 -0
- package/tests/code.spec.ts +40 -0
- package/tests/entrypoints.spec.ts +57 -0
- package/tests/fixtures.ts +124 -0
- package/tests/i18n.spec.ts +30 -0
- package/tests/models.spec.ts +133 -0
- package/tests/query.spec.ts +90 -0
- package/tests/schemas.spec.ts +74 -0
- package/tests/status.spec.ts +75 -0
- package/tests/tsconfig.json +17 -0
- package/tsconfig.json +15 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACtF,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAC3F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,KAAK,CAAA;AACtD,OAAO,KAAK,EACV,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,mBAAmB,EACxF,gBAAgB,EAAE,YAAY,EAC/B,MAAM,aAAa,CAAA;AAIpB;;;;GAIG;AACH,MAAM,WAAW,QAAS,SAAQ,cAAc;IAC9C,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,YAAY,CAAA;IAClB,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAA;IACZ,kEAAkE;IAClE,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,6FAA6F;IAC7F,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAA;IACd,8DAA8D;IAC9D,SAAS,EAAE,eAAe,CAAA;IAC1B,mFAAmF;IACnF,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,+DAA+D;IAC/D,GAAG,EAAE,MAAM,CAAA;IACX,gFAAgF;IAChF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,OAAQ,SAAQ,QAAQ;IACvC,IAAI,EAAE,YAAY,CAAC,OAAO,CAAA;CAC3B;AAED,MAAM,WAAW,IAAK,SAAQ,QAAQ;IACpC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAA;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAc,SAAQ,QAAQ;IAC7C,IAAI,EAAE,YAAY,CAAC,aAAa,CAAA;IAChC,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,mBAAmB,CAAA;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,OAAO,GAAG,aAAa,CAAA;AAExD,yFAAyF;AACzF,MAAM,WAAW,YAAa,SAAQ,cAAc;IAClD,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACjC;AAED,oGAAoG;AACpG,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,6FAA6F;IAC7F,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,WAAW,CAAA;IAClB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,WAAW,CAAC,CAAC,GAC3F,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC,CAAC,CAAA;AAE/G,2GAA2G;AAC3G,MAAM,WAAW,UAAW,SAAQ,cAAc;IAChD,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,YAAY,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,gBAAgB,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,eAAe,CAAA;IACxB,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,IAAI,CAAC,EAAE,iBAAiB,CAAA;IACxB,kEAAkE;IAClE,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAA;IAC3B,KAAK,EAAE,eAAe,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,0CAA0C;IAC1C,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,gBAAgB,CAAA;CACzB;AAID,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,eAAe,CAAA;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAA;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wCAAwC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,sDAAsD;AACtD,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,gBAAgB,EAAE,CAAA;IAC5B,WAAW,EAAE,oBAAoB,EAAE,CAAA;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,mBAAmB,CAAA;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gDAAgD;IAChD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iCAAiC;IACjC,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,6FAA6F;IAC7F,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,SAAS,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,YAAY,EAAE,SAAS,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,4DAA4D;IAC5D,EAAE,CAAC,EAAE,MAAM,EAAE,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,YAAY,CAAC,IAAI,GAAG,YAAY,CAAC,aAAa,CAAA;IACpD,OAAO,EAAE,MAAM,CAAA;IACf,+BAA+B;IAC/B,MAAM,EAAE,SAAS,CAAA;IACjB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,gDAAgD;IAChD,cAAc,EAAE,iBAAiB,EAAE,CAAA;IACnC,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAClC,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACzE,IAAI,EAAE,YAAY,CAAC,OAAO,CAAA;IAC1B,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;CACxB;AAED,MAAM,MAAM,aAAa,GAAG,kBAAkB,GAAG,iBAAiB,CAAA;AAElE,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,aAAa,EAAE,CAAA;IACtB,KAAK,EAAE,gBAAgB,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAA;IAC7C,YAAY,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAA;IAC9C,KAAK,EAAE,MAAM,aAAa,EAAE,CAAA;IAC5B,oCAAoC;IACpC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,aAAa,CAAA;IACrC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAA;IAC9B,KAAK,EAAE,MAAM,gBAAgB,EAAE,CAAA;IAC/B,kCAAkC;IAClC,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,gBAAgB,CAAA;IACtC,wDAAwD;IACxD,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,gBAAgB,CAAA;IAC/C,2DAA2D;IAC3D,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,gBAAgB,CAAA;IAC7C,MAAM,EAAE,MAAM,oBAAoB,CAAA;IAClC,0DAA0D;IAC1D,IAAI,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAA;CAC7C;AAID,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,YAAY,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,kFAAkF;IAClF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,mBAAmB,CAAA;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,4DAA4D;IAC5D,IAAI,EAAE,MAAM,GAAG,aAAa,CAAA;IAC5B,MAAM,EAAE,gBAAgB,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,IAAI,CAAC,EAAE,iBAAiB,CAAA;IACxB,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAA;IAC3B,kEAAkE;IAClE,KAAK,CAAC,EAAE,eAAe,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,cAAe,SAAQ,mBAAmB,EAAE,cAAc;CAAI;AAE/E,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,UAAU,CAAA;IACtB,6EAA6E;IAC7E,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAA;IACtB,6CAA6C;IAC7C,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;CACrE;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAA;CACvB;AAID,kGAAkG;AAClG,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,YAAY,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,gBAAgB,CAAA;IACxB,KAAK,EAAE,WAAW,CAAA;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAA;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,WAAW,CAAA;IAClB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAA;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,YAAY,CAAA;CACpB;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAA;AAEpC,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;IACrD,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,EAAE,YAAY,KAAK,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IAChI,6CAA6C;IAC7C,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;CACpF;AAID,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,MAAM,CAAC,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,CAAA;CAC/C;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;IACvD,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAA;IAC/C,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAA;IACpE,IAAI,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAA;IACjG,qFAAqF;IACrF,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAClE,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IACvC,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/D,KAAK,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CACnD;AAED,MAAM,WAAW,eAAgB,SAAQ,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC;IACtE,KAAK,EAAE,MAAM,CAAA;CACd;AAED,kFAAkF;AAClF,MAAM,WAAW,WAAW;IAC1B,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAAA;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;IAC/D,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAA;IAChG,KAAK,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IACrD,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,WAAW,CAAC,CAAA;IAChF,GAAG,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtC,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACrD,wFAAwF;IACxF,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACxE,gDAAgD;IAChD,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CAC9D;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,CAAC,EAAE,eAAe,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,qBAAqB,EAAE,CAAA;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;IAC9F,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,kBAAkB,KAAK,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAA;IAC1G,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAA;CAC9F;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAA;IAChB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACxB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAA;IACvG,GAAG,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;IAClD,IAAI,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CACpD;AAED,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,OAAO,CAAA;IACpB,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;IACd,SAAS,EAAE,OAAO,CAAA;CACnB;AAED,kFAAkF;AAClF,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,yBAAyB,CAAA;IACxC,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,eAAe,CAAA;IAC7B,KAAK,EAAE,eAAe,CAAA;IACtB,KAAK,CAAC,EAAE,kBAAkB,CAAA;IAC1B,KAAK,CAAC,EAAE,iBAAiB,CAAA;IACzB,OAAO,CAAC,EAAE,YAAY,CAAA;CACvB;AAID,MAAM,WAAW,aAAc,SAAQ,WAAW,CAAC,QAAQ,CAAC;IAC1D,IAAI,CAAC,EAAE,YAAY,GAAG,YAAY,EAAE,CAAA;IACpC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACxB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC1B,SAAS,CAAC,EAAE,eAAe,GAAG,eAAe,EAAE,CAAA;IAC/C,IAAI,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAA;IAChD,cAAc;IACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACxB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;IACd,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,0DAA0D;IAC1D,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,kBAAmB,SAAQ,WAAW,CAAC,aAAa,CAAC;IACpE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC5B,4DAA4D;IAC5D,GAAG,CAAC,EAAE,OAAO,CAAA;CACd;AAED,MAAM,WAAW,iBAAkB,SAAQ,WAAW,CAAC,YAAY,CAAC;IAClE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACxB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CACzB;AAED,MAAM,WAAW,eAAgB,SAAQ,WAAW,CAAC,UAAU,CAAC;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,CAAA;IAC9C,KAAK,CAAC,EAAE,WAAW,CAAA;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CACzB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,iBAAkB,SAAQ,QAAQ;IACjD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,sBAAuB,SAAQ,QAAQ;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,OAAO,CAAA;CACd;AAED,MAAM,WAAW,qBAAsB,SAAQ,QAAQ;IACrD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,mBAAoB,SAAQ,QAAQ;IACnD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;CACX;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,uDAAuD;IACvD,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAID,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,eAAe,CAAA;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,aAAa,CAAA;IACpB,OAAO,EAAE,sBAAsB,CAAA;IAC/B,KAAK,EAAE;QACL,iCAAiC;QACjC,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;QACtC,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;QAC9C,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,aAAa,KAAK,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC9D,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,aAAa,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;QACjD,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,KAAK,OAAO,CAAC,WAAW,CAAC,CAAA;KAC5F,CAAA;IACD,cAAc,EAAE;QACd,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;QAC5E,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,kBAAkB,KAAK,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAA;QACxF,iCAAiC;QACjC,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC,CAAA;QAC3C,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAA;KAC5E,CAAA;IACD,aAAa,EAAE;QACb,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,iBAAiB,KAAK,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAA;KACvE,CAAA;IACD,WAAW,EAAE;QACX,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;QACxC,IAAI,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAA;KAClE,CAAA;IACD,OAAO,EAAE,YAAY,CAAA;IACrB,OAAO,EAAE,CAAC,IAAI,EAAE,mBAAmB,EAAE,IAAI,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACzF,KAAK,EAAE,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;CACtF;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,eAAe,CAAA;CAChC;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,CAAA;IAClC,KAAK,EAAE,aAAa,CAAA;IACpB,OAAO,EAAE,sBAAsB,CAAA;IAC/B,KAAK,EAAE,aAAa,CAAA;IACpB,uEAAuE;IACvE,MAAM,EAAE,cAAc,CAAA;IACtB,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,MAAM,CAAC,EAAE,QAAQ,CAAA;IACjB,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB,IAAI,CAAC,EAAE,gBAAgB,CAAA;IACvB,MAAM,EAAE,cAAc,CAAA;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,CAAA;IAClC,OAAO,EAAE,sBAAsB,CAAA;IAC/B,KAAK,EAAE,aAAa,CAAA;IACpB,MAAM,EAAE,cAAc,CAAA;IACtB,2EAA2E;IAC3E,MAAM,EAAE,cAAc,CAAA;IACtB,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAA;CAC3F;AAED,MAAM,WAAW,kBAAkB;IACjC,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC9D;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,QAAQ,CAAA;IACxD,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAA;CACzC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAA;KAAE,CAAA;IACjE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAA;IAChC,KAAK,CAAC,EAAE,aAAa,GAAG,CAAC,CAAC,GAAG,EAAE,YAAY,CAAC,WAAW,CAAC,KAAK,aAAa,CAAC,CAAA;IAC3E,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,mBAAmB,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IACrI,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B,KAAK,CAAC,EAAE,kBAAkB,CAAA;IAC1B,OAAO,CAAC,EAAE,eAAe,CAAA;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAA;IACrC,OAAO,EAAE,MAAM,cAAc,EAAE,CAAA;IAC/B,OAAO,EAAE,sBAAsB,CAAA;IAC/B,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,aAAa,CAAA;IACvC,GAAG,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,cAAc,CAAA;IAC7C,yFAAyF;IACzF,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACjD;AAID,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,eAAe,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B;AAED,MAAM,MAAM,mBAAmB,GAAG,cAAc,GAAG,WAAW,CAAA;AAE9D,MAAM,WAAW,yBAA0B,SAAQ,mBAAmB;IACpE,MAAM,CAAC,EAAE,mBAAmB,CAAA;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,oFAAoF;IACpF,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ;IAC1D,MAAM,EAAE,CAAC,CAAA;IACT,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,YAAY,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,aAAa,CAAA;IAC3B,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,gBAAgB,CAAA;IACvC,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IACrC,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,eAAe,CAAA;IACjD,GAAG,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAA;IACrD,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,oBAAoB,EAAE,CAAA;IACtD,OAAO,EAAE,MAAM,OAAO,CAAA;IACtB,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACtI,MAAM,EAAE,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACnH,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,mBAAmB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAClE,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,mBAAmB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAC5H,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,mBAAmB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAC5F,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAA;IAClF,aAAa,EAAE,CAAC,KAAK,CAAC,EAAE,iBAAiB,KAAK,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAA;IAC/E,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAA;IACvF,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;IAClE,cAAc,EAAE,CAAC,KAAK,CAAC,EAAE,kBAAkB,KAAK,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAA;IAClF,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAA;IACjF,uEAAuE;IACvE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,yBAAyB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACvG,MAAM,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;CACxC;AAED,MAAM,WAAW,YAAa,SAAQ,aAAa,CAAC,OAAO,CAAC;IAC1D,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG,MAAM,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAA;IACxF,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG,MAAM,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC3F,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,KAAK,OAAO,CAAC,eAAe,CAAC,CAAA;IAC5E,yEAAyE;IACzE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,mBAAmB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACjE,MAAM,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,CAAA;CACpC;AAED,MAAM,WAAW,kBAAmB,SAAQ,aAAa,CAAC,aAAa,CAAC;IACtE,IAAI,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;IAC9B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACrH,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAA;IAC7D,MAAM,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAA;CAC1C;AAID,MAAM,WAAW,mBAAmB;IAClC,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAA;IACb,mCAAmC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,mBAAmB,CAAA;IACzB,oEAAoE;IACpE,MAAM,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAA;IAClC,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAA;KAAE,CAAA;IAC7D;;;OAGG;IACH,UAAU,CAAC,EAAE,WAAW,CAAA;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,kBAAkB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IAChD,MAAM,EAAE;QACN,IAAI,EAAE,kBAAkB,CAAC,EAAE,EAAE,oBAAoB,CAAC,CAAA;KACnD,CAAA;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,kBAAkB,CAAC;YAAE,KAAK,EAAE,iBAAiB,CAAA;SAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC5E,OAAO,EAAE,kBAAkB,CAAC;YAAE,KAAK,EAAE,gBAAgB,CAAA;SAAE,EAAE,WAAW,CAAC,CAAA;QACrE,GAAG,EAAE,kBAAkB,CAAC;YAAE,MAAM,EAAE,cAAc,CAAA;SAAE,EAAE,QAAQ,CAAC,CAAA;QAC7D,WAAW,EAAE,kBAAkB,CAAC;YAAE,MAAM,EAAE,cAAc,CAAC;YAAC,KAAK,EAAE,mBAAmB,CAAA;SAAE,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,CAAA;QAC/G,cAAc,EAAE,kBAAkB,CAAC;YAAE,MAAM,EAAE,cAAc,CAAC;YAAC,KAAK,EAAE,sBAAsB,CAAA;SAAE,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC,CAAA;KACzH,CAAA;IACD,IAAI,EAAE;QACJ,GAAG,EAAE,kBAAkB,CAAC;YAAE,MAAM,EAAE,cAAc,CAAA;SAAE,EAAE,aAAa,CAAC,CAAA;QAClE,SAAS,EAAE,kBAAkB,CAAC;YAAE,MAAM,EAAE,cAAc,CAAC;YAAC,KAAK,EAAE,cAAc,CAAA;SAAE,EAAE,yBAAyB,CAAC,CAAA;KAC5G,CAAA;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,kBAAkB,CAAC;YAAE,KAAK,EAAE,qBAAqB,CAAA;SAAE,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,CAAA;KACrF,CAAA;IACD,UAAU,EAAE;QACV,GAAG,EAAE,kBAAkB,CAAC;YAAE,MAAM,EAAE,gBAAgB,CAAA;SAAE,EAAE,UAAU,CAAC,CAAA;KAClE,CAAA;IACD,OAAO,EAAE,kBAAkB,CAAC;QAAE,IAAI,EAAE,cAAc,CAAA;KAAE,EAAE,qBAAqB,CAAC,CAAA;IAC5E,MAAM,EAAE;QACN,GAAG,EAAE,kBAAkB,CAAC;YAAE,MAAM,EAAE,gBAAgB,CAAC;YAAC,KAAK,EAAE,WAAW,CAAA;SAAE,EAAE,YAAY,CAAC,CAAA;QACvF,MAAM,EAAE,kBAAkB,CAAC;YAAE,KAAK,EAAE,eAAe,CAAA;SAAE,EAAE,WAAW,CAAC,CAAA;KACpE,CAAA;CACF"}
|
package/build/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@owlmeans/planning",
|
|
3
|
+
"version": "0.1.18-rc.0",
|
|
4
|
+
"license": "MIT",
|
|
5
|
+
"description": "Runtime-free project-planning contracts — the workcard super type, projects, specifications, typed relationships, status flows with three intrinsic states, the transition event and its pure fold, the schema registry, the models and the protocol tree.",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"build": "tsc -b",
|
|
9
|
+
"dev": "sleep 2 && nodemon -e ts,tsx,json --watch src --exec \"tsc -p ./tsconfig.json\"",
|
|
10
|
+
"watch": "tsc -b -w --preserveWatchOutput --pretty",
|
|
11
|
+
"test": "bun test ./tests"
|
|
12
|
+
},
|
|
13
|
+
"main": "build/index.js",
|
|
14
|
+
"module": "build/index.js",
|
|
15
|
+
"types": "build/index.d.ts",
|
|
16
|
+
"exports": {
|
|
17
|
+
".": {
|
|
18
|
+
"import": "./build/index.js",
|
|
19
|
+
"require": "./build/index.js",
|
|
20
|
+
"default": "./build/index.js",
|
|
21
|
+
"module": "./build/index.js",
|
|
22
|
+
"types": "./build/index.d.ts"
|
|
23
|
+
},
|
|
24
|
+
"./queue": {
|
|
25
|
+
"import": "./build/queue/index.js",
|
|
26
|
+
"require": "./build/queue/index.js",
|
|
27
|
+
"default": "./build/queue/index.js",
|
|
28
|
+
"module": "./build/queue/index.js",
|
|
29
|
+
"types": "./build/queue/index.d.ts"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"dependencies": {
|
|
33
|
+
"@owlmeans/auth": "^0.1.18-rc.26",
|
|
34
|
+
"@owlmeans/basic-ids": "^0.1.18-rc.25",
|
|
35
|
+
"@owlmeans/context": "^0.1.18-rc.24",
|
|
36
|
+
"@owlmeans/entrypoint": "^0.1.18-rc.27",
|
|
37
|
+
"@owlmeans/error": "^0.1.18-rc.26",
|
|
38
|
+
"@owlmeans/i18n": "^0.1.18-rc.27",
|
|
39
|
+
"@owlmeans/queue": "^0.1.18-rc.22",
|
|
40
|
+
"@owlmeans/resource": "^0.1.18-rc.26",
|
|
41
|
+
"@owlmeans/route": "^0.1.18-rc.25"
|
|
42
|
+
},
|
|
43
|
+
"peerDependencies": {
|
|
44
|
+
"ajv": "*",
|
|
45
|
+
"ajv-formats": "*"
|
|
46
|
+
},
|
|
47
|
+
"devDependencies": {
|
|
48
|
+
"@owlmeans/dep-config": "workspace:*",
|
|
49
|
+
"@types/bun": "^1.4.0",
|
|
50
|
+
"ajv": "^8.17.1",
|
|
51
|
+
"ajv-formats": "^3.0.1",
|
|
52
|
+
"nodemon": "^3.1.14",
|
|
53
|
+
"typescript": "^7.0.2"
|
|
54
|
+
},
|
|
55
|
+
"publishConfig": {
|
|
56
|
+
"access": "public"
|
|
57
|
+
}
|
|
58
|
+
}
|
package/src/consts.ts
ADDED
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/** What a workcard IS. Cards, projects and specifications share one id space and one fold. */
|
|
2
|
+
export enum WorkcardKind {
|
|
3
|
+
Card = 'card',
|
|
4
|
+
Project = 'project',
|
|
5
|
+
Specification = 'specification',
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* The three states every status of every flow maps onto.
|
|
10
|
+
*
|
|
11
|
+
* A provider's statuses are its own vocabulary; these three are the only ones generic code — a
|
|
12
|
+
* summary, a board header, a gate — ever reads.
|
|
13
|
+
*/
|
|
14
|
+
export enum IntrinsicStatus {
|
|
15
|
+
Planned = 'planned',
|
|
16
|
+
InProgress = 'in-progress',
|
|
17
|
+
Closed = 'closed',
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/** Advancement order — `resolveIntrinsic` under {@link IntrinsicPolicy.All} takes the minimum. */
|
|
21
|
+
export const INTRINSIC_ORDER: Readonly<Record<IntrinsicStatus, number>> = Object.freeze({
|
|
22
|
+
[IntrinsicStatus.Planned]: 0,
|
|
23
|
+
[IntrinsicStatus.InProgress]: 1,
|
|
24
|
+
[IntrinsicStatus.Closed]: 2,
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
/** How a type running several flows answers its one intrinsic status. */
|
|
28
|
+
export enum IntrinsicPolicy {
|
|
29
|
+
/** The primary flow's status decides. */
|
|
30
|
+
Primary = 'primary',
|
|
31
|
+
/** The least advanced flow decides — closed only when every flow is closed. */
|
|
32
|
+
All = 'all',
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export enum TransitionAction {
|
|
36
|
+
Create = 'create',
|
|
37
|
+
Update = 'update',
|
|
38
|
+
Transit = 'transit',
|
|
39
|
+
Link = 'link',
|
|
40
|
+
Unlink = 'unlink',
|
|
41
|
+
Delete = 'delete',
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export enum CommitState {
|
|
45
|
+
Pending = 'pending',
|
|
46
|
+
Committed = 'committed',
|
|
47
|
+
Failed = 'failed',
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export enum SpecificationFormat {
|
|
51
|
+
Markdown = 'markdown',
|
|
52
|
+
Json = 'json',
|
|
53
|
+
Text = 'text',
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export enum CodeStyle {
|
|
57
|
+
Random = 'random',
|
|
58
|
+
Sequential = 'sequential',
|
|
59
|
+
Slug = 'slug',
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/** Where a minted code must be unique. */
|
|
63
|
+
export enum CodeScope {
|
|
64
|
+
Parent = 'parent',
|
|
65
|
+
Entity = 'entity',
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/** Service alias of the planning facade host. Identical on the server and in a client. */
|
|
69
|
+
export const PLANNING_SERVICE = 'planning'
|
|
70
|
+
|
|
71
|
+
/** The path segment the protocol tree answers under when the mount names none. */
|
|
72
|
+
export const PLANNING_PATH = '/planning'
|
|
73
|
+
|
|
74
|
+
/** The socket frame name the commit feed pushes under. */
|
|
75
|
+
export const PLANNING_COMMIT_EVENT = 'planning-commit'
|
|
76
|
+
|
|
77
|
+
/** The i18n resource the package's labels are registered under (`lib:planning.*`). */
|
|
78
|
+
export const PLANNING_I18N = 'planning'
|
|
79
|
+
|
|
80
|
+
/** A `from` that matches every status of the flow. */
|
|
81
|
+
export const ANY_STATUS = '*'
|
|
82
|
+
|
|
83
|
+
/** How long `committed()` waits by default, in milliseconds. */
|
|
84
|
+
export const DEFAULT_COMMIT_TIMEOUT = 30_000
|
|
85
|
+
/** Seconds a single long poll of `commit.get` holds by default. */
|
|
86
|
+
export const DEFAULT_COMMIT_POLL = 20
|
|
87
|
+
/** The longest single long poll a server grants, in seconds. */
|
|
88
|
+
export const MAX_COMMIT_POLL = 55
|
|
89
|
+
/** Re-rolls a code policy gets before it refuses with `CodeTaken`. */
|
|
90
|
+
export const CODE_MINT_ATTEMPTS = 8
|
|
91
|
+
/** Random part length of a code policy that names none. */
|
|
92
|
+
export const DEFAULT_CODE_LENGTH = 6
|
|
93
|
+
export const DEFAULT_PLUGIN_ORDER = 50
|
|
94
|
+
export const DEFAULT_PAGE_SIZE = 100
|
|
95
|
+
export const PLANNING_SCHEMA_VERSION = 1
|
|
96
|
+
|
|
97
|
+
export const TITLE_MAX = 2048
|
|
98
|
+
export const DESCRIPTION_MAX = 16384
|
|
99
|
+
export const CODE_MAX = 64
|
|
100
|
+
export const TYPE_MAX = 128
|
|
101
|
+
export const LABEL_MAX = 64
|
|
102
|
+
export const MAX_LABELS = 32
|
|
103
|
+
export const MAX_PARENTS = 32
|
|
104
|
+
export const BODY_MAX = 1_048_576
|
|
105
|
+
export const CAUSE_MAX = 256
|
|
106
|
+
export const KEY_MAX = 256
|
|
107
|
+
export const REF_MAX = 1024
|
|
108
|
+
export const QUERY_TEXT_MAX = 256
|
|
109
|
+
/** The longest list a wire query carries in one value (ids, parents). */
|
|
110
|
+
export const MAX_QUERY_LIST = 500
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* The aliases one planning tree answers under, derived from the mount's base alias.
|
|
114
|
+
*
|
|
115
|
+
* Two mounts of the tree in one deployment are two base aliases, never two copies of this table —
|
|
116
|
+
* which is why nothing here is a global constant.
|
|
117
|
+
*/
|
|
118
|
+
export const planningAliases = (base: string) => Object.freeze({
|
|
119
|
+
base,
|
|
120
|
+
schema: Object.freeze({ list: `${base}:schema:list` }),
|
|
121
|
+
card: Object.freeze({
|
|
122
|
+
list: `${base}:card:list`,
|
|
123
|
+
summary: `${base}:card:summary`,
|
|
124
|
+
get: `${base}:card:get`,
|
|
125
|
+
transitions: `${base}:card:transitions`,
|
|
126
|
+
specifications: `${base}:card:specifications`,
|
|
127
|
+
}),
|
|
128
|
+
spec: Object.freeze({
|
|
129
|
+
get: `${base}:specification:get`,
|
|
130
|
+
revisions: `${base}:specification:revisions`,
|
|
131
|
+
}),
|
|
132
|
+
link: Object.freeze({ list: `${base}:link:list` }),
|
|
133
|
+
transition: Object.freeze({ get: `${base}:transition:get` }),
|
|
134
|
+
execute: `${base}:execute`,
|
|
135
|
+
commit: Object.freeze({ get: `${base}:commit:get`, events: `${base}:commit:events` }),
|
|
136
|
+
})
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { contract, openProtocol, protocol, typed } from '@owlmeans/entrypoint'
|
|
2
|
+
import type { ListResult } from '@owlmeans/resource'
|
|
3
|
+
import { backend, route, RouteMethod, socket } from '@owlmeans/route'
|
|
4
|
+
import type { RouteOptions } from '@owlmeans/route'
|
|
5
|
+
import { PLANNING_PATH, planningAliases } from './consts.js'
|
|
6
|
+
import {
|
|
7
|
+
CommitQuerySchema, ExecuteRequestSchema, RelationshipQuerySchema, RevisionsQuerySchema,
|
|
8
|
+
SpecificationQuerySchema, SummaryQuerySchema, TransitionParamsSchema, TransitionQuerySchema,
|
|
9
|
+
WorkcardParamsSchema, WorkcardQuerySchema,
|
|
10
|
+
} from './schemas.js'
|
|
11
|
+
import type {
|
|
12
|
+
CommitEvent, CommitFeedQuery, CommitQuery, CommitStatus, ExecuteRequest, PlanningProtocolOptions,
|
|
13
|
+
PlanningProtocols, PlanningSchemaBundle, Relationship, RelationshipQueryWire, RevisionsQuery,
|
|
14
|
+
Specification, SpecificationQueryWire, SpecificationRevisionList, SummaryQueryWire, SummaryView,
|
|
15
|
+
Transition, TransitionParams, TransitionQueryWire, TransitionReceiptView, Workcard, WorkcardParams,
|
|
16
|
+
WorkcardQueryWire,
|
|
17
|
+
} from './types.js'
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Declare the planning surface — one immutable tree a server binds and a client calls.
|
|
21
|
+
*
|
|
22
|
+
* Every leaf hangs under ONE base carrying the guards (and the gate), so they cannot drift apart;
|
|
23
|
+
* aliases derive from `opts.base.alias`. Static `/cards/summary` is declared before parametric
|
|
24
|
+
* `/cards/:id`. The commit feed is a socket under `socketBase` when given (it then inherits that
|
|
25
|
+
* base's guards), under the planning base otherwise.
|
|
26
|
+
*
|
|
27
|
+
* Queries travel as their `*Wire` shapes: encode with `encode*Query` before a call, decode with
|
|
28
|
+
* `decode*Query` in a handler.
|
|
29
|
+
*/
|
|
30
|
+
export const makePlanningProtocols = (opts: PlanningProtocolOptions): PlanningProtocols => {
|
|
31
|
+
const aliases = planningAliases(opts.base.alias)
|
|
32
|
+
const mount: Partial<RouteOptions> = {
|
|
33
|
+
...(opts.base.parent != null ? { parent: opts.base.parent } : {}),
|
|
34
|
+
...(opts.base.service != null ? { service: opts.base.service } : {}),
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const base = openProtocol(route(aliases.base, opts.base.path ?? PLANNING_PATH, backend(mount)), {
|
|
38
|
+
guards: opts.guards,
|
|
39
|
+
...(opts.gate != null ? { gate: opts.gate } : {}),
|
|
40
|
+
})
|
|
41
|
+
const get = (alias: string, path: string) => route(alias, path, backend({ parent: base }, RouteMethod.GET))
|
|
42
|
+
|
|
43
|
+
return Object.freeze({
|
|
44
|
+
base,
|
|
45
|
+
|
|
46
|
+
schema: Object.freeze({
|
|
47
|
+
list: protocol(get(aliases.schema.list, '/schemas'), contract(typed<PlanningSchemaBundle>())),
|
|
48
|
+
}),
|
|
49
|
+
|
|
50
|
+
card: Object.freeze({
|
|
51
|
+
list: protocol(
|
|
52
|
+
get(aliases.card.list, '/cards'),
|
|
53
|
+
contract.request({ query: typed<WorkcardQueryWire>(WorkcardQuerySchema) }, typed<ListResult<Workcard>>())
|
|
54
|
+
),
|
|
55
|
+
// Static before parametric: `/cards/summary` must never be read as a card id.
|
|
56
|
+
summary: protocol(
|
|
57
|
+
get(aliases.card.summary, '/cards/summary'),
|
|
58
|
+
contract.request({ query: typed<SummaryQueryWire>(SummaryQuerySchema) }, typed<SummaryView>())
|
|
59
|
+
),
|
|
60
|
+
get: protocol(
|
|
61
|
+
get(aliases.card.get, '/cards/:id'),
|
|
62
|
+
contract.request({ params: typed<WorkcardParams>(WorkcardParamsSchema) }, typed<Workcard>())
|
|
63
|
+
),
|
|
64
|
+
transitions: protocol(
|
|
65
|
+
get(aliases.card.transitions, '/cards/:id/transitions'),
|
|
66
|
+
contract.request({
|
|
67
|
+
params: typed<WorkcardParams>(WorkcardParamsSchema),
|
|
68
|
+
query: typed<TransitionQueryWire>(TransitionQuerySchema),
|
|
69
|
+
}, typed<ListResult<Transition>>())
|
|
70
|
+
),
|
|
71
|
+
specifications: protocol(
|
|
72
|
+
get(aliases.card.specifications, '/cards/:id/specifications'),
|
|
73
|
+
contract.request({
|
|
74
|
+
params: typed<WorkcardParams>(WorkcardParamsSchema),
|
|
75
|
+
query: typed<SpecificationQueryWire>(SpecificationQuerySchema),
|
|
76
|
+
}, typed<ListResult<Specification>>())
|
|
77
|
+
),
|
|
78
|
+
}),
|
|
79
|
+
|
|
80
|
+
spec: Object.freeze({
|
|
81
|
+
get: protocol(
|
|
82
|
+
get(aliases.spec.get, '/specifications/:id'),
|
|
83
|
+
contract.request({ params: typed<WorkcardParams>(WorkcardParamsSchema) }, typed<Specification>())
|
|
84
|
+
),
|
|
85
|
+
revisions: protocol(
|
|
86
|
+
get(aliases.spec.revisions, '/specifications/:id/revisions'),
|
|
87
|
+
contract.request({
|
|
88
|
+
params: typed<WorkcardParams>(WorkcardParamsSchema),
|
|
89
|
+
query: typed<RevisionsQuery>(RevisionsQuerySchema),
|
|
90
|
+
}, typed<SpecificationRevisionList>())
|
|
91
|
+
),
|
|
92
|
+
}),
|
|
93
|
+
|
|
94
|
+
link: Object.freeze({
|
|
95
|
+
list: protocol(
|
|
96
|
+
get(aliases.link.list, '/links'),
|
|
97
|
+
contract.request({ query: typed<RelationshipQueryWire>(RelationshipQuerySchema) }, typed<ListResult<Relationship>>())
|
|
98
|
+
),
|
|
99
|
+
}),
|
|
100
|
+
|
|
101
|
+
transition: Object.freeze({
|
|
102
|
+
get: protocol(
|
|
103
|
+
get(aliases.transition.get, '/transitions/:transition'),
|
|
104
|
+
contract.request({ params: typed<TransitionParams>(TransitionParamsSchema) }, typed<Transition>())
|
|
105
|
+
),
|
|
106
|
+
}),
|
|
107
|
+
|
|
108
|
+
execute: protocol(
|
|
109
|
+
route(aliases.execute, '/execute', backend({ parent: base }, RouteMethod.POST)),
|
|
110
|
+
contract.request({ body: typed<ExecuteRequest>(ExecuteRequestSchema) }, typed<TransitionReceiptView>())
|
|
111
|
+
),
|
|
112
|
+
|
|
113
|
+
commit: Object.freeze({
|
|
114
|
+
get: protocol(
|
|
115
|
+
get(aliases.commit.get, '/commits/:transition'),
|
|
116
|
+
contract.request({
|
|
117
|
+
params: typed<TransitionParams>(TransitionParamsSchema),
|
|
118
|
+
query: typed<CommitQuery>(CommitQuerySchema),
|
|
119
|
+
}, typed<CommitStatus>())
|
|
120
|
+
),
|
|
121
|
+
events: protocol(
|
|
122
|
+
route(aliases.commit.events, '/commits', socket({ parent: opts.socketBase ?? base })),
|
|
123
|
+
contract.request({ query: typed<CommitFeedQuery>() }, typed<CommitEvent>())
|
|
124
|
+
),
|
|
125
|
+
}),
|
|
126
|
+
})
|
|
127
|
+
}
|
package/src/errors.ts
ADDED
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
import { ResilientError } from '@owlmeans/error'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* The planning refusal family.
|
|
5
|
+
*
|
|
6
|
+
* Every message starts with `planning:` followed by the class's own marker (`workcard-not-found:`,
|
|
7
|
+
* `illegal-transition:` …) and the detail. The marker is what survives a hop where the class is not
|
|
8
|
+
* registered, so it is part of the contract, not decoration.
|
|
9
|
+
*/
|
|
10
|
+
export class PlanningError extends ResilientError {
|
|
11
|
+
public static override typeName: string = 'PlanningError'
|
|
12
|
+
|
|
13
|
+
constructor(message: string = 'error') {
|
|
14
|
+
super(PlanningError.typeName, `planning:${message}`)
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/** The card does not exist — or belongs to another entity, which is deliberately the same answer. */
|
|
19
|
+
export class WorkcardNotFound extends PlanningError {
|
|
20
|
+
public static override typeName: string = `${PlanningError.typeName}WorkcardNotFound`
|
|
21
|
+
|
|
22
|
+
constructor(message: string = 'error') {
|
|
23
|
+
super(`workcard-not-found:${message}`)
|
|
24
|
+
this.type = WorkcardNotFound.typeName
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export class UnknownWorkcardType extends PlanningError {
|
|
29
|
+
public static override typeName: string = `${PlanningError.typeName}UnknownWorkcardType`
|
|
30
|
+
|
|
31
|
+
constructor(message: string = 'error') {
|
|
32
|
+
super(`unknown-type:${message}`)
|
|
33
|
+
this.type = UnknownWorkcardType.typeName
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export class UnknownStatusFlow extends PlanningError {
|
|
38
|
+
public static override typeName: string = `${PlanningError.typeName}UnknownStatusFlow`
|
|
39
|
+
|
|
40
|
+
constructor(message: string = 'error') {
|
|
41
|
+
super(`unknown-flow:${message}`)
|
|
42
|
+
this.type = UnknownStatusFlow.typeName
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export class ParentNotFound extends PlanningError {
|
|
47
|
+
public static override typeName: string = `${PlanningError.typeName}ParentNotFound`
|
|
48
|
+
|
|
49
|
+
constructor(message: string = 'error') {
|
|
50
|
+
super(`parent-not-found:${message}`)
|
|
51
|
+
this.type = ParentNotFound.typeName
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/** The parent project's type does not list this card (or project) type. */
|
|
56
|
+
export class CardTypeNotAllowed extends PlanningError {
|
|
57
|
+
public static override typeName: string = `${PlanningError.typeName}CardTypeNotAllowed`
|
|
58
|
+
|
|
59
|
+
constructor(message: string = 'error') {
|
|
60
|
+
super(`card-type-not-allowed:${message}`)
|
|
61
|
+
this.type = CardTypeNotAllowed.typeName
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/** A plugin's `before` middleware refused the execution without a class of its own. */
|
|
66
|
+
export class PlanningRefused extends PlanningError {
|
|
67
|
+
public static override typeName: string = `${PlanningError.typeName}Refused`
|
|
68
|
+
|
|
69
|
+
constructor(message: string = 'error') {
|
|
70
|
+
super(`refused:${message}`)
|
|
71
|
+
this.type = PlanningRefused.typeName
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/** The flow offers no rule of that name from the card's current status. */
|
|
76
|
+
export class IllegalTransition extends PlanningError {
|
|
77
|
+
public static override typeName: string = `${PlanningError.typeName}IllegalTransition`
|
|
78
|
+
|
|
79
|
+
constructor(message: string = 'error') {
|
|
80
|
+
super(`illegal-transition:${message}`)
|
|
81
|
+
this.type = IllegalTransition.typeName
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export class FieldsInvalid extends PlanningError {
|
|
86
|
+
public static override typeName: string = `${PlanningError.typeName}FieldsInvalid`
|
|
87
|
+
|
|
88
|
+
constructor(message: string = 'error') {
|
|
89
|
+
super(`fields-invalid:${message}`)
|
|
90
|
+
this.type = FieldsInvalid.typeName
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export class LabelNotAllowed extends PlanningError {
|
|
95
|
+
public static override typeName: string = `${PlanningError.typeName}LabelNotAllowed`
|
|
96
|
+
|
|
97
|
+
constructor(message: string = 'error') {
|
|
98
|
+
super(`label-not-allowed:${message}`)
|
|
99
|
+
this.type = LabelNotAllowed.typeName
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export class SpecificationSlotUnknown extends PlanningError {
|
|
104
|
+
public static override typeName: string = `${PlanningError.typeName}SpecificationSlotUnknown`
|
|
105
|
+
|
|
106
|
+
constructor(message: string = 'error') {
|
|
107
|
+
super(`specification-slot-unknown:${message}`)
|
|
108
|
+
this.type = SpecificationSlotUnknown.typeName
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/** A second document for a slot that holds one — revise the existing record instead. */
|
|
113
|
+
export class SpecificationRevisionConflict extends PlanningError {
|
|
114
|
+
public static override typeName: string = `${PlanningError.typeName}SpecificationRevisionConflict`
|
|
115
|
+
|
|
116
|
+
constructor(message: string = 'error') {
|
|
117
|
+
super(`specification-revision-conflict:${message}`)
|
|
118
|
+
this.type = SpecificationRevisionConflict.typeName
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
export class RelationshipRefused extends PlanningError {
|
|
123
|
+
public static override typeName: string = `${PlanningError.typeName}RelationshipRefused`
|
|
124
|
+
|
|
125
|
+
constructor(message: string = 'error') {
|
|
126
|
+
super(`relationship-refused:${message}`)
|
|
127
|
+
this.type = RelationshipRefused.typeName
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
export class CodeTaken extends PlanningError {
|
|
132
|
+
public static override typeName: string = `${PlanningError.typeName}CodeTaken`
|
|
133
|
+
|
|
134
|
+
constructor(message: string = 'error') {
|
|
135
|
+
super(`code-taken:${message}`)
|
|
136
|
+
this.type = CodeTaken.typeName
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/** `expectSeq` no longer matches the card's head — somebody else wrote first. Re-read and retry. */
|
|
141
|
+
export class WorkcardConflict extends PlanningError {
|
|
142
|
+
public static override typeName: string = `${PlanningError.typeName}WorkcardConflict`
|
|
143
|
+
|
|
144
|
+
constructor(message: string = 'error') {
|
|
145
|
+
super(`workcard-conflict:${message}`)
|
|
146
|
+
this.type = WorkcardConflict.typeName
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/** The transition was appended but did not commit in time. It stays pending — nothing is undone. */
|
|
151
|
+
export class CommitTimeout extends PlanningError {
|
|
152
|
+
public static override typeName: string = `${PlanningError.typeName}CommitTimeout`
|
|
153
|
+
|
|
154
|
+
constructor(message: string = 'error') {
|
|
155
|
+
super(`commit-timeout:${message}`)
|
|
156
|
+
this.type = CommitTimeout.typeName
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
export class CommitFailed extends PlanningError {
|
|
161
|
+
public static override typeName: string = `${PlanningError.typeName}CommitFailed`
|
|
162
|
+
|
|
163
|
+
constructor(message: string = 'error') {
|
|
164
|
+
super(`commit-failed:${message}`)
|
|
165
|
+
this.type = CommitFailed.typeName
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/** A card of another entity was addressed. Handlers answer it as {@link WorkcardNotFound}. */
|
|
170
|
+
export class PlanningScopeMismatch extends PlanningError {
|
|
171
|
+
public static override typeName: string = `${PlanningError.typeName}ScopeMismatch`
|
|
172
|
+
|
|
173
|
+
constructor(message: string = 'error') {
|
|
174
|
+
super(`scope-mismatch:${message}`)
|
|
175
|
+
this.type = PlanningScopeMismatch.typeName
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/** The store behind this type cannot do what was asked (a foreign provider without a log). */
|
|
180
|
+
export class PlanningUnsupported extends PlanningError {
|
|
181
|
+
public static override typeName: string = `${PlanningError.typeName}Unsupported`
|
|
182
|
+
|
|
183
|
+
constructor(message: string = 'error') {
|
|
184
|
+
super(`unsupported:${message}`)
|
|
185
|
+
this.type = PlanningUnsupported.typeName
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
ResilientError.registerErrorClass(PlanningError)
|
|
190
|
+
ResilientError.registerErrorClass(WorkcardNotFound)
|
|
191
|
+
ResilientError.registerErrorClass(UnknownWorkcardType)
|
|
192
|
+
ResilientError.registerErrorClass(UnknownStatusFlow)
|
|
193
|
+
ResilientError.registerErrorClass(ParentNotFound)
|
|
194
|
+
ResilientError.registerErrorClass(CardTypeNotAllowed)
|
|
195
|
+
ResilientError.registerErrorClass(PlanningRefused)
|
|
196
|
+
ResilientError.registerErrorClass(IllegalTransition)
|
|
197
|
+
ResilientError.registerErrorClass(FieldsInvalid)
|
|
198
|
+
ResilientError.registerErrorClass(LabelNotAllowed)
|
|
199
|
+
ResilientError.registerErrorClass(SpecificationSlotUnknown)
|
|
200
|
+
ResilientError.registerErrorClass(SpecificationRevisionConflict)
|
|
201
|
+
ResilientError.registerErrorClass(RelationshipRefused)
|
|
202
|
+
ResilientError.registerErrorClass(CodeTaken)
|
|
203
|
+
ResilientError.registerErrorClass(WorkcardConflict)
|
|
204
|
+
ResilientError.registerErrorClass(CommitTimeout)
|
|
205
|
+
ResilientError.registerErrorClass(CommitFailed)
|
|
206
|
+
ResilientError.registerErrorClass(PlanningScopeMismatch)
|
|
207
|
+
ResilientError.registerErrorClass(PlanningUnsupported)
|