@taqueria/protocol 0.28.0 → 0.28.2

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 (277) hide show
  1. package/Alias.js +427 -6
  2. package/Alias.js.map +1 -1
  3. package/Base.js +25 -6
  4. package/Base.js.map +1 -1
  5. package/Command.js +427 -6
  6. package/Command.js.map +1 -1
  7. package/Config.js +427 -6
  8. package/Config.js.map +1 -1
  9. package/ConfigArtifactsDir.js +0 -2
  10. package/ConfigArtifactsDir.js.map +1 -1
  11. package/ConfigContractsDir.js +427 -6
  12. package/ConfigContractsDir.js.map +1 -1
  13. package/ConfigEnvironmentFileV2.js +427 -6
  14. package/ConfigEnvironmentFileV2.js.map +1 -1
  15. package/ConfigFileV2.js +427 -6
  16. package/ConfigFileV2.js.map +1 -1
  17. package/Contract.js +427 -6
  18. package/Contract.js.map +1 -1
  19. package/EconomicalProtocolHash.js +427 -6
  20. package/EconomicalProtocolHash.js.map +1 -1
  21. package/Environment.js +427 -6
  22. package/Environment.js.map +1 -1
  23. package/EphemeralState.js +102 -29
  24. package/EphemeralState.js.map +1 -1
  25. package/Faucet.js +427 -6
  26. package/Faucet.js.map +1 -1
  27. package/HumanReadableIdentifier.js +427 -6
  28. package/HumanReadableIdentifier.js.map +1 -1
  29. package/InstalledPlugin.js +427 -6
  30. package/InstalledPlugin.js.map +1 -1
  31. package/LoadedConfig.js +427 -6
  32. package/LoadedConfig.js.map +1 -1
  33. package/MetadataConfig.js +427 -6
  34. package/MetadataConfig.js.map +1 -1
  35. package/NetworkAccountConfig.js +427 -6
  36. package/NetworkAccountConfig.js.map +1 -1
  37. package/NetworkConfig.js +427 -6
  38. package/NetworkConfig.js.map +1 -1
  39. package/NonEmptyString.js +427 -6
  40. package/NonEmptyString.js.map +1 -1
  41. package/Operation.js +427 -6
  42. package/Operation.js.map +1 -1
  43. package/Option.js +427 -6
  44. package/Option.js.map +1 -1
  45. package/ParsedOperation.js +427 -6
  46. package/ParsedOperation.js.map +1 -1
  47. package/ParsedPluginInfo.js +552 -27
  48. package/ParsedPluginInfo.js.map +1 -1
  49. package/ParsedTemplate.js +427 -6
  50. package/ParsedTemplate.js.map +1 -1
  51. package/PersistentState.js +505 -50
  52. package/PersistentState.js.map +1 -1
  53. package/PluginActionName.js +427 -6
  54. package/PluginActionName.js.map +1 -1
  55. package/PluginDependenciesResponse.js +427 -6
  56. package/PluginDependenciesResponse.js.map +1 -1
  57. package/PluginInfo.js +505 -44
  58. package/PluginInfo.js.map +1 -1
  59. package/PluginJsonResponse.js +427 -6
  60. package/PluginJsonResponse.js.map +1 -1
  61. package/PluginProxyResponse.js +427 -6
  62. package/PluginProxyResponse.js.map +1 -1
  63. package/PluginResponseEncoding.js +427 -6
  64. package/PluginResponseEncoding.js.map +1 -1
  65. package/PluginSchema.js +577 -36
  66. package/PluginSchema.js.map +1 -1
  67. package/PositionalArg.js +427 -6
  68. package/PositionalArg.js.map +1 -1
  69. package/Provisioner.js +427 -6
  70. package/Provisioner.js.map +1 -1
  71. package/ProvisionerID.js +427 -6
  72. package/ProvisionerID.js.map +1 -1
  73. package/Provisions.js +427 -6
  74. package/Provisions.js.map +1 -1
  75. package/ProxyTaskArgs.js +427 -6
  76. package/ProxyTaskArgs.js.map +1 -1
  77. package/ProxyTemplateArgs.js +427 -6
  78. package/ProxyTemplateArgs.js.map +1 -1
  79. package/PublicKeyHash.js +427 -6
  80. package/PublicKeyHash.js.map +1 -1
  81. package/RequestArgs.js +427 -6
  82. package/RequestArgs.js.map +1 -1
  83. package/SHA256.js +88 -9
  84. package/SHA256.js.map +1 -1
  85. package/SandboxAccountConfig.js +427 -6
  86. package/SandboxAccountConfig.js.map +1 -1
  87. package/SandboxConfig.js +427 -6
  88. package/SandboxConfig.js.map +1 -1
  89. package/SanitizedAbsPath.js +77 -6
  90. package/SanitizedAbsPath.js.map +1 -1
  91. package/SanitizedArgs.js +514 -63
  92. package/SanitizedArgs.js.map +1 -1
  93. package/SanitizedPath.js +427 -6
  94. package/SanitizedPath.js.map +1 -1
  95. package/ScaffoldConfig.js +427 -6
  96. package/ScaffoldConfig.js.map +1 -1
  97. package/Settings.js +427 -6
  98. package/Settings.js.map +1 -1
  99. package/SingleChar.js +427 -6
  100. package/SingleChar.js.map +1 -1
  101. package/Task.js +427 -6
  102. package/Task.js.map +1 -1
  103. package/Template.js +425 -10
  104. package/Template.js.map +1 -1
  105. package/Timestamp.js +427 -6
  106. package/Timestamp.js.map +1 -1
  107. package/Tz.js +427 -6
  108. package/Tz.js.map +1 -1
  109. package/Url.js +427 -6
  110. package/Url.js.map +1 -1
  111. package/Verb.js +427 -6
  112. package/Verb.js.map +1 -1
  113. package/VersionNumber.js +427 -6
  114. package/VersionNumber.js.map +1 -1
  115. package/helpers.js.map +1 -1
  116. package/index.js +3485 -110
  117. package/index.js.map +1 -1
  118. package/out/types/Alias.js +385 -13
  119. package/out/types/Alias.js.map +1 -1
  120. package/out/types/BuildNumber.js +385 -13
  121. package/out/types/BuildNumber.js.map +1 -1
  122. package/out/types/Command.js +385 -13
  123. package/out/types/Command.js.map +1 -1
  124. package/out/types/Config.js +385 -13
  125. package/out/types/Config.js.map +1 -1
  126. package/out/types/ConfigAccount.js +385 -13
  127. package/out/types/ConfigAccount.js.map +1 -1
  128. package/out/types/ConfigArtifactsDir.js +385 -13
  129. package/out/types/ConfigArtifactsDir.js.map +1 -1
  130. package/out/types/ConfigContractsDir.js +385 -13
  131. package/out/types/ConfigContractsDir.js.map +1 -1
  132. package/out/types/ConfigEnvironmentFileV2.d.ts +4 -4
  133. package/out/types/ConfigEnvironmentFileV2.js +385 -13
  134. package/out/types/ConfigEnvironmentFileV2.js.map +1 -1
  135. package/out/types/ConfigFileV1.js +385 -13
  136. package/out/types/ConfigFileV1.js.map +1 -1
  137. package/out/types/ConfigFileV2.d.ts +4 -4
  138. package/out/types/ConfigFileV2.js +385 -13
  139. package/out/types/ConfigFileV2.js.map +1 -1
  140. package/out/types/Contract.js +385 -13
  141. package/out/types/Contract.js.map +1 -1
  142. package/out/types/CurrencyAmountV2.js +385 -13
  143. package/out/types/CurrencyAmountV2.js.map +1 -1
  144. package/out/types/EconomicalProtocolHash.js +385 -13
  145. package/out/types/EconomicalProtocolHash.js.map +1 -1
  146. package/out/types/Environment.js +385 -13
  147. package/out/types/Environment.js.map +1 -1
  148. package/out/types/EphemeralState.js +385 -13
  149. package/out/types/EphemeralState.js.map +1 -1
  150. package/out/types/Faucet.js +385 -13
  151. package/out/types/Faucet.js.map +1 -1
  152. package/out/types/HumanReadableIdentifier.js +385 -13
  153. package/out/types/HumanReadableIdentifier.js.map +1 -1
  154. package/out/types/InstalledPlugin.js +385 -13
  155. package/out/types/InstalledPlugin.js.map +1 -1
  156. package/out/types/LoadedConfig.js +385 -13
  157. package/out/types/LoadedConfig.js.map +1 -1
  158. package/out/types/MetadataConfig.js +385 -13
  159. package/out/types/MetadataConfig.js.map +1 -1
  160. package/out/types/NetworkAccountConfig.js +385 -13
  161. package/out/types/NetworkAccountConfig.js.map +1 -1
  162. package/out/types/NetworkConfig.js +385 -13
  163. package/out/types/NetworkConfig.js.map +1 -1
  164. package/out/types/NonEmptyString.js +385 -13
  165. package/out/types/NonEmptyString.js.map +1 -1
  166. package/out/types/Operation.js +385 -13
  167. package/out/types/Operation.js.map +1 -1
  168. package/out/types/Option.js +385 -13
  169. package/out/types/Option.js.map +1 -1
  170. package/out/types/ParsedConfig.js +385 -13
  171. package/out/types/ParsedConfig.js.map +1 -1
  172. package/out/types/ParsedOperation.js +385 -13
  173. package/out/types/ParsedOperation.js.map +1 -1
  174. package/out/types/ParsedTemplate.js +385 -13
  175. package/out/types/ParsedTemplate.js.map +1 -1
  176. package/out/types/PersistedOperation.js +385 -13
  177. package/out/types/PersistedOperation.js.map +1 -1
  178. package/out/types/PersistedTask.js +385 -13
  179. package/out/types/PersistedTask.js.map +1 -1
  180. package/out/types/PersistentState.js +385 -13
  181. package/out/types/PersistentState.js.map +1 -1
  182. package/out/types/PluginActionName.js +385 -13
  183. package/out/types/PluginActionName.js.map +1 -1
  184. package/out/types/PluginDependenciesResponse.js +385 -13
  185. package/out/types/PluginDependenciesResponse.js.map +1 -1
  186. package/out/types/PluginInfo.js +385 -13
  187. package/out/types/PluginInfo.js.map +1 -1
  188. package/out/types/PluginJsonResponse.js +385 -13
  189. package/out/types/PluginJsonResponse.js.map +1 -1
  190. package/out/types/PluginProxyResponse.js +385 -13
  191. package/out/types/PluginProxyResponse.js.map +1 -1
  192. package/out/types/PluginResponseEncoding.js +385 -13
  193. package/out/types/PluginResponseEncoding.js.map +1 -1
  194. package/out/types/PluginSchema.js +385 -13
  195. package/out/types/PluginSchema.js.map +1 -1
  196. package/out/types/PositionalArg.js +385 -13
  197. package/out/types/PositionalArg.js.map +1 -1
  198. package/out/types/Provisioner.js +385 -13
  199. package/out/types/Provisioner.js.map +1 -1
  200. package/out/types/ProvisionerID.js +385 -13
  201. package/out/types/ProvisionerID.js.map +1 -1
  202. package/out/types/Provisions.js +385 -13
  203. package/out/types/Provisions.js.map +1 -1
  204. package/out/types/ProxyTaskArgs.js +385 -13
  205. package/out/types/ProxyTaskArgs.js.map +1 -1
  206. package/out/types/ProxyTemplateArgs.js +385 -13
  207. package/out/types/ProxyTemplateArgs.js.map +1 -1
  208. package/out/types/PublicKeyHash.js +385 -13
  209. package/out/types/PublicKeyHash.js.map +1 -1
  210. package/out/types/RequestArgs.js +385 -13
  211. package/out/types/RequestArgs.js.map +1 -1
  212. package/out/types/RuntimeDependency.js +385 -13
  213. package/out/types/RuntimeDependency.js.map +1 -1
  214. package/out/types/RuntimeDependencyReport.js +385 -13
  215. package/out/types/RuntimeDependencyReport.js.map +1 -1
  216. package/out/types/SHA256.js +385 -13
  217. package/out/types/SHA256.js.map +1 -1
  218. package/out/types/SandboxAccount.d.js +19 -0
  219. package/out/types/SandboxAccount.d.js.map +1 -0
  220. package/out/types/SandboxAccount.d.ts +43 -0
  221. package/out/types/SandboxAccount.d.ts.map +1 -0
  222. package/out/types/SandboxAccount.js +442 -0
  223. package/out/types/SandboxAccount.js.map +1 -0
  224. package/out/types/SandboxAccountConfig.js +385 -13
  225. package/out/types/SandboxAccountConfig.js.map +1 -1
  226. package/out/types/SandboxAccounts.d.ts +4 -4
  227. package/out/types/SandboxAccounts.js +385 -13
  228. package/out/types/SandboxAccounts.js.map +1 -1
  229. package/out/types/SandboxConfig.js +385 -13
  230. package/out/types/SandboxConfig.js.map +1 -1
  231. package/out/types/SanitizedAbsPath.js +385 -13
  232. package/out/types/SanitizedAbsPath.js.map +1 -1
  233. package/out/types/SanitizedArgs.js +385 -13
  234. package/out/types/SanitizedArgs.js.map +1 -1
  235. package/out/types/SanitizedPath.js +385 -13
  236. package/out/types/SanitizedPath.js.map +1 -1
  237. package/out/types/ScaffoldConfig.js +385 -13
  238. package/out/types/ScaffoldConfig.js.map +1 -1
  239. package/out/types/Settings.js +385 -13
  240. package/out/types/Settings.js.map +1 -1
  241. package/out/types/SingleChar.js +385 -13
  242. package/out/types/SingleChar.js.map +1 -1
  243. package/out/types/Task.js +385 -13
  244. package/out/types/Task.js.map +1 -1
  245. package/out/types/Template.js +385 -13
  246. package/out/types/Template.js.map +1 -1
  247. package/out/types/Timestamp.js +385 -13
  248. package/out/types/Timestamp.js.map +1 -1
  249. package/out/types/Tz.js +385 -13
  250. package/out/types/Tz.js.map +1 -1
  251. package/out/types/TzKtConfig.js +385 -13
  252. package/out/types/TzKtConfig.js.map +1 -1
  253. package/out/types/Url.js +385 -13
  254. package/out/types/Url.js.map +1 -1
  255. package/out/types/Verb.js +385 -13
  256. package/out/types/Verb.js.map +1 -1
  257. package/out/types/VersionNumber.js +385 -13
  258. package/out/types/VersionNumber.js.map +1 -1
  259. package/out/types-strict.d.js.map +1 -1
  260. package/out/types-strict.d.ts +6 -3
  261. package/out/types-strict.d.ts.map +1 -1
  262. package/out/types-strict.js.map +1 -1
  263. package/out/types-zod.d.js.map +1 -1
  264. package/out/types-zod.d.ts +10 -3
  265. package/out/types-zod.d.ts.map +1 -1
  266. package/out/types-zod.js +5 -5
  267. package/out/types-zod.js.map +1 -1
  268. package/package.json +2 -1
  269. package/taqueria-protocol-types.js +2601 -76
  270. package/taqueria-protocol-types.js.map +1 -1
  271. package/tsup.config.d.ts.map +1 -1
  272. package/types-config-files.js.map +1 -1
  273. package/types.d.ts +3 -2
  274. package/types.d.ts.map +1 -1
  275. package/types.js.map +1 -1
  276. package/tzkt-config.js +79 -14
  277. package/tzkt-config.js.map +1 -1
package/EphemeralState.js CHANGED
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
- var __create = Object.create;
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
6
  var __export = (target, all) => {
9
7
  for (var name in all)
@@ -17,16 +15,12 @@ var __copyProps = (to, from, except, desc) => {
17
15
  }
18
16
  return to;
19
17
  };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
- mod
23
- ));
24
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
19
 
26
20
  // EphemeralState.ts
27
21
  var EphemeralState_exports = {};
28
22
  __export(EphemeralState_exports, {
29
- create: () => create,
23
+ create: () => create2,
30
24
  factory: () => factory,
31
25
  generatedSchemas: () => generatedSchemas,
32
26
  getTasks: () => getTasks,
@@ -39,45 +33,124 @@ __export(EphemeralState_exports, {
39
33
  });
40
34
  module.exports = __toCommonJS(EphemeralState_exports);
41
35
  var import_protocol = require("@taqueria/protocol");
42
- var import_Base = __toESM(require("@taqueria/protocol/Base"));
43
- var import_TaqError = require("@taqueria/protocol/TaqError");
36
+
37
+ // TaqError.ts
44
38
  var import_fluture = require("fluture");
39
+ var E_TaqError = class extends Error {
40
+ constructor(taqErr) {
41
+ super(taqErr.msg);
42
+ this.context = taqErr.context;
43
+ this.kind = taqErr.kind;
44
+ this.name = this.kind;
45
+ this.previous = taqErr.previous;
46
+ }
47
+ };
48
+ var toFutureParseErr = (previous, msg, context) => (0, import_fluture.reject)(toParseErr(previous, msg, context)).pipe((0, import_fluture.map)((val) => val));
49
+ var toParseErr = (previous, msg, context) => create({
50
+ kind: "E_PARSE",
51
+ msg,
52
+ context,
53
+ previous
54
+ });
55
+ var toParseUnknownErr = (previous, msg, context) => create({
56
+ kind: "E_PARSE_UNKNOWN",
57
+ msg,
58
+ context,
59
+ previous
60
+ });
61
+ var toFutureParseUnknownErr = (previous, msg, context) => (0, import_fluture.reject)(toParseUnknownErr(previous, msg, context)).pipe((0, import_fluture.map)((val) => val));
62
+ var create = (err) => err;
63
+
64
+ // Base.ts
65
+ var import_fluture2 = require("fluture");
45
66
  var import_zod = require("zod");
46
- var eager = (f) => (0, import_fluture.promise)(
47
- (0, import_fluture.mapRej)((err) => new import_TaqError.E_TaqError(err))(f)
67
+ var createSchema = (params) => {
68
+ var _a, _b;
69
+ const { rawSchema: rawSchema2, isStringLike } = params;
70
+ const internalSchema = (_a = params.internalSchema) != null ? _a : params.rawSchema;
71
+ const noop = (val) => val;
72
+ const transformer = (_b = params.transformer) != null ? _b : noop;
73
+ const schema = isStringLike ? internalSchema.transform(
74
+ (val) => transformer(val)
75
+ ) : internalSchema.transform(
76
+ (val) => transformer(val)
77
+ );
78
+ return {
79
+ rawSchema: rawSchema2,
80
+ internalSchema,
81
+ schema
82
+ };
83
+ };
84
+ var createType = (params) => {
85
+ const schemas2 = createSchema(params);
86
+ const { parseErrMsg, unknownErrMsg } = params;
87
+ const internalOf = (input) => {
88
+ try {
89
+ return (0, import_fluture2.resolve)(schemas2.schema.parse(input));
90
+ } catch (previous) {
91
+ const parseMsg = typeof parseErrMsg === "string" ? parseErrMsg : parseErrMsg(input, previous);
92
+ const unknownMsg = typeof unknownErrMsg === "string" ? unknownErrMsg : unknownErrMsg(input);
93
+ if (previous instanceof import_zod.ZodError) {
94
+ return toFutureParseErr(previous, parseMsg, input);
95
+ }
96
+ return toFutureParseUnknownErr(previous, unknownMsg, input);
97
+ }
98
+ };
99
+ const of2 = internalOf;
100
+ const make2 = (input) => internalOf(input);
101
+ const create3 = (input) => schemas2.schema.parse(input);
102
+ const from = (input) => schemas2.schema.parse(input);
103
+ const factory2 = {
104
+ make: make2,
105
+ of: of2,
106
+ create: create3,
107
+ from
108
+ };
109
+ return {
110
+ schemas: schemas2,
111
+ factory: factory2
112
+ };
113
+ };
114
+ var Base_default = createType;
115
+
116
+ // EphemeralState.ts
117
+ var import_fluture3 = require("fluture");
118
+ var import_zod2 = require("zod");
119
+ var eager = (f) => (0, import_fluture3.promise)(
120
+ (0, import_fluture3.mapRej)((err) => new E_TaqError(err))(f)
48
121
  );
49
- var taskToPluginMap = import_zod.z.record(
50
- import_zod.z.union([
122
+ var taskToPluginMap = import_zod2.z.record(
123
+ import_zod2.z.union([
51
124
  import_protocol.InstalledPlugin.schemas.schema,
52
125
  import_protocol.Task.schemas.schema
53
126
  ], { description: "Task/Plugin Mapping" })
54
127
  );
55
- var operationToPluginMap = import_zod.z.record(
56
- import_zod.z.union([
128
+ var operationToPluginMap = import_zod2.z.record(
129
+ import_zod2.z.union([
57
130
  import_protocol.InstalledPlugin.schemas.schema,
58
131
  import_protocol.ParsedOperation.schemas.schema
59
132
  ], { description: "Operation/Plugin Mapping" })
60
133
  );
61
- var templateToPluginMap = import_zod.z.record(
62
- import_zod.z.union([
134
+ var templateToPluginMap = import_zod2.z.record(
135
+ import_zod2.z.union([
63
136
  import_protocol.InstalledPlugin.schemas.schema,
64
137
  import_protocol.ParsedTemplate.schemas.schema
65
138
  ])
66
139
  );
67
- var rawSchema = import_zod.z.object({
68
- build: import_zod.z.string({ description: "cache.build" }),
69
- configHash: import_zod.z.string({ description: "cache.configHash" }),
140
+ var rawSchema = import_zod2.z.object({
141
+ build: import_zod2.z.string({ description: "cache.build" }),
142
+ configHash: import_zod2.z.string({ description: "cache.configHash" }),
70
143
  tasks: taskToPluginMap,
71
144
  operations: operationToPluginMap,
72
145
  templates: templateToPluginMap,
73
- plugins: import_zod.z.array(import_protocol.PluginInfo.schemas.schema, { description: "cache.plugins" })
146
+ plugins: import_zod2.z.array(import_protocol.PluginInfo.schemas.schema, { description: "cache.plugins" })
74
147
  }).describe("Ephemeral State");
75
- var { schemas: generatedSchemas, factory } = (0, import_Base.default)({
148
+ var { schemas: generatedSchemas, factory } = Base_default({
76
149
  rawSchema,
77
150
  parseErrMsg: (value) => `${value} is not a valid representation of ephemeral state`,
78
151
  unknownErrMsg: "Something went wrong when parsing the ephemeral state"
79
152
  });
80
- var { create, of, make } = factory;
153
+ var { create: create2, of, make } = factory;
81
154
  var schemas = {
82
155
  ...generatedSchemas,
83
156
  schema: generatedSchemas.schema.transform((val) => val)
@@ -142,7 +215,7 @@ var getInstalledPlugin = (config, name) => {
142
215
  };
143
216
  var mapTasksToPlugins = (config, pluginInfo, i18n) => {
144
217
  const taskCounts = getTaskCounts(pluginInfo);
145
- return (0, import_fluture.attemptP)(
218
+ return (0, import_fluture3.attemptP)(
146
219
  async () => await pluginInfo.reduce(
147
220
  async (retval, pluginInfo2) => !pluginInfo2.tasks ? Promise.resolve({}) : await pluginInfo2.tasks.reduce(
148
221
  async (retval2, { task, hidden }) => {
@@ -174,11 +247,11 @@ var mapTasksToPlugins = (config, pluginInfo, i18n) => {
174
247
  ),
175
248
  Promise.resolve({})
176
249
  )
177
- ).pipe((0, import_fluture.mapRej)((rej) => rej));
250
+ ).pipe((0, import_fluture3.mapRej)((rej) => rej));
178
251
  };
179
252
  var mapOperationsToPlugins = (config, pluginInfo, i18n) => {
180
253
  const opCounts = getOperationCounts(pluginInfo);
181
- return (0, import_fluture.attemptP)(
254
+ return (0, import_fluture3.attemptP)(
182
255
  async () => await pluginInfo.reduce(
183
256
  async (retval, pluginInfo2) => !pluginInfo2.operations ? Promise.resolve({}) : await pluginInfo2.operations.reduce(
184
257
  async (retval2, { operation }) => {
@@ -208,11 +281,11 @@ var mapOperationsToPlugins = (config, pluginInfo, i18n) => {
208
281
  ),
209
282
  Promise.resolve({})
210
283
  )
211
- ).pipe((0, import_fluture.mapRej)((rej) => rej));
284
+ ).pipe((0, import_fluture3.mapRej)((rej) => rej));
212
285
  };
213
286
  var mapTemplatesToPlugins = (config, pluginInfo, i18n) => {
214
287
  const tmplCounts = getTemplateCounts(pluginInfo);
215
- return (0, import_fluture.attemptP)(
288
+ return (0, import_fluture3.attemptP)(
216
289
  async () => await pluginInfo.reduce(
217
290
  async (retval, pluginInfo2) => !pluginInfo2.templates ? Promise.resolve({}) : await pluginInfo2.templates.reduce(
218
291
  async (retval2, { template, hidden }) => {
@@ -245,7 +318,7 @@ var mapTemplatesToPlugins = (config, pluginInfo, i18n) => {
245
318
  ),
246
319
  Promise.resolve({})
247
320
  )
248
- ).pipe((0, import_fluture.mapRej)((rej) => rej));
321
+ ).pipe((0, import_fluture3.mapRej)((rej) => rej));
249
322
  };
250
323
  var getTasks = (pluginInfo) => pluginInfo.reduce(
251
324
  (retval, pluginInfo2) => {
@@ -1 +1 @@
1
- {"version":3,"sources":["EphemeralState.ts"],"sourcesContent":["import {\n\tCommand,\n\tConfig,\n\tInstalledPlugin,\n\tNonEmptyString,\n\tOption,\n\tParsedOperation,\n\tParsedTemplate,\n\tPluginInfo,\n\tPluginResponseEncoding,\n\tTask,\n\tVerb,\n} from '@taqueria/protocol';\nimport createType from '@taqueria/protocol/Base';\nimport type { i18n } from '@taqueria/protocol/i18n';\nimport { E_TaqError, TaqError } from '@taqueria/protocol/TaqError';\nimport { attemptP, FutureInstance as Future, mapRej, promise } from 'fluture';\nimport { z } from 'zod';\n\nconst eager = <T>(f: Future<TaqError, T>) =>\n\tpromise(\n\t\tmapRej((err: TaqError) => new E_TaqError(err))(f),\n\t);\n\nconst taskToPluginMap = z.record(\n\tz.union([\n\t\tInstalledPlugin.schemas.schema,\n\t\tTask.schemas.schema,\n\t], { description: 'Task/Plugin Mapping' }),\n);\nconst operationToPluginMap = z.record(\n\tz.union([\n\t\tInstalledPlugin.schemas.schema,\n\t\tParsedOperation.schemas.schema,\n\t], { description: 'Operation/Plugin Mapping' }),\n);\n\nconst templateToPluginMap = z.record(\n\tz.union([\n\t\tInstalledPlugin.schemas.schema,\n\t\tParsedTemplate.schemas.schema,\n\t]),\n);\n\nconst rawSchema = z.object({\n\tbuild: z.string({ description: 'cache.build' }),\n\tconfigHash: z.string({ description: 'cache.configHash' }),\n\ttasks: taskToPluginMap,\n\toperations: operationToPluginMap,\n\ttemplates: templateToPluginMap,\n\tplugins: z.array(PluginInfo.schemas.schema, { description: 'cache.plugins' }),\n}).describe('Ephemeral State');\n\ntype RawInput = z.infer<typeof rawSchema>;\n\nexport const { schemas: generatedSchemas, factory } = createType<RawInput, RawInput>({\n\trawSchema,\n\tparseErrMsg: (value: unknown) => `${value} is not a valid representation of ephemeral state`,\n\tunknownErrMsg: 'Something went wrong when parsing the ephemeral state',\n});\n\nexport type EphemeralState = z.infer<typeof generatedSchemas.schema>;\nexport type t = EphemeralState;\nexport type TaskToPluginMap = z.infer<typeof taskToPluginMap>;\nexport type OpToPluginMap = z.infer<typeof operationToPluginMap>;\nexport type TemplateToPluginMap = z.infer<typeof templateToPluginMap>;\n\nexport const { create, of, make } = factory;\n\nexport const schemas = {\n\t...generatedSchemas,\n\tschema: generatedSchemas.schema.transform(val => val as EphemeralState),\n};\n\n/**\n * Private functions\n */\ntype Counts = Record<Verb.t, PluginInfo.t[]>;\nconst getTaskCounts = (pluginInfo: PluginInfo.t[]): Counts => {\n\treturn pluginInfo.reduce(\n\t\t(retval, pluginInfo) =>\n\t\t\tpluginInfo.tasks === undefined\n\t\t\t\t? {}\n\t\t\t\t: pluginInfo.tasks.reduce(\n\t\t\t\t\t(retval: Counts, task: Task.t) => {\n\t\t\t\t\t\tconst taskName = task.task;\n\t\t\t\t\t\tconst providers: PluginInfo.t[] = retval[taskName]\n\t\t\t\t\t\t\t? [...retval[taskName], pluginInfo]\n\t\t\t\t\t\t\t: [pluginInfo];\n\t\t\t\t\t\tconst mapping: Counts = {};\n\t\t\t\t\t\tmapping[taskName] = providers.filter(provider => provider !== undefined);\n\t\t\t\t\t\treturn { ...retval, ...mapping };\n\t\t\t\t\t},\n\t\t\t\t\tretval,\n\t\t\t\t),\n\t\t{} as Counts,\n\t);\n};\n\nconst getTemplateCounts = (pluginInfo: PluginInfo.t[]): Counts => {\n\treturn pluginInfo.reduce(\n\t\t(retval, pluginInfo) =>\n\t\t\t!pluginInfo.templates\n\t\t\t\t? retval\n\t\t\t\t: pluginInfo.templates.reduce(\n\t\t\t\t\t(retval: Counts, template: ParsedTemplate.t) => {\n\t\t\t\t\t\tconst templateName = template.template;\n\t\t\t\t\t\tconst providers = retval[templateName]\n\t\t\t\t\t\t\t? [...retval[templateName], pluginInfo]\n\t\t\t\t\t\t\t: [pluginInfo];\n\t\t\t\t\t\tconst mapping: Counts = {};\n\t\t\t\t\t\tmapping[templateName] = providers.filter(provider => provider !== undefined);\n\t\t\t\t\t\treturn { ...retval, ...mapping };\n\t\t\t\t\t},\n\t\t\t\t\tretval,\n\t\t\t\t),\n\t\t{} as Counts,\n\t);\n};\n\nconst getOperationCounts = (pluginInfo: PluginInfo.t[]): Counts => {\n\treturn pluginInfo.reduce(\n\t\t(retval, pluginInfo) =>\n\t\t\tpluginInfo.operations === undefined\n\t\t\t\t? retval\n\t\t\t\t: pluginInfo.operations.reduce(\n\t\t\t\t\t(retval: Counts, operation: ParsedOperation.t) => {\n\t\t\t\t\t\tconst operationName = operation.operation;\n\t\t\t\t\t\tconst providers = retval[operationName]\n\t\t\t\t\t\t\t? [...retval[operationName], pluginInfo]\n\t\t\t\t\t\t\t: [pluginInfo];\n\t\t\t\t\t\tconst mapping: Counts = {};\n\t\t\t\t\t\tmapping[operationName] = providers.filter(provider => provider !== undefined);\n\t\t\t\t\t\treturn { ...retval, ...mapping };\n\t\t\t\t\t},\n\t\t\t\t\tretval,\n\t\t\t\t),\n\t\t{} as Counts,\n\t);\n};\n\nconst toChoices = (plugins: PluginInfo.t[]) =>\n\tplugins.reduce(\n\t\t(retval, pluginInfo) => {\n\t\t\treturn [...retval, pluginInfo.name as NonEmptyString.t, pluginInfo.alias as NonEmptyString.t];\n\t\t},\n\t\t[] as NonEmptyString.t[],\n\t);\n\nconst isComposite = (name: Verb.t, counts: Counts) => counts[name] && counts[name].length > 1;\n\nconst getInstalledPlugin = (config: Config.t, name: string) =>\n\tconfig.plugins?.find(\n\t\t(plugin: InstalledPlugin.t) => [`taqueria-plugin-${name}`, name].includes(plugin.name),\n\t);\n\nexport const mapTasksToPlugins = (config: Config.t, pluginInfo: PluginInfo.t[], i18n: i18n) => {\n\tconst taskCounts = getTaskCounts(pluginInfo);\n\treturn attemptP<TaqError, TaskToPluginMap>(async () =>\n\t\tawait pluginInfo.reduce(\n\t\t\tasync (retval, pluginInfo) =>\n\t\t\t\t!pluginInfo.tasks\n\t\t\t\t\t? Promise.resolve({} as TaskToPluginMap)\n\t\t\t\t\t: await pluginInfo.tasks.reduce(\n\t\t\t\t\t\tasync (retval, { task, hidden }) => {\n\t\t\t\t\t\t\tif (isComposite(task, taskCounts)) {\n\t\t\t\t\t\t\t\tconst command = await eager(Command.make(task));\n\t\t\t\t\t\t\t\tconst compositeTask = await eager(Task.make({\n\t\t\t\t\t\t\t\t\ttask,\n\t\t\t\t\t\t\t\t\tcommand,\n\t\t\t\t\t\t\t\t\tdescription: await eager(NonEmptyString.make(i18n.__('providedByMany'))),\n\t\t\t\t\t\t\t\t\thidden,\n\t\t\t\t\t\t\t\t\toptions: [\n\t\t\t\t\t\t\t\t\t\tawait eager(Option.make({\n\t\t\t\t\t\t\t\t\t\t\tflag: await eager(Verb.make('plugin')),\n\t\t\t\t\t\t\t\t\t\t\tdescription: await eager(\n\t\t\t\t\t\t\t\t\t\t\t\tNonEmptyString.make('Specify which plugin should be used to execute this task'),\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\tchoices: toChoices(taskCounts[task]),\n\t\t\t\t\t\t\t\t\t\t\trequired: true,\n\t\t\t\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\thandler: 'proxy',\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t\treturn { ...await retval, [task]: compositeTask };\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Task is provided by just a single plugin\n\t\t\t\t\t\t\tconst installedPlugin = getInstalledPlugin(config, pluginInfo.name);\n\t\t\t\t\t\t\treturn installedPlugin\n\t\t\t\t\t\t\t\t? { ...await retval, [task]: installedPlugin }\n\t\t\t\t\t\t\t\t: retval;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tretval,\n\t\t\t\t\t),\n\t\t\tPromise.resolve({} as TaskToPluginMap),\n\t\t)\n\t).pipe(mapRej(rej => rej as TaqError));\n};\n\nexport const mapOperationsToPlugins = (config: Config.t, pluginInfo: PluginInfo.t[], i18n: i18n) => {\n\tconst opCounts = getOperationCounts(pluginInfo);\n\treturn attemptP(async () =>\n\t\tawait pluginInfo.reduce(\n\t\t\tasync (retval, pluginInfo) =>\n\t\t\t\t!pluginInfo.operations\n\t\t\t\t\t? Promise.resolve({} as OpToPluginMap)\n\t\t\t\t\t: await pluginInfo.operations.reduce(\n\t\t\t\t\t\tasync (retval, { operation }) => {\n\t\t\t\t\t\t\tif (isComposite(operation, opCounts)) {\n\t\t\t\t\t\t\t\tconst command = await eager(Command.make(operation));\n\t\t\t\t\t\t\t\tconst compositeOp = await eager(ParsedOperation.make({\n\t\t\t\t\t\t\t\t\toperation,\n\t\t\t\t\t\t\t\t\tcommand,\n\t\t\t\t\t\t\t\t\tdescription: await eager(NonEmptyString.make(i18n.__('providedByMany'))),\n\t\t\t\t\t\t\t\t\toptions: [\n\t\t\t\t\t\t\t\t\t\tawait eager(Option.make({\n\t\t\t\t\t\t\t\t\t\t\tflag: await eager(Verb.make('plugin')),\n\t\t\t\t\t\t\t\t\t\t\tdescription: await eager(\n\t\t\t\t\t\t\t\t\t\t\t\tNonEmptyString.make('Specify which plugin should be used to execute this operation'),\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\tchoices: toChoices(opCounts[operation]),\n\t\t\t\t\t\t\t\t\t\t\trequired: true,\n\t\t\t\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t\treturn { ...await retval, [operation]: compositeOp };\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Operation is provided by just a single plugin\n\t\t\t\t\t\t\tconst installedPlugin = getInstalledPlugin(config, pluginInfo.name);\n\t\t\t\t\t\t\treturn installedPlugin\n\t\t\t\t\t\t\t\t? { ...await retval, [operation]: installedPlugin }\n\t\t\t\t\t\t\t\t: retval;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tretval,\n\t\t\t\t\t),\n\t\t\tPromise.resolve({} as OpToPluginMap),\n\t\t)\n\t).pipe(mapRej(rej => rej as TaqError));\n};\n\nexport const mapTemplatesToPlugins = (config: Config.t, pluginInfo: PluginInfo.t[], i18n: i18n) => {\n\tconst tmplCounts = getTemplateCounts(pluginInfo);\n\treturn attemptP<TaqError, TemplateToPluginMap>(async () =>\n\t\tawait pluginInfo.reduce(\n\t\t\tasync (retval, pluginInfo) =>\n\t\t\t\t!pluginInfo.templates\n\t\t\t\t\t? Promise.resolve({} as TemplateToPluginMap)\n\t\t\t\t\t: await pluginInfo.templates!.reduce(\n\t\t\t\t\t\tasync (retval, { template, hidden }) => {\n\t\t\t\t\t\t\tif (isComposite(template, tmplCounts)) {\n\t\t\t\t\t\t\t\tconst command = await eager(Command.make(template));\n\t\t\t\t\t\t\t\tconst description = await eager(NonEmptyString.of(i18n.__('providedByMany')));\n\t\t\t\t\t\t\t\tconst compositeTmpl = await eager(ParsedTemplate.make({\n\t\t\t\t\t\t\t\t\ttemplate,\n\t\t\t\t\t\t\t\t\tcommand,\n\t\t\t\t\t\t\t\t\tdescription,\n\t\t\t\t\t\t\t\t\toptions: [\n\t\t\t\t\t\t\t\t\t\tawait eager(Option.make({\n\t\t\t\t\t\t\t\t\t\t\tflag: await eager(Verb.make('plugin')),\n\t\t\t\t\t\t\t\t\t\t\tdescription: await eager(\n\t\t\t\t\t\t\t\t\t\t\t\tNonEmptyString.make('Specify which plugin should be used to execute this task'),\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\tchoices: toChoices(tmplCounts[template]),\n\t\t\t\t\t\t\t\t\t\t\trequired: true,\n\t\t\t\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\thandler: 'proxy',\n\t\t\t\t\t\t\t\t\tencoding: PluginResponseEncoding.create('none'),\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t\treturn { ...await retval, [template]: compositeTmpl };\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Template is provided by just a single plugin\n\t\t\t\t\t\t\tconst installedPlugin = getInstalledPlugin(config, pluginInfo.name);\n\t\t\t\t\t\t\treturn installedPlugin\n\t\t\t\t\t\t\t\t? { ...await retval, [template]: installedPlugin }\n\t\t\t\t\t\t\t\t: retval;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tretval,\n\t\t\t\t\t),\n\t\t\tPromise.resolve({} as TemplateToPluginMap),\n\t\t)\n\t).pipe(mapRej(rej => rej as TaqError));\n};\n\nexport const getTasks = (pluginInfo: PluginInfo.t[]) =>\n\tpluginInfo.reduce(\n\t\t(retval: Task.t[], pluginInfo) => [...retval, ...(pluginInfo.tasks ?? [])],\n\t\t[],\n\t);\n"],"mappings":"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","names":["createType","pluginInfo","retval"]}
1
+ {"version":3,"sources":["EphemeralState.ts","TaqError.ts","Base.ts"],"sourcesContent":["import {\n\tCommand,\n\tConfig,\n\tInstalledPlugin,\n\tNonEmptyString,\n\tOption,\n\tParsedOperation,\n\tParsedTemplate,\n\tPluginInfo,\n\tPluginResponseEncoding,\n\tTask,\n\tVerb,\n} from '@taqueria/protocol';\nimport createType from './Base';\nimport type { i18n } from './i18n';\nimport { E_TaqError, TaqError } from './TaqError';\nimport { attemptP, FutureInstance as Future, mapRej, promise } from 'fluture';\nimport { z } from 'zod';\n\nconst eager = <T>(f: Future<TaqError, T>) =>\n\tpromise(\n\t\tmapRej((err: TaqError) => new E_TaqError(err))(f),\n\t);\n\nconst taskToPluginMap = z.record(\n\tz.union([\n\t\tInstalledPlugin.schemas.schema,\n\t\tTask.schemas.schema,\n\t], { description: 'Task/Plugin Mapping' }),\n);\nconst operationToPluginMap = z.record(\n\tz.union([\n\t\tInstalledPlugin.schemas.schema,\n\t\tParsedOperation.schemas.schema,\n\t], { description: 'Operation/Plugin Mapping' }),\n);\n\nconst templateToPluginMap = z.record(\n\tz.union([\n\t\tInstalledPlugin.schemas.schema,\n\t\tParsedTemplate.schemas.schema,\n\t]),\n);\n\nconst rawSchema = z.object({\n\tbuild: z.string({ description: 'cache.build' }),\n\tconfigHash: z.string({ description: 'cache.configHash' }),\n\ttasks: taskToPluginMap,\n\toperations: operationToPluginMap,\n\ttemplates: templateToPluginMap,\n\tplugins: z.array(PluginInfo.schemas.schema, { description: 'cache.plugins' }),\n}).describe('Ephemeral State');\n\ntype RawInput = z.infer<typeof rawSchema>;\n\nexport const { schemas: generatedSchemas, factory } = createType<RawInput, RawInput>({\n\trawSchema,\n\tparseErrMsg: (value: unknown) => `${value} is not a valid representation of ephemeral state`,\n\tunknownErrMsg: 'Something went wrong when parsing the ephemeral state',\n});\n\nexport type EphemeralState = z.infer<typeof generatedSchemas.schema>;\nexport type t = EphemeralState;\nexport type TaskToPluginMap = z.infer<typeof taskToPluginMap>;\nexport type OpToPluginMap = z.infer<typeof operationToPluginMap>;\nexport type TemplateToPluginMap = z.infer<typeof templateToPluginMap>;\n\nexport const { create, of, make } = factory;\n\nexport const schemas = {\n\t...generatedSchemas,\n\tschema: generatedSchemas.schema.transform(val => val as EphemeralState),\n};\n\n/**\n * Private functions\n */\ntype Counts = Record<Verb.t, PluginInfo.t[]>;\nconst getTaskCounts = (pluginInfo: PluginInfo.t[]): Counts => {\n\treturn pluginInfo.reduce(\n\t\t(retval, pluginInfo) =>\n\t\t\tpluginInfo.tasks === undefined\n\t\t\t\t? {}\n\t\t\t\t: pluginInfo.tasks.reduce(\n\t\t\t\t\t(retval: Counts, task: Task.t) => {\n\t\t\t\t\t\tconst taskName = task.task;\n\t\t\t\t\t\tconst providers: PluginInfo.t[] = retval[taskName]\n\t\t\t\t\t\t\t? [...retval[taskName], pluginInfo]\n\t\t\t\t\t\t\t: [pluginInfo];\n\t\t\t\t\t\tconst mapping: Counts = {};\n\t\t\t\t\t\tmapping[taskName] = providers.filter(provider => provider !== undefined);\n\t\t\t\t\t\treturn { ...retval, ...mapping };\n\t\t\t\t\t},\n\t\t\t\t\tretval,\n\t\t\t\t),\n\t\t{} as Counts,\n\t);\n};\n\nconst getTemplateCounts = (pluginInfo: PluginInfo.t[]): Counts => {\n\treturn pluginInfo.reduce(\n\t\t(retval, pluginInfo) =>\n\t\t\t!pluginInfo.templates\n\t\t\t\t? retval\n\t\t\t\t: pluginInfo.templates.reduce(\n\t\t\t\t\t(retval: Counts, template: ParsedTemplate.t) => {\n\t\t\t\t\t\tconst templateName = template.template;\n\t\t\t\t\t\tconst providers = retval[templateName]\n\t\t\t\t\t\t\t? [...retval[templateName], pluginInfo]\n\t\t\t\t\t\t\t: [pluginInfo];\n\t\t\t\t\t\tconst mapping: Counts = {};\n\t\t\t\t\t\tmapping[templateName] = providers.filter(provider => provider !== undefined);\n\t\t\t\t\t\treturn { ...retval, ...mapping };\n\t\t\t\t\t},\n\t\t\t\t\tretval,\n\t\t\t\t),\n\t\t{} as Counts,\n\t);\n};\n\nconst getOperationCounts = (pluginInfo: PluginInfo.t[]): Counts => {\n\treturn pluginInfo.reduce(\n\t\t(retval, pluginInfo) =>\n\t\t\tpluginInfo.operations === undefined\n\t\t\t\t? retval\n\t\t\t\t: pluginInfo.operations.reduce(\n\t\t\t\t\t(retval: Counts, operation: ParsedOperation.t) => {\n\t\t\t\t\t\tconst operationName = operation.operation;\n\t\t\t\t\t\tconst providers = retval[operationName]\n\t\t\t\t\t\t\t? [...retval[operationName], pluginInfo]\n\t\t\t\t\t\t\t: [pluginInfo];\n\t\t\t\t\t\tconst mapping: Counts = {};\n\t\t\t\t\t\tmapping[operationName] = providers.filter(provider => provider !== undefined);\n\t\t\t\t\t\treturn { ...retval, ...mapping };\n\t\t\t\t\t},\n\t\t\t\t\tretval,\n\t\t\t\t),\n\t\t{} as Counts,\n\t);\n};\n\nconst toChoices = (plugins: PluginInfo.t[]) =>\n\tplugins.reduce(\n\t\t(retval, pluginInfo) => {\n\t\t\treturn [...retval, pluginInfo.name as NonEmptyString.t, pluginInfo.alias as NonEmptyString.t];\n\t\t},\n\t\t[] as NonEmptyString.t[],\n\t);\n\nconst isComposite = (name: Verb.t, counts: Counts) => counts[name] && counts[name].length > 1;\n\nconst getInstalledPlugin = (config: Config.t, name: string) =>\n\tconfig.plugins?.find(\n\t\t(plugin: InstalledPlugin.t) => [`taqueria-plugin-${name}`, name].includes(plugin.name),\n\t);\n\nexport const mapTasksToPlugins = (config: Config.t, pluginInfo: PluginInfo.t[], i18n: i18n) => {\n\tconst taskCounts = getTaskCounts(pluginInfo);\n\treturn attemptP<TaqError, TaskToPluginMap>(async () =>\n\t\tawait pluginInfo.reduce(\n\t\t\tasync (retval, pluginInfo) =>\n\t\t\t\t!pluginInfo.tasks\n\t\t\t\t\t? Promise.resolve({} as TaskToPluginMap)\n\t\t\t\t\t: await pluginInfo.tasks.reduce(\n\t\t\t\t\t\tasync (retval, { task, hidden }) => {\n\t\t\t\t\t\t\tif (isComposite(task, taskCounts)) {\n\t\t\t\t\t\t\t\tconst command = await eager(Command.make(task));\n\t\t\t\t\t\t\t\tconst compositeTask = await eager(Task.make({\n\t\t\t\t\t\t\t\t\ttask,\n\t\t\t\t\t\t\t\t\tcommand,\n\t\t\t\t\t\t\t\t\tdescription: await eager(NonEmptyString.make(i18n.__('providedByMany'))),\n\t\t\t\t\t\t\t\t\thidden,\n\t\t\t\t\t\t\t\t\toptions: [\n\t\t\t\t\t\t\t\t\t\tawait eager(Option.make({\n\t\t\t\t\t\t\t\t\t\t\tflag: await eager(Verb.make('plugin')),\n\t\t\t\t\t\t\t\t\t\t\tdescription: await eager(\n\t\t\t\t\t\t\t\t\t\t\t\tNonEmptyString.make('Specify which plugin should be used to execute this task'),\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\tchoices: toChoices(taskCounts[task]),\n\t\t\t\t\t\t\t\t\t\t\trequired: true,\n\t\t\t\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\thandler: 'proxy',\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t\treturn { ...await retval, [task]: compositeTask };\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Task is provided by just a single plugin\n\t\t\t\t\t\t\tconst installedPlugin = getInstalledPlugin(config, pluginInfo.name);\n\t\t\t\t\t\t\treturn installedPlugin\n\t\t\t\t\t\t\t\t? { ...await retval, [task]: installedPlugin }\n\t\t\t\t\t\t\t\t: retval;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tretval,\n\t\t\t\t\t),\n\t\t\tPromise.resolve({} as TaskToPluginMap),\n\t\t)\n\t).pipe(mapRej(rej => rej as TaqError));\n};\n\nexport const mapOperationsToPlugins = (config: Config.t, pluginInfo: PluginInfo.t[], i18n: i18n) => {\n\tconst opCounts = getOperationCounts(pluginInfo);\n\treturn attemptP(async () =>\n\t\tawait pluginInfo.reduce(\n\t\t\tasync (retval, pluginInfo) =>\n\t\t\t\t!pluginInfo.operations\n\t\t\t\t\t? Promise.resolve({} as OpToPluginMap)\n\t\t\t\t\t: await pluginInfo.operations.reduce(\n\t\t\t\t\t\tasync (retval, { operation }) => {\n\t\t\t\t\t\t\tif (isComposite(operation, opCounts)) {\n\t\t\t\t\t\t\t\tconst command = await eager(Command.make(operation));\n\t\t\t\t\t\t\t\tconst compositeOp = await eager(ParsedOperation.make({\n\t\t\t\t\t\t\t\t\toperation,\n\t\t\t\t\t\t\t\t\tcommand,\n\t\t\t\t\t\t\t\t\tdescription: await eager(NonEmptyString.make(i18n.__('providedByMany'))),\n\t\t\t\t\t\t\t\t\toptions: [\n\t\t\t\t\t\t\t\t\t\tawait eager(Option.make({\n\t\t\t\t\t\t\t\t\t\t\tflag: await eager(Verb.make('plugin')),\n\t\t\t\t\t\t\t\t\t\t\tdescription: await eager(\n\t\t\t\t\t\t\t\t\t\t\t\tNonEmptyString.make('Specify which plugin should be used to execute this operation'),\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\tchoices: toChoices(opCounts[operation]),\n\t\t\t\t\t\t\t\t\t\t\trequired: true,\n\t\t\t\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t\treturn { ...await retval, [operation]: compositeOp };\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Operation is provided by just a single plugin\n\t\t\t\t\t\t\tconst installedPlugin = getInstalledPlugin(config, pluginInfo.name);\n\t\t\t\t\t\t\treturn installedPlugin\n\t\t\t\t\t\t\t\t? { ...await retval, [operation]: installedPlugin }\n\t\t\t\t\t\t\t\t: retval;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tretval,\n\t\t\t\t\t),\n\t\t\tPromise.resolve({} as OpToPluginMap),\n\t\t)\n\t).pipe(mapRej(rej => rej as TaqError));\n};\n\nexport const mapTemplatesToPlugins = (config: Config.t, pluginInfo: PluginInfo.t[], i18n: i18n) => {\n\tconst tmplCounts = getTemplateCounts(pluginInfo);\n\treturn attemptP<TaqError, TemplateToPluginMap>(async () =>\n\t\tawait pluginInfo.reduce(\n\t\t\tasync (retval, pluginInfo) =>\n\t\t\t\t!pluginInfo.templates\n\t\t\t\t\t? Promise.resolve({} as TemplateToPluginMap)\n\t\t\t\t\t: await pluginInfo.templates!.reduce(\n\t\t\t\t\t\tasync (retval, { template, hidden }) => {\n\t\t\t\t\t\t\tif (isComposite(template, tmplCounts)) {\n\t\t\t\t\t\t\t\tconst command = await eager(Command.make(template));\n\t\t\t\t\t\t\t\tconst description = await eager(NonEmptyString.of(i18n.__('providedByMany')));\n\t\t\t\t\t\t\t\tconst compositeTmpl = await eager(ParsedTemplate.make({\n\t\t\t\t\t\t\t\t\ttemplate,\n\t\t\t\t\t\t\t\t\tcommand,\n\t\t\t\t\t\t\t\t\tdescription,\n\t\t\t\t\t\t\t\t\toptions: [\n\t\t\t\t\t\t\t\t\t\tawait eager(Option.make({\n\t\t\t\t\t\t\t\t\t\t\tflag: await eager(Verb.make('plugin')),\n\t\t\t\t\t\t\t\t\t\t\tdescription: await eager(\n\t\t\t\t\t\t\t\t\t\t\t\tNonEmptyString.make('Specify which plugin should be used to execute this task'),\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\tchoices: toChoices(tmplCounts[template]),\n\t\t\t\t\t\t\t\t\t\t\trequired: true,\n\t\t\t\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\thandler: 'proxy',\n\t\t\t\t\t\t\t\t\tencoding: PluginResponseEncoding.create('none'),\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t\treturn { ...await retval, [template]: compositeTmpl };\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Template is provided by just a single plugin\n\t\t\t\t\t\t\tconst installedPlugin = getInstalledPlugin(config, pluginInfo.name);\n\t\t\t\t\t\t\treturn installedPlugin\n\t\t\t\t\t\t\t\t? { ...await retval, [template]: installedPlugin }\n\t\t\t\t\t\t\t\t: retval;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tretval,\n\t\t\t\t\t),\n\t\t\tPromise.resolve({} as TemplateToPluginMap),\n\t\t)\n\t).pipe(mapRej(rej => rej as TaqError));\n};\n\nexport const getTasks = (pluginInfo: PluginInfo.t[]) =>\n\tpluginInfo.reduce(\n\t\t(retval: Task.t[], pluginInfo) => [...retval, ...(pluginInfo.tasks ?? [])],\n\t\t[],\n\t);\n","import { map, reject } from 'fluture';\nimport { ZodError } from 'zod';\n\nexport type ErrorType =\n\t| 'E_INVALID_PATH_DOES_NOT_EXIST'\n\t| 'E_INVALID_PATH_EXISTS_AND_NOT_AN_EMPTY_DIR'\n\t| 'E_INVALID_PATH_ALREADY_EXISTS'\n\t| 'E_INVALID_CONFIG'\n\t| 'E_INVALID_JSON'\n\t| 'E_FORK'\n\t| 'E_INVALID_TASK'\n\t| 'E_READFILE'\n\t| 'E_NPM_INIT'\n\t| 'E_INVALID_PLUGIN_RESPONSE'\n\t| 'E_INVALID_ARGS'\n\t| 'E_MKDIR_FAILED'\n\t| 'E_GIT_CLONE_FAILED'\n\t| 'E_PROVISION'\n\t| 'E_PARSE'\n\t| 'E_PARSE_UNKNOWN'\n\t| 'E_INVALID_ARCH'\n\t| 'E_NO_PROVISIONS'\n\t| 'E_INTERNAL_LOGICAL_VALIDATION_FAILURE'\n\t| 'E_EXEC'\n\t| 'E_OPT_IN_WARNING'\n\t| 'E_INVALID_OPTION'\n\t| 'E_TAQ_PROJECT_NOT_FOUND';\n\nexport interface TaqError {\n\treadonly kind: ErrorType;\n\tmsg: string;\n\tprevious?: TaqError | Error | unknown;\n\tcontext?: unknown;\n}\n\nexport type t = TaqError;\n\nexport class E_TaqError extends Error {\n\treadonly context;\n\treadonly kind;\n\treadonly previous;\n\tconstructor(taqErr: TaqError) {\n\t\tsuper(taqErr.msg);\n\t\tthis.context = taqErr.context;\n\t\tthis.kind = taqErr.kind;\n\t\tthis.name = this.kind;\n\t\tthis.previous = taqErr.previous;\n\t}\n}\n\nexport const toFutureParseErr = <T>(previous: ZodError, msg: string, context?: unknown) =>\n\treject(toParseErr(previous, msg, context))\n\t\t.pipe(map((val: unknown) => val as T));\n\nexport const toParseErr = (previous: ZodError, msg: string, context?: unknown) =>\n\tcreate({\n\t\tkind: 'E_PARSE',\n\t\tmsg: msg,\n\t\tcontext,\n\t\tprevious,\n\t});\n\nexport const toParseUnknownErr = (previous: Error | TaqError | E_TaqError | unknown, msg: string, context?: unknown) =>\n\tcreate({\n\t\tkind: 'E_PARSE_UNKNOWN',\n\t\tmsg: msg,\n\t\tcontext,\n\t\tprevious,\n\t});\n\nexport const toFutureParseUnknownErr = <T>(\n\tprevious: Error | TaqError | E_TaqError | unknown,\n\tmsg: string,\n\tcontext?: unknown,\n) =>\n\treject(toParseUnknownErr(previous, msg, context))\n\t\t.pipe(map((val: unknown) => val as T));\n\nexport const create = (err: TaqError) => err;\n","import { toFutureParseErr, toFutureParseUnknownErr } from './TaqError';\nimport { FutureInstance, resolve } from 'fluture';\nimport { z, ZodError, ZodSchema } from 'zod';\n\ntype Future<L, R> = FutureInstance<L, R>;\n\ntype ErrMsg = string | ((value: unknown, previous?: unknown) => string);\n\ninterface CreateSchemaParams {\n\trawSchema: ZodSchema;\n\tinternalSchema?: ZodSchema;\n\ttransformer?: (value: unknown) => unknown;\n\tisStringLike?: boolean;\n}\n\ninterface CreateTypeParams extends CreateSchemaParams {\n\tparseErrMsg: ErrMsg;\n\tunknownErrMsg: ErrMsg;\n}\nexport type Flatten<T> = { [k in keyof T]: T[k] };\n\nexport const createSchema = <I>(params: CreateSchemaParams) => {\n\tconst { rawSchema, isStringLike } = params;\n\tconst internalSchema = params.internalSchema ?? params.rawSchema;\n\tconst noop = (val: unknown) => val;\n\tconst transformer = params.transformer ?? noop;\n\n\tconst schema = isStringLike\n\t\t? internalSchema\n\t\t\t.transform((val: unknown) =>\n\t\t\t\ttransformer(val) as I & {\n\t\t\t\t\treadonly __type: 'generated' & z.infer<typeof internalSchema>;\n\t\t\t\t}\n\t\t\t)\n\t\t: internalSchema\n\t\t\t.transform((val: unknown) =>\n\t\t\t\ttransformer(val) as Flatten<\n\t\t\t\t\tI & {\n\t\t\t\t\t\treadonly __type: 'generated' & z.infer<typeof internalSchema>;\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t);\n\n\ttype GeneratedSchema = typeof schema;\n\n\treturn {\n\t\trawSchema,\n\t\tinternalSchema,\n\t\tschema,\n\t};\n};\n\n// TODO:\n// TypeScript appears to have a bug with default generic values\n// For instance, I'd like to use this:\n// export const createType = <R, I = R>(params: CreateTypeParams) => {\n//\n// However, I == unknown when having I default to R if no I was given.\n// So, we need to require R and I explicitly\nexport const createType = <R, I>(params: CreateTypeParams) => {\n\tconst schemas = createSchema<I>(params);\n\tconst { parseErrMsg, unknownErrMsg } = params;\n\n\ttype T = z.infer<typeof schemas.schema>;\n\n\tconst internalOf = (input: unknown) => {\n\t\ttry {\n\t\t\treturn resolve<T>(schemas.schema.parse(input));\n\t\t} catch (previous) {\n\t\t\tconst parseMsg = typeof parseErrMsg === 'string'\n\t\t\t\t? parseErrMsg\n\t\t\t\t: parseErrMsg(input, previous);\n\n\t\t\tconst unknownMsg = typeof unknownErrMsg === 'string'\n\t\t\t\t? unknownErrMsg\n\t\t\t\t: unknownErrMsg(input);\n\n\t\t\tif (previous instanceof ZodError) {\n\t\t\t\treturn toFutureParseErr<T>(previous, parseMsg, input);\n\t\t\t}\n\t\t\treturn toFutureParseUnknownErr<T>(previous, unknownMsg, input);\n\t\t}\n\t};\n\tconst of = internalOf;\n\n\tconst make = (input: I) => internalOf(input);\n\n\tconst create = (input: R | I) => schemas.schema.parse(input) as T;\n\n\tconst from = (input: unknown) => schemas.schema.parse(input) as T;\n\n\tconst factory = {\n\t\tmake,\n\t\tof,\n\t\tcreate,\n\t\tfrom,\n\t};\n\n\treturn {\n\t\tschemas,\n\t\tfactory,\n\t};\n};\n\nexport default createType;\n"],"mappings":"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","names":["create","import_fluture","rawSchema","schemas","of","make","create","factory","import_fluture","import_zod","create","pluginInfo","retval"]}