@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.
Files changed (139) hide show
  1. package/README.md +169 -0
  2. package/agent-meta/manifest.json +16 -0
  3. package/agent-meta/skills/planning/SKILL.md +248 -0
  4. package/build/consts.d.ts +126 -0
  5. package/build/consts.d.ts.map +1 -0
  6. package/build/consts.js +129 -0
  7. package/build/consts.js.map +1 -0
  8. package/build/entrypoints.d.ts +14 -0
  9. package/build/entrypoints.d.ts.map +1 -0
  10. package/build/entrypoints.js +69 -0
  11. package/build/entrypoints.js.map +1 -0
  12. package/build/errors.d.ts +94 -0
  13. package/build/errors.d.ts.map +1 -0
  14. package/build/errors.js +169 -0
  15. package/build/errors.js.map +1 -0
  16. package/build/helpers/apply.d.ts +27 -0
  17. package/build/helpers/apply.d.ts.map +1 -0
  18. package/build/helpers/apply.js +162 -0
  19. package/build/helpers/apply.js.map +1 -0
  20. package/build/helpers/card.d.ts +17 -0
  21. package/build/helpers/card.d.ts.map +1 -0
  22. package/build/helpers/card.js +31 -0
  23. package/build/helpers/card.js.map +1 -0
  24. package/build/helpers/changes.d.ts +51 -0
  25. package/build/helpers/changes.d.ts.map +1 -0
  26. package/build/helpers/changes.js +277 -0
  27. package/build/helpers/changes.js.map +1 -0
  28. package/build/helpers/code.d.ts +24 -0
  29. package/build/helpers/code.d.ts.map +1 -0
  30. package/build/helpers/code.js +47 -0
  31. package/build/helpers/code.js.map +1 -0
  32. package/build/helpers/index.d.ts +9 -0
  33. package/build/helpers/index.d.ts.map +1 -0
  34. package/build/helpers/index.js +9 -0
  35. package/build/helpers/index.js.map +1 -0
  36. package/build/helpers/query.d.ts +39 -0
  37. package/build/helpers/query.d.ts.map +1 -0
  38. package/build/helpers/query.js +293 -0
  39. package/build/helpers/query.js.map +1 -0
  40. package/build/helpers/specification.d.ts +21 -0
  41. package/build/helpers/specification.d.ts.map +1 -0
  42. package/build/helpers/specification.js +48 -0
  43. package/build/helpers/specification.js.map +1 -0
  44. package/build/helpers/status.d.ts +44 -0
  45. package/build/helpers/status.d.ts.map +1 -0
  46. package/build/helpers/status.js +78 -0
  47. package/build/helpers/status.js.map +1 -0
  48. package/build/helpers/validate.d.ts +30 -0
  49. package/build/helpers/validate.d.ts.map +1 -0
  50. package/build/helpers/validate.js +93 -0
  51. package/build/helpers/validate.js.map +1 -0
  52. package/build/i18n/be.json +51 -0
  53. package/build/i18n/de.json +51 -0
  54. package/build/i18n/en.json +51 -0
  55. package/build/i18n/es.json +51 -0
  56. package/build/i18n/pl.json +51 -0
  57. package/build/i18n/ru.json +51 -0
  58. package/build/i18n/uk.json +51 -0
  59. package/build/i18n.d.ts +2 -0
  60. package/build/i18n.d.ts.map +1 -0
  61. package/build/i18n.js +19 -0
  62. package/build/i18n.js.map +1 -0
  63. package/build/index.d.ts +10 -0
  64. package/build/index.d.ts.map +1 -0
  65. package/build/index.js +9 -0
  66. package/build/index.js.map +1 -0
  67. package/build/models/index.d.ts +7 -0
  68. package/build/models/index.d.ts.map +1 -0
  69. package/build/models/index.js +19 -0
  70. package/build/models/index.js.map +1 -0
  71. package/build/models/project.d.ts +4 -0
  72. package/build/models/project.d.ts.map +1 -0
  73. package/build/models/project.js +17 -0
  74. package/build/models/project.js.map +1 -0
  75. package/build/models/specification.d.ts +4 -0
  76. package/build/models/specification.d.ts.map +1 -0
  77. package/build/models/specification.js +15 -0
  78. package/build/models/specification.js.map +1 -0
  79. package/build/models/workcard.d.ts +14 -0
  80. package/build/models/workcard.d.ts.map +1 -0
  81. package/build/models/workcard.js +103 -0
  82. package/build/models/workcard.js.map +1 -0
  83. package/build/queue/index.d.ts +25 -0
  84. package/build/queue/index.d.ts.map +1 -0
  85. package/build/queue/index.js +14 -0
  86. package/build/queue/index.js.map +1 -0
  87. package/build/registry.d.ts +10 -0
  88. package/build/registry.d.ts.map +1 -0
  89. package/build/registry.js +75 -0
  90. package/build/registry.js.map +1 -0
  91. package/build/schemas.d.ts +56 -0
  92. package/build/schemas.d.ts.map +1 -0
  93. package/build/schemas.js +578 -0
  94. package/build/schemas.js.map +1 -0
  95. package/build/types.d.ts +785 -0
  96. package/build/types.d.ts.map +1 -0
  97. package/build/types.js +2 -0
  98. package/build/types.js.map +1 -0
  99. package/package.json +58 -0
  100. package/src/consts.ts +136 -0
  101. package/src/entrypoints.ts +127 -0
  102. package/src/errors.ts +207 -0
  103. package/src/helpers/apply.ts +183 -0
  104. package/src/helpers/card.ts +42 -0
  105. package/src/helpers/changes.ts +333 -0
  106. package/src/helpers/code.ts +66 -0
  107. package/src/helpers/index.ts +8 -0
  108. package/src/helpers/query.ts +345 -0
  109. package/src/helpers/specification.ts +65 -0
  110. package/src/helpers/status.ts +117 -0
  111. package/src/helpers/validate.ts +107 -0
  112. package/src/i18n/be.json +51 -0
  113. package/src/i18n/de.json +51 -0
  114. package/src/i18n/en.json +51 -0
  115. package/src/i18n/es.json +51 -0
  116. package/src/i18n/pl.json +51 -0
  117. package/src/i18n/ru.json +51 -0
  118. package/src/i18n/uk.json +51 -0
  119. package/src/i18n.ts +21 -0
  120. package/src/index.ts +9 -0
  121. package/src/models/index.ts +21 -0
  122. package/src/models/project.ts +24 -0
  123. package/src/models/specification.ts +21 -0
  124. package/src/models/workcard.ts +138 -0
  125. package/src/queue/index.ts +31 -0
  126. package/src/registry.ts +90 -0
  127. package/src/schemas.ts +654 -0
  128. package/src/types.ts +837 -0
  129. package/tests/apply.spec.ts +176 -0
  130. package/tests/code.spec.ts +40 -0
  131. package/tests/entrypoints.spec.ts +57 -0
  132. package/tests/fixtures.ts +124 -0
  133. package/tests/i18n.spec.ts +30 -0
  134. package/tests/models.spec.ts +133 -0
  135. package/tests/query.spec.ts +90 -0
  136. package/tests/schemas.spec.ts +74 -0
  137. package/tests/status.spec.ts +75 -0
  138. package/tests/tsconfig.json +17 -0
  139. package/tsconfig.json +15 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/build/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -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)