@warp-drive/legacy 5.9.0-alpha.21 → 5.9.0-alpha.22

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 (467) hide show
  1. package/dist/-private-DQ6Iap2t.js +193 -0
  2. package/dist/-private-DQ6Iap2t.js.map +1 -0
  3. package/dist/-private-DccRZQsm.js +904 -0
  4. package/dist/-private-DccRZQsm.js.map +1 -0
  5. package/dist/adapter/-private.d.ts +33 -0
  6. package/dist/adapter/-private.d.ts.map +1 -0
  7. package/dist/adapter/-private.js +3 -1
  8. package/dist/adapter/error.d.ts +2 -0
  9. package/dist/adapter/error.js +422 -453
  10. package/dist/adapter/error.js.map +1 -0
  11. package/{declarations → dist}/adapter/json-api.d.ts +30 -29
  12. package/dist/adapter/json-api.d.ts.map +1 -0
  13. package/dist/adapter/json-api.js +265 -143
  14. package/dist/adapter/json-api.js.map +1 -0
  15. package/dist/adapter/rest.d.ts +2 -0
  16. package/dist/adapter/rest.js +937 -1136
  17. package/dist/adapter/rest.js.map +1 -0
  18. package/dist/adapter-CARrK3-8.d.ts +784 -0
  19. package/dist/adapter-CARrK3-8.d.ts.map +1 -0
  20. package/dist/adapter-XgLAkYVs.js +1130 -0
  21. package/dist/adapter-XgLAkYVs.js.map +1 -0
  22. package/dist/adapter.d.ts +2 -0
  23. package/dist/adapter.js +1 -1248
  24. package/dist/compat/-private.d.ts +2 -0
  25. package/dist/compat/-private.js +3 -1
  26. package/dist/compat/builders.d.ts +169 -0
  27. package/dist/compat/builders.d.ts.map +1 -0
  28. package/dist/compat/builders.js +205 -245
  29. package/dist/compat/builders.js.map +1 -0
  30. package/dist/compat/extensions.d.ts +2 -0
  31. package/dist/compat/extensions.js +265 -304
  32. package/dist/compat/extensions.js.map +1 -0
  33. package/dist/compat/utils.d.ts +151 -0
  34. package/dist/compat/utils.d.ts.map +1 -0
  35. package/dist/compat/utils.js +187 -206
  36. package/dist/compat/utils.js.map +1 -0
  37. package/dist/compat-BbNNmTM-.d.ts +1386 -0
  38. package/dist/compat-BbNNmTM-.d.ts.map +1 -0
  39. package/dist/compat-g__Pfy2S.js +734 -0
  40. package/dist/compat-g__Pfy2S.js.map +1 -0
  41. package/dist/compat.d.ts +2 -0
  42. package/dist/compat.js +1 -1036
  43. package/dist/error-CzkyXr1Q.d.ts +435 -0
  44. package/dist/error-CzkyXr1Q.d.ts.map +1 -0
  45. package/dist/errors-LQhmDVdd.js +2134 -0
  46. package/dist/errors-LQhmDVdd.js.map +1 -0
  47. package/dist/extensions-DumNm4dA.d.ts +102 -0
  48. package/dist/extensions-DumNm4dA.d.ts.map +1 -0
  49. package/dist/index.d.ts +243 -0
  50. package/dist/index.d.ts.map +1 -0
  51. package/dist/index.js +267 -339
  52. package/dist/index.js.map +1 -0
  53. package/dist/json-BXNPTlcH.js +1106 -0
  54. package/dist/json-BXNPTlcH.js.map +1 -0
  55. package/dist/model/-private.d.ts +3 -0
  56. package/dist/model/-private.js +3 -1
  57. package/dist/model/migration-support.d.ts +335 -0
  58. package/dist/model/migration-support.d.ts.map +1 -0
  59. package/dist/model/migration-support.js +504 -575
  60. package/dist/model/migration-support.js.map +1 -0
  61. package/dist/model-62hn5_PD.d.ts +3107 -0
  62. package/dist/model-62hn5_PD.d.ts.map +1 -0
  63. package/dist/model-BtIEHqYZ.js +683 -0
  64. package/dist/model-BtIEHqYZ.js.map +1 -0
  65. package/dist/model-fragments-Dpn9285r.js +334 -0
  66. package/dist/model-fragments-Dpn9285r.js.map +1 -0
  67. package/dist/model-fragments.d.ts +294 -0
  68. package/dist/model-fragments.d.ts.map +1 -0
  69. package/dist/model-fragments.js +2 -94
  70. package/dist/model.d.ts +404 -0
  71. package/dist/model.d.ts.map +1 -0
  72. package/dist/model.js +3 -670
  73. package/{declarations/adapter/rest.d.ts → dist/rest-0NhtexIq.d.ts} +183 -173
  74. package/dist/rest-0NhtexIq.d.ts.map +1 -0
  75. package/dist/runtime-BPCpkOf1-BgO3Lyjx.js +53 -0
  76. package/dist/runtime-BPCpkOf1-BgO3Lyjx.js.map +1 -0
  77. package/dist/schema-provider-DsKuB5Wb.js +1929 -0
  78. package/dist/schema-provider-DsKuB5Wb.js.map +1 -0
  79. package/{declarations → dist}/serializer/json-api.d.ts +3 -0
  80. package/dist/serializer/json-api.d.ts.map +1 -0
  81. package/dist/serializer/json-api.js +527 -519
  82. package/dist/serializer/json-api.js.map +1 -0
  83. package/{declarations → dist}/serializer/json.d.ts +3 -0
  84. package/dist/serializer/json.d.ts.map +1 -0
  85. package/dist/serializer/json.js +3 -6
  86. package/{declarations/serializer/-private/embedded-records-mixin.d.ts → dist/serializer/rest.d.ts} +56 -1
  87. package/dist/serializer/rest.d.ts.map +1 -0
  88. package/dist/serializer/rest.js +958 -1199
  89. package/dist/serializer/rest.js.map +1 -0
  90. package/dist/serializer/transform.d.ts +313 -0
  91. package/dist/serializer/transform.d.ts.map +1 -0
  92. package/dist/serializer/transform.js +283 -308
  93. package/dist/serializer/transform.js.map +1 -0
  94. package/dist/serializer.d.ts +151 -0
  95. package/dist/serializer.d.ts.map +1 -0
  96. package/dist/serializer.js +205 -205
  97. package/dist/serializer.js.map +1 -0
  98. package/dist/store-C4qYzXei.js +473 -0
  99. package/dist/store-C4qYzXei.js.map +1 -0
  100. package/dist/store.d.ts +13 -0
  101. package/dist/store.d.ts.map +1 -0
  102. package/dist/store.js +1 -641
  103. package/dist/unpkg/dev/-private-CrEyBE-B.js +189 -0
  104. package/dist/unpkg/dev/-private-CrEyBE-B.js.map +1 -0
  105. package/dist/unpkg/dev/-private-vOhxVExH.js +896 -0
  106. package/dist/unpkg/dev/-private-vOhxVExH.js.map +1 -0
  107. package/dist/unpkg/dev/adapter/-private.js +3 -1
  108. package/dist/unpkg/dev/adapter/error.js +421 -452
  109. package/dist/unpkg/dev/adapter/error.js.map +1 -0
  110. package/dist/unpkg/dev/adapter/json-api.js +239 -257
  111. package/dist/unpkg/dev/adapter/json-api.js.map +1 -0
  112. package/dist/unpkg/dev/adapter/rest.js +935 -1134
  113. package/dist/unpkg/dev/adapter/rest.js.map +1 -0
  114. package/dist/unpkg/dev/adapter-Cw0uSl8d.js +1129 -0
  115. package/dist/unpkg/dev/adapter-Cw0uSl8d.js.map +1 -0
  116. package/dist/unpkg/dev/adapter.js +1 -1247
  117. package/dist/unpkg/dev/compat/-private.js +3 -1
  118. package/dist/unpkg/dev/compat/builders.js +204 -247
  119. package/dist/unpkg/dev/compat/builders.js.map +1 -0
  120. package/dist/unpkg/dev/compat/extensions.js +264 -303
  121. package/dist/unpkg/dev/compat/extensions.js.map +1 -0
  122. package/dist/unpkg/dev/compat/utils.js +186 -205
  123. package/dist/unpkg/dev/compat/utils.js.map +1 -0
  124. package/dist/unpkg/dev/compat-CeyxXB7K.js +825 -0
  125. package/dist/unpkg/dev/compat-CeyxXB7K.js.map +1 -0
  126. package/dist/unpkg/dev/compat.js +1 -1178
  127. package/dist/unpkg/dev/errors-1javxsPo.js +2127 -0
  128. package/dist/unpkg/dev/errors-1javxsPo.js.map +1 -0
  129. package/dist/unpkg/dev/index.js +266 -344
  130. package/dist/unpkg/dev/index.js.map +1 -0
  131. package/dist/unpkg/dev/json-DDJji3V3.js +1104 -0
  132. package/dist/unpkg/dev/json-DDJji3V3.js.map +1 -0
  133. package/dist/unpkg/dev/model/-private.js +3 -1
  134. package/dist/unpkg/dev/model/migration-support.js +481 -549
  135. package/dist/unpkg/dev/model/migration-support.js.map +1 -0
  136. package/dist/unpkg/dev/model-C9Xb1R1x.js +655 -0
  137. package/dist/unpkg/dev/model-C9Xb1R1x.js.map +1 -0
  138. package/dist/unpkg/dev/model-fragments-Dpn9285r.js +334 -0
  139. package/dist/unpkg/dev/model-fragments-Dpn9285r.js.map +1 -0
  140. package/dist/unpkg/dev/model-fragments.js +2 -94
  141. package/dist/unpkg/dev/model.js +3 -681
  142. package/dist/unpkg/dev/runtime-BPCpkOf1-BgO3Lyjx.js +53 -0
  143. package/dist/unpkg/dev/runtime-BPCpkOf1-BgO3Lyjx.js.map +1 -0
  144. package/dist/unpkg/dev/schema-provider-Dy6c1J5f.js +1834 -0
  145. package/dist/unpkg/dev/schema-provider-Dy6c1J5f.js.map +1 -0
  146. package/dist/unpkg/dev/serializer/json-api.js +514 -634
  147. package/dist/unpkg/dev/serializer/json-api.js.map +1 -0
  148. package/dist/unpkg/dev/serializer/json.js +3 -4
  149. package/dist/unpkg/dev/serializer/rest.js +954 -1196
  150. package/dist/unpkg/dev/serializer/rest.js.map +1 -0
  151. package/dist/unpkg/dev/serializer/transform.js +283 -308
  152. package/dist/unpkg/dev/serializer/transform.js.map +1 -0
  153. package/dist/unpkg/dev/serializer.js +205 -205
  154. package/dist/unpkg/dev/serializer.js.map +1 -0
  155. package/dist/unpkg/dev/store-D_V8-HQl.js +472 -0
  156. package/dist/unpkg/dev/store-D_V8-HQl.js.map +1 -0
  157. package/dist/unpkg/dev/store.js +1 -649
  158. package/dist/unpkg/dev/util-dSKEgQDp.js +12 -0
  159. package/dist/unpkg/dev/util-dSKEgQDp.js.map +1 -0
  160. package/dist/unpkg/dev/utils-DYC9utVJ.js +11 -0
  161. package/dist/unpkg/dev/utils-DYC9utVJ.js.map +1 -0
  162. package/dist/unpkg/dev-deprecated/-private-CrEyBE-B.js +189 -0
  163. package/dist/unpkg/dev-deprecated/-private-CrEyBE-B.js.map +1 -0
  164. package/dist/unpkg/dev-deprecated/-private-vOhxVExH.js +896 -0
  165. package/dist/unpkg/dev-deprecated/-private-vOhxVExH.js.map +1 -0
  166. package/dist/unpkg/dev-deprecated/adapter/-private.js +3 -1
  167. package/dist/unpkg/dev-deprecated/adapter/error.js +421 -452
  168. package/dist/unpkg/dev-deprecated/adapter/error.js.map +1 -0
  169. package/dist/unpkg/dev-deprecated/adapter/json-api.js +239 -257
  170. package/dist/unpkg/dev-deprecated/adapter/json-api.js.map +1 -0
  171. package/dist/unpkg/dev-deprecated/adapter/rest.js +935 -1134
  172. package/dist/unpkg/dev-deprecated/adapter/rest.js.map +1 -0
  173. package/dist/unpkg/dev-deprecated/adapter-Cw0uSl8d.js +1129 -0
  174. package/dist/unpkg/dev-deprecated/adapter-Cw0uSl8d.js.map +1 -0
  175. package/dist/unpkg/dev-deprecated/adapter.js +1 -1247
  176. package/dist/unpkg/dev-deprecated/compat/-private.js +3 -1
  177. package/dist/unpkg/dev-deprecated/compat/builders.js +204 -247
  178. package/dist/unpkg/dev-deprecated/compat/builders.js.map +1 -0
  179. package/dist/unpkg/dev-deprecated/compat/extensions.js +264 -303
  180. package/dist/unpkg/dev-deprecated/compat/extensions.js.map +1 -0
  181. package/dist/unpkg/dev-deprecated/compat/utils.js +186 -205
  182. package/dist/unpkg/dev-deprecated/compat/utils.js.map +1 -0
  183. package/dist/unpkg/dev-deprecated/compat-DmAgB2NS.js +825 -0
  184. package/dist/unpkg/dev-deprecated/compat-DmAgB2NS.js.map +1 -0
  185. package/dist/unpkg/dev-deprecated/compat.js +1 -1178
  186. package/dist/unpkg/dev-deprecated/errors-C4_aOhY5.js +2128 -0
  187. package/dist/unpkg/dev-deprecated/errors-C4_aOhY5.js.map +1 -0
  188. package/dist/unpkg/dev-deprecated/index.js +266 -343
  189. package/dist/unpkg/dev-deprecated/index.js.map +1 -0
  190. package/dist/unpkg/dev-deprecated/json-DDJji3V3.js +1104 -0
  191. package/dist/unpkg/dev-deprecated/json-DDJji3V3.js.map +1 -0
  192. package/dist/unpkg/dev-deprecated/model/-private.js +3 -1
  193. package/dist/unpkg/dev-deprecated/model/migration-support.js +492 -566
  194. package/dist/unpkg/dev-deprecated/model/migration-support.js.map +1 -0
  195. package/dist/unpkg/dev-deprecated/model-CvSMYkgs.js +660 -0
  196. package/dist/unpkg/dev-deprecated/model-CvSMYkgs.js.map +1 -0
  197. package/dist/unpkg/dev-deprecated/model-fragments-Dpn9285r.js +334 -0
  198. package/dist/unpkg/dev-deprecated/model-fragments-Dpn9285r.js.map +1 -0
  199. package/dist/unpkg/dev-deprecated/model-fragments.js +2 -94
  200. package/dist/unpkg/dev-deprecated/model.js +3 -685
  201. package/dist/unpkg/dev-deprecated/runtime-BPCpkOf1-BgO3Lyjx.js +53 -0
  202. package/dist/unpkg/dev-deprecated/runtime-BPCpkOf1-BgO3Lyjx.js.map +1 -0
  203. package/dist/unpkg/dev-deprecated/schema-provider-Cqttza94.js +1835 -0
  204. package/dist/unpkg/dev-deprecated/schema-provider-Cqttza94.js.map +1 -0
  205. package/dist/unpkg/dev-deprecated/serializer/json-api.js +514 -634
  206. package/dist/unpkg/dev-deprecated/serializer/json-api.js.map +1 -0
  207. package/dist/unpkg/dev-deprecated/serializer/json.js +3 -4
  208. package/dist/unpkg/dev-deprecated/serializer/rest.js +954 -1196
  209. package/dist/unpkg/dev-deprecated/serializer/rest.js.map +1 -0
  210. package/dist/unpkg/dev-deprecated/serializer/transform.js +283 -308
  211. package/dist/unpkg/dev-deprecated/serializer/transform.js.map +1 -0
  212. package/dist/unpkg/dev-deprecated/serializer.js +205 -205
  213. package/dist/unpkg/dev-deprecated/serializer.js.map +1 -0
  214. package/dist/unpkg/dev-deprecated/store-BX7GvXC_.js +472 -0
  215. package/dist/unpkg/dev-deprecated/store-BX7GvXC_.js.map +1 -0
  216. package/dist/unpkg/dev-deprecated/store.js +1 -649
  217. package/dist/unpkg/dev-deprecated/util-9mgEBJ3W.js +18 -0
  218. package/dist/unpkg/dev-deprecated/util-9mgEBJ3W.js.map +1 -0
  219. package/dist/unpkg/dev-deprecated/utils-Cl86-e7F.js +17 -0
  220. package/dist/unpkg/dev-deprecated/utils-Cl86-e7F.js.map +1 -0
  221. package/dist/unpkg/prod/-private-B4bxoTuK.js +160 -0
  222. package/dist/unpkg/prod/-private-B4bxoTuK.js.map +1 -0
  223. package/dist/unpkg/prod/-private-SfXkkHKd.js +745 -0
  224. package/dist/unpkg/prod/-private-SfXkkHKd.js.map +1 -0
  225. package/dist/unpkg/prod/adapter/-private.js +3 -1
  226. package/dist/unpkg/prod/adapter/error.js +418 -447
  227. package/dist/unpkg/prod/adapter/error.js.map +1 -0
  228. package/dist/unpkg/prod/adapter/json-api.js +236 -252
  229. package/dist/unpkg/prod/adapter/json-api.js.map +1 -0
  230. package/dist/unpkg/prod/adapter/rest.js +911 -1097
  231. package/dist/unpkg/prod/adapter/rest.js.map +1 -0
  232. package/dist/unpkg/prod/adapter-Wnk7jizX.js +1111 -0
  233. package/dist/unpkg/prod/adapter-Wnk7jizX.js.map +1 -0
  234. package/dist/unpkg/prod/adapter.js +1 -1214
  235. package/dist/unpkg/prod/compat/-private.js +3 -1
  236. package/dist/unpkg/prod/compat/builders.js +165 -182
  237. package/dist/unpkg/prod/compat/builders.js.map +1 -0
  238. package/dist/unpkg/prod/compat/extensions.js +252 -283
  239. package/dist/unpkg/prod/compat/extensions.js.map +1 -0
  240. package/dist/unpkg/prod/compat/utils.js +183 -200
  241. package/dist/unpkg/prod/compat/utils.js.map +1 -0
  242. package/dist/unpkg/prod/compat-CJ87MzDn.js +547 -0
  243. package/dist/unpkg/prod/compat-CJ87MzDn.js.map +1 -0
  244. package/dist/unpkg/prod/compat.js +1 -742
  245. package/dist/unpkg/prod/errors-Co7YWHoA.js +1977 -0
  246. package/dist/unpkg/prod/errors-Co7YWHoA.js.map +1 -0
  247. package/dist/unpkg/prod/index.js +245 -308
  248. package/dist/unpkg/prod/index.js.map +1 -0
  249. package/dist/unpkg/prod/json-BD1kRTfB.js +1080 -0
  250. package/dist/unpkg/prod/json-BD1kRTfB.js.map +1 -0
  251. package/dist/unpkg/prod/model/-private.js +3 -1
  252. package/dist/unpkg/prod/model/migration-support.js +477 -542
  253. package/dist/unpkg/prod/model/migration-support.js.map +1 -0
  254. package/dist/unpkg/prod/model-BzoOmtka.js +603 -0
  255. package/dist/unpkg/prod/model-BzoOmtka.js.map +1 -0
  256. package/dist/unpkg/prod/model-fragments-Dpn9285r.js +334 -0
  257. package/dist/unpkg/prod/model-fragments-Dpn9285r.js.map +1 -0
  258. package/dist/unpkg/prod/model-fragments.js +2 -94
  259. package/dist/unpkg/prod/model.js +3 -596
  260. package/dist/unpkg/prod/runtime-BPCpkOf1-BgO3Lyjx.js +53 -0
  261. package/dist/unpkg/prod/runtime-BPCpkOf1-BgO3Lyjx.js.map +1 -0
  262. package/dist/unpkg/prod/schema-provider-CKZcqWyP.js +1622 -0
  263. package/dist/unpkg/prod/schema-provider-CKZcqWyP.js.map +1 -0
  264. package/dist/unpkg/prod/serializer/json-api.js +497 -592
  265. package/dist/unpkg/prod/serializer/json-api.js.map +1 -0
  266. package/dist/unpkg/prod/serializer/json.js +3 -4
  267. package/dist/unpkg/prod/serializer/rest.js +938 -1166
  268. package/dist/unpkg/prod/serializer/rest.js.map +1 -0
  269. package/dist/unpkg/prod/serializer/transform.js +283 -308
  270. package/dist/unpkg/prod/serializer/transform.js.map +1 -0
  271. package/dist/unpkg/prod/serializer.js +205 -205
  272. package/dist/unpkg/prod/serializer.js.map +1 -0
  273. package/dist/unpkg/prod/store-RGGc1ilN.js +392 -0
  274. package/dist/unpkg/prod/store-RGGc1ilN.js.map +1 -0
  275. package/dist/unpkg/prod/store.js +1 -517
  276. package/dist/unpkg/prod/util-dSKEgQDp.js +12 -0
  277. package/dist/unpkg/prod/util-dSKEgQDp.js.map +1 -0
  278. package/dist/unpkg/prod/utils-DYC9utVJ.js +11 -0
  279. package/dist/unpkg/prod/utils-DYC9utVJ.js.map +1 -0
  280. package/dist/unpkg/prod-deprecated/-private-B4bxoTuK.js +160 -0
  281. package/dist/unpkg/prod-deprecated/-private-B4bxoTuK.js.map +1 -0
  282. package/dist/unpkg/prod-deprecated/-private-SfXkkHKd.js +745 -0
  283. package/dist/unpkg/prod-deprecated/-private-SfXkkHKd.js.map +1 -0
  284. package/dist/unpkg/prod-deprecated/adapter/-private.js +3 -1
  285. package/dist/unpkg/prod-deprecated/adapter/error.js +418 -447
  286. package/dist/unpkg/prod-deprecated/adapter/error.js.map +1 -0
  287. package/dist/unpkg/prod-deprecated/adapter/json-api.js +236 -252
  288. package/dist/unpkg/prod-deprecated/adapter/json-api.js.map +1 -0
  289. package/dist/unpkg/prod-deprecated/adapter/rest.js +911 -1097
  290. package/dist/unpkg/prod-deprecated/adapter/rest.js.map +1 -0
  291. package/{declarations/adapter.d.ts → dist/unpkg/prod-deprecated/adapter-Wnk7jizX.js} +445 -110
  292. package/dist/unpkg/prod-deprecated/adapter-Wnk7jizX.js.map +1 -0
  293. package/dist/unpkg/prod-deprecated/adapter.js +1 -1214
  294. package/dist/unpkg/prod-deprecated/compat/-private.js +3 -1
  295. package/dist/unpkg/prod-deprecated/compat/builders.js +165 -182
  296. package/dist/unpkg/prod-deprecated/compat/builders.js.map +1 -0
  297. package/dist/unpkg/prod-deprecated/compat/extensions.js +252 -283
  298. package/dist/unpkg/prod-deprecated/compat/extensions.js.map +1 -0
  299. package/dist/unpkg/prod-deprecated/compat/utils.js +183 -200
  300. package/dist/unpkg/prod-deprecated/compat/utils.js.map +1 -0
  301. package/dist/unpkg/prod-deprecated/compat-CJ87MzDn.js +547 -0
  302. package/dist/unpkg/prod-deprecated/compat-CJ87MzDn.js.map +1 -0
  303. package/dist/unpkg/prod-deprecated/compat.js +1 -742
  304. package/dist/unpkg/prod-deprecated/errors-C-opde61.js +1978 -0
  305. package/dist/unpkg/prod-deprecated/errors-C-opde61.js.map +1 -0
  306. package/dist/unpkg/prod-deprecated/index.js +245 -307
  307. package/dist/unpkg/prod-deprecated/index.js.map +1 -0
  308. package/dist/unpkg/prod-deprecated/json-BD1kRTfB.js +1080 -0
  309. package/dist/unpkg/prod-deprecated/json-BD1kRTfB.js.map +1 -0
  310. package/dist/unpkg/prod-deprecated/model/-private.js +3 -1
  311. package/dist/unpkg/prod-deprecated/model/migration-support.js +488 -559
  312. package/dist/unpkg/prod-deprecated/model/migration-support.js.map +1 -0
  313. package/dist/unpkg/prod-deprecated/model-C0bTXzGn.js +604 -0
  314. package/dist/unpkg/prod-deprecated/model-C0bTXzGn.js.map +1 -0
  315. package/dist/unpkg/prod-deprecated/model-fragments-Dpn9285r.js +334 -0
  316. package/dist/unpkg/prod-deprecated/model-fragments-Dpn9285r.js.map +1 -0
  317. package/dist/unpkg/prod-deprecated/model-fragments.js +2 -94
  318. package/dist/unpkg/prod-deprecated/model.js +3 -599
  319. package/dist/unpkg/prod-deprecated/runtime-BPCpkOf1-BgO3Lyjx.js +53 -0
  320. package/dist/unpkg/prod-deprecated/runtime-BPCpkOf1-BgO3Lyjx.js.map +1 -0
  321. package/dist/unpkg/prod-deprecated/schema-provider-lH3qP5tw.js +1635 -0
  322. package/dist/unpkg/prod-deprecated/schema-provider-lH3qP5tw.js.map +1 -0
  323. package/dist/unpkg/prod-deprecated/serializer/json-api.js +497 -592
  324. package/dist/unpkg/prod-deprecated/serializer/json-api.js.map +1 -0
  325. package/dist/unpkg/prod-deprecated/serializer/json.js +3 -4
  326. package/dist/unpkg/prod-deprecated/serializer/rest.js +938 -1166
  327. package/dist/unpkg/prod-deprecated/serializer/rest.js.map +1 -0
  328. package/dist/unpkg/prod-deprecated/serializer/transform.js +283 -308
  329. package/dist/unpkg/prod-deprecated/serializer/transform.js.map +1 -0
  330. package/dist/unpkg/prod-deprecated/serializer.js +205 -205
  331. package/dist/unpkg/prod-deprecated/serializer.js.map +1 -0
  332. package/dist/unpkg/prod-deprecated/store-0L2CkYzh.js +392 -0
  333. package/dist/unpkg/prod-deprecated/store-0L2CkYzh.js.map +1 -0
  334. package/dist/unpkg/prod-deprecated/store.js +1 -517
  335. package/dist/unpkg/prod-deprecated/util-CQQdHX3n.js +14 -0
  336. package/dist/unpkg/prod-deprecated/util-CQQdHX3n.js.map +1 -0
  337. package/dist/unpkg/prod-deprecated/utils-BMI_JwFP.js +13 -0
  338. package/dist/unpkg/prod-deprecated/utils-BMI_JwFP.js.map +1 -0
  339. package/dist/util-Bnx8nm-D.js +29 -0
  340. package/dist/util-Bnx8nm-D.js.map +1 -0
  341. package/dist/utils-ZAytYep8.js +28 -0
  342. package/dist/utils-ZAytYep8.js.map +1 -0
  343. package/package.json +13 -13
  344. package/declarations/adapter/-private/build-url-mixin.d.ts +0 -189
  345. package/declarations/adapter/-private/fastboot-interface.d.ts +0 -8
  346. package/declarations/adapter/-private/utils/continue-on-reject.d.ts +0 -1
  347. package/declarations/adapter/-private/utils/determine-body-promise.d.ts +0 -4
  348. package/declarations/adapter/-private/utils/fetch.d.ts +0 -8
  349. package/declarations/adapter/-private/utils/parse-response-headers.d.ts +0 -1
  350. package/declarations/adapter/-private/utils/serialize-into-hash.d.ts +0 -6
  351. package/declarations/adapter/-private/utils/serialize-query-params.d.ts +0 -5
  352. package/declarations/adapter/-private.d.ts +0 -5
  353. package/declarations/adapter/error.d.ts +0 -431
  354. package/declarations/compat/-private.d.ts +0 -13
  355. package/declarations/compat/builders/find-all.d.ts +0 -34
  356. package/declarations/compat/builders/find-record.d.ts +0 -56
  357. package/declarations/compat/builders/query.d.ts +0 -66
  358. package/declarations/compat/builders/save-record.d.ts +0 -34
  359. package/declarations/compat/builders/utils.d.ts +0 -3
  360. package/declarations/compat/builders.d.ts +0 -14
  361. package/declarations/compat/extensions.d.ts +0 -99
  362. package/declarations/compat/legacy-network-handler/fetch-manager.d.ts +0 -55
  363. package/declarations/compat/legacy-network-handler/identifier-has-id.d.ts +0 -2
  364. package/declarations/compat/legacy-network-handler/legacy-data-fetch.d.ts +0 -11
  365. package/declarations/compat/legacy-network-handler/legacy-data-utils.d.ts +0 -5
  366. package/declarations/compat/legacy-network-handler/legacy-network-handler.d.ts +0 -9
  367. package/declarations/compat/legacy-network-handler/minimum-adapter-interface.d.ts +0 -528
  368. package/declarations/compat/legacy-network-handler/minimum-serializer-interface.d.ts +0 -220
  369. package/declarations/compat/legacy-network-handler/serializer-response.d.ts +0 -6
  370. package/declarations/compat/legacy-network-handler/snapshot-record-array.d.ts +0 -110
  371. package/declarations/compat/legacy-network-handler/snapshot.d.ts +0 -255
  372. package/declarations/compat/utils.d.ts +0 -148
  373. package/declarations/compat.d.ts +0 -189
  374. package/declarations/index.d.ts +0 -244
  375. package/declarations/model/-private/attr.d.ts +0 -191
  376. package/declarations/model/-private/belongs-to.d.ts +0 -195
  377. package/declarations/model/-private/debug/assert-polymorphic-type.d.ts +0 -5
  378. package/declarations/model/-private/errors.d.ts +0 -289
  379. package/declarations/model/-private/has-many.d.ts +0 -162
  380. package/declarations/model/-private/hooks.d.ts +0 -36
  381. package/declarations/model/-private/legacy-relationships-support.d.ts +0 -47
  382. package/declarations/model/-private/model-for-mixin.d.ts +0 -3
  383. package/declarations/model/-private/model-methods.d.ts +0 -39
  384. package/declarations/model/-private/model.d.ts +0 -1279
  385. package/declarations/model/-private/notify-changes.d.ts +0 -4
  386. package/declarations/model/-private/promise-belongs-to.d.ts +0 -40
  387. package/declarations/model/-private/promise-many-array.d.ts +0 -130
  388. package/declarations/model/-private/record-state.d.ts +0 -58
  389. package/declarations/model/-private/references/belongs-to.d.ts +0 -488
  390. package/declarations/model/-private/references/has-many.d.ts +0 -498
  391. package/declarations/model/-private/schema-provider.d.ts +0 -66
  392. package/declarations/model/-private/type-utils.d.ts +0 -57
  393. package/declarations/model/-private/util.d.ts +0 -5
  394. package/declarations/model/-private.d.ts +0 -8
  395. package/declarations/model/migration-support.d.ts +0 -306
  396. package/declarations/model-fragments/extensions/fragment-array.d.ts +0 -54
  397. package/declarations/model-fragments/extensions/fragment.d.ts +0 -50
  398. package/declarations/model-fragments/hooks/model-for.d.ts +0 -27
  399. package/declarations/model-fragments/index.d.ts +0 -13
  400. package/declarations/model-fragments/instance-initializers/fragment-extensions.d.ts +0 -15
  401. package/declarations/model-fragments/utilities/with-array-defaults.d.ts +0 -56
  402. package/declarations/model-fragments/utilities/with-fragment-array-defaults.d.ts +0 -38
  403. package/declarations/model-fragments/utilities/with-fragment-defaults.d.ts +0 -34
  404. package/declarations/model-fragments/utilities/with-legacy.d.ts +0 -11
  405. package/declarations/model-fragments.d.ts +0 -9
  406. package/declarations/model.d.ts +0 -49
  407. package/declarations/serializer/-private/transforms/boolean.d.ts +0 -60
  408. package/declarations/serializer/-private/transforms/date.d.ts +0 -42
  409. package/declarations/serializer/-private/transforms/number.d.ts +0 -42
  410. package/declarations/serializer/-private/transforms/string.d.ts +0 -42
  411. package/declarations/serializer/-private/transforms/transform.d.ts +0 -118
  412. package/declarations/serializer/-private/utils.d.ts +0 -27
  413. package/declarations/serializer/rest.d.ts +0 -51
  414. package/declarations/serializer/transform.d.ts +0 -5
  415. package/declarations/serializer.d.ts +0 -252
  416. package/declarations/store/-private.d.ts +0 -223
  417. package/declarations/store.d.ts +0 -10
  418. package/dist/-private-BG3bMiKp.js +0 -1211
  419. package/dist/errors-DZKA206g.js +0 -2589
  420. package/dist/hooks-BvOqJBei.js +0 -105
  421. package/dist/json-DU8m1pGf.js +0 -1336
  422. package/dist/model-for-CXkJw59V.js +0 -297
  423. package/dist/runtime-BPCpkOf1-BKOwiRJp.js +0 -65
  424. package/dist/schema-provider-DtPOp0d7.js +0 -2382
  425. package/dist/serialize-into-hash-DPZYoF-i.js +0 -261
  426. package/dist/unpkg/dev/-private-DtjBbEgy.js +0 -1206
  427. package/dist/unpkg/dev/errors-DngRU-If.js +0 -2585
  428. package/dist/unpkg/dev/hooks-UuiLxWxS.js +0 -104
  429. package/dist/unpkg/dev/json-K2Y9z6MN.js +0 -1333
  430. package/dist/unpkg/dev/model-for-CXkJw59V.js +0 -297
  431. package/dist/unpkg/dev/runtime-BPCpkOf1-BKOwiRJp.js +0 -65
  432. package/dist/unpkg/dev/schema-provider-0D7f-QOn.js +0 -2272
  433. package/dist/unpkg/dev/serialize-into-hash-B2xDbuo5.js +0 -259
  434. package/dist/unpkg/dev/util-DvanW33H.js +0 -20
  435. package/dist/unpkg/dev/utils-BhvS1iTS.js +0 -8
  436. package/dist/unpkg/dev-deprecated/-private-DtjBbEgy.js +0 -1206
  437. package/dist/unpkg/dev-deprecated/errors-Bzidntpi.js +0 -2588
  438. package/dist/unpkg/dev-deprecated/hooks-DVXhMW14.js +0 -104
  439. package/dist/unpkg/dev-deprecated/json-K2Y9z6MN.js +0 -1333
  440. package/dist/unpkg/dev-deprecated/model-for-CXkJw59V.js +0 -297
  441. package/dist/unpkg/dev-deprecated/runtime-BPCpkOf1-BKOwiRJp.js +0 -65
  442. package/dist/unpkg/dev-deprecated/schema-provider-ZwO5_fZw.js +0 -2292
  443. package/dist/unpkg/dev-deprecated/serialize-into-hash-B2xDbuo5.js +0 -259
  444. package/dist/unpkg/dev-deprecated/util-CWr5WQOT.js +0 -24
  445. package/dist/unpkg/dev-deprecated/utils-C9PJehtL.js +0 -12
  446. package/dist/unpkg/prod/-private-BdyZaGEh.js +0 -971
  447. package/dist/unpkg/prod/errors-B-PWeYlW.js +0 -2337
  448. package/dist/unpkg/prod/hooks-Bx-zBziU.js +0 -72
  449. package/dist/unpkg/prod/json-Qewu-UN9.js +0 -1300
  450. package/dist/unpkg/prod/model-for-CXkJw59V.js +0 -297
  451. package/dist/unpkg/prod/runtime-BPCpkOf1-BKOwiRJp.js +0 -65
  452. package/dist/unpkg/prod/schema-provider-BgRqk8i9.js +0 -1951
  453. package/dist/unpkg/prod/serialize-into-hash-DGlzQteF.js +0 -215
  454. package/dist/unpkg/prod/util-DvanW33H.js +0 -20
  455. package/dist/unpkg/prod/utils-BhvS1iTS.js +0 -8
  456. package/dist/unpkg/prod-deprecated/-private-BdyZaGEh.js +0 -971
  457. package/dist/unpkg/prod-deprecated/errors-Dl2J9d1D.js +0 -2340
  458. package/dist/unpkg/prod-deprecated/hooks-Cm60wWTf.js +0 -72
  459. package/dist/unpkg/prod-deprecated/json-Qewu-UN9.js +0 -1300
  460. package/dist/unpkg/prod-deprecated/model-for-CXkJw59V.js +0 -297
  461. package/dist/unpkg/prod-deprecated/runtime-BPCpkOf1-BKOwiRJp.js +0 -65
  462. package/dist/unpkg/prod-deprecated/schema-provider-Dh6tRqVI.js +0 -1980
  463. package/dist/unpkg/prod-deprecated/serialize-into-hash-DGlzQteF.js +0 -215
  464. package/dist/unpkg/prod-deprecated/util-B6cn-i93.js +0 -23
  465. package/dist/unpkg/prod-deprecated/utils-BUWwQwCh.js +0 -11
  466. package/dist/util-Dul6TZts.js +0 -35
  467. package/dist/utils-Cqw9eRj5.js +0 -23
@@ -1,971 +0,0 @@
1
- import { Context } from '@warp-drive/core/reactive/-private';
2
- import { createDeferred } from '@warp-drive/core/request';
3
- import '@warp-drive/core/signals/-leaked';
4
- import { assertPrivateStore } from '@warp-drive/core/store/-private';
5
- import { getOrSetGlobal } from '@warp-drive/core/types/-private';
6
-
7
- /**
8
- SnapshotRecordArray is not directly instantiable.
9
- Instances are provided to consuming application's
10
- adapters for certain `findAll` requests.
11
-
12
- @hideconstructor
13
- @public
14
- */
15
- class SnapshotRecordArray {
16
- /**
17
- * An array of snapshots
18
- *
19
- * @internal
20
- */
21
-
22
- /** @internal */
23
-
24
- /**
25
- * The ResourceType of the underlying records for the {@link Snapshot | Snapshots} in the array
26
- */
27
-
28
- /** @internal */
29
-
30
- /**
31
- * A hash of adapter options passed into the store method for this request.
32
- Example
33
- ```js [app/adapters/post.js]
34
- import MyCustomAdapter from './custom-adapter';
35
- export default class PostAdapter extends MyCustomAdapter {
36
- findAll(store, type, sinceToken, snapshotRecordArray) {
37
- if (snapshotRecordArray.adapterOptions.subscribe) {
38
- // ...
39
- }
40
- // ...
41
- }
42
- }
43
- ```
44
- */
45
-
46
- /**
47
- * The relationships to include for this request.
48
- Example
49
- ```js [app/adapters/application.js]
50
- import Adapter from '@ember-data/adapter';
51
- export default class ApplicationAdapter extends Adapter {
52
- findAll(store, type, snapshotRecordArray) {
53
- let url = `/${type.modelName}?include=${encodeURIComponent(snapshotRecordArray.include)}`;
54
- return fetch(url).then((response) => response.json())
55
- }
56
- }
57
- ```
58
- */
59
-
60
- /**
61
- SnapshotRecordArray is not directly instantiable.
62
- Instances are provided to consuming application's
63
- adapters and serializers for certain requests.
64
- @private
65
- @constructor
66
- @param {Store} store
67
- @param {String} type
68
- @param options
69
- */
70
- constructor(store, type, options = {}) {
71
- this.__store = store;
72
- this._snapshots = null;
73
- this.modelName = type;
74
- this.adapterOptions = options.adapterOptions;
75
- this.include = options.include;
76
- }
77
-
78
- /**
79
- An array of records
80
- @internal
81
- */
82
- get _recordArray() {
83
- return this.__store.peekAll(this.modelName);
84
- }
85
-
86
- /**
87
- Number of records in the array
88
- Example
89
- ```js [app/adapters/post.js]
90
- import JSONAPIAdapter from '@ember-data/adapter/json-api';
91
- export default class PostAdapter extends JSONAPIAdapter {
92
- shouldReloadAll(store, snapshotRecordArray) {
93
- return !snapshotRecordArray.length;
94
- }
95
- });
96
- ```
97
- */
98
- get length() {
99
- return this._recordArray.length;
100
- }
101
-
102
- /**
103
- Get snapshots of the underlying record array
104
- Example
105
- ```js [app/adapters/post.js]
106
- import JSONAPIAdapter from '@ember-data/adapter/json-api';
107
- export default class PostAdapter extends JSONAPIAdapter {
108
- shouldReloadAll(store, snapshotArray) {
109
- let snapshots = snapshotArray.snapshots();
110
- return snapshots.any(function(ticketSnapshot) {
111
- let timeDiff = moment().diff(ticketSnapshot.attr('lastAccessedAt'), 'minutes');
112
- if (timeDiff > 20) {
113
- return true;
114
- } else {
115
- return false;
116
- }
117
- });
118
- }
119
- }
120
- ```
121
- @public
122
- @return Array of snapshots
123
- */
124
- snapshots() {
125
- if (this._snapshots !== null) {
126
- return this._snapshots;
127
- }
128
- upgradeStore(this.__store);
129
- const {
130
- _fetchManager
131
- } = this.__store;
132
- const LiveArrayContext = this._recordArray[Context];
133
- this._snapshots = LiveArrayContext.source.map(identifier => _fetchManager.createSnapshot(identifier));
134
- return this._snapshots;
135
- }
136
- }
137
-
138
- /**
139
- This is a helper method that validates a JSON API top-level document
140
-
141
- The format of a document is described here:
142
- http://jsonapi.org/format/#document-top-level
143
-
144
- @internal
145
- */
146
- function normalizeResponseHelper(serializer, store, modelClass, payload, id, requestType) {
147
- const normalizedResponse = serializer ? serializer.normalizeResponse(store, modelClass, payload, id, requestType) : payload;
148
- return normalizedResponse;
149
- }
150
-
151
- /**
152
- Snapshot is not directly instantiable.
153
- Instances are provided to a consuming application's
154
- adapters and serializers for certain requests.
155
-
156
- Snapshots are only available when using `@ember-data/legacy-compat`
157
- for legacy compatibility with adapters and serializers.
158
-
159
- For serialization of records in modern paradigms, request data from
160
- the cache or off the record directly.
161
-
162
- @hideconstructor
163
- @public
164
- */
165
- class Snapshot {
166
- /** @internal */
167
-
168
- /** @internal */
169
-
170
- /** @internal */
171
-
172
- /** @internal */
173
-
174
- /** @internal */
175
-
176
- /** @internal */
177
-
178
- /** @internal */
179
-
180
- /**
181
- The unique ResourceKey associated with this Snapshot.
182
- @public
183
- */
184
-
185
- /**
186
- The ResourceType of the underlying record for this Snapshot, as a string.
187
- @public
188
- */
189
-
190
- /**
191
- The id of the snapshot's underlying record
192
- Example
193
- ```js
194
- // store.push('post', { id: 1, author: 'Tomster', title: 'Ember.js rocks' });
195
- postSnapshot.id; // => '1'
196
- ```
197
- @public
198
- */
199
-
200
- /**
201
- If `include` was passed to the options for the request, the value
202
- would be available here.
203
- @public
204
- */
205
-
206
- /**
207
- The adapterOptions passed to the request which generated this Snapshot, if any
208
- @public
209
- */
210
-
211
- constructor(options, identifier, store) {
212
- this._store = store;
213
- this.__attributes = null;
214
- this._belongsToRelationships = Object.create(null);
215
- this._belongsToIds = Object.create(null);
216
- this._hasManyRelationships = Object.create(null);
217
- this._hasManyIds = Object.create(null);
218
- assertPrivateStore(store);
219
- const hasRecord = !!store._instanceCache.peek(identifier);
220
- this.modelName = identifier.type;
221
- this.identifier = identifier;
222
-
223
- /*
224
- If the we do not yet have a record, then we are
225
- likely a snapshot being provided to a find request, so we
226
- populate __attributes lazily. Else, to preserve the "moment
227
- in time" in which a snapshot is created, we greedily grab
228
- the values.
229
- */
230
- if (hasRecord) {
231
- // eslint-disable-next-line @typescript-eslint/no-unused-expressions
232
- this._attributes;
233
- }
234
- this.id = identifier.id;
235
- this.adapterOptions = options.adapterOptions;
236
- this.include = options.include;
237
- this.modelName = identifier.type;
238
- if (hasRecord) {
239
- const cache = this._store.cache;
240
- this._changedAttributes = cache.changedAttrs(identifier);
241
- }
242
- }
243
-
244
- /**
245
- The underlying record for this snapshot. Can be used to access methods and
246
- properties defined on the record.
247
- ```js
248
- const someValue = snapshot.record.someProp;
249
- ```
250
- @property record
251
- @public
252
- */
253
- get record() {
254
- const record = this._store.peekRecord(this.identifier);
255
- return record;
256
- }
257
-
258
- /** @internal */
259
- get _attributes() {
260
- if (this.__attributes !== null) {
261
- return this.__attributes;
262
- }
263
- const attributes = this.__attributes = Object.create(null);
264
- const {
265
- identifier
266
- } = this;
267
- const cache = this._store.cache;
268
- this.eachAttribute((key, meta) => {
269
- attributes[key] = cache.getAttr(identifier, key);
270
- });
271
- return attributes;
272
- }
273
- get isNew() {
274
- const cache = this._store.cache;
275
- return cache?.isNew(this.identifier) || false;
276
- }
277
-
278
- /**
279
- Returns the value of an attribute.
280
- Example
281
- ```javascript
282
- // store.push('post', { id: 1, author: 'Tomster', title: 'Ember.js rocks' });
283
- postSnapshot.attr('author'); // => 'Tomster'
284
- postSnapshot.attr('title'); // => 'Ember.js rocks'
285
- ```
286
- Note: Values are loaded eagerly and cached when the snapshot is created.
287
- @return The attribute value or undefined
288
- @public
289
- */
290
- attr(keyName) {
291
- if (keyName in this._attributes) {
292
- return this._attributes[keyName];
293
- }
294
- }
295
-
296
- /**
297
- Returns all attributes and their corresponding values.
298
- ::: warning ⚠️ WARNING
299
- Attributes are SHALLOW copied from the cache.
300
- Because they are NOT deep copied from the cache, mutating
301
- any object or array fields will cause unintended side-effects
302
- and bugs.
303
- :::
304
- Example
305
- ```js
306
- // store.push('post', { id: 1, author: 'Tomster', title: 'Ember.js rocks' });
307
- postSnapshot.attributes(); // => { author: 'Tomster', title: 'Ember.js rocks' }
308
- ```
309
- @return All attributes of the current snapshot
310
- @public
311
- */
312
- attributes() {
313
- return {
314
- ...this._attributes
315
- };
316
- }
317
-
318
- /**
319
- Returns all changed attributes and their old and new values.
320
- Example
321
- ```js
322
- // store.push('post', { id: 1, author: 'Tomster', title: 'Ember.js rocks' });
323
- postModel.set('title', 'Ember.js rocks!');
324
- postSnapshot.changedAttributes(); // => { title: ['Ember.js rocks', 'Ember.js rocks!'] }
325
- ```
326
- @return All changed attributes of the current snapshot
327
- @public
328
- */
329
- changedAttributes() {
330
- const changedAttributes = Object.create(null);
331
- if (!this._changedAttributes) {
332
- return changedAttributes;
333
- }
334
- const changedAttributeKeys = Object.keys(this._changedAttributes);
335
- for (let i = 0, length = changedAttributeKeys.length; i < length; i++) {
336
- const key = changedAttributeKeys[i];
337
- changedAttributes[key] = this._changedAttributes[key].slice();
338
- }
339
- return changedAttributes;
340
- }
341
-
342
- /**
343
- Returns the current value of a belongsTo relationship.
344
- `belongsTo` takes an optional hash of options as a second parameter,
345
- currently supported options are:
346
- - `id`: set to `true` if you only want the ID of the related record to be
347
- returned.
348
- Example
349
- ```js
350
- // store.push('post', { id: 1, title: 'Hello World' });
351
- // store.createRecord('comment', { body: 'Lorem ipsum', post: post });
352
- commentSnapshot.belongsTo('post'); // => Snapshot
353
- commentSnapshot.belongsTo('post', { id: true }); // => '1'
354
- // store.push('comment', { id: 1, body: 'Lorem ipsum' });
355
- commentSnapshot.belongsTo('post'); // => undefined
356
- ```
357
- Calling `belongsTo` will return a new Snapshot as long as there's any known
358
- data for the relationship available, such as an ID. If the relationship is
359
- known but unset, `belongsTo` will return `null`. If the contents of the
360
- relationship is unknown `belongsTo` will return `undefined`.
361
- Note: Relationships are loaded lazily and cached upon first access.
362
- @public
363
- @return A snapshot or ID of a known relationship or null if the
364
- relationship is known but unset. undefined will be returned if the
365
- contents of the relationship are unknown.
366
- */
367
- belongsTo(keyName, options) {
368
- const returnModeIsId = !!(options && options.id);
369
- let result;
370
- const store = this._store;
371
- if (returnModeIsId === true && keyName in this._belongsToIds) {
372
- return this._belongsToIds[keyName];
373
- }
374
- if (returnModeIsId === false && keyName in this._belongsToRelationships) {
375
- return this._belongsToRelationships[keyName];
376
- }
377
- store.schema.fields({
378
- type: this.modelName
379
- }).get(keyName);
380
- const {
381
- identifier
382
- } = this;
383
- const value = this._store.cache.getRelationship(identifier, keyName);
384
- const data = value && value.data;
385
- const inverseIdentifier = data ? store.cacheKeyManager.getOrCreateRecordIdentifier(data) : null;
386
- if (value && value.data !== undefined) {
387
- const cache = store.cache;
388
- if (inverseIdentifier && !cache.isDeleted(inverseIdentifier)) {
389
- if (returnModeIsId) {
390
- result = inverseIdentifier.id;
391
- } else {
392
- result = store._fetchManager.createSnapshot(inverseIdentifier);
393
- }
394
- } else {
395
- result = null;
396
- }
397
- }
398
- if (returnModeIsId) {
399
- this._belongsToIds[keyName] = result;
400
- } else {
401
- this._belongsToRelationships[keyName] = result;
402
- }
403
- return result;
404
- }
405
-
406
- /**
407
- Returns the current value of a hasMany relationship.
408
- `hasMany` takes an optional hash of options as a second parameter,
409
- currently supported options are:
410
- - `ids`: set to `true` if you only want the IDs of the related records to be
411
- returned.
412
- Example
413
- ```javascript
414
- // store.push('post', { id: 1, title: 'Hello World', comments: [2, 3] });
415
- postSnapshot.hasMany('comments'); // => [Snapshot, Snapshot]
416
- postSnapshot.hasMany('comments', { ids: true }); // => ['2', '3']
417
- // store.push('post', { id: 1, title: 'Hello World' });
418
- postSnapshot.hasMany('comments'); // => undefined
419
- ```
420
- Note: Relationships are loaded lazily and cached upon first access.
421
- @public
422
- @return An array of snapshots or IDs of a known
423
- relationship or an empty array if the relationship is known but unset.
424
- undefined will be returned if the contents of the relationship is unknown.
425
- */
426
- hasMany(keyName, options) {
427
- const returnModeIsIds = !!(options && options.ids);
428
- let results;
429
- const cachedIds = this._hasManyIds[keyName];
430
- const cachedSnapshots = this._hasManyRelationships[keyName];
431
- if (returnModeIsIds === true && keyName in this._hasManyIds) {
432
- return cachedIds;
433
- }
434
- if (returnModeIsIds === false && keyName in this._hasManyRelationships) {
435
- return cachedSnapshots;
436
- }
437
- const store = this._store;
438
- store.schema.fields({
439
- type: this.modelName
440
- }).get(keyName);
441
- const {
442
- identifier
443
- } = this;
444
- const value = this._store.cache.getRelationship(identifier, keyName);
445
- if (value.data) {
446
- results = [];
447
- value.data.forEach(member => {
448
- const inverseIdentifier = store.cacheKeyManager.getOrCreateRecordIdentifier(member);
449
- const cache = store.cache;
450
- if (!cache.isDeleted(inverseIdentifier)) {
451
- if (returnModeIsIds) {
452
- results.push(inverseIdentifier.id);
453
- } else {
454
- results.push(store._fetchManager.createSnapshot(inverseIdentifier));
455
- }
456
- }
457
- });
458
- }
459
-
460
- // we assign even if `undefined` so that we don't reprocess the relationship
461
- // on next access. This works with the `keyName in` checks above.
462
- if (returnModeIsIds) {
463
- this._hasManyIds[keyName] = results;
464
- } else {
465
- this._hasManyRelationships[keyName] = results;
466
- }
467
- return results;
468
- }
469
-
470
- /**
471
- Iterates through all the attributes of the model, calling the passed
472
- function on each attribute.
473
- Example
474
- ```javascript
475
- snapshot.eachAttribute(function(name, meta) {
476
- // ...
477
- });
478
- ```
479
- @param callback the callback to execute
480
- @param binding the optional value to which the callback's `this` should be bound
481
- @public
482
- */
483
- eachAttribute(callback, binding) {
484
- // if the store has a modelFor implementation, we use it to iterate attributes. This allows
485
- // a custom "ModelSchema" class for legacy serializers to adapt to new fields if desired.
486
- if (typeof this._store.modelFor === 'function') {
487
- const modelSchema = this._store.modelFor(this.identifier.type);
488
- modelSchema.eachAttribute(callback, binding);
489
- } else {
490
- const fields = this._store.schema.fields(this.identifier);
491
- fields.forEach((field, key) => {
492
- if (field.kind === 'attribute') {
493
- callback.call(binding, key, field);
494
- }
495
- });
496
- }
497
- }
498
-
499
- /**
500
- Iterates through all the relationships of the model, calling the passed
501
- function on each relationship.
502
- Example
503
- ```javascript
504
- snapshot.eachRelationship(function(name, relationship) {
505
- // ...
506
- });
507
- ```
508
- @param callback the callback to execute
509
- @param binding the optional value to which the callback's `this` should be bound
510
- @public
511
- */
512
- eachRelationship(callback, binding) {
513
- // if the store has a modelFor implementation, we use it to iterate relationships. This allows
514
- // a custom "ModelSchema" class for legacy serializers to adapt to new fields if desired.
515
- if (typeof this._store.modelFor === 'function') {
516
- const modelSchema = this._store.modelFor(this.identifier.type);
517
- modelSchema.eachRelationship(callback, binding);
518
- } else {
519
- const fields = this._store.schema.fields(this.identifier);
520
- fields.forEach((field, key) => {
521
- if (field.kind === 'belongsTo' || field.kind === 'hasMany') {
522
- callback.call(binding, key, field);
523
- }
524
- });
525
- }
526
- }
527
-
528
- /**
529
- Serializes the snapshot using the serializer for the model.
530
- Example
531
- ```js [app/adapters/application.js]
532
- import Adapter from '@ember-data/adapter';
533
- export default Adapter.extend({
534
- createRecord(store, type, snapshot) {
535
- let data = snapshot.serialize({ includeId: true });
536
- let url = `/${type.modelName}`;
537
- return fetch(url, {
538
- method: 'POST',
539
- body: data,
540
- }).then((response) => response.json())
541
- }
542
- });
543
- ```
544
- @return an object whose values are primitive JSON values only
545
- @public
546
- */
547
- serialize(options) {
548
- upgradeStore(this._store);
549
- const serializer = this._store.serializerFor(this.modelName);
550
- return serializer.serialize(this, options);
551
- }
552
- }
553
- const SaveOp = getOrSetGlobal('SaveOp', Symbol('SaveOp'));
554
- /**
555
- * @private
556
- */
557
- class FetchManager {
558
- /**
559
- * @internal
560
- */
561
-
562
- /** @internal */
563
-
564
- // fetches pending in the runloop, waiting to be coalesced
565
- /**
566
- * @internal
567
- */
568
-
569
- /** @internal */
570
-
571
- constructor(store) {
572
- assertPrivateStore(store);
573
- this._store = store;
574
- // used to keep track of all the find requests that need to be coalesced
575
- this._pendingFetch = new Map();
576
- this.requestCache = store.getRequestStateService();
577
- this.isDestroyed = false;
578
- }
579
- createSnapshot(identifier, options = {}) {
580
- return new Snapshot(options, identifier, this._store);
581
- }
582
-
583
- /**
584
- This method is called by `record.save`, and gets passed a
585
- resolver for the promise that `record.save` returns.
586
- It schedules saving to happen at the end of the run loop.
587
- @private
588
- */
589
- scheduleSave(identifier, options) {
590
- const resolver = createDeferred();
591
- const query = {
592
- op: 'saveRecord',
593
- recordIdentifier: identifier,
594
- options
595
- };
596
- const queryRequest = {
597
- data: [query]
598
- };
599
- const snapshot = this.createSnapshot(identifier, options);
600
- const pendingSaveItem = {
601
- snapshot: snapshot,
602
- resolver: resolver,
603
- identifier,
604
- options,
605
- queryRequest
606
- };
607
- const monitored = this.requestCache._enqueue(resolver.promise, pendingSaveItem.queryRequest);
608
- _flushPendingSave(this._store, pendingSaveItem);
609
- return monitored;
610
- }
611
- scheduleFetch(identifier, options, request) {
612
- const query = {
613
- op: 'findRecord',
614
- recordIdentifier: identifier,
615
- options
616
- };
617
- const queryRequest = {
618
- data: [query]
619
- };
620
- const pendingFetch = this.getPendingFetch(identifier, options);
621
- if (pendingFetch) {
622
- return pendingFetch;
623
- }
624
- const modelName = identifier.type;
625
- const resolver = createDeferred();
626
- const pendingFetchItem = {
627
- identifier,
628
- resolver,
629
- options,
630
- queryRequest
631
- };
632
- const resolverPromise = resolver.promise;
633
- const store = this._store;
634
- const isInitialLoad = !store._instanceCache.recordIsLoaded(identifier); // we don't use isLoading directly because we are the request
635
-
636
- const monitored = this.requestCache._enqueue(resolverPromise, pendingFetchItem.queryRequest);
637
- let promise = monitored.then(payload => {
638
- // ensure that regardless of id returned we assign to the correct record
639
- if (payload.data && !Array.isArray(payload.data)) {
640
- payload.data.lid = identifier.lid;
641
- }
642
-
643
- // additional data received in the payload
644
- // may result in the merging of identifiers (and thus records)
645
- const potentiallyNewIm = store._push(payload, options.reload);
646
- if (potentiallyNewIm && !Array.isArray(potentiallyNewIm)) {
647
- return potentiallyNewIm;
648
- }
649
- return identifier;
650
- }, error => {
651
- const cache = store.cache;
652
- if (!cache || cache.isEmpty(identifier) || isInitialLoad) {
653
- let isReleasable = true;
654
- if (store._graph) {
655
- const graph = store._graph;
656
- if (!cache) {
657
- isReleasable = graph.isReleasable(identifier);
658
- if (!isReleasable) {
659
- graph.unload(identifier, true);
660
- }
661
- }
662
- }
663
- if (cache || isReleasable) {
664
- store._enableAsyncFlush = true;
665
- store._instanceCache.unloadRecord(identifier);
666
- store._enableAsyncFlush = null;
667
- }
668
- }
669
- throw error;
670
- });
671
- if (this._pendingFetch.size === 0) {
672
- void new Promise(resolve => setTimeout(resolve, 0)).then(() => {
673
- this.flushAllPendingFetches();
674
- });
675
- }
676
- const fetchesByType = this._pendingFetch;
677
- let fetchesById = fetchesByType.get(modelName);
678
- if (!fetchesById) {
679
- fetchesById = new Map();
680
- fetchesByType.set(modelName, fetchesById);
681
- }
682
- let requestsForIdentifier = fetchesById.get(identifier);
683
- if (!requestsForIdentifier) {
684
- requestsForIdentifier = [];
685
- fetchesById.set(identifier, requestsForIdentifier);
686
- }
687
- requestsForIdentifier.push(pendingFetchItem);
688
- pendingFetchItem.promise = promise;
689
- return promise;
690
- }
691
- getPendingFetch(identifier, options) {
692
- const pendingFetches = this._pendingFetch.get(identifier.type)?.get(identifier);
693
-
694
- // We already have a pending fetch for this
695
- if (pendingFetches) {
696
- const matchingPendingFetch = pendingFetches.find(fetch => isSameRequest(options, fetch.options));
697
- if (matchingPendingFetch) {
698
- return matchingPendingFetch.promise;
699
- }
700
- }
701
- }
702
- flushAllPendingFetches() {
703
- if (this.isDestroyed) {
704
- return;
705
- }
706
- const store = this._store;
707
- this._pendingFetch.forEach((fetchItem, type) => _flushPendingFetchForType(store, fetchItem, type));
708
- this._pendingFetch.clear();
709
- }
710
- fetchDataIfNeededForIdentifier(identifier, options = {}, request) {
711
- // pre-loading will change the isEmpty value
712
- const isEmpty = _isEmpty(this._store._instanceCache, identifier);
713
- const isLoading = _isLoading(this._store._instanceCache, identifier);
714
- let promise;
715
- if (isEmpty) {
716
- {
717
- options.reload = true;
718
- promise = this.scheduleFetch(identifier, options, request);
719
- }
720
- } else if (isLoading) {
721
- promise = this.getPendingFetch(identifier, options);
722
- } else {
723
- promise = Promise.resolve(identifier);
724
- }
725
- return promise;
726
- }
727
- destroy() {
728
- this.isDestroyed = true;
729
- }
730
- }
731
-
732
- /**
733
- * This type exists for internal use only for
734
- * where intimate contracts still exist either for
735
- * the Test Suite or for Legacy code.
736
- *
737
- * @private
738
- */
739
-
740
- function _isEmpty(instanceCache, identifier) {
741
- const cache = instanceCache.cache;
742
- if (!cache) {
743
- return true;
744
- }
745
- const isNew = cache.isNew(identifier);
746
- const isDeleted = cache.isDeleted(identifier);
747
- const isEmpty = cache.isEmpty(identifier);
748
- return (!isNew || isDeleted) && isEmpty;
749
- }
750
- function _isLoading(cache, identifier) {
751
- const req = cache.store.getRequestStateService();
752
- // const fulfilled = req.getLastRequestForRecord(identifier);
753
- const isLoaded = cache.recordIsLoaded(identifier);
754
- return !isLoaded &&
755
- // fulfilled === null &&
756
- req.getPendingRequestsForRecord(identifier).some(r => r.type === 'query');
757
- }
758
- function includesSatisfies(current, existing) {
759
- // if we have no includes we are good
760
- if (!current?.length) {
761
- return true;
762
- }
763
-
764
- // if we are here we have includes,
765
- // and if existing has no includes then we will need a new request
766
- if (!existing?.length) {
767
- return false;
768
- }
769
- const arrCurrent = (Array.isArray(current) ? current : current.split(',')).sort();
770
- const arrExisting = (Array.isArray(existing) ? existing : existing.split(',')).sort();
771
-
772
- // includes are identical
773
- if (arrCurrent.join(',') === arrExisting.join(',')) {
774
- return true;
775
- }
776
-
777
- // if all of current includes are in existing includes then we are good
778
- // so if we find one that is not in existing then we need a new request
779
- for (let i = 0; i < arrCurrent.length; i++) {
780
- if (!arrExisting.includes(arrCurrent[i])) {
781
- return false;
782
- }
783
- }
784
- return true;
785
- }
786
- function optionsSatisfies(current, existing) {
787
- return !current || current === existing || Object.keys(current).length === 0;
788
- }
789
-
790
- // this function helps resolve whether we have a pending request that we should use instead
791
- function isSameRequest(options = {}, existingOptions = {}) {
792
- return optionsSatisfies(options.adapterOptions, existingOptions.adapterOptions) && includesSatisfies(options.include, existingOptions.include);
793
- }
794
- function _findMany(store, adapter, modelName, snapshots) {
795
- const modelClass = store.modelFor(modelName); // `adapter.findMany` gets the modelClass still
796
- const promise = Promise.resolve().then(() => {
797
- const ids = snapshots.map(s => s.id);
798
- const ret = adapter.findMany(store, modelClass, ids, snapshots);
799
- return ret;
800
- });
801
- return promise.then(adapterPayload => {
802
- const serializer = store.serializerFor(modelName);
803
- const payload = normalizeResponseHelper(serializer, store, modelClass, adapterPayload, null, 'findMany');
804
- return payload;
805
- });
806
- }
807
- function rejectFetchedItems(fetchMap, snapshots, error) {
808
- for (let i = 0, l = snapshots.length; i < l; i++) {
809
- const snapshot = snapshots[i];
810
- const pair = fetchMap.get(snapshot);
811
- if (pair) {
812
- pair.resolver.reject(error || new Error(`Expected: '<${snapshot.modelName}:${snapshot.id}>' to be present in the adapter provided payload, but it was not found.`));
813
- }
814
- }
815
- }
816
- function handleFoundRecords(store, fetchMap, snapshots, coalescedPayload) {
817
- /*
818
- It is possible that the same ID is included multiple times
819
- via multiple snapshots. This happens when more than one
820
- options hash was supplied, each of which must be uniquely
821
- accounted for.
822
- However, since we can't map from response to a specific
823
- options object, we resolve all snapshots by id with
824
- the first response we see.
825
- */
826
- const snapshotsById = new Map();
827
- for (let i = 0; i < snapshots.length; i++) {
828
- const id = snapshots[i].id;
829
- let snapshotGroup = snapshotsById.get(id);
830
- if (!snapshotGroup) {
831
- snapshotGroup = [];
832
- snapshotsById.set(id, snapshotGroup);
833
- }
834
- snapshotGroup.push(snapshots[i]);
835
- }
836
- const included = Array.isArray(coalescedPayload.included) ? coalescedPayload.included : [];
837
-
838
- // resolve found records
839
- const resources = coalescedPayload.data;
840
- for (let i = 0, l = resources.length; i < l; i++) {
841
- const resource = resources[i];
842
- const snapshotGroup = snapshotsById.get(resource.id);
843
- snapshotsById.delete(resource.id);
844
- if (!snapshotGroup) {
845
- // TODO consider whether this should be a deprecation/assertion
846
- included.push(resource);
847
- } else {
848
- snapshotGroup.forEach(snapshot => {
849
- const pair = fetchMap.get(snapshot);
850
- const resolver = pair.resolver;
851
- resolver.resolve({
852
- data: resource
853
- });
854
- });
855
- }
856
- }
857
- if (included.length > 0) {
858
- store._push({
859
- data: null,
860
- included
861
- }, true);
862
- }
863
- if (snapshotsById.size === 0) {
864
- return;
865
- }
866
-
867
- // reject missing records
868
- const rejected = [];
869
- snapshotsById.forEach(snapshotArray => {
870
- rejected.push(...snapshotArray);
871
- });
872
- rejectFetchedItems(fetchMap, rejected);
873
- }
874
- function _fetchRecord(store, adapter, fetchItem) {
875
- const identifier = fetchItem.identifier;
876
- const modelName = identifier.type;
877
- const snapshot = store._fetchManager.createSnapshot(identifier, fetchItem.options);
878
- const klass = store.modelFor(identifier.type);
879
- const id = identifier.id;
880
- let promise = Promise.resolve().then(() => {
881
- return adapter.findRecord(store, klass, identifier.id, snapshot);
882
- });
883
- promise = promise.then(adapterPayload => {
884
- const serializer = store.serializerFor(modelName);
885
- const payload = normalizeResponseHelper(serializer, store, klass, adapterPayload, id, 'findRecord');
886
- return payload;
887
- });
888
- fetchItem.resolver.resolve(promise);
889
- }
890
- function _processCoalescedGroup(store, fetchMap, group, adapter, modelName) {
891
- if (group.length > 1) {
892
- _findMany(store, adapter, modelName, group).then(payloads => {
893
- handleFoundRecords(store, fetchMap, group, payloads);
894
- }).catch(error => {
895
- rejectFetchedItems(fetchMap, group, error);
896
- });
897
- } else if (group.length === 1) {
898
- _fetchRecord(store, adapter, fetchMap.get(group[0]));
899
- } else ;
900
- }
901
- function _flushPendingFetchForType(store, pendingFetchMap, modelName) {
902
- const adapter = store.adapterFor(modelName);
903
- const shouldCoalesce = !!adapter.findMany && adapter.coalesceFindRequests;
904
- if (shouldCoalesce) {
905
- const pendingFetchItems = [];
906
- pendingFetchMap.forEach((requestsForIdentifier, identifier) => {
907
- if (requestsForIdentifier.length > 1) {
908
- return;
909
- }
910
-
911
- // remove this entry from the map so it's not processed again
912
- pendingFetchMap.delete(identifier);
913
- pendingFetchItems.push(requestsForIdentifier[0]);
914
- });
915
- const totalItems = pendingFetchItems.length;
916
- if (totalItems > 1) {
917
- const snapshots = new Array(totalItems);
918
- const fetchMap = new Map();
919
- for (let i = 0; i < totalItems; i++) {
920
- const fetchItem = pendingFetchItems[i];
921
- snapshots[i] = store._fetchManager.createSnapshot(fetchItem.identifier, fetchItem.options);
922
- fetchMap.set(snapshots[i], fetchItem);
923
- }
924
- let groups;
925
- if (adapter.groupRecordsForFindMany) {
926
- groups = adapter.groupRecordsForFindMany(store, snapshots);
927
- } else {
928
- groups = [snapshots];
929
- }
930
- for (let i = 0, l = groups.length; i < l; i++) {
931
- _processCoalescedGroup(store, fetchMap, groups[i], adapter, modelName);
932
- }
933
- } else if (totalItems === 1) {
934
- _fetchRecord(store, adapter, pendingFetchItems[0]);
935
- }
936
- }
937
- pendingFetchMap.forEach(pendingFetchItems => {
938
- pendingFetchItems.forEach(pendingFetchItem => {
939
- _fetchRecord(store, adapter, pendingFetchItem);
940
- });
941
- });
942
- }
943
- function _flushPendingSave(store, pending) {
944
- const {
945
- snapshot,
946
- resolver,
947
- identifier,
948
- options
949
- } = pending;
950
- const adapter = store.adapterFor(identifier.type);
951
- const operation = options[SaveOp];
952
- const modelName = snapshot.modelName;
953
- const modelClass = store.modelFor(modelName);
954
- let promise = Promise.resolve().then(() => adapter[operation](store, modelClass, snapshot));
955
- const serializer = store.serializerFor(modelName);
956
- promise = promise.then(adapterPayload => {
957
- if (adapterPayload) {
958
- return normalizeResponseHelper(serializer, store, modelClass, adapterPayload, snapshot.id, operation);
959
- }
960
- });
961
- resolver.resolve(promise);
962
- }
963
-
964
- /**
965
- * Utilities - often temporary - for maintaining backwards compatibility with
966
- * older parts of WarpDrive.
967
- *
968
- @module
969
- */
970
- function upgradeStore(store) {}
971
- export { FetchManager as F, SaveOp as S, SnapshotRecordArray as a, Snapshot as b, normalizeResponseHelper as n, upgradeStore as u };