hobots 5.1.0 → 5.2.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.
package/dist/index.d.cts CHANGED
@@ -272,7 +272,8 @@ interface RunItemOptions extends RunItemImageOptions {
272
272
  /**
273
273
  * O item em processamento dentro de `items.each`: o desfecho (`succeeded`/`failed`/
274
274
  * `occurrence`) com o `id` e o payload base já resolvidos, e o handle `step` da etapa do
275
- * item (`warning`/`image`/`data`). Sub-etapas: `hobots.step(...)` dentro do handler já
275
+ * item (`warning`/`image`/`data`), e `data(...)` para ir guardando o payload do item sem
276
+ * decidir o desfecho. Sub-etapas: `hobots.step(...)` dentro do handler já
276
277
  * aninha na etapa do item. Sem chamada explícita, o SDK decide: retornou → `succeeded`;
277
278
  * lançou → `failed` com a mensagem do erro.
278
279
  */
@@ -289,7 +290,14 @@ interface RunItemHandle {
289
290
  readonly status: RunItemStatus | undefined;
290
291
  /** Tentativa em curso (1-based) — o handler pode ler para logar. */
291
292
  readonly attempt: number;
292
- /** Item processado com sucesso. `payload` é mesclado sobre o payload base de `options.payload`. */
293
+ /**
294
+ * Guarda atributos do item sem registrar desfecho — vai mesclando a cada chamada (chave repetida:
295
+ * a última vence). Entra em qualquer desfecho, inclusive nos implícitos (handler retornou →
296
+ * `succeeded`; lançou → `failed`), entre o payload base de `options.payload` e o payload da
297
+ * chamada de desfecho. Uma nova tentativa começa do zero. Depois do desfecho só acumula: nada é reenviado.
298
+ */
299
+ data(payload: Record<string, unknown>): void;
300
+ /** Item processado com sucesso. `payload` é mesclado sobre o payload base e o de `item.data`. */
293
301
  succeeded(payload?: Record<string, unknown>, options?: RunItemImageOptions): void;
294
302
  /** Falha sem lançar — o loop segue igual; a etapa vira `error` com o motivo. A imagem vai no item. */
295
303
  failed(message: string, payload?: Record<string, unknown>, options?: RunItemImageOptions): void;
package/dist/index.d.ts CHANGED
@@ -272,7 +272,8 @@ interface RunItemOptions extends RunItemImageOptions {
272
272
  /**
273
273
  * O item em processamento dentro de `items.each`: o desfecho (`succeeded`/`failed`/
274
274
  * `occurrence`) com o `id` e o payload base já resolvidos, e o handle `step` da etapa do
275
- * item (`warning`/`image`/`data`). Sub-etapas: `hobots.step(...)` dentro do handler já
275
+ * item (`warning`/`image`/`data`), e `data(...)` para ir guardando o payload do item sem
276
+ * decidir o desfecho. Sub-etapas: `hobots.step(...)` dentro do handler já
276
277
  * aninha na etapa do item. Sem chamada explícita, o SDK decide: retornou → `succeeded`;
277
278
  * lançou → `failed` com a mensagem do erro.
278
279
  */
@@ -289,7 +290,14 @@ interface RunItemHandle {
289
290
  readonly status: RunItemStatus | undefined;
290
291
  /** Tentativa em curso (1-based) — o handler pode ler para logar. */
291
292
  readonly attempt: number;
292
- /** Item processado com sucesso. `payload` é mesclado sobre o payload base de `options.payload`. */
293
+ /**
294
+ * Guarda atributos do item sem registrar desfecho — vai mesclando a cada chamada (chave repetida:
295
+ * a última vence). Entra em qualquer desfecho, inclusive nos implícitos (handler retornou →
296
+ * `succeeded`; lançou → `failed`), entre o payload base de `options.payload` e o payload da
297
+ * chamada de desfecho. Uma nova tentativa começa do zero. Depois do desfecho só acumula: nada é reenviado.
298
+ */
299
+ data(payload: Record<string, unknown>): void;
300
+ /** Item processado com sucesso. `payload` é mesclado sobre o payload base e o de `item.data`. */
293
301
  succeeded(payload?: Record<string, unknown>, options?: RunItemImageOptions): void;
294
302
  /** Falha sem lançar — o loop segue igual; a etapa vira `error` com o motivo. A imagem vai no item. */
295
303
  failed(message: string, payload?: Record<string, unknown>, options?: RunItemImageOptions): void;
package/dist/index.js CHANGED
@@ -4,7 +4,7 @@ import {
4
4
 
5
5
  // src/utils.ts
6
6
  var SDK_NAME = "hobots";
7
- var SDK_VERSION = true ? "5.1.0" : "0.0.0-dev";
7
+ var SDK_VERSION = true ? "5.2.0" : "0.0.0-dev";
8
8
  function isNode() {
9
9
  return typeof process !== "undefined" && typeof process.versions?.node === "string";
10
10
  }
@@ -1873,6 +1873,10 @@ var ItemHandle = class {
1873
1873
  reported = false;
1874
1874
  status;
1875
1875
  attempt = 1;
1876
+ accumulated = {};
1877
+ data(payload) {
1878
+ Object.assign(this.accumulated, payload);
1879
+ }
1876
1880
  succeeded(payload, options) {
1877
1881
  this.record("succeeded", void 0, payload, options?.image);
1878
1882
  }
@@ -1889,6 +1893,7 @@ var ItemHandle = class {
1889
1893
  this.attempt = attempt;
1890
1894
  this.reported = false;
1891
1895
  this.status = void 0;
1896
+ this.accumulated = {};
1892
1897
  if (this.step && (this.step.status === "error" || this.step.status === "warning")) {
1893
1898
  this.step._setStatus("ok");
1894
1899
  this.step._deleteData("message");
@@ -1897,7 +1902,7 @@ var ItemHandle = class {
1897
1902
  record(status, message, payload, image3) {
1898
1903
  this.reported = true;
1899
1904
  this.status = status;
1900
- const merged = { ...this.basePayload ?? {}, ...payload ?? {} };
1905
+ const merged = { ...this.basePayload ?? {}, ...this.accumulated, ...payload ?? {} };
1901
1906
  this.sink.report(status, message, Object.keys(merged).length > 0 ? merged : void 0, this.id, image3);
1902
1907
  }
1903
1908
  };