@memberjunction/cli 6.2.0-edge.2 → 6.2.0-edge.3

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 (81) hide show
  1. package/dist/commands/queue/backlog.d.ts +11 -0
  2. package/dist/commands/queue/backlog.d.ts.map +1 -0
  3. package/dist/commands/queue/backlog.js +32 -0
  4. package/dist/commands/queue/backlog.js.map +1 -0
  5. package/dist/commands/queue/dead-letters.d.ts +13 -0
  6. package/dist/commands/queue/dead-letters.d.ts.map +1 -0
  7. package/dist/commands/queue/dead-letters.js +35 -0
  8. package/dist/commands/queue/dead-letters.js.map +1 -0
  9. package/dist/commands/queue/discard.d.ts +12 -0
  10. package/dist/commands/queue/discard.d.ts.map +1 -0
  11. package/dist/commands/queue/discard.js +45 -0
  12. package/dist/commands/queue/discard.js.map +1 -0
  13. package/dist/commands/queue/export-topology.d.ts +12 -0
  14. package/dist/commands/queue/export-topology.d.ts.map +1 -0
  15. package/dist/commands/queue/export-topology.js +40 -0
  16. package/dist/commands/queue/export-topology.js.map +1 -0
  17. package/dist/commands/queue/import-bindings.d.ts +14 -0
  18. package/dist/commands/queue/import-bindings.d.ts.map +1 -0
  19. package/dist/commands/queue/import-bindings.js +41 -0
  20. package/dist/commands/queue/import-bindings.js.map +1 -0
  21. package/dist/commands/queue/index.d.ts +7 -0
  22. package/dist/commands/queue/index.d.ts.map +1 -0
  23. package/dist/commands/queue/index.js +25 -0
  24. package/dist/commands/queue/index.js.map +1 -0
  25. package/dist/commands/queue/partitions.d.ts +14 -0
  26. package/dist/commands/queue/partitions.d.ts.map +1 -0
  27. package/dist/commands/queue/partitions.js +36 -0
  28. package/dist/commands/queue/partitions.js.map +1 -0
  29. package/dist/commands/queue/publish.d.ts +35 -0
  30. package/dist/commands/queue/publish.d.ts.map +1 -0
  31. package/dist/commands/queue/publish.js +94 -0
  32. package/dist/commands/queue/publish.js.map +1 -0
  33. package/dist/commands/queue/replay.d.ts +12 -0
  34. package/dist/commands/queue/replay.d.ts.map +1 -0
  35. package/dist/commands/queue/replay.js +42 -0
  36. package/dist/commands/queue/replay.js.map +1 -0
  37. package/dist/commands/queue/stats.d.ts +11 -0
  38. package/dist/commands/queue/stats.d.ts.map +1 -0
  39. package/dist/commands/queue/stats.js +35 -0
  40. package/dist/commands/queue/stats.js.map +1 -0
  41. package/dist/commands/queue/usage.d.ts +7 -0
  42. package/dist/commands/queue/usage.d.ts.map +1 -0
  43. package/dist/commands/queue/usage.js +10 -0
  44. package/dist/commands/queue/usage.js.map +1 -0
  45. package/dist/commands/queue/validate-bindings.d.ts +12 -0
  46. package/dist/commands/queue/validate-bindings.d.ts.map +1 -0
  47. package/dist/commands/queue/validate-bindings.js +37 -0
  48. package/dist/commands/queue/validate-bindings.js.map +1 -0
  49. package/dist/commands/queue/work.d.ts +20 -0
  50. package/dist/commands/queue/work.d.ts.map +1 -0
  51. package/dist/commands/queue/work.js +77 -0
  52. package/dist/commands/queue/work.js.map +1 -0
  53. package/dist/commands/rubric/evaluate.d.ts +3 -0
  54. package/dist/commands/rubric/evaluate.d.ts.map +1 -1
  55. package/dist/commands/rubric/evaluate.js +9 -2
  56. package/dist/commands/rubric/evaluate.js.map +1 -1
  57. package/dist/hooks/postrun.d.ts +1 -1
  58. package/dist/lib/domain-profiles.d.ts.map +1 -1
  59. package/dist/lib/domain-profiles.js +4 -0
  60. package/dist/lib/domain-profiles.js.map +1 -1
  61. package/dist/lib/work-queue/queue-format.d.ts +17 -0
  62. package/dist/lib/work-queue/queue-format.d.ts.map +1 -0
  63. package/dist/lib/work-queue/queue-format.js +125 -0
  64. package/dist/lib/work-queue/queue-format.js.map +1 -0
  65. package/dist/lib/work-queue/queue-session.d.ts +9 -0
  66. package/dist/lib/work-queue/queue-session.d.ts.map +1 -0
  67. package/dist/lib/work-queue/queue-session.js +8 -0
  68. package/dist/lib/work-queue/queue-session.js.map +1 -0
  69. package/dist/lib/work-queue/queue-worker.d.ts +24 -0
  70. package/dist/lib/work-queue/queue-worker.d.ts.map +1 -0
  71. package/dist/lib/work-queue/queue-worker.js +50 -0
  72. package/dist/lib/work-queue/queue-worker.js.map +1 -0
  73. package/dist/light-commands.d.ts.map +1 -1
  74. package/dist/light-commands.js +3 -0
  75. package/dist/light-commands.js.map +1 -1
  76. package/dist/utils/open-app-context.d.ts +6 -0
  77. package/dist/utils/open-app-context.d.ts.map +1 -1
  78. package/dist/utils/open-app-context.js +3 -3
  79. package/dist/utils/open-app-context.js.map +1 -1
  80. package/oclif.manifest.json +1862 -1180
  81. package/package.json +24 -22
@@ -0,0 +1,11 @@
1
+ import { Command } from '@oclif/core';
2
+ export default class QueueBacklog extends Command {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ subscription: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
7
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
8
+ };
9
+ run(): Promise<void>;
10
+ }
11
+ //# sourceMappingURL=backlog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backlog.d.ts","sourceRoot":"","sources":["../../../src/commands/queue/backlog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAK7C,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,OAAO;IAC/C,MAAM,CAAC,WAAW,SAAkG;IAEpH,MAAM,CAAC,QAAQ,WAAiJ;IAEhK,MAAM,CAAC,KAAK;;;MAGV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAiB3B"}
@@ -0,0 +1,32 @@
1
+ import { Command, Flags } from '@oclif/core';
2
+ import { WorkQueueGetBacklogOperation } from '@memberjunction/core-entities';
3
+ import { FormatBacklog, RequireOperationOutput } from '../../lib/work-queue/queue-format.js';
4
+ import { OpenWorkQueueSession } from '../../lib/work-queue/queue-session.js';
5
+ export default class QueueBacklog extends Command {
6
+ static { this.description = 'Show the autoscaler metric for one subscription: claimable pending plus in-flight deliveries'; }
7
+ static { this.examples = ['<%= config.bin %> <%= command.id %> --subscription venue-import', '<%= config.bin %> <%= command.id %> --subscription venue-import --json']; }
8
+ static { this.flags = {
9
+ subscription: Flags.string({ char: 's', description: 'Subscription name', required: true }),
10
+ json: Flags.boolean({ description: 'Print JSON instead of text', default: false }),
11
+ }; }
12
+ async run() {
13
+ const { flags } = await this.parse(QueueBacklog);
14
+ const session = await OpenWorkQueueSession();
15
+ let failure = null;
16
+ try {
17
+ const result = await new WorkQueueGetBacklogOperation().Execute({ subscriptionName: flags.subscription }, { provider: session.Provider, user: session.User });
18
+ const output = RequireOperationOutput(result, 'WorkQueue.GetBacklog');
19
+ this.log(flags.json ? JSON.stringify(output, null, 2) : FormatBacklog(output));
20
+ }
21
+ catch (error) {
22
+ failure = error instanceof Error ? error.message : String(error);
23
+ }
24
+ finally {
25
+ await session.Close();
26
+ }
27
+ if (failure) {
28
+ this.error(failure, { exit: 1 });
29
+ }
30
+ }
31
+ }
32
+ //# sourceMappingURL=backlog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backlog.js","sourceRoot":"","sources":["../../../src/commands/queue/backlog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC7F,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAE7E,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,OAAO;aACxC,gBAAW,GAAG,8FAA8F,CAAC;aAE7G,aAAQ,GAAG,CAAC,iEAAiE,EAAE,wEAAwE,CAAC,CAAC;aAEzJ,UAAK,GAAG;QACb,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC3F,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,4BAA4B,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;KACnF,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,MAAM,oBAAoB,EAAE,CAAC;QAC7C,IAAI,OAAO,GAAkB,IAAI,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,4BAA4B,EAAE,CAAC,OAAO,CAAC,EAAE,gBAAgB,EAAE,KAAK,CAAC,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9J,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;YACtE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;QACjF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnE,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC;IACH,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { Command } from '@oclif/core';
2
+ export default class QueueDeadLetters extends Command {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ subscription: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
7
+ cursor: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
8
+ 'page-size': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<number, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
9
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
10
+ };
11
+ run(): Promise<void>;
12
+ }
13
+ //# sourceMappingURL=dead-letters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dead-letters.d.ts","sourceRoot":"","sources":["../../../src/commands/queue/dead-letters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAK7C,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,OAAO;IACnD,MAAM,CAAC,WAAW,SAA+D;IAEjF,MAAM,CAAC,QAAQ,WAA2F;IAE1G,MAAM,CAAC,KAAK;;;;;MAKV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAkB3B"}
@@ -0,0 +1,35 @@
1
+ import { Command, Flags } from '@oclif/core';
2
+ import { WorkQueueListDeadLettersOperation } from '@memberjunction/core-entities';
3
+ import { FormatDeadLetters, RequireOperationOutput } from '../../lib/work-queue/queue-format.js';
4
+ import { OpenWorkQueueSession } from '../../lib/work-queue/queue-session.js';
5
+ export default class QueueDeadLetters extends Command {
6
+ static { this.description = "List a work-queue subscription's dead-lettered deliveries"; }
7
+ static { this.examples = ['<%= config.bin %> <%= command.id %> --subscription integration.apply --page-size 20']; }
8
+ static { this.flags = {
9
+ subscription: Flags.string({ char: 's', description: 'Subscription name', required: true }),
10
+ cursor: Flags.string({ description: 'nextCursor from a previous page' }),
11
+ 'page-size': Flags.integer({ description: 'Items per page (1–500)', default: 50 }),
12
+ json: Flags.boolean({ description: 'Print JSON instead of a table', default: false }),
13
+ }; }
14
+ async run() {
15
+ const { flags } = await this.parse(QueueDeadLetters);
16
+ const session = await OpenWorkQueueSession();
17
+ let failure = null;
18
+ try {
19
+ const input = { subscriptionName: flags.subscription, cursor: flags.cursor, pageSize: flags['page-size'] };
20
+ const result = await new WorkQueueListDeadLettersOperation().Execute(input, { provider: session.Provider, user: session.User });
21
+ const output = RequireOperationOutput(result, 'WorkQueue.ListDeadLetters');
22
+ this.log(flags.json ? JSON.stringify(output, null, 2) : FormatDeadLetters(output));
23
+ }
24
+ catch (error) {
25
+ failure = error instanceof Error ? error.message : String(error);
26
+ }
27
+ finally {
28
+ await session.Close();
29
+ }
30
+ if (failure) {
31
+ this.error(failure, { exit: 1 });
32
+ }
33
+ }
34
+ }
35
+ //# sourceMappingURL=dead-letters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dead-letters.js","sourceRoot":"","sources":["../../../src/commands/queue/dead-letters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iCAAiC,EAAE,MAAM,+BAA+B,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AACjG,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAE7E,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,OAAO;aAC5C,gBAAW,GAAG,2DAA2D,CAAC;aAE1E,aAAQ,GAAG,CAAC,qFAAqF,CAAC,CAAC;aAEnG,UAAK,GAAG;QACb,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC3F,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,iCAAiC,EAAE,CAAC;QACxE,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,wBAAwB,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QAClF,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,+BAA+B,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;KACtF,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,MAAM,oBAAoB,EAAE,CAAC;QAC7C,IAAI,OAAO,GAAkB,IAAI,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,EAAE,gBAAgB,EAAE,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;YAC3G,MAAM,MAAM,GAAG,MAAM,IAAI,iCAAiC,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAChI,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;YAC3E,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;QACrF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnE,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC;IACH,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { Command } from '@oclif/core';
2
+ export default class QueueDiscard extends Command {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ subscription: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
7
+ delivery: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
8
+ reason: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
9
+ };
10
+ run(): Promise<void>;
11
+ }
12
+ //# sourceMappingURL=discard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discard.d.ts","sourceRoot":"","sources":["../../../src/commands/queue/discard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAK7C,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,OAAO;IAC/C,MAAM,CAAC,WAAW,SAA+F;IAEjH,MAAM,CAAC,QAAQ,WAA8H;IAE7I,MAAM,CAAC,KAAK;;;;MAIV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA0B3B"}
@@ -0,0 +1,45 @@
1
+ import { Command, Flags } from '@oclif/core';
2
+ import { WorkQueueDiscardDeliveryOperation } from '@memberjunction/core-entities';
3
+ import { RequireOperationOutput } from '../../lib/work-queue/queue-format.js';
4
+ import { OpenWorkQueueSession } from '../../lib/work-queue/queue-session.js';
5
+ export default class QueueDiscard extends Command {
6
+ static { this.description = 'Discard one pending or dead-lettered work-queue delivery, or cancel one that is in flight'; }
7
+ static { this.examples = ['<%= config.bin %> <%= command.id %> --subscription integration.apply --delivery <id> --reason "bad batch, republished"']; }
8
+ static { this.flags = {
9
+ subscription: Flags.string({ char: 's', description: 'Subscription name', required: true }),
10
+ delivery: Flags.string({ char: 'd', description: 'DeliveryID to discard', required: true }),
11
+ reason: Flags.string({ char: 'r', description: 'Why the work is dropped (at most 1000 characters)', required: true }),
12
+ }; }
13
+ async run() {
14
+ const { flags } = await this.parse(QueueDiscard);
15
+ const session = await OpenWorkQueueSession();
16
+ let failure = null;
17
+ try {
18
+ const input = { subscriptionName: flags.subscription, deliveryID: flags.delivery, reason: flags.reason };
19
+ const result = await new WorkQueueDiscardDeliveryOperation().Execute(input, { provider: session.Provider, user: session.User });
20
+ const output = RequireOperationOutput(result, 'WorkQueue.DiscardDelivery');
21
+ if (!output.supported) {
22
+ failure = "This subscription's transport cannot discard this delivery.";
23
+ }
24
+ else if (!output.discarded) {
25
+ failure = 'Nothing discarded: the delivery does not exist or is already finished.';
26
+ }
27
+ else if (output.cancelRequested) {
28
+ this.log(`Cancel requested for ${flags.delivery}: its handler is told to stop within 30 seconds, and the delivery becomes Discarded once it does.`);
29
+ }
30
+ else {
31
+ this.log(`Discarded ${flags.delivery}.`);
32
+ }
33
+ }
34
+ catch (error) {
35
+ failure = error instanceof Error ? error.message : String(error);
36
+ }
37
+ finally {
38
+ await session.Close();
39
+ }
40
+ if (failure) {
41
+ this.error(failure, { exit: 1 });
42
+ }
43
+ }
44
+ }
45
+ //# sourceMappingURL=discard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discard.js","sourceRoot":"","sources":["../../../src/commands/queue/discard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iCAAiC,EAAE,MAAM,+BAA+B,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAE7E,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,OAAO;aACxC,gBAAW,GAAG,2FAA2F,CAAC;aAE1G,aAAQ,GAAG,CAAC,wHAAwH,CAAC,CAAC;aAEtI,UAAK,GAAG;QACb,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC3F,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,uBAAuB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC3F,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,mDAAmD,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;KACtH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,MAAM,oBAAoB,EAAE,CAAC;QAC7C,IAAI,OAAO,GAAkB,IAAI,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,EAAE,gBAAgB,EAAE,KAAK,CAAC,YAAY,EAAE,UAAU,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;YACzG,MAAM,MAAM,GAAG,MAAM,IAAI,iCAAiC,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAChI,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;YAC3E,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACtB,OAAO,GAAG,6DAA6D,CAAC;YAC1E,CAAC;iBAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC7B,OAAO,GAAG,wEAAwE,CAAC;YACrF,CAAC;iBAAM,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;gBAClC,IAAI,CAAC,GAAG,CAAC,wBAAwB,KAAK,CAAC,QAAQ,mGAAmG,CAAC,CAAC;YACtJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnE,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC;IACH,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { Command } from '@oclif/core';
2
+ import '@memberjunction/work-queue-engine/aws';
3
+ export default class QueueExportTopology extends Command {
4
+ static description: string;
5
+ static examples: string[];
6
+ static flags: {
7
+ transport: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
8
+ output: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
9
+ };
10
+ run(): Promise<void>;
11
+ }
12
+ //# sourceMappingURL=export-topology.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export-topology.d.ts","sourceRoot":"","sources":["../../../src/commands/queue/export-topology.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAG7C,OAAO,uCAAuC,CAAC;AAG/C,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,OAAO;IACtD,MAAM,CAAC,WAAW,SAAmF;IAErG,MAAM,CAAC,QAAQ,WAAiH;IAEhI,MAAM,CAAC,KAAK;;;MAGV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAsB3B"}
@@ -0,0 +1,40 @@
1
+ import { writeFile } from 'node:fs/promises';
2
+ import { Command, Flags } from '@oclif/core';
3
+ import { WorkQueueEngine } from '@memberjunction/work-queue-engine';
4
+ // Registers the 'AWS' transport driver factory and manifest enricher for this command only (work-queue 03 §0).
5
+ import '@memberjunction/work-queue-engine/aws';
6
+ import { OpenWorkQueueSession } from '../../lib/work-queue/queue-session.js';
7
+ export default class QueueExportTopology extends Command {
8
+ static { this.description = 'Write the topology manifest for one transport (input to the Terraform module)'; }
9
+ static { this.examples = ['<%= config.bin %> <%= command.id %> --transport AWS-prod --output infrastructure/work-queue/manifest.json']; }
10
+ static { this.flags = {
11
+ transport: Flags.string({ char: 't', description: 'Transport name', required: true }),
12
+ output: Flags.string({ char: 'o', description: 'File to write; stdout when omitted' }),
13
+ }; }
14
+ async run() {
15
+ const { flags } = await this.parse(QueueExportTopology);
16
+ const session = await OpenWorkQueueSession();
17
+ let failure = null;
18
+ try {
19
+ await WorkQueueEngine.Instance.Config(false, session.User, session.Provider);
20
+ const manifest = JSON.stringify(WorkQueueEngine.Instance.ExportManifest(flags.transport), null, 2);
21
+ if (flags.output) {
22
+ await writeFile(flags.output, `${manifest}\n`, 'utf8');
23
+ this.log(`Wrote ${flags.output}`);
24
+ }
25
+ else {
26
+ this.log(manifest);
27
+ }
28
+ }
29
+ catch (error) {
30
+ failure = error instanceof Error ? error.message : String(error);
31
+ }
32
+ finally {
33
+ await session.Close();
34
+ }
35
+ if (failure) {
36
+ this.error(failure, { exit: 1 });
37
+ }
38
+ }
39
+ }
40
+ //# sourceMappingURL=export-topology.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export-topology.js","sourceRoot":"","sources":["../../../src/commands/queue/export-topology.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,+GAA+G;AAC/G,OAAO,uCAAuC,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAE7E,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,OAAO;aAC/C,gBAAW,GAAG,+EAA+E,CAAC;aAE9F,aAAQ,GAAG,CAAC,2GAA2G,CAAC,CAAC;aAEzH,UAAK,GAAG;QACb,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACrF,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,oCAAoC,EAAE,CAAC;KACvF,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,MAAM,oBAAoB,EAAE,CAAC;QAC7C,IAAI,OAAO,GAAkB,IAAI,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC7E,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACnG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjB,MAAM,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,QAAQ,IAAI,EAAE,MAAM,CAAC,CAAC;gBACvD,IAAI,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnE,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC;IACH,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { Command } from '@oclif/core';
2
+ import '@memberjunction/work-queue-engine/aws';
3
+ export default class QueueImportBindings extends Command {
4
+ static description: string;
5
+ static examples: string[];
6
+ static args: {
7
+ file: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>;
8
+ };
9
+ static flags: {
10
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
11
+ };
12
+ run(): Promise<void>;
13
+ }
14
+ //# sourceMappingURL=import-bindings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-bindings.d.ts","sourceRoot":"","sources":["../../../src/commands/queue/import-bindings.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAC;AAGnD,OAAO,uCAAuC,CAAC;AAI/C,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,OAAO;IACtD,MAAM,CAAC,WAAW,SAA8F;IAEhH,MAAM,CAAC,QAAQ,WAA0H;IAEzI,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;MAEV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAqB3B"}
@@ -0,0 +1,41 @@
1
+ import { readFile } from 'node:fs/promises';
2
+ import { Args, Command, Flags } from '@oclif/core';
3
+ import { WorkQueueEngine } from '@memberjunction/work-queue-engine';
4
+ // Registers the 'AWS' transport driver factory and manifest enricher for this command only (work-queue 03 §0).
5
+ import '@memberjunction/work-queue-engine/aws';
6
+ import { FormatBindingIssues, HasBindingErrors, ParseBindingImport } from '../../lib/work-queue/queue-format.js';
7
+ import { OpenWorkQueueSession } from '../../lib/work-queue/queue-session.js';
8
+ export default class QueueImportBindings extends Command {
9
+ static { this.description = 'Record cloud resource bindings (Terraform output) on work-queue topics and subscriptions'; }
10
+ static { this.examples = ['terraform output -json mj_work_queue_bindings > bindings.json && <%= config.bin %> <%= command.id %> bindings.json']; }
11
+ static { this.args = {
12
+ file: Args.string({ description: 'BindingImport JSON file', required: true }),
13
+ }; }
14
+ static { this.flags = {
15
+ json: Flags.boolean({ description: 'Print issues as JSON', default: false }),
16
+ }; }
17
+ async run() {
18
+ const { args, flags } = await this.parse(QueueImportBindings);
19
+ const session = await OpenWorkQueueSession();
20
+ let failure = null;
21
+ try {
22
+ const bindings = ParseBindingImport(await readFile(args.file, 'utf8'));
23
+ await WorkQueueEngine.Instance.Config(false, session.User, session.Provider);
24
+ const issues = await WorkQueueEngine.Instance.ImportBindings(bindings, session.User);
25
+ this.log(flags.json ? JSON.stringify(issues, null, 2) : FormatBindingIssues(issues));
26
+ if (HasBindingErrors(issues)) {
27
+ failure = 'Binding import reported errors.';
28
+ }
29
+ }
30
+ catch (error) {
31
+ failure = error instanceof Error ? error.message : String(error);
32
+ }
33
+ finally {
34
+ await session.Close();
35
+ }
36
+ if (failure) {
37
+ this.error(failure, { exit: 1 });
38
+ }
39
+ }
40
+ }
41
+ //# sourceMappingURL=import-bindings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-bindings.js","sourceRoot":"","sources":["../../../src/commands/queue/import-bindings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,+GAA+G;AAC/G,OAAO,uCAAuC,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AACjH,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAE7E,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,OAAO;aAC/C,gBAAW,GAAG,0FAA0F,CAAC;aAEzG,aAAQ,GAAG,CAAC,oHAAoH,CAAC,CAAC;aAElI,SAAI,GAAG;QACZ,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,yBAAyB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;KAC9E,CAAC;aAEK,UAAK,GAAG;QACb,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,sBAAsB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;KAC7E,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,MAAM,oBAAoB,EAAE,CAAC;QAC7C,IAAI,OAAO,GAAkB,IAAI,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YACvE,MAAM,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC7E,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YACrF,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;YACrF,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7B,OAAO,GAAG,iCAAiC,CAAC;YAC9C,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnE,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC;IACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { Command } from '@oclif/core';
2
+ export default class Queue extends Command {
3
+ static description: string;
4
+ static examples: string[];
5
+ run(): Promise<void>;
6
+ }
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/queue/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,OAAO;IACxC,MAAM,CAAC,WAAW,SAAoC;IAEtD,MAAM,CAAC,QAAQ,WAIb;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAe3B"}
@@ -0,0 +1,25 @@
1
+ import { Command } from '@oclif/core';
2
+ export default class Queue extends Command {
3
+ static { this.description = 'Operate the durable work queue'; }
4
+ static { this.examples = [
5
+ '<%= config.bin %> <%= command.id %> publish --topic samples.hello --payload \'{"name":"Paul"}\'',
6
+ '<%= config.bin %> <%= command.id %> stats',
7
+ '<%= config.bin %> <%= command.id %> dead-letters --subscription email.unsubscribe',
8
+ ]; }
9
+ async run() {
10
+ this.log('MemberJunction Work Queue\n');
11
+ this.log(' mj queue publish - Publish test messages to a topic from this machine');
12
+ this.log(' mj queue stats - Counts per subscription');
13
+ this.log(" mj queue dead-letters - List a subscription's dead letters");
14
+ this.log(' mj queue partitions - List in-flight / blocked partition keys');
15
+ this.log(' mj queue replay - Replay one dead letter');
16
+ this.log(' mj queue discard - Discard a pending or dead-lettered delivery, or cancel one in flight');
17
+ this.log(' mj queue backlog - The autoscaler metric for one subscription');
18
+ this.log(' mj queue work - Run subscriptions here: --once for a container job, or until stopped');
19
+ this.log(' mj queue export-topology - Write the topology manifest for Terraform');
20
+ this.log(' mj queue import-bindings - Record cloud resource bindings from Terraform output');
21
+ this.log(' mj queue validate-bindings - Check topology and cloud bindings');
22
+ this.log('\nRun "mj queue COMMAND --help" for details.');
23
+ }
24
+ }
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/queue/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,OAAO;aACjC,gBAAW,GAAG,gCAAgC,CAAC;aAE/C,aAAQ,GAAG;QAChB,iGAAiG;QACjG,2CAA2C;QAC3C,mFAAmF;KACpF,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,uFAAuF,CAAC,CAAC;QAClG,IAAI,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;QACvE,IAAI,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;QAClF,IAAI,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;QACtE,IAAI,CAAC,GAAG,CAAC,yGAAyG,CAAC,CAAC;QACpH,IAAI,CAAC,GAAG,CAAC,+EAA+E,CAAC,CAAC;QAC1F,IAAI,CAAC,GAAG,CAAC,yGAAyG,CAAC,CAAC;QACpH,IAAI,CAAC,GAAG,CAAC,8EAA8E,CAAC,CAAC;QACzF,IAAI,CAAC,GAAG,CAAC,yFAAyF,CAAC,CAAC;QACpG,IAAI,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;QACjF,IAAI,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAC3D,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { Command } from '@oclif/core';
2
+ export default class QueuePartitions extends Command {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ subscription: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
7
+ condition: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
8
+ cursor: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
9
+ 'page-size': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<number, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
10
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
11
+ };
12
+ run(): Promise<void>;
13
+ }
14
+ //# sourceMappingURL=partitions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partitions.d.ts","sourceRoot":"","sources":["../../../src/commands/queue/partitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAK7C,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,OAAO;IAClD,MAAM,CAAC,WAAW,SAA0E;IAE5F,MAAM,CAAC,QAAQ,WAAgG;IAE/G,MAAM,CAAC,KAAK;;;;;;MAMV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAkB3B"}
@@ -0,0 +1,36 @@
1
+ import { Command, Flags } from '@oclif/core';
2
+ import { WorkQueueListPartitionsOperation } from '@memberjunction/core-entities';
3
+ import { FormatPartitions, PARTITION_CONDITION_OPTIONS, RequireOperationOutput, ToPartitionCondition } from '../../lib/work-queue/queue-format.js';
4
+ import { OpenWorkQueueSession } from '../../lib/work-queue/queue-session.js';
5
+ export default class QueuePartitions extends Command {
6
+ static { this.description = "List a work-queue subscription's in-flight or blocked partition keys"; }
7
+ static { this.examples = ['<%= config.bin %> <%= command.id %> --subscription integration.apply --condition Blocked']; }
8
+ static { this.flags = {
9
+ subscription: Flags.string({ char: 's', description: 'Subscription name', required: true }),
10
+ condition: Flags.string({ description: 'Only keys in this condition', options: [...PARTITION_CONDITION_OPTIONS] }),
11
+ cursor: Flags.string({ description: 'nextCursor from a previous page' }),
12
+ 'page-size': Flags.integer({ description: 'Items per page (1–500)', default: 50 }),
13
+ json: Flags.boolean({ description: 'Print JSON instead of a table', default: false }),
14
+ }; }
15
+ async run() {
16
+ const { flags } = await this.parse(QueuePartitions);
17
+ const session = await OpenWorkQueueSession();
18
+ let failure = null;
19
+ try {
20
+ const input = { subscriptionName: flags.subscription, condition: ToPartitionCondition(flags.condition), cursor: flags.cursor, pageSize: flags['page-size'] };
21
+ const result = await new WorkQueueListPartitionsOperation().Execute(input, { provider: session.Provider, user: session.User });
22
+ const output = RequireOperationOutput(result, 'WorkQueue.ListPartitions');
23
+ this.log(flags.json ? JSON.stringify(output, null, 2) : FormatPartitions(output));
24
+ }
25
+ catch (error) {
26
+ failure = error instanceof Error ? error.message : String(error);
27
+ }
28
+ finally {
29
+ await session.Close();
30
+ }
31
+ if (failure) {
32
+ this.error(failure, { exit: 1 });
33
+ }
34
+ }
35
+ }
36
+ //# sourceMappingURL=partitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partitions.js","sourceRoot":"","sources":["../../../src/commands/queue/partitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,gCAAgC,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACnJ,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAE7E,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,OAAO;aAC3C,gBAAW,GAAG,sEAAsE,CAAC;aAErF,aAAQ,GAAG,CAAC,0FAA0F,CAAC,CAAC;aAExG,UAAK,GAAG;QACb,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC3F,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,6BAA6B,EAAE,OAAO,EAAE,CAAC,GAAG,2BAA2B,CAAC,EAAE,CAAC;QAClH,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,iCAAiC,EAAE,CAAC;QACxE,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,wBAAwB,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QAClF,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,+BAA+B,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;KACtF,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,MAAM,oBAAoB,EAAE,CAAC;QAC7C,IAAI,OAAO,GAAkB,IAAI,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,EAAE,gBAAgB,EAAE,KAAK,CAAC,YAAY,EAAE,SAAS,EAAE,oBAAoB,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7J,MAAM,MAAM,GAAG,MAAM,IAAI,gCAAgC,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/H,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;YAC1E,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;QACpF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnE,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC;IACH,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { Command } from '@oclif/core';
2
+ import type { PublishRequest, PublishResult, WorkJson } from '@memberjunction/work-queue-core';
3
+ /** Turns `key=value` flags into message attributes; the first `=` splits, so values may contain `=`. */
4
+ export declare function ParseAttributes(pairs: string[] | undefined): Record<string, string>;
5
+ /** Parses the --payload JSON; any JSON value is a legal payload, an object is the useful one. */
6
+ export declare function ParsePayload(json: string): WorkJson;
7
+ export interface PublishFlags {
8
+ Payload: WorkJson;
9
+ PartitionKey?: string;
10
+ DedupKey?: string;
11
+ Attributes: Record<string, string>;
12
+ Count: number;
13
+ }
14
+ /**
15
+ * One request per copy. With --count above 1 each copy carries a `sequence` attribute (1-based) so the copies can
16
+ * be told apart in logs and dead-letter lists; a --dedup-key applies to the first copy only, since the ledger
17
+ * would (correctly) report every later copy as a Duplicate.
18
+ */
19
+ export declare function BuildPublishRequests(flags: PublishFlags): PublishRequest[];
20
+ export declare function FormatPublishResults(results: PublishResult[]): string;
21
+ export default class QueuePublish extends Command {
22
+ static description: string;
23
+ static examples: string[];
24
+ static flags: {
25
+ topic: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
26
+ payload: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
27
+ 'partition-key': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
28
+ 'dedup-key': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
29
+ attribute: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string[], import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
30
+ count: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<number, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
31
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
32
+ };
33
+ run(): Promise<void>;
34
+ }
35
+ //# sourceMappingURL=publish.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../../src/commands/queue/publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAK/F,wGAAwG;AACxG,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAUnF;AAED,iGAAiG;AACjG,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAMnD;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,QAAQ,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,YAAY,GAAG,cAAc,EAAE,CAc1E;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,MAAM,CAKrE;AAED,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,OAAO;IAC/C,MAAM,CAAC,WAAW,SAAkG;IAEpH,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,KAAK;;;;;;;;MAQV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA0B3B"}
@@ -0,0 +1,94 @@
1
+ import { Command, Flags } from '@oclif/core';
2
+ import { WorkQueueEngine } from '@memberjunction/work-queue-engine';
3
+ import { FormatTable } from '../../lib/work-queue/queue-format.js';
4
+ import { OpenWorkQueueSession } from '../../lib/work-queue/queue-session.js';
5
+ /** Turns `key=value` flags into message attributes; the first `=` splits, so values may contain `=`. */
6
+ export function ParseAttributes(pairs) {
7
+ const attributes = {};
8
+ for (const pair of pairs ?? []) {
9
+ const separator = pair.indexOf('=');
10
+ if (separator <= 0) {
11
+ throw new Error(`--attribute expects key=value, got '${pair}'`);
12
+ }
13
+ attributes[pair.slice(0, separator)] = pair.slice(separator + 1);
14
+ }
15
+ return attributes;
16
+ }
17
+ /** Parses the --payload JSON; any JSON value is a legal payload, an object is the useful one. */
18
+ export function ParsePayload(json) {
19
+ try {
20
+ return JSON.parse(json);
21
+ }
22
+ catch (error) {
23
+ throw new Error(`--payload is not valid JSON: ${error instanceof Error ? error.message : String(error)}`);
24
+ }
25
+ }
26
+ /**
27
+ * One request per copy. With --count above 1 each copy carries a `sequence` attribute (1-based) so the copies can
28
+ * be told apart in logs and dead-letter lists; a --dedup-key applies to the first copy only, since the ledger
29
+ * would (correctly) report every later copy as a Duplicate.
30
+ */
31
+ export function BuildPublishRequests(flags) {
32
+ return Array.from({ length: flags.Count }, (_, index) => {
33
+ const request = { Payload: flags.Payload, Attributes: { ...flags.Attributes } };
34
+ if (flags.Count > 1) {
35
+ request.Attributes = { ...request.Attributes, sequence: String(index + 1) };
36
+ }
37
+ if (flags.PartitionKey !== undefined) {
38
+ request.PartitionKey = flags.PartitionKey;
39
+ }
40
+ if (flags.DedupKey !== undefined && index === 0) {
41
+ request.DeduplicationKey = flags.DedupKey;
42
+ }
43
+ return request;
44
+ });
45
+ }
46
+ export function FormatPublishResults(results) {
47
+ return FormatTable(['#', 'Message ID', 'Status', 'Error'], results.map((result, index) => [String(index + 1), result.MessageID, result.Status, result.Error ? `${result.Error.Code}: ${result.Error.Message}` : '']));
48
+ }
49
+ export default class QueuePublish extends Command {
50
+ static { this.description = 'Publish messages to a work-queue topic from this machine through MJ code (no API key needed)'; }
51
+ static { this.examples = [
52
+ '<%= config.bin %> <%= command.id %> --topic samples.hello --payload \'{"name":"Paul"}\'',
53
+ '<%= config.bin %> <%= command.id %> --topic samples.hello --payload \'{"sleepMs":60000}\' --partition-key customer-42',
54
+ '<%= config.bin %> <%= command.id %> --topic samples.hello --count 5 --partition-key k1 --attribute source=demo',
55
+ ]; }
56
+ static { this.flags = {
57
+ topic: Flags.string({ char: 't', description: 'Topic name', required: true }),
58
+ payload: Flags.string({ char: 'p', description: 'Message payload as JSON', default: '{}' }),
59
+ 'partition-key': Flags.string({ char: 'k', description: 'PartitionKey for Exclusive / Ordered subscriptions' }),
60
+ 'dedup-key': Flags.string({ description: 'DeduplicationKey: a repeat within the topic TTL is reported as Duplicate' }),
61
+ attribute: Flags.string({ char: 'a', description: 'Message attribute as key=value (repeatable)', multiple: true }),
62
+ count: Flags.integer({ char: 'n', description: 'How many copies to publish in one batch', default: 1, min: 1 }),
63
+ json: Flags.boolean({ description: 'Print the publish results as JSON', default: false }),
64
+ }; }
65
+ async run() {
66
+ const { flags } = await this.parse(QueuePublish);
67
+ const requests = BuildPublishRequests({
68
+ Payload: ParsePayload(flags.payload), PartitionKey: flags['partition-key'], DedupKey: flags['dedup-key'],
69
+ Attributes: ParseAttributes(flags.attribute), Count: flags.count,
70
+ });
71
+ const session = await OpenWorkQueueSession();
72
+ let failure = null;
73
+ let rejected = 0;
74
+ try {
75
+ await WorkQueueEngine.Instance.Config(false, session.User, session.Provider);
76
+ const results = await WorkQueueEngine.Instance.PublishAs(flags.topic, requests, { ContextUser: session.User });
77
+ rejected = results.filter(result => result.Status === 'Rejected').length;
78
+ this.log(flags.json ? JSON.stringify(results, null, 2) : FormatPublishResults(results));
79
+ }
80
+ catch (error) {
81
+ failure = error instanceof Error ? error.message : String(error);
82
+ }
83
+ finally {
84
+ await session.Close();
85
+ }
86
+ if (failure) {
87
+ this.error(failure, { exit: 1 });
88
+ }
89
+ if (rejected > 0) {
90
+ this.error(`${rejected} of ${requests.length} message(s) were rejected`, { exit: 1 });
91
+ }
92
+ }
93
+ }
94
+ //# sourceMappingURL=publish.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../src/commands/queue/publish.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { Command } from '@oclif/core';
2
+ export default class QueueReplay extends Command {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ subscription: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
7
+ delivery: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
8
+ note: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
9
+ };
10
+ run(): Promise<void>;
11
+ }
12
+ //# sourceMappingURL=replay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../../../src/commands/queue/replay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAK7C,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,OAAO;IAC9C,MAAM,CAAC,WAAW,SAAkD;IAEpE,MAAM,CAAC,QAAQ,WAAmH;IAElI,MAAM,CAAC,KAAK;;;;MAIV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAwB3B"}