@digicatapult/sqnc-process-management 2.2.130 → 2.2.132

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 (57) hide show
  1. package/build/index.js +95 -0
  2. package/build/index.js.map +1 -0
  3. package/build/lib/process/__tests__/unit.test.js +191 -0
  4. package/build/lib/process/__tests__/unit.test.js.map +1 -0
  5. package/build/lib/process/api.js +206 -0
  6. package/build/lib/process/api.js.map +1 -0
  7. package/build/lib/process/constants.js +5 -0
  8. package/build/lib/process/constants.js.map +1 -0
  9. package/build/{src/lib → lib}/process/hex.js +4 -2
  10. package/build/lib/process/hex.js.map +1 -0
  11. package/build/lib/process/index.js +304 -0
  12. package/build/lib/process/index.js.map +1 -0
  13. package/build/{src/lib → lib}/types/error.js +9 -6
  14. package/build/lib/types/error.js.map +1 -0
  15. package/build/lib/types/polkadot.d.js +2 -0
  16. package/build/lib/types/polkadot.d.js.map +1 -0
  17. package/build/lib/types/process.d.js +2 -0
  18. package/build/lib/types/process.d.js.map +1 -0
  19. package/build/lib/types/validation.js +179 -0
  20. package/build/lib/types/validation.js.map +1 -0
  21. package/build/lib/utils/polkadot.js +26 -0
  22. package/build/lib/utils/polkadot.js.map +1 -0
  23. package/build/version.js +5 -0
  24. package/build/version.js.map +1 -0
  25. package/package.json +13 -11
  26. package/build/package.json +0 -65
  27. package/build/src/index.d.ts +0 -2
  28. package/build/src/index.js +0 -127
  29. package/build/src/lib/process/_tests_/unit.test.d.ts +0 -1
  30. package/build/src/lib/process/_tests_/unit.test.js +0 -112
  31. package/build/src/lib/process/api.d.ts +0 -10
  32. package/build/src/lib/process/api.js +0 -193
  33. package/build/src/lib/process/constants.d.ts +0 -3
  34. package/build/src/lib/process/constants.js +0 -3
  35. package/build/src/lib/process/hex.d.ts +0 -2
  36. package/build/src/lib/process/index.d.ts +0 -22
  37. package/build/src/lib/process/index.js +0 -311
  38. package/build/src/lib/types/error.d.ts +0 -14
  39. package/build/src/lib/types/validation.d.ts +0 -3592
  40. package/build/src/lib/types/validation.js +0 -128
  41. package/build/src/lib/utils/polkadot.d.ts +0 -6
  42. package/build/src/lib/utils/polkadot.js +0 -28
  43. package/build/src/version.d.ts +0 -2
  44. package/build/src/version.js +0 -3
  45. package/build/tests/fixtures/processes.d.ts +0 -281
  46. package/build/tests/fixtures/processes.js +0 -1066
  47. package/build/tests/fixtures/programs.d.ts +0 -14
  48. package/build/tests/fixtures/programs.js +0 -211
  49. package/build/tests/helpers/containers.d.ts +0 -7
  50. package/build/tests/helpers/containers.js +0 -40
  51. package/build/tests/helpers/substrateHelper.d.ts +0 -2
  52. package/build/tests/helpers/substrateHelper.js +0 -100
  53. package/build/tests/integration/command-functions.test.d.ts +0 -1
  54. package/build/tests/integration/command-functions.test.js +0 -414
  55. package/build/tests/integration/without-manual-seal.test.d.ts +0 -1
  56. package/build/tests/integration/without-manual-seal.test.js +0 -52
  57. package/build/tsconfig.tsbuildinfo +0 -1
@@ -1,311 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
11
- if (value !== null && value !== void 0) {
12
- if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
13
- var dispose, inner;
14
- if (async) {
15
- if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
16
- dispose = value[Symbol.asyncDispose];
17
- }
18
- if (dispose === void 0) {
19
- if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
20
- dispose = value[Symbol.dispose];
21
- if (async) inner = dispose;
22
- }
23
- if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
24
- if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
25
- env.stack.push({ value: value, dispose: dispose, async: async });
26
- }
27
- else if (async) {
28
- env.stack.push({ async: true });
29
- }
30
- return value;
31
- };
32
- var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
33
- return function (env) {
34
- function fail(e) {
35
- env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
36
- env.hasError = true;
37
- }
38
- var r, s = 0;
39
- function next() {
40
- while (r = env.stack.pop()) {
41
- try {
42
- if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
43
- if (r.dispose) {
44
- var result = r.dispose.call(r.value);
45
- if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
46
- }
47
- else s |= 1;
48
- }
49
- catch (e) {
50
- fail(e);
51
- }
52
- }
53
- if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
54
- if (env.hasError) throw env.error;
55
- }
56
- return next();
57
- };
58
- })(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
59
- var e = new Error(message);
60
- return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
61
- });
62
- var __rest = (this && this.__rest) || function (s, e) {
63
- var t = {};
64
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
65
- t[p] = s[p];
66
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
67
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
68
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
69
- t[p[i]] = s[p[i]];
70
- }
71
- return t;
72
- };
73
- import { createNodeApi } from '../utils/polkadot.js';
74
- import { createProcessTransaction, disableProcessTransaction, getVersion, getProcess } from './api.js';
75
- import { utf8ToHex } from './hex.js';
76
- import { processValidation, simpleProcesssValidation } from '../types/validation.js';
77
- import { CliInputParseError, DisableError, ProgramError, VersionError } from '../types/error.js';
78
- import { ZodError } from 'zod';
79
- export const defaultOptions = {
80
- API_HOST: 'localhost',
81
- API_PORT: 9944,
82
- USER_URI: '//Alice',
83
- };
84
- const textify = (obj) => {
85
- return JSON.stringify(obj, (_key, val) => {
86
- // convert snake case to camel case
87
- if (val && typeof val === 'object') {
88
- return Object.fromEntries(Object.entries(val).map(([k, v]) => {
89
- return [
90
- [...k]
91
- .map((c, i) => (k[i - 1] === '_' ? c.toUpperCase() : c))
92
- .filter((c) => c != '_')
93
- .join(''),
94
- v,
95
- ];
96
- }));
97
- }
98
- if (typeof val === 'number')
99
- return val.toString();
100
- return val;
101
- });
102
- };
103
- export const sanitizeInput = (data) => {
104
- try {
105
- return {
106
- type: 'ok',
107
- result: simpleProcesssValidation.parse(JSON.parse(data)),
108
- };
109
- }
110
- catch (err) {
111
- if (err instanceof Error) {
112
- return {
113
- type: 'error',
114
- error: new CliInputParseError(err),
115
- message: err.message,
116
- };
117
- }
118
- throw err;
119
- }
120
- };
121
- export const loadProcesses = (_a) => __awaiter(void 0, [_a], void 0, function* ({ data, options, dryRun, verbose, }) {
122
- const env_1 = { stack: [], error: void 0, hasError: false };
123
- try {
124
- const parsedRes = sanitizeInput(data);
125
- if (parsedRes.type === 'error') {
126
- return parsedRes;
127
- }
128
- const processes = parsedRes.result;
129
- const processTxs = new Map();
130
- const polkadot = __addDisposableResource(env_1, yield createNodeApi(options), true);
131
- for (const process of processes) {
132
- const { waitForFinalised } = yield createProcess(process, dryRun, polkadot, options, verbose);
133
- processTxs.set(process.name, waitForFinalised);
134
- }
135
- yield Promise.all(processTxs.values());
136
- const result = {};
137
- let successCount = 0;
138
- for (const [key, processTxProm] of processTxs) {
139
- let response = yield processTxProm;
140
- result[key] = response;
141
- if (response.type === 'ok') {
142
- successCount = successCount + 1;
143
- }
144
- }
145
- // calculate the result and successCount
146
- return {
147
- type: 'ok',
148
- result,
149
- message: `Successfully loaded ${successCount}/${processes.length} processes`,
150
- };
151
- }
152
- catch (e_1) {
153
- env_1.error = e_1;
154
- env_1.hasError = true;
155
- }
156
- finally {
157
- const result_1 = __disposeResources(env_1);
158
- if (result_1)
159
- yield result_1;
160
- }
161
- });
162
- export const listTransforming = (res, options) => {
163
- let processes;
164
- if (options.active) {
165
- processes = res.filter(({ status }) => status === 'Enabled');
166
- }
167
- else if (options.disabled) {
168
- processes = res.filter(({ status }) => status === 'Disabled');
169
- }
170
- else {
171
- processes = res;
172
- }
173
- if (options.raw) {
174
- return processes.map((_a) => {
175
- var { name, program } = _a, p = __rest(_a, ["name", "program"]);
176
- return (Object.assign(Object.assign({ name: utf8ToHex(name) }, (options.verbose ? { program } : {})), p));
177
- });
178
- }
179
- else {
180
- return processes.map((p) => {
181
- return Object.assign({ name: p.name, version: p.version, status: p.status }, (options.verbose ? { program: p.program } : {}));
182
- });
183
- }
184
- };
185
- export const handleVerbose = (res, verbose) => {
186
- if (verbose) {
187
- return res;
188
- }
189
- const { program } = res, rest = __rest(res, ["program"]);
190
- return rest;
191
- };
192
- export const createProcess = (processRaw_1, ...args_1) => __awaiter(void 0, [processRaw_1, ...args_1], void 0, function* (processRaw, dryRun = false, polkadot, options = defaultOptions, verbose = false) {
193
- const handleErr = (err) => {
194
- // err is basically from errors.ts or any exception
195
- // process errors will contain specific messages and/or process
196
- // Promise<Process.Result> is in try {} and any exception is in catch {}
197
- if (err instanceof ProgramError || err instanceof VersionError || err instanceof ZodError) {
198
- const result = {
199
- type: 'error',
200
- error: err,
201
- message: err.message,
202
- };
203
- return {
204
- waitForFinalised: Promise.resolve(result),
205
- };
206
- }
207
- else if (err instanceof Error) {
208
- const result = {
209
- type: 'error',
210
- error: err,
211
- message: 'An unknown error occurred',
212
- };
213
- return {
214
- waitForFinalised: Promise.resolve(result),
215
- };
216
- }
217
- throw err;
218
- };
219
- try {
220
- const { name, version, program } = processValidation.parse(processRaw);
221
- const processId = utf8ToHex(name);
222
- const currentVersion = yield getVersion(polkadot, processId);
223
- const expectedVersion = currentVersion + 1;
224
- if (version > expectedVersion || version < currentVersion)
225
- throw new VersionError(version, expectedVersion, name);
226
- if (version === currentVersion) {
227
- const process = yield getProcess(polkadot, processId, version);
228
- if (program.length !== process.program.length)
229
- throw new ProgramError('existing: programs are different lengths', process);
230
- if (!program.every((step, i) => textify(step) === textify(process.program[i])))
231
- throw new ProgramError('existing: program steps did not match', process);
232
- return {
233
- waitForFinalised: Promise.resolve({
234
- type: 'ok',
235
- message: `Skipping: process ${name} is already created.`,
236
- result: handleVerbose({
237
- name,
238
- version,
239
- program,
240
- status: process.status,
241
- }, verbose),
242
- }),
243
- };
244
- }
245
- if (dryRun)
246
- return {
247
- waitForFinalised: Promise.resolve({
248
- type: 'ok',
249
- message: 'Dry run: transaction has not been created',
250
- result: handleVerbose({
251
- name,
252
- version,
253
- program,
254
- status: 'Enabled (dry-run)',
255
- }, verbose),
256
- }),
257
- };
258
- const createProcessTx = yield createProcessTransaction(polkadot, processId, program, options);
259
- return {
260
- waitForFinalised: createProcessTx.waitForFinal
261
- .then((process) => {
262
- const result = {
263
- type: 'ok',
264
- message: `Transaction for new process ${name} has been successfully submitted`,
265
- result: handleVerbose(process, verbose),
266
- };
267
- return result;
268
- })
269
- .catch((err) => handleErr(err).waitForFinalised),
270
- };
271
- }
272
- catch (err) {
273
- return handleErr(err);
274
- }
275
- });
276
- export const disableProcess = (name_1, processVersion_1, ...args_1) => __awaiter(void 0, [name_1, processVersion_1, ...args_1], void 0, function* (name, processVersion, dryRun = false, options = defaultOptions) {
277
- const env_2 = { stack: [], error: void 0, hasError: false };
278
- try {
279
- const processId = utf8ToHex(name);
280
- const polkadot = __addDisposableResource(env_2, yield createNodeApi(options), true);
281
- const currentProcess = yield getProcess(polkadot, processId, processVersion);
282
- if (currentProcess.status === 'Disabled') {
283
- throw new DisableError(`${name} with version ${processVersion} doesn't exist or is already disabled`);
284
- }
285
- if (dryRun) {
286
- return {
287
- type: 'ok',
288
- message: `This will DISABLE the following process ${name}`,
289
- result: {
290
- name,
291
- version: processVersion,
292
- status: 'Disabled (dry-run)',
293
- },
294
- };
295
- }
296
- return {
297
- type: 'ok',
298
- message: 'Process has been disabled',
299
- result: yield disableProcessTransaction(polkadot, processId, processVersion, options),
300
- };
301
- }
302
- catch (e_2) {
303
- env_2.error = e_2;
304
- env_2.hasError = true;
305
- }
306
- finally {
307
- const result_2 = __disposeResources(env_2);
308
- if (result_2)
309
- yield result_2;
310
- }
311
- });
@@ -1,14 +0,0 @@
1
- export declare class DisableError extends Error {
2
- constructor(m: string);
3
- }
4
- export declare class VersionError extends Error {
5
- constructor(version: number, expected: number, name: string);
6
- }
7
- export declare class CliInputParseError extends Error {
8
- baseError: Error;
9
- constructor(baseError: Error);
10
- }
11
- export declare class ProgramError extends Error {
12
- process?: Process.Payload;
13
- constructor(m: string, process?: Process.Payload);
14
- }