@flow-as-code/core 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +30 -0
  3. package/SPEC.md +92 -0
  4. package/dist/actions.d.ts +87 -0
  5. package/dist/actions.d.ts.map +1 -0
  6. package/dist/actions.js +204 -0
  7. package/dist/actions.js.map +1 -0
  8. package/dist/aws.d.ts +27 -0
  9. package/dist/aws.d.ts.map +1 -0
  10. package/dist/aws.js +32 -0
  11. package/dist/aws.js.map +1 -0
  12. package/dist/blocks.d.ts +287 -0
  13. package/dist/blocks.d.ts.map +1 -0
  14. package/dist/blocks.js +352 -0
  15. package/dist/blocks.js.map +1 -0
  16. package/dist/codegen.d.ts +21 -0
  17. package/dist/codegen.d.ts.map +1 -0
  18. package/dist/codegen.js +1027 -0
  19. package/dist/codegen.js.map +1 -0
  20. package/dist/export.d.ts +256 -0
  21. package/dist/export.d.ts.map +1 -0
  22. package/dist/export.js +799 -0
  23. package/dist/export.js.map +1 -0
  24. package/dist/flow.d.ts +41 -0
  25. package/dist/flow.d.ts.map +1 -0
  26. package/dist/flow.js +85 -0
  27. package/dist/flow.js.map +1 -0
  28. package/dist/flowdoc.d.ts +111 -0
  29. package/dist/flowdoc.d.ts.map +1 -0
  30. package/dist/flowdoc.js +139 -0
  31. package/dist/flowdoc.js.map +1 -0
  32. package/dist/index.d.ts +16 -0
  33. package/dist/index.d.ts.map +1 -0
  34. package/dist/index.js +26 -0
  35. package/dist/index.js.map +1 -0
  36. package/dist/layout.d.ts +11 -0
  37. package/dist/layout.d.ts.map +1 -0
  38. package/dist/layout.js +49 -0
  39. package/dist/layout.js.map +1 -0
  40. package/dist/lint/engine.d.ts +16 -0
  41. package/dist/lint/engine.d.ts.map +1 -0
  42. package/dist/lint/engine.js +37 -0
  43. package/dist/lint/engine.js.map +1 -0
  44. package/dist/lint/graph.d.ts +34 -0
  45. package/dist/lint/graph.d.ts.map +1 -0
  46. package/dist/lint/graph.js +79 -0
  47. package/dist/lint/graph.js.map +1 -0
  48. package/dist/lint/index.d.ts +7 -0
  49. package/dist/lint/index.d.ts.map +1 -0
  50. package/dist/lint/index.js +5 -0
  51. package/dist/lint/index.js.map +1 -0
  52. package/dist/lint/reporters.d.ts +6 -0
  53. package/dist/lint/reporters.d.ts.map +1 -0
  54. package/dist/lint/reporters.js +30 -0
  55. package/dist/lint/reporters.js.map +1 -0
  56. package/dist/lint/rules/action-allowed-in-flow-type.d.ts +11 -0
  57. package/dist/lint/rules/action-allowed-in-flow-type.d.ts.map +1 -0
  58. package/dist/lint/rules/action-allowed-in-flow-type.js +32 -0
  59. package/dist/lint/rules/action-allowed-in-flow-type.js.map +1 -0
  60. package/dist/lint/rules/action-count.d.ts +16 -0
  61. package/dist/lint/rules/action-count.d.ts.map +1 -0
  62. package/dist/lint/rules/action-count.js +32 -0
  63. package/dist/lint/rules/action-count.js.map +1 -0
  64. package/dist/lint/rules/error-branches.d.ts +10 -0
  65. package/dist/lint/rules/error-branches.d.ts.map +1 -0
  66. package/dist/lint/rules/error-branches.js +39 -0
  67. package/dist/lint/rules/error-branches.js.map +1 -0
  68. package/dist/lint/rules/index.d.ts +17 -0
  69. package/dist/lint/rules/index.d.ts.map +1 -0
  70. package/dist/lint/rules/index.js +36 -0
  71. package/dist/lint/rules/index.js.map +1 -0
  72. package/dist/lint/rules/module-depth-5.d.ts +14 -0
  73. package/dist/lint/rules/module-depth-5.d.ts.map +1 -0
  74. package/dist/lint/rules/module-depth-5.js +67 -0
  75. package/dist/lint/rules/module-depth-5.js.map +1 -0
  76. package/dist/lint/rules/no-literal-arn.d.ts +21 -0
  77. package/dist/lint/rules/no-literal-arn.d.ts.map +1 -0
  78. package/dist/lint/rules/no-literal-arn.js +58 -0
  79. package/dist/lint/rules/no-literal-arn.js.map +1 -0
  80. package/dist/lint/rules/no-unresolved-token.d.ts +8 -0
  81. package/dist/lint/rules/no-unresolved-token.d.ts.map +1 -0
  82. package/dist/lint/rules/no-unresolved-token.js +71 -0
  83. package/dist/lint/rules/no-unresolved-token.js.map +1 -0
  84. package/dist/lint/rules/prompt-length-3000.d.ts +16 -0
  85. package/dist/lint/rules/prompt-length-3000.d.ts.map +1 -0
  86. package/dist/lint/rules/prompt-length-3000.js +61 -0
  87. package/dist/lint/rules/prompt-length-3000.js.map +1 -0
  88. package/dist/lint/rules/reachable-blocks.d.ts +7 -0
  89. package/dist/lint/rules/reachable-blocks.d.ts.map +1 -0
  90. package/dist/lint/rules/reachable-blocks.js +45 -0
  91. package/dist/lint/rules/reachable-blocks.js.map +1 -0
  92. package/dist/lint/rules/recording-consent-before-record.d.ts +3 -0
  93. package/dist/lint/rules/recording-consent-before-record.d.ts.map +1 -0
  94. package/dist/lint/rules/recording-consent-before-record.js +87 -0
  95. package/dist/lint/rules/recording-consent-before-record.js.map +1 -0
  96. package/dist/lint/rules/terminal-blocks.d.ts +8 -0
  97. package/dist/lint/rules/terminal-blocks.d.ts.map +1 -0
  98. package/dist/lint/rules/terminal-blocks.js +40 -0
  99. package/dist/lint/rules/terminal-blocks.js.map +1 -0
  100. package/dist/lint/rules/unique-names.d.ts +7 -0
  101. package/dist/lint/rules/unique-names.d.ts.map +1 -0
  102. package/dist/lint/rules/unique-names.js +40 -0
  103. package/dist/lint/rules/unique-names.js.map +1 -0
  104. package/dist/lint/types.d.ts +30 -0
  105. package/dist/lint/types.d.ts.map +1 -0
  106. package/dist/lint/types.js +11 -0
  107. package/dist/lint/types.js.map +1 -0
  108. package/dist/materialize.d.ts +31 -0
  109. package/dist/materialize.d.ts.map +1 -0
  110. package/dist/materialize.js +192 -0
  111. package/dist/materialize.js.map +1 -0
  112. package/dist/package-names.d.ts +11 -0
  113. package/dist/package-names.d.ts.map +1 -0
  114. package/dist/package-names.js +25 -0
  115. package/dist/package-names.js.map +1 -0
  116. package/dist/refs.d.ts +35 -0
  117. package/dist/refs.d.ts.map +1 -0
  118. package/dist/refs.js +69 -0
  119. package/dist/refs.js.map +1 -0
  120. package/dist/serialize.d.ts +13 -0
  121. package/dist/serialize.d.ts.map +1 -0
  122. package/dist/serialize.js +86 -0
  123. package/dist/serialize.js.map +1 -0
  124. package/dist/simulate.d.ts +446 -0
  125. package/dist/simulate.d.ts.map +1 -0
  126. package/dist/simulate.js +1115 -0
  127. package/dist/simulate.js.map +1 -0
  128. package/dist/synth.d.ts +25 -0
  129. package/dist/synth.d.ts.map +1 -0
  130. package/dist/synth.js +93 -0
  131. package/dist/synth.js.map +1 -0
  132. package/package.json +73 -0
  133. package/src/actions.ts +221 -0
  134. package/src/aws.ts +55 -0
  135. package/src/blocks.ts +619 -0
  136. package/src/codegen.ts +1144 -0
  137. package/src/export.ts +1190 -0
  138. package/src/flow.ts +108 -0
  139. package/src/flowdoc.ts +261 -0
  140. package/src/index.ts +31 -0
  141. package/src/layout.ts +54 -0
  142. package/src/lint/engine.ts +56 -0
  143. package/src/lint/graph.ts +86 -0
  144. package/src/lint/index.ts +10 -0
  145. package/src/lint/reporters.ts +44 -0
  146. package/src/lint/rules/action-allowed-in-flow-type.ts +32 -0
  147. package/src/lint/rules/action-count.ts +35 -0
  148. package/src/lint/rules/error-branches.ts +45 -0
  149. package/src/lint/rules/index.ts +53 -0
  150. package/src/lint/rules/module-depth-5.ts +70 -0
  151. package/src/lint/rules/no-literal-arn.ts +64 -0
  152. package/src/lint/rules/no-unresolved-token.ts +80 -0
  153. package/src/lint/rules/prompt-length-3000.ts +66 -0
  154. package/src/lint/rules/reachable-blocks.ts +50 -0
  155. package/src/lint/rules/recording-consent-before-record.ts +90 -0
  156. package/src/lint/rules/terminal-blocks.ts +45 -0
  157. package/src/lint/rules/unique-names.ts +44 -0
  158. package/src/lint/types.ts +43 -0
  159. package/src/materialize.ts +230 -0
  160. package/src/package-names.ts +26 -0
  161. package/src/refs.ts +93 -0
  162. package/src/serialize.ts +97 -0
  163. package/src/simulate.ts +1610 -0
  164. package/src/synth.ts +110 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codegen.js","sourceRoot":"","sources":["../src/codegen.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,256 @@
1
+ import { type AwsCommandSender, type RateLimiterOptions } from "./aws.js";
2
+ import { type CodegenOptions } from "./codegen.js";
3
+ import type { ConnectType, FlowContent, FlowDoc, FlowDocMeta, RefEntry, RefType } from "./flowdoc.js";
4
+ /** ARN type keyword to FlowDoc ref type, for resources nested under an instance. */
5
+ export declare const CONNECT_ARN_REF_TYPES: Readonly<Record<string, RefType>>;
6
+ /** FlowDoc ref type to ARN type keyword. The inverse of CONNECT_ARN_REF_TYPES. */
7
+ export declare const REF_TYPE_ARN_KEYWORDS: Readonly<Record<string, string>>;
8
+ export interface ConnectArn {
9
+ partition: string;
10
+ region: string;
11
+ account: string;
12
+ instanceId: string;
13
+ /** ARN type keyword, e.g. `contact-flow`, `flow-module`, `operating-hours`. */
14
+ resourceType?: string;
15
+ resourceId?: string;
16
+ /**
17
+ * Trailing colon qualifier on a flow or module ARN: `$SAVED` or a version
18
+ * number. Documented on DescribeContactFlow, which spells the alias form
19
+ * `arn:aws:.../contact-flow/{id}:$SAVED`.
20
+ * https://docs.aws.amazon.com/connect/latest/APIReference/API_DescribeContactFlow.html
21
+ */
22
+ qualifier?: string;
23
+ }
24
+ /** Parses an Amazon Connect resource ARN. Returns undefined for anything else. */
25
+ export declare function parseConnectArn(arn: string): ConnectArn | undefined;
26
+ /**
27
+ * Function name out of a Lambda ARN. Lambda is not a Connect resource type:
28
+ * ListLambdaFunctions returns native Lambda ARNs, so the name is the segment
29
+ * after `function`, with any version or alias qualifier dropped.
30
+ * https://docs.aws.amazon.com/connect/latest/APIReference/API_ListLambdaFunctions.html
31
+ */
32
+ export declare function parseLambdaFunctionArn(arn: string): string | undefined;
33
+ /**
34
+ * Drops the trailing qualifier a reference may carry, so `:$SAVED` or a version
35
+ * suffix resolves to the same reverse-map entry as the bare resource.
36
+ */
37
+ export declare function normalizeArn(arn: string): string;
38
+ /**
39
+ * Connect resource names are free text; FlowDoc names are slugs. Lowercase,
40
+ * runs of anything else collapse to a single hyphen, edges trimmed.
41
+ */
42
+ export declare function slugifyResourceName(name: string): string;
43
+ /** One named Connect resource, as the List* operations return it. */
44
+ export interface ResourceSummary {
45
+ arn: string;
46
+ id?: string;
47
+ name: string;
48
+ }
49
+ export interface ContactFlowSummary extends ResourceSummary {
50
+ /** ListContactFlows names this field ContactFlowType, not Type. */
51
+ contactFlowType?: string;
52
+ contactFlowState?: string;
53
+ contactFlowStatus?: string;
54
+ }
55
+ export interface ContactFlowModuleSummary extends ResourceSummary {
56
+ state?: string;
57
+ }
58
+ /**
59
+ * ListBots returns V1 and V2 bots in one list and they are not symmetric: a V2
60
+ * bot yields an alias ARN and no name, a V1 bot yields a name and region and no
61
+ * ARN at all. Only an ARN can be reverse-mapped out of flow content.
62
+ * https://docs.aws.amazon.com/connect/latest/APIReference/API_ListBots.html
63
+ */
64
+ export interface LexBotSummary {
65
+ lexVersion: "V1" | "V2";
66
+ name?: string;
67
+ lexRegion?: string;
68
+ aliasArn?: string;
69
+ }
70
+ export interface InstanceInventory {
71
+ contactFlows: ContactFlowSummary[];
72
+ contactFlowModules: ContactFlowModuleSummary[];
73
+ queues: ResourceSummary[];
74
+ hoursOfOperations: ResourceSummary[];
75
+ prompts: ResourceSummary[];
76
+ /** Bare Lambda function ARNs, which is all ListLambdaFunctions returns. */
77
+ lambdaFunctions: string[];
78
+ lexBots: LexBotSummary[];
79
+ }
80
+ /** A described flow or module: the operation that carries the Flow language. */
81
+ export interface DescribedContactFlow {
82
+ arn: string;
83
+ id: string;
84
+ name: string;
85
+ /** DescribeContactFlow names these Type/State/Status, not ContactFlow*. */
86
+ type?: string;
87
+ state?: string;
88
+ status?: string;
89
+ version?: string;
90
+ /** The Flow language JSON, as a string. */
91
+ content: string;
92
+ contentSha256?: string;
93
+ }
94
+ export interface DescribedContactFlowModule extends DescribedContactFlow {
95
+ /**
96
+ * Two fields a ContactFlow has no analogue for. An exporter that means to
97
+ * round-trip modules has to carry both or it loses content.
98
+ * https://docs.aws.amazon.com/connect/latest/APIReference/API_DescribeContactFlowModule.html
99
+ */
100
+ settings?: string;
101
+ externalInvocationEnabled?: boolean;
102
+ }
103
+ /**
104
+ * The narrow seam every export path runs through. Implementations page and rate
105
+ * limit; this interface deals in complete lists.
106
+ */
107
+ export interface ConnectInventoryClient {
108
+ listContactFlows(contactFlowTypes?: readonly string[]): Promise<ContactFlowSummary[]>;
109
+ describeContactFlow(contactFlowId: string): Promise<DescribedContactFlow>;
110
+ listContactFlowModules(): Promise<ContactFlowModuleSummary[]>;
111
+ describeContactFlowModule(contactFlowModuleId: string): Promise<DescribedContactFlowModule>;
112
+ listQueues(): Promise<ResourceSummary[]>;
113
+ listHoursOfOperations(): Promise<ResourceSummary[]>;
114
+ listPrompts(): Promise<ResourceSummary[]>;
115
+ listLambdaFunctions(): Promise<string[]>;
116
+ listBots(): Promise<LexBotSummary[]>;
117
+ }
118
+ export interface CollectInventoryOptions {
119
+ /**
120
+ * ContactFlowTypes filter for ListContactFlows. Omitted means every type.
121
+ * https://docs.aws.amazon.com/connect/latest/APIReference/API_ListContactFlows.html
122
+ */
123
+ flowTypes?: readonly string[];
124
+ /** Set false to skip ListContactFlowModules and DescribeContactFlowModule. */
125
+ includeModules?: boolean;
126
+ }
127
+ /** Runs the nine list operations and assembles one inventory. */
128
+ export declare function collectInventory(client: ConnectInventoryClient, options?: CollectInventoryOptions): Promise<InstanceInventory>;
129
+ export interface ReverseMap {
130
+ /** Normalized ARN to the ref entry that replaces it. */
131
+ byArn: ReadonlyMap<string, RefEntry>;
132
+ /** Names that collided, bots with no ARN, and anything else lossy. */
133
+ warnings: readonly string[];
134
+ }
135
+ /**
136
+ * ARN to ref entry for one instance. Every ARN a flow can hold gets an entry,
137
+ * so anything left over after export is genuinely unknown and is reported.
138
+ */
139
+ export declare function buildReverseMap(inventory: InstanceInventory): ReverseMap;
140
+ /**
141
+ * Reverse map from a materialization resource map (token to value). The
142
+ * offline half of export: it turns the same file that materializes a FlowDoc
143
+ * into the map that exports the result back, which is what makes the
144
+ * round-trip property testable with no instance.
145
+ */
146
+ export declare function reverseMapOfResourceMap(resourceMap: Record<string, string>): ReverseMap;
147
+ /** Reverse-map lookup, tolerant of a `:$SAVED` or version qualifier. */
148
+ export declare function lookupArn(reverseMap: ReverseMap, arn: string): RefEntry | undefined;
149
+ /**
150
+ * Export failed. Both lists are complete and sorted, so a caller fixes the
151
+ * inventory once rather than one ARN per run. Mirrors MaterializeError.
152
+ */
153
+ export declare class ExportError extends Error {
154
+ /** ARNs occupying a whole field with no entry in the reverse map. */
155
+ readonly unknownArns: readonly string[];
156
+ /**
157
+ * ARNs embedded in a longer string. A reference occupies an entire field
158
+ * value (FlowDoc invariant 4), so these cannot become tokens at all.
159
+ */
160
+ readonly interpolatedArns: readonly string[];
161
+ /** ARN to the content paths it was found at, for locating each one. */
162
+ readonly locations: Readonly<Record<string, readonly string[]>>;
163
+ /**
164
+ * The FlowDoc name being exported, when the caller knew it. A whole-instance
165
+ * export reads many flows through one call, so without this the message names
166
+ * an ARN and leaves the operator to find which flow holds it.
167
+ */
168
+ readonly resource?: string;
169
+ constructor(unknownArns: readonly string[], interpolatedArns: readonly string[], locations: Readonly<Record<string, readonly string[]>>, resource?: string);
170
+ }
171
+ export interface ExportFlowOptions {
172
+ /** FlowDoc name. Must be a slug; use slugifyResourceName on a console name. */
173
+ name: string;
174
+ connectType: ConnectType;
175
+ /** Defaults to "module" when connectType is MODULE, "flow" otherwise. */
176
+ kind?: "flow" | "module";
177
+ /** Recorded in meta.generator. Defaults to the package identity. */
178
+ generator?: string;
179
+ /** Merged into meta, after generator. */
180
+ meta?: FlowDocMeta;
181
+ /** Set false to emit no `meta` block. */
182
+ includeMeta?: boolean;
183
+ }
184
+ /**
185
+ * Live Flow language in, FlowDoc out. Every ARN occupying a whole field value
186
+ * becomes its `${cdref:type:name}` token; an ARN with no reverse-map entry is a
187
+ * hard error listing every unknown ARN at once, per SPEC.md.
188
+ */
189
+ export declare function exportFlow(content: string | FlowContent | Record<string, unknown>, reverseMap: ReverseMap, options: ExportFlowOptions): FlowDoc;
190
+ export interface ExportedFlow {
191
+ arn: string;
192
+ id: string;
193
+ /** The name as the instance spells it, before slugging. */
194
+ sourceName: string;
195
+ doc: FlowDoc;
196
+ /** Present when options.codegen is set. */
197
+ code?: string;
198
+ /** Set when the flow was read through the $SAVED alias. */
199
+ saved?: boolean;
200
+ }
201
+ export interface ExportFailure {
202
+ arn: string;
203
+ name: string;
204
+ reason: string;
205
+ unknownArns?: readonly string[];
206
+ }
207
+ export interface ExportInstanceResult {
208
+ inventory: InstanceInventory;
209
+ reverseMap: ReverseMap;
210
+ flows: ExportedFlow[];
211
+ warnings: string[];
212
+ failures: ExportFailure[];
213
+ }
214
+ export interface ExportInstanceOptions extends CollectInventoryOptions {
215
+ /**
216
+ * Read never-published flows through the `$SAVED` alias instead of failing.
217
+ * DescribeContactFlow throws ContactFlowNotPublishedException for a flow that
218
+ * has never been published, and documents `$SAVED` as the way to read the
219
+ * saved content. Default true.
220
+ * https://docs.aws.amazon.com/connect/latest/APIReference/API_DescribeContactFlow.html
221
+ */
222
+ savedFallback?: boolean;
223
+ /**
224
+ * "throw" (default, and what SPEC.md specifies) aborts the export on the
225
+ * first flow that cannot be exported. "collect" records it in `failures` and
226
+ * keeps going, which is what a first look at an unfamiliar instance wants.
227
+ */
228
+ onError?: "throw" | "collect";
229
+ /** Emit TypeScript beside each FlowDoc. `true` uses codegen defaults. */
230
+ codegen?: boolean | CodegenOptions;
231
+ /** Recorded in meta.generator on every exported doc. */
232
+ generator?: string;
233
+ /** Pre-supplied inventory, to export twice without listing twice. */
234
+ inventory?: InstanceInventory;
235
+ }
236
+ /**
237
+ * Whole-instance export: inventory, reverse map, then every flow and module.
238
+ * Nothing here is Connect-version specific beyond the client interface, so the
239
+ * offline fixtures exercise exactly the code a live run does.
240
+ */
241
+ export declare function exportInstance(client: ConnectInventoryClient, options?: ExportInstanceOptions): Promise<ExportInstanceResult>;
242
+ export interface ConnectClientOptions extends RateLimiterOptions {
243
+ /** An @aws-sdk/client-connect ConnectClient, or anything with `send`. */
244
+ connect: AwsCommandSender;
245
+ /** Instance id or instance ARN; both are accepted by every operation. */
246
+ instanceId: string;
247
+ /** Page size for the Connect resource lists. Their maximum is 1000. */
248
+ maxResults?: number;
249
+ }
250
+ /**
251
+ * Builds a ConnectInventoryClient over the AWS SDK: pagination, the 2 rps
252
+ * throttle budget, and the response-shape differences between the list and
253
+ * describe operations all live here so nothing above has to know them.
254
+ */
255
+ export declare function createConnectInventoryClient(options: ConnectClientOptions): ConnectInventoryClient;
256
+ //# sourceMappingURL=export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"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"}