atom.io 0.31.1 → 0.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/data/dist/index.d.ts +867 -101
  2. package/data/dist/index.js +10 -558
  3. package/data/src/index.ts +0 -2
  4. package/data/src/struct-family.ts +1 -1
  5. package/data/src/struct.ts +1 -2
  6. package/dist/chunk-354XQWHH.js +153 -0
  7. package/dist/chunk-4LWKCEW3.js +14 -0
  8. package/dist/chunk-5F2V7S3B.js +83 -0
  9. package/dist/chunk-ECOMOMUN.js +631 -0
  10. package/dist/{chunk-Y5MBNTVU.js → chunk-GY2XQYZY.js} +1791 -703
  11. package/dist/chunk-NF7FJKJD.js +107 -0
  12. package/dist/chunk-R3ZUK5EH.js +1024 -0
  13. package/dist/chunk-Z2UJW4NQ.js +523 -0
  14. package/dist/index.d.ts +622 -26
  15. package/dist/index.js +1 -228
  16. package/eslint-plugin/dist/index.d.ts +1 -30
  17. package/eslint-plugin/dist/index.js +0 -146
  18. package/eslint-plugin/src/index.ts +0 -1
  19. package/eslint-plugin/src/rules/index.ts +0 -1
  20. package/internal/dist/index.d.ts +783 -64
  21. package/internal/dist/index.js +1 -1
  22. package/internal/src/atom/create-regular-atom.ts +3 -3
  23. package/internal/src/atom/dispose-atom.ts +4 -13
  24. package/internal/src/atom/is-default.ts +3 -3
  25. package/internal/src/caching.ts +5 -5
  26. package/internal/src/capitalize.ts +3 -0
  27. package/internal/src/families/create-readonly-selector-family.ts +5 -6
  28. package/internal/src/families/create-writable-selector-family.ts +1 -4
  29. package/internal/src/families/dispose-from-store.ts +3 -13
  30. package/internal/src/get-state/get-from-store.ts +2 -2
  31. package/internal/src/get-state/read-or-compute-value.ts +1 -1
  32. package/internal/src/index.ts +2 -0
  33. package/internal/src/install-into-store.ts +1 -1
  34. package/internal/src/join/edit-relations-in-store.ts +32 -0
  35. package/internal/src/join/find-relations-in-store.ts +124 -0
  36. package/internal/src/join/get-internal-relations-from-store.ts +14 -0
  37. package/internal/src/join/get-join.ts +31 -0
  38. package/internal/src/join/index.ts +5 -0
  39. package/{data/src/join.ts → internal/src/join/join-internal.ts} +20 -429
  40. package/internal/src/keys.ts +7 -7
  41. package/internal/src/mutable/create-mutable-atom-family.ts +1 -1
  42. package/internal/src/mutable/create-mutable-atom.ts +3 -3
  43. package/internal/src/mutable/get-json-token.ts +1 -1
  44. package/internal/src/mutable/tracker-family.ts +19 -17
  45. package/internal/src/mutable/tracker.ts +8 -8
  46. package/internal/src/pretty-print.ts +1 -1
  47. package/internal/src/selector/create-readonly-selector.ts +3 -7
  48. package/internal/src/selector/create-writable-selector.ts +4 -4
  49. package/internal/src/selector/dispose-selector.ts +20 -11
  50. package/internal/src/selector/get-selector-dependency-keys.ts +1 -1
  51. package/internal/src/selector/register-selector.ts +6 -9
  52. package/internal/src/selector/trace-selector-atoms.ts +2 -2
  53. package/internal/src/set-state/copy-mutable-if-needed.ts +1 -1
  54. package/internal/src/set-state/emit-update.ts +1 -1
  55. package/internal/src/set-state/evict-downstream.ts +1 -1
  56. package/internal/src/set-state/set-atom-or-selector.ts +1 -1
  57. package/internal/src/set-state/set-atom.ts +10 -10
  58. package/internal/src/set-state/set-into-store.ts +2 -2
  59. package/internal/src/set-state/stow-update.ts +1 -1
  60. package/internal/src/store/store.ts +1 -1
  61. package/internal/src/store/withdraw.ts +22 -22
  62. package/internal/src/subscribe/recall-state.ts +1 -1
  63. package/internal/src/subscribe/subscribe-in-store.ts +3 -3
  64. package/internal/src/subscribe/subscribe-to-root-atoms.ts +3 -3
  65. package/internal/src/subscribe/subscribe-to-state.ts +5 -5
  66. package/internal/src/subscribe/subscribe-to-timeline.ts +3 -3
  67. package/internal/src/subscribe/subscribe-to-transaction.ts +3 -3
  68. package/internal/src/timeline/create-timeline.ts +17 -37
  69. package/internal/src/transaction/act-upon-store.ts +2 -2
  70. package/internal/src/transaction/apply-transaction.ts +5 -5
  71. package/internal/src/transaction/assign-transaction-to-continuity.ts +1 -1
  72. package/internal/src/transaction/build-transaction.ts +5 -8
  73. package/internal/src/transaction/create-transaction.ts +3 -3
  74. package/internal/src/transaction/get-epoch-number.ts +3 -3
  75. package/internal/src/transaction/set-epoch-number.ts +2 -2
  76. package/introspection/dist/index.d.ts +922 -6
  77. package/introspection/dist/index.js +2 -620
  78. package/json/dist/index.d.ts +899 -5
  79. package/json/dist/index.js +1 -80
  80. package/json/src/select-json-family.ts +3 -14
  81. package/package.json +24 -42
  82. package/react/dist/index.d.ts +921 -3
  83. package/react/dist/index.js +2 -82
  84. package/react/src/use-o.ts +1 -1
  85. package/react/src/use-tl.ts +2 -2
  86. package/react-devtools/dist/index.css +16 -14
  87. package/react-devtools/dist/index.d.ts +26 -1
  88. package/react-devtools/dist/index.js +6 -6
  89. package/react-devtools/src/devtools.scss +16 -14
  90. package/realtime/dist/index.d.ts +202 -8
  91. package/realtime/dist/index.js +2 -107
  92. package/realtime/src/realtime-continuity.ts +2 -2
  93. package/realtime/src/shared-room-store.ts +1 -2
  94. package/realtime-client/dist/index.d.ts +960 -22
  95. package/realtime-client/dist/index.js +3 -509
  96. package/realtime-client/src/continuity/register-and-attempt-confirmed-update.ts +3 -3
  97. package/realtime-client/src/continuity/use-conceal-state.ts +1 -1
  98. package/realtime-client/src/pull-atom-family-member.ts +2 -2
  99. package/realtime-client/src/pull-atom.ts +2 -2
  100. package/realtime-client/src/pull-mutable-atom-family-member.ts +2 -2
  101. package/realtime-client/src/pull-mutable-atom.ts +2 -2
  102. package/realtime-client/src/pull-selector-family-member.ts +4 -4
  103. package/realtime-client/src/pull-selector.ts +4 -4
  104. package/realtime-client/src/push-state.ts +5 -10
  105. package/realtime-client/src/server-action.ts +4 -4
  106. package/realtime-client/src/sync-continuity.ts +6 -6
  107. package/realtime-react/dist/index.d.ts +166 -12
  108. package/realtime-react/dist/index.js +5 -154
  109. package/realtime-react/src/use-pull-atom-family-member.ts +1 -1
  110. package/realtime-react/src/use-pull-atom.ts +1 -1
  111. package/realtime-react/src/use-pull-mutable-atom.ts +1 -1
  112. package/realtime-react/src/use-pull-mutable-family-member.ts +1 -1
  113. package/realtime-react/src/use-pull-selector-family-member.ts +1 -1
  114. package/realtime-react/src/use-pull-selector.ts +1 -1
  115. package/realtime-react/src/use-push.ts +1 -1
  116. package/realtime-react/src/use-server-action.ts +2 -2
  117. package/realtime-react/src/use-sync-continuity.ts +1 -1
  118. package/realtime-server/dist/index.d.ts +971 -28
  119. package/realtime-server/dist/index.js +3 -1001
  120. package/realtime-server/src/continuity/prepare-to-serve-transaction-request.ts +1 -1
  121. package/realtime-server/src/continuity/prepare-to-sync-realtime-continuity.ts +3 -3
  122. package/realtime-server/src/continuity/subscribe-to-continuity-actions.ts +2 -2
  123. package/realtime-server/src/continuity/subscribe-to-continuity-perpectives.ts +2 -2
  124. package/realtime-server/src/realtime-action-receiver.ts +1 -1
  125. package/realtime-server/src/realtime-family-provider.ts +2 -2
  126. package/realtime-server/src/realtime-mutable-family-provider.ts +2 -2
  127. package/realtime-server/src/realtime-mutable-provider.ts +2 -2
  128. package/realtime-server/src/realtime-server-stores/server-room-external-actions.ts +2 -1
  129. package/realtime-server/src/realtime-server-stores/server-room-external-store.ts +1 -1
  130. package/realtime-server/src/realtime-server-stores/server-user-store.ts +1 -2
  131. package/realtime-server/src/realtime-state-provider.ts +2 -2
  132. package/realtime-testing/dist/index.d.ts +1091 -3
  133. package/realtime-testing/dist/index.js +20 -22
  134. package/realtime-testing/src/setup-realtime-test.tsx +2 -1
  135. package/src/index.ts +4 -0
  136. package/src/join.ts +218 -0
  137. package/src/silo.ts +4 -4
  138. package/src/timeline.ts +1 -1
  139. package/src/transaction.ts +4 -8
  140. package/transceivers/set-rtx/dist/index.d.ts +37 -2
  141. package/transceivers/set-rtx/dist/index.js +1 -215
  142. package/web/dist/index.d.ts +30 -1
  143. package/web/dist/index.js +1 -15
  144. package/data/src/until.ts +0 -15
  145. package/ephemeral/dist/index.d.ts +0 -67
  146. package/ephemeral/dist/index.js +0 -9
  147. package/ephemeral/package.json +0 -13
  148. package/ephemeral/src/index.ts +0 -1
  149. package/eslint-plugin/src/rules/lifespan.ts +0 -203
  150. package/immortal/dist/index.d.ts +0 -12
  151. package/immortal/dist/index.js +0 -9
  152. package/immortal/package.json +0 -13
  153. package/immortal/src/index.ts +0 -1
  154. package/immortal/src/seek-state.ts +0 -60
  155. /package/{ephemeral/src → src}/find-state.ts +0 -0
package/dist/index.js CHANGED
@@ -1,229 +1,2 @@
1
- import { newest, isChildStore, withdraw } from './chunk-Y5MBNTVU.js';
1
+ export { $claim, Anarchy, AtomIOLogger, LOG_LEVELS, Realm, Silo, T$, atom, atomFamily, belongsTo, disposeState, editRelations, findRelations, findState, getInternalRelations, getState, isToken, join, redo, runTransaction, selector, selectorFamily, setState, simpleLog, simpleLogger, subscribe, timeline, transaction, undo } from './chunk-GY2XQYZY.js';
2
2
  import './chunk-XWL6SNVU.js';
3
- import * as Internal from 'atom.io/internal';
4
- import { createStandaloneAtom, IMPLICIT, createAtomFamily, makeRootMoleculeInStore, allocateIntoStore, fuseWithinStore, deallocateFromStore, claimWithinStore, createStandaloneSelector, createSelectorFamily, Store, createTransaction, createTimeline, findInStore, getFromStore, setIntoStore, disposeFromStore, subscribeInStore, timeTravel, actUponStore, arbitrary } from 'atom.io/internal';
5
-
6
- function atom(options) {
7
- return createStandaloneAtom(IMPLICIT.STORE, options);
8
- }
9
- function atomFamily(options) {
10
- return createAtomFamily(IMPLICIT.STORE, options);
11
- }
12
- function disposeState(...[token, key]) {
13
- if (key) {
14
- Internal.disposeFromStore(Internal.IMPLICIT.STORE, token, key);
15
- } else {
16
- Internal.disposeFromStore(Internal.IMPLICIT.STORE, token);
17
- }
18
- }
19
- function getState(...params) {
20
- if (params.length === 2) {
21
- return Internal.getFromStore(Internal.IMPLICIT.STORE, ...params);
22
- }
23
- return Internal.getFromStore(Internal.IMPLICIT.STORE, ...params);
24
- }
25
-
26
- // src/logger.ts
27
- var LOG_LEVELS = [`info`, `warn`, `error`];
28
- var simpleLog = (logLevel) => (icon, denomination, tokenKey, message, ...rest) => {
29
- console[logLevel](
30
- `${icon} ${denomination} "${tokenKey}" ${message}`,
31
- ...rest
32
- );
33
- };
34
- var simpleLogger = {
35
- error: simpleLog(`error`),
36
- info: simpleLog(`info`),
37
- warn: simpleLog(`warn`)
38
- };
39
- var AtomIOLogger = class {
40
- constructor(logLevel, filter, logger = simpleLogger) {
41
- this.logLevel = logLevel;
42
- this.filter = filter;
43
- this.logger = logger;
44
- }
45
- error = (...args) => {
46
- if ((this.filter?.(...args) ?? true) && this.logLevel !== null) {
47
- this.logger.error(...args);
48
- }
49
- };
50
- info = (...args) => {
51
- if ((this.filter?.(...args) ?? true) && this.logLevel === `info`) {
52
- this.logger.info(...args);
53
- }
54
- };
55
- warn = (...args) => {
56
- if ((this.filter?.(...args) ?? true) && this.logLevel !== `error` && this.logLevel !== null) {
57
- this.logger.warn(...args);
58
- }
59
- };
60
- };
61
- var $claim = Symbol(`claim`);
62
- var Realm = class {
63
- store;
64
- constructor(store = IMPLICIT.STORE) {
65
- this.store = store;
66
- makeRootMoleculeInStore(`root`, store);
67
- }
68
- allocate(provenance, key, attachmentStyle) {
69
- return allocateIntoStore(
70
- this.store,
71
- provenance,
72
- key,
73
- attachmentStyle
74
- );
75
- }
76
- fuse(type, reagentA, reagentB) {
77
- return fuseWithinStore(this.store, type, reagentA, reagentB);
78
- }
79
- deallocate(claim) {
80
- deallocateFromStore(this.store, claim);
81
- }
82
- claim(newProvenance, claim, exclusive) {
83
- return claimWithinStore(this.store, newProvenance, claim, exclusive);
84
- }
85
- };
86
- var Anarchy = class {
87
- store;
88
- realm;
89
- constructor(store = IMPLICIT.STORE) {
90
- this.store = store;
91
- this.realm = new Realm(store);
92
- }
93
- allocate(provenance, key, attachmentStyle) {
94
- allocateIntoStore(
95
- this.store,
96
- provenance,
97
- key,
98
- attachmentStyle
99
- );
100
- }
101
- deallocate(key) {
102
- deallocateFromStore(this.store, key);
103
- }
104
- claim(newProvenance, key, exclusive) {
105
- claimWithinStore(this.store, newProvenance, key, exclusive);
106
- }
107
- };
108
- var T$ = `T$`;
109
- function selector(options) {
110
- return createStandaloneSelector(IMPLICIT.STORE, options);
111
- }
112
- function selectorFamily(options) {
113
- return createSelectorFamily(IMPLICIT.STORE, options);
114
- }
115
- function setState(...params) {
116
- if (params.length === 2) {
117
- Internal.setIntoStore(Internal.IMPLICIT.STORE, ...params);
118
- } else {
119
- Internal.setIntoStore(Internal.IMPLICIT.STORE, ...params);
120
- }
121
- }
122
-
123
- // internal/src/install-into-store.ts
124
- function installIntoStore(tokens, target, source) {
125
- const sourceNewest = newest(source);
126
- if (isChildStore(sourceNewest)) {
127
- source.logger.error(
128
- `\u274C`,
129
- `transaction`,
130
- sourceNewest.transactionMeta.update.key,
131
- `could not install the following tokens into store "${target.config.name} from "${source.config.name}":`,
132
- tokens,
133
- `${sourceNewest.config.name} is undergoing a transaction.`
134
- );
135
- return;
136
- }
137
- const targetNewest = newest(target);
138
- if (isChildStore(targetNewest)) {
139
- target.logger.error(
140
- `\u274C`,
141
- `transaction`,
142
- targetNewest.transactionMeta.update.key,
143
- `could not install the following tokens into store "${target.config.name} from "${source.config.name}":`,
144
- tokens,
145
- `${targetNewest.config.name} is undergoing a transaction.`
146
- );
147
- return;
148
- }
149
- for (const token of tokens) {
150
- const resource = withdraw(token, source);
151
- resource.install(target);
152
- }
153
- }
154
-
155
- // src/silo.ts
156
- var Silo = class {
157
- store;
158
- atom;
159
- atomFamily;
160
- selector;
161
- selectorFamily;
162
- transaction;
163
- timeline;
164
- findState;
165
- getState;
166
- setState;
167
- disposeState;
168
- subscribe;
169
- undo;
170
- redo;
171
- runTransaction;
172
- install;
173
- constructor(config, fromStore = null) {
174
- const s = this.store = new Store(config, fromStore);
175
- this.atom = (options) => createStandaloneAtom(s, options);
176
- this.atomFamily = (options) => createAtomFamily(s, options);
177
- this.selector = (options) => createStandaloneSelector(s, options);
178
- this.selectorFamily = (options) => createSelectorFamily(s, options);
179
- this.transaction = (options) => createTransaction(options, s);
180
- this.timeline = (options) => createTimeline(options, s);
181
- this.findState = (...params) => findInStore(s, ...params);
182
- this.getState = (...params) => getFromStore(s, ...params);
183
- this.setState = (...params) => {
184
- setIntoStore(s, ...params);
185
- };
186
- this.disposeState = (...params) => {
187
- disposeFromStore(s, ...params);
188
- };
189
- this.subscribe = (...params) => subscribeInStore(s, ...params);
190
- this.undo = (token) => {
191
- timeTravel(s, `undo`, token);
192
- };
193
- this.redo = (token) => {
194
- timeTravel(s, `redo`, token);
195
- };
196
- this.runTransaction = (token, id = arbitrary()) => actUponStore(token, id, s);
197
- this.install = (tokens, source = IMPLICIT.STORE) => {
198
- installIntoStore(tokens, s, source);
199
- };
200
- }
201
- };
202
- function subscribe(token, handleUpdate, key = arbitrary()) {
203
- return subscribeInStore(IMPLICIT.STORE, token, handleUpdate, key);
204
- }
205
- var timeline = (options) => {
206
- return createTimeline(options, IMPLICIT.STORE);
207
- };
208
- var redo = (tl) => {
209
- timeTravel(IMPLICIT.STORE, `redo`, tl);
210
- };
211
- var undo = (tl) => {
212
- timeTravel(IMPLICIT.STORE, `undo`, tl);
213
- };
214
- function transaction(options) {
215
- return createTransaction(options, IMPLICIT.STORE);
216
- }
217
- function runTransaction(token, id = arbitrary()) {
218
- return actUponStore(token, id, IMPLICIT.STORE);
219
- }
220
-
221
- // src/validators.ts
222
- function isToken(knownToken, unknownToken) {
223
- return knownToken.key === unknownToken.key;
224
- }
225
- function belongsTo(family, unknownToken) {
226
- return family.key === unknownToken.family?.key;
227
- }
228
-
229
- export { $claim, Anarchy, AtomIOLogger, LOG_LEVELS, Realm, Silo, T$, atom, atomFamily, belongsTo, disposeState, getState, isToken, redo, runTransaction, selector, selectorFamily, setState, simpleLog, simpleLogger, subscribe, timeline, transaction, undo };
@@ -6,33 +6,6 @@ import { ESLintUtils } from '@typescript-eslint/utils';
6
6
 
7
7
  declare const explicitStateTypes: ESLintUtils.RuleModule<"noTypeArgument", [], unknown, ESLintUtils.RuleListener>;
8
8
 
9
- declare const lifespan: {
10
- meta: {
11
- type: "problem";
12
- docs: {
13
- description: string;
14
- category: string;
15
- recommended: false;
16
- url: string;
17
- };
18
- schema: {
19
- type: "string";
20
- enum: string[];
21
- default: string;
22
- }[];
23
- };
24
- create(context: _eslint_core.RuleContext<{
25
- LangOptions: eslint.Linter.LanguageOptions;
26
- Code: eslint.SourceCode;
27
- RuleOptions: any[];
28
- Node: ESTree.Node;
29
- MessageIds: string;
30
- }>): {
31
- ImportDeclaration(node: ESTree.ImportDeclaration & Rule.NodeParentExtension): void;
32
- CallExpression(node: ESTree.CallExpression & Rule.NodeParentExtension): void;
33
- };
34
- };
35
-
36
9
  declare const synchronousSelectorDependencies: {
37
10
  meta: {
38
11
  type: "problem";
@@ -56,16 +29,14 @@ declare const synchronousSelectorDependencies: {
56
29
  };
57
30
 
58
31
  declare const index_explicitStateTypes: typeof explicitStateTypes;
59
- declare const index_lifespan: typeof lifespan;
60
32
  declare const index_synchronousSelectorDependencies: typeof synchronousSelectorDependencies;
61
33
  declare namespace index {
62
- export { index_explicitStateTypes as explicitStateTypes, index_lifespan as lifespan, index_synchronousSelectorDependencies as synchronousSelectorDependencies };
34
+ export { index_explicitStateTypes as explicitStateTypes, index_synchronousSelectorDependencies as synchronousSelectorDependencies };
63
35
  }
64
36
 
65
37
  declare const _default: {
66
38
  rules: {
67
39
  "explicit-state-types": any;
68
- lifespan: any;
69
40
  "synchronous-selector-dependencies": {
70
41
  meta: {
71
42
  type: "problem";
@@ -5,7 +5,6 @@ import { ESLintUtils } from '@typescript-eslint/utils';
5
5
  var rules_exports = {};
6
6
  __export(rules_exports, {
7
7
  explicitStateTypes: () => explicitStateTypes,
8
- lifespan: () => lifespan,
9
8
  synchronousSelectorDependencies: () => synchronousSelectorDependencies
10
9
  });
11
10
  var createRule = ESLintUtils.RuleCreator(
@@ -133,150 +132,6 @@ function walk(node, callback, depth = 0) {
133
132
  }
134
133
  }
135
134
 
136
- // eslint-plugin/src/rules/lifespan.ts
137
- var lifespan = {
138
- meta: {
139
- type: `problem`,
140
- docs: {
141
- description: `atom.io provides tools for short-lived (ephemeral) and long-lived (immortal) stores. This rule allows you to guard against unsafe usage of tools for the other type of store.`,
142
- category: `Possible Errors`,
143
- recommended: false,
144
- url: ``
145
- // URL to documentation page for this rule
146
- },
147
- schema: [
148
- {
149
- type: `string`,
150
- enum: [`ephemeral`, `immortal`],
151
- default: `ephemeral`
152
- }
153
- ]
154
- },
155
- create(context) {
156
- const storeLifespan = context.options[0] ?? `ephemeral`;
157
- return {
158
- ImportDeclaration(node) {
159
- const importSource = node.source.value;
160
- if (!importSource.startsWith(`atom.io/`)) {
161
- return;
162
- }
163
- const [_, subPackageName] = importSource.split(`/`);
164
- if (storeLifespan === `immortal` && subPackageName === `ephemeral`) {
165
- context.report({
166
- node,
167
- message: `do not import from "${importSource}" in an ${storeLifespan} store`
168
- });
169
- }
170
- },
171
- CallExpression(node) {
172
- if (storeLifespan === `ephemeral`) {
173
- return;
174
- }
175
- const functionCallee = node.callee.type === `Identifier` ? node.callee : undefined;
176
- const methodCallee = node.callee.type === `MemberExpression` && node.callee.property.type === `Identifier` ? node.callee.property : undefined;
177
- const callee = functionCallee ?? methodCallee;
178
- if (callee === undefined) {
179
- return;
180
- }
181
- if (callee.name === `findState`) {
182
- context.report({
183
- node,
184
- message: `do not use findState in an ${storeLifespan} store`
185
- });
186
- }
187
- const storeProcedures = [];
188
- if (callee.name === `selector` || callee.name === `selectorFamily` || callee.name === `transaction`) {
189
- if (node.arguments[0].type === `ObjectExpression`) {
190
- const argProperties = node.arguments[0].properties;
191
- switch (callee.name) {
192
- case `selector`:
193
- case `selectorFamily`:
194
- {
195
- const getAndSetProps = argProperties.filter(
196
- (prop) => {
197
- return `key` in prop && `name` in prop.key && (prop.key.name === `get` || prop.key.name === `set`);
198
- }
199
- );
200
- switch (callee.name) {
201
- case `selector`:
202
- {
203
- for (const prop of getAndSetProps) {
204
- if (prop.value.type === `FunctionExpression` || prop.value.type === `ArrowFunctionExpression`) {
205
- storeProcedures.push(prop.value);
206
- }
207
- }
208
- }
209
- break;
210
- case `selectorFamily`:
211
- {
212
- for (const prop of getAndSetProps) {
213
- const { value } = prop;
214
- if (value.type === `FunctionExpression` || value.type === `ArrowFunctionExpression`) {
215
- if (value.body.type === `BlockStatement`) {
216
- for (const statement of value.body.body) {
217
- if (statement.type === `ReturnStatement` && statement.argument && (statement.argument.type === `FunctionExpression` || statement.argument.type === `ArrowFunctionExpression`)) {
218
- storeProcedures.push(statement.argument);
219
- }
220
- }
221
- } else if (value.body.type === `FunctionExpression` || value.body.type === `ArrowFunctionExpression`) {
222
- storeProcedures.push(value.body);
223
- }
224
- }
225
- }
226
- }
227
- break;
228
- }
229
- }
230
- break;
231
- case `transaction`:
232
- {
233
- const doProp = argProperties.find(
234
- (prop) => {
235
- return `key` in prop && `name` in prop.key && prop.key.name === `do`;
236
- }
237
- );
238
- if (doProp) {
239
- if (doProp.value.type === `FunctionExpression` || doProp.value.type === `ArrowFunctionExpression`) {
240
- storeProcedures.push(doProp.value);
241
- }
242
- }
243
- }
244
- break;
245
- }
246
- }
247
- }
248
- for (const storeProcedure of storeProcedures) {
249
- const transactorsParam = storeProcedure.params[0];
250
- const nonDestructuredTransactorsName = transactorsParam && `name` in transactorsParam ? transactorsParam.name : undefined;
251
- walk(storeProcedure.body, (n) => {
252
- if (n.type === `CallExpression`) {
253
- let willReport = false;
254
- switch (n.callee.type) {
255
- case `MemberExpression`:
256
- if (n.callee.object.type === `Identifier` && n.callee.object.name === nonDestructuredTransactorsName && n.callee.property.type === `Identifier` && n.callee.property.name === `find`) {
257
- willReport = true;
258
- }
259
- break;
260
- case `Identifier`:
261
- if (n.callee.name === `find`) {
262
- willReport = true;
263
- }
264
- break;
265
- }
266
- if (willReport) {
267
- context.report({
268
- node: n,
269
- message: `Using find in a transactor is not allowed in an immortal store.`
270
- });
271
- }
272
- }
273
- });
274
- }
275
- }
276
- };
277
- }
278
- };
279
-
280
135
  // eslint-plugin/src/rules/synchronous-selector-dependencies.ts
281
136
  var synchronousSelectorDependencies = {
282
137
  meta: {
@@ -376,7 +231,6 @@ var synchronousSelectorDependencies = {
376
231
  var src_default = {
377
232
  rules: {
378
233
  "explicit-state-types": explicitStateTypes,
379
- lifespan,
380
234
  "synchronous-selector-dependencies": synchronousSelectorDependencies
381
235
  }
382
236
  };
@@ -7,7 +7,6 @@ export { Rules }
7
7
  export default {
8
8
  rules: {
9
9
  "explicit-state-types": Rules.explicitStateTypes as any,
10
- lifespan: Rules.lifespan as any,
11
10
  "synchronous-selector-dependencies": Rules.synchronousSelectorDependencies,
12
11
  },
13
12
  } satisfies ESLint.Plugin
@@ -1,3 +1,2 @@
1
1
  export * from "./explicit-state-types"
2
- export * from "./lifespan"
3
2
  export * from "./synchronous-selector-dependencies"