@cratis/arc 21.1.0 → 21.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/cjs/queries/ObservableQueryConnection.js +24 -4
  2. package/dist/cjs/queries/ObservableQueryConnection.js.map +1 -1
  3. package/dist/cjs/queries/ServerSentEventQueryConnection.js +24 -2
  4. package/dist/cjs/queries/ServerSentEventQueryConnection.js.map +1 -1
  5. package/dist/esm/queries/ObservableQueryConnection.d.ts +2 -0
  6. package/dist/esm/queries/ObservableQueryConnection.d.ts.map +1 -1
  7. package/dist/esm/queries/ObservableQueryConnection.js +24 -4
  8. package/dist/esm/queries/ObservableQueryConnection.js.map +1 -1
  9. package/dist/esm/queries/ServerSentEventQueryConnection.d.ts +2 -0
  10. package/dist/esm/queries/ServerSentEventQueryConnection.d.ts.map +1 -1
  11. package/dist/esm/queries/ServerSentEventQueryConnection.js +24 -2
  12. package/dist/esm/queries/ServerSentEventQueryConnection.js.map +1 -1
  13. package/dist/esm/queries/for_ObservableQueryConnection/given/an_observable_query_connection_with_a_reconnect_policy.d.ts +25 -0
  14. package/dist/esm/queries/for_ObservableQueryConnection/given/an_observable_query_connection_with_a_reconnect_policy.d.ts.map +1 -0
  15. package/dist/esm/queries/for_ObservableQueryConnection/given/an_observable_query_connection_with_a_reconnect_policy.js +45 -0
  16. package/dist/esm/queries/for_ObservableQueryConnection/given/an_observable_query_connection_with_a_reconnect_policy.js.map +1 -0
  17. package/dist/esm/queries/for_ObservableQueryConnection/when_receiving_unauthorized/terminates_without_reconnecting.d.ts +2 -0
  18. package/dist/esm/queries/for_ObservableQueryConnection/when_receiving_unauthorized/terminates_without_reconnecting.d.ts.map +1 -0
  19. package/dist/esm/queries/for_ObservableQueryConnection/when_receiving_unauthorized/terminates_without_reconnecting.js +44 -0
  20. package/dist/esm/queries/for_ObservableQueryConnection/when_receiving_unauthorized/terminates_without_reconnecting.js.map +1 -0
  21. package/dist/esm/queries/for_ServerSentEventQueryConnection/when_receiving_unauthorized/terminates_without_reconnecting.d.ts +2 -0
  22. package/dist/esm/queries/for_ServerSentEventQueryConnection/when_receiving_unauthorized/terminates_without_reconnecting.d.ts.map +1 -0
  23. package/dist/esm/queries/for_ServerSentEventQueryConnection/when_receiving_unauthorized/terminates_without_reconnecting.js +43 -0
  24. package/dist/esm/queries/for_ServerSentEventQueryConnection/when_receiving_unauthorized/terminates_without_reconnecting.js.map +1 -0
  25. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  26. package/package.json +1 -1
  27. package/queries/ObservableQueryConnection.ts +28 -4
  28. package/queries/ServerSentEventQueryConnection.ts +26 -2
  29. package/queries/for_ObservableQueryConnection/given/an_observable_query_connection_with_a_reconnect_policy.ts +72 -0
  30. package/queries/for_ObservableQueryConnection/when_receiving_unauthorized/terminates_without_reconnecting.ts +57 -0
  31. package/queries/for_ServerSentEventQueryConnection/when_receiving_unauthorized/terminates_without_reconnecting.ts +63 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminates_without_reconnecting.d.ts","sourceRoot":"","sources":["../../../../../queries/for_ObservableQueryConnection/when_receiving_unauthorized/terminates_without_reconnecting.ts"],"names":[],"mappings":""}
@@ -0,0 +1,44 @@
1
+ import { given } from '../../../given';
2
+ import { an_observable_query_connection_with_a_reconnect_policy } from '../given/an_observable_query_connection_with_a_reconnect_policy';
3
+ import { WebSocketMessageType } from '../../WebSocketMessage';
4
+ describe('when receiving unauthorized it terminates without reconnecting', given(an_observable_query_connection_with_a_reconnect_policy, context => {
5
+ const unauthorizedResult = {
6
+ data: null,
7
+ isSuccess: false,
8
+ isAuthorized: false,
9
+ isValid: true,
10
+ hasExceptions: false,
11
+ validationResults: [],
12
+ exceptionMessages: [],
13
+ exceptionStackTrace: '',
14
+ paging: { page: 0, size: 0, totalItems: 0, totalPages: 0 }
15
+ };
16
+ let receivedResults = [];
17
+ beforeEach(() => {
18
+ receivedResults = [];
19
+ context.connection.connect((data) => {
20
+ receivedResults.push(data);
21
+ });
22
+ context.simulateMessage({
23
+ type: WebSocketMessageType.Data,
24
+ data: unauthorizedResult
25
+ });
26
+ context.simulateClose();
27
+ });
28
+ it('should deliver the unauthorized result', () => {
29
+ receivedResults.should.have.lengthOf(1);
30
+ });
31
+ it('should deliver it as not authorized', () => {
32
+ receivedResults[0].isAuthorized.should.be.false;
33
+ });
34
+ it('should not schedule a reconnect', () => {
35
+ context.schedule.called.should.be.false;
36
+ });
37
+ it('should cancel any pending reconnect', () => {
38
+ context.cancel.called.should.be.true;
39
+ });
40
+ it('should close the socket', () => {
41
+ context.fakeWebSocket.close.called.should.be.true;
42
+ });
43
+ }));
44
+ //# sourceMappingURL=terminates_without_reconnecting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminates_without_reconnecting.js","sourceRoot":"","sources":["../../../../../queries/for_ObservableQueryConnection/when_receiving_unauthorized/terminates_without_reconnecting.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,sDAAsD,EAAE,MAAM,iEAAiE,CAAC;AAEzI,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,QAAQ,CAAC,gEAAgE,EAAE,KAAK,CAAC,sDAAsD,EAAE,OAAO,CAAC,EAAE;IAC/I,MAAM,kBAAkB,GAAG;QACvB,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,KAAK;QACnB,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,KAAK;QACpB,iBAAiB,EAAE,EAAE;QACrB,iBAAiB,EAAE,EAAE;QACrB,mBAAmB,EAAE,EAAE;QACvB,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE;KAC7D,CAAC;IAEF,IAAI,eAAe,GAA2B,EAAE,CAAC;IAEjD,UAAU,CAAC,GAAG,EAAE;QACZ,eAAe,GAAG,EAAE,CAAC;QACrB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAChC,eAAe,CAAC,IAAI,CAAC,IAA4B,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,eAAe,CAAC;YACpB,IAAI,EAAE,oBAAoB,CAAC,IAAI;YAC/B,IAAI,EAAE,kBAAkB;SAC3B,CAAC,CAAC;QAGH,OAAO,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAC9C,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC1C,eAAe,CAAC,CAAC,CAA0C,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC;IAC9F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC3C,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QAC/B,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC;IACtD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=terminates_without_reconnecting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminates_without_reconnecting.d.ts","sourceRoot":"","sources":["../../../../../queries/for_ServerSentEventQueryConnection/when_receiving_unauthorized/terminates_without_reconnecting.ts"],"names":[],"mappings":""}
@@ -0,0 +1,43 @@
1
+ import sinon from 'sinon';
2
+ import { ServerSentEventQueryConnection } from '../../ServerSentEventQueryConnection';
3
+ describe('when receiving unauthorized it terminates without reconnecting', () => {
4
+ const unauthorizedResult = {
5
+ data: null,
6
+ isSuccess: false,
7
+ isAuthorized: false,
8
+ isValid: true,
9
+ hasExceptions: false,
10
+ validationResults: [],
11
+ exceptionMessages: [],
12
+ exceptionStackTrace: '',
13
+ paging: { page: 0, size: 0, totalItems: 0, totalPages: 0 }
14
+ };
15
+ let fakeEventSource;
16
+ let closeStub;
17
+ let constructedCount;
18
+ let connection;
19
+ let receivedResults;
20
+ beforeEach(() => {
21
+ closeStub = sinon.stub();
22
+ constructedCount = 0;
23
+ fakeEventSource = { onmessage: null, onerror: null, close: closeStub };
24
+ globalThis['EventSource'] = function () {
25
+ constructedCount++;
26
+ return fakeEventSource;
27
+ };
28
+ receivedResults = [];
29
+ connection = new ServerSentEventQueryConnection(new URL('http://localhost/api/queries/latest'));
30
+ connection.connect((result) => receivedResults.push(result));
31
+ fakeEventSource['onmessage']({ data: JSON.stringify(unauthorizedResult) });
32
+ connection.connect(() => { });
33
+ });
34
+ afterEach(() => {
35
+ delete globalThis['EventSource'];
36
+ sinon.restore();
37
+ });
38
+ it('should deliver the unauthorized result', () => receivedResults.length.should.equal(1));
39
+ it('should deliver it as not authorized', () => receivedResults[0].isAuthorized.should.be.false);
40
+ it('should close the event source', () => closeStub.calledOnce.should.be.true);
41
+ it('should not re-establish the stream', () => constructedCount.should.equal(1));
42
+ });
43
+ //# sourceMappingURL=terminates_without_reconnecting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminates_without_reconnecting.js","sourceRoot":"","sources":["../../../../../queries/for_ServerSentEventQueryConnection/when_receiving_unauthorized/terminates_without_reconnecting.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AAQtF,QAAQ,CAAC,gEAAgE,EAAE,GAAG,EAAE;IAC5E,MAAM,kBAAkB,GAAG;QACvB,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,KAAK;QACnB,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,KAAK;QACpB,iBAAiB,EAAE,EAAE;QACrB,iBAAiB,EAAE,EAAE;QACrB,mBAAmB,EAAE,EAAE;QACvB,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE;KAC7D,CAAC;IAEF,IAAI,eAAwC,CAAC;IAC7C,IAAI,SAA0B,CAAC;IAC/B,IAAI,gBAAwB,CAAC;IAC7B,IAAI,UAAoD,CAAC;IACzD,IAAI,eAAwC,CAAC;IAE7C,UAAU,CAAC,GAAG,EAAE;QACZ,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QACzB,gBAAgB,GAAG,CAAC,CAAC;QACrB,eAAe,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAEtE,UAAsC,CAAC,aAAa,CAAC,GAAG;YACrD,gBAAgB,EAAE,CAAC;YACnB,OAAO,eAAe,CAAC;QAC3B,CAAC,CAAC;QAEF,eAAe,GAAG,EAAE,CAAC;QACrB,UAAU,GAAG,IAAI,8BAA8B,CAAW,IAAI,GAAG,CAAC,qCAAqC,CAAC,CAAC,CAAC;QAC1G,UAAU,CAAC,OAAO,CAAC,CAAC,MAA6B,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAEnF,eAAe,CAAC,WAAW,CAAmC,CAC3D,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAkB,CAC/D,CAAC;QAGF,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACX,OAAQ,UAAsC,CAAC,aAAa,CAAC,CAAC;QAC9D,KAAK,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3F,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE,CAAE,eAAe,CAAC,CAAC,CAA0C,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAC3I,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAC/E,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACrF,CAAC,CAAC,CAAC"}