@owlmeans/client-planning 0.1.18-rc.9 → 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.
Files changed (146) hide show
  1. package/README.md +94 -11
  2. package/agent-meta/manifest.json +62 -4
  3. package/agent-meta/skills/client-planning/SKILL.md +60 -78
  4. package/agent-meta/skills/client-planning/parts/aux-mirrors.md +61 -0
  5. package/agent-meta/skills/client-planning/parts/mirror.md +67 -0
  6. package/agent-meta/skills/client-planning/parts/validation.md +60 -0
  7. package/build/client.d.ts +1 -1
  8. package/build/client.d.ts.map +1 -1
  9. package/build/client.js +66 -14
  10. package/build/client.js.map +1 -1
  11. package/build/commits.d.ts +2 -13
  12. package/build/commits.d.ts.map +1 -1
  13. package/build/commits.js +190 -132
  14. package/build/commits.js.map +1 -1
  15. package/build/consts.d.ts +4 -0
  16. package/build/consts.d.ts.map +1 -1
  17. package/build/consts.js +10 -4
  18. package/build/consts.js.map +1 -1
  19. package/build/definitions.d.ts +13 -0
  20. package/build/definitions.d.ts.map +1 -0
  21. package/build/definitions.js +70 -0
  22. package/build/definitions.js.map +1 -0
  23. package/build/events/types.d.ts +34 -0
  24. package/build/events/types.d.ts.map +1 -0
  25. package/build/events/types.js +2 -0
  26. package/build/events/types.js.map +1 -0
  27. package/build/events.d.ts +10 -21
  28. package/build/events.d.ts.map +1 -1
  29. package/build/events.js +104 -102
  30. package/build/events.js.map +1 -1
  31. package/build/facade.d.ts.map +1 -1
  32. package/build/facade.js +86 -49
  33. package/build/facade.js.map +1 -1
  34. package/build/feed.d.ts +4 -4
  35. package/build/feed.d.ts.map +1 -1
  36. package/build/feed.js +50 -27
  37. package/build/feed.js.map +1 -1
  38. package/build/helper/types.d.ts +15 -0
  39. package/build/helper/types.d.ts.map +1 -0
  40. package/build/helper/types.js +2 -0
  41. package/build/helper/types.js.map +1 -0
  42. package/build/helper.d.ts +7 -7
  43. package/build/helper.d.ts.map +1 -1
  44. package/build/helper.js +16 -8
  45. package/build/helper.js.map +1 -1
  46. package/build/index.d.ts +11 -0
  47. package/build/index.d.ts.map +1 -1
  48. package/build/index.js +6 -0
  49. package/build/index.js.map +1 -1
  50. package/build/lifecycle/types.d.ts +27 -0
  51. package/build/lifecycle/types.d.ts.map +1 -0
  52. package/build/lifecycle/types.js +2 -0
  53. package/build/lifecycle/types.js.map +1 -0
  54. package/build/lifecycle.d.ts +3 -0
  55. package/build/lifecycle.d.ts.map +1 -0
  56. package/build/lifecycle.js +157 -0
  57. package/build/lifecycle.js.map +1 -0
  58. package/build/resource-feed.d.ts +5 -0
  59. package/build/resource-feed.d.ts.map +1 -0
  60. package/build/resource-feed.js +97 -0
  61. package/build/resource-feed.js.map +1 -0
  62. package/build/resources.d.ts +6 -0
  63. package/build/resources.d.ts.map +1 -0
  64. package/build/resources.js +93 -0
  65. package/build/resources.js.map +1 -0
  66. package/build/stores.d.ts +4 -11
  67. package/build/stores.d.ts.map +1 -1
  68. package/build/stores.js +11 -35
  69. package/build/stores.js.map +1 -1
  70. package/build/sync/types.d.ts +18 -0
  71. package/build/sync/types.d.ts.map +1 -0
  72. package/build/sync/types.js +2 -0
  73. package/build/sync/types.js.map +1 -0
  74. package/build/sync.d.ts +4 -0
  75. package/build/sync.d.ts.map +1 -0
  76. package/build/sync.js +26 -0
  77. package/build/sync.js.map +1 -0
  78. package/build/types.d.ts +48 -3
  79. package/build/types.d.ts.map +1 -1
  80. package/build/types.local.d.ts +13 -0
  81. package/build/types.local.d.ts.map +1 -0
  82. package/build/types.local.js +2 -0
  83. package/build/types.local.js.map +1 -0
  84. package/build/utils/record/types.d.ts +28 -0
  85. package/build/utils/record/types.d.ts.map +1 -0
  86. package/build/utils/record/types.js +2 -0
  87. package/build/utils/record/types.js.map +1 -0
  88. package/build/utils/record.d.ts +3 -24
  89. package/build/utils/record.d.ts.map +1 -1
  90. package/build/utils/record.js +64 -70
  91. package/build/utils/record.js.map +1 -1
  92. package/build/validation/consts.d.ts +23 -0
  93. package/build/validation/consts.d.ts.map +1 -0
  94. package/build/validation/consts.js +289 -0
  95. package/build/validation/consts.js.map +1 -0
  96. package/build/validation/types.d.ts +17 -0
  97. package/build/validation/types.d.ts.map +1 -0
  98. package/build/validation/types.js +2 -0
  99. package/build/validation/types.js.map +1 -0
  100. package/build/validation.d.ts +10 -0
  101. package/build/validation.d.ts.map +1 -0
  102. package/build/validation.js +171 -0
  103. package/build/validation.js.map +1 -0
  104. package/package.json +20 -18
  105. package/src/client.ts +58 -15
  106. package/src/commits.ts +152 -184
  107. package/src/consts.ts +12 -4
  108. package/src/definitions.ts +93 -0
  109. package/src/events/types.ts +35 -0
  110. package/src/events.ts +118 -108
  111. package/src/facade.ts +87 -55
  112. package/src/feed.ts +47 -28
  113. package/src/helper/types.ts +15 -0
  114. package/src/helper.ts +27 -10
  115. package/src/index.ts +12 -0
  116. package/src/lifecycle/types.ts +28 -0
  117. package/src/lifecycle.ts +123 -0
  118. package/src/resource-feed.ts +79 -0
  119. package/src/resources.ts +84 -0
  120. package/src/stores.ts +11 -40
  121. package/src/sync/types.ts +18 -0
  122. package/src/sync.ts +40 -0
  123. package/src/types.local.ts +14 -0
  124. package/src/types.ts +53 -5
  125. package/src/utils/record/types.ts +27 -0
  126. package/src/utils/record.ts +68 -71
  127. package/src/validation/consts.ts +289 -0
  128. package/src/validation/types.ts +18 -0
  129. package/src/validation.ts +140 -0
  130. package/tests/app.spec.ts +72 -0
  131. package/tests/context.ts +46 -15
  132. package/tests/csp.spec.ts +119 -0
  133. package/tests/definitions.spec.ts +74 -0
  134. package/tests/draft7.spec.ts +13 -0
  135. package/tests/events.spec.ts +13 -9
  136. package/tests/facade.spec.ts +2 -1
  137. package/tests/lifecycle/context.ts +29 -0
  138. package/tests/lifecycle-close.spec.ts +103 -0
  139. package/tests/lifecycle-commits.spec.ts +92 -0
  140. package/tests/lifecycle-definitions.spec.ts +28 -0
  141. package/tests/lifecycle-feeds.spec.ts +92 -0
  142. package/tests/lifecycle-sockets.spec.ts +76 -0
  143. package/tests/replies.spec.ts +81 -0
  144. package/tests/resources.spec.ts +116 -0
  145. package/tests/stores.spec.ts +13 -11
  146. package/tests/validation.spec.ts +127 -0
package/build/sync.js ADDED
@@ -0,0 +1,26 @@
1
+ import { recordUtils } from './utils/record.js';
2
+ export const createSyncHelper = () => {
3
+ const syncCards = async (store, items, where, opts) => {
4
+ await dropUnnamed(store, recordUtils.idsOf(items), where, opts);
5
+ for (const item of items) {
6
+ await recordUtils.putCard(store, item);
7
+ }
8
+ };
9
+ const syncLinks = async (store, items, where, opts) => {
10
+ await dropUnnamed(store, recordUtils.idsOf(items), where, opts);
11
+ for (const item of items) {
12
+ await recordUtils.putLink(store, item);
13
+ }
14
+ };
15
+ const dropUnnamed = async (store, named, where, opts) => {
16
+ const keep = new Set([...named, ...(opts?.keep ?? [])]);
17
+ const scoped = await store.list(where);
18
+ const stale = recordUtils.idsOf(scoped.items).filter(id => !keep.has(id));
19
+ if (stale.length > 0) {
20
+ await store.purge({ id: { $in: stale } });
21
+ }
22
+ };
23
+ return { syncCards, syncLinks };
24
+ };
25
+ export const syncHelper = createSyncHelper();
26
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAe,EAAE;IAC/C,MAAM,SAAS,GAAG,KAAK,EACrB,KAA8B,EAAE,KAAiB,EAAE,KAA0B,EAAE,IAAkB,EAClF,EAAE;QACjB,MAAM,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;QAC/D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QACxC,CAAC;IACH,CAAC,CAAA;IAED,MAAM,SAAS,GAAG,KAAK,EACrB,KAA8B,EAAE,KAAqB,EAAE,KAA8B,EAAE,IAAkB,EAC1F,EAAE;QACjB,MAAM,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;QAC/D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QACxC,CAAC;IACH,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,KAAK,EACvB,KAAwD,EAAE,KAAe,EAAE,KAAmB,EAAE,IAAkB,EACnG,EAAE;QACjB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QACvD,MAAM,MAAM,GAAG,MAAO,KAAiC,CAAC,IAAI,CAAC,KAA2B,CAAC,CAAA;QACzF,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QACzE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAA;QAC3C,CAAC;IACH,CAAC,CAAA;IAED,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAA;AACjC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAA"}
package/build/types.d.ts CHANGED
@@ -1,10 +1,11 @@
1
1
  import type { ClientConfig, ClientContext } from '@owlmeans/client-context';
2
2
  import type { LazyService } from '@owlmeans/context';
3
3
  import type { AbstractRequest, EntrypointProtocolDeclaration } from '@owlmeans/entrypoint';
4
- import type { CommitFilter, CommitSource, CommitState, PlanningFacade, PlanningProtocols, PlanningSchemaRegistry, PlanningScope, PlanningService, Relationship, RelationshipQuery, TransitionAction, Workcard, WorkcardKind, WorkcardQuery } from '@owlmeans/planning';
4
+ import type { CommitFilter, CommitSource, CommitState, PlanningDefinitions, PlanningFacade, PlanningProtocols, PlanningSchemaRegistry, PlanningScope, PlanningService, Relationship, RelationshipQuery, TransitionAction, Workcard, WorkcardKind, WorkcardQuery } from '@owlmeans/planning';
5
5
  import type { Criteria, ResourceRecord } from '@owlmeans/resource';
6
6
  import type { Connection } from '@owlmeans/socket';
7
7
  import type { StateAlias, StateResource } from '@owlmeans/state';
8
+ import type { PlanningClientLifecycle } from './lifecycle/types.js';
8
9
  export interface Config extends ClientConfig {
9
10
  }
10
11
  export interface Context<C extends Config = Config> extends ClientContext<C> {
@@ -18,6 +19,8 @@ export interface PlanningSocketOpener {
18
19
  (protocol: EntrypointProtocolDeclaration, request?: Partial<AbstractRequest>): Promise<Connection | null>;
19
20
  }
20
21
  export interface PlanningClientOptions {
22
+ /** Current organization slug and authenticated session identity; never an organization record id on the wire. */
23
+ scopeKey?: () => string | undefined;
21
24
  /** The tree the server mounted — the same `makePlanningProtocols` call, alias for alias. */
22
25
  protocols: PlanningProtocols;
23
26
  /**
@@ -42,6 +45,10 @@ export interface PlanningClientOptions {
42
45
  }
43
46
  /** What `appendPlanningClient` registers under `PLANNING_SERVICE`. */
44
47
  export interface PlanningClientService extends PlanningService, LazyService {
48
+ /** Shared by stock facades and feeds; local mutations never cross its close boundary. */
49
+ lifecycle: PlanningClientLifecycle;
50
+ scopeKey: () => string;
51
+ registerFeed: (feed: PlanningFeed) => import('@owlmeans/planning').Unsubscribe;
45
52
  /** A facade over the remote tree. The scope is advisory (see {@link PlanningClientOptions.scope}). */
46
53
  for: (scope?: Partial<PlanningScope>) => PlanningFacade;
47
54
  commits: RemoteCommitSource;
@@ -49,8 +56,23 @@ export interface PlanningClientService extends PlanningService, LazyService {
49
56
  loadSchemas: (opts?: {
50
57
  force?: boolean;
51
58
  }) => Promise<PlanningSchemaRegistry>;
52
- /** Release the shared commit socket. */
59
+ /** Cancel old requests and feeds, drain local mutations, close the socket and clear mirrors. */
53
60
  close: () => Promise<void>;
61
+ /** Data-defined types and flows — present when the tree was declared with `definitions: true`. */
62
+ definitions?: RemoteDefinitions;
63
+ }
64
+ /** The client half of `PlanningDefinitions`: layers cached per project, dropped on any write. */
65
+ export interface RemoteDefinitions extends PlanningDefinitions {
66
+ /** Forget every cached layer — the next read asks the server. */
67
+ invalidate: () => void;
68
+ }
69
+ export interface RemoteDefinitionsOptions {
70
+ lifecycle?: PlanningClientLifecycle;
71
+ scopeKey?: () => string;
72
+ /** Milliseconds, for every definitions call. */
73
+ timeout?: number;
74
+ /** Called after every write (the service reloads its own bundle on the next `model()`). */
75
+ onWrite?: () => void;
54
76
  }
55
77
  export interface WithPlanningClient {
56
78
  planning: () => PlanningClientService;
@@ -58,10 +80,12 @@ export interface WithPlanningClient {
58
80
  export interface RemoteCommitSource extends CommitSource {
59
81
  /** A socket is open under this source. */
60
82
  connected: () => boolean;
61
- /** Release the shared socket. Subscriptions stop receiving until the next `subscribe`. */
83
+ /** Cancel waits and subscriptions and release the socket, including a late-opening carrier. */
62
84
  close: () => Promise<void>;
63
85
  }
64
86
  export interface RemoteCommitSourceOptions {
87
+ lifecycle?: PlanningClientLifecycle;
88
+ scopeKey?: () => string;
65
89
  socket?: PlanningSocketOpener;
66
90
  /** Seconds. */
67
91
  poll?: number;
@@ -71,12 +95,16 @@ export interface RemoteCommitSourceOptions {
71
95
  stores?: () => PlanningStores | null;
72
96
  }
73
97
  export interface RemoteFacadeOptions {
98
+ lifecycle?: PlanningClientLifecycle;
99
+ scopeKey?: () => string;
74
100
  commits: RemoteCommitSource;
75
101
  schemas: PlanningSchemaRegistry;
76
102
  /** Resolves the registry before a model is built. */
77
103
  loadSchemas?: () => Promise<PlanningSchemaRegistry>;
78
104
  timeout?: number;
79
105
  stores?: () => PlanningStores | null;
106
+ /** The data-defined schema surface, shared by every facade of the service. */
107
+ definitions?: RemoteDefinitions;
80
108
  }
81
109
  /** One row per transition the client wrote or saw settle. */
82
110
  export interface PlanningCommitRecord extends ResourceRecord {
@@ -94,11 +122,19 @@ export interface PlanningCommitRecord extends ResourceRecord {
94
122
  error?: string;
95
123
  }
96
124
  export interface PlanningStoreAliases {
125
+ mentions: StateAlias<import('@owlmeans/planning').CommentMention>;
126
+ comments: StateAlias<import('@owlmeans/planning').Comment>;
127
+ teams: StateAlias<import('@owlmeans/planning').Team>;
128
+ assignees: StateAlias<import('@owlmeans/planning').Assignee>;
97
129
  cards: StateAlias<Workcard>;
98
130
  links: StateAlias<Relationship>;
99
131
  commits: StateAlias<PlanningCommitRecord>;
100
132
  }
101
133
  export interface PlanningStores {
134
+ mentions: StateResource<import('@owlmeans/planning').CommentMention>;
135
+ comments: StateResource<import('@owlmeans/planning').Comment>;
136
+ teams: StateResource<import('@owlmeans/planning').Team>;
137
+ assignees: StateResource<import('@owlmeans/planning').Assignee>;
102
138
  cards: StateResource<Workcard>;
103
139
  links: StateResource<Relationship>;
104
140
  commits: StateResource<PlanningCommitRecord>;
@@ -144,4 +180,13 @@ export interface PlanningFeed extends Readonly<PlanningFeedState> {
144
180
  /** Stop folding frames and refreshing. The shared socket stays open. */
145
181
  stop: () => Promise<void>;
146
182
  }
183
+ export interface PlanningResourceFeedOptions {
184
+ assignees?: import('@owlmeans/planning').AssigneeQuery;
185
+ teams?: import('@owlmeans/planning').TeamQuery;
186
+ comments?: import('@owlmeans/planning').CommentQuery;
187
+ mentions?: import('@owlmeans/planning').MentionQuery;
188
+ refresh?: number;
189
+ scope?: Partial<PlanningScope>;
190
+ onChange?: (state: PlanningFeedState) => void;
191
+ }
147
192
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAA;AAC1F,OAAO,KAAK,EACV,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,sBAAsB,EAClG,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,QAAQ,EAC3F,YAAY,EAAE,aAAa,EAC5B,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEhE,MAAM,WAAW,MAAO,SAAQ,YAAY;CAAI;AAEhD,MAAM,WAAW,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC;CAAI;AAEhF;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,CAAC,QAAQ,EAAE,6BAA6B,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAA;CAC1G;AAED,MAAM,WAAW,qBAAqB;IACpC,4FAA4F;IAC5F,SAAS,EAAE,iBAAiB,CAAA;IAC5B;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;IAC9B,kFAAkF;IAClF,MAAM,CAAC,EAAE,oBAAoB,CAAA;IAC7B;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,gFAAgF;IAChF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,qEAAqE;IACrE,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,sEAAsE;AACtE,MAAM,WAAW,qBAAsB,SAAQ,eAAe,EAAE,WAAW;IACzE,sGAAsG;IACtG,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK,cAAc,CAAA;IACvD,OAAO,EAAE,kBAAkB,CAAA;IAC3B,6EAA6E;IAC7E,WAAW,EAAE,CAAC,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAA;IAC5E,wCAAwC;IACxC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,qBAAqB,CAAA;CACtC;AAED,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD,0CAA0C;IAC1C,SAAS,EAAE,MAAM,OAAO,CAAA;IACxB,0FAA0F;IAC1F,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,CAAC,EAAE,oBAAoB,CAAA;IAC7B,eAAe;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,cAAc,GAAG,IAAI,CAAA;CACrC;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,kBAAkB,CAAA;IAC3B,OAAO,EAAE,sBAAsB,CAAA;IAC/B,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,sBAAsB,CAAC,CAAA;IACnD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,cAAc,GAAG,IAAI,CAAA;CACrC;AAED,6DAA6D;AAC7D,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D,yBAAyB;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,KAAK,EAAE,WAAW,CAAA;IAClB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;IAC3B,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,CAAA;IAC/B,OAAO,EAAE,UAAU,CAAC,oBAAoB,CAAC,CAAA;CAC1C;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;IAC9B,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;IAClC,OAAO,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAA;CAC7C;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,cAAc,CAAA;CACrC;AAED,MAAM,WAAW,WAAW;IAC1B,iGAAiG;IACjG,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,sEAAsE;IACtE,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB;;;OAGG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAC1B,gDAAgD;IAChD,KAAK,CAAC,EAAE,iBAAiB,CAAA;IACzB,0FAA0F;IAC1F,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,4FAA4F;IAC5F,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;IAC9B,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAA;CAC9C;AAED,MAAM,WAAW,iBAAiB;IAChC,iCAAiC;IACjC,SAAS,EAAE,OAAO,CAAA;IAClB,4EAA4E;IAC5E,MAAM,EAAE,OAAO,CAAA;IACf,qDAAqD;IACrD,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CACpB;AAED,MAAM,WAAW,YAAa,SAAQ,QAAQ,CAAC,iBAAiB,CAAC;IAC/D,8EAA8E;IAC9E,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IACpB,sBAAsB;IACtB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,wEAAwE;IACxE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { CommitEvent, CommitFilter } from '@owlmeans/planning';
2
+ import type { Connection } from '@owlmeans/socket';
3
+ import type { PlanningOperation } from './lifecycle/types.js';
4
+ export interface Subscription {
5
+ operation: PlanningOperation;
6
+ listener: (event: CommitEvent) => void | Promise<void>;
7
+ filter?: CommitFilter;
8
+ }
9
+ export interface CommitSocketOpening {
10
+ operation: PlanningOperation;
11
+ promise: Promise<Connection | null>;
12
+ }
13
+ //# sourceMappingURL=types.local.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.local.d.ts","sourceRoot":"","sources":["../src/types.local.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAE7D,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,iBAAiB,CAAA;IAC5B,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,MAAM,CAAC,EAAE,YAAY,CAAA;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,iBAAiB,CAAA;IAC5B,OAAO,EAAE,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAA;CACpC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.local.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.local.js","sourceRoot":"","sources":["../src/types.local.ts"],"names":[],"mappings":""}
@@ -0,0 +1,28 @@
1
+ import type { CommitState, Relationship, Workcard } from '@owlmeans/planning';
2
+ import type { ResourceRecord } from '@owlmeans/resource';
3
+ import type { StateResource } from '@owlmeans/state';
4
+ import type { PlanningCommitRecord, PlanningStores } from '../../types.js';
5
+ /** How a record is written into the state mirror: only when it is newer, and only when it changed. */
6
+ export interface RecordUtils {
7
+ /** Same content, whatever order the keys arrived in. */
8
+ sameRecord: (left: unknown, right: unknown) => boolean;
9
+ /**
10
+ * Write one card unless the store already holds a NEWER fold of it.
11
+ *
12
+ * `seq` is the last folded transition, so a lower one is an older picture — a list fetched before a
13
+ * commit landed must not undo that commit. The head only ever grows: a head this client allocated
14
+ * (`applyReceipt`) stays until a fold catches up with it.
15
+ */
16
+ putCard: (store: StateResource<Workcard>, card: Workcard) => Promise<Workcard>;
17
+ putLink: (store: StateResource<Relationship>, link: Relationship) => Promise<void>;
18
+ /** Drop a card, whatever lives under it when it is a project, and every link touching any of them. */
19
+ dropCard: (stores: PlanningStores, id: string, project: boolean) => Promise<void>;
20
+ /** Record what is known about a transition, merged over what was known before. */
21
+ putCommit: (store: StateResource<PlanningCommitRecord>, record: Partial<PlanningCommitRecord> & {
22
+ id: string;
23
+ state: CommitState;
24
+ }) => Promise<PlanningCommitRecord>;
25
+ clean: <T extends object>(record: T) => T;
26
+ idsOf: <T extends ResourceRecord>(records: T[]) => string[];
27
+ }
28
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utils/record/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE1E,sGAAsG;AACtG,MAAM,WAAW,WAAW;IAC1B,wDAAwD;IACxD,UAAU,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAA;IACtD;;;;;;OAMG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC9E,OAAO,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClF,sGAAsG;IACtG,QAAQ,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACjF,kFAAkF;IAClF,SAAS,EAAE,CACT,KAAK,EAAE,aAAa,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,WAAW,CAAA;KAAE,KACnH,OAAO,CAAC,oBAAoB,CAAC,CAAA;IAClC,KAAK,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,CAAA;IACzC,KAAK,EAAE,CAAC,CAAC,SAAS,cAAc,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,MAAM,EAAE,CAAA;CAC5D"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/utils/record/types.ts"],"names":[],"mappings":""}
@@ -1,25 +1,4 @@
1
- import type { PlanningCommitRecord, PlanningStores } from '../types.js';
2
- import type { CommitState, Relationship, Workcard } from '@owlmeans/planning';
3
- import type { ResourceRecord } from '@owlmeans/resource';
4
- import type { StateResource } from '@owlmeans/state';
5
- /** Same content, whatever order the keys arrived in. */
6
- export declare const sameRecord: (left: unknown, right: unknown) => boolean;
7
- /**
8
- * Write one card unless the store already holds a NEWER fold of it.
9
- *
10
- * `seq` is the last folded transition, so a lower one is an older picture — a list fetched before a
11
- * commit landed must not undo that commit. The head only ever grows: a head this client allocated
12
- * (`applyReceipt`) stays until a fold catches up with it.
13
- */
14
- export declare const putCard: (store: StateResource<Workcard>, card: Workcard) => Promise<Workcard>;
15
- export declare const putLink: (store: StateResource<Relationship>, link: Relationship) => Promise<void>;
16
- /** Drop a card, whatever lives under it when it is a project, and every link touching any of them. */
17
- export declare const dropCard: (stores: PlanningStores, id: string, project: boolean) => Promise<void>;
18
- /** Record what is known about a transition, merged over what was known before. */
19
- export declare const putCommit: (store: StateResource<PlanningCommitRecord>, record: Partial<PlanningCommitRecord> & {
20
- id: string;
21
- state: CommitState;
22
- }) => Promise<PlanningCommitRecord>;
23
- export declare const clean: <T extends object>(record: T) => T;
24
- export declare const idsOf: <T extends ResourceRecord>(records: T[]) => string[];
1
+ import type { RecordUtils } from './record/types.js';
2
+ export declare const createRecordUtils: () => RecordUtils;
3
+ export declare const recordUtils: RecordUtils;
25
4
  //# sourceMappingURL=record.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../src/utils/record.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAgBpD,wDAAwD;AACxD,eAAO,MAAM,UAAU,SAAU,OAAO,SAAS,OAAO,KAAG,OACK,CAAA;AAEhE;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,UAAiB,aAAa,CAAC,QAAQ,CAAC,QAAQ,QAAQ,KAAG,OAAO,CAAC,QAAQ,CAgB9F,CAAA;AAED,eAAO,MAAM,OAAO,UAAiB,aAAa,CAAC,YAAY,CAAC,QAAQ,YAAY,KAAG,OAAO,CAAC,IAAI,CASlG,CAAA;AAED,sGAAsG;AACtG,eAAO,MAAM,QAAQ,WAAkB,cAAc,MAAM,MAAM,WAAW,OAAO,KAAG,OAAO,CAAC,IAAI,CAUjG,CAAA;AAED,kFAAkF;AAClF,eAAO,MAAM,SAAS,UACb,aAAa,CAAC,oBAAoB,CAAC,UAAU,OAAO,CAAC,oBAAoB,CAAC,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAE,KACrH,OAAO,CAAC,oBAAoB,CAS9B,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,MAAM,UAAU,CAAC,KAAG,CACwC,CAAA;AAE5F,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,cAAc,WAAW,CAAC,EAAE,KAAG,MAAM,EACM,CAAA"}
1
+ {"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../src/utils/record.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpD,eAAO,MAAM,iBAAiB,QAAO,WA+EpC,CAAA;AAED,eAAO,MAAM,WAAW,aAAsB,CAAA"}
@@ -1,72 +1,66 @@
1
- const stable = (value) => {
2
- if (Array.isArray(value)) {
3
- return value.map(stable);
4
- }
5
- if (value != null && typeof value === 'object') {
6
- return Object.fromEntries(Object.entries(value)
7
- .filter(([, entry]) => entry !== undefined)
8
- .sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0)
9
- .map(([key, entry]) => [key, stable(entry)]));
10
- }
11
- return value;
1
+ export const createRecordUtils = () => {
2
+ const stable = (value) => {
3
+ if (Array.isArray(value)) {
4
+ return value.map(stable);
5
+ }
6
+ if (value != null && typeof value === 'object') {
7
+ return Object.fromEntries(Object.entries(value)
8
+ .filter(([, entry]) => entry !== undefined)
9
+ .sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0)
10
+ .map(([key, entry]) => [key, stable(entry)]));
11
+ }
12
+ return value;
13
+ };
14
+ const sameRecord = (left, right) => JSON.stringify(stable(left)) === JSON.stringify(stable(right));
15
+ const putCard = async (store, card) => {
16
+ if (card.id == null) {
17
+ return card;
18
+ }
19
+ const known = await store.load(card.id);
20
+ if (known != null && (known.seq ?? 0) > (card.seq ?? 0)) {
21
+ return known;
22
+ }
23
+ const head = Math.max(card.head ?? card.seq ?? 0, known?.head ?? 0);
24
+ const next = head > (card.head ?? card.seq ?? 0) ? { ...card, head } : card;
25
+ if (known != null && sameRecord(known, next)) {
26
+ return known;
27
+ }
28
+ await store.save(next);
29
+ return next;
30
+ };
31
+ const putLink = async (store, link) => {
32
+ if (link.id == null) {
33
+ return;
34
+ }
35
+ const known = await store.load(link.id);
36
+ if (known != null && sameRecord(known, link)) {
37
+ return;
38
+ }
39
+ await store.save(link);
40
+ };
41
+ const dropCard = async (stores, id, project) => {
42
+ const ids = [id];
43
+ if (project) {
44
+ const children = await stores.cards.list({ parents: { $contains: [id] } });
45
+ ids.push(...children.items.map(child => child.id).filter((child) => child != null));
46
+ }
47
+ await stores.cards.purge({ id: { $in: ids } });
48
+ if (await stores.links.count({ $or: [{ from: { $in: ids } }, { to: { $in: ids } }] }) > 0) {
49
+ await stores.links.purge({ $or: [{ from: { $in: ids } }, { to: { $in: ids } }] });
50
+ }
51
+ };
52
+ const putCommit = async (store, record) => {
53
+ const known = await store.load(record.id);
54
+ const next = { ...known, ...clean(record) };
55
+ if (known != null && sameRecord(known, next)) {
56
+ return known;
57
+ }
58
+ await store.save(next);
59
+ return next;
60
+ };
61
+ const clean = (record) => Object.fromEntries(Object.entries(record).filter(([, value]) => value !== undefined));
62
+ const idsOf = (records) => records.map(record => record.id).filter((id) => id != null);
63
+ return { sameRecord, putCard, putLink, dropCard, putCommit, clean, idsOf };
12
64
  };
13
- /** Same content, whatever order the keys arrived in. */
14
- export const sameRecord = (left, right) => JSON.stringify(stable(left)) === JSON.stringify(stable(right));
15
- /**
16
- * Write one card unless the store already holds a NEWER fold of it.
17
- *
18
- * `seq` is the last folded transition, so a lower one is an older picture — a list fetched before a
19
- * commit landed must not undo that commit. The head only ever grows: a head this client allocated
20
- * (`applyReceipt`) stays until a fold catches up with it.
21
- */
22
- export const putCard = async (store, card) => {
23
- if (card.id == null) {
24
- return card;
25
- }
26
- const known = await store.load(card.id);
27
- if (known != null && (known.seq ?? 0) > (card.seq ?? 0)) {
28
- return known;
29
- }
30
- const head = Math.max(card.head ?? card.seq ?? 0, known?.head ?? 0);
31
- const next = head > (card.head ?? card.seq ?? 0) ? { ...card, head } : card;
32
- if (known != null && sameRecord(known, next)) {
33
- return known;
34
- }
35
- await store.save(next);
36
- return next;
37
- };
38
- export const putLink = async (store, link) => {
39
- if (link.id == null) {
40
- return;
41
- }
42
- const known = await store.load(link.id);
43
- if (known != null && sameRecord(known, link)) {
44
- return;
45
- }
46
- await store.save(link);
47
- };
48
- /** Drop a card, whatever lives under it when it is a project, and every link touching any of them. */
49
- export const dropCard = async (stores, id, project) => {
50
- const ids = [id];
51
- if (project) {
52
- const children = await stores.cards.list({ parents: { $contains: [id] } });
53
- ids.push(...children.items.map(child => child.id).filter((child) => child != null));
54
- }
55
- await stores.cards.purge({ id: { $in: ids } });
56
- if (await stores.links.count({ $or: [{ from: { $in: ids } }, { to: { $in: ids } }] }) > 0) {
57
- await stores.links.purge({ $or: [{ from: { $in: ids } }, { to: { $in: ids } }] });
58
- }
59
- };
60
- /** Record what is known about a transition, merged over what was known before. */
61
- export const putCommit = async (store, record) => {
62
- const known = await store.load(record.id);
63
- const next = { ...known, ...clean(record) };
64
- if (known != null && sameRecord(known, next)) {
65
- return known;
66
- }
67
- await store.save(next);
68
- return next;
69
- };
70
- export const clean = (record) => Object.fromEntries(Object.entries(record).filter(([, value]) => value !== undefined));
71
- export const idsOf = (records) => records.map(record => record.id).filter((id) => id != null);
65
+ export const recordUtils = createRecordUtils();
72
66
  //# sourceMappingURL=record.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"record.js","sourceRoot":"","sources":["../../src/utils/record.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"record.js","sourceRoot":"","sources":["../../src/utils/record.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /** Draft 7 vocabulary, plus AJV's $defs spelling. Other vocabularies fail closed. */
2
+ export declare const FIELD_SCHEMA_KEYWORDS: Set<string>;
3
+ export declare const FIELD_SCHEMA_MAPS: Set<string>;
4
+ export declare const FIELD_SCHEMA_ARRAYS: Set<string>;
5
+ export declare const FIELD_SCHEMA_CHILDREN: Set<string>;
6
+ export declare const FIELD_SCHEMA_ANNOTATIONS: Set<string>;
7
+ export declare const FIELD_SCHEMA_DRAFTS: Set<string>;
8
+ /** Reserved predicates never replace cfworker's own global format definitions. */
9
+ export declare const FIELD_FORMAT_PREFIX = "owlmeans-planning:";
10
+ export declare const MAX_FIELD_ERRORS = 64;
11
+ export declare const MAX_FIELD_ERROR_PATH = 512;
12
+ export declare const REQUIRED_ERROR_PREFIX = "Instance does not have required property \"";
13
+ export declare const REQUIRED_ERROR_SUFFIX = "\".";
14
+ export declare const FIELD_ERROR_WRAPPERS: Set<string>;
15
+ export declare const FIELD_ERROR_MESSAGES: Readonly<Record<string, string>>;
16
+ /**
17
+ * The JSON Schema draft-07 meta-schema a field schema is checked against — ajv's own
18
+ * `refs/json-schema-draft-07.json`, kept here as data. Importing that file directly needs a JSON
19
+ * import attribute in Node, and a bundler that also meets ajv's own attribute-less `require` of the
20
+ * same file refuses the two (Rollup: "import attributes for the same module are always consistent").
21
+ */
22
+ export declare const JSON_SCHEMA_DRAFT_07: Readonly<Record<string, unknown>>;
23
+ //# sourceMappingURL=consts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../src/validation/consts.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,eAAO,MAAM,qBAAqB,aAQhC,CAAA;AACF,eAAO,MAAM,iBAAiB,aAAuE,CAAA;AACrG,eAAO,MAAM,mBAAmB,aAAuC,CAAA;AACvE,eAAO,MAAM,qBAAqB,aAEhC,CAAA;AACF,eAAO,MAAM,wBAAwB,aAGnC,CAAA;AACF,eAAO,MAAM,mBAAmB,aAG9B,CAAA;AACF,kFAAkF;AAClF,eAAO,MAAM,mBAAmB,uBAAuB,CAAA;AACvD,eAAO,MAAM,gBAAgB,KAAK,CAAA;AAClC,eAAO,MAAM,oBAAoB,MAAM,CAAA;AACvC,eAAO,MAAM,qBAAqB,gDAA+C,CAAA;AACjF,eAAO,MAAM,qBAAqB,QAAO,CAAA;AACzC,eAAO,MAAM,oBAAoB,aAA+E,CAAA;AAChH,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAUjE,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgPjE,CAAA"}