@basis-theory-labs/cli 1.13.0 → 2.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 (55) hide show
  1. package/README.md +166 -87
  2. package/dist/applications/management.d.ts +8 -10
  3. package/dist/applications/management.js +14 -10
  4. package/dist/base.d.ts +2 -2
  5. package/dist/base.js +27 -14
  6. package/dist/commands/applications/create.js +6 -3
  7. package/dist/commands/applications/index.js +3 -1
  8. package/dist/commands/proxies/create.d.ts +17 -1
  9. package/dist/commands/proxies/create.js +84 -8
  10. package/dist/commands/proxies/index.js +3 -2
  11. package/dist/commands/proxies/logs.js +2 -1
  12. package/dist/commands/proxies/update.d.ts +17 -1
  13. package/dist/commands/proxies/update.js +66 -6
  14. package/dist/commands/reactors/create.d.ts +11 -1
  15. package/dist/commands/reactors/create.js +70 -8
  16. package/dist/commands/reactors/index.js +3 -2
  17. package/dist/commands/reactors/logs.js +2 -1
  18. package/dist/commands/reactors/update.d.ts +11 -1
  19. package/dist/commands/reactors/update.js +45 -5
  20. package/dist/logs/connect.d.ts +5 -5
  21. package/dist/logs/connect.js +1 -2
  22. package/dist/logs/index.d.ts +3 -3
  23. package/dist/logs/server.js +1 -2
  24. package/dist/proxies/management.d.ts +7 -7
  25. package/dist/proxies/management.js +16 -9
  26. package/dist/proxies/runtime.d.ts +5 -0
  27. package/dist/proxies/runtime.js +66 -0
  28. package/dist/proxies/utils.d.ts +26 -5
  29. package/dist/proxies/utils.js +78 -7
  30. package/dist/reactors/management.d.ts +7 -7
  31. package/dist/reactors/management.js +16 -9
  32. package/dist/reactors/runtime.d.ts +3 -0
  33. package/dist/reactors/runtime.js +27 -0
  34. package/dist/reactors/utils.d.ts +16 -5
  35. package/dist/reactors/utils.js +4 -1
  36. package/dist/runtime/flags.d.ts +10 -0
  37. package/dist/runtime/flags.js +37 -0
  38. package/dist/runtime/index.d.ts +3 -0
  39. package/dist/runtime/index.js +20 -0
  40. package/dist/runtime/state.d.ts +6 -0
  41. package/dist/runtime/state.js +86 -0
  42. package/dist/runtime/utils.d.ts +34 -0
  43. package/dist/runtime/utils.js +132 -0
  44. package/dist/utils.d.ts +12 -2
  45. package/dist/utils.js +44 -4
  46. package/oclif.manifest.json +333 -122
  47. package/package.json +4 -3
  48. package/dist/commands/reactorFormulas/index.d.ts +0 -10
  49. package/dist/commands/reactorFormulas/index.js +0 -27
  50. package/dist/commands/reactorFormulas/update.d.ts +0 -18
  51. package/dist/commands/reactorFormulas/update.js +0 -71
  52. package/dist/reactorFormulas/management.d.ts +0 -5
  53. package/dist/reactorFormulas/management.js +0 -54
  54. package/dist/reactorFormulas/utils.d.ts +0 -26
  55. package/dist/reactorFormulas/utils.js +0 -49
@@ -1,71 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const core_1 = require("@oclif/core");
4
- const base_1 = require("../../base");
5
- const files_1 = require("../../files");
6
- const management_1 = require("../../reactorFormulas/management");
7
- const utils_1 = require("../../reactorFormulas/utils");
8
- class Update extends base_1.BaseCommand {
9
- async run() {
10
- this.log('WARNING: Reactor Formulas are being deprecated and will be removed in a future release.');
11
- const { bt, args: { id }, flags: { name, description, code, configuration = '', 'request-parameters': requestParameters = '', watch, }, } = await this.parse(Update);
12
- const model = (0, utils_1.createModelFromFlags)({
13
- name,
14
- description,
15
- type: 'private',
16
- code,
17
- configuration,
18
- requestParameters,
19
- });
20
- await (0, management_1.updateReactorFormula)(bt, id, model);
21
- this.log('Reactor Formula updated successfully!');
22
- if (watch) {
23
- const entries = Object.entries({
24
- code,
25
- configuration,
26
- requestParameters,
27
- }).filter(([, value]) => Boolean(value));
28
- const files = entries.reduce((arr, [, file]) => [...arr, file], []);
29
- if (files.length) {
30
- this.log(`Watching files for changes: ${files.join(', ')} `);
31
- }
32
- entries.forEach(([prop, file]) => {
33
- (0, files_1.watchForChanges)(file, async () => {
34
- core_1.ux.action.start(`Detected change in ${file}. Pushing changes`);
35
- await (0, management_1.updateReactorFormula)(bt, id, (0, utils_1.createModelFromFlags)({
36
- name,
37
- description,
38
- type: 'private',
39
- code,
40
- configuration,
41
- requestParameters,
42
- [prop]: file,
43
- }));
44
- core_1.ux.action.stop('✅\t');
45
- });
46
- });
47
- }
48
- }
49
- }
50
- exports.default = Update;
51
- Update.description = '[Deprecated] Updates an existing Reactor Formula. Requires `reactor:update` Management Application permission';
52
- Update.examples = [
53
- '<%= config.bin %> <%= command.id %> 03858bf5-32d3-4a2e-b74b-daeea0883bca',
54
- '<%= config.bin %> <%= command.id %> 03858bf5-32d3-4a2e-b74b-daeea0883bca --code ./formula.js',
55
- '<%= config.bin %> <%= command.id %> 03858bf5-32d3-4a2e-b74b-daeea0883bca --code ./formula.js -w',
56
- ];
57
- Update.flags = {
58
- ...utils_1.REACTOR_FORMULA_FLAGS,
59
- watch: core_1.Flags.boolean({
60
- char: 'w',
61
- description: 'Watch for changes in informed files',
62
- default: false,
63
- required: false,
64
- }),
65
- };
66
- Update.args = {
67
- id: core_1.Args.string({
68
- description: 'Reactor Formula id to update',
69
- required: true,
70
- }),
71
- };
@@ -1,5 +0,0 @@
1
- import type { ReactorFormula, CreateReactorFormula } from '@basis-theory/basis-theory-js/types/models';
2
- import type { BasisTheory as IBasisTheory } from '@basis-theory/basis-theory-js/types/sdk';
3
- declare const selectReactorFormula: (bt: IBasisTheory, page: number) => Promise<ReactorFormula | undefined>;
4
- declare const updateReactorFormula: (bt: IBasisTheory, id: string, model: CreateReactorFormula) => Promise<ReactorFormula>;
5
- export { selectReactorFormula, updateReactorFormula };
@@ -1,54 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.updateReactorFormula = exports.selectReactorFormula = void 0;
4
- const core_1 = require("@oclif/core");
5
- const utils_1 = require("../utils");
6
- const debug = require('debug')('reactor-formulas:management');
7
- const listReactorFormulas = async (bt, page) => {
8
- const size = 5;
9
- debug('Listing reactor formulas', `page: ${page}`, `size: ${size}`);
10
- const reactorFormulas = await bt.reactorFormulas.list({
11
- size,
12
- page,
13
- });
14
- let data = [];
15
- if (reactorFormulas.pagination.totalItems > 0) {
16
- const last = (reactorFormulas.pagination.pageNumber - 1) * size;
17
- data = reactorFormulas.data.map((reactorFormula, index) => ({
18
- '#': last + (index + 1),
19
- ...reactorFormula,
20
- }));
21
- core_1.ux.table(data, {
22
- '#': {},
23
- id: {},
24
- name: {},
25
- });
26
- }
27
- else {
28
- core_1.ux.log('No reactor formulas found.');
29
- }
30
- return {
31
- data,
32
- pagination: reactorFormulas.pagination,
33
- };
34
- };
35
- const selectReactorFormula = async (bt, page) => {
36
- const reactors = await listReactorFormulas(bt, page);
37
- if (reactors.pagination.totalItems === 0) {
38
- return undefined;
39
- }
40
- const selection = await (0, utils_1.selectOrNavigate)(reactors, '#');
41
- if (selection === 'previous') {
42
- return selectReactorFormula(bt, page - 1);
43
- }
44
- if (selection === 'next') {
45
- return selectReactorFormula(bt, page + 1);
46
- }
47
- return selection;
48
- };
49
- exports.selectReactorFormula = selectReactorFormula;
50
- const updateReactorFormula = (bt, id, model) => {
51
- debug(`Updating Reactor Formula ${id}`, JSON.stringify(model, undefined, 2));
52
- return bt.reactorFormulas.update(id, model);
53
- };
54
- exports.updateReactorFormula = updateReactorFormula;
@@ -1,26 +0,0 @@
1
- import type { CreateReactorFormula as CreateReactorFormulaModel } from '@basis-theory/basis-theory-js/types/models/reactor-formulas';
2
- declare const REACTOR_FORMULA_FLAGS: {
3
- name: import("@oclif/core/lib/interfaces/parser").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
4
- description: import("@oclif/core/lib/interfaces/parser").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
5
- icon: import("@oclif/core/lib/interfaces/parser").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
6
- code: import("@oclif/core/lib/interfaces/parser").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
7
- configuration: import("@oclif/core/lib/interfaces/parser").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
8
- 'request-parameters': import("@oclif/core/lib/interfaces/parser").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
- };
10
- interface ReactorFormulaFlagProps {
11
- /**
12
- * Path to code file
13
- */
14
- code?: string;
15
- /**
16
- * Path to code file
17
- */
18
- requestParameters: string;
19
- /**
20
- * Path to .env file
21
- */
22
- configuration: string;
23
- }
24
- type CreateReactorFormula = ReactorFormulaFlagProps & Omit<CreateReactorFormulaModel, 'configuration' | 'requestParameters' | 'code'>;
25
- declare function createModelFromFlags(payload: CreateReactorFormula): CreateReactorFormulaModel;
26
- export { REACTOR_FORMULA_FLAGS, createModelFromFlags };
@@ -1,49 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createModelFromFlags = exports.REACTOR_FORMULA_FLAGS = void 0;
4
- const core_1 = require("@oclif/core");
5
- const files_1 = require("../files");
6
- const REACTOR_FORMULA_FLAGS = {
7
- name: core_1.Flags.string({
8
- char: 'n',
9
- description: 'name of the Reactor Formula',
10
- required: true,
11
- }),
12
- description: core_1.Flags.string({
13
- char: 'd',
14
- description: 'description of the Reactor Formula',
15
- }),
16
- icon: core_1.Flags.string({
17
- char: 'i',
18
- description: 'icon of the Reactor Formula',
19
- }),
20
- code: core_1.Flags.file({
21
- char: 's',
22
- description: 'path to JavaScript file containing code',
23
- required: true,
24
- }),
25
- configuration: core_1.Flags.file({
26
- char: 'c',
27
- description: 'path to configuration definition to use in the Reactor Formula',
28
- required: true,
29
- }),
30
- 'request-parameters': core_1.Flags.file({
31
- char: 'p',
32
- description: 'path to request params definition to use in the Reactor Formula',
33
- required: true,
34
- }),
35
- };
36
- exports.REACTOR_FORMULA_FLAGS = REACTOR_FORMULA_FLAGS;
37
- // eslint-disable-next-line get-off-my-lawn/prefer-arrow-functions
38
- function createModelFromFlags({ name, description, icon, code, type, configuration, requestParameters, }) {
39
- return {
40
- name,
41
- description,
42
- icon,
43
- type,
44
- code: code ? (0, files_1.readFileContents)(code) : '',
45
- configuration: JSON.parse((0, files_1.readFileContents)(configuration)),
46
- requestParameters: JSON.parse((0, files_1.readFileContents)(requestParameters)),
47
- };
48
- }
49
- exports.createModelFromFlags = createModelFromFlags;