@jr200-labs/xstate-nats 0.9.11 → 0.9.13

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.
@@ -1 +1 @@
1
- {"version":3,"file":"kv.d.ts","sourceRoot":"","sources":["../../src/machines/kv.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE7E,OAAO,EAAqB,oBAAoB,EAAsB,MAAM,eAAe,CAAA;AAG3F,KAAK,cAAc,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAA;AAGrD,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,cAAc,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAC3B;IACE,IAAI,EAAE,gBAAgB,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,GAAG;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,IAAI,CAAA;CACrE,GACD;IACE,IAAI,EAAE,kBAAkB,CAAA;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAA;KAAE,GAAG;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,IAAI,CAAA;CAC5E,GACD;IACE,IAAI,EAAE,kBAAkB,CAAA;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAA;KAAE,GAAG;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,IAAI,CAAA;CAC5E,GACD;IACE,IAAI,EAAE,QAAQ,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,GAAG;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,IAAI,CAAA;CAC9D,GACD;IACE,IAAI,EAAE,QAAQ,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,GAAG,CAAA;IACV,QAAQ,EAAE,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,IAAI,CAAA;CAC5D,GACD;IACE,IAAI,EAAE,WAAW,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,IAAI,CAAA;CAC5D,GACD;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,oBAAoB,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,oBAAoB,CAAA;CAAE,CAAA;AAElC,MAAM,MAAM,MAAM,GAAG,cAAc,GAAG,cAAc,CAAA;AAEpD,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,gBAAgB,EAAE,cAAc,GAAG,IAAI,CAAA;IACvC,SAAS,EAAE,GAAG,GAAG,IAAI,CAAA;IACrB,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC,CAAA;IACxD,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;IACtD,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AACD,eAAO,MAAM,cAAc;UArDf,YAAY;gBAAc,cAAc;;UACxC,cAAc;;UACd,iBAAiB;;UAEjB,gBAAgB;aACb,MAAM;cACL,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,GAAG;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,IAAI;;UAG9D,kBAAkB;YAChB,MAAM;cACJ,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAA;KAAE,GAAG;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,IAAI;;UAGrE,kBAAkB;YAChB,MAAM;cACJ,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAA;KAAE,GAAG;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,IAAI;;UAGrE,QAAQ;YACN,MAAM;SACT,MAAM;cACD,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,GAAG;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,IAAI;;UAGvD,QAAQ;YACN,MAAM;SACT,MAAM;WACJ,GAAG;cACA,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,IAAI;;UAGrD,WAAW;YACT,MAAM;SACT,MAAM;cACD,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,IAAI;;UAErD,cAAc;YAAU,oBAAoB;;UAC5C,gBAAgB;YAAU,MAAM;SAAO,MAAM;;UAC7C,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoR9B,CAAA"}
1
+ {"version":3,"file":"kv.d.ts","sourceRoot":"","sources":["../../src/machines/kv.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE7E,OAAO,EAAqB,oBAAoB,EAAsB,MAAM,eAAe,CAAA;AAG3F,KAAK,cAAc,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAA;AAGrD,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,cAAc,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAC3B;IACE,IAAI,EAAE,gBAAgB,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,GAAG;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,IAAI,CAAA;CACrE,GACD;IACE,IAAI,EAAE,kBAAkB,CAAA;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAA;KAAE,GAAG;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,IAAI,CAAA;CAC5E,GACD;IACE,IAAI,EAAE,kBAAkB,CAAA;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAA;KAAE,GAAG;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,IAAI,CAAA;CAC5E,GACD;IACE,IAAI,EAAE,QAAQ,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,GAAG;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,IAAI,CAAA;CAC9D,GACD;IACE,IAAI,EAAE,QAAQ,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,GAAG,CAAA;IACV,QAAQ,EAAE,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,IAAI,CAAA;CAC5D,GACD;IACE,IAAI,EAAE,WAAW,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,IAAI,CAAA;CAC5D,GACD;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,oBAAoB,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,oBAAoB,CAAA;CAAE,CAAA;AAElC,MAAM,MAAM,MAAM,GAAG,cAAc,GAAG,cAAc,CAAA;AAEpD,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,gBAAgB,EAAE,cAAc,GAAG,IAAI,CAAA;IACvC,SAAS,EAAE,GAAG,GAAG,IAAI,CAAA;IACrB,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC,CAAA;IACxD,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;IACtD,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AACD,eAAO,MAAM,cAAc;UArDf,YAAY;gBAAc,cAAc;;UACxC,cAAc;;UACd,iBAAiB;;UAEjB,gBAAgB;aACb,MAAM;cACL,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,GAAG;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,IAAI;;UAG9D,kBAAkB;YAChB,MAAM;cACJ,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAA;KAAE,GAAG;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,IAAI;;UAGrE,kBAAkB;YAChB,MAAM;cACJ,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAA;KAAE,GAAG;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,IAAI;;UAGrE,QAAQ;YACN,MAAM;SACT,MAAM;cACD,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,GAAG;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,IAAI;;UAGvD,QAAQ;YACN,MAAM;SACT,MAAM;WACJ,GAAG;cACA,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,IAAI;;UAGrD,WAAW;YACT,MAAM;SACT,MAAM;cACD,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,IAAI;;UAErD,cAAc;YAAU,oBAAoB;;UAC5C,gBAAgB;YAAU,MAAM;SAAO,MAAM;;UAC7C,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0T9B,CAAA"}
@@ -63,6 +63,7 @@ export const kvManagerLogic = setup({
63
63
  states: {
64
64
  kv_idle: {
65
65
  on: {
66
+ 'KV.DISCONNECTED': {},
66
67
  'KV.CONNECT': {
67
68
  target: 'kv_check_sync',
68
69
  actions: [
@@ -75,16 +76,21 @@ export const kvManagerLogic = setup({
75
76
  },
76
77
  },
77
78
  kv_disconnecting: {
78
- target: 'kv_idle',
79
79
  entry: [
80
80
  // dont close the connection here, it will be closed by the nats connection machine
81
81
  assign({
82
82
  cachedConnection: null,
83
83
  cachedKvm: null,
84
84
  subscriptions: new Map(),
85
+ syncRequired: ({ context }) => context.subscriptionConfigs.size > 0
86
+ ? Math.max(context.syncRequired, 1)
87
+ : context.syncRequired,
85
88
  }),
86
89
  sendParent({ type: 'KV.DISCONNECTED' }),
87
90
  ],
91
+ always: {
92
+ target: 'kv_idle',
93
+ },
88
94
  },
89
95
  kv_connected: {
90
96
  entry: [sendParent({ type: 'KV.CONNECTED' })],
@@ -93,6 +99,18 @@ export const kvManagerLogic = setup({
93
99
  guard: 'hasPendingSync',
94
100
  },
95
101
  on: {
102
+ 'KV.CONNECT': {
103
+ target: 'kv_check_sync',
104
+ actions: [
105
+ assign({
106
+ cachedConnection: ({ event }) => event.connection,
107
+ cachedKvm: ({ event }) => new Kvm(event.connection),
108
+ }),
109
+ ],
110
+ },
111
+ 'KV.DISCONNECTED': {
112
+ target: 'kv_disconnecting',
113
+ },
96
114
  'KV.BUCKET_LIST': {
97
115
  actions: async ({ context, event }) => {
98
116
  try {
@@ -211,6 +229,11 @@ export const kvManagerLogic = setup({
211
229
  },
212
230
  },
213
231
  kv_check_sync: {
232
+ on: {
233
+ 'KV.DISCONNECTED': {
234
+ target: 'kv_disconnecting',
235
+ },
236
+ },
214
237
  always: [
215
238
  {
216
239
  target: 'kv_syncing',
@@ -222,6 +245,11 @@ export const kvManagerLogic = setup({
222
245
  ],
223
246
  },
224
247
  kv_syncing: {
248
+ on: {
249
+ 'KV.DISCONNECTED': {
250
+ target: 'kv_disconnecting',
251
+ },
252
+ },
225
253
  entry: [
226
254
  ({ context }) => {
227
255
  // either going to be 0 or 1 (if there were multiple syncs pending)
@@ -263,8 +291,17 @@ export const kvManagerLogic = setup({
263
291
  },
264
292
  kv_error: {
265
293
  on: {
294
+ 'KV.DISCONNECTED': {
295
+ target: 'kv_disconnecting',
296
+ },
266
297
  'KV.CONNECT': {
267
298
  target: 'kv_check_sync',
299
+ actions: [
300
+ assign({
301
+ cachedConnection: ({ event }) => event.connection,
302
+ cachedKvm: ({ event }) => new Kvm(event.connection),
303
+ }),
304
+ ],
268
305
  },
269
306
  },
270
307
  },
@@ -1 +1 @@
1
- {"version":3,"file":"kv.js","sourceRoot":"","sources":["../../src/machines/kv.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kv.js","sourceRoot":"","sources":["../../src/machines/kv.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"subject.d.ts","sourceRoot":"","sources":["../../src/machines/subject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEjG,OAAO,EACL,aAAa,EACb,yBAAyB,EAI1B,MAAM,oBAAoB,CAAA;AAG3B,KAAK,cAAc,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAA;AAGrD,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,UAAU,EAAE,cAAc,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,mBAAmB,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,sBAAsB,CAAA;CAAE,GAChC;IACE,IAAI,EAAE,iBAAiB,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,GAAG,CAAA;IACZ,IAAI,CAAC,EAAE,cAAc,CAAA;IACrB,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,IAAI,CAAA;CAC/E,GACD;IACE,IAAI,EAAE,iBAAiB,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,GAAG,CAAA;IACZ,IAAI,CAAC,EAAE,cAAc,CAAA;IACrB,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAA;IAC7B,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAA;CAClD,GACD;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,MAAM,EAAE,yBAAyB,CAAA;CAAE,GAChE;IAAE,IAAI,EAAE,qBAAqB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,yBAAyB,CAAA;CAAE,CAAA;AAEvC,MAAM,MAAM,MAAM,GAAG,cAAc,GAAG,cAAc,CAAA;AAEpD,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,gBAAgB,EAAE,cAAc,GAAG,IAAI,CAAA;IACvC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACxC,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAA;IAC3D,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED,eAAO,MAAM,mBAAmB;UAjCpB,iBAAiB;gBAAc,cAAc;;UAC7C,mBAAmB;;UACnB,sBAAsB;;UAEtB,iBAAiB;aACd,MAAM;aACN,GAAG;WACL,cAAc;sBACH,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,IAAI;;UAGxE,iBAAiB;aACd,MAAM;aACN,GAAG;WACL,cAAc;cACX,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI;sBACX,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI;;UAE3C,mBAAmB;YAAU,yBAAyB;;UACtD,qBAAqB;aAAW,MAAM;;UACtC,yBAAyB;;;;;;;;;;;;;EA4KnC,CAAA"}
1
+ {"version":3,"file":"subject.d.ts","sourceRoot":"","sources":["../../src/machines/subject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEjG,OAAO,EACL,aAAa,EACb,yBAAyB,EAI1B,MAAM,oBAAoB,CAAA;AAG3B,KAAK,cAAc,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAA;AAGrD,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,UAAU,EAAE,cAAc,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,mBAAmB,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,sBAAsB,CAAA;CAAE,GAChC;IACE,IAAI,EAAE,iBAAiB,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,GAAG,CAAA;IACZ,IAAI,CAAC,EAAE,cAAc,CAAA;IACrB,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,IAAI,CAAA;CAC/E,GACD;IACE,IAAI,EAAE,iBAAiB,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,GAAG,CAAA;IACZ,IAAI,CAAC,EAAE,cAAc,CAAA;IACrB,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAA;IAC7B,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAA;CAClD,GACD;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,MAAM,EAAE,yBAAyB,CAAA;CAAE,GAChE;IAAE,IAAI,EAAE,qBAAqB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,yBAAyB,CAAA;CAAE,CAAA;AAEvC,MAAM,MAAM,MAAM,GAAG,cAAc,GAAG,cAAc,CAAA;AAEpD,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,gBAAgB,EAAE,cAAc,GAAG,IAAI,CAAA;IACvC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACxC,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAA;IAC3D,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED,eAAO,MAAM,mBAAmB;UAjCpB,iBAAiB;gBAAc,cAAc;;UAC7C,mBAAmB;;UACnB,sBAAsB;;UAEtB,iBAAiB;aACd,MAAM;aACN,GAAG;WACL,cAAc;sBACH,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,IAAI;;UAGxE,iBAAiB;aACd,MAAM;aACN,GAAG;WACL,cAAc;cACX,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI;sBACX,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI;;UAE3C,mBAAmB;YAAU,yBAAyB;;UACtD,qBAAqB;aAAW,MAAM;;UACtC,yBAAyB;;;;;;;;;;;;;EAgNnC,CAAA"}
@@ -57,6 +57,7 @@ export const subjectManagerLogic = setup({
57
57
  states: {
58
58
  subject_idle: {
59
59
  on: {
60
+ 'SUBJECT.DISCONNECTED': {},
60
61
  'SUBJECT.CONNECT': {
61
62
  target: 'subject_check_sync',
62
63
  actions: [
@@ -68,15 +69,20 @@ export const subjectManagerLogic = setup({
68
69
  },
69
70
  },
70
71
  subject_disconnecting: {
71
- target: 'subject_idle',
72
72
  entry: [
73
73
  // dont close the connection here, it will be closed by the nats connection machine
74
74
  assign({
75
75
  cachedConnection: null,
76
76
  subscriptions: new Map(),
77
+ syncRequired: ({ context }) => context.subscriptionConfigs.size > 0
78
+ ? Math.max(context.syncRequired, 1)
79
+ : context.syncRequired,
77
80
  }),
78
81
  sendParent({ type: 'SUBJECT.DISCONNECTED' }),
79
82
  ],
83
+ always: {
84
+ target: 'subject_idle',
85
+ },
80
86
  },
81
87
  subject_connected: {
82
88
  entry: [sendParent({ type: 'SUBJECT.CONNECTED' })],
@@ -85,6 +91,17 @@ export const subjectManagerLogic = setup({
85
91
  guard: 'hasPendingSync',
86
92
  },
87
93
  on: {
94
+ 'SUBJECT.CONNECT': {
95
+ target: 'subject_check_sync',
96
+ actions: [
97
+ assign({
98
+ cachedConnection: ({ event }) => event.connection,
99
+ }),
100
+ ],
101
+ },
102
+ 'SUBJECT.DISCONNECTED': {
103
+ target: 'subject_disconnecting',
104
+ },
88
105
  'SUBJECT.REQUEST': {
89
106
  actions: assign(({ event, context }) => {
90
107
  subjectRequest({
@@ -118,6 +135,11 @@ export const subjectManagerLogic = setup({
118
135
  },
119
136
  },
120
137
  subject_check_sync: {
138
+ on: {
139
+ 'SUBJECT.DISCONNECTED': {
140
+ target: 'subject_disconnecting',
141
+ },
142
+ },
121
143
  always: [
122
144
  {
123
145
  target: 'subject_syncing',
@@ -129,6 +151,11 @@ export const subjectManagerLogic = setup({
129
151
  ],
130
152
  },
131
153
  subject_syncing: {
154
+ on: {
155
+ 'SUBJECT.DISCONNECTED': {
156
+ target: 'subject_disconnecting',
157
+ },
158
+ },
132
159
  entry: [
133
160
  ({ context }) => {
134
161
  // either going to be 0 or 1 (if there were multiple syncs pending)
@@ -153,8 +180,16 @@ export const subjectManagerLogic = setup({
153
180
  },
154
181
  subject_error: {
155
182
  on: {
183
+ 'SUBJECT.DISCONNECTED': {
184
+ target: 'subject_disconnecting',
185
+ },
156
186
  'SUBJECT.CONNECT': {
157
187
  target: 'subject_check_sync',
188
+ actions: [
189
+ assign({
190
+ cachedConnection: ({ event }) => event.connection,
191
+ }),
192
+ ],
158
193
  },
159
194
  },
160
195
  },
@@ -1 +1 @@
1
- {"version":3,"file":"subject.js","sourceRoot":"","sources":["../../src/machines/subject.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subject.js","sourceRoot":"","sources":["../../src/machines/subject.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jr200-labs/xstate-nats",
3
- "version": "0.9.11",
3
+ "version": "0.9.13",
4
4
  "description": "XState machine for NATS",
5
5
  "license": "MIT",
6
6
  "author": "Jayshan Raghunandan",
@@ -82,7 +82,12 @@ function createParentMachine(kvLogic?: any) {
82
82
  actions: assign({ childState: 'connected' }),
83
83
  },
84
84
  'KV.DISCONNECTED': {
85
- actions: assign({ childState: 'disconnected' }),
85
+ actions: [
86
+ sendTo('kv', ({ event }: any) => {
87
+ return { ...event }
88
+ }),
89
+ assign({ childState: 'disconnected' }),
90
+ ],
86
91
  },
87
92
  },
88
93
  states: {
@@ -213,6 +218,50 @@ describe('kvManagerLogic', () => {
213
218
  parentActor.stop()
214
219
  })
215
220
 
221
+ it('should resync retained subscription configs after disconnect and reconnect', async () => {
222
+ const syncInputs: any[] = []
223
+ const kvWithMockSync = kvManagerLogic.provide({
224
+ actors: {
225
+ kvConsolidateState: fromPromise(async ({ input }) => {
226
+ syncInputs.push(input)
227
+ return {
228
+ subscriptions: new Map([['Pair(b, k)', {} as any]]),
229
+ }
230
+ }),
231
+ },
232
+ })
233
+ const parentActor = createActor(createParentMachine(kvWithMockSync))
234
+ parentActor.start()
235
+
236
+ parentActor.send({
237
+ type: 'KV.SUBSCRIBE',
238
+ config: { bucket: 'b', key: 'k', callback: vi.fn() },
239
+ })
240
+
241
+ const firstConnection = createMockConnection()
242
+ parentActor.send({ type: 'KV.CONNECT', connection: firstConnection })
243
+ await vi.waitFor(() => {
244
+ expect(syncInputs).toHaveLength(1)
245
+ })
246
+
247
+ parentActor.send({ type: 'KV.DISCONNECTED' })
248
+ const disconnectedCtx = parentActor.getSnapshot().children.kv?.getSnapshot()?.context
249
+ expect(disconnectedCtx?.subscriptionConfigs.has('Pair(b, k)')).toBe(true)
250
+ expect(disconnectedCtx?.subscriptions.size).toBe(0)
251
+ expect(disconnectedCtx?.syncRequired).toBe(1)
252
+
253
+ const secondConnection = createMockConnection()
254
+ parentActor.send({ type: 'KV.CONNECT', connection: secondConnection })
255
+ await vi.waitFor(() => {
256
+ expect(syncInputs).toHaveLength(2)
257
+ })
258
+
259
+ const childSnap = parentActor.getSnapshot().children.kv?.getSnapshot()
260
+ expect(childSnap?.value).toBe('kv_connected')
261
+ expect(syncInputs[1].connection).toBe(secondConnection)
262
+ parentActor.stop()
263
+ })
264
+
216
265
  it('should handle KV.BUCKET_LIST with bucket name', async () => {
217
266
  mockKvStore.keys.mockResolvedValue({
218
267
  [Symbol.asyncIterator]: () => {
@@ -123,6 +123,7 @@ export const kvManagerLogic = setup({
123
123
  states: {
124
124
  kv_idle: {
125
125
  on: {
126
+ 'KV.DISCONNECTED': {},
126
127
  'KV.CONNECT': {
127
128
  target: 'kv_check_sync',
128
129
  actions: [
@@ -135,16 +136,22 @@ export const kvManagerLogic = setup({
135
136
  },
136
137
  },
137
138
  kv_disconnecting: {
138
- target: 'kv_idle',
139
139
  entry: [
140
140
  // dont close the connection here, it will be closed by the nats connection machine
141
141
  assign({
142
142
  cachedConnection: null,
143
143
  cachedKvm: null,
144
144
  subscriptions: new Map<string, QueuedIterator<KvWatchEntry>>(),
145
+ syncRequired: ({ context }) =>
146
+ context.subscriptionConfigs.size > 0
147
+ ? Math.max(context.syncRequired, 1)
148
+ : context.syncRequired,
145
149
  }),
146
150
  sendParent({ type: 'KV.DISCONNECTED' }),
147
151
  ],
152
+ always: {
153
+ target: 'kv_idle',
154
+ },
148
155
  },
149
156
  kv_connected: {
150
157
  entry: [sendParent({ type: 'KV.CONNECTED' })],
@@ -153,6 +160,18 @@ export const kvManagerLogic = setup({
153
160
  guard: 'hasPendingSync',
154
161
  },
155
162
  on: {
163
+ 'KV.CONNECT': {
164
+ target: 'kv_check_sync',
165
+ actions: [
166
+ assign({
167
+ cachedConnection: ({ event }) => event.connection,
168
+ cachedKvm: ({ event }) => new Kvm(event.connection),
169
+ }),
170
+ ],
171
+ },
172
+ 'KV.DISCONNECTED': {
173
+ target: 'kv_disconnecting',
174
+ },
156
175
  'KV.BUCKET_LIST': {
157
176
  actions: async ({ context, event }) => {
158
177
  try {
@@ -266,6 +285,11 @@ export const kvManagerLogic = setup({
266
285
  },
267
286
  },
268
287
  kv_check_sync: {
288
+ on: {
289
+ 'KV.DISCONNECTED': {
290
+ target: 'kv_disconnecting',
291
+ },
292
+ },
269
293
  always: [
270
294
  {
271
295
  target: 'kv_syncing',
@@ -277,6 +301,11 @@ export const kvManagerLogic = setup({
277
301
  ],
278
302
  },
279
303
  kv_syncing: {
304
+ on: {
305
+ 'KV.DISCONNECTED': {
306
+ target: 'kv_disconnecting',
307
+ },
308
+ },
280
309
  entry: [
281
310
  ({ context }) => {
282
311
  // either going to be 0 or 1 (if there were multiple syncs pending)
@@ -318,8 +347,17 @@ export const kvManagerLogic = setup({
318
347
  },
319
348
  kv_error: {
320
349
  on: {
350
+ 'KV.DISCONNECTED': {
351
+ target: 'kv_disconnecting',
352
+ },
321
353
  'KV.CONNECT': {
322
354
  target: 'kv_check_sync',
355
+ actions: [
356
+ assign({
357
+ cachedConnection: ({ event }) => event.connection,
358
+ cachedKvm: ({ event }) => new Kvm(event.connection),
359
+ }),
360
+ ],
323
361
  },
324
362
  },
325
363
  },
@@ -12,7 +12,9 @@ vi.mock('@nats-io/nats-core', async () => {
12
12
  })
13
13
 
14
14
  vi.mock('@nats-io/kv', () => ({
15
- Kvm: vi.fn().mockImplementation(() => ({})),
15
+ Kvm: vi.fn().mockImplementation(function () {
16
+ return {}
17
+ }),
16
18
  }))
17
19
 
18
20
  const mockSubjectMachine = createMachine({
@@ -98,6 +100,11 @@ const mockConnection = {
98
100
  }),
99
101
  } as any
100
102
 
103
+ const secondMockConnection = {
104
+ ...mockConnection,
105
+ getServer: vi.fn().mockReturnValue('ws://localhost:4223'),
106
+ } as any
107
+
101
108
  function createDeferred<T>() {
102
109
  let resolve!: (value: T) => void
103
110
  let reject!: (reason?: unknown) => void
@@ -436,6 +443,41 @@ describe('natsMachine', () => {
436
443
  actor.stop()
437
444
  })
438
445
 
446
+ it('should reconnect real managers when configured while connected', async () => {
447
+ const connections = [mockConnection, secondMockConnection]
448
+ const connectInputs: any[] = []
449
+ const machine = natsMachine.provide({
450
+ actors: {
451
+ connectToNats: fromPromise(async ({ input }) => {
452
+ connectInputs.push(input)
453
+ return connections.shift() ?? secondMockConnection
454
+ }),
455
+ disconnectNats: fromPromise(async () => {}),
456
+ },
457
+ })
458
+ const actor = createActor(machine)
459
+ actor.start()
460
+ configureAndConnect(actor)
461
+
462
+ await vi.waitFor(() => {
463
+ expect(actor.getSnapshot().value).toBe('connected')
464
+ })
465
+
466
+ actor.send({
467
+ type: 'CONFIGURE',
468
+ config: { opts: { debug: true, servers: ['ws://localhost:4225'] }, maxRetries: 2 },
469
+ })
470
+
471
+ await vi.waitFor(() => {
472
+ expect(actor.getSnapshot().value).toBe('connected')
473
+ })
474
+ expect(connectInputs).toHaveLength(2)
475
+ expect(actor.getSnapshot().context.connection).toBe(secondMockConnection)
476
+ expect(actor.getSnapshot().context.subjectManagerReady).toBe(true)
477
+ expect(actor.getSnapshot().context.kvManagerReady).toBe(true)
478
+ actor.stop()
479
+ })
480
+
439
481
  it('should apply CONFIGURE and CONNECT sent while closing', async () => {
440
482
  const disconnect = createDeferred<void>()
441
483
  const connectInputs: any[] = []
@@ -51,7 +51,12 @@ function createParentMachine() {
51
51
  actions: assign({ childState: 'connected' }),
52
52
  },
53
53
  'SUBJECT.DISCONNECTED': {
54
- actions: assign({ childState: 'disconnected' }),
54
+ actions: [
55
+ sendTo('subject', ({ event }: any) => {
56
+ return { ...event }
57
+ }),
58
+ assign({ childState: 'disconnected' }),
59
+ ],
55
60
  },
56
61
  },
57
62
  states: {
@@ -168,6 +173,35 @@ describe('subjectManagerLogic', () => {
168
173
  parentActor.stop()
169
174
  })
170
175
 
176
+ it('should resubscribe retained configs after disconnect and reconnect', () => {
177
+ const parentActor = createActor(createParentMachine())
178
+ parentActor.start()
179
+
180
+ parentActor.send({
181
+ type: 'SUBJECT.SUBSCRIBE',
182
+ config: { subject: 'test.sub', callback: vi.fn() },
183
+ })
184
+
185
+ const firstConnection = createMockConnection()
186
+ parentActor.send({ type: 'SUBJECT.CONNECT', connection: firstConnection })
187
+
188
+ expect(firstConnection.subscribe).toHaveBeenCalledWith('test.sub', undefined)
189
+
190
+ parentActor.send({ type: 'SUBJECT.DISCONNECTED' })
191
+ const disconnectedCtx = parentActor.getSnapshot().children.subject?.getSnapshot()?.context
192
+ expect(disconnectedCtx?.subscriptionConfigs.has('test.sub')).toBe(true)
193
+ expect(disconnectedCtx?.subscriptions.size).toBe(0)
194
+ expect(disconnectedCtx?.syncRequired).toBe(1)
195
+
196
+ const secondConnection = createMockConnection()
197
+ parentActor.send({ type: 'SUBJECT.CONNECT', connection: secondConnection })
198
+
199
+ const childSnap = parentActor.getSnapshot().children.subject?.getSnapshot()
200
+ expect(childSnap?.value).toBe('subject_connected')
201
+ expect(secondConnection.subscribe).toHaveBeenCalledWith('test.sub', undefined)
202
+ parentActor.stop()
203
+ })
204
+
171
205
  it('should sync when new subscription added while connected', () => {
172
206
  const parentActor = createActor(createParentMachine())
173
207
  parentActor.start()
@@ -103,6 +103,7 @@ export const subjectManagerLogic = setup({
103
103
  states: {
104
104
  subject_idle: {
105
105
  on: {
106
+ 'SUBJECT.DISCONNECTED': {},
106
107
  'SUBJECT.CONNECT': {
107
108
  target: 'subject_check_sync',
108
109
  actions: [
@@ -114,15 +115,21 @@ export const subjectManagerLogic = setup({
114
115
  },
115
116
  },
116
117
  subject_disconnecting: {
117
- target: 'subject_idle',
118
118
  entry: [
119
119
  // dont close the connection here, it will be closed by the nats connection machine
120
120
  assign({
121
121
  cachedConnection: null,
122
122
  subscriptions: new Map<string, Subscription>(),
123
+ syncRequired: ({ context }) =>
124
+ context.subscriptionConfigs.size > 0
125
+ ? Math.max(context.syncRequired, 1)
126
+ : context.syncRequired,
123
127
  }),
124
128
  sendParent({ type: 'SUBJECT.DISCONNECTED' }),
125
129
  ],
130
+ always: {
131
+ target: 'subject_idle',
132
+ },
126
133
  },
127
134
  subject_connected: {
128
135
  entry: [sendParent({ type: 'SUBJECT.CONNECTED' })],
@@ -131,6 +138,17 @@ export const subjectManagerLogic = setup({
131
138
  guard: 'hasPendingSync',
132
139
  },
133
140
  on: {
141
+ 'SUBJECT.CONNECT': {
142
+ target: 'subject_check_sync',
143
+ actions: [
144
+ assign({
145
+ cachedConnection: ({ event }) => event.connection,
146
+ }),
147
+ ],
148
+ },
149
+ 'SUBJECT.DISCONNECTED': {
150
+ target: 'subject_disconnecting',
151
+ },
134
152
  'SUBJECT.REQUEST': {
135
153
  actions: assign(({ event, context }) => {
136
154
  subjectRequest({
@@ -164,6 +182,11 @@ export const subjectManagerLogic = setup({
164
182
  },
165
183
  },
166
184
  subject_check_sync: {
185
+ on: {
186
+ 'SUBJECT.DISCONNECTED': {
187
+ target: 'subject_disconnecting',
188
+ },
189
+ },
167
190
  always: [
168
191
  {
169
192
  target: 'subject_syncing',
@@ -175,6 +198,11 @@ export const subjectManagerLogic = setup({
175
198
  ],
176
199
  },
177
200
  subject_syncing: {
201
+ on: {
202
+ 'SUBJECT.DISCONNECTED': {
203
+ target: 'subject_disconnecting',
204
+ },
205
+ },
178
206
  entry: [
179
207
  ({ context }) => {
180
208
  // either going to be 0 or 1 (if there were multiple syncs pending)
@@ -199,8 +227,16 @@ export const subjectManagerLogic = setup({
199
227
  },
200
228
  subject_error: {
201
229
  on: {
230
+ 'SUBJECT.DISCONNECTED': {
231
+ target: 'subject_disconnecting',
232
+ },
202
233
  'SUBJECT.CONNECT': {
203
234
  target: 'subject_check_sync',
235
+ actions: [
236
+ assign({
237
+ cachedConnection: ({ event }) => event.connection,
238
+ }),
239
+ ],
204
240
  },
205
241
  },
206
242
  },