spectrum-ts 1.17.0 → 1.17.1

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/authoring.js CHANGED
@@ -1,23 +1,24 @@
1
+ import { createRequire as __spectrumCreateRequire } from "node:module"; const require = __spectrumCreateRequire(import.meta.url);
1
2
  import {
2
3
  asGroup,
3
4
  asRichlink
4
- } from "./chunk-LJM5D2T5.js";
5
+ } from "./chunk-JQN6CRSC.js";
5
6
  import {
6
7
  asVoice
7
- } from "./chunk-5QSNQ6YN.js";
8
+ } from "./chunk-NNY6LMSC.js";
8
9
  import {
9
10
  asPoll,
10
11
  asPollOption
11
- } from "./chunk-KO67KDBD.js";
12
+ } from "./chunk-2D27WW5B.js";
12
13
  import {
13
14
  asContact
14
- } from "./chunk-RNGEA4UW.js";
15
+ } from "./chunk-QGJFZMD5.js";
15
16
  import {
16
17
  asAttachment,
17
18
  asCustom,
18
19
  asReaction,
19
20
  asText
20
- } from "./chunk-FTLJVVH7.js";
21
+ } from "./chunk-2ILTJC35.js";
21
22
  export {
22
23
  asAttachment,
23
24
  asContact,
@@ -1,3 +1,5 @@
1
+ import { createRequire as __spectrumCreateRequire } from "node:module"; const require = __spectrumCreateRequire(import.meta.url);
2
+
1
3
  // src/content/poll.ts
2
4
  import z from "zod";
3
5
  var pollChoiceSchema = z.object({
@@ -1,3 +1,4 @@
1
+ import { createRequire as __spectrumCreateRequire } from "node:module"; const require = __spectrumCreateRequire(import.meta.url);
1
2
  var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -1,18 +1,19 @@
1
+ import { createRequire as __spectrumCreateRequire } from "node:module"; const require = __spectrumCreateRequire(import.meta.url);
1
2
  import {
2
3
  cloud,
3
4
  mergeStreams,
4
5
  stream
5
- } from "./chunk-KYEHKHXT.js";
6
+ } from "./chunk-MC6ZKFSG.js";
6
7
  import {
7
8
  UnsupportedError,
8
9
  definePlatform
9
- } from "./chunk-32H3VVUE.js";
10
+ } from "./chunk-IPOFBAIM.js";
10
11
  import {
11
12
  asAttachment,
12
13
  asCustom,
13
14
  asReaction,
14
15
  asText
15
- } from "./chunk-FTLJVVH7.js";
16
+ } from "./chunk-2ILTJC35.js";
16
17
 
17
18
  // src/providers/slack/index.ts
18
19
  import { createClient as createClient2, staticTokens } from "@photon-ai/slack";
@@ -1,20 +1,21 @@
1
+ import { createRequire as __spectrumCreateRequire } from "node:module"; const require = __spectrumCreateRequire(import.meta.url);
1
2
  import {
2
3
  asVoice
3
- } from "./chunk-5QSNQ6YN.js";
4
+ } from "./chunk-NNY6LMSC.js";
4
5
  import {
5
6
  asContact,
6
7
  fromVCard,
7
8
  toVCard
8
- } from "./chunk-RNGEA4UW.js";
9
+ } from "./chunk-QGJFZMD5.js";
9
10
  import {
10
11
  UnsupportedError,
11
12
  definePlatform
12
- } from "./chunk-32H3VVUE.js";
13
+ } from "./chunk-IPOFBAIM.js";
13
14
  import {
14
15
  asAttachment,
15
16
  asCustom,
16
17
  reactionSchema
17
- } from "./chunk-FTLJVVH7.js";
18
+ } from "./chunk-2ILTJC35.js";
18
19
 
19
20
  // src/providers/terminal/index.ts
20
21
  import { spawn } from "child_process";
@@ -1,24 +1,25 @@
1
+ import { createRequire as __spectrumCreateRequire } from "node:module"; const require = __spectrumCreateRequire(import.meta.url);
1
2
  import {
2
3
  asPollOption
3
- } from "./chunk-KO67KDBD.js";
4
+ } from "./chunk-2D27WW5B.js";
4
5
  import {
5
6
  cloud,
6
7
  mergeStreams,
7
8
  stream
8
- } from "./chunk-KYEHKHXT.js";
9
+ } from "./chunk-MC6ZKFSG.js";
9
10
  import {
10
11
  asContact
11
- } from "./chunk-RNGEA4UW.js";
12
+ } from "./chunk-QGJFZMD5.js";
12
13
  import {
13
14
  UnsupportedError,
14
15
  definePlatform
15
- } from "./chunk-32H3VVUE.js";
16
+ } from "./chunk-IPOFBAIM.js";
16
17
  import {
17
18
  asAttachment,
18
19
  asCustom,
19
20
  asReaction,
20
21
  asText
21
- } from "./chunk-FTLJVVH7.js";
22
+ } from "./chunk-2ILTJC35.js";
22
23
 
23
24
  // src/providers/whatsapp-business/index.ts
24
25
  import { createClient as createClient2 } from "@photon-ai/whatsapp-business";
@@ -1,9 +1,10 @@
1
+ import { createRequire as __spectrumCreateRequire } from "node:module"; const require = __spectrumCreateRequire(import.meta.url);
1
2
  import {
2
3
  fetchUrlBytes,
3
4
  reaction,
4
5
  readSchema,
5
6
  resolveContents
6
- } from "./chunk-FTLJVVH7.js";
7
+ } from "./chunk-2ILTJC35.js";
7
8
 
8
9
  // src/content/avatar.ts
9
10
  import z2 from "zod";
@@ -1,10 +1,11 @@
1
+ import { createRequire as __spectrumCreateRequire } from "node:module"; const require = __spectrumCreateRequire(import.meta.url);
1
2
  import {
2
3
  bufferToStream,
3
4
  fetchUrlBytes,
4
5
  readSchema,
5
6
  resolveContents,
6
7
  streamSchema
7
- } from "./chunk-FTLJVVH7.js";
8
+ } from "./chunk-2ILTJC35.js";
8
9
 
9
10
  // src/content/group.ts
10
11
  import z from "zod";
@@ -1,3 +1,5 @@
1
+ import { createRequire as __spectrumCreateRequire } from "node:module"; const require = __spectrumCreateRequire(import.meta.url);
2
+
1
3
  // src/utils/cloud.ts
2
4
  var SPECTRUM_CLOUD_URL = process.env.SPECTRUM_CLOUD_URL ?? "https://spectrum.photon.codes";
3
5
  var SpectrumCloudError = class extends Error {
@@ -1,9 +1,10 @@
1
+ import { createRequire as __spectrumCreateRequire } from "node:module"; const require = __spectrumCreateRequire(import.meta.url);
1
2
  import {
2
3
  bufferToStream,
3
4
  fetchUrlBytes,
4
5
  readSchema,
5
6
  streamSchema
6
- } from "./chunk-FTLJVVH7.js";
7
+ } from "./chunk-2ILTJC35.js";
7
8
 
8
9
  // src/content/voice.ts
9
10
  import { createReadStream } from "fs";
@@ -1,6 +1,7 @@
1
+ import { createRequire as __spectrumCreateRequire } from "node:module"; const require = __spectrumCreateRequire(import.meta.url);
1
2
  import {
2
3
  readSchema
3
- } from "./chunk-FTLJVVH7.js";
4
+ } from "./chunk-2ILTJC35.js";
4
5
 
5
6
  // src/utils/vcard.ts
6
7
  import vCard from "vcf";
@@ -1,28 +1,29 @@
1
+ import { createRequire as __spectrumCreateRequire } from "node:module"; const require = __spectrumCreateRequire(import.meta.url);
1
2
  import {
2
3
  asGroup,
3
4
  asRichlink,
4
5
  groupSchema
5
- } from "./chunk-LJM5D2T5.js";
6
+ } from "./chunk-JQN6CRSC.js";
6
7
  import {
7
8
  asPoll,
8
9
  asPollOption
9
- } from "./chunk-KO67KDBD.js";
10
+ } from "./chunk-2D27WW5B.js";
10
11
  import {
11
12
  cloud,
12
13
  mergeStreams,
13
14
  stream
14
- } from "./chunk-KYEHKHXT.js";
15
+ } from "./chunk-MC6ZKFSG.js";
15
16
  import {
16
17
  asContact,
17
18
  fromVCard,
18
19
  toVCard
19
- } from "./chunk-RNGEA4UW.js";
20
+ } from "./chunk-QGJFZMD5.js";
20
21
  import {
21
22
  UnsupportedError,
22
23
  buildPhotoAction,
23
24
  definePlatform,
24
25
  photoActionSchema
25
- } from "./chunk-32H3VVUE.js";
26
+ } from "./chunk-IPOFBAIM.js";
26
27
  import {
27
28
  asAttachment,
28
29
  asCustom,
@@ -31,7 +32,7 @@ import {
31
32
  reactionSchema,
32
33
  text,
33
34
  textSchema
34
- } from "./chunk-FTLJVVH7.js";
35
+ } from "./chunk-2ILTJC35.js";
35
36
 
36
37
  // src/providers/imessage/index.ts
37
38
  import { createClient as createClient2, MessageEffect as MessageEffect2 } from "@photon-ai/advanced-imessage";
package/dist/index.d.ts CHANGED
@@ -2645,13 +2645,14 @@ type WebhookHandler = (space: Space, message: Message) => void | Promise<void>;
2645
2645
  /**
2646
2646
  * Raw webhook input for HTTP servers without Web `Request`/`Response` (Express,
2647
2647
  * raw Node). `body` MUST be the exact bytes fusor POSTed — never a re-encoded
2648
- * JSON/text body — so the protobuf decode and the fusor-origin signature check
2649
- * (HMAC over the raw bytes) work. `headers` carry the `X-Spectrum-*` signature
2650
- * headers fusor sets on signed deliveries.
2648
+ * JSON/text body — so the protobuf decode works. `headers` are accepted (so the
2649
+ * natural `{ headers: req.headers, body: req.body }` shape keeps working) but are
2650
+ * not read: inbound authenticity is established by the per-platform `verify()`,
2651
+ * which reads the inner request reconstructed from the envelope.
2651
2652
  */
2652
2653
  interface WebhookRawRequest {
2653
2654
  body: Uint8Array | ArrayBuffer;
2654
- headers: Record<string, string>;
2655
+ headers?: Record<string, string>;
2655
2656
  }
2656
2657
  /** Raw webhook result, written back by the caller as the HTTP response. */
2657
2658
  interface WebhookRawResult {
@@ -2802,7 +2803,6 @@ declare function Spectrum<const Providers extends PlatformProviderConfig[]>(opti
2802
2803
  providers: [...Providers];
2803
2804
  options?: SpectrumOptions;
2804
2805
  telemetry?: boolean;
2805
- webhookSecret?: string;
2806
2806
  }): Promise<SpectrumInstance<Providers> & {
2807
2807
  readonly config: ProjectData;
2808
2808
  }>;
@@ -2812,7 +2812,6 @@ declare function Spectrum<const Providers extends PlatformProviderConfig[]>(opti
2812
2812
  providers: [...Providers];
2813
2813
  options?: SpectrumOptions;
2814
2814
  telemetry?: boolean;
2815
- webhookSecret?: string;
2816
2815
  }): Promise<SpectrumInstance<Providers>>;
2817
2816
 
2818
2817
  type UnsupportedKind = "content" | "action";
package/dist/index.js CHANGED
@@ -1,14 +1,15 @@
1
+ import { createRequire as __spectrumCreateRequire } from "node:module"; const require = __spectrumCreateRequire(import.meta.url);
1
2
  import {
2
3
  group,
3
4
  richlink
4
- } from "./chunk-LJM5D2T5.js";
5
+ } from "./chunk-JQN6CRSC.js";
5
6
  import {
6
7
  voice
7
- } from "./chunk-5QSNQ6YN.js";
8
+ } from "./chunk-NNY6LMSC.js";
8
9
  import {
9
10
  option,
10
11
  poll
11
- } from "./chunk-KO67KDBD.js";
12
+ } from "./chunk-2D27WW5B.js";
12
13
  import {
13
14
  SpectrumCloudError,
14
15
  broadcast,
@@ -16,12 +17,12 @@ import {
16
17
  createAsyncQueue,
17
18
  mergeStreams,
18
19
  stream
19
- } from "./chunk-KYEHKHXT.js";
20
+ } from "./chunk-MC6ZKFSG.js";
20
21
  import {
21
22
  contact,
22
23
  fromVCard,
23
24
  toVCard
24
- } from "./chunk-RNGEA4UW.js";
25
+ } from "./chunk-QGJFZMD5.js";
25
26
  import {
26
27
  UnsupportedError,
27
28
  avatar,
@@ -35,7 +36,7 @@ import {
35
36
  senderAttrs,
36
37
  typing,
37
38
  wrapProviderMessage
38
- } from "./chunk-32H3VVUE.js";
39
+ } from "./chunk-IPOFBAIM.js";
39
40
  import {
40
41
  __commonJS,
41
42
  __esm,
@@ -48,7 +49,7 @@ import {
48
49
  reaction,
49
50
  resolveContents,
50
51
  text
51
- } from "./chunk-FTLJVVH7.js";
52
+ } from "./chunk-2ILTJC35.js";
52
53
 
53
54
  // ../../node_modules/@grpc/grpc-js/build/src/constants.js
54
55
  var require_constants = __commonJS({
@@ -27500,33 +27501,6 @@ var FusorCore = class {
27500
27501
  }
27501
27502
  };
27502
27503
 
27503
- // src/fusor/origin.ts
27504
- import { createHmac, timingSafeEqual } from "crypto";
27505
- var SIGNATURE_HEADER = "x-spectrum-signature";
27506
- var TIMESTAMP_HEADER = "x-spectrum-timestamp";
27507
- var SIGNATURE_PREFIX = "v0=";
27508
- var stripPrefix = (value) => value.startsWith(SIGNATURE_PREFIX) ? value.slice(SIGNATURE_PREFIX.length) : value;
27509
- var safeEqualHex = (a, b) => {
27510
- const left = Buffer.from(a, "hex");
27511
- const right = Buffer.from(b, "hex");
27512
- if (left.length === 0 || left.length !== right.length) {
27513
- return false;
27514
- }
27515
- return timingSafeEqual(left, right);
27516
- };
27517
- var verifyFusorSignature = (secret, headers, body) => {
27518
- const timestamp = headers[TIMESTAMP_HEADER];
27519
- const signature = headers[SIGNATURE_HEADER];
27520
- if (!(timestamp && signature)) {
27521
- throw new Error("fusor webhook is missing X-Spectrum-* signature headers");
27522
- }
27523
- const base = Buffer.concat([Buffer.from(`v0:${timestamp}:`, "utf8"), body]);
27524
- const expected = SIGNATURE_PREFIX + createHmac("sha256", secret).update(base).digest("hex");
27525
- if (!safeEqualHex(stripPrefix(expected), stripPrefix(signature))) {
27526
- throw new Error("fusor webhook signature mismatch");
27527
- }
27528
- };
27529
-
27530
27504
  // src/utils/store.ts
27531
27505
  var isRecordObject = (value) => {
27532
27506
  if (typeof value !== "object" || value === null || Array.isArray(value)) {
@@ -27595,16 +27569,14 @@ var spectrumConfigSchema = z.union([
27595
27569
  projectSecret: z.string().min(1),
27596
27570
  providers: z.array(z.custom()),
27597
27571
  options: spectrumOptionsSchema,
27598
- telemetry: z.boolean().optional(),
27599
- webhookSecret: z.string().min(1).optional()
27572
+ telemetry: z.boolean().optional()
27600
27573
  }),
27601
27574
  z.object({
27602
27575
  projectId: z.undefined().optional(),
27603
27576
  projectSecret: z.undefined().optional(),
27604
27577
  providers: z.array(z.custom()),
27605
27578
  options: spectrumOptionsSchema,
27606
- telemetry: z.boolean().optional(),
27607
- webhookSecret: z.string().min(1).optional()
27579
+ telemetry: z.boolean().optional()
27608
27580
  })
27609
27581
  ]);
27610
27582
  function bootstrapTelemetry(opts) {
@@ -27634,8 +27606,7 @@ async function Spectrum(options) {
27634
27606
  projectSecret,
27635
27607
  providers,
27636
27608
  options: runtimeOptions,
27637
- telemetry,
27638
- webhookSecret
27609
+ telemetry
27639
27610
  } = options;
27640
27611
  const flattenGroups = runtimeOptions?.flattenGroups ?? false;
27641
27612
  const otelHandle = telemetry ? bootstrapTelemetry({ projectId, projectSecret }) : void 0;
@@ -28002,23 +27973,14 @@ async function Spectrum(options) {
28002
27973
  };
28003
27974
  const readWebhookInput = async (request) => {
28004
27975
  if (typeof Request !== "undefined" && request instanceof Request) {
28005
- const headers2 = {};
28006
- request.headers.forEach((value, key) => {
28007
- headers2[key.toLowerCase()] = value;
28008
- });
28009
27976
  return {
28010
27977
  asWeb: true,
28011
- bodyBytes: new Uint8Array(await request.arrayBuffer()),
28012
- headers: headers2
27978
+ bodyBytes: new Uint8Array(await request.arrayBuffer())
28013
27979
  };
28014
27980
  }
28015
27981
  const raw = request;
28016
27982
  const bodyBytes = raw.body instanceof ArrayBuffer ? new Uint8Array(raw.body) : raw.body;
28017
- const headers = {};
28018
- for (const [key, value] of Object.entries(raw.headers ?? {})) {
28019
- headers[key.toLowerCase()] = value;
28020
- }
28021
- return { asWeb: false, bodyBytes, headers };
27983
+ return { asWeb: false, bodyBytes };
28022
27984
  };
28023
27985
  const deliverWebhookMessages = async (collected, runtime, handler, event) => {
28024
27986
  for (const record of collected) {
@@ -28040,12 +28002,6 @@ async function Spectrum(options) {
28040
28002
  }
28041
28003
  }
28042
28004
  };
28043
- const assertFusorOrigin = (bodyBytes, headers) => {
28044
- if (!webhookSecret) {
28045
- return;
28046
- }
28047
- verifyFusorSignature(webhookSecret, headers, bodyBytes);
28048
- };
28049
28005
  const decodeWebhookEvent = (bodyBytes) => {
28050
28006
  try {
28051
28007
  return RawInboundEvent2.decode(bodyBytes);
@@ -28096,19 +28052,7 @@ async function Spectrum(options) {
28096
28052
  "spectrum.webhook() requires at least one fusor provider; none are configured"
28097
28053
  );
28098
28054
  }
28099
- const { asWeb, bodyBytes, headers } = await readWebhookInput(request);
28100
- try {
28101
- assertFusorOrigin(bodyBytes, headers);
28102
- } catch (error) {
28103
- lifecycleLog.warn("spectrum.webhook: fusor origin verification failed", {
28104
- error: error instanceof Error ? error.message : String(error)
28105
- });
28106
- return buildWebhookResult(asWeb, {
28107
- status: 401,
28108
- headers: {},
28109
- body: new Uint8Array(0)
28110
- });
28111
- }
28055
+ const { asWeb, bodyBytes } = await readWebhookInput(request);
28112
28056
  const event = decodeWebhookEvent(bodyBytes);
28113
28057
  if (!event) {
28114
28058
  return buildWebhookResult(asWeb, {
@@ -1,15 +1,16 @@
1
+ import { createRequire as __spectrumCreateRequire } from "node:module"; const require = __spectrumCreateRequire(import.meta.url);
1
2
  import {
2
3
  background,
3
4
  effect,
4
5
  imessage,
5
6
  read
6
- } from "../../chunk-DK4P2SHC.js";
7
- import "../../chunk-LJM5D2T5.js";
8
- import "../../chunk-KO67KDBD.js";
9
- import "../../chunk-KYEHKHXT.js";
10
- import "../../chunk-RNGEA4UW.js";
11
- import "../../chunk-32H3VVUE.js";
12
- import "../../chunk-FTLJVVH7.js";
7
+ } from "../../chunk-YJMPSD3S.js";
8
+ import "../../chunk-JQN6CRSC.js";
9
+ import "../../chunk-2D27WW5B.js";
10
+ import "../../chunk-MC6ZKFSG.js";
11
+ import "../../chunk-QGJFZMD5.js";
12
+ import "../../chunk-IPOFBAIM.js";
13
+ import "../../chunk-2ILTJC35.js";
13
14
  export {
14
15
  background,
15
16
  effect,
@@ -1,22 +1,23 @@
1
+ import { createRequire as __spectrumCreateRequire } from "node:module"; const require = __spectrumCreateRequire(import.meta.url);
1
2
  import {
2
3
  imessage
3
- } from "../chunk-DK4P2SHC.js";
4
- import "../chunk-LJM5D2T5.js";
4
+ } from "../chunk-YJMPSD3S.js";
5
+ import "../chunk-JQN6CRSC.js";
5
6
  import {
6
7
  slack
7
- } from "../chunk-Y4CZ5JFD.js";
8
+ } from "../chunk-3OTECDNH.js";
8
9
  import {
9
10
  terminal
10
- } from "../chunk-6NGVREPQ.js";
11
- import "../chunk-5QSNQ6YN.js";
11
+ } from "../chunk-5BKZJMZV.js";
12
+ import "../chunk-NNY6LMSC.js";
12
13
  import {
13
14
  whatsappBusiness
14
- } from "../chunk-GHERTIUM.js";
15
- import "../chunk-KO67KDBD.js";
16
- import "../chunk-KYEHKHXT.js";
17
- import "../chunk-RNGEA4UW.js";
18
- import "../chunk-32H3VVUE.js";
19
- import "../chunk-FTLJVVH7.js";
15
+ } from "../chunk-5TIF3FIE.js";
16
+ import "../chunk-2D27WW5B.js";
17
+ import "../chunk-MC6ZKFSG.js";
18
+ import "../chunk-QGJFZMD5.js";
19
+ import "../chunk-IPOFBAIM.js";
20
+ import "../chunk-2ILTJC35.js";
20
21
  export {
21
22
  imessage,
22
23
  slack,
@@ -1,9 +1,10 @@
1
+ import { createRequire as __spectrumCreateRequire } from "node:module"; const require = __spectrumCreateRequire(import.meta.url);
1
2
  import {
2
3
  slack
3
- } from "../../chunk-Y4CZ5JFD.js";
4
- import "../../chunk-KYEHKHXT.js";
5
- import "../../chunk-32H3VVUE.js";
6
- import "../../chunk-FTLJVVH7.js";
4
+ } from "../../chunk-3OTECDNH.js";
5
+ import "../../chunk-MC6ZKFSG.js";
6
+ import "../../chunk-IPOFBAIM.js";
7
+ import "../../chunk-2ILTJC35.js";
7
8
  export {
8
9
  slack
9
10
  };
@@ -1,10 +1,11 @@
1
+ import { createRequire as __spectrumCreateRequire } from "node:module"; const require = __spectrumCreateRequire(import.meta.url);
1
2
  import {
2
3
  terminal
3
- } from "../../chunk-6NGVREPQ.js";
4
- import "../../chunk-5QSNQ6YN.js";
5
- import "../../chunk-RNGEA4UW.js";
6
- import "../../chunk-32H3VVUE.js";
7
- import "../../chunk-FTLJVVH7.js";
4
+ } from "../../chunk-5BKZJMZV.js";
5
+ import "../../chunk-NNY6LMSC.js";
6
+ import "../../chunk-QGJFZMD5.js";
7
+ import "../../chunk-IPOFBAIM.js";
8
+ import "../../chunk-2ILTJC35.js";
8
9
  export {
9
10
  terminal
10
11
  };
@@ -1,11 +1,12 @@
1
+ import { createRequire as __spectrumCreateRequire } from "node:module"; const require = __spectrumCreateRequire(import.meta.url);
1
2
  import {
2
3
  whatsappBusiness
3
- } from "../../chunk-GHERTIUM.js";
4
- import "../../chunk-KO67KDBD.js";
5
- import "../../chunk-KYEHKHXT.js";
6
- import "../../chunk-RNGEA4UW.js";
7
- import "../../chunk-32H3VVUE.js";
8
- import "../../chunk-FTLJVVH7.js";
4
+ } from "../../chunk-5TIF3FIE.js";
5
+ import "../../chunk-2D27WW5B.js";
6
+ import "../../chunk-MC6ZKFSG.js";
7
+ import "../../chunk-QGJFZMD5.js";
8
+ import "../../chunk-IPOFBAIM.js";
9
+ import "../../chunk-2ILTJC35.js";
9
10
  export {
10
11
  whatsappBusiness
11
12
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spectrum-ts",
3
- "version": "1.17.0",
3
+ "version": "1.17.1",
4
4
  "description": "Bring agents to any interface — unified messaging SDK for TypeScript.",
5
5
  "repository": {
6
6
  "type": "git",