@powerhousedao/network-admin 0.0.61 → 0.0.63
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/dist/document-models/network-profile/gen/schema/zod.d.ts.map +1 -1
- package/dist/document-models/payment-terms/gen/schema/zod.d.ts.map +1 -1
- package/dist/document-models/payment-terms/gen/schema/zod.js +3 -3
- package/dist/document-models/request-for-proposals/gen/schema/zod.d.ts.map +1 -1
- package/dist/document-models/request-for-proposals/gen/schema/zod.js +4 -4
- package/dist/document-models/workstream/gen/schema/zod.d.ts.map +1 -1
- package/dist/document-models/workstream/gen/schema/zod.js +3 -3
- package/dist/processors/factory.js +2 -2
- package/dist/processors/index.d.ts +2 -1
- package/dist/processors/index.d.ts.map +1 -1
- package/dist/processors/index.js +2 -1
- package/dist/processors/workstreams/factory.d.ts +4 -0
- package/dist/processors/workstreams/factory.d.ts.map +1 -0
- package/dist/processors/workstreams/factory.js +28 -0
- package/dist/processors/workstreams/index.d.ts +16 -0
- package/dist/processors/workstreams/index.d.ts.map +1 -0
- package/dist/processors/workstreams/index.js +259 -0
- package/dist/processors/workstreams/migrations.d.ts +4 -0
- package/dist/processors/workstreams/migrations.d.ts.map +1 -0
- package/dist/processors/workstreams/migrations.js +30 -0
- package/dist/processors/workstreams/schema.d.ts +19 -0
- package/dist/processors/workstreams/schema.d.ts.map +1 -0
- package/dist/processors/workstreams/schema.js +1 -0
- package/dist/style.css +2331 -56
- package/dist/subgraphs/builders-addon/resolvers.d.ts.map +1 -1
- package/dist/subgraphs/builders-addon/resolvers.js +4 -6
- package/dist/subgraphs/builders-addon/schema.d.ts.map +1 -1
- package/dist/subgraphs/builders-addon/schema.js +7 -6
- package/dist/subgraphs/networks/resolvers.d.ts.map +1 -1
- package/dist/subgraphs/networks/resolvers.js +3 -2
- package/dist/subgraphs/networks/schema.d.ts.map +1 -1
- package/dist/subgraphs/networks/schema.js +5 -4
- package/dist/subgraphs/workstreams/resolvers.d.ts.map +1 -1
- package/dist/subgraphs/workstreams/resolvers.js +271 -242
- package/dist/subgraphs/workstreams/schema.d.ts.map +1 -1
- package/dist/subgraphs/workstreams/schema.js +5 -4
- package/package.json +19 -19
- package/dist/processors/my-processor/factory.d.ts +0 -5
- package/dist/processors/my-processor/factory.d.ts.map +0 -1
- package/dist/processors/my-processor/factory.js +0 -17
- package/dist/processors/my-processor/index.d.ts +0 -13
- package/dist/processors/my-processor/index.d.ts.map +0 -1
- package/dist/processors/my-processor/index.js +0 -90
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zod.d.ts","sourceRoot":"","sources":["../../../../../document-models/network-profile/gen/schema/zod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"zod.d.ts","sourceRoot":"","sources":["../../../../../document-models/network-profile/gen/schema/zod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,SAAS,EACT,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,KAAK,UAAU,CAAC,CAAC,IAAI,QAAQ,CAAC;KAC3B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAChC,CAAC,CAAC;AAEH,KAAK,iBAAiB,GAAG,EAAE,CAAC;AAE5B,eAAO,MAAM,mBAAmB,GAAI,GAAG,GAAG,KAAG,CAAC,IAAI,iBACnB,CAAC;AAEhC,eAAO,MAAM,uBAAuB,gGAEI,CAAC;AAEzC,eAAO,MAAM,qBAAqB;;;;;;EAMhC,CAAC;AAEH,wBAAgB,yBAAyB,IAAI,CAAC,CAAC,SAAS,CACtD,UAAU,CAAC,mBAAmB,CAAC,CAChC,CAiBA;AAED,wBAAgB,sBAAsB,IAAI,CAAC,CAAC,SAAS,CACnD,UAAU,CAAC,gBAAgB,CAAC,CAC7B,CAIA;AAED,wBAAgB,yBAAyB,IAAI,CAAC,CAAC,SAAS,CACtD,UAAU,CAAC,mBAAmB,CAAC,CAChC,CAIA;AAED,wBAAgB,qBAAqB,IAAI,CAAC,CAAC,SAAS,CAClD,UAAU,CAAC,eAAe,CAAC,CAC5B,CAIA;AAED,wBAAgB,oBAAoB,IAAI,CAAC,CAAC,SAAS,CACjD,UAAU,CAAC,cAAc,CAAC,CAC3B,CAIA;AAED,wBAAgB,kBAAkB,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAK1E;AAED,wBAAgB,qBAAqB,IAAI,CAAC,CAAC,SAAS,CAClD,UAAU,CAAC,eAAe,CAAC,CAC5B,CAIA;AAED,wBAAgB,kBAAkB,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAK1E;AAED,wBAAgB,yBAAyB,IAAI,CAAC,CAAC,SAAS,CACtD,UAAU,CAAC,mBAAmB,CAAC,CAChC,CAIA;AAED,wBAAgB,qBAAqB,IAAI,CAAC,CAAC,SAAS,CAClD,UAAU,CAAC,eAAe,CAAC,CAC5B,CAIA;AAED,wBAAgB,eAAe,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAIpE;AAED,wBAAgB,qBAAqB,IAAI,CAAC,CAAC,SAAS,CAClD,UAAU,CAAC,eAAe,CAAC,CAC5B,CAIA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zod.d.ts","sourceRoot":"","sources":["../../../../../document-models/payment-terms/gen/schema/zod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"zod.d.ts","sourceRoot":"","sources":["../../../../../document-models/payment-terms/gen/schema/zod.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,7 +41,7 @@ export function AddMilestoneInputSchema() {
|
|
|
41
41
|
unit: z.string().optional(),
|
|
42
42
|
value: z.number().finite(),
|
|
43
43
|
}),
|
|
44
|
-
expectedCompletionDate: z.
|
|
44
|
+
expectedCompletionDate: z.iso.datetime().nullish(),
|
|
45
45
|
id: z.string(),
|
|
46
46
|
name: z.string(),
|
|
47
47
|
requiresApproval: z.boolean(),
|
|
@@ -115,7 +115,7 @@ export function MilestoneSchema() {
|
|
|
115
115
|
unit: z.string().optional(),
|
|
116
116
|
value: z.number().finite(),
|
|
117
117
|
}),
|
|
118
|
-
expectedCompletionDate: z.
|
|
118
|
+
expectedCompletionDate: z.iso.datetime().nullish(),
|
|
119
119
|
id: z.string(),
|
|
120
120
|
name: z.string(),
|
|
121
121
|
payoutStatus: MilestonePayoutStatusSchema,
|
|
@@ -236,7 +236,7 @@ export function UpdateMilestoneInputSchema() {
|
|
|
236
236
|
amount: z
|
|
237
237
|
.object({ unit: z.string().optional(), value: z.number().finite() })
|
|
238
238
|
.nullish(),
|
|
239
|
-
expectedCompletionDate: z.
|
|
239
|
+
expectedCompletionDate: z.iso.datetime().nullish(),
|
|
240
240
|
id: z.string(),
|
|
241
241
|
name: z.string().nullish(),
|
|
242
242
|
requiresApproval: z.boolean().nullish(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zod.d.ts","sourceRoot":"","sources":["../../../../../document-models/request-for-proposals/gen/schema/zod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,KAAK,EACV,uBAAuB,EACvB,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,yBAAyB,EACzB,eAAe,EACf,YAAY,
|
|
1
|
+
{"version":3,"file":"zod.d.ts","sourceRoot":"","sources":["../../../../../document-models/request-for-proposals/gen/schema/zod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,KAAK,EACV,uBAAuB,EACvB,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,yBAAyB,EACzB,eAAe,EACf,YAAY,EACZ,0BAA0B,EAC1B,mBAAmB,EACnB,wBAAwB,EACxB,YAAY,EACZ,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB,KAAK,UAAU,CAAC,CAAC,IAAI,QAAQ,CAAC;KAC3B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAChC,CAAC,CAAC;AAEH,KAAK,iBAAiB,GAAG,EAAE,CAAC;AAE5B,eAAO,MAAM,mBAAmB,GAAI,GAAG,GAAG,KAAG,CAAC,IAAI,iBACnB,CAAC;AAEhC,eAAO,MAAM,uBAAuB,gGAEI,CAAC;AAEzC,eAAO,MAAM,wBAAwB;;;EAAmC,CAAC;AAEzE,eAAO,MAAM,eAAe;;;;;;;;EAQ1B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;EAQ/B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;EAAmC,CAAC;AAEnE,eAAO,MAAM,oBAAoB;;;;;;EAM/B,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;EAMpC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;EAUlC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;EAUvC,CAAC;AAEH,wBAAgB,6BAA6B,IAAI,CAAC,CAAC,SAAS,CAC1D,UAAU,CAAC,uBAAuB,CAAC,CACpC,CAMA;AAED,wBAAgB,sBAAsB,IAAI,CAAC,CAAC,SAAS,CACnD,UAAU,CAAC,gBAAgB,CAAC,CAC7B,CAWA;AAED,wBAAgB,iBAAiB,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAOxE;AAED,wBAAgB,sBAAsB,IAAI,CAAC,CAAC,SAAS,CACnD,UAAU,CAAC,gBAAgB,CAAC,CAC7B,CAMA;AAED,wBAAgB,+BAA+B,IAAI,CAAC,CAAC,SAAS,CAC5D,UAAU,CAAC,yBAAyB,CAAC,CACtC,CAKA;AAED,wBAAgB,qBAAqB,IAAI,CAAC,CAAC,SAAS,CAClD,UAAU,CAAC,eAAe,CAAC,CAC5B,CAMA;AAED,wBAAgB,kBAAkB,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAa1E;AAED,wBAAgB,gCAAgC,IAAI,CAAC,CAAC,SAAS,CAC7D,UAAU,CAAC,0BAA0B,CAAC,CACvC,CAKA;AAED,wBAAgB,yBAAyB,IAAI,CAAC,CAAC,SAAS,CACtD,UAAU,CAAC,mBAAmB,CAAC,CAChC,CAKA;AAED,wBAAgB,8BAA8B,IAAI,CAAC,CAAC,SAAS,CAC3D,UAAU,CAAC,wBAAwB,CAAC,CACrC,CAkBA;AAED,wBAAgB,kBAAkB,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAU1E;AAED,wBAAgB,iBAAiB,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAWxE"}
|
|
@@ -63,7 +63,7 @@ export function AddContextDocumentInputSchema() {
|
|
|
63
63
|
return z.object({
|
|
64
64
|
name: z.string(),
|
|
65
65
|
rfpId: z.string(),
|
|
66
|
-
url: z.
|
|
66
|
+
url: z.url(),
|
|
67
67
|
});
|
|
68
68
|
}
|
|
69
69
|
export function AddProposalInputSchema() {
|
|
@@ -103,7 +103,7 @@ export function ContextDocumentSchema() {
|
|
|
103
103
|
return z.object({
|
|
104
104
|
__typename: z.literal("ContextDocument").optional(),
|
|
105
105
|
name: z.string(),
|
|
106
|
-
url: z.
|
|
106
|
+
url: z.url(),
|
|
107
107
|
});
|
|
108
108
|
}
|
|
109
109
|
export function EditRfpInputSchema() {
|
|
@@ -111,7 +111,7 @@ export function EditRfpInputSchema() {
|
|
|
111
111
|
briefing: z.string().nullish(),
|
|
112
112
|
budgetRange: z.lazy(() => BudgetRangeInputSchema().nullish()),
|
|
113
113
|
code: z.string().nullish(),
|
|
114
|
-
deadline: z.
|
|
114
|
+
deadline: z.iso.datetime().nullish(),
|
|
115
115
|
eligibilityCriteria: z.string().nullish(),
|
|
116
116
|
evaluationCriteria: z.string().nullish(),
|
|
117
117
|
status: RfpStatusInputSchema.nullish(),
|
|
@@ -139,7 +139,7 @@ export function RequestForProposalsStateSchema() {
|
|
|
139
139
|
budgetRange: z.lazy(() => BudgetRangeSchema()),
|
|
140
140
|
code: z.string().nullish(),
|
|
141
141
|
contextDocuments: z.array(z.lazy(() => ContextDocumentSchema())),
|
|
142
|
-
deadline: z.
|
|
142
|
+
deadline: z.iso.datetime().nullish(),
|
|
143
143
|
eligibilityCriteria: z.string(),
|
|
144
144
|
evaluationCriteria: z.string(),
|
|
145
145
|
issuer: z.string(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zod.d.ts","sourceRoot":"","sources":["../../../../../document-models/workstream/gen/schema/zod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,KAAK,EACV,2BAA2B,EAC3B,sBAAsB,EACtB,UAAU,EACV,4BAA4B,EAC5B,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,QAAQ,EACR,cAAc,EACd,mBAAmB,
|
|
1
|
+
{"version":3,"file":"zod.d.ts","sourceRoot":"","sources":["../../../../../document-models/workstream/gen/schema/zod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,KAAK,EACV,2BAA2B,EAC3B,sBAAsB,EACtB,UAAU,EACV,4BAA4B,EAC5B,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,QAAQ,EACR,cAAc,EACd,mBAAmB,EACnB,GAAG,EACH,8BAA8B,EAC9B,yBAAyB,EACzB,0BAA0B,EAC1B,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,KAAK,UAAU,CAAC,CAAC,IAAI,QAAQ,CAAC;KAC3B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAChC,CAAC,CAAC;AAEH,KAAK,iBAAiB,GAAG,EAAE,CAAC;AAE5B,eAAO,MAAM,mBAAmB,GAAI,GAAG,GAAG,KAAG,CAAC,IAAI,iBACnB,CAAC;AAEhC,eAAO,MAAM,uBAAuB,gGAEI,CAAC;AAEzC,eAAO,MAAM,oBAAoB;;;;;EAK/B,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;EAKpC,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;EAUjC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;EAUtC,CAAC;AAEH,wBAAgB,iCAAiC,IAAI,CAAC,CAAC,SAAS,CAC9D,UAAU,CAAC,2BAA2B,CAAC,CACxC,CAQA;AAED,wBAAgB,4BAA4B,IAAI,CAAC,CAAC,SAAS,CACzD,UAAU,CAAC,sBAAsB,CAAC,CACnC,CAIA;AAED,wBAAgB,gBAAgB,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAOtE;AAED,wBAAgB,kCAAkC,IAAI,CAAC,CAAC,SAAS,CAC/D,UAAU,CAAC,4BAA4B,CAAC,CACzC,CAQA;AAED,wBAAgB,yBAAyB,IAAI,CAAC,CAAC,SAAS,CACtD,UAAU,CAAC,mBAAmB,CAAC,CAChC,CAMA;AAED,wBAAgB,8BAA8B,IAAI,CAAC,CAAC,SAAS,CAC3D,UAAU,CAAC,wBAAwB,CAAC,CACrC,CAQA;AAED,wBAAgB,yBAAyB,IAAI,CAAC,CAAC,SAAS,CACtD,UAAU,CAAC,mBAAmB,CAAC,CAChC,CAQA;AAED,wBAAgB,cAAc,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CASlE;AAED,wBAAgB,oBAAoB,IAAI,CAAC,CAAC,SAAS,CACjD,UAAU,CAAC,cAAc,CAAC,CAC3B,CAOA;AAED,wBAAgB,yBAAyB,IAAI,CAAC,CAAC,SAAS,CACtD,UAAU,CAAC,mBAAmB,CAAC,CAChC,CAMA;AAED,wBAAgB,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAMxD;AAED,wBAAgB,oCAAoC,IAAI,CAAC,CAAC,SAAS,CACjE,UAAU,CAAC,8BAA8B,CAAC,CAC3C,CAIA;AAED,wBAAgB,+BAA+B,IAAI,CAAC,CAAC,SAAS,CAC5D,UAAU,CAAC,yBAAyB,CAAC,CACtC,CAIA;AAED,wBAAgB,gCAAgC,IAAI,CAAC,CAAC,SAAS,CAC7D,UAAU,CAAC,0BAA0B,CAAC,CACvC,CAKA;AAED,wBAAgB,qBAAqB,IAAI,CAAC,CAAC,SAAS,CAClD,UAAU,CAAC,eAAe,CAAC,CAC5B,CAcA"}
|
|
@@ -54,7 +54,7 @@ export function AddPaymentRequestInputSchema() {
|
|
|
54
54
|
export function ClientInfoSchema() {
|
|
55
55
|
return z.object({
|
|
56
56
|
__typename: z.literal("ClientInfo").optional(),
|
|
57
|
-
icon: z.
|
|
57
|
+
icon: z.url().nullish(),
|
|
58
58
|
id: z.string(),
|
|
59
59
|
name: z.string().nullish(),
|
|
60
60
|
});
|
|
@@ -106,14 +106,14 @@ export function ProposalSchema() {
|
|
|
106
106
|
export function ProposalAuthorSchema() {
|
|
107
107
|
return z.object({
|
|
108
108
|
__typename: z.literal("ProposalAuthor").optional(),
|
|
109
|
-
icon: z.
|
|
109
|
+
icon: z.url().nullish(),
|
|
110
110
|
id: z.string(),
|
|
111
111
|
name: z.string().nullish(),
|
|
112
112
|
});
|
|
113
113
|
}
|
|
114
114
|
export function ProposalAuthorInputSchema() {
|
|
115
115
|
return z.object({
|
|
116
|
-
icon: z.
|
|
116
|
+
icon: z.url().nullish(),
|
|
117
117
|
id: z.string(),
|
|
118
118
|
name: z.string().nullish(),
|
|
119
119
|
});
|
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
import {} from "document-drive/processors/types";
|
|
6
6
|
import {} from "document-model";
|
|
7
7
|
// Import processor factories here as they are generated
|
|
8
|
-
import {
|
|
8
|
+
import { workstreamsProcessorFactory } from "./workstreams/factory.js";
|
|
9
9
|
export const processorFactory = (module) => {
|
|
10
10
|
// Initialize all processor factories once with the module
|
|
11
11
|
const factories = [];
|
|
12
12
|
// Add processors here as they are generated
|
|
13
|
-
factories.push(
|
|
13
|
+
factories.push(workstreamsProcessorFactory(module));
|
|
14
14
|
// Return the inner function that will be called for each drive
|
|
15
15
|
return async (driveHeader) => {
|
|
16
16
|
const processors = [];
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export {};
|
|
2
2
|
export { processorFactory } from "./factory.js";
|
|
3
|
-
export
|
|
3
|
+
export * as WorkstreamsProcessor from "./workstreams/index.js";
|
|
4
|
+
export { workstreamsProcessorFactory } from "./workstreams/factory.js";
|
|
4
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../processors/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../processors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC;AACV,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,oBAAoB,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC"}
|
package/dist/processors/index.js
CHANGED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type ProcessorRecord, type IProcessorHostModule } from "document-drive";
|
|
2
|
+
import { type PHDocumentHeader } from "document-model";
|
|
3
|
+
export declare const workstreamsProcessorFactory: (module: IProcessorHostModule) => (driveHeader: PHDocumentHeader) => Promise<ProcessorRecord[]>;
|
|
4
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../processors/workstreams/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,oBAAoB,EAC1B,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGvD,eAAO,MAAM,2BAA2B,GACrC,QAAQ,oBAAoB,MACtB,aAAa,gBAAgB,KAAG,OAAO,CAAC,eAAe,EAAE,CAiC/D,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import {} from "document-drive";
|
|
2
|
+
import {} from "document-drive";
|
|
3
|
+
import {} from "document-model";
|
|
4
|
+
import { WorkstreamsProcessor } from "./index.js";
|
|
5
|
+
export const workstreamsProcessorFactory = (module) => async (driveHeader) => {
|
|
6
|
+
// Create a namespace for the processor and the provided drive id
|
|
7
|
+
const namespace = WorkstreamsProcessor.getNamespace(driveHeader.id);
|
|
8
|
+
console.log(`[WorkstreamsProcessor] Factory called for drive: ${driveHeader.id}, namespace: ${namespace}`);
|
|
9
|
+
// Create a namespaced db for the processor
|
|
10
|
+
const store = await module.relationalDb.createNamespace(namespace);
|
|
11
|
+
// Create a filter for the processor
|
|
12
|
+
const filter = {
|
|
13
|
+
branch: ["main"],
|
|
14
|
+
documentId: ["*"],
|
|
15
|
+
documentType: ["powerhouse/workstream", "powerhouse/document-drive"],
|
|
16
|
+
scope: ["global"],
|
|
17
|
+
};
|
|
18
|
+
// Create the processor
|
|
19
|
+
const processor = new WorkstreamsProcessor(namespace, filter, store);
|
|
20
|
+
// Initialize database tables (run migrations)
|
|
21
|
+
await processor.initAndUpgrade();
|
|
22
|
+
return [
|
|
23
|
+
{
|
|
24
|
+
processor,
|
|
25
|
+
filter,
|
|
26
|
+
},
|
|
27
|
+
];
|
|
28
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { RelationalDbProcessor } from "document-drive";
|
|
2
|
+
import type { InternalTransmitterUpdate, InternalOperationUpdate } from "document-drive";
|
|
3
|
+
import type { DB } from "./schema.js";
|
|
4
|
+
export declare class WorkstreamsProcessor extends RelationalDbProcessor<DB> {
|
|
5
|
+
static getNamespace(driveId: string): string;
|
|
6
|
+
workstreams: string[];
|
|
7
|
+
initAndUpgrade(): Promise<void>;
|
|
8
|
+
onStrands(strands: InternalTransmitterUpdate[]): Promise<void>;
|
|
9
|
+
onDisconnect(): Promise<void>;
|
|
10
|
+
setWorkstream: (strand: InternalTransmitterUpdate) => Promise<void>;
|
|
11
|
+
updateInitialProposalInWorkstream: (strand: InternalTransmitterUpdate, operation: InternalOperationUpdate) => Promise<void>;
|
|
12
|
+
updateSowFromAlternativeProposal: (strand: InternalTransmitterUpdate, operation: InternalOperationUpdate) => Promise<void>;
|
|
13
|
+
updateNetworkInWorkstream: (strand: InternalTransmitterUpdate, operation: InternalOperationUpdate) => Promise<void>;
|
|
14
|
+
updateWorkstream: (strand: InternalTransmitterUpdate, operation: InternalOperationUpdate) => Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../processors/workstreams/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EACV,yBAAyB,EACzB,uBAAuB,EAExB,MAAM,gBAAgB,CAAC;AASxB,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEtC,qBAAa,oBAAqB,SAAQ,qBAAqB,CAAC,EAAE,CAAC;WACjD,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAKrD,WAAW,EAAE,MAAM,EAAE,CAAM;IAEZ,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,SAAS,CACtB,OAAO,EAAE,yBAAyB,EAAE,GACnC,OAAO,CAAC,IAAI,CAAC;IA0CV,YAAY;IAgBlB,aAAa,GAAU,QAAQ,yBAAyB,mBAuCtD;IAEF,iCAAiC,GAC/B,QAAQ,yBAAyB,EACjC,WAAW,uBAAuB,mBAiDlC;IAEF,gCAAgC,GAC9B,QAAQ,yBAAyB,EACjC,WAAW,uBAAuB,mBAsDlC;IAEF,yBAAyB,GACvB,QAAQ,yBAAyB,EACjC,WAAW,uBAAuB,mBAyClC;IAEF,gBAAgB,GACd,QAAQ,yBAAyB,EACjC,WAAW,uBAAuB,mBA0ClC;CACH"}
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
import { RelationalDbProcessor } from "document-drive";
|
|
2
|
+
import { up } from "./migrations.js";
|
|
3
|
+
export class WorkstreamsProcessor extends RelationalDbProcessor {
|
|
4
|
+
static getNamespace(driveId) {
|
|
5
|
+
// Default namespace: `${this.name}_${driveId.replaceAll("-", "_")}`
|
|
6
|
+
return super.getNamespace(driveId);
|
|
7
|
+
}
|
|
8
|
+
workstreams = [];
|
|
9
|
+
async initAndUpgrade() {
|
|
10
|
+
await up(this.relationalDb);
|
|
11
|
+
}
|
|
12
|
+
async onStrands(strands) {
|
|
13
|
+
if (strands.length === 0) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
for (const strand of strands) {
|
|
17
|
+
if (strand.operations.length === 0) {
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
if (strand.documentType === "powerhouse/workstream") {
|
|
21
|
+
this.setWorkstream(strand);
|
|
22
|
+
}
|
|
23
|
+
// console.log("strand", { documentType: strand.documentType, docId: strand.documentId });
|
|
24
|
+
for (const operation of strand.operations) {
|
|
25
|
+
if (strand.documentType === "powerhouse/workstream") {
|
|
26
|
+
this.updateWorkstream(strand, operation);
|
|
27
|
+
this.updateNetworkInWorkstream(strand, operation);
|
|
28
|
+
this.updateInitialProposalInWorkstream(strand, operation);
|
|
29
|
+
this.updateSowFromAlternativeProposal(strand, operation);
|
|
30
|
+
}
|
|
31
|
+
if (strand.documentType === "powerhouse/document-drive") {
|
|
32
|
+
if (operation.action.type === "DELETE_NODE") {
|
|
33
|
+
const castAction = operation.action;
|
|
34
|
+
console.log("deleting workstream node", castAction.input.id);
|
|
35
|
+
const foundWorkstream = this.workstreams.find((ws) => ws === castAction.input.id);
|
|
36
|
+
if (foundWorkstream) {
|
|
37
|
+
await this.relationalDb
|
|
38
|
+
.deleteFrom("workstreams")
|
|
39
|
+
.where("workstream_phid", "=", foundWorkstream)
|
|
40
|
+
.execute();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
async onDisconnect() {
|
|
48
|
+
// Clean up all workstreams for this drive's namespace when the drive is deleted
|
|
49
|
+
// Since the database is already namespaced per drive, we delete all rows
|
|
50
|
+
// This ensures no orphaned data remains after drive deletion
|
|
51
|
+
try {
|
|
52
|
+
await this.relationalDb.deleteFrom("workstreams").execute();
|
|
53
|
+
console.log(`Cleaned up workstreams for namespace: ${this.namespace}`);
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
console.error(`Error cleaning up workstreams for namespace ${this.namespace}:`, error);
|
|
57
|
+
// Don't throw - cleanup errors shouldn't prevent drive deletion
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
setWorkstream = async (strand) => {
|
|
61
|
+
const docId = strand.documentId;
|
|
62
|
+
const existingWorkstreamPhids = await this.relationalDb
|
|
63
|
+
.selectFrom("workstreams")
|
|
64
|
+
.select("workstream_phid")
|
|
65
|
+
.where("workstream_phid", "=", docId)
|
|
66
|
+
.execute();
|
|
67
|
+
if (existingWorkstreamPhids.length === 0) {
|
|
68
|
+
console.log("No workstream id found, inserting new one", docId);
|
|
69
|
+
this.workstreams.push(docId);
|
|
70
|
+
// insert network id
|
|
71
|
+
await this.relationalDb
|
|
72
|
+
.insertInto("workstreams")
|
|
73
|
+
.values({
|
|
74
|
+
network_phid: strand.state.client?.id ? strand.state.client.id : null,
|
|
75
|
+
network_slug: strand.state.client?.name
|
|
76
|
+
? strand.state.client.name.toLowerCase().split(" ").join("-")
|
|
77
|
+
: null,
|
|
78
|
+
workstream_phid: strand.documentId,
|
|
79
|
+
workstream_slug: strand.state.title
|
|
80
|
+
? strand.state.title.toLowerCase().split(" ").join("-")
|
|
81
|
+
: "",
|
|
82
|
+
workstream_title: strand.state.title,
|
|
83
|
+
workstream_status: strand.state.status,
|
|
84
|
+
sow_phid: strand.state.initialProposal
|
|
85
|
+
? strand.state.initialProposal.sow
|
|
86
|
+
: null,
|
|
87
|
+
// final_milestone_target: new Date(),
|
|
88
|
+
initial_proposal_status: strand.state.initialProposal
|
|
89
|
+
? strand.state.initialProposal.status
|
|
90
|
+
: null,
|
|
91
|
+
initial_proposal_author: strand.state.initialProposal
|
|
92
|
+
? strand.state.initialProposal.author.name
|
|
93
|
+
: null,
|
|
94
|
+
})
|
|
95
|
+
.onConflict((oc) => oc.column("workstream_phid").doNothing())
|
|
96
|
+
.execute();
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
updateInitialProposalInWorkstream = async (strand, operation) => {
|
|
100
|
+
const docId = strand.documentId;
|
|
101
|
+
const existingWorkstreamPhids = await this.relationalDb
|
|
102
|
+
.selectFrom("workstreams")
|
|
103
|
+
.select("workstream_phid")
|
|
104
|
+
.where("workstream_phid", "=", docId)
|
|
105
|
+
.execute();
|
|
106
|
+
const [foundWorkstreamId] = existingWorkstreamPhids;
|
|
107
|
+
if (foundWorkstreamId) {
|
|
108
|
+
// update existing workstream row
|
|
109
|
+
if (operation.action.type === "EDIT_INITIAL_PROPOSAL") {
|
|
110
|
+
const input = operation.action.input;
|
|
111
|
+
if (!input)
|
|
112
|
+
return;
|
|
113
|
+
console.log("updating initial proposal in workstream", operation.action.input);
|
|
114
|
+
// Build update object with only defined values
|
|
115
|
+
const updateData = {};
|
|
116
|
+
// Check for undefined, not truthiness - allows null to pass through
|
|
117
|
+
if (input.sowId !== undefined) {
|
|
118
|
+
if (strand.state.initialProposal?.status === "ACCEPTED") {
|
|
119
|
+
updateData.sow_phid = strand.state.initialProposal?.sow || null;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
if (input.proposalAuthor) {
|
|
123
|
+
updateData.initial_proposal_author = input.proposalAuthor.name;
|
|
124
|
+
}
|
|
125
|
+
if (input.status) {
|
|
126
|
+
updateData.initial_proposal_status = input.status;
|
|
127
|
+
if (input.status === "ACCEPTED") {
|
|
128
|
+
updateData.sow_phid = strand.state.initialProposal?.sow || null;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
// Only execute update if there are fields to update
|
|
132
|
+
if (Object.keys(updateData).length > 0) {
|
|
133
|
+
await this.relationalDb
|
|
134
|
+
.updateTable("workstreams")
|
|
135
|
+
.set(updateData)
|
|
136
|
+
.where("workstream_phid", "=", docId)
|
|
137
|
+
.execute();
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
updateSowFromAlternativeProposal = async (strand, operation) => {
|
|
143
|
+
const docId = strand.documentId;
|
|
144
|
+
const existingWorkstreamPhids = await this.relationalDb
|
|
145
|
+
.selectFrom("workstreams")
|
|
146
|
+
.select("workstream_phid")
|
|
147
|
+
.where("workstream_phid", "=", docId)
|
|
148
|
+
.execute();
|
|
149
|
+
const [foundWorkstreamId] = existingWorkstreamPhids;
|
|
150
|
+
if (foundWorkstreamId) {
|
|
151
|
+
// update existing workstream row
|
|
152
|
+
if (operation.action.type === "EDIT_ALTERNATIVE_PROPOSAL") {
|
|
153
|
+
const input = operation.action.input;
|
|
154
|
+
if (!input)
|
|
155
|
+
return;
|
|
156
|
+
console.log("updating sow from alternative proposal in workstream", operation.action.input);
|
|
157
|
+
// Build update object with only defined values
|
|
158
|
+
const updateData = {};
|
|
159
|
+
const selectedAlternativeProposal = strand.state.alternativeProposals.find((proposal) => proposal.id === input.id);
|
|
160
|
+
if (selectedAlternativeProposal) {
|
|
161
|
+
// Check for undefined, not truthiness - allows null to pass through
|
|
162
|
+
if (input.sowId !== undefined) {
|
|
163
|
+
if (selectedAlternativeProposal.status === "ACCEPTED") {
|
|
164
|
+
updateData.sow_phid = selectedAlternativeProposal.sow || null;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
if (input.status) {
|
|
168
|
+
if (input.status === "ACCEPTED") {
|
|
169
|
+
updateData.sow_phid = selectedAlternativeProposal.sow || null;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
// Only execute update if there are fields to update
|
|
174
|
+
if (Object.keys(updateData).length > 0) {
|
|
175
|
+
await this.relationalDb
|
|
176
|
+
.updateTable("workstreams")
|
|
177
|
+
.set(updateData)
|
|
178
|
+
.where("workstream_phid", "=", docId)
|
|
179
|
+
.execute();
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
};
|
|
184
|
+
updateNetworkInWorkstream = async (strand, operation) => {
|
|
185
|
+
const docId = strand.documentId;
|
|
186
|
+
const existingWorkstreamPhids = await this.relationalDb
|
|
187
|
+
.selectFrom("workstreams")
|
|
188
|
+
.select("workstream_phid")
|
|
189
|
+
.where("workstream_phid", "=", docId)
|
|
190
|
+
.execute();
|
|
191
|
+
const [foundWorkstreamId] = existingWorkstreamPhids;
|
|
192
|
+
if (foundWorkstreamId) {
|
|
193
|
+
// update existing workstream row
|
|
194
|
+
if (operation.action.type === "EDIT_CLIENT_INFO") {
|
|
195
|
+
const input = operation.action.input;
|
|
196
|
+
if (!input)
|
|
197
|
+
return;
|
|
198
|
+
console.log("updating client in workstream", operation.action.input);
|
|
199
|
+
// Build update object with only defined values
|
|
200
|
+
const updateData = {};
|
|
201
|
+
if (input.clientId) {
|
|
202
|
+
updateData.network_phid = input.clientId;
|
|
203
|
+
}
|
|
204
|
+
if (input.name) {
|
|
205
|
+
updateData.network_slug = input.name
|
|
206
|
+
.toLowerCase()
|
|
207
|
+
.split(" ")
|
|
208
|
+
.join("-");
|
|
209
|
+
}
|
|
210
|
+
// Only execute update if there are fields to update
|
|
211
|
+
if (Object.keys(updateData).length > 0) {
|
|
212
|
+
await this.relationalDb
|
|
213
|
+
.updateTable("workstreams")
|
|
214
|
+
.set(updateData)
|
|
215
|
+
.where("workstream_phid", "=", docId)
|
|
216
|
+
.execute();
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
};
|
|
221
|
+
updateWorkstream = async (strand, operation) => {
|
|
222
|
+
const docId = strand.documentId;
|
|
223
|
+
const existingWorkstreamPhids = await this.relationalDb
|
|
224
|
+
.selectFrom("workstreams")
|
|
225
|
+
.select("workstream_phid")
|
|
226
|
+
.where("workstream_phid", "=", docId)
|
|
227
|
+
.execute();
|
|
228
|
+
const [foundWorkstreamId] = existingWorkstreamPhids;
|
|
229
|
+
if (foundWorkstreamId) {
|
|
230
|
+
// update existing workstream row
|
|
231
|
+
if (operation.action.type === "EDIT_WORKSTREAM") {
|
|
232
|
+
const input = operation.action.input;
|
|
233
|
+
if (!input)
|
|
234
|
+
return;
|
|
235
|
+
console.log("updating workstream", operation.action.input);
|
|
236
|
+
// Build update object with only defined values
|
|
237
|
+
const updateData = {};
|
|
238
|
+
if (input.title) {
|
|
239
|
+
updateData.workstream_title = input.title;
|
|
240
|
+
updateData.workstream_slug = input.title
|
|
241
|
+
.toLowerCase()
|
|
242
|
+
.split(" ")
|
|
243
|
+
.join("-");
|
|
244
|
+
}
|
|
245
|
+
if (input.status) {
|
|
246
|
+
updateData.workstream_status = input.status;
|
|
247
|
+
}
|
|
248
|
+
// Only execute update if there are fields to update
|
|
249
|
+
if (Object.keys(updateData).length > 0) {
|
|
250
|
+
await this.relationalDb
|
|
251
|
+
.updateTable("workstreams")
|
|
252
|
+
.set(updateData)
|
|
253
|
+
.where("workstream_phid", "=", docId)
|
|
254
|
+
.execute();
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
};
|
|
259
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../../processors/workstreams/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,wBAAsB,EAAE,CAAC,EAAE,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAuB9D;AAED,wBAAsB,IAAI,CAAC,EAAE,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import {} from "document-drive";
|
|
2
|
+
export async function up(db) {
|
|
3
|
+
// Create table with IF NOT EXISTS
|
|
4
|
+
try {
|
|
5
|
+
await db.schema
|
|
6
|
+
.createTable("workstreams")
|
|
7
|
+
.addColumn("network_phid", "varchar(255)")
|
|
8
|
+
.addColumn("network_slug", "varchar(255)")
|
|
9
|
+
.addColumn("workstream_phid", "varchar(255)")
|
|
10
|
+
.addColumn("workstream_slug", "varchar(255)")
|
|
11
|
+
.addColumn("workstream_title", "varchar(255)")
|
|
12
|
+
.addColumn("workstream_status", "varchar(255)")
|
|
13
|
+
.addColumn("sow_phid", "varchar(255)")
|
|
14
|
+
.addColumn("final_milestone_target", "timestamp")
|
|
15
|
+
.addColumn("initial_proposal_status", "varchar(255)")
|
|
16
|
+
.addColumn("initial_proposal_author", "varchar(255)")
|
|
17
|
+
.addPrimaryKeyConstraint("workstreams_pkey", ["workstream_phid"])
|
|
18
|
+
.ifNotExists()
|
|
19
|
+
.execute();
|
|
20
|
+
console.log("[WorkstreamsProcessor] Table 'workstreams' created or already exists");
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
console.error("[WorkstreamsProcessor] Failed to create 'workstreams' table:", error);
|
|
24
|
+
throw error;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export async function down(db) {
|
|
28
|
+
// drop table
|
|
29
|
+
await db.schema.dropTable("workstreams").execute();
|
|
30
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ColumnType } from "kysely";
|
|
2
|
+
export type Timestamp = ColumnType<Date, Date | string, Date | string>;
|
|
3
|
+
export interface Workstreams {
|
|
4
|
+
final_milestone_target: Timestamp | null;
|
|
5
|
+
initial_proposal_author: string | null;
|
|
6
|
+
initial_proposal_status: string | null;
|
|
7
|
+
network_phid: string | null;
|
|
8
|
+
network_slug: string | null;
|
|
9
|
+
roadmap_oid: string | null;
|
|
10
|
+
sow_phid: string | null;
|
|
11
|
+
workstream_phid: string;
|
|
12
|
+
workstream_slug: string | null;
|
|
13
|
+
workstream_status: string | null;
|
|
14
|
+
workstream_title: string | null;
|
|
15
|
+
}
|
|
16
|
+
export interface DB {
|
|
17
|
+
workstreams: Workstreams;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../processors/workstreams/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEzC,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,EAAE,IAAI,GAAG,MAAM,CAAC,CAAC;AAEvE,MAAM,WAAW,WAAW;IAC1B,sBAAsB,EAAE,SAAS,GAAG,IAAI,CAAC;IACzC,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,EAAE;IACjB,WAAW,EAAE,WAAW,CAAC;CAC1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|