@owlmeans/planning 0.1.18-rc.8 → 0.1.18
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 +122 -29
- package/agent-meta/manifest.json +131 -4
- package/agent-meta/skills/planning/SKILL.md +78 -171
- package/agent-meta/skills/planning/parts/collaboration.md +67 -0
- package/agent-meta/skills/planning/parts/errors.md +51 -0
- package/agent-meta/skills/planning/parts/fold.md +69 -0
- package/agent-meta/skills/planning/parts/mounting.md +64 -0
- package/agent-meta/skills/planning/parts/types.md +141 -0
- package/build/aliases/types.d.ts +72 -0
- package/build/aliases/types.d.ts.map +1 -0
- package/build/aliases/types.js +2 -0
- package/build/aliases/types.js.map +1 -0
- package/build/aliases.d.ts +4 -0
- package/build/aliases.d.ts.map +1 -0
- package/build/aliases.js +28 -0
- package/build/aliases.js.map +1 -0
- package/build/consts.d.ts +43 -34
- package/build/consts.d.ts.map +1 -1
- package/build/consts.js +49 -25
- package/build/consts.js.map +1 -1
- package/build/entrypoints/types.d.ts +105 -0
- package/build/entrypoints/types.d.ts.map +1 -0
- package/build/entrypoints/types.js +2 -0
- package/build/entrypoints/types.js.map +1 -0
- package/build/entrypoints.d.ts +5 -1
- package/build/entrypoints.d.ts.map +1 -1
- package/build/entrypoints.js +24 -6
- package/build/entrypoints.js.map +1 -1
- package/build/errors.d.ts +41 -0
- package/build/errors.d.ts.map +1 -1
- package/build/errors.js +61 -0
- package/build/errors.js.map +1 -1
- package/build/helpers/app/consts.local.d.ts +5 -0
- package/build/helpers/app/consts.local.d.ts.map +1 -0
- package/build/helpers/app/consts.local.js +5 -0
- package/build/helpers/app/consts.local.js.map +1 -0
- package/build/helpers/app/types.d.ts +53 -0
- package/build/helpers/app/types.d.ts.map +1 -0
- package/build/helpers/app/types.js +2 -0
- package/build/helpers/app/types.js.map +1 -0
- package/build/helpers/app.d.ts +4 -0
- package/build/helpers/app.d.ts.map +1 -0
- package/build/helpers/app.js +139 -0
- package/build/helpers/app.js.map +1 -0
- package/build/helpers/apply/consts.local.d.ts +7 -0
- package/build/helpers/apply/consts.local.d.ts.map +1 -0
- package/build/helpers/apply/consts.local.js +9 -0
- package/build/helpers/apply/consts.local.js.map +1 -0
- package/build/helpers/apply/types.d.ts +32 -0
- package/build/helpers/apply/types.d.ts.map +1 -0
- package/build/helpers/apply/types.js +2 -0
- package/build/helpers/apply/types.js.map +1 -0
- package/build/helpers/apply.d.ts +5 -23
- package/build/helpers/apply.d.ts.map +1 -1
- package/build/helpers/apply.js +127 -144
- package/build/helpers/apply.js.map +1 -1
- package/build/helpers/card/types.d.ts +20 -0
- package/build/helpers/card/types.d.ts.map +1 -0
- package/build/helpers/card/types.js +2 -0
- package/build/helpers/card/types.js.map +1 -0
- package/build/helpers/card.d.ts +11 -7
- package/build/helpers/card.d.ts.map +1 -1
- package/build/helpers/card.js +41 -28
- package/build/helpers/card.js.map +1 -1
- package/build/helpers/changes/consts.local.d.ts +13 -0
- package/build/helpers/changes/consts.local.d.ts.map +1 -0
- package/build/helpers/changes/consts.local.js +13 -0
- package/build/helpers/changes/consts.local.js.map +1 -0
- package/build/helpers/changes/types.d.ts +58 -0
- package/build/helpers/changes/types.d.ts.map +1 -0
- package/build/helpers/changes/types.js +2 -0
- package/build/helpers/changes/types.js.map +1 -0
- package/build/helpers/changes.d.ts +11 -42
- package/build/helpers/changes.d.ts.map +1 -1
- package/build/helpers/changes.js +237 -251
- package/build/helpers/changes.js.map +1 -1
- package/build/helpers/code/types.d.ts +27 -0
- package/build/helpers/code/types.d.ts.map +1 -0
- package/build/helpers/code/types.js +2 -0
- package/build/helpers/code/types.js.map +1 -0
- package/build/helpers/code.d.ts +6 -17
- package/build/helpers/code.d.ts.map +1 -1
- package/build/helpers/code.js +39 -40
- package/build/helpers/code.js.map +1 -1
- package/build/helpers/index.d.ts +16 -0
- package/build/helpers/index.d.ts.map +1 -1
- package/build/helpers/index.js +4 -0
- package/build/helpers/index.js.map +1 -1
- package/build/helpers/query/types.d.ts +23 -0
- package/build/helpers/query/types.d.ts.map +1 -0
- package/build/helpers/query/types.js +2 -0
- package/build/helpers/query/types.js.map +1 -0
- package/build/helpers/query.d.ts +25 -17
- package/build/helpers/query.d.ts.map +1 -1
- package/build/helpers/query.js +108 -280
- package/build/helpers/query.js.map +1 -1
- package/build/helpers/reply/consts.d.ts +2 -0
- package/build/helpers/reply/consts.d.ts.map +1 -0
- package/build/helpers/reply/consts.js +2 -0
- package/build/helpers/reply/consts.js.map +1 -0
- package/build/helpers/reply/types.d.ts +10 -0
- package/build/helpers/reply/types.d.ts.map +1 -0
- package/build/helpers/reply/types.js +2 -0
- package/build/helpers/reply/types.js.map +1 -0
- package/build/helpers/reply.d.ts +5 -0
- package/build/helpers/reply.d.ts.map +1 -0
- package/build/helpers/reply.js +29 -0
- package/build/helpers/reply.js.map +1 -0
- package/build/helpers/scoped/types.d.ts +73 -0
- package/build/helpers/scoped/types.d.ts.map +1 -0
- package/build/helpers/scoped/types.js +2 -0
- package/build/helpers/scoped/types.js.map +1 -0
- package/build/helpers/scoped.d.ts +25 -0
- package/build/helpers/scoped.d.ts.map +1 -0
- package/build/helpers/scoped.js +223 -0
- package/build/helpers/scoped.js.map +1 -0
- package/build/helpers/specification/types.d.ts +24 -0
- package/build/helpers/specification/types.d.ts.map +1 -0
- package/build/helpers/specification/types.js +2 -0
- package/build/helpers/specification/types.js.map +1 -0
- package/build/helpers/specification.d.ts +9 -13
- package/build/helpers/specification.d.ts.map +1 -1
- package/build/helpers/specification.js +47 -44
- package/build/helpers/specification.js.map +1 -1
- package/build/helpers/status/types.d.ts +48 -0
- package/build/helpers/status/types.d.ts.map +1 -0
- package/build/helpers/status/types.js +2 -0
- package/build/helpers/status/types.js.map +1 -0
- package/build/helpers/status.d.ts +16 -29
- package/build/helpers/status.d.ts.map +1 -1
- package/build/helpers/status.js +77 -73
- package/build/helpers/status.js.map +1 -1
- package/build/helpers/types.local.d.ts +17 -0
- package/build/helpers/types.local.d.ts.map +1 -0
- package/build/helpers/types.local.js +2 -0
- package/build/helpers/types.local.js.map +1 -0
- package/build/helpers/validate/types.d.ts +31 -0
- package/build/helpers/validate/types.d.ts.map +1 -0
- package/build/helpers/validate/types.js +2 -0
- package/build/helpers/validate/types.js.map +1 -0
- package/build/helpers/validate.d.ts +8 -19
- package/build/helpers/validate.d.ts.map +1 -1
- package/build/helpers/validate.js +79 -79
- package/build/helpers/validate.js.map +1 -1
- package/build/helpers/wire/types.d.ts +28 -0
- package/build/helpers/wire/types.d.ts.map +1 -0
- package/build/helpers/wire/types.js +2 -0
- package/build/helpers/wire/types.js.map +1 -0
- package/build/helpers/wire.d.ts +4 -0
- package/build/helpers/wire.d.ts.map +1 -0
- package/build/helpers/wire.js +216 -0
- package/build/helpers/wire.js.map +1 -0
- package/build/i18n/be.json +5 -0
- package/build/i18n/de.json +5 -0
- package/build/i18n/en.json +5 -0
- package/build/i18n/es.json +5 -0
- package/build/i18n/fr.json +5 -0
- package/build/i18n/pl.json +5 -0
- package/build/i18n/ru.json +5 -0
- package/build/i18n/uk.json +5 -0
- package/build/i18n.js +3 -3
- package/build/i18n.js.map +1 -1
- package/build/index.d.ts +7 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +3 -0
- package/build/index.js.map +1 -1
- package/build/models/index.d.ts +2 -3
- package/build/models/index.d.ts.map +1 -1
- package/build/models/index.js +1 -15
- package/build/models/index.js.map +1 -1
- package/build/models/model.d.ts +5 -0
- package/build/models/model.d.ts.map +1 -0
- package/build/models/model.js +16 -0
- package/build/models/model.js.map +1 -0
- package/build/models/project.d.ts +2 -1
- package/build/models/project.d.ts.map +1 -1
- package/build/models/project.js.map +1 -1
- package/build/models/specification.d.ts +2 -1
- package/build/models/specification.d.ts.map +1 -1
- package/build/models/specification.js.map +1 -1
- package/build/models/types.d.ts +69 -0
- package/build/models/types.d.ts.map +1 -0
- package/build/models/types.js +2 -0
- package/build/models/types.js.map +1 -0
- package/build/models/workcard.d.ts +2 -1
- package/build/models/workcard.d.ts.map +1 -1
- package/build/models/workcard.js +12 -12
- package/build/models/workcard.js.map +1 -1
- package/build/registry.d.ts +3 -2
- package/build/registry.d.ts.map +1 -1
- package/build/registry.js +51 -3
- package/build/registry.js.map +1 -1
- package/build/resources/mentions.d.ts +4 -0
- package/build/resources/mentions.d.ts.map +1 -0
- package/build/resources/mentions.js +15 -0
- package/build/resources/mentions.js.map +1 -0
- package/build/resources/protocol/types.d.ts +30 -0
- package/build/resources/protocol/types.d.ts.map +1 -0
- package/build/resources/protocol/types.js +2 -0
- package/build/resources/protocol/types.js.map +1 -0
- package/build/resources/protocol.d.ts +6 -0
- package/build/resources/protocol.d.ts.map +1 -0
- package/build/resources/protocol.js +31 -0
- package/build/resources/protocol.js.map +1 -0
- package/build/resources/types.d.ts +146 -0
- package/build/resources/types.d.ts.map +1 -0
- package/build/resources/types.js +2 -0
- package/build/resources/types.js.map +1 -0
- package/build/resources/types.local.d.ts +6 -0
- package/build/resources/types.local.d.ts.map +1 -0
- package/build/resources/types.local.js +2 -0
- package/build/resources/types.local.js.map +1 -0
- package/build/schemas.d.ts +21 -2
- package/build/schemas.d.ts.map +1 -1
- package/build/schemas.js +164 -2
- package/build/schemas.js.map +1 -1
- package/build/types.d.ts +330 -151
- package/build/types.d.ts.map +1 -1
- package/build/utils.d.ts +6 -0
- package/build/utils.d.ts.map +1 -0
- package/build/utils.js +6 -0
- package/build/utils.js.map +1 -0
- package/package.json +13 -13
- package/src/aliases/types.ts +41 -0
- package/src/aliases.ts +34 -0
- package/src/consts.ts +50 -25
- package/src/entrypoints/types.ts +77 -0
- package/src/entrypoints.ts +53 -24
- package/src/errors.ts +71 -0
- package/src/helpers/app/consts.local.ts +5 -0
- package/src/helpers/app/types.ts +54 -0
- package/src/helpers/app.ts +158 -0
- package/src/helpers/apply/consts.local.ts +10 -0
- package/src/helpers/apply/types.ts +32 -0
- package/src/helpers/apply.ts +141 -153
- package/src/helpers/card/types.ts +20 -0
- package/src/helpers/card.ts +59 -33
- package/src/helpers/changes/consts.local.ts +17 -0
- package/src/helpers/changes/types.ts +66 -0
- package/src/helpers/changes.ts +270 -280
- package/src/helpers/code/types.ts +31 -0
- package/src/helpers/code.ts +52 -48
- package/src/helpers/index.ts +17 -0
- package/src/helpers/query/types.ts +26 -0
- package/src/helpers/query.ts +144 -314
- package/src/helpers/reply/consts.ts +1 -0
- package/src/helpers/reply/types.ts +13 -0
- package/src/helpers/reply.ts +27 -0
- package/src/helpers/scoped/types.ts +78 -0
- package/src/helpers/scoped.ts +281 -0
- package/src/helpers/specification/types.ts +26 -0
- package/src/helpers/specification.ts +69 -51
- package/src/helpers/status/types.ts +46 -0
- package/src/helpers/status.ts +117 -93
- package/src/helpers/types.local.ts +18 -0
- package/src/helpers/validate/types.ts +31 -0
- package/src/helpers/validate.ts +89 -77
- package/src/helpers/wire/types.ts +31 -0
- package/src/helpers/wire.ts +252 -0
- package/src/i18n/be.json +5 -0
- package/src/i18n/de.json +5 -0
- package/src/i18n/en.json +5 -0
- package/src/i18n/es.json +5 -0
- package/src/i18n/fr.json +5 -0
- package/src/i18n/pl.json +5 -0
- package/src/i18n/ru.json +5 -0
- package/src/i18n/uk.json +5 -0
- package/src/i18n.ts +4 -3
- package/src/index.ts +8 -0
- package/src/models/index.ts +2 -17
- package/src/models/model.ts +18 -0
- package/src/models/project.ts +2 -1
- package/src/models/specification.ts +2 -1
- package/src/models/types.ts +70 -0
- package/src/models/workcard.ts +14 -16
- package/src/registry.ts +55 -4
- package/src/resources/mentions.ts +11 -0
- package/src/resources/protocol/types.ts +21 -0
- package/src/resources/protocol.ts +36 -0
- package/src/resources/types.local.ts +5 -0
- package/src/resources/types.ts +148 -0
- package/src/schemas.ts +179 -4
- package/src/types.ts +334 -130
- package/src/utils.ts +9 -0
- package/tests/app.spec.ts +188 -0
- package/tests/apply.spec.ts +95 -31
- package/tests/code.spec.ts +9 -9
- package/tests/csp.spec.ts +122 -0
- package/tests/entrypoints.spec.ts +18 -2
- package/tests/error-status.spec.ts +6 -1
- package/tests/models.spec.ts +24 -16
- package/tests/query.spec.ts +13 -15
- package/tests/schemas.spec.ts +8 -8
- package/tests/scoped.spec.ts +161 -0
- package/tests/status.spec.ts +31 -22
package/build/entrypoints.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { makePlanningResourceProtocols } from './resources/protocol.js';
|
|
1
2
|
import { contract, openProtocol, protocol, typed } from '@owlmeans/entrypoint';
|
|
2
3
|
import { backend, route, RouteMethod, socket } from '@owlmeans/route';
|
|
3
|
-
import { PLANNING_PATH
|
|
4
|
-
import {
|
|
4
|
+
import { PLANNING_PATH } from './consts.js';
|
|
5
|
+
import { planningAliasHelper } from './aliases.js';
|
|
6
|
+
import { CommitQuerySchema, ExecuteRequestSchema, RelationshipQuerySchema, RevisionsQuerySchema, SchemaDefineRequestSchema, SchemaListQuerySchema, SpecificationQuerySchema, SummaryQuerySchema, TransitionParamsSchema, TransitionQuerySchema, WorkcardParamsSchema, WorkcardQuerySchema, } from './schemas.js';
|
|
5
7
|
/**
|
|
6
8
|
* Declare the planning surface — one immutable tree a server binds and a client calls.
|
|
7
9
|
*
|
|
@@ -12,9 +14,13 @@ import { CommitQuerySchema, ExecuteRequestSchema, RelationshipQuerySchema, Revis
|
|
|
12
14
|
*
|
|
13
15
|
* Queries travel as their `*Wire` shapes: encode with `encode*Query` before a call, decode with
|
|
14
16
|
* `decode*Query` in a handler.
|
|
17
|
+
*
|
|
18
|
+
* `definitions: true` adds the data-defined schema surface: `schema.list` takes a `project` query
|
|
19
|
+
* and answers that layer's scoped bundle, and `schema.define` (POST `/schemas`) writes. Without it
|
|
20
|
+
* the tree declares exactly the other leaves.
|
|
15
21
|
*/
|
|
16
22
|
export const makePlanningProtocols = (opts) => {
|
|
17
|
-
const aliases = planningAliases(opts.base.alias);
|
|
23
|
+
const aliases = planningAliasHelper.planningAliases(opts.base.alias);
|
|
18
24
|
const mount = {
|
|
19
25
|
...(opts.base.parent != null ? { parent: opts.base.parent } : {}),
|
|
20
26
|
...(opts.base.service != null ? { service: opts.base.service } : {}),
|
|
@@ -24,11 +30,23 @@ export const makePlanningProtocols = (opts) => {
|
|
|
24
30
|
...(opts.gate != null ? { gate: opts.gate } : {}),
|
|
25
31
|
});
|
|
26
32
|
const get = (alias, path) => route(alias, path, backend({ parent: base }, RouteMethod.GET));
|
|
33
|
+
const schema = opts.definitions === true
|
|
34
|
+
? Object.freeze({
|
|
35
|
+
list: protocol(get(aliases.schema.list, '/schemas'), contract.request({ query: typed(SchemaListQuerySchema) }, typed())),
|
|
36
|
+
define: protocol(route(planningAliasHelper.planningDefinitionAliases(opts.base.alias).define, '/schemas', backend({ parent: base }, RouteMethod.POST)), contract.request({ body: typed(SchemaDefineRequestSchema) }, typed())),
|
|
37
|
+
})
|
|
38
|
+
: Object.freeze({
|
|
39
|
+
list: protocol(get(aliases.schema.list, '/schemas'), contract(typed())),
|
|
40
|
+
});
|
|
27
41
|
return Object.freeze({
|
|
42
|
+
...(opts.resources === true ? {
|
|
43
|
+
assignees: makePlanningResourceProtocols(base, opts.base.alias, 'assignees'),
|
|
44
|
+
teams: makePlanningResourceProtocols(base, opts.base.alias, 'teams'),
|
|
45
|
+
comments: makePlanningResourceProtocols(base, opts.base.alias, 'comments'),
|
|
46
|
+
mentions: makePlanningResourceProtocols(base, opts.base.alias, 'mentions'),
|
|
47
|
+
} : {}),
|
|
28
48
|
base,
|
|
29
|
-
schema
|
|
30
|
-
list: protocol(get(aliases.schema.list, '/schemas'), contract(typed())),
|
|
31
|
-
}),
|
|
49
|
+
schema,
|
|
32
50
|
card: Object.freeze({
|
|
33
51
|
list: protocol(get(aliases.card.list, '/cards'), contract.request({ query: typed(WorkcardQuerySchema) }, typed())),
|
|
34
52
|
// Static before parametric: `/cards/summary` must never be read as a card id.
|
package/build/entrypoints.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entrypoints.js","sourceRoot":"","sources":["../src/entrypoints.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"entrypoints.js","sourceRoot":"","sources":["../src/entrypoints.ts"],"names":[],"mappings":"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"}
|
package/build/errors.d.ts
CHANGED
|
@@ -116,6 +116,47 @@ export declare class PlanningScopeMismatch extends PlanningError {
|
|
|
116
116
|
static httpStatus: number;
|
|
117
117
|
constructor(message?: string);
|
|
118
118
|
}
|
|
119
|
+
/**
|
|
120
|
+
* A data-defined schema write lost its compare-and-set: the layer's record is not at the version
|
|
121
|
+
* the write replaces. Re-read the layer and retry.
|
|
122
|
+
*/
|
|
123
|
+
export declare class SchemaConflict extends PlanningError {
|
|
124
|
+
static typeName: string;
|
|
125
|
+
/** The stored record moved past the expected version: answered 409. */
|
|
126
|
+
static httpStatus: number;
|
|
127
|
+
constructor(message?: string);
|
|
128
|
+
}
|
|
129
|
+
/** A flow cannot be retired while a live type of an affected layer still resolves it. */
|
|
130
|
+
export declare class SchemaInUse extends PlanningError {
|
|
131
|
+
static typeName: string;
|
|
132
|
+
/** Other declarations still depend on the key: answered 409. */
|
|
133
|
+
static httpStatus: number;
|
|
134
|
+
constructor(message?: string);
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* The key is registered in code and does not declare itself `overridable` — or it is a project
|
|
138
|
+
* or specification type, which only code declares.
|
|
139
|
+
*/
|
|
140
|
+
export declare class SchemaSealed extends PlanningError {
|
|
141
|
+
static typeName: string;
|
|
142
|
+
/** The key cannot be declared as data: answered 422. */
|
|
143
|
+
static httpStatus: number;
|
|
144
|
+
constructor(message?: string);
|
|
145
|
+
}
|
|
146
|
+
/** A data-defined declaration fails its closed-form checks. */
|
|
147
|
+
export declare class SchemaInvalid extends PlanningError {
|
|
148
|
+
static typeName: string;
|
|
149
|
+
/** The declaration's content is refused: answered 422. */
|
|
150
|
+
static httpStatus: number;
|
|
151
|
+
constructor(message?: string);
|
|
152
|
+
}
|
|
153
|
+
/** The request's access does not grant the write (creating or deleting a project, defining schemas). */
|
|
154
|
+
export declare class PlanningForbidden extends PlanningError {
|
|
155
|
+
static typeName: string;
|
|
156
|
+
/** The caller lacks the grant the write needs: answered 403. */
|
|
157
|
+
static httpStatus: number;
|
|
158
|
+
constructor(message?: string);
|
|
159
|
+
}
|
|
119
160
|
/** The store behind this type cannot do what was asked (a foreign provider without a log). */
|
|
120
161
|
export declare class PlanningUnsupported extends PlanningError {
|
|
121
162
|
static typeName: string;
|
package/build/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/build/errors.js
CHANGED
|
@@ -169,6 +169,62 @@ export class PlanningScopeMismatch extends PlanningError {
|
|
|
169
169
|
this.type = PlanningScopeMismatch.typeName;
|
|
170
170
|
}
|
|
171
171
|
}
|
|
172
|
+
/**
|
|
173
|
+
* A data-defined schema write lost its compare-and-set: the layer's record is not at the version
|
|
174
|
+
* the write replaces. Re-read the layer and retry.
|
|
175
|
+
*/
|
|
176
|
+
export class SchemaConflict extends PlanningError {
|
|
177
|
+
static typeName = `${PlanningError.typeName}SchemaConflict`;
|
|
178
|
+
/** The stored record moved past the expected version: answered 409. */
|
|
179
|
+
static httpStatus = 409;
|
|
180
|
+
constructor(message = 'error') {
|
|
181
|
+
super(`schema-conflict:${message}`);
|
|
182
|
+
this.type = SchemaConflict.typeName;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
/** A flow cannot be retired while a live type of an affected layer still resolves it. */
|
|
186
|
+
export class SchemaInUse extends PlanningError {
|
|
187
|
+
static typeName = `${PlanningError.typeName}SchemaInUse`;
|
|
188
|
+
/** Other declarations still depend on the key: answered 409. */
|
|
189
|
+
static httpStatus = 409;
|
|
190
|
+
constructor(message = 'error') {
|
|
191
|
+
super(`schema-in-use:${message}`);
|
|
192
|
+
this.type = SchemaInUse.typeName;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* The key is registered in code and does not declare itself `overridable` — or it is a project
|
|
197
|
+
* or specification type, which only code declares.
|
|
198
|
+
*/
|
|
199
|
+
export class SchemaSealed extends PlanningError {
|
|
200
|
+
static typeName = `${PlanningError.typeName}SchemaSealed`;
|
|
201
|
+
/** The key cannot be declared as data: answered 422. */
|
|
202
|
+
static httpStatus = 422;
|
|
203
|
+
constructor(message = 'error') {
|
|
204
|
+
super(`schema-sealed:${message}`);
|
|
205
|
+
this.type = SchemaSealed.typeName;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
/** A data-defined declaration fails its closed-form checks. */
|
|
209
|
+
export class SchemaInvalid extends PlanningError {
|
|
210
|
+
static typeName = `${PlanningError.typeName}SchemaInvalid`;
|
|
211
|
+
/** The declaration's content is refused: answered 422. */
|
|
212
|
+
static httpStatus = 422;
|
|
213
|
+
constructor(message = 'error') {
|
|
214
|
+
super(`schema-invalid:${message}`);
|
|
215
|
+
this.type = SchemaInvalid.typeName;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
/** The request's access does not grant the write (creating or deleting a project, defining schemas). */
|
|
219
|
+
export class PlanningForbidden extends PlanningError {
|
|
220
|
+
static typeName = `${PlanningError.typeName}Forbidden`;
|
|
221
|
+
/** The caller lacks the grant the write needs: answered 403. */
|
|
222
|
+
static httpStatus = 403;
|
|
223
|
+
constructor(message = 'error') {
|
|
224
|
+
super(`forbidden:${message}`);
|
|
225
|
+
this.type = PlanningForbidden.typeName;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
172
228
|
/** The store behind this type cannot do what was asked (a foreign provider without a log). */
|
|
173
229
|
export class PlanningUnsupported extends PlanningError {
|
|
174
230
|
static typeName = `${PlanningError.typeName}Unsupported`;
|
|
@@ -195,5 +251,10 @@ ResilientError.registerErrorClass(WorkcardConflict);
|
|
|
195
251
|
ResilientError.registerErrorClass(CommitTimeout);
|
|
196
252
|
ResilientError.registerErrorClass(CommitFailed);
|
|
197
253
|
ResilientError.registerErrorClass(PlanningScopeMismatch);
|
|
254
|
+
ResilientError.registerErrorClass(SchemaConflict);
|
|
255
|
+
ResilientError.registerErrorClass(SchemaInUse);
|
|
256
|
+
ResilientError.registerErrorClass(SchemaSealed);
|
|
257
|
+
ResilientError.registerErrorClass(SchemaInvalid);
|
|
258
|
+
ResilientError.registerErrorClass(PlanningForbidden);
|
|
198
259
|
ResilientError.registerErrorClass(PlanningUnsupported);
|
|
199
260
|
//# sourceMappingURL=errors.js.map
|
package/build/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** The kinds an application declares properties for, in merge order. */
|
|
2
|
+
export declare const APP_KINDS: readonly ['type', 'flow', 'card'];
|
|
3
|
+
/** The only keywords a kind's declaration may carry — a merge by name honours nothing else. */
|
|
4
|
+
export declare const APP_SCHEMA_KEYS: Set<string>;
|
|
5
|
+
//# sourceMappingURL=consts.local.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consts.local.d.ts","sourceRoot":"","sources":["../../../src/helpers/app/consts.local.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,eAAO,MAAM,SAAS,YAAI,MAAM,EAAE,MAAM,EAAE,MAAM,CAAU,CAAA;AAE1D,+FAA+F;AAC/F,eAAO,MAAM,eAAe,aAA8C,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** The kinds an application declares properties for, in merge order. */
|
|
2
|
+
export const APP_KINDS = ['type', 'flow', 'card'];
|
|
3
|
+
/** The only keywords a kind's declaration may carry — a merge by name honours nothing else. */
|
|
4
|
+
export const APP_SCHEMA_KEYS = new Set(['type', 'properties', 'required']);
|
|
5
|
+
//# sourceMappingURL=consts.local.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consts.local.js","sourceRoot":"","sources":["../../../src/helpers/app/consts.local.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAU,CAAA;AAE1D,+FAA+F;AAC/F,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { AnySchema } from 'ajv';
|
|
2
|
+
import type { PlanningSchemaKind } from '../../consts.js';
|
|
3
|
+
import type { AnyTypeSchema, PlanningAppDeclarations } from '../../types.js';
|
|
4
|
+
/** The declarations whose properties a definition carries in its `app` bag. */
|
|
5
|
+
export type PlanningAppBagKind = PlanningSchemaKind.Type | PlanningSchemaKind.Flow;
|
|
6
|
+
/**
|
|
7
|
+
* The application's pregenerated planning properties: the `app` bag of every type and flow
|
|
8
|
+
* declaration, and the base `fields` of every card — declared in code, beside the custom fields a
|
|
9
|
+
* data-defined type gives its cards.
|
|
10
|
+
*/
|
|
11
|
+
export interface AppSchemaHelper {
|
|
12
|
+
/**
|
|
13
|
+
* Merge declarations in the order given — a planning service passes its own `schemas.app` first,
|
|
14
|
+
* then every plugin's in plugin order (`order` ascending, registration order among equals). Per
|
|
15
|
+
* kind (`type`, `flow`, `card`): `properties` are united, a later declaration of a name replacing
|
|
16
|
+
* the earlier one whole; `required` is the union. `undefined` when no source declares anything.
|
|
17
|
+
*
|
|
18
|
+
* @throws {SchemaInvalid} a malformed source
|
|
19
|
+
*/
|
|
20
|
+
merge: (sources: ReadonlyArray<PlanningAppDeclarations | undefined>) => PlanningAppDeclarations | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* The closed form of declarations: per kind only `type` (`'object'`), `properties` (names without
|
|
23
|
+
* `.` or `$`) and `required` (each name declared), and — outside a browser document — a schema that
|
|
24
|
+
* compiles. A page never compiles: a strict `script-src` refuses code generation, and what a page
|
|
25
|
+
* registers its server compiled when it registered it.
|
|
26
|
+
*
|
|
27
|
+
* @throws {SchemaInvalid} `app:<kind>:…`
|
|
28
|
+
*/
|
|
29
|
+
assertDeclarations: (app: PlanningAppDeclarations) => void;
|
|
30
|
+
/**
|
|
31
|
+
* The schema a definition's `app` bag must match: the declared kind closed over its properties
|
|
32
|
+
* (`additionalProperties: false`). `undefined` when the kind is not declared.
|
|
33
|
+
*/
|
|
34
|
+
bagSchemaOf: (app: PlanningAppDeclarations | undefined, kind: PlanningAppBagKind) => AnySchema | undefined;
|
|
35
|
+
/**
|
|
36
|
+
* Check a declaration's `app` bag: refused when the kind is undeclared and the bag is present;
|
|
37
|
+
* matched against {@link bagSchemaOf} otherwise (an absent bag is `{}`, so a required property
|
|
38
|
+
* makes the bag mandatory).
|
|
39
|
+
*
|
|
40
|
+
* @throws {SchemaInvalid} `<kind>:<key>:app:…`
|
|
41
|
+
*/
|
|
42
|
+
assertBag: (kind: PlanningAppBagKind, key: string, bag: unknown, app?: PlanningAppDeclarations) => void;
|
|
43
|
+
/**
|
|
44
|
+
* The schema a type's `fields` validate against. Without base card fields, or for a project or
|
|
45
|
+
* specification type, it is the type's own `fields` object itself. Otherwise the type's schema
|
|
46
|
+
* stays the root (so its `#/…` references still resolve) and gains: each base name in its
|
|
47
|
+
* top-level `properties` as `{}` when it does not declare it (its `additionalProperties` never
|
|
48
|
+
* refuses a base field; its own declaration of the name still applies and may narrow it), and the
|
|
49
|
+
* base object schema appended to its `allOf`.
|
|
50
|
+
*/
|
|
51
|
+
fieldsSchemaOf: (type: AnyTypeSchema, app?: PlanningAppDeclarations) => AnySchema;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/helpers/app/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AACpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAE5E,+EAA+E;AAC/E,MAAM,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAA;AAElF;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;;OAOG;IACH,KAAK,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,uBAAuB,GAAG,SAAS,CAAC,KAAK,uBAAuB,GAAG,SAAS,CAAA;IAC3G;;;;;;;OAOG;IACH,kBAAkB,EAAE,CAAC,GAAG,EAAE,uBAAuB,KAAK,IAAI,CAAA;IAC1D;;;OAGG;IACH,WAAW,EAAE,CAAC,GAAG,EAAE,uBAAuB,GAAG,SAAS,EAAE,IAAI,EAAE,kBAAkB,KAAK,SAAS,GAAG,SAAS,CAAA;IAC1G;;;;;;OAMG;IACH,SAAS,EAAE,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,uBAAuB,KAAK,IAAI,CAAA;IACvG;;;;;;;OAOG;IACH,cAAc,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,uBAAuB,KAAK,SAAS,CAAA;CAClF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/helpers/app/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/helpers/app.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAsB,MAAM,gBAAgB,CAAA;AASzE,eAAO,MAAM,qBAAqB,QAAO,eA8IxC,CAAA;AAED,eAAO,MAAM,eAAe,iBAA0B,CAAA"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { PlanningSchemaKind, WorkcardKind } from '../consts.js';
|
|
2
|
+
import { SchemaInvalid } from '../errors.js';
|
|
3
|
+
import { APP_KINDS, APP_SCHEMA_KEYS } from './app/consts.local.js';
|
|
4
|
+
import { makeAjv, validateHelper } from './validate.js';
|
|
5
|
+
const messageOf = (error) => error instanceof Error ? error.message : `${error}`;
|
|
6
|
+
const isObject = (value) => value != null && typeof value === 'object' && !Array.isArray(value);
|
|
7
|
+
export const createAppSchemaHelper = () => {
|
|
8
|
+
// Keyed by the declared kind object a registry keeps — a fresh ajv per entry, so a replaced
|
|
9
|
+
// declaration leaves nothing compiled behind.
|
|
10
|
+
const bags = new WeakMap();
|
|
11
|
+
// A page never compiles: under a strict `script-src` Ajv's code generation is refused, and the
|
|
12
|
+
// declarations a page registers are its server's, compiled there when they were registered.
|
|
13
|
+
const compiles = () => typeof globalThis.document === 'undefined';
|
|
14
|
+
const objectSchemaOf = (declared) => ({
|
|
15
|
+
type: 'object',
|
|
16
|
+
properties: declared.properties,
|
|
17
|
+
...((declared.required?.length ?? 0) > 0 ? { required: [...declared.required] } : {}),
|
|
18
|
+
});
|
|
19
|
+
const declaredOf = (app, kind) => kind === PlanningSchemaKind.Type ? app?.type : app?.flow;
|
|
20
|
+
const assertDeclarations = app => {
|
|
21
|
+
if (!isObject(app)) {
|
|
22
|
+
throw new SchemaInvalid('app:declarations');
|
|
23
|
+
}
|
|
24
|
+
const kinds = APP_KINDS;
|
|
25
|
+
const stranger = Object.keys(app).find(key => !kinds.includes(key));
|
|
26
|
+
if (stranger != null) {
|
|
27
|
+
throw new SchemaInvalid(`app:kind:${stranger}`);
|
|
28
|
+
}
|
|
29
|
+
for (const kind of APP_KINDS) {
|
|
30
|
+
const declared = app[kind];
|
|
31
|
+
if (declared == null) {
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
if (!isObject(declared)) {
|
|
35
|
+
throw new SchemaInvalid(`app:${kind}:schema`);
|
|
36
|
+
}
|
|
37
|
+
const keyword = Object.keys(declared).find(key => !APP_SCHEMA_KEYS.has(key));
|
|
38
|
+
if (keyword != null) {
|
|
39
|
+
throw new SchemaInvalid(`app:${kind}:keyword:${keyword}`);
|
|
40
|
+
}
|
|
41
|
+
if (declared.type != null && declared.type !== 'object') {
|
|
42
|
+
throw new SchemaInvalid(`app:${kind}:type`);
|
|
43
|
+
}
|
|
44
|
+
if (!isObject(declared.properties)) {
|
|
45
|
+
throw new SchemaInvalid(`app:${kind}:properties`);
|
|
46
|
+
}
|
|
47
|
+
const names = Object.keys(declared.properties);
|
|
48
|
+
const badName = names.find(name => name === '' || name.includes('.') || name.includes('$'));
|
|
49
|
+
if (badName != null) {
|
|
50
|
+
throw new SchemaInvalid(`app:${kind}:name:${badName}`);
|
|
51
|
+
}
|
|
52
|
+
const required = declared.required;
|
|
53
|
+
if (required != null && (!Array.isArray(required) || required.some(name => typeof name !== 'string'))) {
|
|
54
|
+
throw new SchemaInvalid(`app:${kind}:required`);
|
|
55
|
+
}
|
|
56
|
+
const missing = required?.find(name => !names.includes(name));
|
|
57
|
+
if (missing != null) {
|
|
58
|
+
throw new SchemaInvalid(`app:${kind}:required:${missing}`);
|
|
59
|
+
}
|
|
60
|
+
if (compiles()) {
|
|
61
|
+
try {
|
|
62
|
+
makeAjv().compile(objectSchemaOf(declared));
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
throw new SchemaInvalid(`app:${kind}:${messageOf(error)}`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
const merge = sources => {
|
|
71
|
+
const merged = {};
|
|
72
|
+
for (const source of sources) {
|
|
73
|
+
if (source == null) {
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
assertDeclarations(source);
|
|
77
|
+
for (const kind of APP_KINDS) {
|
|
78
|
+
const next = source[kind];
|
|
79
|
+
if (next == null) {
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
const current = merged[kind];
|
|
83
|
+
const required = [...new Set([...(current?.required ?? []), ...(next.required ?? [])])];
|
|
84
|
+
merged[kind] = {
|
|
85
|
+
type: 'object',
|
|
86
|
+
properties: { ...current?.properties, ...structuredClone(next.properties) },
|
|
87
|
+
...(required.length > 0 ? { required } : {}),
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return Object.keys(merged).length > 0 ? merged : undefined;
|
|
92
|
+
};
|
|
93
|
+
const bagSchemaOf = (app, kind) => {
|
|
94
|
+
const declared = declaredOf(app, kind);
|
|
95
|
+
return declared == null ? undefined : { ...objectSchemaOf(declared), additionalProperties: false };
|
|
96
|
+
};
|
|
97
|
+
const assertBag = (kind, key, bag, app) => {
|
|
98
|
+
const declared = declaredOf(app, kind);
|
|
99
|
+
if (declared == null) {
|
|
100
|
+
if (bag != null) {
|
|
101
|
+
throw new SchemaInvalid(`${kind}:${key}:app:undeclared`);
|
|
102
|
+
}
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
const keys = validateHelper.invalidFieldKeys(bag);
|
|
106
|
+
if (keys.length > 0) {
|
|
107
|
+
throw new SchemaInvalid(`${kind}:${key}:app:keys:${keys.join(',')}`);
|
|
108
|
+
}
|
|
109
|
+
let validate = bags.get(declared);
|
|
110
|
+
if (validate == null) {
|
|
111
|
+
validate = makeAjv().compile(bagSchemaOf(app, kind));
|
|
112
|
+
bags.set(declared, validate);
|
|
113
|
+
}
|
|
114
|
+
if (!validate(bag ?? {})) {
|
|
115
|
+
throw new SchemaInvalid(`${kind}:${key}:app:${validateHelper.ajvErrorText(validate.errors)}`);
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
const fieldsSchemaOf = (type, app) => {
|
|
119
|
+
const base = app?.card;
|
|
120
|
+
const own = type.fields;
|
|
121
|
+
if (base == null || type.kind !== WorkcardKind.Card) {
|
|
122
|
+
return own;
|
|
123
|
+
}
|
|
124
|
+
const declared = objectSchemaOf(base);
|
|
125
|
+
if (!isObject(own)) {
|
|
126
|
+
return own === false ? false : declared;
|
|
127
|
+
}
|
|
128
|
+
// The type's schema stays the root, so its own `#/…` references keep resolving.
|
|
129
|
+
const admitted = Object.fromEntries(Object.keys(base.properties).map(name => [name, {}]));
|
|
130
|
+
return {
|
|
131
|
+
...own,
|
|
132
|
+
properties: { ...admitted, ...(isObject(own.properties) ? own.properties : {}) },
|
|
133
|
+
allOf: [...(Array.isArray(own.allOf) ? own.allOf : []), declared],
|
|
134
|
+
};
|
|
135
|
+
};
|
|
136
|
+
return { merge, assertDeclarations, bagSchemaOf, assertBag, fieldsSchemaOf };
|
|
137
|
+
};
|
|
138
|
+
export const appSchemaHelper = createAppSchemaHelper();
|
|
139
|
+
//# sourceMappingURL=app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/helpers/app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAG5C,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAClE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAEvD,MAAM,SAAS,GAAG,CAAC,KAAc,EAAU,EAAE,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAA;AAEjG,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CACpE,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAErE,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAoB,EAAE;IACzD,4FAA4F;IAC5F,8CAA8C;IAC9C,MAAM,IAAI,GAAG,IAAI,OAAO,EAAuC,CAAA;IAE/D,+FAA+F;IAC/F,4FAA4F;IAC5F,MAAM,QAAQ,GAAG,GAAY,EAAE,CAAC,OAAQ,UAAqC,CAAC,QAAQ,KAAK,WAAW,CAAA;IAEtG,MAAM,cAAc,GAAG,CAAC,QAA2B,EAA2B,EAAE,CAAC,CAAC;QAChF,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,QAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvF,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,CAAC,GAAwC,EAAE,IAAwB,EAAiC,EAAE,CACvH,IAAI,KAAK,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAA;IAE1D,MAAM,kBAAkB,GAA0C,GAAG,CAAC,EAAE;QACtE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,aAAa,CAAC,kBAAkB,CAAC,CAAA;QAC7C,CAAC;QACD,MAAM,KAAK,GAAsB,SAAS,CAAA;QAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;QACnE,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,aAAa,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAA;QACjD,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAY,GAAG,CAAC,IAAI,CAAC,CAAA;YACnC,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;gBACrB,SAAQ;YACV,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,aAAa,CAAC,OAAO,IAAI,SAAS,CAAC,CAAA;YAC/C,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;YAC5E,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;gBACpB,MAAM,IAAI,aAAa,CAAC,OAAO,IAAI,YAAY,OAAO,EAAE,CAAC,CAAA;YAC3D,CAAC;YACD,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACxD,MAAM,IAAI,aAAa,CAAC,OAAO,IAAI,OAAO,CAAC,CAAA;YAC7C,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,aAAa,CAAC,OAAO,IAAI,aAAa,CAAC,CAAA;YACnD,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;YAC9C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;YAC3F,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;gBACpB,MAAM,IAAI,aAAa,CAAC,OAAO,IAAI,SAAS,OAAO,EAAE,CAAC,CAAA;YACxD,CAAC;YACD,MAAM,QAAQ,GAAY,QAAQ,CAAC,QAAQ,CAAA;YAC3C,IAAI,QAAQ,IAAI,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,EAAE,CAAC;gBACtG,MAAM,IAAI,aAAa,CAAC,OAAO,IAAI,WAAW,CAAC,CAAA;YACjD,CAAC;YACD,MAAM,OAAO,GAAI,QAAiC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;YACvF,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;gBACpB,MAAM,IAAI,aAAa,CAAC,OAAO,IAAI,aAAa,OAAO,EAAE,CAAC,CAAA;YAC5D,CAAC;YACD,IAAI,QAAQ,EAAE,EAAE,CAAC;gBACf,IAAI,CAAC;oBACH,OAAO,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,QAAwC,CAAC,CAAC,CAAA;gBAC7E,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,IAAI,aAAa,CAAC,OAAO,IAAI,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;gBAC5D,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAA;IAED,MAAM,KAAK,GAA6B,OAAO,CAAC,EAAE;QAChD,MAAM,MAAM,GAA4B,EAAE,CAAA;QAC1C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBACnB,SAAQ;YACV,CAAC;YACD,kBAAkB,CAAC,MAAM,CAAC,CAAA;YAC1B,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;gBAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;gBACzB,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;oBACjB,SAAQ;gBACV,CAAC;gBACD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;gBAC5B,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;gBACvF,MAAM,CAAC,IAAI,CAAC,GAAG;oBACb,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;oBAC3E,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC7C,CAAA;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;IAC5D,CAAC,CAAA;IAED,MAAM,WAAW,GAAmC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QAChE,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QAEtC,OAAO,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,cAAc,CAAC,QAAQ,CAAC,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAA;IACpG,CAAC,CAAA;IAED,MAAM,SAAS,GAAiC,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACtE,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QACtC,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;YACrB,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gBAChB,MAAM,IAAI,aAAa,CAAC,GAAG,IAAI,IAAI,GAAG,iBAAiB,CAAC,CAAA;YAC1D,CAAC;YACD,OAAM;QACR,CAAC;QACD,MAAM,IAAI,GAAG,cAAc,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAA;QACjD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,aAAa,CAAC,GAAG,IAAI,IAAI,GAAG,aAAa,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACtE,CAAC;QACD,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACjC,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;YACrB,QAAQ,GAAG,OAAO,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAW,CAAC,CAAA;YAC9D,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAC9B,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,aAAa,CAAC,GAAG,IAAI,IAAI,GAAG,QAAQ,cAAc,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAC/F,CAAC;IACH,CAAC,CAAA;IAED,MAAM,cAAc,GAAsC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QACtE,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,CAAA;QACtB,MAAM,GAAG,GAAc,IAAI,CAAC,MAAM,CAAA;QAClC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,EAAE,CAAC;YACpD,OAAO,GAAG,CAAA;QACZ,CAAC;QACD,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;QACrC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAA;QACzC,CAAC;QACD,gFAAgF;QAChF,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;QAEzF,OAAO;YACL,GAAG,GAAG;YACN,UAAU,EAAE,EAAE,GAAG,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;YAChF,KAAK,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC;SAClE,CAAA;IACH,CAAC,CAAA;IAED,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,CAAA;AAC9E,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,qBAAqB,EAAE,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Never written by a transition's `changes`: the fold takes them from the transition itself. */
|
|
2
|
+
export declare const IDENTITY_KEYS: Set<string>;
|
|
3
|
+
/** Cannot be cleared: a record without them is not a record. */
|
|
4
|
+
export declare const REQUIRED_KEYS: Set<string>;
|
|
5
|
+
/** Merged shallowly into the card's own map rather than replacing it. */
|
|
6
|
+
export declare const MERGED_KEYS: Set<string>;
|
|
7
|
+
//# sourceMappingURL=consts.local.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consts.local.d.ts","sourceRoot":"","sources":["../../../src/helpers/apply/consts.local.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,eAAO,MAAM,aAAa,aAA0E,CAAA;AAEpG,gEAAgE;AAChE,eAAO,MAAM,aAAa,aAExB,CAAA;AAEF,yEAAyE;AACzE,eAAO,MAAM,WAAW,aAA+B,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Never written by a transition's `changes`: the fold takes them from the transition itself. */
|
|
2
|
+
export const IDENTITY_KEYS = new Set(['id', 'kind', 'type', 'entityId', 'seq', 'head', 'createdAt']);
|
|
3
|
+
/** Cannot be cleared: a record without them is not a record. */
|
|
4
|
+
export const REQUIRED_KEYS = new Set([
|
|
5
|
+
...IDENTITY_KEYS, 'title', 'parents', 'status', 'intrinsic', 'flows', 'labels', 'fields',
|
|
6
|
+
]);
|
|
7
|
+
/** Merged shallowly into the card's own map rather than replacing it. */
|
|
8
|
+
export const MERGED_KEYS = new Set(['fields', 'flows']);
|
|
9
|
+
//# sourceMappingURL=consts.local.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consts.local.js","sourceRoot":"","sources":["../../../src/helpers/apply/consts.local.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAA;AAEpG,gEAAgE;AAChE,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IACnC,GAAG,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;CACzF,CAAC,CAAA;AAEF,yEAAyE;AACzE,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { Relationship, Transition, Workcard } from '../../types.js';
|
|
2
|
+
/** The pure fold — the card and its edges after one transition. */
|
|
3
|
+
export interface ApplyHelper {
|
|
4
|
+
/**
|
|
5
|
+
* THE fold: the card after one transition. Pure, total, no I/O — every store (memory, Mongo, a
|
|
6
|
+
* client mirror) folds with this and nothing else, so one log always means one card.
|
|
7
|
+
*
|
|
8
|
+
* - An already-applied transition (`seq <= card.seq`) returns the card unchanged: re-folding is
|
|
9
|
+
* safe.
|
|
10
|
+
* - Anything but the next seq (`card.seq + 1`, or 1 for a create with no card) is refused with
|
|
11
|
+
* `PlanningError('fold:out-of-order')`.
|
|
12
|
+
* - The log is replayed as written: a transition the executor would refuse today (an update naming
|
|
13
|
+
* `createdBy`, appended before that refusal existed) still folds. Guards live at admission.
|
|
14
|
+
* - `create` builds the whole record from `changes` plus the transition's identity; `delete`
|
|
15
|
+
* answers `null`; `link`/`unlink` only move `seq`/`head`/`updatedAt` (the edges are
|
|
16
|
+
* {@link ApplyHelper.applyRelationship}'s); `update`/`transit` write `changes` — `fields` and
|
|
17
|
+
* `flows` merge, everything else replaces — and clear `unset`.
|
|
18
|
+
* - Every result has `seq = transition.seq`, `head = max(head, seq)`, `updatedAt = transition.at`.
|
|
19
|
+
*
|
|
20
|
+
* @throws {PlanningError} `planning:fold:out-of-order:…`
|
|
21
|
+
*/
|
|
22
|
+
applyTransition: <T extends Workcard = Workcard>(card: T | null | undefined, transition: Transition) => T | null;
|
|
23
|
+
/**
|
|
24
|
+
* The relationships after one transition. Pure and total, like {@link ApplyHelper.applyTransition}.
|
|
25
|
+
*
|
|
26
|
+
* `create` adds its `links`, `link` adds its `link`, `unlink` removes the matching edge, and a
|
|
27
|
+
* `delete` removes every edge touching the card. An edge that already exists is kept as it is, so
|
|
28
|
+
* re-folding adds nothing. Every other action answers the list unchanged. Always a new array.
|
|
29
|
+
*/
|
|
30
|
+
applyRelationship: (links: Relationship[], transition: Transition) => Relationship[];
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/helpers/apply/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAExE,mEAAmE;AACnE,MAAM,WAAW,WAAW;IAC1B;;;;;;;;;;;;;;;;;OAiBG;IACH,eAAe,EAAE,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,EAAE,UAAU,EAAE,UAAU,KAAK,CAAC,GAAG,IAAI,CAAA;IAChH;;;;;;OAMG;IACH,iBAAiB,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,UAAU,KAAK,YAAY,EAAE,CAAA;CACrF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/helpers/apply/types.ts"],"names":[],"mappings":""}
|
package/build/helpers/apply.d.ts
CHANGED
|
@@ -1,27 +1,9 @@
|
|
|
1
1
|
import type { Relationship, Transition, Workcard } from '../types.js';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
* - An already-applied transition (`seq <= card.seq`) returns the card unchanged: re-folding is
|
|
7
|
-
* safe.
|
|
8
|
-
* - Anything but the next seq (`card.seq + 1`, or 1 for a create with no card) is refused with
|
|
9
|
-
* `PlanningError('fold:out-of-order')`.
|
|
10
|
-
* - `create` builds the whole record from `changes` plus the transition's identity; `delete`
|
|
11
|
-
* answers `null`; `link`/`unlink` only move `seq`/`head`/`updatedAt` (the edges are
|
|
12
|
-
* {@link applyRelationship}'s); `update`/`transit` write `changes` — `fields` and `flows` merge,
|
|
13
|
-
* everything else replaces — and clear `unset`.
|
|
14
|
-
* - Every result has `seq = transition.seq`, `head = max(head, seq)`, `updatedAt = transition.at`.
|
|
15
|
-
*
|
|
16
|
-
* @throws {PlanningError} `planning:fold:out-of-order:…`
|
|
17
|
-
*/
|
|
2
|
+
import type { ApplyHelper } from './apply/types.js';
|
|
3
|
+
export declare const createApplyHelper: () => ApplyHelper;
|
|
4
|
+
export declare const applyHelper: ApplyHelper;
|
|
5
|
+
/** @deprecated compat:factory-refactor — use `applyHelper.applyTransition(…)` */
|
|
18
6
|
export declare const applyTransition: <T extends Workcard = Workcard>(card: T | null | undefined, transition: Transition) => T | null;
|
|
19
|
-
/**
|
|
20
|
-
* The relationships after one transition. Pure and total, like {@link applyTransition}.
|
|
21
|
-
*
|
|
22
|
-
* `create` adds its `links`, `link` adds its `link`, `unlink` removes the matching edge, and a
|
|
23
|
-
* `delete` removes every edge touching the card. An edge that already exists is kept as it is, so
|
|
24
|
-
* re-folding adds nothing. Every other action answers the list unchanged. Always a new array.
|
|
25
|
-
*/
|
|
7
|
+
/** @deprecated compat:factory-refactor — use `applyHelper.applyRelationship(…)` */
|
|
26
8
|
export declare const applyRelationship: (links: Relationship[], transition: Transition) => Relationship[];
|
|
27
9
|
//# sourceMappingURL=apply.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../src/helpers/apply.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAqB,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../src/helpers/apply.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAqB,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACxF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAMnD,eAAO,MAAM,iBAAiB,QAAO,WAsJpC,CAAA;AAED,eAAO,MAAM,WAAW,aAAsB,CAAA;AAE9C,iFAAiF;AACjF,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,QAAQ,GAAG,QAAQ,QACrD,CAAC,GAAG,IAAI,GAAG,SAAS,cAAc,UAAU,KACjD,CAAC,GAAG,IAAwD,CAAA;AAE/D,mFAAmF;AACnF,eAAO,MAAM,iBAAiB,UAAW,YAAY,EAAE,cAAc,UAAU,KAAG,YAAY,EAC5C,CAAA"}
|