@event-driven-io/emmett 0.5.4 → 0.6.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/chunk-4PGUBQK3.js +2 -0
- package/dist/chunk-4PGUBQK3.js.map +1 -0
- package/dist/chunk-6WITJBGG.js +2 -0
- package/dist/chunk-6WITJBGG.js.map +1 -0
- package/dist/chunk-AMRL5G7K.mjs +2 -0
- package/dist/chunk-AMRL5G7K.mjs.map +1 -0
- package/dist/chunk-AYVR4VYR.mjs +2 -0
- package/dist/chunk-AYVR4VYR.mjs.map +1 -0
- package/dist/chunk-TDCMNVXU.mjs +1 -0
- package/dist/chunk-Z4Z6POJH.js +1 -0
- package/dist/commandHandling/handleCommand.d.mts +2 -2
- package/dist/commandHandling/handleCommand.d.ts +2 -2
- package/dist/commandHandling/handleCommandWithDecider.d.mts +2 -2
- package/dist/commandHandling/handleCommandWithDecider.d.ts +2 -2
- package/dist/index.d.mts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/serialization/json/JSONParser.d.mts +1 -1
- package/dist/serialization/json/JSONParser.d.ts +1 -1
- package/dist/testing/deciderSpecification.d.mts +4 -4
- package/dist/testing/deciderSpecification.d.ts +4 -4
- package/dist/testing/features.d.mts +12 -0
- package/dist/testing/features.d.ts +12 -0
- package/dist/testing/features.js +2 -0
- package/dist/testing/features.js.map +1 -0
- package/dist/testing/features.mjs +2 -0
- package/dist/testing/features.mjs.map +1 -0
- package/dist/testing/index.d.mts +5 -0
- package/dist/testing/index.d.ts +5 -0
- package/dist/testing/index.js +1 -1
- package/dist/testing/index.mjs +1 -1
- package/dist/testing/shoppingCart.domain.d.mts +22 -0
- package/dist/testing/shoppingCart.domain.d.ts +22 -0
- package/dist/testing/shoppingCart.domain.js +2 -0
- package/dist/testing/shoppingCart.domain.js.map +1 -0
- package/dist/testing/shoppingCart.domain.mjs +2 -0
- package/dist/testing/shoppingCart.domain.mjs.map +1 -0
- package/dist/typing/index.d.mts +2 -6
- package/dist/typing/index.d.ts +2 -6
- package/dist/typing/index.js +1 -1
- package/dist/typing/index.mjs +1 -1
- package/package.json +1 -1
- package/dist/chunk-7H3QW2YD.js +0 -1
- package/dist/chunk-HKEQAT6F.mjs +0 -1
- /package/dist/{chunk-HKEQAT6F.mjs.map → chunk-TDCMNVXU.mjs.map} +0 -0
- /package/dist/{chunk-7H3QW2YD.js.map → chunk-Z4Z6POJH.js.map} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var n=(t,{type:r,data:o})=>{switch(r){case"ProductItemAdded":{let e=o.productItem;return{productItems:[...t.productItems,e],totalAmount:t.totalAmount+e.price*e.quantity}}case"DiscountApplied":return{...t,totalAmount:t.totalAmount*(1-o.percent/100)}}},d= exports.b =()=>({productItems:[],totalAmount:0});exports.a = n; exports.b = d;
|
|
2
|
+
//# sourceMappingURL=chunk-4PGUBQK3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/testing/shoppingCart.domain.ts"],"names":["evolve","state","type","data","productItem","getInitialState"],"mappings":"AAqBO,IAAMA,EAAS,CACpBC,EACA,CAAE,KAAAC,EAAM,KAAAC,CAAK,IACI,CACjB,OAAQD,EAAM,CACZ,IAAK,mBAAoB,CACvB,IAAME,EAAcD,EAAK,YACzB,MAAO,CACL,aAAc,CAAC,GAAGF,EAAM,aAAcG,CAAW,EACjD,YACEH,EAAM,YAAcG,EAAY,MAAQA,EAAY,QACxD,CACF,CACA,IAAK,kBACH,MAAO,CACL,GAAGH,EACH,YAAaA,EAAM,aAAe,EAAIE,EAAK,QAAU,IACvD,CACJ,CACF,EAEaE,EAAkB,KACtB,CAAE,aAAc,CAAC,EAAG,YAAa,CAAE","sourcesContent":["import { type Event } from '../typing';\n\nexport type PricedProductItem = {\n productId: string;\n quantity: number;\n price: number;\n};\n\nexport type ShoppingCart = {\n productItems: PricedProductItem[];\n totalAmount: number;\n};\n\nexport type ProductItemAdded = Event<\n 'ProductItemAdded',\n { productItem: PricedProductItem }\n>;\nexport type DiscountApplied = Event<'DiscountApplied', { percent: number }>;\n\nexport type ShoppingCartEvent = ProductItemAdded | DiscountApplied;\n\nexport const evolve = (\n state: ShoppingCart,\n { type, data }: ShoppingCartEvent,\n): ShoppingCart => {\n switch (type) {\n case 'ProductItemAdded': {\n const productItem = data.productItem;\n return {\n productItems: [...state.productItems, productItem],\n totalAmount:\n state.totalAmount + productItem.price * productItem.quantity,\n };\n }\n case 'DiscountApplied':\n return {\n ...state,\n totalAmount: state.totalAmount * (1 - data.percent / 100),\n };\n }\n};\n\nexport const getInitialState = (): ShoppingCart => {\n return { productItems: [], totalAmount: 0 };\n};\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _chunk4PGUBQK3js = require('./chunk-4PGUBQK3.js');var _assert = require('assert'); var _assert2 = _interopRequireDefault(_assert);var _crypto = require('crypto');var _test = require('test');async function A(c,o={getInitialIndex:()=>1n}){return _test.describe.call(void 0, "aggregateStream",()=>{let a;_test.before.call(void 0, async()=>{a=await c()}),_test.after.call(void 0, async()=>{let t=o.teardownHook;t&&await t()}),_test.it.call(void 0, "When called with `to` allows time traveling",async()=>{let t={productId:"123",quantity:10,price:3},s=10,r=_crypto.randomUUID.call(void 0, );await a.appendToStream(r,[{type:"ProductItemAdded",data:{productItem:t}}]),await a.appendToStream(r,[{type:"ProductItemAdded",data:{productItem:t}}]),await a.appendToStream(r,[{type:"DiscountApplied",data:{percent:s}}]);let d=await a.aggregateStream(r,{evolve:_chunk4PGUBQK3js.a,getInitialState:_chunk4PGUBQK3js.b,read:{to:1n}}),p=await a.aggregateStream(r,{evolve:_chunk4PGUBQK3js.a,getInitialState:_chunk4PGUBQK3js.b,read:{to:2n}}),m=await a.aggregateStream(r,{evolve:_chunk4PGUBQK3js.a,getInitialState:_chunk4PGUBQK3js.b,read:{to:3n}});_assert2.default.ok(d),_assert2.default.ok(p),_assert2.default.ok(m),_assert2.default.equal(d.currentStreamVersion,o.getInitialIndex()),_assert2.default.deepEqual(d.state,{productItems:[t],totalAmount:30}),_assert2.default.equal(p.currentStreamVersion,o.getInitialIndex()+1n),_assert2.default.deepEqual(p.state,{productItems:[t,t],totalAmount:60}),_assert2.default.equal(m.currentStreamVersion,o.getInitialIndex()+2n),_assert2.default.deepEqual(m.state,{productItems:[t,t],totalAmount:54})})})}exports.a = A;
|
|
2
|
+
//# sourceMappingURL=chunk-6WITJBGG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/testing/features.ts"],"names":["assert","randomUUID","after","before","describe","it","testAggregateStream","eventStoreFactory","options","eventStore","teardownHook","productItem","discount","shoppingCartId","resultAt1","evolve","getInitialState","resultAt2","resultAt3"],"mappings":"+CACA,OAAOA,MAAY,SACnB,OAAS,cAAAC,MAAkB,SAC3B,OAAS,SAAAC,EAAO,UAAAC,EAAQ,YAAAC,EAAU,MAAAC,MAAU,OAgB5C,eAAsBC,EACpBC,EACAC,EAAuB,CACrB,gBAAiB,IAAM,EACzB,EACA,CACA,OAAOJ,EAAS,kBAAmB,IAAM,CACvC,IAAIK,EAEJN,EAAO,SAAY,CACjBM,EAAa,MAAMF,EAAkB,CACvC,CAAC,EAEDL,EAAM,SAAY,CAChB,IAAMQ,EAAeF,EAAQ,aACzBE,GAAc,MAAMA,EAAa,CACvC,CAAC,EAEDL,EAAG,8CAA+C,SAAY,CAE5D,IAAMM,EAAiC,CACrC,UAAW,MACX,SAAU,GACV,MAAO,CACT,EACMC,EAAW,GACXC,EAAiBZ,EAAW,EAElC,MAAMQ,EAAW,eAAkCI,EAAgB,CACjE,CAAE,KAAM,mBAAoB,KAAM,CAAE,YAAAF,CAAY,CAAE,CACpD,CAAC,EACD,MAAMF,EAAW,eAAkCI,EAAgB,CACjE,CAAE,KAAM,mBAAoB,KAAM,CAAE,YAAAF,CAAY,CAAE,CACpD,CAAC,EACD,MAAMF,EAAW,eAAkCI,EAAgB,CACjE,CAAE,KAAM,kBAAmB,KAAM,CAAE,QAASD,CAAS,CAAE,CACzD,CAAC,EAGD,IAAME,EAAY,MAAML,EAAW,gBAAgBI,EAAgB,CACjE,OAAAE,EACA,gBAAAC,EACA,KAAM,CAAE,GAAI,EAAG,CACjB,CAAC,EACKC,EAAY,MAAMR,EAAW,gBAAgBI,EAAgB,CACjE,OAAAE,EACA,gBAAAC,EACA,KAAM,CAAE,GAAI,EAAG,CACjB,CAAC,EACKE,EAAY,MAAMT,EAAW,gBAAgBI,EAAgB,CACjE,OAAAE,EACA,gBAAAC,EACA,KAAM,CAAE,GAAI,EAAG,CACjB,CAAC,EAGDhB,EAAO,GAAGc,CAAS,EACnBd,EAAO,GAAGiB,CAAS,EACnBjB,EAAO,GAAGkB,CAAS,EAEnBlB,EAAO,MAAMc,EAAU,qBAAsBN,EAAQ,gBAAgB,CAAC,EACtER,EAAO,UAAUc,EAAU,MAAO,CAChC,aAAc,CAACH,CAAW,EAC1B,YAAa,EACf,CAAC,EAEDX,EAAO,MACLiB,EAAU,qBACVT,EAAQ,gBAAgB,EAAI,EAC9B,EACAR,EAAO,UAAUiB,EAAU,MAAO,CAChC,aAAc,CAACN,EAAaA,CAAW,EACvC,YAAa,EACf,CAAC,EAEDX,EAAO,MACLkB,EAAU,qBACVV,EAAQ,gBAAgB,EAAI,EAC9B,EACAR,EAAO,UAAUkB,EAAU,MAAO,CAChC,aAAc,CAACP,EAAaA,CAAW,EACvC,YAAa,EACf,CAAC,CACH,CAAC,CACH,CAAC,CACH","sourcesContent":["/* eslint-disable @typescript-eslint/no-floating-promises */\nimport assert from 'node:assert';\nimport { randomUUID } from 'node:crypto';\nimport { after, before, describe, it } from 'node:test';\nimport type { EventStore } from '../eventStore';\nimport {\n evolve,\n getInitialState,\n type PricedProductItem,\n type ShoppingCartEvent,\n} from './shoppingCart.domain';\n\ntype TestOptions = {\n getInitialIndex: () => bigint;\n teardownHook?: () => Promise<void>;\n};\n\nexport type EventStoreFactory = () => Promise<EventStore<bigint>>;\n\nexport async function testAggregateStream(\n eventStoreFactory: EventStoreFactory,\n options: TestOptions = {\n getInitialIndex: () => 1n,\n },\n) {\n return describe('aggregateStream', () => {\n let eventStore: EventStore<bigint>;\n\n before(async () => {\n eventStore = await eventStoreFactory();\n });\n\n after(async () => {\n const teardownHook = options.teardownHook;\n if (teardownHook) await teardownHook();\n });\n\n it('When called with `to` allows time traveling', async () => {\n // Given\n const productItem: PricedProductItem = {\n productId: '123',\n quantity: 10,\n price: 3,\n };\n const discount = 10;\n const shoppingCartId = randomUUID();\n\n await eventStore.appendToStream<ShoppingCartEvent>(shoppingCartId, [\n { type: 'ProductItemAdded', data: { productItem } },\n ]);\n await eventStore.appendToStream<ShoppingCartEvent>(shoppingCartId, [\n { type: 'ProductItemAdded', data: { productItem } },\n ]);\n await eventStore.appendToStream<ShoppingCartEvent>(shoppingCartId, [\n { type: 'DiscountApplied', data: { percent: discount } },\n ]);\n\n // when\n const resultAt1 = await eventStore.aggregateStream(shoppingCartId, {\n evolve,\n getInitialState,\n read: { to: 1n },\n });\n const resultAt2 = await eventStore.aggregateStream(shoppingCartId, {\n evolve,\n getInitialState,\n read: { to: 2n },\n });\n const resultAt3 = await eventStore.aggregateStream(shoppingCartId, {\n evolve,\n getInitialState,\n read: { to: 3n },\n });\n\n // then\n assert.ok(resultAt1);\n assert.ok(resultAt2);\n assert.ok(resultAt3);\n\n assert.equal(resultAt1.currentStreamVersion, options.getInitialIndex());\n assert.deepEqual(resultAt1.state, {\n productItems: [productItem],\n totalAmount: 30,\n });\n\n assert.equal(\n resultAt2.currentStreamVersion,\n options.getInitialIndex() + 1n,\n );\n assert.deepEqual(resultAt2.state, {\n productItems: [productItem, productItem],\n totalAmount: 60,\n });\n\n assert.equal(\n resultAt3.currentStreamVersion,\n options.getInitialIndex() + 2n,\n );\n assert.deepEqual(resultAt3.state, {\n productItems: [productItem, productItem],\n totalAmount: 54,\n });\n });\n });\n}\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as n,b as i}from"./chunk-AYVR4VYR.mjs";import e from"node:assert";import{randomUUID as g}from"node:crypto";import{after as u,before as l,describe as S,it as I}from"node:test";async function A(c,o={getInitialIndex:()=>1n}){return S("aggregateStream",()=>{let a;l(async()=>{a=await c()}),u(async()=>{let t=o.teardownHook;t&&await t()}),I("When called with `to` allows time traveling",async()=>{let t={productId:"123",quantity:10,price:3},s=10,r=g();await a.appendToStream(r,[{type:"ProductItemAdded",data:{productItem:t}}]),await a.appendToStream(r,[{type:"ProductItemAdded",data:{productItem:t}}]),await a.appendToStream(r,[{type:"DiscountApplied",data:{percent:s}}]);let d=await a.aggregateStream(r,{evolve:n,getInitialState:i,read:{to:1n}}),p=await a.aggregateStream(r,{evolve:n,getInitialState:i,read:{to:2n}}),m=await a.aggregateStream(r,{evolve:n,getInitialState:i,read:{to:3n}});e.ok(d),e.ok(p),e.ok(m),e.equal(d.currentStreamVersion,o.getInitialIndex()),e.deepEqual(d.state,{productItems:[t],totalAmount:30}),e.equal(p.currentStreamVersion,o.getInitialIndex()+1n),e.deepEqual(p.state,{productItems:[t,t],totalAmount:60}),e.equal(m.currentStreamVersion,o.getInitialIndex()+2n),e.deepEqual(m.state,{productItems:[t,t],totalAmount:54})})})}export{A as a};
|
|
2
|
+
//# sourceMappingURL=chunk-AMRL5G7K.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/testing/features.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-floating-promises */\nimport assert from 'node:assert';\nimport { randomUUID } from 'node:crypto';\nimport { after, before, describe, it } from 'node:test';\nimport type { EventStore } from '../eventStore';\nimport {\n evolve,\n getInitialState,\n type PricedProductItem,\n type ShoppingCartEvent,\n} from './shoppingCart.domain';\n\ntype TestOptions = {\n getInitialIndex: () => bigint;\n teardownHook?: () => Promise<void>;\n};\n\nexport type EventStoreFactory = () => Promise<EventStore<bigint>>;\n\nexport async function testAggregateStream(\n eventStoreFactory: EventStoreFactory,\n options: TestOptions = {\n getInitialIndex: () => 1n,\n },\n) {\n return describe('aggregateStream', () => {\n let eventStore: EventStore<bigint>;\n\n before(async () => {\n eventStore = await eventStoreFactory();\n });\n\n after(async () => {\n const teardownHook = options.teardownHook;\n if (teardownHook) await teardownHook();\n });\n\n it('When called with `to` allows time traveling', async () => {\n // Given\n const productItem: PricedProductItem = {\n productId: '123',\n quantity: 10,\n price: 3,\n };\n const discount = 10;\n const shoppingCartId = randomUUID();\n\n await eventStore.appendToStream<ShoppingCartEvent>(shoppingCartId, [\n { type: 'ProductItemAdded', data: { productItem } },\n ]);\n await eventStore.appendToStream<ShoppingCartEvent>(shoppingCartId, [\n { type: 'ProductItemAdded', data: { productItem } },\n ]);\n await eventStore.appendToStream<ShoppingCartEvent>(shoppingCartId, [\n { type: 'DiscountApplied', data: { percent: discount } },\n ]);\n\n // when\n const resultAt1 = await eventStore.aggregateStream(shoppingCartId, {\n evolve,\n getInitialState,\n read: { to: 1n },\n });\n const resultAt2 = await eventStore.aggregateStream(shoppingCartId, {\n evolve,\n getInitialState,\n read: { to: 2n },\n });\n const resultAt3 = await eventStore.aggregateStream(shoppingCartId, {\n evolve,\n getInitialState,\n read: { to: 3n },\n });\n\n // then\n assert.ok(resultAt1);\n assert.ok(resultAt2);\n assert.ok(resultAt3);\n\n assert.equal(resultAt1.currentStreamVersion, options.getInitialIndex());\n assert.deepEqual(resultAt1.state, {\n productItems: [productItem],\n totalAmount: 30,\n });\n\n assert.equal(\n resultAt2.currentStreamVersion,\n options.getInitialIndex() + 1n,\n );\n assert.deepEqual(resultAt2.state, {\n productItems: [productItem, productItem],\n totalAmount: 60,\n });\n\n assert.equal(\n resultAt3.currentStreamVersion,\n options.getInitialIndex() + 2n,\n );\n assert.deepEqual(resultAt3.state, {\n productItems: [productItem, productItem],\n totalAmount: 54,\n });\n });\n });\n}\n"],"mappings":"gDACA,OAAOA,MAAY,cACnB,OAAS,cAAAC,MAAkB,cAC3B,OAAS,SAAAC,EAAO,UAAAC,EAAQ,YAAAC,EAAU,MAAAC,MAAU,YAgB5C,eAAsBC,EACpBC,EACAC,EAAuB,CACrB,gBAAiB,IAAM,EACzB,EACA,CACA,OAAOC,EAAS,kBAAmB,IAAM,CACvC,IAAIC,EAEJC,EAAO,SAAY,CACjBD,EAAa,MAAMH,EAAkB,CACvC,CAAC,EAEDK,EAAM,SAAY,CAChB,IAAMC,EAAeL,EAAQ,aACzBK,GAAc,MAAMA,EAAa,CACvC,CAAC,EAEDC,EAAG,8CAA+C,SAAY,CAE5D,IAAMC,EAAiC,CACrC,UAAW,MACX,SAAU,GACV,MAAO,CACT,EACMC,EAAW,GACXC,EAAiBC,EAAW,EAElC,MAAMR,EAAW,eAAkCO,EAAgB,CACjE,CAAE,KAAM,mBAAoB,KAAM,CAAE,YAAAF,CAAY,CAAE,CACpD,CAAC,EACD,MAAML,EAAW,eAAkCO,EAAgB,CACjE,CAAE,KAAM,mBAAoB,KAAM,CAAE,YAAAF,CAAY,CAAE,CACpD,CAAC,EACD,MAAML,EAAW,eAAkCO,EAAgB,CACjE,CAAE,KAAM,kBAAmB,KAAM,CAAE,QAASD,CAAS,CAAE,CACzD,CAAC,EAGD,IAAMG,EAAY,MAAMT,EAAW,gBAAgBO,EAAgB,CACjE,OAAAG,EACA,gBAAAC,EACA,KAAM,CAAE,GAAI,EAAG,CACjB,CAAC,EACKC,EAAY,MAAMZ,EAAW,gBAAgBO,EAAgB,CACjE,OAAAG,EACA,gBAAAC,EACA,KAAM,CAAE,GAAI,EAAG,CACjB,CAAC,EACKE,EAAY,MAAMb,EAAW,gBAAgBO,EAAgB,CACjE,OAAAG,EACA,gBAAAC,EACA,KAAM,CAAE,GAAI,EAAG,CACjB,CAAC,EAGDG,EAAO,GAAGL,CAAS,EACnBK,EAAO,GAAGF,CAAS,EACnBE,EAAO,GAAGD,CAAS,EAEnBC,EAAO,MAAML,EAAU,qBAAsBX,EAAQ,gBAAgB,CAAC,EACtEgB,EAAO,UAAUL,EAAU,MAAO,CAChC,aAAc,CAACJ,CAAW,EAC1B,YAAa,EACf,CAAC,EAEDS,EAAO,MACLF,EAAU,qBACVd,EAAQ,gBAAgB,EAAI,EAC9B,EACAgB,EAAO,UAAUF,EAAU,MAAO,CAChC,aAAc,CAACP,EAAaA,CAAW,EACvC,YAAa,EACf,CAAC,EAEDS,EAAO,MACLD,EAAU,qBACVf,EAAQ,gBAAgB,EAAI,EAC9B,EACAgB,EAAO,UAAUD,EAAU,MAAO,CAChC,aAAc,CAACR,EAAaA,CAAW,EACvC,YAAa,EACf,CAAC,CACH,CAAC,CACH,CAAC,CACH","names":["assert","randomUUID","after","before","describe","it","testAggregateStream","eventStoreFactory","options","describe","eventStore","before","after","teardownHook","it","productItem","discount","shoppingCartId","randomUUID","resultAt1","evolve","getInitialState","resultAt2","resultAt3","assert"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var n=(t,{type:r,data:o})=>{switch(r){case"ProductItemAdded":{let e=o.productItem;return{productItems:[...t.productItems,e],totalAmount:t.totalAmount+e.price*e.quantity}}case"DiscountApplied":return{...t,totalAmount:t.totalAmount*(1-o.percent/100)}}},d=()=>({productItems:[],totalAmount:0});export{n as a,d as b};
|
|
2
|
+
//# sourceMappingURL=chunk-AYVR4VYR.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/testing/shoppingCart.domain.ts"],"sourcesContent":["import { type Event } from '../typing';\n\nexport type PricedProductItem = {\n productId: string;\n quantity: number;\n price: number;\n};\n\nexport type ShoppingCart = {\n productItems: PricedProductItem[];\n totalAmount: number;\n};\n\nexport type ProductItemAdded = Event<\n 'ProductItemAdded',\n { productItem: PricedProductItem }\n>;\nexport type DiscountApplied = Event<'DiscountApplied', { percent: number }>;\n\nexport type ShoppingCartEvent = ProductItemAdded | DiscountApplied;\n\nexport const evolve = (\n state: ShoppingCart,\n { type, data }: ShoppingCartEvent,\n): ShoppingCart => {\n switch (type) {\n case 'ProductItemAdded': {\n const productItem = data.productItem;\n return {\n productItems: [...state.productItems, productItem],\n totalAmount:\n state.totalAmount + productItem.price * productItem.quantity,\n };\n }\n case 'DiscountApplied':\n return {\n ...state,\n totalAmount: state.totalAmount * (1 - data.percent / 100),\n };\n }\n};\n\nexport const getInitialState = (): ShoppingCart => {\n return { productItems: [], totalAmount: 0 };\n};\n"],"mappings":"AAqBO,IAAMA,EAAS,CACpBC,EACA,CAAE,KAAAC,EAAM,KAAAC,CAAK,IACI,CACjB,OAAQD,EAAM,CACZ,IAAK,mBAAoB,CACvB,IAAME,EAAcD,EAAK,YACzB,MAAO,CACL,aAAc,CAAC,GAAGF,EAAM,aAAcG,CAAW,EACjD,YACEH,EAAM,YAAcG,EAAY,MAAQA,EAAY,QACxD,CACF,CACA,IAAK,kBACH,MAAO,CACL,GAAGH,EACH,YAAaA,EAAM,aAAe,EAAIE,EAAK,QAAU,IACvD,CACJ,CACF,EAEaE,EAAkB,KACtB,CAAE,aAAc,CAAC,EAAG,YAAa,CAAE","names":["evolve","state","type","data","productItem","getInitialState"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=chunk-TDCMNVXU.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";//# sourceMappingURL=chunk-Z4Z6POJH.js.map
|
|
@@ -6,7 +6,7 @@ type CommandHandlerResult<State, StreamVersion = DefaultStreamVersionType> = App
|
|
|
6
6
|
newState: State;
|
|
7
7
|
};
|
|
8
8
|
declare const CommandHandler: <State, StreamEvent extends Event, StreamVersion = bigint>(evolve: (state: State, event: StreamEvent) => State, getInitialState: () => State, mapToStreamId?: (id: string) => string) => (eventStore: EventStore<StreamVersion>, id: string, handle: (state: State) => StreamEvent | StreamEvent[], options?: {
|
|
9
|
-
expectedStreamVersion?: ExpectedStreamVersion<StreamVersion
|
|
10
|
-
}
|
|
9
|
+
expectedStreamVersion?: ExpectedStreamVersion<StreamVersion>;
|
|
10
|
+
}) => Promise<CommandHandlerResult<State, StreamVersion>>;
|
|
11
11
|
|
|
12
12
|
export { CommandHandler, type CommandHandlerResult };
|
|
@@ -6,7 +6,7 @@ type CommandHandlerResult<State, StreamVersion = DefaultStreamVersionType> = App
|
|
|
6
6
|
newState: State;
|
|
7
7
|
};
|
|
8
8
|
declare const CommandHandler: <State, StreamEvent extends Event, StreamVersion = bigint>(evolve: (state: State, event: StreamEvent) => State, getInitialState: () => State, mapToStreamId?: (id: string) => string) => (eventStore: EventStore<StreamVersion>, id: string, handle: (state: State) => StreamEvent | StreamEvent[], options?: {
|
|
9
|
-
expectedStreamVersion?: ExpectedStreamVersion<StreamVersion
|
|
10
|
-
}
|
|
9
|
+
expectedStreamVersion?: ExpectedStreamVersion<StreamVersion>;
|
|
10
|
+
}) => Promise<CommandHandlerResult<State, StreamVersion>>;
|
|
11
11
|
|
|
12
12
|
export { CommandHandler, type CommandHandlerResult };
|
|
@@ -4,7 +4,7 @@ import { Command, Event, Decider } from '../typing/index.mjs';
|
|
|
4
4
|
import '../errors/index.mjs';
|
|
5
5
|
|
|
6
6
|
declare const DeciderCommandHandler: <State, CommandType extends Command, StreamEvent extends Event, StreamVersion = bigint>({ decide, evolve, getInitialState, }: Decider<State, CommandType, StreamEvent>, mapToStreamId?: (id: string) => string) => (eventStore: EventStore<StreamVersion>, id: string, command: CommandType, options?: {
|
|
7
|
-
expectedStreamVersion?: ExpectedStreamVersion<StreamVersion
|
|
8
|
-
}
|
|
7
|
+
expectedStreamVersion?: ExpectedStreamVersion<StreamVersion>;
|
|
8
|
+
}) => Promise<CommandHandlerResult<State, StreamVersion>>;
|
|
9
9
|
|
|
10
10
|
export { DeciderCommandHandler };
|
|
@@ -4,7 +4,7 @@ import { Command, Event, Decider } from '../typing/index.js';
|
|
|
4
4
|
import '../errors/index.js';
|
|
5
5
|
|
|
6
6
|
declare const DeciderCommandHandler: <State, CommandType extends Command, StreamEvent extends Event, StreamVersion = bigint>({ decide, evolve, getInitialState, }: Decider<State, CommandType, StreamEvent>, mapToStreamId?: (id: string) => string) => (eventStore: EventStore<StreamVersion>, id: string, command: CommandType, options?: {
|
|
7
|
-
expectedStreamVersion?: ExpectedStreamVersion<StreamVersion
|
|
8
|
-
}
|
|
7
|
+
expectedStreamVersion?: ExpectedStreamVersion<StreamVersion>;
|
|
8
|
+
}) => Promise<CommandHandlerResult<State, StreamVersion>>;
|
|
9
9
|
|
|
10
10
|
export { DeciderCommandHandler };
|
package/dist/index.d.mts
CHANGED
|
@@ -6,6 +6,8 @@ export { EventEnvelope, EventHandler, EventMetadata, getInMemoryEventStore } fro
|
|
|
6
6
|
export { JSONParser, Mapper, MapperArgs, ParseError, ParseOptions, StringifyOptions } from './serialization/json/JSONParser.mjs';
|
|
7
7
|
export { assertMatches, isSubset } from './testing/assertions.mjs';
|
|
8
8
|
export { DeciderSpecfication, DeciderSpecification } from './testing/deciderSpecification.mjs';
|
|
9
|
+
export { EventStoreFactory, testAggregateStream } from './testing/features.mjs';
|
|
10
|
+
export { DiscountApplied, PricedProductItem, ProductItemAdded, ShoppingCart, ShoppingCartEvent, evolve, getInitialState } from './testing/shoppingCart.domain.mjs';
|
|
9
11
|
export { Brand, Command, Decider, DefaultCommandMetadata, Event, Flavour, Workflow, WorkflowCommand, WorkflowEvent, WorkflowOutput, accept, complete, error, ignore, publish, reply, schedule, send } from './typing/index.mjs';
|
|
10
12
|
export { sum } from './utils/iterators.mjs';
|
|
11
13
|
export { merge } from './utils/merge.mjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,8 @@ export { EventEnvelope, EventHandler, EventMetadata, getInMemoryEventStore } fro
|
|
|
6
6
|
export { JSONParser, Mapper, MapperArgs, ParseError, ParseOptions, StringifyOptions } from './serialization/json/JSONParser.js';
|
|
7
7
|
export { assertMatches, isSubset } from './testing/assertions.js';
|
|
8
8
|
export { DeciderSpecfication, DeciderSpecification } from './testing/deciderSpecification.js';
|
|
9
|
+
export { EventStoreFactory, testAggregateStream } from './testing/features.js';
|
|
10
|
+
export { DiscountApplied, PricedProductItem, ProductItemAdded, ShoppingCart, ShoppingCartEvent, evolve, getInitialState } from './testing/shoppingCart.domain.js';
|
|
9
11
|
export { Brand, Command, Decider, DefaultCommandMetadata, Event, Flavour, Workflow, WorkflowCommand, WorkflowEvent, WorkflowOutput, accept, complete, error, ignore, publish, reply, schedule, send } from './typing/index.js';
|
|
10
12
|
export { sum } from './utils/iterators.js';
|
|
11
13
|
export { merge } from './utils/merge.js';
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-WIMBG2PX.js');var _chunkFE73T2NSjs = require('./chunk-FE73T2NS.js');var _chunk3JE5DUJ2js = require('./chunk-3JE5DUJ2.js');require('./chunk-LOJ6A4AJ.js');require('./chunk-AU2WZCER.js');var _chunkLYKEARRWjs = require('./chunk-LYKEARRW.js');require('./chunk-Z4Z6POJH.js');var _chunkDFPI5IXTjs = require('./chunk-DFPI5IXT.js');var _chunkO34VKX7Rjs = require('./chunk-O34VKX7R.js');var _chunk6WITJBGGjs = require('./chunk-6WITJBGG.js');var _chunk4PGUBQK3js = require('./chunk-4PGUBQK3.js');require('./chunk-Z7EDILIO.js');require('./chunk-7FJXUW3D.js');require('./chunk-BARLLX6S.js');var _chunk7EZVPMJ6js = require('./chunk-7EZVPMJ6.js');require('./chunk-QSAFGRYV.js');require('./chunk-F7QRI2VL.js');var _chunkU3WA3VIWjs = require('./chunk-U3WA3VIW.js');var _chunkOYAO7QEPjs = require('./chunk-OYAO7QEP.js');require('./chunk-2452BJTJ.js');var _chunkBM2H4NCZjs = require('./chunk-BM2H4NCZ.js');require('./chunk-IJGC6SHP.js');var _chunk46YIPCSNjs = require('./chunk-46YIPCSN.js');var _chunkUUCTMJK7js = require('./chunk-UUCTMJK7.js');exports.CommandHandler = _chunkOYAO7QEPjs.a; exports.ConcurrencyError = _chunkUUCTMJK7js.h; exports.DeciderCommandHandler = _chunkU3WA3VIWjs.a; exports.DeciderSpecification = _chunkO34VKX7Rjs.a; exports.EmmettError = _chunkUUCTMJK7js.g; exports.ExpectedVersionConflictError = _chunk46YIPCSNjs.f; exports.IllegalStateError = _chunkUUCTMJK7js.j; exports.JSONParser = _chunkLYKEARRWjs.b; exports.NO_CONCURRENCY_CHECK = _chunk46YIPCSNjs.c; exports.NotFoundError = _chunkUUCTMJK7js.k; exports.ParseError = _chunkLYKEARRWjs.a; exports.STREAM_DOES_NOT_EXIST = _chunk46YIPCSNjs.b; exports.STREAM_EXISTS = _chunk46YIPCSNjs.a; exports.ValidationError = _chunkUUCTMJK7js.i; exports.ValidationErrors = _chunkUUCTMJK7js.a; exports.accept = _chunk7EZVPMJ6js.h; exports.assertExpectedVersionMatchesCurrent = _chunk46YIPCSNjs.e; exports.assertMatches = _chunkDFPI5IXTjs.b; exports.assertNotEmptyString = _chunkUUCTMJK7js.d; exports.assertPositiveNumber = _chunkUUCTMJK7js.e; exports.assertUnsignedBigInt = _chunkUUCTMJK7js.f; exports.complete = _chunk7EZVPMJ6js.e; exports.error = _chunk7EZVPMJ6js.g; exports.evolve = _chunk4PGUBQK3js.a; exports.getInMemoryEventStore = _chunkBM2H4NCZjs.a; exports.getInitialState = _chunk4PGUBQK3js.b; exports.ignore = _chunk7EZVPMJ6js.f; exports.isNumber = _chunkUUCTMJK7js.b; exports.isString = _chunkUUCTMJK7js.c; exports.isSubset = _chunkDFPI5IXTjs.a; exports.matchesExpectedVersion = _chunk46YIPCSNjs.d; exports.merge = _chunk3JE5DUJ2js.a; exports.publish = _chunk7EZVPMJ6js.c; exports.reply = _chunk7EZVPMJ6js.a; exports.schedule = _chunk7EZVPMJ6js.d; exports.send = _chunk7EZVPMJ6js.b; exports.sum = _chunkFE73T2NSjs.a; exports.testAggregateStream = _chunk6WITJBGGjs.a;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"./chunk-
|
|
1
|
+
import"./chunk-PNOEBD4U.mjs";import{a as K}from"./chunk-OBA6MZMG.mjs";import{a as L}from"./chunk-YKFEDBH4.mjs";import"./chunk-DIW552TK.mjs";import"./chunk-7JLAVMM3.mjs";import{a as s,b as u}from"./chunk-PKL7KGJ3.mjs";import"./chunk-TDCMNVXU.mjs";import{a as v,b as w}from"./chunk-RWKXC5FZ.mjs";import{a as y}from"./chunk-32IWULJJ.mjs";import{a as J}from"./chunk-AMRL5G7K.mjs";import{a as H,b as I}from"./chunk-AYVR4VYR.mjs";import"./chunk-C4CXU3PY.mjs";import"./chunk-3LYVXI5R.mjs";import"./chunk-YKICRTHH.mjs";import{a as z,b as A,c as B,d as C,e as D,f as E,g as F,h as G}from"./chunk-ERDVHQZL.mjs";import"./chunk-IZWGWZ3P.mjs";import"./chunk-XLZS42HB.mjs";import{a as q}from"./chunk-O2ZUNWMO.mjs";import{a as n}from"./chunk-JJHE2RKT.mjs";import"./chunk-45ODDXOQ.mjs";import{a as l}from"./chunk-CTCSK4FW.mjs";import"./chunk-D24KLTN5.mjs";import{a as d,b as g,c as h,d as i,e as j,f as k}from"./chunk-UI6CV7VB.mjs";import{a as o,b as r,c as e,d as f,e as m,f as p,g as t,h as x,i as a,j as b,k as c}from"./chunk-YV6PB6LX.mjs";export{n as CommandHandler,x as ConcurrencyError,q as DeciderCommandHandler,y as DeciderSpecification,t as EmmettError,k as ExpectedVersionConflictError,b as IllegalStateError,u as JSONParser,h as NO_CONCURRENCY_CHECK,c as NotFoundError,s as ParseError,g as STREAM_DOES_NOT_EXIST,d as STREAM_EXISTS,a as ValidationError,o as ValidationErrors,G as accept,j as assertExpectedVersionMatchesCurrent,w as assertMatches,f as assertNotEmptyString,m as assertPositiveNumber,p as assertUnsignedBigInt,D as complete,F as error,H as evolve,l as getInMemoryEventStore,I as getInitialState,E as ignore,r as isNumber,e as isString,v as isSubset,i as matchesExpectedVersion,L as merge,B as publish,z as reply,C as schedule,A as send,K as sum,J as testAggregateStream};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -12,7 +12,7 @@ type StringifyOptions<From, To = From> = {
|
|
|
12
12
|
map?: Mapper<From, To>;
|
|
13
13
|
};
|
|
14
14
|
declare const JSONParser: {
|
|
15
|
-
stringify: <From, To = From>(value: From, options?: StringifyOptions<From, To>
|
|
15
|
+
stringify: <From, To = From>(value: From, options?: StringifyOptions<From, To>) => string;
|
|
16
16
|
parse: <From_1, To_1 = From_1>(text: string, options?: ParseOptions<From_1, To_1> | undefined) => To_1 | undefined;
|
|
17
17
|
};
|
|
18
18
|
|
|
@@ -12,7 +12,7 @@ type StringifyOptions<From, To = From> = {
|
|
|
12
12
|
map?: Mapper<From, To>;
|
|
13
13
|
};
|
|
14
14
|
declare const JSONParser: {
|
|
15
|
-
stringify: <From, To = From>(value: From, options?: StringifyOptions<From, To>
|
|
15
|
+
stringify: <From, To = From>(value: From, options?: StringifyOptions<From, To>) => string;
|
|
16
16
|
parse: <From_1, To_1 = From_1>(text: string, options?: ParseOptions<From_1, To_1> | undefined) => To_1 | undefined;
|
|
17
17
|
};
|
|
18
18
|
|
|
@@ -5,11 +5,11 @@ type DeciderSpecfication<Command, Event> = (givenEvents: Event | Event[]) => {
|
|
|
5
5
|
};
|
|
6
6
|
};
|
|
7
7
|
declare const DeciderSpecification: {
|
|
8
|
-
for: <Command,
|
|
9
|
-
decide: (command: Command, state: State) =>
|
|
10
|
-
evolve: (state: State, event:
|
|
8
|
+
for: <Command, Event, State>(decider: {
|
|
9
|
+
decide: (command: Command, state: State) => Event | Event[];
|
|
10
|
+
evolve: (state: State, event: Event) => State;
|
|
11
11
|
initialState: () => State;
|
|
12
|
-
}) => DeciderSpecfication<Command,
|
|
12
|
+
}) => DeciderSpecfication<Command, Event>;
|
|
13
13
|
};
|
|
14
14
|
|
|
15
15
|
export { type DeciderSpecfication, DeciderSpecification };
|
|
@@ -5,11 +5,11 @@ type DeciderSpecfication<Command, Event> = (givenEvents: Event | Event[]) => {
|
|
|
5
5
|
};
|
|
6
6
|
};
|
|
7
7
|
declare const DeciderSpecification: {
|
|
8
|
-
for: <Command,
|
|
9
|
-
decide: (command: Command, state: State) =>
|
|
10
|
-
evolve: (state: State, event:
|
|
8
|
+
for: <Command, Event, State>(decider: {
|
|
9
|
+
decide: (command: Command, state: State) => Event | Event[];
|
|
10
|
+
evolve: (state: State, event: Event) => State;
|
|
11
11
|
initialState: () => State;
|
|
12
|
-
}) => DeciderSpecfication<Command,
|
|
12
|
+
}) => DeciderSpecfication<Command, Event>;
|
|
13
13
|
};
|
|
14
14
|
|
|
15
15
|
export { type DeciderSpecfication, DeciderSpecification };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { E as EventStore } from '../eventStore-DLezSgsV.mjs';
|
|
2
|
+
import '../typing/index.mjs';
|
|
3
|
+
import '../errors/index.mjs';
|
|
4
|
+
|
|
5
|
+
type TestOptions = {
|
|
6
|
+
getInitialIndex: () => bigint;
|
|
7
|
+
teardownHook?: () => Promise<void>;
|
|
8
|
+
};
|
|
9
|
+
type EventStoreFactory = () => Promise<EventStore<bigint>>;
|
|
10
|
+
declare function testAggregateStream(eventStoreFactory: EventStoreFactory, options?: TestOptions): Promise<void>;
|
|
11
|
+
|
|
12
|
+
export { type EventStoreFactory, testAggregateStream };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { E as EventStore } from '../eventStore-N_YMFCDT.js';
|
|
2
|
+
import '../typing/index.js';
|
|
3
|
+
import '../errors/index.js';
|
|
4
|
+
|
|
5
|
+
type TestOptions = {
|
|
6
|
+
getInitialIndex: () => bigint;
|
|
7
|
+
teardownHook?: () => Promise<void>;
|
|
8
|
+
};
|
|
9
|
+
type EventStoreFactory = () => Promise<EventStore<bigint>>;
|
|
10
|
+
declare function testAggregateStream(eventStoreFactory: EventStoreFactory, options?: TestOptions): Promise<void>;
|
|
11
|
+
|
|
12
|
+
export { type EventStoreFactory, testAggregateStream };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk6WITJBGGjs = require('../chunk-6WITJBGG.js');require('../chunk-4PGUBQK3.js');require('../chunk-Z7EDILIO.js');require('../chunk-7FJXUW3D.js');require('../chunk-BARLLX6S.js');require('../chunk-7EZVPMJ6.js');require('../chunk-QSAFGRYV.js');exports.testAggregateStream = _chunk6WITJBGGjs.a;
|
|
2
|
+
//# sourceMappingURL=features.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a}from"../chunk-AMRL5G7K.mjs";import"../chunk-AYVR4VYR.mjs";import"../chunk-C4CXU3PY.mjs";import"../chunk-3LYVXI5R.mjs";import"../chunk-YKICRTHH.mjs";import"../chunk-ERDVHQZL.mjs";import"../chunk-IZWGWZ3P.mjs";export{a as testAggregateStream};
|
|
2
|
+
//# sourceMappingURL=features.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/dist/testing/index.d.mts
CHANGED
|
@@ -1,2 +1,7 @@
|
|
|
1
1
|
export { assertMatches, isSubset } from './assertions.mjs';
|
|
2
2
|
export { DeciderSpecfication, DeciderSpecification } from './deciderSpecification.mjs';
|
|
3
|
+
export { EventStoreFactory, testAggregateStream } from './features.mjs';
|
|
4
|
+
export { DiscountApplied, PricedProductItem, ProductItemAdded, ShoppingCart, ShoppingCartEvent, evolve, getInitialState } from './shoppingCart.domain.mjs';
|
|
5
|
+
import '../eventStore-DLezSgsV.mjs';
|
|
6
|
+
import '../typing/index.mjs';
|
|
7
|
+
import '../errors/index.mjs';
|
package/dist/testing/index.d.ts
CHANGED
|
@@ -1,2 +1,7 @@
|
|
|
1
1
|
export { assertMatches, isSubset } from './assertions.js';
|
|
2
2
|
export { DeciderSpecfication, DeciderSpecification } from './deciderSpecification.js';
|
|
3
|
+
export { EventStoreFactory, testAggregateStream } from './features.js';
|
|
4
|
+
export { DiscountApplied, PricedProductItem, ProductItemAdded, ShoppingCart, ShoppingCartEvent, evolve, getInitialState } from './shoppingCart.domain.js';
|
|
5
|
+
import '../eventStore-N_YMFCDT.js';
|
|
6
|
+
import '../typing/index.js';
|
|
7
|
+
import '../errors/index.js';
|
package/dist/testing/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-Z4Z6POJH.js');var _chunkDFPI5IXTjs = require('../chunk-DFPI5IXT.js');var _chunkO34VKX7Rjs = require('../chunk-O34VKX7R.js');var _chunk6WITJBGGjs = require('../chunk-6WITJBGG.js');var _chunk4PGUBQK3js = require('../chunk-4PGUBQK3.js');require('../chunk-Z7EDILIO.js');require('../chunk-7FJXUW3D.js');require('../chunk-BARLLX6S.js');require('../chunk-7EZVPMJ6.js');require('../chunk-QSAFGRYV.js');exports.DeciderSpecification = _chunkO34VKX7Rjs.a; exports.assertMatches = _chunkDFPI5IXTjs.b; exports.evolve = _chunk4PGUBQK3js.a; exports.getInitialState = _chunk4PGUBQK3js.b; exports.isSubset = _chunkDFPI5IXTjs.a; exports.testAggregateStream = _chunk6WITJBGGjs.a;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/testing/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../chunk-
|
|
1
|
+
import"../chunk-TDCMNVXU.mjs";import{a,b}from"../chunk-RWKXC5FZ.mjs";import{a as c}from"../chunk-32IWULJJ.mjs";import{a as f}from"../chunk-AMRL5G7K.mjs";import{a as d,b as e}from"../chunk-AYVR4VYR.mjs";import"../chunk-C4CXU3PY.mjs";import"../chunk-3LYVXI5R.mjs";import"../chunk-YKICRTHH.mjs";import"../chunk-ERDVHQZL.mjs";import"../chunk-IZWGWZ3P.mjs";export{c as DeciderSpecification,b as assertMatches,d as evolve,e as getInitialState,a as isSubset,f as testAggregateStream};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Event } from '../typing/index.mjs';
|
|
2
|
+
|
|
3
|
+
type PricedProductItem = {
|
|
4
|
+
productId: string;
|
|
5
|
+
quantity: number;
|
|
6
|
+
price: number;
|
|
7
|
+
};
|
|
8
|
+
type ShoppingCart = {
|
|
9
|
+
productItems: PricedProductItem[];
|
|
10
|
+
totalAmount: number;
|
|
11
|
+
};
|
|
12
|
+
type ProductItemAdded = Event<'ProductItemAdded', {
|
|
13
|
+
productItem: PricedProductItem;
|
|
14
|
+
}>;
|
|
15
|
+
type DiscountApplied = Event<'DiscountApplied', {
|
|
16
|
+
percent: number;
|
|
17
|
+
}>;
|
|
18
|
+
type ShoppingCartEvent = ProductItemAdded | DiscountApplied;
|
|
19
|
+
declare const evolve: (state: ShoppingCart, { type, data }: ShoppingCartEvent) => ShoppingCart;
|
|
20
|
+
declare const getInitialState: () => ShoppingCart;
|
|
21
|
+
|
|
22
|
+
export { type DiscountApplied, type PricedProductItem, type ProductItemAdded, type ShoppingCart, type ShoppingCartEvent, evolve, getInitialState };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Event } from '../typing/index.js';
|
|
2
|
+
|
|
3
|
+
type PricedProductItem = {
|
|
4
|
+
productId: string;
|
|
5
|
+
quantity: number;
|
|
6
|
+
price: number;
|
|
7
|
+
};
|
|
8
|
+
type ShoppingCart = {
|
|
9
|
+
productItems: PricedProductItem[];
|
|
10
|
+
totalAmount: number;
|
|
11
|
+
};
|
|
12
|
+
type ProductItemAdded = Event<'ProductItemAdded', {
|
|
13
|
+
productItem: PricedProductItem;
|
|
14
|
+
}>;
|
|
15
|
+
type DiscountApplied = Event<'DiscountApplied', {
|
|
16
|
+
percent: number;
|
|
17
|
+
}>;
|
|
18
|
+
type ShoppingCartEvent = ProductItemAdded | DiscountApplied;
|
|
19
|
+
declare const evolve: (state: ShoppingCart, { type, data }: ShoppingCartEvent) => ShoppingCart;
|
|
20
|
+
declare const getInitialState: () => ShoppingCart;
|
|
21
|
+
|
|
22
|
+
export { type DiscountApplied, type PricedProductItem, type ProductItemAdded, type ShoppingCart, type ShoppingCartEvent, evolve, getInitialState };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk4PGUBQK3js = require('../chunk-4PGUBQK3.js');require('../chunk-Z7EDILIO.js');require('../chunk-7FJXUW3D.js');require('../chunk-BARLLX6S.js');require('../chunk-7EZVPMJ6.js');require('../chunk-QSAFGRYV.js');exports.evolve = _chunk4PGUBQK3js.a; exports.getInitialState = _chunk4PGUBQK3js.b;
|
|
2
|
+
//# sourceMappingURL=shoppingCart.domain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a,b}from"../chunk-AYVR4VYR.mjs";import"../chunk-C4CXU3PY.mjs";import"../chunk-3LYVXI5R.mjs";import"../chunk-YKICRTHH.mjs";import"../chunk-ERDVHQZL.mjs";import"../chunk-IZWGWZ3P.mjs";export{a as evolve,b as getInitialState};
|
|
2
|
+
//# sourceMappingURL=shoppingCart.domain.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/dist/typing/index.d.mts
CHANGED
|
@@ -59,12 +59,8 @@ type WorkflowOutput<TOutput extends Command | Event> = {
|
|
|
59
59
|
reason: string;
|
|
60
60
|
};
|
|
61
61
|
declare const reply: <TOutput extends Command | Event>(message: TOutput) => WorkflowOutput<TOutput>;
|
|
62
|
-
declare const send: <TOutput extends Command | Event>(message:
|
|
63
|
-
|
|
64
|
-
}>) => WorkflowOutput<TOutput>;
|
|
65
|
-
declare const publish: <TOutput extends Command | Event>(message: Extract<TOutput, {
|
|
66
|
-
__brand?: "Event" | undefined;
|
|
67
|
-
}>) => WorkflowOutput<TOutput>;
|
|
62
|
+
declare const send: <TOutput extends Command | Event>(message: WorkflowCommand<TOutput>) => WorkflowOutput<TOutput>;
|
|
63
|
+
declare const publish: <TOutput extends Command | Event>(message: WorkflowEvent<TOutput>) => WorkflowOutput<TOutput>;
|
|
68
64
|
declare const schedule: <TOutput extends Command | Event>(message: TOutput, when: {
|
|
69
65
|
afterInMs: number;
|
|
70
66
|
} | {
|
package/dist/typing/index.d.ts
CHANGED
|
@@ -59,12 +59,8 @@ type WorkflowOutput<TOutput extends Command | Event> = {
|
|
|
59
59
|
reason: string;
|
|
60
60
|
};
|
|
61
61
|
declare const reply: <TOutput extends Command | Event>(message: TOutput) => WorkflowOutput<TOutput>;
|
|
62
|
-
declare const send: <TOutput extends Command | Event>(message:
|
|
63
|
-
|
|
64
|
-
}>) => WorkflowOutput<TOutput>;
|
|
65
|
-
declare const publish: <TOutput extends Command | Event>(message: Extract<TOutput, {
|
|
66
|
-
__brand?: "Event" | undefined;
|
|
67
|
-
}>) => WorkflowOutput<TOutput>;
|
|
62
|
+
declare const send: <TOutput extends Command | Event>(message: WorkflowCommand<TOutput>) => WorkflowOutput<TOutput>;
|
|
63
|
+
declare const publish: <TOutput extends Command | Event>(message: WorkflowEvent<TOutput>) => WorkflowOutput<TOutput>;
|
|
68
64
|
declare const schedule: <TOutput extends Command | Event>(message: TOutput, when: {
|
|
69
65
|
afterInMs: number;
|
|
70
66
|
} | {
|
package/dist/typing/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-Z7EDILIO.js');
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-Z7EDILIO.js');require('../chunk-7FJXUW3D.js');require('../chunk-BARLLX6S.js');var _chunk7EZVPMJ6js = require('../chunk-7EZVPMJ6.js');require('../chunk-QSAFGRYV.js');exports.accept = _chunk7EZVPMJ6js.h; exports.complete = _chunk7EZVPMJ6js.e; exports.error = _chunk7EZVPMJ6js.g; exports.ignore = _chunk7EZVPMJ6js.f; exports.publish = _chunk7EZVPMJ6js.c; exports.reply = _chunk7EZVPMJ6js.a; exports.schedule = _chunk7EZVPMJ6js.d; exports.send = _chunk7EZVPMJ6js.b;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/typing/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../chunk-C4CXU3PY.mjs";import{a,b,c,d,e,f,g,h}from"../chunk-ERDVHQZL.mjs";import"../chunk-IZWGWZ3P.mjs";
|
|
1
|
+
import"../chunk-C4CXU3PY.mjs";import"../chunk-3LYVXI5R.mjs";import"../chunk-YKICRTHH.mjs";import{a,b,c,d,e,f,g,h}from"../chunk-ERDVHQZL.mjs";import"../chunk-IZWGWZ3P.mjs";export{h as accept,e as complete,g as error,f as ignore,c as publish,a as reply,d as schedule,b as send};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/package.json
CHANGED
package/dist/chunk-7H3QW2YD.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";//# sourceMappingURL=chunk-7H3QW2YD.js.map
|
package/dist/chunk-HKEQAT6F.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=chunk-HKEQAT6F.mjs.map
|
|
File without changes
|
|
File without changes
|