atom.io 0.36.3 → 0.37.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.
Files changed (121) hide show
  1. package/dist/data/index.d.ts.map +1 -1
  2. package/dist/data/index.js.map +1 -1
  3. package/dist/eslint-plugin/index.js +1 -2
  4. package/dist/eslint-plugin/index.js.map +1 -1
  5. package/dist/internal/index.d.ts +71 -102
  6. package/dist/internal/index.d.ts.map +1 -1
  7. package/dist/internal/index.js +566 -515
  8. package/dist/internal/index.js.map +1 -1
  9. package/dist/introspection/index.d.ts +2 -2
  10. package/dist/introspection/index.d.ts.map +1 -1
  11. package/dist/introspection/index.js +1 -1
  12. package/dist/introspection/index.js.map +1 -1
  13. package/dist/json/index.d.ts +2 -1
  14. package/dist/json/index.d.ts.map +1 -1
  15. package/dist/json/index.js.map +1 -1
  16. package/dist/main/index.d.ts +154 -139
  17. package/dist/main/index.d.ts.map +1 -1
  18. package/dist/main/index.js.map +1 -1
  19. package/dist/react/index.d.ts.map +1 -1
  20. package/dist/react/index.js.map +1 -1
  21. package/dist/react-devtools/index.d.ts.map +1 -1
  22. package/dist/react-devtools/index.js +54 -56
  23. package/dist/react-devtools/index.js.map +1 -1
  24. package/dist/realtime/index.d.ts.map +1 -1
  25. package/dist/realtime/index.js.map +1 -1
  26. package/dist/realtime-client/index.d.ts +3 -3
  27. package/dist/realtime-client/index.d.ts.map +1 -1
  28. package/dist/realtime-client/index.js +6 -6
  29. package/dist/realtime-client/index.js.map +1 -1
  30. package/dist/realtime-react/index.d.ts.map +1 -1
  31. package/dist/realtime-react/index.js.map +1 -1
  32. package/dist/realtime-server/index.d.ts +5 -5
  33. package/dist/realtime-server/index.d.ts.map +1 -1
  34. package/dist/realtime-server/index.js +10 -12
  35. package/dist/realtime-server/index.js.map +1 -1
  36. package/dist/realtime-testing/index.d.ts.map +1 -1
  37. package/dist/realtime-testing/index.js.map +1 -1
  38. package/dist/transceivers/set-rtx/index.d.ts +1 -1
  39. package/dist/transceivers/set-rtx/index.d.ts.map +1 -1
  40. package/dist/transceivers/set-rtx/index.js +1 -3
  41. package/dist/transceivers/set-rtx/index.js.map +1 -1
  42. package/dist/use-o-DXPncKmZ.js.map +1 -1
  43. package/dist/web/index.d.ts +2 -2
  44. package/dist/web/index.d.ts.map +1 -1
  45. package/dist/web/index.js.map +1 -1
  46. package/package.json +6 -6
  47. package/src/internal/atom/dispose-atom.ts +16 -9
  48. package/src/internal/caching.ts +1 -1
  49. package/src/internal/families/create-readonly-held-selector-family.ts +3 -5
  50. package/src/internal/families/create-readonly-pure-selector-family.ts +3 -5
  51. package/src/internal/families/create-regular-atom-family.ts +7 -7
  52. package/src/internal/families/create-writable-held-selector-family.ts +3 -5
  53. package/src/internal/families/create-writable-pure-selector-family.ts +3 -5
  54. package/src/internal/families/find-in-store.ts +17 -34
  55. package/src/internal/families/init-family-member.ts +5 -87
  56. package/src/internal/families/mint-in-store.ts +74 -0
  57. package/src/internal/get-state/get-from-store.ts +19 -6
  58. package/src/internal/get-state/read-or-compute-value.ts +4 -2
  59. package/src/internal/index.ts +25 -36
  60. package/src/internal/ingest-updates/ingest-atom-update.ts +7 -7
  61. package/src/internal/ingest-updates/ingest-creation-disposal.ts +11 -11
  62. package/src/internal/ingest-updates/ingest-selector-update.ts +8 -4
  63. package/src/internal/ingest-updates/ingest-transaction-update.ts +5 -6
  64. package/src/internal/install-into-store.ts +2 -2
  65. package/src/internal/join/join-internal.ts +1 -1
  66. package/src/internal/molecule.ts +12 -9
  67. package/src/internal/mutable/create-mutable-atom-family.ts +4 -6
  68. package/src/internal/mutable/tracker.ts +2 -2
  69. package/src/internal/mutable/transceiver.ts +6 -4
  70. package/src/internal/operation.ts +17 -14
  71. package/src/internal/selector/create-readonly-held-selector.ts +9 -7
  72. package/src/internal/selector/create-readonly-pure-selector.ts +8 -5
  73. package/src/internal/selector/create-writable-held-selector.ts +12 -21
  74. package/src/internal/selector/create-writable-pure-selector.ts +15 -28
  75. package/src/internal/selector/dispose-selector.ts +6 -1
  76. package/src/internal/selector/get-selector-dependency-keys.ts +2 -6
  77. package/src/internal/selector/register-selector.ts +64 -74
  78. package/src/internal/selector/trace-selector-atoms.ts +2 -2
  79. package/src/internal/selector/update-selector-atoms.ts +2 -2
  80. package/src/internal/set-state/dispatch-state-update.ts +101 -0
  81. package/src/internal/set-state/operate-on-store.ts +126 -0
  82. package/src/internal/set-state/reset-atom-or-selector.ts +24 -15
  83. package/src/internal/set-state/set-atom-or-selector.ts +9 -4
  84. package/src/internal/set-state/set-atom.ts +4 -49
  85. package/src/internal/set-state/set-into-store.ts +11 -77
  86. package/src/internal/set-state/set-selector.ts +35 -0
  87. package/src/internal/store/store.ts +4 -4
  88. package/src/internal/subscribe/subscribe-in-store.ts +3 -3
  89. package/src/internal/subscribe/subscribe-to-timeline.ts +2 -2
  90. package/src/internal/timeline/create-timeline.ts +57 -101
  91. package/src/internal/timeline/time-travel.ts +1 -1
  92. package/src/internal/transaction/abort-transaction.ts +1 -1
  93. package/src/internal/transaction/apply-transaction.ts +7 -7
  94. package/src/internal/transaction/build-transaction.ts +10 -9
  95. package/src/internal/transaction/create-transaction.ts +4 -3
  96. package/src/internal/transaction/index.ts +6 -2
  97. package/src/introspection/attach-introspection-states.ts +2 -2
  98. package/src/introspection/attach-transaction-logs.ts +13 -6
  99. package/src/json/index.ts +3 -1
  100. package/src/main/atom.ts +2 -1
  101. package/src/main/events.ts +109 -0
  102. package/src/main/get-state.ts +1 -1
  103. package/src/main/index.ts +3 -0
  104. package/src/main/subscribe.ts +9 -19
  105. package/src/main/timeline.ts +3 -21
  106. package/src/main/transaction.ts +0 -65
  107. package/src/main/validators.ts +8 -2
  108. package/src/react-devtools/TimelineIndex.tsx +1 -1
  109. package/src/react-devtools/TransactionIndex.tsx +5 -3
  110. package/src/react-devtools/Updates.tsx +54 -46
  111. package/src/realtime-client/continuity/register-and-attempt-confirmed-update.ts +20 -10
  112. package/src/realtime-client/realtime-client-stores/client-sync-store.ts +4 -4
  113. package/src/realtime-client/sync-continuity.ts +1 -1
  114. package/src/realtime-server/continuity/prepare-to-serve-transaction-request.ts +14 -8
  115. package/src/realtime-server/continuity/prepare-to-track-client-acknowledgement.ts +5 -2
  116. package/src/realtime-server/continuity/subscribe-to-continuity-actions.ts +1 -1
  117. package/src/realtime-server/realtime-action-receiver.ts +6 -3
  118. package/src/realtime-server/realtime-server-stores/server-sync-store.ts +13 -16
  119. package/src/transceivers/set-rtx/set-rtx.ts +1 -3
  120. package/src/web/persist-sync.ts +2 -2
  121. package/src/internal/set-state/emit-update.ts +0 -40
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":["family:\n\t\t| AtomIO.ReadonlyPureSelectorFamilyToken<State, Key>\n\t\t| AtomIO.RegularAtomFamilyToken<State, Key>\n\t\t| AtomIO.WritablePureSelectorFamilyToken<State, Key>","index:\n\t\t| AtomIO.ReadonlyPureSelectorToken<Key[]>\n\t\t| AtomIO.RegularAtomToken<Key[]>\n\t\t| AtomIO.WritablePureSelectorToken<Key[]>","store: Store","options: {\n\t\tkey: Key\n\t\tdefault: Struct\n\t}","store: Store","options: {\n\tkey: Key\n\tdefault: Struct\n}"],"sources":["../../src/data/dict.ts","../../src/data/struct.ts","../../src/data/struct-family.ts"],"sourcesContent":[],"mappings":";;;;;iBASgB,YAAhB,YAAwC,SAAxB,CAAA,CAAA,MAAA,EAEZ,MAAA,CAAO,+BAFK,CAE2B,KAF3B,EAEkC,GAFlC,CAAA,GAGZ,MAAA,CAAO,sBAHK,CAGkB,KAHlB,EAGyB,GAHzB,CAAA,GAIZ,MAAA,CAAO,+BAJK,CAI2B,KAJ3B,EAIkC,GAJlC,CAAA,EAAA,KAAA,EAMZ,MAAA,CAAO,yBANK,CAMqB,GANrB,EAAA,CAAA,GAOZ,MAAA,CAAO,gBAPK,CAOY,GAPZ,EAAA,CAAA,GAQZ,MAAA,CAAO,yBARK,CAQqB,GARrB,EAAA,CAAA,EAAA,KAAA,CAAA,EASR,KATQ,CAAA,EAUb,MAAA,CAAO,yBAVM,CAAA,QAU4B,WAV5B,CAUwC,GAVxC,CAAA,GAU+C,KAV/C,EAAA,CAAA;;;iBCAA;;ADAhB,CAAA,EAAgB,YAAA,MAAA,CAAA,CAAA,OAAwB,EAAA;EAAA,GAAA,ECKjC,GDHoC;EAAA,OAAO,ECIvC,MDJuC;CAAA,EAAA,KAAvC,CAAP,ECMI,KDNG,CAAA,EAAA,CAAA,QAAA,MCSG,MDTH,IAAA,GCSgB,GDThB,GCSsB,UDTtB,CCUR,CDVQ,GAAA,MAAA,CAAA,OAAA,GCWE,MAAA,CAAO,gBDXT,CCW0B,MDX1B,CCWiC,CDXjC,CAAA,CAAA,EAAA,ECaV,MAAA,CAAO,yBDbG,CCauB,MDbvB,CAAA,CAAA;;;iBEAK;EFFhB,GAAgB,EEMV,GFNU;EAAA,OAAA,EEON,MFPM;CAAA,CAAA,EAAA,CAAA,QAAwB,MEU1B,MFV0B,IAAA,OEUT,UFVS,CEUE,GFVF,GAAA,MAAA,CAAA,GEUkB,UFVlB,CEWrC,CFXqC,GAAA,MAAA,CAAA,OAAA,GEY3B,MAAA,CAAO,sBFZoB,CEYG,MFZH,CEYU,CFZV,CAAA,EAAA,MAAA,CAAA,EAAA,EEcvC,MAAA,CAAO,+BFdgC,CEcA,MFdA,EAAA,MAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/data/dict.ts","../../src/data/struct.ts","../../src/data/struct-family.ts"],"sourcesContent":[],"mappings":";;;;;iBASgB,YAAhB,YAAwC,SAAxB,CAAA,CAAA,MAAA,EAEZ,MAAA,CAAO,+BAFK,CAE2B,KAF3B,EAEkC,GAFlC,CAAA,GAGZ,MAAA,CAAO,sBAHK,CAGkB,KAHlB,EAGyB,GAHzB,CAAA,GAIZ,MAAA,CAAO,+BAJK,CAI2B,KAJ3B,EAIkC,GAJlC,CAAA,EAAA,KAAA,EAMZ,MAAA,CAAO,yBANK,CAMqB,GANrB,EAAA,CAAA,GAOZ,MAAA,CAAO,gBAPK,CAOY,GAPZ,EAAA,CAAA,GAQZ,MAAA,CAAO,yBARK,CAQqB,GARrB,EAAA,CAAA,EAAA,KAAA,CAAA,EASR,KATQ,CAAA,EAUb,MAAA,CAAO,yBAVM,CAAA,QAU4B,WAV5B,CAUwC,GAVxC,CAAA,GAU+C,KAV/C,EAAA,CAAA;;;iBCAA;;ADAhB,CAAA,EAAgB,YAAA,MAAA,SAAwB,EAAA;OCKjC,GDHoC;SAAO,ECIvC,MDJuC;QAAvC,CAAP,ECMI,KDNG,CAAA,EAAA,CAAA,QAAA,MCSG,MDTH,IAAA,GCSgB,GDThB,GCSsB,UDTtB,CCUR,CDVQ,GAAA,MAAA,CAAA,OAAA,GCWE,MAAA,CAAO,gBDXT,CCW0B,MDX1B,CCWiC,CDXjC,CAAA,CAAA,EAAA,ECaV,MAAA,CAAO,yBDbG,CCauB,MDbvB,CAAA,CAAA;;;iBEAK;EFFhB,GAAgB,EEMV,GFNU;EAAA,OAAA,EEON,MFPM;aAAwB,MEU1B,MFV0B,IAAA,OEUT,UFVS,CEUE,GFVF,GAAA,MAAA,CAAA,GEUkB,UFVlB,CEWrC,CFXqC,GAAA,MAAA,CAAA,OAAA,GEY3B,MAAA,CAAO,sBFZoB,CEYG,MFZH,CEYU,CFZV,CAAA,EAAA,MAAA,CAAA,EAAA,EEcvC,MAAA,CAAO,+BFdgC,CEcA,MFdA,EAAA,MAAA,CAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["family:\n\t\t| AtomIO.ReadonlyPureSelectorFamilyToken<State, Key>\n\t\t| AtomIO.RegularAtomFamilyToken<State, Key>\n\t\t| AtomIO.WritablePureSelectorFamilyToken<State, Key>","index:\n\t\t| AtomIO.ReadonlyPureSelectorToken<Key[]>\n\t\t| AtomIO.RegularAtomToken<Key[]>\n\t\t| AtomIO.WritablePureSelectorToken<Key[]>","store: Store","options: {\n\t\tkey: Key\n\t\tdefault: Struct\n\t}","store: Store","atoms: {\n\t\t[K in keyof Struct as `${Key}${Capitalize<\n\t\t\tK & string\n\t\t>}State`]: AtomIO.RegularAtomToken<Struct[K]>\n\t}","topKey: string","subKey: string","options: {\n\tkey: Key\n\tdefault: Struct\n}","atoms: {\n\t\t[K in keyof Struct as `find${Capitalize<Key & string>}${Capitalize<\n\t\t\tK & string\n\t\t>}State`]: AtomIO.RegularAtomFamilyToken<Struct[K], string>\n\t}","findStructState: AtomIO.ReadonlyPureSelectorFamilyToken<Struct, string>"],"sources":["../../src/data/dict.ts","../../src/data/struct.ts","../../src/data/struct-family.ts"],"sourcesContent":["import type * as AtomIO from \"atom.io\"\nimport type { Store } from \"atom.io/internal\"\nimport {\n\tcreateStandaloneSelector,\n\tfindInStore,\n\tIMPLICIT,\n} from \"atom.io/internal\"\nimport type { Canonical, stringified } from \"atom.io/json\"\n\nexport function dict<State, Key extends Canonical>(\n\tfamily:\n\t\t| AtomIO.ReadonlyPureSelectorFamilyToken<State, Key>\n\t\t| AtomIO.RegularAtomFamilyToken<State, Key>\n\t\t| AtomIO.WritablePureSelectorFamilyToken<State, Key>,\n\tindex:\n\t\t| AtomIO.ReadonlyPureSelectorToken<Key[]>\n\t\t| AtomIO.RegularAtomToken<Key[]>\n\t\t| AtomIO.WritablePureSelectorToken<Key[]>,\n\tstore: Store = IMPLICIT.STORE,\n): AtomIO.ReadonlyPureSelectorToken<{ [K in stringified<Key>]: State }> {\n\treturn createStandaloneSelector(store, {\n\t\tkey: `${family.key}Dict`,\n\t\tget: ({ get }) => {\n\t\t\tconst keys = get(index)\n\t\t\treturn keys.reduce((acc, key) => {\n\t\t\t\tacc[key] = get(findInStore(store, family, key))\n\t\t\t\treturn acc\n\t\t\t}, {} as any)\n\t\t},\n\t})\n}\n","import type * as AtomIO from \"atom.io\"\nimport type { Store } from \"atom.io/internal\"\nimport {\n\tcapitalize,\n\tcreateRegularAtom,\n\tcreateStandaloneSelector,\n\tIMPLICIT,\n} from \"atom.io/internal\"\n\nexport function struct<\n\tStruct extends { [key: string]: unknown },\n\tKey extends string,\n>(\n\toptions: {\n\t\tkey: Key\n\t\tdefault: Struct\n\t},\n\tstore: Store = IMPLICIT.STORE,\n): [\n\t{\n\t\t[K in keyof Struct as `${Key}${Capitalize<\n\t\t\tK & string\n\t\t>}State`]: AtomIO.RegularAtomToken<Struct[K]>\n\t},\n\tAtomIO.ReadonlyPureSelectorToken<Struct>,\n] {\n\tconst atoms: {\n\t\t[K in keyof Struct as `${Key}${Capitalize<\n\t\t\tK & string\n\t\t>}State`]: AtomIO.RegularAtomToken<Struct[K]>\n\t} = Object.keys(options.default).reduce((acc, key) => {\n\t\tconst atomName = options.key + capitalize(key) + `State`\n\t\tacc[atomName] = createRegularAtom(\n\t\t\tstore,\n\t\t\t{\n\t\t\t\tkey: `${options.key}.${key}`,\n\t\t\t\tdefault: options.default[key],\n\t\t\t},\n\t\t\tundefined,\n\t\t)\n\t\treturn acc\n\t}, {} as any)\n\tconst structState = createStandaloneSelector(store, {\n\t\tkey: options.key,\n\t\tget: ({ get }) => {\n\t\t\treturn Object.keys(options.default).reduce((acc, key) => {\n\t\t\t\t// @ts-expect-error finicky\n\t\t\t\tacc[key] = get(atoms[options.key + capitalize(key) + `State`])\n\t\t\t\treturn acc\n\t\t\t}, {} as any)\n\t\t},\n\t})\n\treturn [atoms, structState]\n}\n","import type * as AtomIO from \"atom.io\"\nimport {\n\tcapitalize,\n\tcreateRegularAtomFamily,\n\tcreateSelectorFamily,\n\tIMPLICIT,\n} from \"atom.io/internal\"\n\nconst nameFamily = (topKey: string, subKey: string) =>\n\t`find` + capitalize(topKey) + capitalize(subKey) + `State`\n\nexport function structFamily<\n\tStruct extends object,\n\tKey extends string,\n>(options: {\n\tkey: Key\n\tdefault: Struct\n}): [\n\t{\n\t\t[K in keyof Struct as `find${Capitalize<Key & string>}${Capitalize<\n\t\t\tK & string\n\t\t>}State`]: AtomIO.RegularAtomFamilyToken<Struct[K], string>\n\t},\n\tAtomIO.ReadonlyPureSelectorFamilyToken<Struct, string>,\n] {\n\tconst atoms: {\n\t\t[K in keyof Struct as `find${Capitalize<Key & string>}${Capitalize<\n\t\t\tK & string\n\t\t>}State`]: AtomIO.RegularAtomFamilyToken<Struct[K], string>\n\t} = Object.keys(options.default).reduce((acc, subKey) => {\n\t\tconst atomFamilyName = nameFamily(options.key, subKey)\n\t\tacc[atomFamilyName] = createRegularAtomFamily(IMPLICIT.STORE, {\n\t\t\tkey: `${options.key}.${subKey}`,\n\t\t\tdefault: (options.default as any)[subKey],\n\t\t})\n\t\treturn acc\n\t}, {} as any)\n\tconst findStructState: AtomIO.ReadonlyPureSelectorFamilyToken<Struct, string> =\n\t\tcreateSelectorFamily(IMPLICIT.STORE, {\n\t\t\tkey: options.key,\n\t\t\tget:\n\t\t\t\t(id) =>\n\t\t\t\t({ find, get }) => {\n\t\t\t\t\treturn Object.keys(options.default).reduce((acc, subKey) => {\n\t\t\t\t\t\tacc[subKey] = get(\n\t\t\t\t\t\t\tfind((atoms as any)[nameFamily(options.key, subKey)], id),\n\t\t\t\t\t\t)\n\t\t\t\t\t\treturn acc\n\t\t\t\t\t}, {} as any)\n\t\t\t\t},\n\t\t})\n\treturn [atoms, findStructState]\n}\n"],"mappings":";;;AASA,SAAgB,KACfA,QAIAC,OAIAC,QAAe,SAAS,OAC+C;AACvE,QAAO,yBAAyB,OAAO;EACtC,KAAK,GAAG,OAAO,IAAI,IAAI,CAAC;EACxB,KAAK,CAAC,EAAE,KAAK,KAAK;GACjB,MAAM,OAAO,IAAI,MAAM;AACvB,UAAO,KAAK,OAAO,CAAC,KAAK,QAAQ;IAChC,IAAI,OAAO,IAAI,YAAY,OAAO,QAAQ,IAAI,CAAC;AAC/C,WAAO;GACP,GAAE,CAAE,EAAQ;EACb;CACD,EAAC;AACF;;;;ACrBD,SAAgB,OAIfC,SAIAC,QAAe,SAAS,OAQvB;CACD,MAAMC,QAIF,OAAO,KAAK,QAAQ,QAAQ,CAAC,OAAO,CAAC,KAAK,QAAQ;EACrD,MAAM,WAAW,QAAQ,MAAM,WAAW,IAAI,GAAG,CAAC,KAAK,CAAC;EACxD,IAAI,YAAY,kBACf,OACA;GACC,KAAK,GAAG,QAAQ,IAAI,CAAC,EAAE,KAAK;GAC5B,SAAS,QAAQ,QAAQ;EACzB,GACD,OACA;AACD,SAAO;CACP,GAAE,CAAE,EAAQ;CACb,MAAM,cAAc,yBAAyB,OAAO;EACnD,KAAK,QAAQ;EACb,KAAK,CAAC,EAAE,KAAK,KAAK;AACjB,UAAO,OAAO,KAAK,QAAQ,QAAQ,CAAC,OAAO,CAAC,KAAK,QAAQ;IAExD,IAAI,OAAO,IAAI,MAAM,QAAQ,MAAM,WAAW,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE;AAC9D,WAAO;GACP,GAAE,CAAE,EAAQ;EACb;CACD,EAAC;AACF,QAAO,CAAC,OAAO,WAAY;AAC3B;;;;AC7CD,MAAM,aAAa,CAACC,QAAgBC,WACnC,CAAC,IAAI,CAAC,GAAG,WAAW,OAAO,GAAG,WAAW,OAAO,GAAG,CAAC,KAAK,CAAC;AAE3D,SAAgB,aAGdC,SAUA;CACD,MAAMC,QAIF,OAAO,KAAK,QAAQ,QAAQ,CAAC,OAAO,CAAC,KAAK,WAAW;EACxD,MAAM,iBAAiB,WAAW,QAAQ,KAAK,OAAO;EACtD,IAAI,kBAAkB,wBAAwB,SAAS,OAAO;GAC7D,KAAK,GAAG,QAAQ,IAAI,CAAC,EAAE,QAAQ;GAC/B,SAAU,QAAQ,QAAgB;EAClC,EAAC;AACF,SAAO;CACP,GAAE,CAAE,EAAQ;CACb,MAAMC,kBACL,qBAAqB,SAAS,OAAO;EACpC,KAAK,QAAQ;EACb,KACC,CAAC,OACD,CAAC,EAAE,MAAM,KAAK,KAAK;AAClB,UAAO,OAAO,KAAK,QAAQ,QAAQ,CAAC,OAAO,CAAC,KAAK,WAAW;IAC3D,IAAI,UAAU,IACb,KAAM,MAAc,WAAW,QAAQ,KAAK,OAAO,GAAG,GAAG,CACzD;AACD,WAAO;GACP,GAAE,CAAE,EAAQ;EACb;CACF,EAAC;AACH,QAAO,CAAC,OAAO,eAAgB;AAC/B"}
1
+ {"version":3,"file":"index.js","names":["atoms: {\n\t\t[K in keyof Struct as `${Key}${Capitalize<\n\t\t\tK & string\n\t\t>}State`]: AtomIO.RegularAtomToken<Struct[K]>\n\t}","atoms: {\n\t\t[K in keyof Struct as `find${Capitalize<Key & string>}${Capitalize<\n\t\t\tK & string\n\t\t>}State`]: AtomIO.RegularAtomFamilyToken<Struct[K], string>\n\t}","findStructState: AtomIO.ReadonlyPureSelectorFamilyToken<Struct, string>"],"sources":["../../src/data/dict.ts","../../src/data/struct.ts","../../src/data/struct-family.ts"],"sourcesContent":["import type * as AtomIO from \"atom.io\"\nimport type { Store } from \"atom.io/internal\"\nimport {\n\tcreateStandaloneSelector,\n\tfindInStore,\n\tIMPLICIT,\n} from \"atom.io/internal\"\nimport type { Canonical, stringified } from \"atom.io/json\"\n\nexport function dict<State, Key extends Canonical>(\n\tfamily:\n\t\t| AtomIO.ReadonlyPureSelectorFamilyToken<State, Key>\n\t\t| AtomIO.RegularAtomFamilyToken<State, Key>\n\t\t| AtomIO.WritablePureSelectorFamilyToken<State, Key>,\n\tindex:\n\t\t| AtomIO.ReadonlyPureSelectorToken<Key[]>\n\t\t| AtomIO.RegularAtomToken<Key[]>\n\t\t| AtomIO.WritablePureSelectorToken<Key[]>,\n\tstore: Store = IMPLICIT.STORE,\n): AtomIO.ReadonlyPureSelectorToken<{ [K in stringified<Key>]: State }> {\n\treturn createStandaloneSelector(store, {\n\t\tkey: `${family.key}Dict`,\n\t\tget: ({ get }) => {\n\t\t\tconst keys = get(index)\n\t\t\treturn keys.reduce((acc, key) => {\n\t\t\t\tacc[key] = get(findInStore(store, family, key))\n\t\t\t\treturn acc\n\t\t\t}, {} as any)\n\t\t},\n\t})\n}\n","import type * as AtomIO from \"atom.io\"\nimport type { Store } from \"atom.io/internal\"\nimport {\n\tcapitalize,\n\tcreateRegularAtom,\n\tcreateStandaloneSelector,\n\tIMPLICIT,\n} from \"atom.io/internal\"\n\nexport function struct<\n\tStruct extends { [key: string]: unknown },\n\tKey extends string,\n>(\n\toptions: {\n\t\tkey: Key\n\t\tdefault: Struct\n\t},\n\tstore: Store = IMPLICIT.STORE,\n): [\n\t{\n\t\t[K in keyof Struct as `${Key}${Capitalize<\n\t\t\tK & string\n\t\t>}State`]: AtomIO.RegularAtomToken<Struct[K]>\n\t},\n\tAtomIO.ReadonlyPureSelectorToken<Struct>,\n] {\n\tconst atoms: {\n\t\t[K in keyof Struct as `${Key}${Capitalize<\n\t\t\tK & string\n\t\t>}State`]: AtomIO.RegularAtomToken<Struct[K]>\n\t} = Object.keys(options.default).reduce((acc, key) => {\n\t\tconst atomName = options.key + capitalize(key) + `State`\n\t\tacc[atomName] = createRegularAtom(\n\t\t\tstore,\n\t\t\t{\n\t\t\t\tkey: `${options.key}.${key}`,\n\t\t\t\tdefault: options.default[key],\n\t\t\t},\n\t\t\tundefined,\n\t\t)\n\t\treturn acc\n\t}, {} as any)\n\tconst structState = createStandaloneSelector(store, {\n\t\tkey: options.key,\n\t\tget: ({ get }) => {\n\t\t\treturn Object.keys(options.default).reduce((acc, key) => {\n\t\t\t\t// @ts-expect-error finicky\n\t\t\t\tacc[key] = get(atoms[options.key + capitalize(key) + `State`])\n\t\t\t\treturn acc\n\t\t\t}, {} as any)\n\t\t},\n\t})\n\treturn [atoms, structState]\n}\n","import type * as AtomIO from \"atom.io\"\nimport {\n\tcapitalize,\n\tcreateRegularAtomFamily,\n\tcreateSelectorFamily,\n\tIMPLICIT,\n} from \"atom.io/internal\"\n\nconst nameFamily = (topKey: string, subKey: string) =>\n\t`find` + capitalize(topKey) + capitalize(subKey) + `State`\n\nexport function structFamily<\n\tStruct extends object,\n\tKey extends string,\n>(options: {\n\tkey: Key\n\tdefault: Struct\n}): [\n\t{\n\t\t[K in keyof Struct as `find${Capitalize<Key & string>}${Capitalize<\n\t\t\tK & string\n\t\t>}State`]: AtomIO.RegularAtomFamilyToken<Struct[K], string>\n\t},\n\tAtomIO.ReadonlyPureSelectorFamilyToken<Struct, string>,\n] {\n\tconst atoms: {\n\t\t[K in keyof Struct as `find${Capitalize<Key & string>}${Capitalize<\n\t\t\tK & string\n\t\t>}State`]: AtomIO.RegularAtomFamilyToken<Struct[K], string>\n\t} = Object.keys(options.default).reduce((acc, subKey) => {\n\t\tconst atomFamilyName = nameFamily(options.key, subKey)\n\t\tacc[atomFamilyName] = createRegularAtomFamily(IMPLICIT.STORE, {\n\t\t\tkey: `${options.key}.${subKey}`,\n\t\t\tdefault: (options.default as any)[subKey],\n\t\t})\n\t\treturn acc\n\t}, {} as any)\n\tconst findStructState: AtomIO.ReadonlyPureSelectorFamilyToken<Struct, string> =\n\t\tcreateSelectorFamily(IMPLICIT.STORE, {\n\t\t\tkey: options.key,\n\t\t\tget:\n\t\t\t\t(id) =>\n\t\t\t\t({ find, get }) => {\n\t\t\t\t\treturn Object.keys(options.default).reduce((acc, subKey) => {\n\t\t\t\t\t\tacc[subKey] = get(\n\t\t\t\t\t\t\tfind((atoms as any)[nameFamily(options.key, subKey)], id),\n\t\t\t\t\t\t)\n\t\t\t\t\t\treturn acc\n\t\t\t\t\t}, {} as any)\n\t\t\t\t},\n\t\t})\n\treturn [atoms, findStructState]\n}\n"],"mappings":";;;AASA,SAAgB,KACf,QAIA,OAIA,QAAe,SAAS,OAC+C;AACvE,QAAO,yBAAyB,OAAO;EACtC,KAAK,GAAG,OAAO,IAAI;EACnB,MAAM,EAAE,KAAK,KAAK;GACjB,MAAM,OAAO,IAAI;AACjB,UAAO,KAAK,QAAQ,KAAK,QAAQ;AAChC,QAAI,OAAO,IAAI,YAAY,OAAO,QAAQ;AAC1C,WAAO;GACP,GAAE,EAAE;EACL;EACD;AACD;;;;ACrBD,SAAgB,OAIf,SAIA,QAAe,SAAS,OAQvB;CACD,MAAMA,QAIF,OAAO,KAAK,QAAQ,SAAS,QAAQ,KAAK,QAAQ;EACrD,MAAM,WAAW,QAAQ,MAAM,WAAW,OAAO;AACjD,MAAI,YAAY,kBACf,OACA;GACC,KAAK,GAAG,QAAQ,IAAI,GAAG;GACvB,SAAS,QAAQ,QAAQ;GACzB,EACD;AAED,SAAO;CACP,GAAE,EAAE;CACL,MAAM,cAAc,yBAAyB,OAAO;EACnD,KAAK,QAAQ;EACb,MAAM,EAAE,KAAK,KAAK;AACjB,UAAO,OAAO,KAAK,QAAQ,SAAS,QAAQ,KAAK,QAAQ;AAExD,QAAI,OAAO,IAAI,MAAM,QAAQ,MAAM,WAAW,OAAO;AACrD,WAAO;GACP,GAAE,EAAE;EACL;EACD;AACD,QAAO,CAAC,OAAO,YAAY;AAC3B;;;;AC7CD,MAAM,cAAc,QAAgB,WACnC,SAAS,WAAW,UAAU,WAAW,UAAU;AAEpD,SAAgB,aAGd,SAUA;CACD,MAAMC,QAIF,OAAO,KAAK,QAAQ,SAAS,QAAQ,KAAK,WAAW;EACxD,MAAM,iBAAiB,WAAW,QAAQ,KAAK;AAC/C,MAAI,kBAAkB,wBAAwB,SAAS,OAAO;GAC7D,KAAK,GAAG,QAAQ,IAAI,GAAG;GACvB,SAAU,QAAQ,QAAgB;GAClC;AACD,SAAO;CACP,GAAE,EAAE;CACL,MAAMC,kBACL,qBAAqB,SAAS,OAAO;EACpC,KAAK,QAAQ;EACb,MACE,QACA,EAAE,MAAM,KAAK,KAAK;AAClB,UAAO,OAAO,KAAK,QAAQ,SAAS,QAAQ,KAAK,WAAW;AAC3D,QAAI,UAAU,IACb,KAAM,MAAc,WAAW,QAAQ,KAAK,UAAU;AAEvD,WAAO;GACP,GAAE,EAAE;EACL;EACF;AACF,QAAO,CAAC,OAAO,gBAAgB;AAC/B"}
@@ -51,8 +51,7 @@ __export(rules_exports, { explicitStateTypes: () => explicitStateTypes });
51
51
  //#endregion
52
52
  //#region src/eslint-plugin/index.ts
53
53
  const plugin = { rules: { "explicit-state-types": explicitStateTypes } };
54
- var eslint_plugin_default = plugin;
55
54
 
56
55
  //#endregion
57
- export { rules_exports as Rules, eslint_plugin_default as default };
56
+ export { rules_exports as Rules, plugin as default };
58
57
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["explicitStateTypes: ESLintUtils.RuleModule<\n\t`noTypeArgument`,\n\t[],\n\tunknown,\n\tESLintUtils.RuleListener\n>","plugin: ESLint.Plugin"],"sources":["../../src/eslint-plugin/rules/explicit-state-types.ts","../../src/eslint-plugin/rules/index.ts","../../src/eslint-plugin/index.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/switch-exhaustiveness-check */\nimport { ESLintUtils } from \"@typescript-eslint/utils\"\n\nconst createRule = ESLintUtils.RuleCreator(\n\t(name) => `https://atom.io.fyi/docs/eslint-plugin#${name}`,\n)\n\nconst STATE_FUNCTIONS = [\n\t`atom`,\n\t`atomFamily`,\n\t`mutableAtom`,\n\t`mutableAtomFamily`,\n\t`selector`,\n\t`selectorFamily`,\n]\n\nexport const explicitStateTypes: ESLintUtils.RuleModule<\n\t`noTypeArgument`,\n\t[],\n\tunknown,\n\tESLintUtils.RuleListener\n> = createRule({\n\tname: `explicit-state-types`,\n\tmeta: {\n\t\ttype: `problem`,\n\t\tdocs: {\n\t\t\tdescription: `State declarations must have generic type arguments directly passed to them`,\n\t\t},\n\t\tmessages: {\n\t\t\tnoTypeArgument: `State declarations must have generic type arguments directly passed to them.`,\n\t\t},\n\t\tschema: [], // no options\n\t},\n\tdefaultOptions: [],\n\tcreate(context) {\n\t\treturn {\n\t\t\tCallExpression(node) {\n\t\t\t\tconst { callee } = node\n\t\t\t\tswitch (callee.type) {\n\t\t\t\t\tcase `Identifier`: {\n\t\t\t\t\t\tif (STATE_FUNCTIONS.includes(callee.name)) {\n\t\t\t\t\t\t\tif (!node.typeArguments) {\n\t\t\t\t\t\t\t\tcontext.report({\n\t\t\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t\t\t\tmessageId: `noTypeArgument`,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase `MemberExpression`: {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tcallee.property.type === `Identifier` &&\n\t\t\t\t\t\t\tSTATE_FUNCTIONS.includes(callee.property.name)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tif (!node.typeArguments) {\n\t\t\t\t\t\t\t\tcontext.report({\n\t\t\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t\t\t\tmessageId: `noTypeArgument`,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t}\n\t},\n})\n","export * from \"./explicit-state-types\"\n","import type { ESLint } from \"eslint\"\n\nimport * as Rules from \"./rules\"\n\nexport { Rules }\n\nconst plugin: ESLint.Plugin = {\n\trules: {\n\t\t\"explicit-state-types\": Rules.explicitStateTypes as any,\n\t},\n} satisfies ESLint.Plugin\n\nexport default plugin\n"],"mappings":";;;;AAGA,MAAM,aAAa,YAAY,YAC9B,CAAC,SAAS,CAAC,uCAAuC,EAAE,MAAM,CAC1D;AAED,MAAM,kBAAkB;CACvB,CAAC,IAAI,CAAC;CACN,CAAC,UAAU,CAAC;CACZ,CAAC,WAAW,CAAC;CACb,CAAC,iBAAiB,CAAC;CACnB,CAAC,QAAQ,CAAC;CACV,CAAC,cAAc,CAAC;AAChB;AAED,MAAaA,qBAKT,WAAW;CACd,MAAM,CAAC,oBAAoB,CAAC;CAC5B,MAAM;EACL,MAAM,CAAC,OAAO,CAAC;EACf,MAAM,EACL,aAAa,CAAC,2EAA2E,CAAC,CAC1F;EACD,UAAU,EACT,gBAAgB,CAAC,4EAA4E,CAAC,CAC9F;EACD,QAAQ,CAAE;CACV;CACD,gBAAgB,CAAE;CAClB,OAAO,SAAS;AACf,SAAO,EACN,eAAe,MAAM;GACpB,MAAM,EAAE,QAAQ,GAAG;AACnB,WAAQ,OAAO,MAAf;IACC,KAAK,CAAC,UAAU,CAAC;AAChB,SAAI,gBAAgB,SAAS,OAAO,KAAK,EACxC;UAAI,CAAC,KAAK,eACT,QAAQ,OAAO;OACd;OACA,WAAW,CAAC,cAAc,CAAC;MAC3B,EAAC;KACF;AAEF;IAED,KAAK,CAAC,gBAAgB,CAAC,CACtB,KACC,OAAO,SAAS,SAAS,CAAC,UAAU,CAAC,IACrC,gBAAgB,SAAS,OAAO,SAAS,KAAK,EAE9C;SAAI,CAAC,KAAK,eACT,QAAQ,OAAO;MACd;MACA,WAAW,CAAC,cAAc,CAAC;KAC3B,EAAC;IACF;GAGH;EACD,EACD;CACD;AACD,EAAC;;;;;;;;;AE7DF,MAAMC,SAAwB,EAC7B,OAAO,EACN,2CACA,EACD;AAED,4BAAe"}
1
+ {"version":3,"file":"index.js","names":["explicitStateTypes: ESLintUtils.RuleModule<\n\t`noTypeArgument`,\n\t[],\n\tunknown,\n\tESLintUtils.RuleListener\n>","plugin: ESLint.Plugin"],"sources":["../../src/eslint-plugin/rules/explicit-state-types.ts","../../src/eslint-plugin/rules/index.ts","../../src/eslint-plugin/index.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/switch-exhaustiveness-check */\nimport { ESLintUtils } from \"@typescript-eslint/utils\"\n\nconst createRule = ESLintUtils.RuleCreator(\n\t(name) => `https://atom.io.fyi/docs/eslint-plugin#${name}`,\n)\n\nconst STATE_FUNCTIONS = [\n\t`atom`,\n\t`atomFamily`,\n\t`mutableAtom`,\n\t`mutableAtomFamily`,\n\t`selector`,\n\t`selectorFamily`,\n]\n\nexport const explicitStateTypes: ESLintUtils.RuleModule<\n\t`noTypeArgument`,\n\t[],\n\tunknown,\n\tESLintUtils.RuleListener\n> = createRule({\n\tname: `explicit-state-types`,\n\tmeta: {\n\t\ttype: `problem`,\n\t\tdocs: {\n\t\t\tdescription: `State declarations must have generic type arguments directly passed to them`,\n\t\t},\n\t\tmessages: {\n\t\t\tnoTypeArgument: `State declarations must have generic type arguments directly passed to them.`,\n\t\t},\n\t\tschema: [], // no options\n\t},\n\tdefaultOptions: [],\n\tcreate(context) {\n\t\treturn {\n\t\t\tCallExpression(node) {\n\t\t\t\tconst { callee } = node\n\t\t\t\tswitch (callee.type) {\n\t\t\t\t\tcase `Identifier`: {\n\t\t\t\t\t\tif (STATE_FUNCTIONS.includes(callee.name)) {\n\t\t\t\t\t\t\tif (!node.typeArguments) {\n\t\t\t\t\t\t\t\tcontext.report({\n\t\t\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t\t\t\tmessageId: `noTypeArgument`,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase `MemberExpression`: {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tcallee.property.type === `Identifier` &&\n\t\t\t\t\t\t\tSTATE_FUNCTIONS.includes(callee.property.name)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tif (!node.typeArguments) {\n\t\t\t\t\t\t\t\tcontext.report({\n\t\t\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t\t\t\tmessageId: `noTypeArgument`,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t}\n\t},\n})\n","export * from \"./explicit-state-types\"\n","import type { ESLint } from \"eslint\"\n\nimport * as Rules from \"./rules\"\n\nexport { Rules }\n\nconst plugin: ESLint.Plugin = {\n\trules: {\n\t\t\"explicit-state-types\": Rules.explicitStateTypes as any,\n\t},\n} satisfies ESLint.Plugin\n\nexport default plugin\n"],"mappings":";;;;AAGA,MAAM,aAAa,YAAY,aAC7B,SAAS,0CAA0C;AAGrD,MAAM,kBAAkB;CACvB;CACA;CACA;CACA;CACA;CACA;CACA;AAED,MAAaA,qBAKT,WAAW;CACd,MAAM;CACN,MAAM;EACL,MAAM;EACN,MAAM,EACL,aAAa,+EACb;EACD,UAAU,EACT,gBAAgB,gFAChB;EACD,QAAQ,EAAE;EACV;CACD,gBAAgB,EAAE;CAClB,OAAO,SAAS;AACf,SAAO,EACN,eAAe,MAAM;GACpB,MAAM,EAAE,QAAQ,GAAG;AACnB,WAAQ,OAAO,MAAf;IACC,KAAK;AACJ,SAAI,gBAAgB,SAAS,OAAO,OACnC;UAAI,CAAC,KAAK,cACT,SAAQ,OAAO;OACd;OACA,WAAW;OACX;KACD;AAEF;IAED,KAAK,mBACJ,KACC,OAAO,SAAS,SAAS,gBACzB,gBAAgB,SAAS,OAAO,SAAS,OAEzC;SAAI,CAAC,KAAK,cACT,SAAQ,OAAO;MACd;MACA,WAAW;MACX;IACD;GAGH;EACD,GACD;CACD;CACD;;;;;;;;;AE7DD,MAAMC,SAAwB,EAC7B,OAAO,EACN,4CACA,EACD"}
@@ -1,5 +1,5 @@
1
1
  import { Canonical, Json, stringified } from "atom.io/json";
2
- import { Above, ActorToolkit, Anarchy, AtomFamilyToken, AtomIOLogger, AtomIOToken, AtomToken, Claim, CompoundFrom, CompoundTypedKey, FamilyMetadata, HeldSelectorFamilyToken, HeldSelectorToken, Hierarchy, JoinOptions, JoinStates, JoinToken, KeyedStateUpdate, Logger, MoleculeCreation, MoleculeDisposal, MoleculeTransfer, MutableAtomFamilyOptions, MutableAtomFamilyToken, MutableAtomOptions, MutableAtomToken, PureSelectorFamilyToken, PureSelectorToken, ReadableFamilyToken, ReadableToken, ReadonlyHeldSelectorFamilyOptions, ReadonlyHeldSelectorFamilyToken, ReadonlyHeldSelectorOptions, ReadonlyHeldSelectorToken, ReadonlyPureSelectorFamilyOptions, ReadonlyPureSelectorFamilyToken, ReadonlyPureSelectorOptions, ReadonlyPureSelectorToken, ReadonlySelectorFamilyToken, ReadonlySelectorToken, RegularAtomFamilyOptions, RegularAtomFamilyToken, RegularAtomOptions, RegularAtomToken, SelectorFamilyToken, SelectorToken, SingularTypedKey, StateCreation, StateDisposal, StateLifecycleEvent, StateUpdate, TimelineManageable, TimelineOptions, TimelineToken, TimelineUpdate, TokenType, TransactionOptions, TransactionToken, TransactionUpdate, TransactionUpdateHandler, UpdateHandler, Vassal, WritableFamilyToken, WritableHeldSelectorFamilyOptions, WritableHeldSelectorFamilyToken, WritableHeldSelectorOptions, WritableHeldSelectorToken, WritablePureSelectorFamilyOptions, WritablePureSelectorFamilyToken, WritablePureSelectorOptions, WritablePureSelectorToken, WritableSelectorFamilyToken, WritableSelectorToken, WritableToken, WriterToolkit } from "atom.io";
2
+ import { Above, ActorToolkit, Anarchy, AtomFamilyToken, AtomIOLogger, AtomIOToken, AtomToken, AtomUpdateEvent, Claim, CompoundFrom, CompoundTypedKey, FamilyMetadata, HeldSelectorFamilyToken, HeldSelectorToken, Hierarchy, JoinOptions, JoinStates, JoinToken, Logger, MoleculeCreationEvent, MoleculeDisposalEvent, MoleculeTransferEvent, MutableAtomFamilyOptions, MutableAtomFamilyToken, MutableAtomOptions, MutableAtomToken, PureSelectorFamilyToken, PureSelectorToken, ReadableFamilyToken, ReadableToken, ReadonlyHeldSelectorFamilyOptions, ReadonlyHeldSelectorFamilyToken, ReadonlyHeldSelectorOptions, ReadonlyHeldSelectorToken, ReadonlyPureSelectorFamilyOptions, ReadonlyPureSelectorFamilyToken, ReadonlyPureSelectorOptions, ReadonlyPureSelectorToken, ReadonlySelectorFamilyToken, ReadonlySelectorToken, RegularAtomFamilyOptions, RegularAtomFamilyToken, RegularAtomOptions, RegularAtomToken, SelectorFamilyToken, SelectorToken, SingularTypedKey, StateCreationEvent, StateDisposalEvent, StateLifecycleEvent, StateUpdate, TimelineEvent, TimelineManageable, TimelineOptions, TimelineSelectorUpdateEvent, TimelineToken, TransactionOptions, TransactionOutcomeEvent, TransactionToken, TransactionUpdateHandler, UpdateHandler, Vassal, ViewOf, WritableFamilyToken, WritableHeldSelectorFamilyOptions, WritableHeldSelectorFamilyToken, WritableHeldSelectorOptions, WritableHeldSelectorToken, WritablePureSelectorFamilyOptions, WritablePureSelectorFamilyToken, WritablePureSelectorOptions, WritablePureSelectorToken, WritableSelectorFamilyToken, WritableSelectorToken, WritableToken, WriterToolkit } from "atom.io";
3
3
  import { SetRTX } from "atom.io/transceivers/set-rtx";
4
4
 
5
5
  //#region src/internal/atom/has-role.d.ts
@@ -167,7 +167,7 @@ declare function isRootStore(store: Store): store is RootStore;
167
167
  declare function isChildStore(store: Store): store is ChildStore;
168
168
  //#endregion
169
169
  //#region src/internal/transaction/build-transaction.d.ts
170
- declare const buildTransaction: (store: Store, key: string, params: any[], id: string) => ChildStore;
170
+ declare const buildTransaction: (store: Store, token: TransactionToken<any>, params: any[], id: string) => ChildStore;
171
171
  //#endregion
172
172
  //#region src/internal/subject.d.ts
173
173
  declare class Subject<T> {
@@ -188,7 +188,7 @@ type Transaction<F extends Fn> = {
188
188
  key: string;
189
189
  type: `transaction`;
190
190
  install: (store: Store) => void;
191
- subject: Subject<TransactionUpdate<F>>;
191
+ subject: Subject<TransactionOutcomeEvent<TransactionToken<F>>>;
192
192
  run: (parameters: Parameters<F>, id?: string) => ReturnType<F>;
193
193
  };
194
194
  declare function createTransaction<F extends Fn>(store: Store, options: TransactionOptions<F>): TransactionToken<F>;
@@ -207,7 +207,7 @@ declare const TRANSACTION_PHASES: readonly ["idle", "building", "applying"];
207
207
  type TransactionPhase = (typeof TRANSACTION_PHASES)[number];
208
208
  type TransactionProgress<F extends Fn> = {
209
209
  phase: `applying` | `building`;
210
- update: TransactionUpdate<F>;
210
+ update: TransactionOutcomeEvent<TransactionToken<F>>;
211
211
  toolkit: ActorToolkit;
212
212
  };
213
213
  type TransactionEpoch = {
@@ -290,61 +290,35 @@ interface Lineage {
290
290
  declare function newest<T extends Lineage>(scion: T): T;
291
291
  //#endregion
292
292
  //#region src/internal/operation.d.ts
293
- type OperationProgress = {
293
+ type OperationProgress = OpenOperation<any> | {
294
294
  open: false;
295
- } | {
295
+ };
296
+ type OpenOperation<R extends ReadableToken<any> = ReadableToken<any>> = {
296
297
  open: true;
298
+ token: R;
297
299
  done: Set<string>;
298
300
  prev: Map<string, any>;
299
- time: number;
300
- token: ReadableToken<any>;
301
+ timestamp: number;
301
302
  };
302
- declare const openOperation: (store: Store, token: ReadableToken<any>) => number | undefined;
303
- declare const closeOperation: (store: Store) => void;
303
+ declare function openOperation(store: Store, token: ReadableToken<any>): number | (Store & {
304
+ operation: OpenOperation;
305
+ });
306
+ declare function closeOperation(store: Store): void;
304
307
  declare const isDone: (store: Store, key: string) => boolean;
305
308
  declare const markDone: (store: Store, key: string) => void;
306
309
  //#endregion
307
310
  //#region src/internal/timeline/create-timeline.d.ts
308
- type TimelineAtomUpdate<ManagedAtom extends TimelineManageable> = Flat<StateUpdate<TokenType<ManagedAtom>> & {
309
- key: string;
310
- type: `atom_update`;
311
- timestamp: number;
312
- family?: FamilyMetadata;
313
- }>;
314
- type TimelineSelectorUpdate<ManagedAtom extends TimelineManageable> = {
315
- key: string;
316
- type: `selector_update`;
317
- timestamp: number;
318
- atomUpdates: Omit<TimelineAtomUpdate<ManagedAtom>, `timestamp`>[];
319
- };
320
- type TimelineTransactionUpdate = Flat<TransactionUpdate<Fn> & {
321
- key: string;
322
- type: `transaction_update`;
323
- timestamp: number;
324
- }>;
325
- type TimelineStateCreation<T extends ReadableToken<any>> = Flat<StateCreation<T> & {
326
- timestamp: number;
327
- }>;
328
- type TimelineStateDisposal<T extends ReadableToken<any>> = Flat<StateDisposal<T> & {
329
- timestamp: number;
330
- }>;
331
- type TimelineMoleculeCreation = Flat<MoleculeCreation & {
332
- timestamp: number;
333
- }>;
334
- type TimelineMoleculeDisposal = Flat<MoleculeDisposal & {
335
- timestamp: number;
336
- }>;
337
311
  type Timeline<ManagedAtom extends TimelineManageable> = {
338
312
  type: `timeline`;
339
313
  key: string;
340
314
  at: number;
341
- shouldCapture?: (update: TimelineUpdate<ManagedAtom>, timeline: Timeline<ManagedAtom>) => boolean;
315
+ shouldCapture?: (update: TimelineEvent<ManagedAtom>, timeline: Timeline<ManagedAtom>) => boolean;
342
316
  timeTraveling: `into_future` | `into_past` | null;
343
- history: TimelineUpdate<ManagedAtom>[];
317
+ history: TimelineEvent<ManagedAtom>[];
344
318
  selectorTime: number | null;
345
319
  transactionKey: string | null;
346
320
  install: (store: Store) => void;
347
- subject: Subject<TimelineUpdate<ManagedAtom> | `redo` | `undo`>;
321
+ subject: Subject<TimelineEvent<ManagedAtom> | `redo` | `undo`>;
348
322
  subscriptions: Map<string, () => void>;
349
323
  };
350
324
  declare function createTimeline<ManagedAtom extends TimelineManageable>(store: Store, options: TimelineOptions<ManagedAtom>, data?: Timeline<ManagedAtom>): TimelineToken<ManagedAtom>;
@@ -405,8 +379,8 @@ type StoreEventCarrier = {
405
379
  transactionCreation: Subject<TransactionToken<Fn>>;
406
380
  transactionApplying: StatefulSubject<TransactionProgress<Fn> | null>;
407
381
  operationClose: Subject<OperationProgress>;
408
- moleculeCreation: Subject<MoleculeCreation>;
409
- moleculeDisposal: Subject<MoleculeDisposal>;
382
+ moleculeCreation: Subject<MoleculeCreationEvent>;
383
+ moleculeDisposal: Subject<MoleculeDisposalEvent>;
410
384
  };
411
385
  declare global {
412
386
  var ATOM_IO_IMPLICIT_STORE: Store | undefined;
@@ -453,12 +427,12 @@ declare function withdraw(store: Store, token: AtomIOToken): AtomIOInternalResou
453
427
  //#endregion
454
428
  //#region src/internal/mutable/transceiver.d.ts
455
429
  interface Transceiver<V, S extends Json.Serializable, J extends Json.Serializable> {
430
+ READONLY_VIEW: V;
456
431
  do: (update: S) => number | `OUT_OF_RANGE` | null;
457
432
  undo: (update: S) => void;
458
433
  subscribe: (key: string, fn: (update: S) => void) => () => void;
459
434
  cacheUpdateNumber: number;
460
435
  getUpdateNumber: (update: S) => number;
461
- view: () => V;
462
436
  toJSON: () => J;
463
437
  }
464
438
  type TransceiverConstructor<J extends Json.Serializable, T extends Transceiver<any, any, J>> = (new () => T) & {
@@ -466,7 +440,6 @@ type TransceiverConstructor<J extends Json.Serializable, T extends Transceiver<a
466
440
  };
467
441
  declare function isTransceiver(value: unknown): value is Transceiver<any, Json.Serializable, Json.Serializable>;
468
442
  type TransceiverMode = `playback` | `record` | `transaction`;
469
- type ViewOf<T> = T extends Transceiver<infer V, any, any> ? V : T;
470
443
  type SignalFrom<T extends Transceiver<any, any, any>> = T extends Transceiver<any, infer S, any> ? S : never;
471
444
  type AsJSON<T extends Transceiver<any, any, any>> = T extends Transceiver<any, any, infer J> ? J : never;
472
445
  type ConstructorOf<T extends Transceiver<any, any, any>> = TransceiverConstructor<AsJSON<T>, T>;
@@ -522,7 +495,7 @@ declare function arbitrary(random?: () => number): string;
522
495
  declare function createRegularAtom<T>(store: Store, options: RegularAtomOptions<T>, family: FamilyMetadata | undefined, internalRoles?: internalRole[]): RegularAtomToken<T>;
523
496
  //#endregion
524
497
  //#region src/internal/atom/dispose-atom.d.ts
525
- declare function disposeAtom(store: Store, atomToken: AtomToken<unknown>): void;
498
+ declare function disposeAtom(store: Store, atomToken: AtomToken<any>): void;
526
499
  //#endregion
527
500
  //#region src/internal/future.d.ts
528
501
  /**
@@ -580,22 +553,16 @@ declare function disposeFromStore(store: Store, token: ReadableToken<any>): void
580
553
  declare function disposeFromStore<K extends Canonical>(store: Store, token: ReadableFamilyToken<any, K>, key: K): void;
581
554
  //#endregion
582
555
  //#region src/internal/families/find-in-store.d.ts
583
- declare function findInStore<T extends Transceiver<any, any, any>, K extends Canonical, Key extends K>(store: Store, token: MutableAtomFamilyToken<T, K>, key: Key): MutableAtomToken<T, K>;
584
- declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: RegularAtomFamilyToken<T, K>, key: Key): RegularAtomToken<T, K>;
585
- declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: AtomFamilyToken<T, K>, key: Key): AtomToken<T, K>;
586
- declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: WritablePureSelectorFamilyToken<T, K>, key: Key): WritablePureSelectorToken<T, K>;
587
- declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: ReadonlyPureSelectorFamilyToken<T, K>, key: Key): ReadonlyPureSelectorToken<T, K>;
588
- declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: SelectorFamilyToken<T, K>, key: Key): SelectorToken<T, K>;
589
- declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: WritableFamilyToken<T, K>, key: Key): WritableToken<T, K>;
590
- declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, token: ReadableFamilyToken<T, K>, key: Key): ReadableToken<T, K>;
556
+ declare function findInStore<T extends Transceiver<any, any, any>, K extends Canonical, Key extends K>(store: Store, familyToken: MutableAtomFamilyToken<T, K>, key: Key): MutableAtomToken<T, K>;
557
+ declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, familyToken: RegularAtomFamilyToken<T, K>, key: Key): RegularAtomToken<T, K>;
558
+ declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, familyToken: AtomFamilyToken<T, K>, key: Key): AtomToken<T, K>;
559
+ declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, familyToken: WritablePureSelectorFamilyToken<T, K>, key: Key): WritablePureSelectorToken<T, K>;
560
+ declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, familyToken: ReadonlyPureSelectorFamilyToken<T, K>, key: Key): ReadonlyPureSelectorToken<T, K>;
561
+ declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, familyToken: SelectorFamilyToken<T, K>, key: Key): SelectorToken<T, K>;
562
+ declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, familyToken: WritableFamilyToken<T, K>, key: Key): WritableToken<T, K>;
563
+ declare function findInStore<T, K extends Canonical, Key extends K>(store: Store, familyToken: ReadableFamilyToken<T, K>, key: Key): ReadableToken<T, K>;
591
564
  //#endregion
592
565
  //#region src/internal/families/init-family-member.d.ts
593
- declare function initFamilyMemberInStore<T extends Transceiver<any, any, any>, K extends Canonical, Key extends K>(store: Store, token: MutableAtomFamilyToken<T, K>, key: Key): MutableAtomToken<T, K>;
594
- declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: RegularAtomFamilyToken<T, K>, key: Key): RegularAtomToken<T, K>;
595
- declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: AtomFamilyToken<T, K>, key: Key): AtomToken<T, K>;
596
- declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: WritablePureSelectorFamilyToken<T, K>, key: Key): WritablePureSelectorToken<T, K>;
597
- declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: ReadonlyPureSelectorFamilyToken<T, K>, key: Key): ReadonlyPureSelectorToken<T, K>;
598
- declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: SelectorFamilyToken<T, K>, key: Key): SelectorToken<T, K>;
599
566
  declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: WritableFamilyToken<T, K>, key: Key): WritableToken<T, K>;
600
567
  declare function initFamilyMemberInStore<T, K extends Canonical, Key extends K>(store: Store, token: ReadableFamilyToken<T, K>, key: Key): ReadableToken<T, K>;
601
568
  //#endregion
@@ -627,20 +594,20 @@ declare function readOrComputeValue<T>(target: Store, state: ReadableState<T>, m
627
594
  declare function getTrace(error: Error): string;
628
595
  //#endregion
629
596
  //#region src/internal/ingest-updates/ingest-atom-update.d.ts
630
- declare function ingestAtomUpdate(applying: `newValue` | `oldValue`, atomUpdate: KeyedStateUpdate<any>, store: Store): void;
597
+ declare function ingestAtomUpdate(applying: `newValue` | `oldValue`, atomUpdate: AtomUpdateEvent<any>, store: Store): void;
631
598
  //#endregion
632
599
  //#region src/internal/ingest-updates/ingest-creation-disposal.d.ts
633
- declare function ingestCreationEvent(update: StateCreation<any>, applying: `newValue` | `oldValue`, store: Store): void;
634
- declare function ingestDisposalEvent(update: StateDisposal<ReadableToken<any>>, applying: `newValue` | `oldValue`, store: Store): void;
635
- declare function ingestMoleculeCreationEvent(update: MoleculeCreation, applying: `newValue` | `oldValue`, store: Store): void;
636
- declare function ingestMoleculeDisposalEvent(update: MoleculeDisposal, applying: `newValue` | `oldValue`, store: Store): void;
637
- declare function ingestMoleculeTransferEvent(update: MoleculeTransfer, applying: `newValue` | `oldValue`, store: Store): void;
600
+ declare function ingestCreationEvent(update: StateCreationEvent<any>, applying: `newValue` | `oldValue`, store: Store): void;
601
+ declare function ingestDisposalEvent(update: StateDisposalEvent<ReadableToken<any>>, applying: `newValue` | `oldValue`, store: Store): void;
602
+ declare function ingestMoleculeCreationEvent(update: MoleculeCreationEvent, applying: `newValue` | `oldValue`, store: Store): void;
603
+ declare function ingestMoleculeDisposalEvent(update: MoleculeDisposalEvent, applying: `newValue` | `oldValue`, store: Store): void;
604
+ declare function ingestMoleculeTransferEvent(update: MoleculeTransferEvent, applying: `newValue` | `oldValue`, store: Store): void;
638
605
  //#endregion
639
606
  //#region src/internal/ingest-updates/ingest-selector-update.d.ts
640
- declare function ingestSelectorUpdate(applying: `newValue` | `oldValue`, selectorUpdate: TimelineSelectorUpdate<any>, store: Store): void;
607
+ declare function ingestSelectorUpdate(applying: `newValue` | `oldValue`, selectorUpdate: TimelineSelectorUpdateEvent<any>, store: Store): void;
641
608
  //#endregion
642
609
  //#region src/internal/ingest-updates/ingest-transaction-update.d.ts
643
- declare function ingestTransactionUpdate(applying: `newValue` | `oldValue`, transactionUpdate: TransactionUpdate<any>, store: Store): void;
610
+ declare function ingestTransactionUpdate(applying: `newValue` | `oldValue`, transactionUpdate: TransactionOutcomeEvent<any>, store: Store): void;
644
611
  //#endregion
645
612
  //#region src/internal/install-into-store.d.ts
646
613
  /**
@@ -685,10 +652,10 @@ type ReservedIntrospectionKey = `🔍 ${string}`;
685
652
  declare function isReservedIntrospectionKey(value: string): value is ReservedIntrospectionKey;
686
653
  //#endregion
687
654
  //#region src/internal/selector/create-readonly-held-selector.d.ts
688
- declare const createReadonlyHeldSelector: <T extends object>(store: Store, options: ReadonlyHeldSelectorOptions<T>, family: FamilyMetadata | undefined) => ReadonlyHeldSelectorToken<T>;
655
+ declare function createReadonlyHeldSelector<T extends object>(store: Store, options: ReadonlyHeldSelectorOptions<T>, family: FamilyMetadata | undefined): ReadonlyHeldSelectorToken<T>;
689
656
  //#endregion
690
657
  //#region src/internal/selector/create-readonly-pure-selector.d.ts
691
- declare const createReadonlyPureSelector: <T>(store: Store, options: ReadonlyPureSelectorOptions<T>, family: FamilyMetadata | undefined) => ReadonlyPureSelectorToken<T>;
658
+ declare function createReadonlyPureSelector<T>(store: Store, options: ReadonlyPureSelectorOptions<T>, family: FamilyMetadata | undefined): ReadonlyPureSelectorToken<T>;
692
659
  //#endregion
693
660
  //#region src/internal/selector/create-standalone-selector.d.ts
694
661
  declare function createStandaloneSelector<T extends object>(store: Store, options: WritableHeldSelectorOptions<T>): WritableHeldSelectorToken<T>;
@@ -697,25 +664,25 @@ declare function createStandaloneSelector<T>(store: Store, options: WritablePure
697
664
  declare function createStandaloneSelector<T>(store: Store, options: ReadonlyPureSelectorOptions<T>): ReadonlyPureSelectorToken<T>;
698
665
  //#endregion
699
666
  //#region src/internal/selector/create-writable-held-selector.d.ts
700
- declare const createWritableHeldSelector: <T extends object>(store: Store, options: WritableHeldSelectorOptions<T>, family: FamilyMetadata | undefined) => WritableHeldSelectorToken<T>;
667
+ declare function createWritableHeldSelector<T extends object>(store: Store, options: WritableHeldSelectorOptions<T>, family: FamilyMetadata | undefined): WritableHeldSelectorToken<T>;
701
668
  //#endregion
702
669
  //#region src/internal/selector/create-writable-pure-selector.d.ts
703
- declare const createWritablePureSelector: <T>(store: Store, options: WritablePureSelectorOptions<T>, family: FamilyMetadata | undefined) => WritablePureSelectorToken<T>;
670
+ declare function createWritablePureSelector<T>(store: Store, options: WritablePureSelectorOptions<T>, family: FamilyMetadata | undefined): WritablePureSelectorToken<T>;
704
671
  //#endregion
705
672
  //#region src/internal/selector/dispose-selector.d.ts
706
673
  declare function disposeSelector(store: Store, selectorToken: SelectorToken<unknown>): void;
707
674
  //#endregion
708
675
  //#region src/internal/selector/get-selector-dependency-keys.d.ts
709
- declare const getSelectorDependencyKeys: (store: Store, key: string) => (AtomKey<unknown> | ReadonlySelectorKey<unknown> | SelectorKey<unknown>)[];
676
+ declare function getSelectorDependencyKeys(store: Store, key: string): (AtomKey<unknown> | ReadonlySelectorKey<unknown> | SelectorKey<unknown>)[];
710
677
  //#endregion
711
678
  //#region src/internal/selector/register-selector.d.ts
712
- declare const registerSelector: (store: Store, selectorType: `readonly_held_selector` | `readonly_pure_selector` | `writable_held_selector` | `writable_pure_selector`, selectorKey: string, covered: Set<string>) => WriterToolkit;
679
+ declare function registerSelector(store: Store, selectorType: `readonly_held_selector` | `readonly_pure_selector` | `writable_held_selector` | `writable_pure_selector`, selectorKey: string, covered: Set<string>): WriterToolkit;
713
680
  //#endregion
714
681
  //#region src/internal/selector/trace-selector-atoms.d.ts
715
- declare const traceRootSelectorAtoms: (store: Store, selectorKey: string, covered?: Set<string>) => Map<string, Atom<unknown>>;
682
+ declare function traceRootSelectorAtoms(store: Store, selectorKey: string, covered?: Set<string>): Map<string, Atom<unknown>>;
716
683
  //#endregion
717
684
  //#region src/internal/selector/update-selector-atoms.d.ts
718
- declare const updateSelectorAtoms: (store: Store, selectorType: `readonly_held_selector` | `readonly_pure_selector` | `writable_held_selector` | `writable_pure_selector`, selectorKey: string, dependency: ReadonlyPureSelectorToken<unknown> | WritableToken<unknown>, covered: Set<string>) => void;
685
+ declare function updateSelectorAtoms(store: Store, selectorType: `readonly_held_selector` | `readonly_pure_selector` | `writable_held_selector` | `writable_pure_selector`, selectorKey: string, dependency: ReadonlyPureSelectorToken<unknown> | WritableToken<unknown>, covered: Set<string>): void;
719
686
  //#endregion
720
687
  //#region src/internal/set-state/become.d.ts
721
688
  type Modify<T> = (thing: T) => T;
@@ -726,7 +693,9 @@ declare function evictDownstreamFromAtom(store: Store, atom: Atom<any>): void;
726
693
  declare function evictDownstreamFromSelector(store: Store, selectorKey: string): void;
727
694
  //#endregion
728
695
  //#region src/internal/set-state/reset-atom-or-selector.d.ts
729
- declare function resetAtomOrSelector(store: Store, state: WritableState<any>): void;
696
+ declare function resetAtomOrSelector<T>(target: Store & {
697
+ operation: OpenOperation;
698
+ }, state: WritableState<T>): [oldValue: T, newValue: T];
730
699
  //#endregion
731
700
  //#region src/internal/set-state/reset-in-store.d.ts
732
701
  declare const RESET_STATE: unique symbol;
@@ -734,11 +703,13 @@ declare function resetInStore(store: Store, token: WritableToken<any>): void;
734
703
  declare function resetInStore<K extends Canonical>(store: Store, token: WritableFamilyToken<any, K>, key: K): void;
735
704
  //#endregion
736
705
  //#region src/internal/set-state/set-atom-or-selector.d.ts
737
- declare const setAtomOrSelector: <T>(store: Store, state: WritableState<T>, value: T | ((oldValue: T) => T)) => void;
706
+ declare const setAtomOrSelector: <T>(target: Store & {
707
+ operation: OpenOperation;
708
+ }, state: WritableState<T>, value: T | ((oldValue: T) => T)) => [oldValue: T, newValue: T];
738
709
  //#endregion
739
710
  //#region src/internal/set-state/set-into-store.d.ts
740
711
  declare function setIntoStore<T, New extends T>(store: Store, token: WritableToken<T>, value: New | typeof RESET_STATE | ((oldValue: T) => New)): void;
741
- declare function setIntoStore<T, K extends Canonical, New extends T>(store: Store, token: WritableFamilyToken<T, K>, key: K, value: New | typeof RESET_STATE | ((oldValue: T) => New)): void;
712
+ declare function setIntoStore<T, K extends Canonical, New extends T, Key extends K>(store: Store, token: WritableFamilyToken<T, K>, key: Key, value: New | typeof RESET_STATE | ((oldValue: T) => New)): void;
742
713
  //#endregion
743
714
  //#region src/internal/subscribe/recall-state.d.ts
744
715
  declare const recallState: <T>(store: Store, state: ReadableState<T>) => T;
@@ -746,8 +717,8 @@ declare const recallState: <T>(store: Store, state: ReadableState<T>) => T;
746
717
  //#region src/internal/subscribe/subscribe-in-store.d.ts
747
718
  declare function subscribeInStore<T>(store: Store, token: ReadableToken<T>, handleUpdate: UpdateHandler<T>, key?: string): () => void;
748
719
  declare function subscribeInStore<F extends Fn>(store: Store, token: TransactionToken<F>, handleUpdate: TransactionUpdateHandler<F>, key?: string): () => void;
749
- declare function subscribeInStore<M extends TimelineManageable>(store: Store, token: TimelineToken<M>, handleUpdate: (update: TimelineUpdate<M> | `redo` | `undo`) => void, key?: string): () => void;
750
- declare function subscribeInStore<M extends TimelineManageable>(store: Store, token: ReadableToken<any> | TimelineToken<M> | TransactionToken<any>, handleUpdate: TransactionUpdateHandler<any> | UpdateHandler<any> | ((update: TimelineUpdate<M> | `redo` | `undo`) => void), key?: string): () => void;
720
+ declare function subscribeInStore<M extends TimelineManageable>(store: Store, token: TimelineToken<M>, handleUpdate: (update: TimelineEvent<M> | `redo` | `undo`) => void, key?: string): () => void;
721
+ declare function subscribeInStore<M extends TimelineManageable>(store: Store, token: ReadableToken<any> | TimelineToken<M> | TransactionToken<any>, handleUpdate: TransactionUpdateHandler<any> | UpdateHandler<any> | ((update: TimelineEvent<M> | `redo` | `undo`) => void), key?: string): () => void;
751
722
  //#endregion
752
723
  //#region src/internal/subscribe/subscribe-to-root-atoms.d.ts
753
724
  declare const subscribeToRootDependency: (target: Store, selector: Selector<any>, atom: Atom<any>) => (() => void);
@@ -756,7 +727,7 @@ declare const subscribeToRootDependency: (target: Store, selector: Selector<any>
756
727
  declare function subscribeToState<T>(store: Store, token: ReadableToken<T>, key: string, handleUpdate: UpdateHandler<T>): () => void;
757
728
  //#endregion
758
729
  //#region src/internal/subscribe/subscribe-to-timeline.d.ts
759
- declare const subscribeToTimeline: <ManagedAtom extends TimelineManageable>(store: Store, token: TimelineToken<ManagedAtom>, key: string, handleUpdate: (update: TimelineUpdate<any> | `redo` | `undo`) => void) => (() => void);
730
+ declare const subscribeToTimeline: <ManagedAtom extends TimelineManageable>(store: Store, token: TimelineToken<ManagedAtom>, key: string, handleUpdate: (update: TimelineEvent<any> | `redo` | `undo`) => void) => (() => void);
760
731
  //#endregion
761
732
  //#region src/internal/subscribe/subscribe-to-transaction.d.ts
762
733
  declare const subscribeToTransaction: <F extends Fn>(store: Store, token: TransactionToken<F>, key: string, handleUpdate: TransactionUpdateHandler<F>) => (() => void);
@@ -766,10 +737,7 @@ type AtomIOState = {
766
737
  key: string;
767
738
  family?: FamilyMetadata;
768
739
  install: (store: Store) => void;
769
- subject: Subject<{
770
- newValue: any;
771
- oldValue: any;
772
- }>;
740
+ subject: Subject<StateUpdate<any>>;
773
741
  };
774
742
  type RegularAtom<T> = Flat<AtomIOState & {
775
743
  type: `atom`;
@@ -786,22 +754,22 @@ type Atom<T> = RegularAtom<T> | (T extends Transceiver<any, any, any> ? MutableA
786
754
  type WritableHeldSelector<T> = Flat<AtomIOState & {
787
755
  type: `writable_held_selector`;
788
756
  const: T;
789
- get: () => T;
790
- set: (newValue: T | ((oldValue: T) => T)) => void;
757
+ getFrom: (target: Store) => T;
758
+ setSelf: (newValue: T) => void;
791
759
  }>;
792
760
  type ReadonlyHeldSelector<T> = Flat<AtomIOState & {
793
761
  type: `readonly_held_selector`;
794
762
  const: T;
795
- get: () => T;
763
+ getFrom: (target: Store) => T;
796
764
  }>;
797
765
  type WritablePureSelector<T> = Flat<AtomIOState & {
798
766
  type: `writable_pure_selector`;
799
- get: () => T;
800
- set: (newValue: T | ((oldValue: T) => T)) => void;
767
+ getFrom: (target: Store) => T;
768
+ setSelf: (newValue: T) => void;
801
769
  }>;
802
770
  type ReadonlyPureSelector<T> = Flat<AtomIOState & {
803
771
  type: `readonly_pure_selector`;
804
- get: () => T;
772
+ getFrom: (target: Store) => T;
805
773
  }>;
806
774
  type ReadonlySelector<T> = ReadonlyHeldSelector<T> | ReadonlyPureSelector<T>;
807
775
  type WritableSelector<T> = WritableHeldSelector<T> | WritablePureSelector<T>;
@@ -810,13 +778,14 @@ type PureSelector<T> = ReadonlyPureSelector<T> | WritablePureSelector<T>;
810
778
  type Selector<T> = ReadonlyHeldSelector<T> | ReadonlyPureSelector<T> | WritableHeldSelector<T> | WritablePureSelector<T>;
811
779
  type WritableState<T> = Atom<T> | WritableSelector<T>;
812
780
  type ReadableState<T> = Atom<T> | Selector<T>;
813
- type RegularAtomFamily<T, K extends Canonical> = RegularAtomFamilyToken<T, K> & {
814
- (key: K): RegularAtomToken<T>;
781
+ type RegularAtomFamily<T, K extends Canonical> = Flat<RegularAtomFamilyToken<T, K> & {
782
+ default: T | ((key: K) => T);
815
783
  install: (store: Store) => void;
816
784
  internalRoles: string[] | undefined;
817
- subject: Subject<StateCreation<AtomToken<T>> | StateDisposal<AtomToken<T>>>;
818
- };
785
+ subject: Subject<StateLifecycleEvent<RegularAtomToken<T>>>;
786
+ }> & ((key: K) => RegularAtomToken<T>);
819
787
  type MutableAtomFamily<T extends Transceiver<any, any, any>, K extends Canonical> = Flat<MutableAtomFamilyToken<T, K> & {
788
+ class: ConstructorOf<T>;
820
789
  install: (store: Store) => void;
821
790
  internalRoles: string[] | undefined;
822
791
  subject: Subject<StateLifecycleEvent<MutableAtomToken<T>>>;
@@ -826,25 +795,25 @@ type WritablePureSelectorFamily<T, K extends Canonical> = Flat<WritablePureSelec
826
795
  default: (key: K) => T;
827
796
  install: (store: Store) => void;
828
797
  internalRoles: string[] | undefined;
829
- subject: Subject<StateCreation<WritablePureSelectorToken<T>> | StateDisposal<WritablePureSelectorToken<T>>>;
798
+ subject: Subject<StateLifecycleEvent<WritablePureSelectorToken<T>>>;
830
799
  }> & ((key: K) => WritablePureSelectorToken<T>);
831
800
  type WritableHeldSelectorFamily<T, K extends Canonical> = Flat<WritableHeldSelectorFamilyToken<T, K> & {
832
801
  default: (key: K) => T;
833
802
  install: (store: Store) => void;
834
803
  internalRoles: string[] | undefined;
835
- subject: Subject<StateCreation<WritableHeldSelectorToken<T>> | StateDisposal<WritableHeldSelectorToken<T>>>;
804
+ subject: Subject<StateLifecycleEvent<WritableHeldSelectorToken<T>>>;
836
805
  }> & ((key: K) => WritableHeldSelectorToken<T>);
837
806
  type ReadonlyPureSelectorFamily<T, K extends Canonical> = Flat<ReadonlyPureSelectorFamilyToken<T, K> & {
838
807
  default: (key: K) => T;
839
808
  install: (store: Store) => void;
840
809
  internalRoles: string[] | undefined;
841
- subject: Subject<StateCreation<ReadonlyPureSelectorToken<T>> | StateDisposal<ReadonlyPureSelectorToken<T>>>;
810
+ subject: Subject<StateLifecycleEvent<ReadonlyPureSelectorToken<T>>>;
842
811
  }> & ((key: K) => ReadonlyPureSelectorToken<T>);
843
812
  type ReadonlyHeldSelectorFamily<T, K extends Canonical> = Flat<ReadonlyHeldSelectorFamilyToken<T, K> & {
844
813
  default: (key: K) => T;
845
814
  install: (store: Store) => void;
846
815
  internalRoles: string[] | undefined;
847
- subject: Subject<StateCreation<ReadonlyHeldSelectorToken<T>> | StateDisposal<ReadonlyHeldSelectorToken<T>>>;
816
+ subject: Subject<StateLifecycleEvent<ReadonlyHeldSelectorToken<T>>>;
848
817
  }> & ((key: K) => ReadonlyHeldSelectorToken<T>);
849
818
  type PureSelectorFamily<T, K extends Canonical> = ReadonlyPureSelectorFamily<T, K> | WritablePureSelectorFamily<T, K>;
850
819
  type HeldSelectorFamily<T, K extends Canonical> = ReadonlyHeldSelectorFamily<T, K> | WritableHeldSelectorFamily<T, K>;
@@ -855,5 +824,5 @@ type WritableFamily<T, K extends Canonical> = AtomFamily<T, K> | WritablePureSel
855
824
  type ReadableFamily<T, K extends Canonical> = AtomFamily<T, K> | SelectorFamily<T, K>;
856
825
  type AtomIOInternalResource = ReadableFamily<any, any> | ReadableState<any> | Timeline<any> | Transaction<any>;
857
826
  //#endregion
858
- export { AsJSON, Atom, AtomFamily, AtomIOInternalResource, AtomIOState, AtomKey, BaseExternalStoreConfiguration, ChildStore, CircularBuffer, ConstructorOf, Count, Each, Empty, EnvironmentData, ExternalStoreConfiguration, ExternalStoreWithContentConfiguration, FAMILY_MEMBER_TOKEN_TYPES, FamilyTracker, Flat, Fn, Future, HeldSelector, HeldSelectorFamily, IMPLICIT, INTERNAL_ROLES, Join, JoinStateFamilies, Junction, JunctionAdvancedConfiguration, JunctionEntries, JunctionEntriesBase, JunctionJSON, JunctionSchema, JunctionSchemaBase, LazyMap, Lineage, Modify, Molecule, MutableAtom, MutableAtomFamily, NotFoundError, OperationProgress, PureSelector, PureSelectorFamily, RESET_STATE, ReadableFamily, ReadableState, ReadonlyHeldSelector, ReadonlyHeldSelectorFamily, ReadonlyPureSelector, ReadonlyPureSelectorFamily, ReadonlySelector, ReadonlySelectorFamily, ReadonlySelectorKey, Refinement, RegularAtom, RegularAtomFamily, ReservedIntrospectionKey, RootStore, Selector, SelectorFamily, SelectorKey, SignalFrom, StateKey, StatefulSubject, Store, StoreEventCarrier, Subject, TRANSACTION_PHASES, Timeline, TimelineAtomUpdate, TimelineMoleculeCreation, TimelineMoleculeDisposal, TimelineSelectorUpdate, TimelineStateCreation, TimelineStateDisposal, TimelineTransactionUpdate, Tracker, Transaction, TransactionEpoch, TransactionPhase, TransactionProgress, Transceiver, TransceiverConstructor, TransceiverMode, ViewOf, WritableFamily, WritableHeldSelector, WritableHeldSelectorFamily, WritablePureSelector, WritablePureSelectorFamily, WritableSelector, WritableSelectorFamily, WritableState, abortTransaction, actUponStore, allocateIntoStore, applyTransaction, arbitrary, assignTransactionToContinuity, become, buildTransaction, capitalize, claimWithinStore, clearStore, closeOperation, counterfeit, createJoin, createMutableAtom, createMutableAtomFamily, createReadonlyHeldSelector, createReadonlyPureSelector, createReadonlyPureSelectorFamily, createRegularAtom, createRegularAtomFamily, createSelectorFamily, createStandaloneSelector, createTimeline, createTransaction, createWritableHeldSelector, createWritablePureSelector, createWritablePureSelectorFamily, deallocateFromStore, deposit, disposeAtom, disposeFromStore, disposeSelector, editRelationsInStore, evictCachedValue, evictDownstreamFromAtom, evictDownstreamFromSelector, findInStore, findRelationsInStore, fuseWithinStore, getContinuityKey, getEnvironmentData, getEpochNumberOfAction, getEpochNumberOfContinuity, getFromStore, getInternalRelationsFromStore, getJoin, getJsonFamily, getJsonToken, getSelectorDependencyKeys, getTrace, getUpdateFamily, getUpdateToken, hasRole, ingestAtomUpdate, ingestCreationEvent, ingestDisposalEvent, ingestMoleculeCreationEvent, ingestMoleculeDisposalEvent, ingestMoleculeTransferEvent, ingestSelectorUpdate, ingestTransactionUpdate, initFamilyMemberInStore, installIntoStore, internalRole, isAtomKey, isChildStore, isDone, isReadonlySelectorKey, isReservedIntrospectionKey, isRootStore, isSelectorKey, isStateKey, isTransceiver, makeRootMoleculeInStore, markDone, newest, openOperation, prettyPrintTokenType, readFromCache, readOrComputeValue, recallState, registerSelector, resetAtomOrSelector, resetInStore, seekInStore, setAtomOrSelector, setEpochNumberOfAction, setEpochNumberOfContinuity, setIntoStore, subscribeInStore, subscribeToRootDependency, subscribeToState, subscribeToTimeline, subscribeToTransaction, timeTravel, traceRootSelectorAtoms, updateSelectorAtoms, withdraw, writeToCache };
827
+ export { AsJSON, Atom, AtomFamily, AtomIOInternalResource, AtomIOState, AtomKey, BaseExternalStoreConfiguration, ChildStore, CircularBuffer, ConstructorOf, Count, Each, Empty, EnvironmentData, ExternalStoreConfiguration, ExternalStoreWithContentConfiguration, FAMILY_MEMBER_TOKEN_TYPES, FamilyTracker, Flat, Fn, Future, HeldSelector, HeldSelectorFamily, IMPLICIT, INTERNAL_ROLES, Join, JoinStateFamilies, Junction, JunctionAdvancedConfiguration, JunctionEntries, JunctionEntriesBase, JunctionJSON, JunctionSchema, JunctionSchemaBase, LazyMap, Lineage, Modify, Molecule, MutableAtom, MutableAtomFamily, NotFoundError, OpenOperation, OperationProgress, PureSelector, PureSelectorFamily, RESET_STATE, ReadableFamily, ReadableState, ReadonlyHeldSelector, ReadonlyHeldSelectorFamily, ReadonlyPureSelector, ReadonlyPureSelectorFamily, ReadonlySelector, ReadonlySelectorFamily, ReadonlySelectorKey, Refinement, RegularAtom, RegularAtomFamily, ReservedIntrospectionKey, RootStore, Selector, SelectorFamily, SelectorKey, SignalFrom, StateKey, StatefulSubject, Store, StoreEventCarrier, Subject, TRANSACTION_PHASES, Timeline, Tracker, Transaction, TransactionEpoch, TransactionPhase, TransactionProgress, Transceiver, TransceiverConstructor, TransceiverMode, WritableFamily, WritableHeldSelector, WritableHeldSelectorFamily, WritablePureSelector, WritablePureSelectorFamily, WritableSelector, WritableSelectorFamily, WritableState, abortTransaction, actUponStore, allocateIntoStore, applyTransaction, arbitrary, assignTransactionToContinuity, become, buildTransaction, capitalize, claimWithinStore, clearStore, closeOperation, counterfeit, createJoin, createMutableAtom, createMutableAtomFamily, createReadonlyHeldSelector, createReadonlyPureSelector, createReadonlyPureSelectorFamily, createRegularAtom, createRegularAtomFamily, createSelectorFamily, createStandaloneSelector, createTimeline, createTransaction, createWritableHeldSelector, createWritablePureSelector, createWritablePureSelectorFamily, deallocateFromStore, deposit, disposeAtom, disposeFromStore, disposeSelector, editRelationsInStore, evictCachedValue, evictDownstreamFromAtom, evictDownstreamFromSelector, findInStore, findRelationsInStore, fuseWithinStore, getContinuityKey, getEnvironmentData, getEpochNumberOfAction, getEpochNumberOfContinuity, getFromStore, getInternalRelationsFromStore, getJoin, getJsonFamily, getJsonToken, getSelectorDependencyKeys, getTrace, getUpdateFamily, getUpdateToken, hasRole, ingestAtomUpdate, ingestCreationEvent, ingestDisposalEvent, ingestMoleculeCreationEvent, ingestMoleculeDisposalEvent, ingestMoleculeTransferEvent, ingestSelectorUpdate, ingestTransactionUpdate, initFamilyMemberInStore, installIntoStore, internalRole, isAtomKey, isChildStore, isDone, isReadonlySelectorKey, isReservedIntrospectionKey, isRootStore, isSelectorKey, isStateKey, isTransceiver, makeRootMoleculeInStore, markDone, newest, openOperation, prettyPrintTokenType, readFromCache, readOrComputeValue, recallState, registerSelector, resetAtomOrSelector, resetInStore, seekInStore, setAtomOrSelector, setEpochNumberOfAction, setEpochNumberOfContinuity, setIntoStore, subscribeInStore, subscribeToRootDependency, subscribeToState, subscribeToTimeline, subscribeToTransaction, timeTravel, traceRootSelectorAtoms, updateSelectorAtoms, withdraw, writeToCache };
859
828
  //# sourceMappingURL=index.d.ts.map