@warp-drive/core 5.8.0-alpha.4 → 5.8.0-alpha.40

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 (248) hide show
  1. package/README.md +22 -38
  2. package/declarations/build-config.d.ts +18 -1
  3. package/declarations/graph/-private/-edge-definition.d.ts +12 -2
  4. package/declarations/index.d.ts +90 -8
  5. package/declarations/reactive/-private/document.d.ts +58 -46
  6. package/declarations/reactive/-private/record.d.ts +10 -1
  7. package/declarations/reactive/-private/schema.d.ts +77 -4
  8. package/declarations/reactive/-private.d.ts +1 -0
  9. package/declarations/reactive.d.ts +13 -7
  10. package/declarations/request/-private/types.d.ts +1 -1
  11. package/declarations/request.d.ts +47 -0
  12. package/declarations/store/-private/caches/instance-cache.d.ts +5 -6
  13. package/declarations/store/-private/default-cache-policy.d.ts +147 -129
  14. package/declarations/store/-private/managers/cache-capabilities-manager.d.ts +1 -1
  15. package/declarations/store/-private/managers/cache-key-manager.d.ts +26 -8
  16. package/declarations/store/-private/managers/cache-manager.d.ts +6 -4
  17. package/declarations/store/-private/managers/notification-manager.d.ts +1 -1
  18. package/declarations/store/-private/new-core-tmp/promise-state.d.ts +1 -0
  19. package/declarations/store/-private/new-core-tmp/request-state.d.ts +1 -1
  20. package/declarations/store/-private/store-service.d.ts +43 -64
  21. package/declarations/store/-private.d.ts +0 -1
  22. package/declarations/store/-types/q/cache-capabilities-manager.d.ts +1 -1
  23. package/declarations/store/deprecated/-private.d.ts +1 -1
  24. package/declarations/store/deprecated/store.d.ts +33 -32
  25. package/declarations/store.d.ts +1 -0
  26. package/declarations/types/cache.d.ts +8 -6
  27. package/declarations/types/record.d.ts +132 -0
  28. package/declarations/types/request.d.ts +26 -14
  29. package/declarations/types/schema/fields.d.ts +33 -9
  30. package/declarations/{store/-types/q → types/schema}/schema-service.d.ts +15 -13
  31. package/declarations/types/spec/document.d.ts +34 -0
  32. package/declarations/types/symbols.d.ts +2 -2
  33. package/declarations/types.d.ts +1 -1
  34. package/dist/build-config.js +1 -1
  35. package/dist/default-cache-policy-D7_u4YRH.js +572 -0
  36. package/dist/graph/-private.js +13 -4
  37. package/dist/{request-state-CUuZzgvE.js → index-BKcD4JZK.js} +10018 -8847
  38. package/dist/index.js +6 -382
  39. package/dist/reactive.js +4 -778
  40. package/dist/{context-C_7OLieY.js → request-oqoLC9rz.js} +219 -172
  41. package/dist/request.js +1 -1
  42. package/dist/store/-private.js +1 -1
  43. package/dist/store.js +1 -533
  44. package/dist/types/-private.js +1 -1
  45. package/dist/types/record.js +127 -0
  46. package/dist/types/request.js +14 -12
  47. package/dist/types/schema/fields.js +14 -0
  48. package/dist/types/schema/schema-service.js +0 -0
  49. package/dist/types/symbols.js +2 -2
  50. package/dist/unpkg/dev/-private-3C1OkYtZ.js +39 -0
  51. package/dist/unpkg/dev/build-config/babel-macros.js +1 -0
  52. package/dist/unpkg/dev/build-config/canary-features.js +1 -0
  53. package/dist/unpkg/dev/build-config/debugging.js +1 -0
  54. package/dist/unpkg/dev/build-config/deprecations.js +1 -0
  55. package/dist/unpkg/dev/build-config/env.js +1 -0
  56. package/dist/unpkg/dev/build-config/macros.js +1 -0
  57. package/dist/unpkg/dev/build-config.js +1 -0
  58. package/dist/unpkg/dev/configure-BC66sfNO.js +183 -0
  59. package/dist/unpkg/dev/configure.js +1 -0
  60. package/dist/unpkg/dev/graph/-private.js +3131 -0
  61. package/dist/unpkg/dev/index-DqhXrNZ_.js +11160 -0
  62. package/dist/unpkg/dev/index.js +6 -0
  63. package/dist/unpkg/dev/reactive/-private.js +1 -0
  64. package/dist/unpkg/dev/reactive.js +127 -0
  65. package/dist/unpkg/dev/request-CA9K0gXq.js +719 -0
  66. package/dist/unpkg/dev/request.js +1 -0
  67. package/dist/unpkg/dev/runtime-DGG4CvlW.js +135 -0
  68. package/dist/unpkg/dev/store/-private.js +56 -0
  69. package/dist/unpkg/dev/store.js +558 -0
  70. package/dist/unpkg/dev/types/-private.js +69 -0
  71. package/dist/unpkg/dev/types/cache/aliases.js +0 -0
  72. package/dist/unpkg/dev/types/cache/change.js +0 -0
  73. package/dist/unpkg/dev/types/cache/mutations.js +0 -0
  74. package/dist/unpkg/dev/types/cache/operations.js +0 -0
  75. package/dist/unpkg/dev/types/cache/relationship.js +0 -0
  76. package/dist/unpkg/dev/types/cache.js +0 -0
  77. package/dist/unpkg/dev/types/graph.js +0 -0
  78. package/dist/unpkg/dev/types/identifier.js +61 -0
  79. package/dist/unpkg/dev/types/json/raw.js +0 -0
  80. package/dist/unpkg/dev/types/params.js +0 -0
  81. package/dist/unpkg/dev/types/record.js +191 -0
  82. package/dist/unpkg/dev/types/request.js +77 -0
  83. package/dist/unpkg/dev/types/runtime.js +34 -0
  84. package/dist/unpkg/dev/types/schema/concepts.js +0 -0
  85. package/dist/unpkg/dev/types/schema/fields.js +505 -0
  86. package/dist/unpkg/dev/types/schema/fields.type-test.js +0 -0
  87. package/dist/unpkg/dev/types/schema/schema-service.js +0 -0
  88. package/dist/unpkg/dev/types/spec/document.js +0 -0
  89. package/dist/unpkg/dev/types/spec/error.js +0 -0
  90. package/dist/unpkg/dev/types/spec/json-api-raw.js +0 -0
  91. package/dist/unpkg/dev/types/symbols.js +84 -0
  92. package/dist/unpkg/dev/types/utils.js +0 -0
  93. package/dist/unpkg/dev/types.js +0 -0
  94. package/dist/unpkg/dev/utils/string.js +91 -0
  95. package/dist/unpkg/dev-deprecated/-private-3C1OkYtZ.js +39 -0
  96. package/dist/unpkg/dev-deprecated/build-config/babel-macros.js +1 -0
  97. package/dist/unpkg/dev-deprecated/build-config/canary-features.js +1 -0
  98. package/dist/unpkg/dev-deprecated/build-config/debugging.js +1 -0
  99. package/dist/unpkg/dev-deprecated/build-config/deprecations.js +1 -0
  100. package/dist/unpkg/dev-deprecated/build-config/env.js +1 -0
  101. package/dist/unpkg/dev-deprecated/build-config/macros.js +1 -0
  102. package/dist/unpkg/dev-deprecated/build-config.js +1 -0
  103. package/dist/unpkg/dev-deprecated/configure-BC66sfNO.js +183 -0
  104. package/dist/unpkg/dev-deprecated/configure.js +1 -0
  105. package/dist/unpkg/dev-deprecated/graph/-private.js +3326 -0
  106. package/dist/unpkg/dev-deprecated/index-BBlq5is_.js +11775 -0
  107. package/dist/unpkg/dev-deprecated/index.js +5 -0
  108. package/dist/unpkg/dev-deprecated/reactive/-private.js +1 -0
  109. package/dist/unpkg/dev-deprecated/reactive.js +127 -0
  110. package/dist/unpkg/dev-deprecated/request-CA9K0gXq.js +719 -0
  111. package/dist/unpkg/dev-deprecated/request.js +1 -0
  112. package/dist/unpkg/dev-deprecated/runtime-DfhJzpZH.js +135 -0
  113. package/dist/unpkg/dev-deprecated/store/-private.js +2 -0
  114. package/dist/unpkg/dev-deprecated/store.js +558 -0
  115. package/dist/unpkg/dev-deprecated/types/-private.js +69 -0
  116. package/dist/unpkg/dev-deprecated/types/cache/aliases.js +0 -0
  117. package/dist/unpkg/dev-deprecated/types/cache/change.js +0 -0
  118. package/dist/unpkg/dev-deprecated/types/cache/mutations.js +0 -0
  119. package/dist/unpkg/dev-deprecated/types/cache/operations.js +0 -0
  120. package/dist/unpkg/dev-deprecated/types/cache/relationship.js +0 -0
  121. package/dist/unpkg/dev-deprecated/types/cache.js +0 -0
  122. package/dist/unpkg/dev-deprecated/types/graph.js +0 -0
  123. package/dist/unpkg/dev-deprecated/types/identifier.js +61 -0
  124. package/dist/unpkg/dev-deprecated/types/json/raw.js +0 -0
  125. package/dist/unpkg/dev-deprecated/types/params.js +0 -0
  126. package/dist/unpkg/dev-deprecated/types/record.js +191 -0
  127. package/dist/unpkg/dev-deprecated/types/request.js +77 -0
  128. package/dist/unpkg/dev-deprecated/types/runtime.js +34 -0
  129. package/dist/unpkg/dev-deprecated/types/schema/concepts.js +0 -0
  130. package/dist/unpkg/dev-deprecated/types/schema/fields.js +505 -0
  131. package/dist/unpkg/dev-deprecated/types/schema/fields.type-test.js +0 -0
  132. package/dist/unpkg/dev-deprecated/types/schema/schema-service.js +0 -0
  133. package/dist/unpkg/dev-deprecated/types/spec/document.js +0 -0
  134. package/dist/unpkg/dev-deprecated/types/spec/error.js +0 -0
  135. package/dist/unpkg/dev-deprecated/types/spec/json-api-raw.js +0 -0
  136. package/dist/unpkg/dev-deprecated/types/symbols.js +84 -0
  137. package/dist/unpkg/dev-deprecated/types/utils.js +0 -0
  138. package/dist/unpkg/dev-deprecated/types.js +0 -0
  139. package/dist/unpkg/dev-deprecated/utils/string.js +91 -0
  140. package/dist/unpkg/prod/-private-3C1OkYtZ.js +39 -0
  141. package/dist/unpkg/prod/build-config/babel-macros.js +1 -0
  142. package/dist/unpkg/prod/build-config/canary-features.js +1 -0
  143. package/dist/unpkg/prod/build-config/debugging.js +1 -0
  144. package/dist/unpkg/prod/build-config/deprecations.js +1 -0
  145. package/dist/unpkg/prod/build-config/env.js +1 -0
  146. package/dist/unpkg/prod/build-config/macros.js +1 -0
  147. package/dist/unpkg/prod/build-config.js +1 -0
  148. package/dist/unpkg/prod/configure-C0C1LpG6.js +158 -0
  149. package/dist/unpkg/prod/configure.js +1 -0
  150. package/dist/unpkg/prod/graph/-private.js +2234 -0
  151. package/dist/unpkg/prod/handler-LAyD1Y5l.js +1619 -0
  152. package/dist/unpkg/prod/hooks-BfiqDg3O.js +26 -0
  153. package/dist/unpkg/prod/index.js +481 -0
  154. package/dist/unpkg/prod/promise-state-ipG60SdD.js +6738 -0
  155. package/dist/unpkg/prod/reactive/-private.js +1 -0
  156. package/dist/unpkg/prod/reactive.js +127 -0
  157. package/dist/unpkg/prod/request-CN2LxbYX.js +437 -0
  158. package/dist/unpkg/prod/request.js +1 -0
  159. package/dist/unpkg/prod/store/-private.js +127 -0
  160. package/dist/unpkg/prod/store.js +437 -0
  161. package/dist/unpkg/prod/types/-private.js +49 -0
  162. package/dist/unpkg/prod/types/cache/aliases.js +0 -0
  163. package/dist/unpkg/prod/types/cache/change.js +0 -0
  164. package/dist/unpkg/prod/types/cache/mutations.js +0 -0
  165. package/dist/unpkg/prod/types/cache/operations.js +0 -0
  166. package/dist/unpkg/prod/types/cache/relationship.js +0 -0
  167. package/dist/unpkg/prod/types/cache.js +0 -0
  168. package/dist/unpkg/prod/types/graph.js +0 -0
  169. package/dist/unpkg/prod/types/identifier.js +61 -0
  170. package/dist/unpkg/prod/types/json/raw.js +0 -0
  171. package/dist/unpkg/prod/types/params.js +0 -0
  172. package/dist/unpkg/prod/types/record.js +191 -0
  173. package/dist/unpkg/prod/types/request.js +77 -0
  174. package/dist/unpkg/prod/types/runtime.js +34 -0
  175. package/dist/unpkg/prod/types/schema/concepts.js +0 -0
  176. package/dist/unpkg/prod/types/schema/fields.js +505 -0
  177. package/dist/unpkg/prod/types/schema/fields.type-test.js +0 -0
  178. package/dist/unpkg/prod/types/schema/schema-service.js +0 -0
  179. package/dist/unpkg/prod/types/spec/document.js +0 -0
  180. package/dist/unpkg/prod/types/spec/error.js +0 -0
  181. package/dist/unpkg/prod/types/spec/json-api-raw.js +0 -0
  182. package/dist/unpkg/prod/types/symbols.js +84 -0
  183. package/dist/unpkg/prod/types/utils.js +0 -0
  184. package/dist/unpkg/prod/types.js +0 -0
  185. package/dist/unpkg/prod/utils/string.js +72 -0
  186. package/dist/unpkg/prod-deprecated/-private-3C1OkYtZ.js +39 -0
  187. package/dist/unpkg/prod-deprecated/build-config/babel-macros.js +1 -0
  188. package/dist/unpkg/prod-deprecated/build-config/canary-features.js +1 -0
  189. package/dist/unpkg/prod-deprecated/build-config/debugging.js +1 -0
  190. package/dist/unpkg/prod-deprecated/build-config/deprecations.js +1 -0
  191. package/dist/unpkg/prod-deprecated/build-config/env.js +1 -0
  192. package/dist/unpkg/prod-deprecated/build-config/macros.js +1 -0
  193. package/dist/unpkg/prod-deprecated/build-config.js +1 -0
  194. package/dist/unpkg/prod-deprecated/configure-BQ8CpIcW.js +158 -0
  195. package/dist/unpkg/prod-deprecated/configure.js +1 -0
  196. package/dist/unpkg/prod-deprecated/graph/-private.js +2407 -0
  197. package/dist/unpkg/prod-deprecated/handler-D639oFvl.js +334 -0
  198. package/dist/unpkg/prod-deprecated/hooks-DGvi9teJ.js +26 -0
  199. package/dist/unpkg/prod-deprecated/index.js +481 -0
  200. package/dist/unpkg/prod-deprecated/promise-state-CYvoIPna.js +8458 -0
  201. package/dist/unpkg/prod-deprecated/reactive/-private.js +1 -0
  202. package/dist/unpkg/prod-deprecated/reactive.js +126 -0
  203. package/dist/unpkg/prod-deprecated/request-CN2LxbYX.js +437 -0
  204. package/dist/unpkg/prod-deprecated/request.js +1 -0
  205. package/dist/unpkg/prod-deprecated/store/-private.js +89 -0
  206. package/dist/unpkg/prod-deprecated/store.js +437 -0
  207. package/dist/unpkg/prod-deprecated/types/-private.js +49 -0
  208. package/dist/unpkg/prod-deprecated/types/cache/aliases.js +0 -0
  209. package/dist/unpkg/prod-deprecated/types/cache/change.js +0 -0
  210. package/dist/unpkg/prod-deprecated/types/cache/mutations.js +0 -0
  211. package/dist/unpkg/prod-deprecated/types/cache/operations.js +0 -0
  212. package/dist/unpkg/prod-deprecated/types/cache/relationship.js +0 -0
  213. package/dist/unpkg/prod-deprecated/types/cache.js +0 -0
  214. package/dist/unpkg/prod-deprecated/types/graph.js +0 -0
  215. package/dist/unpkg/prod-deprecated/types/identifier.js +61 -0
  216. package/dist/unpkg/prod-deprecated/types/json/raw.js +0 -0
  217. package/dist/unpkg/prod-deprecated/types/params.js +0 -0
  218. package/dist/unpkg/prod-deprecated/types/record.js +191 -0
  219. package/dist/unpkg/prod-deprecated/types/request.js +77 -0
  220. package/dist/unpkg/prod-deprecated/types/runtime.js +34 -0
  221. package/dist/unpkg/prod-deprecated/types/schema/concepts.js +0 -0
  222. package/dist/unpkg/prod-deprecated/types/schema/fields.js +505 -0
  223. package/dist/unpkg/prod-deprecated/types/schema/fields.type-test.js +0 -0
  224. package/dist/unpkg/prod-deprecated/types/schema/schema-service.js +0 -0
  225. package/dist/unpkg/prod-deprecated/types/spec/document.js +0 -0
  226. package/dist/unpkg/prod-deprecated/types/spec/error.js +0 -0
  227. package/dist/unpkg/prod-deprecated/types/spec/json-api-raw.js +0 -0
  228. package/dist/unpkg/prod-deprecated/types/symbols.js +84 -0
  229. package/dist/unpkg/prod-deprecated/types/utils.js +0 -0
  230. package/dist/unpkg/prod-deprecated/types.js +0 -0
  231. package/dist/unpkg/prod-deprecated/utils/string.js +72 -0
  232. package/logos/README.md +2 -2
  233. package/logos/logo-yellow-slab.svg +1 -0
  234. package/logos/word-mark-black.svg +1 -0
  235. package/logos/word-mark-white.svg +1 -0
  236. package/package.json +11 -3
  237. package/logos/NCC-1701-a-blue.svg +0 -4
  238. package/logos/NCC-1701-a-gold.svg +0 -4
  239. package/logos/NCC-1701-a-gold_100.svg +0 -1
  240. package/logos/NCC-1701-a-gold_base-64.txt +0 -1
  241. package/logos/NCC-1701-a.svg +0 -4
  242. package/logos/docs-badge.svg +0 -2
  243. package/logos/ember-data-logo-dark.svg +0 -12
  244. package/logos/ember-data-logo-light.svg +0 -12
  245. package/logos/social1.png +0 -0
  246. package/logos/social2.png +0 -0
  247. package/logos/warp-drive-logo-dark.svg +0 -4
  248. package/logos/warp-drive-logo-gold.svg +0 -4
@@ -8,19 +8,22 @@ const IS_FUTURE = getOrSetGlobal('IS_FUTURE', Symbol('IS_FUTURE'));
8
8
  const STRUCTURED = getOrSetGlobal('DOC', Symbol('DOC'));
9
9
 
10
10
  /**
11
- * Use these options to adjust CacheHandler behavior for a request.
11
+ * Use these options to adjust {@link CacheHandler} behavior for a request
12
+ * via {@link RequestInfo.cacheOptions}.
12
13
  *
13
14
  */
14
15
 
15
16
  /**
16
- * When a handler chain resolves, it returns an object
17
- * containing the original request, the response set by the handler
18
- * chain (if any), and the processed content.
17
+ * When a {@link Future} resolves, it returns an object
18
+ * containing the original {@link RequestInfo | request},
19
+ * the {@link Response | response} set by the handler chain (if any), and
20
+ * the processed content.
19
21
  */
20
22
 
21
23
  /**
22
- * When a handler chain rejects, it throws an Error that maintains the
23
- * `{ request, response, content }` shape but is also an Error instance
24
+ * When a {@link Future} rejects, it throws either an {@link Error}
25
+ * an {@link AggregateError} or a {@link DOMException} that maintains
26
+ * the `{ request, response, content }` shape but is also an Error instance
24
27
  * itself.
25
28
  *
26
29
  * If using the error originates from the {@link Fetch | Fetch Handler}
@@ -28,10 +31,12 @@ const STRUCTURED = getOrSetGlobal('DOC', Symbol('DOC'));
28
31
  */
29
32
 
30
33
  /**
31
- * A union of the resolve/reject data types for a request.
34
+ * A union of the resolve/reject data types for the {@link Future}
35
+ * returned by {@link Store.request | request}
32
36
  *
33
- * See the docs for:
37
+ * See also the docs for:
34
38
  *
39
+ * - {@link Future}
35
40
  * - {@link StructuredDataDocument} (resolved/successful requests)
36
41
  * - {@link StructuredErrorDocument} (rejected/failed requests)
37
42
  */
@@ -69,7 +74,4 @@ const STRUCTURED = getOrSetGlobal('DOC', Symbol('DOC'));
69
74
  *
70
75
  */
71
76
 
72
- function withBrand(obj) {
73
- return obj;
74
- }
75
- export { EnableHydration, IS_FUTURE, STRUCTURED, SkipCache, withBrand };
77
+ export { EnableHydration, IS_FUTURE, STRUCTURED, SkipCache };
@@ -443,6 +443,20 @@
443
443
  * @public
444
444
  */
445
445
 
446
+ /**
447
+ * A trait for use on a PolarisMode record
448
+ */
449
+
450
+ /**
451
+ * A trait for use on a LegacyMode record
452
+ */
453
+
454
+ /**
455
+ * A union of
456
+ * - {@link LegacyTrait}
457
+ * - {@link PolarisTrait}
458
+ */
459
+
446
460
  /**
447
461
  * A no-op type utility that enables type-checking resource schema
448
462
  * definitions.
File without changes
@@ -11,7 +11,7 @@ const RecordStore = getOrSetGlobal('Store', Symbol('Store'));
11
11
  * record implementations to provide a typescript
12
12
  * hint for the type of the resource.
13
13
  *
14
- * When used, EmberData/WarpDrive APIs can
14
+ * When used, WarpDrive APIs can
15
15
  * take advantage of this to provide better type
16
16
  * safety and intellisense.
17
17
  *
@@ -48,7 +48,7 @@ const Type = getOrSetGlobal('$type', Symbol('$type'));
48
48
  * record implementations to provide a typescript
49
49
  * hint for the type of the resource.
50
50
  *
51
- * When used, EmberData/WarpDrive APIs can
51
+ * When used, WarpDrive APIs can
52
52
  * take advantage of this to provide better type
53
53
  * safety and intellisense.
54
54
  *
@@ -0,0 +1,39 @@
1
+ import { getOrSetGlobal } from './types/-private.js';
2
+
3
+ ///////////////////
4
+ ///// WARNING /////
5
+ ///////////////////
6
+
7
+ // Great, got your attention with that warning didn't we?
8
+ // Good. Here's the deal: typescript treats symbols as unique types.
9
+ // If by accident a module creating a symbol is processed more than
10
+ // once, the symbol will be different in each processing. This will
11
+ // cause a type error.
12
+ // It could also cause a runtime error if the symbol is used innapropriately.
13
+ // However, this case is extremely hard to hit and would require other things
14
+ // to go wrong first.
15
+ //
16
+ // So, why do the warning? And why do we lie about the types of the symbols?
17
+ //
18
+ // Because we intentionally create multiple copies of them within the types
19
+ // at build time. This is because we rollup our d.ts files in order to give
20
+ // our consumers a better experience.
21
+ //
22
+ // However, no tool today supports rolling up d.ts files with multiple entry
23
+ // points correctly. The tool we use currently (vite-plugin-dts) uses @microsoft/api-extractor
24
+ // which creates a fully unique stand-alone types file per-entry-point. Thus
25
+ // every entry point that uses one of these symbols somewhere will have accidentally
26
+ // created a new symbol type.
27
+ //
28
+ // This cast allows us to rollup these types using this tool while not encountering
29
+ // the unique symbol type issue.
30
+ //
31
+ // Note that none of these symbols are part of the public API, these are used for
32
+ // debugging DX and as a safe way to provide an intimate contract on public objects.
33
+
34
+ const SOURCE = getOrSetGlobal('SOURCE', Symbol('#source'));
35
+ const Destroy = getOrSetGlobal('Destroy', Symbol.dispose || Symbol.for('Dispose'));
36
+ const Checkout = getOrSetGlobal('Checkout', Symbol('Checkout'));
37
+ const Commit = getOrSetGlobal('Commit', Symbol('Commit'));
38
+ const Context = getOrSetGlobal('Context', Symbol('Context'));
39
+ export { Checkout as C, Destroy as D, SOURCE as S, Context as a, Commit as b };
@@ -0,0 +1 @@
1
+ export { macros } from '@warp-drive/build-config/babel-macros';
@@ -0,0 +1 @@
1
+ export * from '@warp-drive/build-config/canary-features';
@@ -0,0 +1 @@
1
+ export * from '@warp-drive/build-config/debugging';
@@ -0,0 +1 @@
1
+ export * from '@warp-drive/build-config/deprecations';
@@ -0,0 +1 @@
1
+ export { DEBUG, IS_CI, IS_RECORDING, PRODUCTION, SHOULD_RECORD, TESTING } from '@warp-drive/build-config/env';
@@ -0,0 +1 @@
1
+ export { assert } from '@warp-drive/build-config/macros';
@@ -0,0 +1 @@
1
+ export { babelPlugin, setConfig } from '@warp-drive/build-config';
@@ -0,0 +1,183 @@
1
+ import { getOrSetGlobal, peekTransient, setTransient } from './types/-private.js';
2
+
3
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
4
+
5
+ const ARRAY_SIGNAL = getOrSetGlobal('#[]', Symbol('#[]'));
6
+ const OBJECT_SIGNAL = getOrSetGlobal('#{}', Symbol('#{}'));
7
+
8
+ /**
9
+ * Requirements:
10
+ *
11
+ * Signal:
12
+ *
13
+ * - signal: a way of creating a reference that we can dirty when we desire to notify
14
+ * - @signal: a way of creating an accessor on an object that subscribes to a signal on access
15
+ * and notifies the signal on set, or of upgrading a descriptor to be such an accessor
16
+ * - defineSignal: a way of creating a signal on an object
17
+ * - notifySignal: a way of notifying the underlying signal that it has been dirtied
18
+ * - peekSignal: a way of inspecting the signal without notifying it
19
+ *
20
+ * - gate: a memoized getter function that re-runs when on access if its signal is dirty
21
+ * conceptually, a gate is a tightly coupled signal and memo
22
+ * - @gate: a way of creating a gate on an object or upgrading a descriptor with a getter
23
+ * to be a gate
24
+ * - defineGate: a way of creating a gate on an object
25
+ * - notifySignal: a way of notifying the signal for a gate that it has been dirtied
26
+ *
27
+ * - memo:
28
+ * - @memo: a way of creating a memoized getter on an object or upgrading a descriptor with a getter
29
+ * to be a memo
30
+ * - defineMemo: a way of creating a memo on an object
31
+ *
32
+ * - signalStore: storage bucket for signals associated to an object
33
+ * - withSignalStore: a way of pre-creating a signal store on an object
34
+ *
35
+ *
36
+ * @internal
37
+ */
38
+
39
+ /**
40
+ * An Opaque type that represents a framework specific or TC39 signal.
41
+ *
42
+ * It may be an array of signals or a single signal.
43
+ *
44
+ * @private
45
+ */
46
+
47
+ /**
48
+ * The hooks which MUST be configured in order to use reactive arrays,
49
+ * resources and documents with framework specfic signals or TC39 signals.
50
+ *
51
+ * Support for multiple frameworks simultaneously can be done via
52
+ * this abstraction by returning multiple signals from the `createSignal`
53
+ * method, and consuming the correct one via the correct framework via
54
+ * the `consumeSignal` and `notifySignal` methods.
55
+ *
56
+ * Unlike many signals implementations, WarpDrive does not wrap values as
57
+ * signals directly, but instead uses signals to alert the reactive layer
58
+ * to changes in the underlying cache. E.g. a signal is associated to a value,
59
+ * but does not serve as the cache for that value directly. We refer to this as
60
+ * a "gate", the pattern has also been called "side-signals".
61
+ *
62
+ * A no-op implementation is allowed, though it may lead to performance issues
63
+ * in locations that use createMemo as no memoization would be done. This is
64
+ * typically desirable only when integrating with a framework that does its own
65
+ * memoization and does not integrate with any signals-like primitive. For these
66
+ * scenarios you may also be interested in integrating with the {@link NotificationManager}
67
+ * more directly.
68
+ *
69
+ * @public
70
+ */
71
+
72
+ /**
73
+ * Contains information a {@link SignalHooks} implementation may want
74
+ * to use, such as the specialized key used for the signal
75
+ * representing an array's contents / length.
76
+ *
77
+ * ```ts
78
+ * interface HooksOptions {
79
+ * wellknown: {
80
+ * Array: symbol | string;
81
+ * }
82
+ * }
83
+ * ```
84
+ *
85
+ * @public
86
+ */
87
+
88
+ /**
89
+ * Configures the signals implementation to use. Supports multiple
90
+ * implementations simultaneously.
91
+ *
92
+ * See {@link HooksOptions} for the options passed to the provided function
93
+ * when called.
94
+ *
95
+ * See {@link SignalHooks} for the implementation the callback function should
96
+ * return.
97
+ *
98
+ * @public
99
+ * @param buildConfig - a function that takes options and returns a configuration object
100
+ */
101
+ function setupSignals(buildConfig) {
102
+ // We want to assert this but can't because too many package manager
103
+ // and bundler bugs exist that cause this to be called multiple times
104
+ // for what should be a single call.
105
+ // assert(`Cannot override configured signal hooks`, peekTransient('signalHooks') === null);
106
+ const hooks = buildConfig({
107
+ wellknown: {
108
+ Array: ARRAY_SIGNAL
109
+ }
110
+ });
111
+ setTransient('signalHooks', hooks);
112
+ }
113
+
114
+ /**
115
+ * Internal method for consuming the configured `createSignal` hook
116
+ *
117
+ * @private
118
+ */
119
+ function createSignal(obj, key) {
120
+ const signalHooks = peekTransient('signalHooks');
121
+ (test => {
122
+ if (!test) {
123
+ throw new Error(`Signal hooks not configured`);
124
+ }
125
+ })(signalHooks);
126
+ return signalHooks.createSignal(obj, key);
127
+ }
128
+
129
+ /**
130
+ * Internal method for consuming the configured `consumeSignal` hook
131
+ *
132
+ * @private
133
+ */
134
+ function consumeSignal(signal) {
135
+ const signalHooks = peekTransient('signalHooks');
136
+ (test => {
137
+ if (!test) {
138
+ throw new Error(`Signal hooks not configured`);
139
+ }
140
+ })(signalHooks);
141
+ return signalHooks.consumeSignal(signal);
142
+ }
143
+
144
+ /**
145
+ * Internal method for consuming the configured `notifySignal` hook
146
+ *
147
+ * @private
148
+ */
149
+ function notifySignal(signal) {
150
+ const signalHooks = peekTransient('signalHooks');
151
+ (test => {
152
+ if (!test) {
153
+ throw new Error(`Signal hooks not configured`);
154
+ }
155
+ })(signalHooks);
156
+ return signalHooks.notifySignal(signal);
157
+ }
158
+ function createMemo(object, key, fn) {
159
+ const signalHooks = peekTransient('signalHooks');
160
+ (test => {
161
+ if (!test) {
162
+ throw new Error(`Signal hooks not configured`);
163
+ }
164
+ })(signalHooks);
165
+ return signalHooks.createMemo(object, key, fn);
166
+ }
167
+ function willSyncFlushWatchers() {
168
+ const signalHooks = peekTransient('signalHooks');
169
+ (test => {
170
+ if (!test) {
171
+ throw new Error(`Signal hooks not configured`);
172
+ }
173
+ })(signalHooks);
174
+ return signalHooks.willSyncFlushWatchers();
175
+ }
176
+ function waitFor(promise) {
177
+ const signalHooks = peekTransient('signalHooks');
178
+ if (signalHooks?.waitFor) {
179
+ return signalHooks.waitFor(promise);
180
+ }
181
+ return promise;
182
+ }
183
+ export { ARRAY_SIGNAL as A, OBJECT_SIGNAL as O, consumeSignal as a, createMemo as b, createSignal as c, willSyncFlushWatchers as d, notifySignal as n, setupSignals as s, waitFor as w };
@@ -0,0 +1 @@
1
+ export { s as setupSignals } from "./configure-BC66sfNO.js";