@warp-drive/legacy 5.10.0-alpha.2 → 5.10.0-alpha.21

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 (413) hide show
  1. package/README.md +91 -8
  2. package/blueprints/adapter/files/__root__/__path__/__name__.js +1 -0
  3. package/blueprints/adapter/index.js +27 -0
  4. package/blueprints/adapter-test/index.js +33 -0
  5. package/blueprints/adapter-test/qunit-files/__root__/__path__/__test__.js +1 -0
  6. package/blueprints/model/HELP.md +26 -0
  7. package/blueprints/model/files/__root__/__path__/__name__.js +1 -0
  8. package/blueprints/model/index.js +27 -0
  9. package/blueprints/model-test/index.js +33 -0
  10. package/blueprints/model-test/qunit-files/__root__/__path__/__test__.js +1 -0
  11. package/blueprints/serializer/files/__root__/__path__/__name__.js +1 -0
  12. package/blueprints/serializer/index.js +27 -0
  13. package/blueprints/serializer-test/index.js +33 -0
  14. package/blueprints/serializer-test/qunit-files/__root__/__path__/__test__.js +1 -0
  15. package/blueprints/transform/files/__root__/__path__/__name__.js +1 -0
  16. package/blueprints/transform/index.js +17 -0
  17. package/blueprints/transform-test/index.js +33 -0
  18. package/blueprints/transform-test/qunit-files/__root__/__path__/__test__.js +1 -0
  19. package/dist/{-private-DccRZQsm.js → -private-0_Oc-M3x.js} +10 -17
  20. package/dist/-private-0_Oc-M3x.js.map +1 -0
  21. package/dist/{-private-DQ6Iap2t.js → -private-L2BtGGYa.js} +8 -14
  22. package/dist/{-private-DQ6Iap2t.js.map → -private-L2BtGGYa.js.map} +1 -1
  23. package/dist/adapter/-private.d.ts +2 -12
  24. package/dist/adapter/-private.d.ts.map +1 -1
  25. package/dist/adapter/-private.js +1 -1
  26. package/dist/adapter/error.d.ts +1 -1
  27. package/dist/adapter/error.js +54 -2
  28. package/dist/adapter/error.js.map +1 -1
  29. package/dist/adapter/json-api.d.ts +5 -5
  30. package/dist/adapter/json-api.d.ts.map +1 -1
  31. package/dist/adapter/json-api.js +10 -4
  32. package/dist/adapter/json-api.js.map +1 -1
  33. package/dist/adapter/rest.d.ts +1 -1
  34. package/dist/adapter/rest.js +23 -5
  35. package/dist/adapter/rest.js.map +1 -1
  36. package/dist/{adapter-eYo2pIuM.js → adapter-AwGvdMSZ.js} +45 -6
  37. package/dist/adapter-AwGvdMSZ.js.map +1 -0
  38. package/dist/{adapter-CARrK3-8.d.ts → adapter-DvDVeaCc.d.ts} +9 -6
  39. package/dist/adapter-DvDVeaCc.d.ts.map +1 -0
  40. package/dist/adapter.d.ts +1 -1
  41. package/dist/adapter.js +1 -1
  42. package/dist/compat/-private.d.ts +1 -1
  43. package/dist/compat/-private.js +1 -1
  44. package/dist/compat/builders.d.ts +10 -8
  45. package/dist/compat/builders.d.ts.map +1 -1
  46. package/dist/compat/builders.js +15 -9
  47. package/dist/compat/builders.js.map +1 -1
  48. package/dist/compat/extensions.d.ts +1 -1
  49. package/dist/compat/extensions.js +23 -2
  50. package/dist/compat/extensions.js.map +1 -1
  51. package/dist/compat/utils.d.ts +17 -2
  52. package/dist/compat/utils.d.ts.map +1 -1
  53. package/dist/compat/utils.js +19 -2
  54. package/dist/compat/utils.js.map +1 -1
  55. package/dist/{compat-DcHVxuuZ.js → compat-C-yQnbkF.js} +61 -8
  56. package/dist/compat-C-yQnbkF.js.map +1 -0
  57. package/dist/{compat-BbNNmTM-.d.ts → compat-DoWEarkU.d.ts} +30 -17
  58. package/dist/compat-DoWEarkU.d.ts.map +1 -0
  59. package/dist/compat.d.ts +1 -1
  60. package/dist/compat.js +1 -1
  61. package/dist/{error-CzkyXr1Q.d.ts → error-798wGD3r.d.ts} +49 -3
  62. package/dist/error-798wGD3r.d.ts.map +1 -0
  63. package/dist/{errors-CS110tMl.js → errors-BEExAZtv.js} +42 -32
  64. package/dist/errors-BEExAZtv.js.map +1 -0
  65. package/dist/{extensions-DumNm4dA.d.ts → extensions-DcEz1lKv.d.ts} +18 -3
  66. package/dist/extensions-DcEz1lKv.d.ts.map +1 -0
  67. package/dist/index.d.ts +17 -2
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +25 -7
  70. package/dist/index.js.map +1 -1
  71. package/dist/{json-BXNPTlcH.js → json-Baaga4BP.js} +10 -5
  72. package/dist/json-Baaga4BP.js.map +1 -0
  73. package/dist/model/-private.d.ts +1 -1
  74. package/dist/model/-private.js +1 -1
  75. package/dist/model/migration-support.d.ts +19 -4
  76. package/dist/model/migration-support.d.ts.map +1 -1
  77. package/dist/model/migration-support.js +25 -7
  78. package/dist/model/migration-support.js.map +1 -1
  79. package/dist/{model-DWH9f__L.js → model-Be-e84FX.js} +19 -12
  80. package/dist/model-Be-e84FX.js.map +1 -0
  81. package/dist/{model-62hn5_PD.d.ts → model-DAdY1ibr.d.ts} +13 -26
  82. package/dist/model-DAdY1ibr.d.ts.map +1 -0
  83. package/dist/{unpkg/dev-deprecated/model-fragments-DSqu0ptR.js → model-fragments-DCHMDr5f.js} +32 -18
  84. package/dist/model-fragments-DCHMDr5f.js.map +1 -0
  85. package/dist/model-fragments.d.ts +31 -19
  86. package/dist/model-fragments.d.ts.map +1 -1
  87. package/dist/model-fragments.js +1 -1
  88. package/dist/model.d.ts +12 -11
  89. package/dist/model.d.ts.map +1 -1
  90. package/dist/model.js +2 -2
  91. package/dist/{rest-0NhtexIq.d.ts → rest-CmFneLJH.d.ts} +18 -8
  92. package/dist/rest-CmFneLJH.d.ts.map +1 -0
  93. package/dist/{runtime--fcdnjmJ-DMTJ0Kb3.js → runtime--fcdnjmJ-5yaSpa-d.js} +2 -3
  94. package/dist/{runtime--fcdnjmJ-DMTJ0Kb3.js.map → runtime--fcdnjmJ-5yaSpa-d.js.map} +1 -1
  95. package/dist/{schema-provider-DguGmQDS.js → schema-provider-BAB8DyMr.js} +22 -21
  96. package/dist/schema-provider-BAB8DyMr.js.map +1 -0
  97. package/dist/serializer/json-api.d.ts +1 -2
  98. package/dist/serializer/json-api.d.ts.map +1 -1
  99. package/dist/serializer/json-api.js +7 -3
  100. package/dist/serializer/json-api.js.map +1 -1
  101. package/dist/serializer/json.d.ts +2 -2
  102. package/dist/serializer/json.d.ts.map +1 -1
  103. package/dist/serializer/json.js +1 -1
  104. package/dist/serializer/rest.d.ts +4 -4
  105. package/dist/serializer/rest.d.ts.map +1 -1
  106. package/dist/serializer/rest.js +12 -5
  107. package/dist/serializer/rest.js.map +1 -1
  108. package/dist/serializer/transform.d.ts +9 -10
  109. package/dist/serializer/transform.d.ts.map +1 -1
  110. package/dist/serializer/transform.js +14 -10
  111. package/dist/serializer/transform.js.map +1 -1
  112. package/dist/serializer.d.ts +2 -2
  113. package/dist/serializer.d.ts.map +1 -1
  114. package/dist/serializer.js +42 -3
  115. package/dist/serializer.js.map +1 -1
  116. package/dist/{store-C4qYzXei.js → store-BLKEsJyw.js} +13 -7
  117. package/dist/store-BLKEsJyw.js.map +1 -0
  118. package/dist/store.d.ts +3 -2
  119. package/dist/store.d.ts.map +1 -1
  120. package/dist/store.js +1 -1
  121. package/dist/unpkg/dev/{-private-CrEyBE-B.js → -private-BprUAEe_.js} +8 -14
  122. package/dist/unpkg/{dev-deprecated/-private-CrEyBE-B.js.map → dev/-private-BprUAEe_.js.map} +1 -1
  123. package/dist/unpkg/dev/{-private-vOhxVExH.js → -private-Dch4SxkU.js} +10 -17
  124. package/dist/unpkg/dev/-private-Dch4SxkU.js.map +1 -0
  125. package/dist/unpkg/dev/adapter/-private.js +1 -1
  126. package/dist/unpkg/dev/adapter/error.js +54 -2
  127. package/dist/unpkg/dev/adapter/error.js.map +1 -1
  128. package/dist/unpkg/dev/adapter/json-api.js +10 -4
  129. package/dist/unpkg/dev/adapter/json-api.js.map +1 -1
  130. package/dist/unpkg/dev/adapter/rest.js +23 -5
  131. package/dist/unpkg/dev/adapter/rest.js.map +1 -1
  132. package/dist/unpkg/dev/{adapter-oLwyr47q.js → adapter-BAn4SeUA.js} +45 -6
  133. package/dist/unpkg/dev/adapter-BAn4SeUA.js.map +1 -0
  134. package/dist/unpkg/dev/adapter.js +1 -1
  135. package/dist/unpkg/dev/compat/-private.js +1 -1
  136. package/dist/unpkg/dev/compat/builders.js +15 -9
  137. package/dist/unpkg/dev/compat/builders.js.map +1 -1
  138. package/dist/unpkg/dev/compat/extensions.js +23 -2
  139. package/dist/unpkg/dev/compat/extensions.js.map +1 -1
  140. package/dist/unpkg/dev/compat/utils.js +19 -2
  141. package/dist/unpkg/dev/compat/utils.js.map +1 -1
  142. package/dist/unpkg/dev/{compat-DNQT2TQx.js → compat-BdovRRzQ.js} +62 -10
  143. package/dist/unpkg/dev/compat-BdovRRzQ.js.map +1 -0
  144. package/dist/unpkg/dev/compat.js +1 -1
  145. package/dist/unpkg/dev/{errors-DnzvLM2A.js → errors-CGvbM6WH.js} +42 -32
  146. package/dist/unpkg/dev/errors-CGvbM6WH.js.map +1 -0
  147. package/dist/unpkg/dev/index.js +25 -7
  148. package/dist/unpkg/dev/index.js.map +1 -1
  149. package/dist/unpkg/{dev-deprecated/json-DDJji3V3.js → dev/json-BlSBe84o.js} +10 -5
  150. package/dist/unpkg/dev/json-BlSBe84o.js.map +1 -0
  151. package/dist/unpkg/dev/model/-private.js +1 -1
  152. package/dist/unpkg/dev/model/migration-support.js +24 -6
  153. package/dist/unpkg/dev/model/migration-support.js.map +1 -1
  154. package/dist/unpkg/dev/{model-BxPIR7m2.js → model-QCZr8eec.js} +19 -12
  155. package/dist/unpkg/dev/model-QCZr8eec.js.map +1 -0
  156. package/dist/{model-fragments-DSqu0ptR.js → unpkg/dev/model-fragments-DCHMDr5f.js} +32 -18
  157. package/dist/unpkg/dev/model-fragments-DCHMDr5f.js.map +1 -0
  158. package/dist/unpkg/dev/model-fragments.js +1 -1
  159. package/dist/unpkg/dev/model.js +2 -2
  160. package/dist/unpkg/dev/{runtime--fcdnjmJ-DMTJ0Kb3.js → runtime--fcdnjmJ-5yaSpa-d.js} +2 -3
  161. package/dist/unpkg/dev/{runtime--fcdnjmJ-DMTJ0Kb3.js.map → runtime--fcdnjmJ-5yaSpa-d.js.map} +1 -1
  162. package/dist/unpkg/dev/{schema-provider-CI_a48ja.js → schema-provider-IMFO9Kgw.js} +18 -17
  163. package/dist/unpkg/dev/schema-provider-IMFO9Kgw.js.map +1 -0
  164. package/dist/unpkg/dev/serializer/json-api.js +7 -3
  165. package/dist/unpkg/dev/serializer/json-api.js.map +1 -1
  166. package/dist/unpkg/dev/serializer/json.js +1 -1
  167. package/dist/unpkg/dev/serializer/rest.js +12 -5
  168. package/dist/unpkg/dev/serializer/rest.js.map +1 -1
  169. package/dist/unpkg/dev/serializer/transform.js +14 -10
  170. package/dist/unpkg/dev/serializer/transform.js.map +1 -1
  171. package/dist/unpkg/dev/serializer.js +42 -3
  172. package/dist/unpkg/dev/serializer.js.map +1 -1
  173. package/dist/unpkg/dev/{store-D_V8-HQl.js → store-BiXsLLAu.js} +13 -7
  174. package/dist/unpkg/dev/store-BiXsLLAu.js.map +1 -0
  175. package/dist/unpkg/dev/store.js +1 -1
  176. package/dist/unpkg/dev/{util-dSKEgQDp.js → util-CI7b4vAE.js} +2 -3
  177. package/dist/unpkg/dev/{util-dSKEgQDp.js.map → util-CI7b4vAE.js.map} +1 -1
  178. package/dist/unpkg/{prod/utils-DYC9utVJ.js → dev/utils-_O0MjUTU.js} +2 -3
  179. package/dist/unpkg/dev/{utils-DYC9utVJ.js.map → utils-_O0MjUTU.js.map} +1 -1
  180. package/dist/unpkg/dev-deprecated/{-private-CrEyBE-B.js → -private-BprUAEe_.js} +8 -14
  181. package/dist/unpkg/{dev/-private-CrEyBE-B.js.map → dev-deprecated/-private-BprUAEe_.js.map} +1 -1
  182. package/dist/unpkg/dev-deprecated/{-private-vOhxVExH.js → -private-Dch4SxkU.js} +10 -17
  183. package/dist/unpkg/dev-deprecated/-private-Dch4SxkU.js.map +1 -0
  184. package/dist/unpkg/dev-deprecated/adapter/-private.js +1 -1
  185. package/dist/unpkg/dev-deprecated/adapter/error.js +54 -2
  186. package/dist/unpkg/dev-deprecated/adapter/error.js.map +1 -1
  187. package/dist/unpkg/dev-deprecated/adapter/json-api.js +10 -4
  188. package/dist/unpkg/dev-deprecated/adapter/json-api.js.map +1 -1
  189. package/dist/unpkg/dev-deprecated/adapter/rest.js +23 -5
  190. package/dist/unpkg/dev-deprecated/adapter/rest.js.map +1 -1
  191. package/dist/unpkg/dev-deprecated/{adapter-oLwyr47q.js → adapter-BAn4SeUA.js} +45 -6
  192. package/dist/unpkg/dev-deprecated/adapter-BAn4SeUA.js.map +1 -0
  193. package/dist/unpkg/dev-deprecated/adapter.js +1 -1
  194. package/dist/unpkg/dev-deprecated/compat/-private.js +1 -1
  195. package/dist/unpkg/dev-deprecated/compat/builders.js +15 -9
  196. package/dist/unpkg/dev-deprecated/compat/builders.js.map +1 -1
  197. package/dist/unpkg/dev-deprecated/compat/extensions.js +23 -2
  198. package/dist/unpkg/dev-deprecated/compat/extensions.js.map +1 -1
  199. package/dist/unpkg/dev-deprecated/compat/utils.js +19 -2
  200. package/dist/unpkg/dev-deprecated/compat/utils.js.map +1 -1
  201. package/dist/unpkg/dev-deprecated/{compat-CeT0PnVX.js → compat-CPVriwH0.js} +62 -10
  202. package/dist/unpkg/dev-deprecated/compat-CPVriwH0.js.map +1 -0
  203. package/dist/unpkg/dev-deprecated/compat.js +1 -1
  204. package/dist/unpkg/dev-deprecated/{errors-jHQESeNQ.js → errors-yPc7D7r3.js} +42 -32
  205. package/dist/unpkg/dev-deprecated/errors-yPc7D7r3.js.map +1 -0
  206. package/dist/unpkg/dev-deprecated/index.js +25 -7
  207. package/dist/unpkg/dev-deprecated/index.js.map +1 -1
  208. package/dist/unpkg/{dev/json-DDJji3V3.js → dev-deprecated/json-BlSBe84o.js} +10 -5
  209. package/dist/unpkg/dev-deprecated/json-BlSBe84o.js.map +1 -0
  210. package/dist/unpkg/dev-deprecated/model/-private.js +1 -1
  211. package/dist/unpkg/dev-deprecated/model/migration-support.js +24 -6
  212. package/dist/unpkg/dev-deprecated/model/migration-support.js.map +1 -1
  213. package/dist/unpkg/dev-deprecated/{model-BeGORt6h.js → model-B0ZNLaHO.js} +19 -12
  214. package/dist/unpkg/dev-deprecated/model-B0ZNLaHO.js.map +1 -0
  215. package/dist/unpkg/{prod-deprecated/model-fragments-DSqu0ptR.js → dev-deprecated/model-fragments-DCHMDr5f.js} +32 -18
  216. package/dist/unpkg/dev-deprecated/model-fragments-DCHMDr5f.js.map +1 -0
  217. package/dist/unpkg/dev-deprecated/model-fragments.js +1 -1
  218. package/dist/unpkg/dev-deprecated/model.js +2 -2
  219. package/dist/unpkg/dev-deprecated/{runtime--fcdnjmJ-DMTJ0Kb3.js → runtime--fcdnjmJ-5yaSpa-d.js} +2 -3
  220. package/dist/unpkg/dev-deprecated/{runtime--fcdnjmJ-DMTJ0Kb3.js.map → runtime--fcdnjmJ-5yaSpa-d.js.map} +1 -1
  221. package/dist/unpkg/dev-deprecated/{schema-provider-NmtdR4n_.js → schema-provider-DGWYnFno.js} +18 -17
  222. package/dist/unpkg/dev-deprecated/schema-provider-DGWYnFno.js.map +1 -0
  223. package/dist/unpkg/dev-deprecated/serializer/json-api.js +7 -3
  224. package/dist/unpkg/dev-deprecated/serializer/json-api.js.map +1 -1
  225. package/dist/unpkg/dev-deprecated/serializer/json.js +1 -1
  226. package/dist/unpkg/dev-deprecated/serializer/rest.js +12 -5
  227. package/dist/unpkg/dev-deprecated/serializer/rest.js.map +1 -1
  228. package/dist/unpkg/dev-deprecated/serializer/transform.js +14 -10
  229. package/dist/unpkg/dev-deprecated/serializer/transform.js.map +1 -1
  230. package/dist/unpkg/dev-deprecated/serializer.js +42 -3
  231. package/dist/unpkg/dev-deprecated/serializer.js.map +1 -1
  232. package/dist/unpkg/dev-deprecated/{store-BCOLSC6z.js → store-Ci8k7Lh6.js} +13 -7
  233. package/dist/unpkg/dev-deprecated/store-Ci8k7Lh6.js.map +1 -0
  234. package/dist/unpkg/dev-deprecated/store.js +1 -1
  235. package/dist/unpkg/dev-deprecated/{util-CXA3RNYH.js → util-DL_8JecH.js} +2 -3
  236. package/dist/unpkg/dev-deprecated/{util-CXA3RNYH.js.map → util-DL_8JecH.js.map} +1 -1
  237. package/dist/unpkg/dev-deprecated/{utils-DQkMqhDv.js → utils-DyGjRZ14.js} +2 -3
  238. package/dist/unpkg/dev-deprecated/{utils-DQkMqhDv.js.map → utils-DyGjRZ14.js.map} +1 -1
  239. package/dist/unpkg/{prod-deprecated/-private-B4bxoTuK.js → prod/-private-Dc9yg98O.js} +8 -14
  240. package/dist/unpkg/{prod-deprecated/-private-B4bxoTuK.js.map → prod/-private-Dc9yg98O.js.map} +1 -1
  241. package/dist/unpkg/prod/{-private-SfXkkHKd.js → -private-DuRzYAyW.js} +9 -15
  242. package/dist/unpkg/prod/-private-DuRzYAyW.js.map +1 -0
  243. package/dist/unpkg/prod/adapter/-private.js +1 -1
  244. package/dist/unpkg/prod/adapter/error.js +54 -2
  245. package/dist/unpkg/prod/adapter/error.js.map +1 -1
  246. package/dist/unpkg/prod/adapter/json-api.js +10 -4
  247. package/dist/unpkg/prod/adapter/json-api.js.map +1 -1
  248. package/dist/unpkg/prod/adapter/rest.js +23 -5
  249. package/dist/unpkg/prod/adapter/rest.js.map +1 -1
  250. package/dist/unpkg/prod/{adapter-DQ9UA7FC.js → adapter-D0HCLrwm.js} +45 -6
  251. package/dist/unpkg/prod/adapter-D0HCLrwm.js.map +1 -0
  252. package/dist/unpkg/prod/adapter.js +1 -1
  253. package/dist/unpkg/prod/compat/-private.js +1 -1
  254. package/dist/unpkg/prod/compat/builders.js +15 -9
  255. package/dist/unpkg/prod/compat/builders.js.map +1 -1
  256. package/dist/unpkg/prod/compat/extensions.js +23 -2
  257. package/dist/unpkg/prod/compat/extensions.js.map +1 -1
  258. package/dist/unpkg/prod/compat/utils.js +19 -2
  259. package/dist/unpkg/prod/compat/utils.js.map +1 -1
  260. package/dist/unpkg/{prod-deprecated/compat-DxiVkCUb.js → prod/compat-PrUuencH.js} +62 -10
  261. package/dist/unpkg/prod/compat-PrUuencH.js.map +1 -0
  262. package/dist/unpkg/prod/compat.js +1 -1
  263. package/dist/unpkg/prod/{errors-DQDfNqVx.js → errors-Bw8niCo8.js} +38 -27
  264. package/dist/unpkg/prod/errors-Bw8niCo8.js.map +1 -0
  265. package/dist/unpkg/prod/index.js +25 -7
  266. package/dist/unpkg/prod/index.js.map +1 -1
  267. package/dist/unpkg/prod/{json-BD1kRTfB.js → json-D1bH8enA.js} +10 -5
  268. package/dist/unpkg/prod/json-D1bH8enA.js.map +1 -0
  269. package/dist/unpkg/prod/model/-private.js +1 -1
  270. package/dist/unpkg/prod/model/migration-support.js +24 -6
  271. package/dist/unpkg/prod/model/migration-support.js.map +1 -1
  272. package/dist/unpkg/prod/{model-CYMA-e_S.js → model-QtC0IWbE.js} +19 -12
  273. package/dist/unpkg/prod/model-QtC0IWbE.js.map +1 -0
  274. package/dist/unpkg/prod/model-fragments-DCHMDr5f.js +348 -0
  275. package/dist/unpkg/prod/model-fragments-DCHMDr5f.js.map +1 -0
  276. package/dist/unpkg/prod/model-fragments.js +1 -1
  277. package/dist/unpkg/prod/model.js +2 -2
  278. package/dist/unpkg/prod/runtime--fcdnjmJ-5yaSpa-d.js +52 -0
  279. package/dist/unpkg/prod/{runtime--fcdnjmJ-DMTJ0Kb3.js.map → runtime--fcdnjmJ-5yaSpa-d.js.map} +1 -1
  280. package/dist/unpkg/prod/{schema-provider-05U1H-Kl.js → schema-provider-DPOzTa8e.js} +18 -17
  281. package/dist/unpkg/prod/schema-provider-DPOzTa8e.js.map +1 -0
  282. package/dist/unpkg/prod/serializer/json-api.js +7 -3
  283. package/dist/unpkg/prod/serializer/json-api.js.map +1 -1
  284. package/dist/unpkg/prod/serializer/json.js +1 -1
  285. package/dist/unpkg/prod/serializer/rest.js +12 -5
  286. package/dist/unpkg/prod/serializer/rest.js.map +1 -1
  287. package/dist/unpkg/prod/serializer/transform.js +14 -10
  288. package/dist/unpkg/prod/serializer/transform.js.map +1 -1
  289. package/dist/unpkg/prod/serializer.js +42 -3
  290. package/dist/unpkg/prod/serializer.js.map +1 -1
  291. package/dist/unpkg/{prod-deprecated/store-0L2CkYzh.js → prod/store-BsSkzWgk.js} +13 -7
  292. package/dist/unpkg/{prod-deprecated/store-0L2CkYzh.js.map → prod/store-BsSkzWgk.js.map} +1 -1
  293. package/dist/unpkg/prod/store.js +1 -1
  294. package/dist/unpkg/prod/{util-dSKEgQDp.js → util-CI7b4vAE.js} +2 -3
  295. package/dist/unpkg/prod/{util-dSKEgQDp.js.map → util-CI7b4vAE.js.map} +1 -1
  296. package/dist/unpkg/{dev/utils-DYC9utVJ.js → prod/utils-_O0MjUTU.js} +2 -3
  297. package/dist/unpkg/prod/{utils-DYC9utVJ.js.map → utils-_O0MjUTU.js.map} +1 -1
  298. package/dist/unpkg/{prod/-private-B4bxoTuK.js → prod-deprecated/-private-Dc9yg98O.js} +8 -14
  299. package/dist/unpkg/{prod/-private-B4bxoTuK.js.map → prod-deprecated/-private-Dc9yg98O.js.map} +1 -1
  300. package/dist/unpkg/prod-deprecated/{-private-SfXkkHKd.js → -private-DuRzYAyW.js} +9 -15
  301. package/dist/unpkg/prod-deprecated/-private-DuRzYAyW.js.map +1 -0
  302. package/dist/unpkg/prod-deprecated/adapter/-private.js +1 -1
  303. package/dist/unpkg/prod-deprecated/adapter/error.js +54 -2
  304. package/dist/unpkg/prod-deprecated/adapter/error.js.map +1 -1
  305. package/dist/unpkg/prod-deprecated/adapter/json-api.js +10 -4
  306. package/dist/unpkg/prod-deprecated/adapter/json-api.js.map +1 -1
  307. package/dist/unpkg/prod-deprecated/adapter/rest.js +23 -5
  308. package/dist/unpkg/prod-deprecated/adapter/rest.js.map +1 -1
  309. package/dist/unpkg/prod-deprecated/{adapter-DQ9UA7FC.js → adapter-D0HCLrwm.js} +45 -6
  310. package/dist/unpkg/prod-deprecated/adapter-D0HCLrwm.js.map +1 -0
  311. package/dist/unpkg/prod-deprecated/adapter.js +1 -1
  312. package/dist/unpkg/prod-deprecated/compat/-private.js +1 -1
  313. package/dist/unpkg/prod-deprecated/compat/builders.js +15 -9
  314. package/dist/unpkg/prod-deprecated/compat/builders.js.map +1 -1
  315. package/dist/unpkg/prod-deprecated/compat/extensions.js +23 -2
  316. package/dist/unpkg/prod-deprecated/compat/extensions.js.map +1 -1
  317. package/dist/unpkg/prod-deprecated/compat/utils.js +19 -2
  318. package/dist/unpkg/prod-deprecated/compat/utils.js.map +1 -1
  319. package/dist/unpkg/{prod/compat-DxiVkCUb.js → prod-deprecated/compat-PrUuencH.js} +62 -10
  320. package/dist/unpkg/prod-deprecated/compat-PrUuencH.js.map +1 -0
  321. package/dist/unpkg/prod-deprecated/compat.js +1 -1
  322. package/dist/unpkg/prod-deprecated/{errors-ii4L43_1.js → errors-D20lKboZ.js} +38 -27
  323. package/dist/unpkg/prod-deprecated/errors-D20lKboZ.js.map +1 -0
  324. package/dist/unpkg/prod-deprecated/index.js +25 -7
  325. package/dist/unpkg/prod-deprecated/index.js.map +1 -1
  326. package/dist/unpkg/prod-deprecated/{json-BD1kRTfB.js → json-D1bH8enA.js} +10 -5
  327. package/dist/unpkg/prod-deprecated/json-D1bH8enA.js.map +1 -0
  328. package/dist/unpkg/prod-deprecated/model/-private.js +1 -1
  329. package/dist/unpkg/prod-deprecated/model/migration-support.js +24 -6
  330. package/dist/unpkg/prod-deprecated/model/migration-support.js.map +1 -1
  331. package/dist/unpkg/prod-deprecated/{model-D3oCPHtM.js → model-B946S2pl.js} +19 -12
  332. package/dist/unpkg/prod-deprecated/model-B946S2pl.js.map +1 -0
  333. package/dist/unpkg/{dev/model-fragments-DSqu0ptR.js → prod-deprecated/model-fragments-DCHMDr5f.js} +32 -18
  334. package/dist/unpkg/prod-deprecated/model-fragments-DCHMDr5f.js.map +1 -0
  335. package/dist/unpkg/prod-deprecated/model-fragments.js +1 -1
  336. package/dist/unpkg/prod-deprecated/model.js +2 -2
  337. package/dist/unpkg/prod-deprecated/{runtime--fcdnjmJ-DMTJ0Kb3.js → runtime--fcdnjmJ-5yaSpa-d.js} +2 -3
  338. package/dist/unpkg/prod-deprecated/{runtime--fcdnjmJ-DMTJ0Kb3.js.map → runtime--fcdnjmJ-5yaSpa-d.js.map} +1 -1
  339. package/dist/unpkg/prod-deprecated/{schema-provider-CKH_bnnS.js → schema-provider-xcaytn9y.js} +18 -17
  340. package/dist/unpkg/prod-deprecated/schema-provider-xcaytn9y.js.map +1 -0
  341. package/dist/unpkg/prod-deprecated/serializer/json-api.js +7 -3
  342. package/dist/unpkg/prod-deprecated/serializer/json-api.js.map +1 -1
  343. package/dist/unpkg/prod-deprecated/serializer/json.js +1 -1
  344. package/dist/unpkg/prod-deprecated/serializer/rest.js +12 -5
  345. package/dist/unpkg/prod-deprecated/serializer/rest.js.map +1 -1
  346. package/dist/unpkg/prod-deprecated/serializer/transform.js +14 -10
  347. package/dist/unpkg/prod-deprecated/serializer/transform.js.map +1 -1
  348. package/dist/unpkg/prod-deprecated/serializer.js +42 -3
  349. package/dist/unpkg/prod-deprecated/serializer.js.map +1 -1
  350. package/dist/unpkg/{prod/store-RGGc1ilN.js → prod-deprecated/store-Dsw2f4s-.js} +13 -7
  351. package/dist/unpkg/{prod/store-RGGc1ilN.js.map → prod-deprecated/store-Dsw2f4s-.js.map} +1 -1
  352. package/dist/unpkg/prod-deprecated/store.js +1 -1
  353. package/dist/unpkg/prod-deprecated/{util-CQQdHX3n.js → util-CVu5_VeN.js} +2 -3
  354. package/dist/unpkg/prod-deprecated/{util-CQQdHX3n.js.map → util-CVu5_VeN.js.map} +1 -1
  355. package/dist/unpkg/prod-deprecated/{utils-BMI_JwFP.js → utils-z1h-zTls.js} +2 -3
  356. package/dist/unpkg/prod-deprecated/{utils-BMI_JwFP.js.map → utils-z1h-zTls.js.map} +1 -1
  357. package/dist/{util-Bnx8nm-D.js → util-fMuLguoj.js} +2 -3
  358. package/dist/{util-Bnx8nm-D.js.map → util-fMuLguoj.js.map} +1 -1
  359. package/dist/{utils-ZAytYep8.js → utils-UqBsN9IU.js} +2 -3
  360. package/dist/{utils-ZAytYep8.js.map → utils-UqBsN9IU.js.map} +1 -1
  361. package/logos/README.md +1 -1
  362. package/package.json +17 -12
  363. package/dist/-private-DccRZQsm.js.map +0 -1
  364. package/dist/adapter-CARrK3-8.d.ts.map +0 -1
  365. package/dist/adapter-eYo2pIuM.js.map +0 -1
  366. package/dist/compat-BbNNmTM-.d.ts.map +0 -1
  367. package/dist/compat-DcHVxuuZ.js.map +0 -1
  368. package/dist/error-CzkyXr1Q.d.ts.map +0 -1
  369. package/dist/errors-CS110tMl.js.map +0 -1
  370. package/dist/extensions-DumNm4dA.d.ts.map +0 -1
  371. package/dist/json-BXNPTlcH.js.map +0 -1
  372. package/dist/model-62hn5_PD.d.ts.map +0 -1
  373. package/dist/model-DWH9f__L.js.map +0 -1
  374. package/dist/model-fragments-DSqu0ptR.js.map +0 -1
  375. package/dist/rest-0NhtexIq.d.ts.map +0 -1
  376. package/dist/schema-provider-DguGmQDS.js.map +0 -1
  377. package/dist/store-C4qYzXei.js.map +0 -1
  378. package/dist/unpkg/dev/-private-vOhxVExH.js.map +0 -1
  379. package/dist/unpkg/dev/adapter-oLwyr47q.js.map +0 -1
  380. package/dist/unpkg/dev/compat-DNQT2TQx.js.map +0 -1
  381. package/dist/unpkg/dev/errors-DnzvLM2A.js.map +0 -1
  382. package/dist/unpkg/dev/json-DDJji3V3.js.map +0 -1
  383. package/dist/unpkg/dev/model-BxPIR7m2.js.map +0 -1
  384. package/dist/unpkg/dev/model-fragments-DSqu0ptR.js.map +0 -1
  385. package/dist/unpkg/dev/schema-provider-CI_a48ja.js.map +0 -1
  386. package/dist/unpkg/dev/store-D_V8-HQl.js.map +0 -1
  387. package/dist/unpkg/dev-deprecated/-private-vOhxVExH.js.map +0 -1
  388. package/dist/unpkg/dev-deprecated/adapter-oLwyr47q.js.map +0 -1
  389. package/dist/unpkg/dev-deprecated/compat-CeT0PnVX.js.map +0 -1
  390. package/dist/unpkg/dev-deprecated/errors-jHQESeNQ.js.map +0 -1
  391. package/dist/unpkg/dev-deprecated/json-DDJji3V3.js.map +0 -1
  392. package/dist/unpkg/dev-deprecated/model-BeGORt6h.js.map +0 -1
  393. package/dist/unpkg/dev-deprecated/model-fragments-DSqu0ptR.js.map +0 -1
  394. package/dist/unpkg/dev-deprecated/schema-provider-NmtdR4n_.js.map +0 -1
  395. package/dist/unpkg/dev-deprecated/store-BCOLSC6z.js.map +0 -1
  396. package/dist/unpkg/prod/-private-SfXkkHKd.js.map +0 -1
  397. package/dist/unpkg/prod/adapter-DQ9UA7FC.js.map +0 -1
  398. package/dist/unpkg/prod/compat-DxiVkCUb.js.map +0 -1
  399. package/dist/unpkg/prod/errors-DQDfNqVx.js.map +0 -1
  400. package/dist/unpkg/prod/json-BD1kRTfB.js.map +0 -1
  401. package/dist/unpkg/prod/model-CYMA-e_S.js.map +0 -1
  402. package/dist/unpkg/prod/model-fragments-DSqu0ptR.js +0 -334
  403. package/dist/unpkg/prod/model-fragments-DSqu0ptR.js.map +0 -1
  404. package/dist/unpkg/prod/runtime--fcdnjmJ-DMTJ0Kb3.js +0 -53
  405. package/dist/unpkg/prod/schema-provider-05U1H-Kl.js.map +0 -1
  406. package/dist/unpkg/prod-deprecated/-private-SfXkkHKd.js.map +0 -1
  407. package/dist/unpkg/prod-deprecated/adapter-DQ9UA7FC.js.map +0 -1
  408. package/dist/unpkg/prod-deprecated/compat-DxiVkCUb.js.map +0 -1
  409. package/dist/unpkg/prod-deprecated/errors-ii4L43_1.js.map +0 -1
  410. package/dist/unpkg/prod-deprecated/json-BD1kRTfB.js.map +0 -1
  411. package/dist/unpkg/prod-deprecated/model-D3oCPHtM.js.map +0 -1
  412. package/dist/unpkg/prod-deprecated/model-fragments-DSqu0ptR.js.map +0 -1
  413. package/dist/unpkg/prod-deprecated/schema-provider-CKH_bnnS.js.map +0 -1
@@ -1,15 +1,17 @@
1
- import { _ as AdapterPayload, g as SerializerOptions, m as Snapshot, p as SnapshotRecordArray, v as MinimumAdapterInterface } from "./compat-BbNNmTM-.js";
1
+ import { _ as AdapterPayload, g as SerializerOptions, m as Snapshot, p as SnapshotRecordArray, v as MinimumAdapterInterface } from "./compat-DoWEarkU.js";
2
2
  import { Store } from "@warp-drive/core";
3
3
  import EmberObject from "@ember/object";
4
4
  import Mixin from "@ember/object/mixin";
5
5
  import { ModelSchema } from "@warp-drive/core/types";
6
- //#region src/adapter/-private/build-url-mixin.d.ts
7
6
  /**
8
7
  * The methods provided by the `BuildURLMixin` mixin (see the exported
9
8
  * `BuildURLMixin` {@link Mixin} below).
10
9
  *
11
10
  * See also {@link MixtBuildURLMixin}, the interface used to type `this`
12
11
  * within these methods.
12
+ *
13
+ * @summary Legacy adapter mixin providing `buildURL` and the `urlFor*` hooks that turn a model name, id, snapshot, and
14
+ * request type into a request URL.
13
15
  */
14
16
  interface BuildURLMixin {
15
17
  /**
@@ -188,11 +190,11 @@ interface MixtBuildURLMixin extends BuildURLMixin {
188
190
  * The `Mixin` implementation of {@link BuildURLMixin}, ready to be applied
189
191
  * to an `EmberObject` subclass such as an `Adapter`.
190
192
  *
193
+ * @summary Legacy `Mixin` that adds `buildURL` and the `urlFor*` hooks to an adapter so it can turn a model name, id,
194
+ * snapshot, and request type into a request URL.
191
195
  * @public
192
196
  */
193
197
  declare const BuildURLMixin: Mixin;
194
- //#endregion
195
- //#region src/adapter.d.ts
196
198
  /**
197
199
  An adapter is an object that receives requests from a store and
198
200
  translates them into the appropriate action to take against your
@@ -247,6 +249,8 @@ your adapter by overriding these lower-level methods:
247
249
  For an example of the implementation, see `RESTAdapter`, the
248
250
  included REST adapter.
249
251
 
252
+ @summary Legacy abstract base class for adapters that translate store requests such as `findRecord` and
253
+ `updateRecord` into calls against a persistence layer.
250
254
  @public
251
255
  */
252
256
  declare class Adapter extends EmberObject implements MinimumAdapterInterface {
@@ -779,6 +783,5 @@ declare class Adapter extends EmberObject implements MinimumAdapterInterface {
779
783
  */
780
784
  shouldBackgroundReloadAll(store: Store, snapshotRecordArray: SnapshotRecordArray): boolean;
781
785
  }
782
- //#endregion
783
786
  export { BuildURLMixin as n, MixtBuildURLMixin as r, Adapter as t };
784
- //# sourceMappingURL=adapter-CARrK3-8.d.ts.map
787
+ //# sourceMappingURL=adapter-DvDVeaCc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter-DvDVeaCc.d.ts","names":[],"sources":["../src/adapter/-private/build-url-mixin.ts","../src/adapter.ts"],"mappings":";;;;;;;;;;;;;;;UA4BiB;;;;;;;;;;;;;;;EAef,SAAA,MACQ,mBACN,mBACA,YACA,UAAU,UACV;;;;;;EAOF,SAAA,MACQ,mBACN,mBACA,UACA,UAAU,qBACV;;;;;;EAOF,SAAA,MACQ,mBACN,mBACA,UACA,gBACA,sBACA,OAAO;;;;;;EAOT,SAAA,MACQ,mBACN,mBACA,UACA,gBACA,4BACA,OAAO;;;;;;;;;EAUT,SAAA,MACQ,mBACN,mBACA,cACA,UAAU,YACV;;;;;;;EAQF,SAAA,MACQ,mBACN,mBACA,YACA,UAAU,UACV;;;;;;;EAQF,SAAA,MACQ,mBACN,mBACA,YACA,UAAU,UACV;;;;;;;EAQF,SAAA,MACQ,mBACN,mBACA,mBACA,UAAU,UACV;;;;;;;EAQF,SAAA,MACQ,mBACN,mBACA,YACA,UAAU,UACV;;;;;;;EAQF,SAAA,MACQ,mBACN,mBACA,YACA,UAAU,UACV;;;;;;EAOF,SAAA,MAAe,mBAAmB,mBAAmB,YAAY,UAAU;;;;EAI3E,UAAA,MAAgB,mBAAmB,sCAAsC;;;;;;EAMzE,iBAAA,MAAuB,mBAAmB,YAAY,mBAAmB,UAAU;;;;;;EAMnF,cAAA,MAAoB,mBAAmB,mBAAmB,WAAW;;;;;;EAMrE,kBAAA,MAAwB,mBAAmB,OAAO,yBAAyB;;;;;;EAM3E,YAAA,MAAkB,mBAAmB,OAAO,yBAAyB;;;;;;;;EAQrE,eAAA,MAAqB,mBAAmB,eAAe,mBAAmB,WAAW;;;;;;;EAOrF,kBAAA,MAAwB,mBAAmB,YAAY,mBAAmB,UAAU;;;;;;;EAOpF,oBAAA,MAA0B,mBAAmB,YAAY,mBAAmB,UAAU;;;;;;;EAOtF,mBAAA,MAAyB,mBAAmB,mBAAmB,UAAU;;;;;;;EAOzE,mBAAA,MAAyB,mBAAmB,YAAY,mBAAmB,UAAU;;;;;;;EAOrF,mBAAA,MAAyB,mBAAmB,YAAY,mBAAmB,UAAU;;;;EAIrF,UAAA,MAAgB,mBAAmB,sBAAsB;;;;;;;;;EASzD,YAAA,MAAkB,mBAAmB;;UAMtB,0BAA0B;EACzC;EACA;;;;;;;;;;cAmiBW,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cCxgBf,gBAAgB,uBAAuB;;;;EAIlD,OAAwB;;;;EAKxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCA,WAAW,OAAO,OAAO,MAAM,aAAa,YAAY,UAAU,WAAW,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCrF,QACE,OAAO,OACP,MAAM,aACN,gBACA,qBAAqB,sBAEpB,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCX,MAAM,OAAO,OAAO,MAAM,aAAa,OAAO,0BAA0B,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BhF,YACE,OAAO,OACP,MAAM,aACN,OAAO,yBACP,yBAEC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2DX,UAAU,UAAU,UAAU,SAAS,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8C3D,aAAa,OAAO,OAAO,MAAM,aAAa,UAAU,WAAW,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwD3E,aAAa,OAAO,OAAO,MAAM,aAAa,UAAU,WAAW,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgD3E,aAAa,OAAO,OAAO,MAAM,aAAa,UAAU,WAAW,QAAQ;;;;;;;;;;;MAgBvE;MAQA,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwDzB,wBAAwB,OAAO,OAAO,WAAW,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkD9D,mBAAmB,OAAO,OAAO,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuD3C,gBAAgB,OAAO,OAAO,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCnD,6BAA6B,OAAO,OAAO,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCrD,0BAA0B,OAAO,OAAO,qBAAqB"}
package/dist/adapter.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { n as BuildURLMixin, t as Adapter } from "./adapter-CARrK3-8.js";
1
+ import { n as BuildURLMixin, t as Adapter } from "./adapter-DvDVeaCc.js";
2
2
  export { Adapter, BuildURLMixin };
package/dist/adapter.js CHANGED
@@ -1,3 +1,3 @@
1
- import { n as BuildURLMixin, t as Adapter } from "./adapter-eYo2pIuM.js";
1
+ import { n as BuildURLMixin, t as Adapter } from "./adapter-AwGvdMSZ.js";
2
2
 
3
3
  export { Adapter, BuildURLMixin };
@@ -1,2 +1,2 @@
1
- import { d as FetchManager, f as SaveOp, m as Snapshot, p as SnapshotRecordArray, u as upgradeStore } from "../compat-BbNNmTM-.js";
1
+ import { d as FetchManager, f as SaveOp, m as Snapshot, p as SnapshotRecordArray, u as upgradeStore } from "../compat-DoWEarkU.js";
2
2
  export { FetchManager, SaveOp, Snapshot, SnapshotRecordArray, upgradeStore };
@@ -1,3 +1,3 @@
1
- import { i as Snapshot, l as SnapshotRecordArray, n as FetchManager, r as SaveOp, t as upgradeStore } from "../-private-DccRZQsm.js";
1
+ import { i as Snapshot, l as SnapshotRecordArray, n as FetchManager, r as SaveOp, t as upgradeStore } from "../-private-0_Oc-M3x.js";
2
2
 
3
3
  export { FetchManager, SaveOp, Snapshot, SnapshotRecordArray, upgradeStore };
@@ -3,7 +3,6 @@ import { RequestSignature } from "@warp-drive/core/types/symbols";
3
3
  import { FindAllOptions, FindRecordOptions, LegacyResourceQuery, QueryOptions, ResourceKey } from "@warp-drive/core/types";
4
4
  import { ResourceIdentifierObject } from "@warp-drive/core/types/spec/json-api-raw";
5
5
  import { TypeFromInstance, TypedRecordInstance } from "@warp-drive/core/types/record";
6
- //#region src/compat/builders/find-all.d.ts
7
6
  type FindAllRequestInput<T extends string = string, RT = unknown[]> = StoreRequestInput & {
8
7
  op: "findAll";
9
8
  data: {
@@ -22,6 +21,8 @@ All `@warp-drive/legacy/compat` builders exist to enable you to migrate your cod
22
21
  This is useful for quickly upgrading an entire app to a unified syntax while a longer incremental migration is made to shift off of adapters and serializers.
23
22
  To that end, these builders are deprecated and will be removed in a future version of WarpDrive.
24
23
 
24
+ @summary Deprecated legacy builder for a `store.request` config that behaves like `store.findAll`, easing
25
+ migration off adapters and serializers.
25
26
  @deprecated
26
27
  @public
27
28
  @param type the name of the resource
@@ -30,8 +31,6 @@ To that end, these builders are deprecated and will be removed in a future versi
30
31
  */
31
32
  declare function findAllBuilder<T extends TypedRecordInstance>(type: TypeFromInstance<T>, options?: FindAllBuilderOptions): FindAllRequestInput<TypeFromInstance<T>, T[]>;
32
33
  declare function findAllBuilder(type: string, options?: FindAllBuilderOptions): FindAllRequestInput;
33
- //#endregion
34
- //#region src/compat/builders/find-record.d.ts
35
34
  type FindRecordRequestInput<T extends string = string, RT = unknown> = StoreRequestInput & {
36
35
  op: "findRecord";
37
36
  data: {
@@ -68,6 +67,8 @@ All `@warp-drive/legacy/compat` builders exist to enable you to migrate your cod
68
67
  This is useful for quickly upgrading an entire app to a unified syntax while a longer incremental migration is made to shift off of adapters and serializers.
69
68
  To that end, these builders are deprecated and will be removed in a future version of Warp Drive.
70
69
 
70
+ @summary Deprecated legacy builder for a `store.request` config that behaves like `store.findRecord`, taking a
71
+ type and id or a resource identifier.
71
72
  @deprecated
72
73
  @public
73
74
  @param resource - either a string representing the name of the resource or a ResourceIdentifier object containing both the type (a string) and the id (a string) for the record or an lid (a string) of an existing record
@@ -79,8 +80,6 @@ declare function findRecordBuilder<T extends TypedRecordInstance>(type: TypeFrom
79
80
  declare function findRecordBuilder(type: string, id: string, options?: FindRecordBuilderOptions): FindRecordRequestInput;
80
81
  declare function findRecordBuilder<T extends TypedRecordInstance>(resource: ResourceIdentifierObject<TypeFromInstance<T>>, options?: FindRecordBuilderOptions): FindRecordRequestInput<TypeFromInstance<T>, T>;
81
82
  declare function findRecordBuilder(resource: ResourceIdentifierObject, options?: FindRecordBuilderOptions): FindRecordRequestInput;
82
- //#endregion
83
- //#region src/compat/builders/query.d.ts
84
83
  type QueryRequestInput<T extends string = string, RT = unknown[]> = StoreRequestInput & {
85
84
  op: "query";
86
85
  data: {
@@ -100,6 +99,8 @@ All `@warp-drive/legacy/compat` builders exist to enable you to migrate your cod
100
99
  This is useful for quickly upgrading an entire app to a unified syntax while a longer incremental migration is made to shift off of adapters and serializers.
101
100
  To that end, these builders are deprecated and will be removed in a future version of WarpDrive.
102
101
 
102
+ @summary Deprecated legacy builder for a `store.request` config that behaves like `store.query`, returning the
103
+ records matching a query object.
103
104
  @deprecated
104
105
  @public
105
106
  @param type the name of the resource
@@ -127,6 +128,8 @@ All `@warp-drive/legacy/compat` builders exist to enable you to migrate your cod
127
128
  This is useful for quickly upgrading an entire app to a unified syntax while a longer incremental migration is made to shift off of adapters and serializers.
128
129
  To that end, these builders are deprecated and will be removed in a future version of WarpDrive.
129
130
 
131
+ @summary Deprecated legacy builder for a `store.request` config that behaves like `store.queryRecord`, returning
132
+ a single record or `null` for a query object.
130
133
  @deprecated
131
134
  @public
132
135
  @param type the name of the resource
@@ -136,8 +139,6 @@ To that end, these builders are deprecated and will be removed in a future versi
136
139
  */
137
140
  declare function queryRecordBuilder<T extends TypedRecordInstance>(type: TypeFromInstance<T>, query: LegacyResourceQuery, options?: QueryBuilderOptions): QueryRecordRequestInput<TypeFromInstance<T>, T | null>;
138
141
  declare function queryRecordBuilder(type: string, query: LegacyResourceQuery, options?: QueryBuilderOptions): QueryRecordRequestInput;
139
- //#endregion
140
- //#region src/compat/builders/save-record.d.ts
141
142
  type SaveRecordRequestInput<T extends string = string, RT = unknown> = StoreRequestInput & {
142
143
  op: "createRecord" | "deleteRecord" | "updateRecord";
143
144
  data: {
@@ -157,6 +158,8 @@ All `@ember-data/legacy-compat` builders exist to enable you to migrate your cod
157
158
  This is useful for quickly upgrading an entire app to a unified syntax while a longer incremental migration is made to shift off of adapters and serializers.
158
159
  To that end, these builders are deprecated and will be removed in a future version of Ember Data.
159
160
 
161
+ @summary Deprecated legacy builder for a `store.request` config that creates, updates, or deletes a record
162
+ through adapters, like the legacy `store.saveRecord`.
160
163
  @deprecated
161
164
  @public
162
165
  @param {Object} record a record to save
@@ -164,6 +167,5 @@ To that end, these builders are deprecated and will be removed in a future versi
164
167
  @return {SaveRecordRequestInput} request config
165
168
  */
166
169
  declare function saveRecordBuilder<T extends TypedRecordInstance>(record: T, options?: Record<string, unknown>): SaveRecordRequestInput<TypeFromInstance<T>, T>;
167
- //#endregion
168
170
  export { findAllBuilder as findAll, findRecordBuilder as findRecord, queryBuilder as query, queryRecordBuilder as queryRecord, saveRecordBuilder as saveRecord };
169
171
  //# sourceMappingURL=builders.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"builders.d.ts","names":[],"sources":["../../src/compat/builders/find-all.ts","../../src/compat/builders/find-record.ts","../../src/compat/builders/query.ts","../../src/compat/builders/save-record.ts"],"mappings":";;;;;;KASK,oBAAoB,2BAA2B,kBAAkB;EACpE;EACA;IACE,MAAM;IACN,SAAS;;GAEV,oBAAoB;;KAGlB,wBAAwB;;;;;;;;;;;;;;;;iBAiBb,eAAe,UAAU,qBACvC,MAAM,iBAAiB,IACvB,UAAU,wBACT,oBAAoB,iBAAiB,IAAI;iBAC5B,eAAe,cAAc,UAAU,wBAAwB;;;KC5B1E,uBAAuB,2BAA2B,gBAAgB;EACrE;EACA;IACE,QAAQ,yBAAyB;IACjC,SAAS;;GAEV,oBAAoB;;KAGlB,2BAA2B,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAoCrB,kBAAkB,UAAU,qBAC1C,MAAM,iBAAiB,IACvB,YACA,UAAU,2BACT,uBAAuB,iBAAiB,IAAI;iBAC/B,kBAAkB,cAAc,YAAY,UAAU,2BAA2B;iBACjF,kBAAkB,UAAU,qBAC1C,UAAU,yBAAyB,iBAAiB,KACpD,UAAU,2BACT,uBAAuB,iBAAiB,IAAI;iBAC/B,kBACd,UAAU,0BACV,UAAU,2BACT;;;KC5DE,kBAAkB,2BAA2B,kBAAkB;EAClE;EACA;IACE,MAAM;IACN,OAAO;IACP,SAAS;;GAEV,oBAAoB;;KAGlB,sBAAsB;;;;;;;;;;;;;;;;;iBAkBX,aAAa,UAAU,qBACrC,MAAM,iBAAiB,IACvB,OAAO,qBACP,UAAU,sBACT,kBAAkB,iBAAiB,IAAI;iBAC1B,aACd,cACA,OAAO,qBACP,UAAU,sBACT;KAwBE,wBAAwB,2BAA2B,gBAAgB;EACtE;EACA;IACE,MAAM;IACN,OAAO;IACP,SAAS;;GAEV,oBAAoB;;;;;;;;;;;;;;;;;;iBAmBP,mBAAmB,UAAU,qBAC3C,MAAM,iBAAiB,IACvB,OAAO,qBACP,UAAU,sBACT,wBAAwB,iBAAiB,IAAI;iBAChC,mBACd,cACA,OAAO,qBACP,UAAU,sBACT;;;KChGE,uBAAuB,2BAA2B,gBAAgB;EACrE;EACA;IACE,QAAQ,YAAY;IACpB,SAAS;;EAEX,UAAU,YAAY;GACrB,oBAAoB;;KAGlB,2BAA2B;;;;;;;;;;;;;;;;iBA0BhB,kBAAkB,UAAU,qBAC1C,QAAQ,GACR,UAAS,0BACR,uBAAuB,iBAAiB,IAAI"}
1
+ {"version":3,"file":"builders.d.ts","names":[],"sources":["../../src/compat/builders/find-all.ts","../../src/compat/builders/find-record.ts","../../src/compat/builders/query.ts","../../src/compat/builders/save-record.ts"],"mappings":";;;;;KASK,oBAAoB,2BAA2B,kBAAkB;EACpE;EACA;IACE,MAAM;IACN,SAAS;;GAEV,oBAAoB;;KAGlB,wBAAwB;;;;;;;;;;;;;;;;;;iBAmBb,eAAe,UAAU,qBACvC,MAAM,iBAAiB,IACvB,UAAU,wBACT,oBAAoB,iBAAiB,IAAI;iBAC5B,eAAe,cAAc,UAAU,wBAAwB;KC9B1E,uBAAuB,2BAA2B,gBAAgB;EACrE;EACA;IACE,QAAQ,yBAAyB;IACjC,SAAS;;GAEV,oBAAoB;;KAGlB,2BAA2B,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsCrB,kBAAkB,UAAU,qBAC1C,MAAM,iBAAiB,IACvB,YACA,UAAU,2BACT,uBAAuB,iBAAiB,IAAI;iBAC/B,kBAAkB,cAAc,YAAY,UAAU,2BAA2B;iBACjF,kBAAkB,UAAU,qBAC1C,UAAU,yBAAyB,iBAAiB,KACpD,UAAU,2BACT,uBAAuB,iBAAiB,IAAI;iBAC/B,kBACd,UAAU,0BACV,UAAU,2BACT;KC9DE,kBAAkB,2BAA2B,kBAAkB;EAClE;EACA;IACE,MAAM;IACN,OAAO;IACP,SAAS;;GAEV,oBAAoB;;KAGlB,sBAAsB;;;;;;;;;;;;;;;;;;;iBAoBX,aAAa,UAAU,qBACrC,MAAM,iBAAiB,IACvB,OAAO,qBACP,UAAU,sBACT,kBAAkB,iBAAiB,IAAI;iBAC1B,aACd,cACA,OAAO,qBACP,UAAU,sBACT;KAwBE,wBAAwB,2BAA2B,gBAAgB;EACtE;EACA;IACE,MAAM;IACN,OAAO;IACP,SAAS;;GAEV,oBAAoB;;;;;;;;;;;;;;;;;;;;iBAqBP,mBAAmB,UAAU,qBAC3C,MAAM,iBAAiB,IACvB,OAAO,qBACP,UAAU,sBACT,wBAAwB,iBAAiB,IAAI;iBAChC,mBACd,cACA,OAAO,qBACP,UAAU,sBACT;KCpGE,uBAAuB,2BAA2B,gBAAgB;EACrE;EACA;IACE,QAAQ,YAAY;IACpB,SAAS;;EAEX,UAAU,YAAY;GACrB,oBAAoB;;KAGlB,2BAA2B;;;;;;;;;;;;;;;;;;iBA4BhB,kBAAkB,UAAU,qBAC1C,QAAQ,GACR,UAAS,0BACR,uBAAuB,iBAAiB,IAAI"}
@@ -1,10 +1,10 @@
1
- import { n as normalizeModelName, t as isMaybeIdentifier } from "../utils-ZAytYep8.js";
1
+ import { n as normalizeModelName, t as isMaybeIdentifier } from "../utils-UqBsN9IU.js";
2
2
  import { recordIdentifierFor, storeFor } from "@warp-drive/core";
3
3
  import { assertPrivateStore, constructResource, ensureStringId } from "@warp-drive/core/store/-private";
4
4
  import { getGlobalConfig, macroCondition } from "@embroider/macros";
5
5
  import { SkipCache } from "@warp-drive/core/types/request";
6
6
 
7
- //#region src/compat/builders/find-all.ts
7
+ // src/compat/builders/find-all.ts
8
8
  /**
9
9
  This function builds a request config to perform a `findAll` request for the given type.
10
10
  When passed to `store.request`, this config will result in the same behavior as a `store.findAll` request.
@@ -14,6 +14,8 @@ All `@warp-drive/legacy/compat` builders exist to enable you to migrate your cod
14
14
  This is useful for quickly upgrading an entire app to a unified syntax while a longer incremental migration is made to shift off of adapters and serializers.
15
15
  To that end, these builders are deprecated and will be removed in a future version of WarpDrive.
16
16
 
17
+ @summary Deprecated legacy builder for a `store.request` config that behaves like `store.findAll`, easing
18
+ migration off adapters and serializers.
17
19
  @deprecated
18
20
  @public
19
21
  @param type the name of the resource
@@ -37,8 +39,7 @@ function findAllBuilder(type, options = {}) {
37
39
  };
38
40
  }
39
41
 
40
- //#endregion
41
- //#region src/compat/builders/find-record.ts
42
+ // src/compat/builders/find-record.ts
42
43
  /**
43
44
  This function builds a request config to find the record for a given identifier or type and id combination.
44
45
  When passed to `store.request`, this config will result in the same behavior as a `store.findRecord` request.
@@ -66,6 +67,8 @@ All `@warp-drive/legacy/compat` builders exist to enable you to migrate your cod
66
67
  This is useful for quickly upgrading an entire app to a unified syntax while a longer incremental migration is made to shift off of adapters and serializers.
67
68
  To that end, these builders are deprecated and will be removed in a future version of Warp Drive.
68
69
 
70
+ @summary Deprecated legacy builder for a `store.request` config that behaves like `store.findRecord`, taking a
71
+ type and id or a resource identifier.
69
72
  @deprecated
70
73
  @public
71
74
  @param resource - either a string representing the name of the resource or a ResourceIdentifier object containing both the type (a string) and the id (a string) for the record or an lid (a string) of an existing record
@@ -100,8 +103,7 @@ function findRecordBuilder(resource, idOrOptions, options) {
100
103
  };
101
104
  }
102
105
 
103
- //#endregion
104
- //#region src/compat/builders/query.ts
106
+ // src/compat/builders/query.ts
105
107
  /**
106
108
  This function builds a request config for a given type and query object.
107
109
  When passed to `store.request`, this config will result in the same behavior as a `store.query` request.
@@ -111,6 +113,8 @@ All `@warp-drive/legacy/compat` builders exist to enable you to migrate your cod
111
113
  This is useful for quickly upgrading an entire app to a unified syntax while a longer incremental migration is made to shift off of adapters and serializers.
112
114
  To that end, these builders are deprecated and will be removed in a future version of WarpDrive.
113
115
 
116
+ @summary Deprecated legacy builder for a `store.request` config that behaves like `store.query`, returning the
117
+ records matching a query object.
114
118
  @deprecated
115
119
  @public
116
120
  @param type the name of the resource
@@ -147,6 +151,8 @@ All `@warp-drive/legacy/compat` builders exist to enable you to migrate your cod
147
151
  This is useful for quickly upgrading an entire app to a unified syntax while a longer incremental migration is made to shift off of adapters and serializers.
148
152
  To that end, these builders are deprecated and will be removed in a future version of WarpDrive.
149
153
 
154
+ @summary Deprecated legacy builder for a `store.request` config that behaves like `store.queryRecord`, returning
155
+ a single record or `null` for a query object.
150
156
  @deprecated
151
157
  @public
152
158
  @param type the name of the resource
@@ -175,8 +181,7 @@ function queryRecordBuilder(type, query, options) {
175
181
  };
176
182
  }
177
183
 
178
- //#endregion
179
- //#region src/compat/builders/save-record.ts
184
+ // src/compat/builders/save-record.ts
180
185
  function _resourceIsFullDeleted(identifier, cache) {
181
186
  return cache.isDeletionCommitted(identifier) || cache.isNew(identifier) && cache.isDeleted(identifier);
182
187
  }
@@ -193,6 +198,8 @@ All `@ember-data/legacy-compat` builders exist to enable you to migrate your cod
193
198
  This is useful for quickly upgrading an entire app to a unified syntax while a longer incremental migration is made to shift off of adapters and serializers.
194
199
  To that end, these builders are deprecated and will be removed in a future version of Ember Data.
195
200
 
201
+ @summary Deprecated legacy builder for a `store.request` config that creates, updates, or deletes a record
202
+ through adapters, like the legacy `store.saveRecord`.
196
203
  @deprecated
197
204
  @public
198
205
  @param {Object} record a record to save
@@ -227,6 +234,5 @@ function saveRecordBuilder(record, options = {}) {
227
234
  };
228
235
  }
229
236
 
230
- //#endregion
231
237
  export { findAllBuilder as findAll, findRecordBuilder as findRecord, queryBuilder as query, queryRecordBuilder as queryRecord, saveRecordBuilder as saveRecord };
232
238
  //# sourceMappingURL=builders.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"builders.js","names":["SkipCache","normalizeModelName","macroCondition","getGlobalConfig","findAllBuilder","type","options","WarpDrive","env","DEBUG","test","Error","op","data","cacheOptions","constructResource","ensureStringId","SkipCache","isMaybeIdentifier","normalizeModelName","macroCondition","getGlobalConfig","findRecordBuilder","resource","idOrOptions","options","WarpDrive","env","DEBUG","test","Error","type","normalizedId","preload","op","data","record","cacheOptions","SkipCache","normalizeModelName","macroCondition","getGlobalConfig","queryBuilder","type","query","options","WarpDrive","env","DEBUG","test","Error","op","data","cacheOptions","queryRecordBuilder","recordIdentifierFor","storeFor","assertPrivateStore","SkipCache","macroCondition","getGlobalConfig","_resourceIsFullDeleted","identifier","cache","isDeletionCommitted","isNew","isDeleted","resourceIsFullyDeleted","instanceCache","saveRecordBuilder","record","options","store","WarpDrive","env","DEBUG","test","Error","lid","_instanceCache","recordIsLoaded","operation","op","data","records","cacheOptions"],"sources":["../../src/compat/builders/find-all.ts","../../src/compat/builders/find-record.ts","../../src/compat/builders/query.ts","../../src/compat/builders/save-record.ts"],"sourcesContent":["import type { StoreRequestInput } from '@warp-drive/core';\nimport { assert } from '@warp-drive/core/build-config/macros';\nimport type { FindAllOptions } from '@warp-drive/core/types';\nimport type { TypedRecordInstance, TypeFromInstance } from '@warp-drive/core/types/record';\nimport { SkipCache } from '@warp-drive/core/types/request';\nimport type { RequestSignature } from '@warp-drive/core/types/symbols';\n\nimport { normalizeModelName } from './utils.ts';\n\ntype FindAllRequestInput<T extends string = string, RT = unknown[]> = StoreRequestInput & {\n op: 'findAll';\n data: {\n type: T;\n options: FindAllBuilderOptions;\n };\n [RequestSignature]?: RT;\n};\n\ntype FindAllBuilderOptions = FindAllOptions;\n\n/**\n This function builds a request config to perform a `findAll` request for the given type.\n When passed to `store.request`, this config will result in the same behavior as a `store.findAll` request.\n Additionally, it takes the same options as `store.findAll`.\n\n All `@warp-drive/legacy/compat` builders exist to enable you to migrate your codebase to using the correct syntax for `store.request` while temporarily preserving legacy behaviors.\n This is useful for quickly upgrading an entire app to a unified syntax while a longer incremental migration is made to shift off of adapters and serializers.\n To that end, these builders are deprecated and will be removed in a future version of WarpDrive.\n\n @deprecated\n @public\n @param type the name of the resource\n @param options optional, may include `adapterOptions` hash which will be passed to adapter.findAll\n @return request config\n*/\nexport function findAllBuilder<T extends TypedRecordInstance>(\n type: TypeFromInstance<T>,\n options?: FindAllBuilderOptions\n): FindAllRequestInput<TypeFromInstance<T>, T[]>;\nexport function findAllBuilder(type: string, options?: FindAllBuilderOptions): FindAllRequestInput;\nexport function findAllBuilder(type: string, options: FindAllBuilderOptions = {}): FindAllRequestInput {\n assert(`You need to pass a model name to the findAll builder`, type);\n assert(\n `Model name passed to the findAll builder must be a dasherized string instead of ${type}`,\n typeof type === 'string'\n );\n\n return {\n op: 'findAll',\n data: {\n type: normalizeModelName(type),\n options: options || {},\n },\n cacheOptions: { [SkipCache]: true },\n };\n}\n","import type { StoreRequestInput } from '@warp-drive/core';\nimport { assert } from '@warp-drive/core/build-config/macros';\nimport { constructResource, ensureStringId } from '@warp-drive/core/store/-private';\nimport type { BaseFinderOptions, FindRecordOptions } from '@warp-drive/core/types';\nimport type { TypedRecordInstance, TypeFromInstance } from '@warp-drive/core/types/record';\nimport { SkipCache } from '@warp-drive/core/types/request';\nimport type { ResourceIdentifierObject } from '@warp-drive/core/types/spec/json-api-raw';\nimport type { RequestSignature } from '@warp-drive/core/types/symbols';\n\nimport { isMaybeIdentifier, normalizeModelName } from './utils.ts';\n\ntype FindRecordRequestInput<T extends string = string, RT = unknown> = StoreRequestInput & {\n op: 'findRecord';\n data: {\n record: ResourceIdentifierObject<T>;\n options: FindRecordBuilderOptions;\n };\n [RequestSignature]?: RT;\n};\n\ntype FindRecordBuilderOptions = Omit<FindRecordOptions, 'preload'>;\n\n/**\n This function builds a request config to find the record for a given identifier or type and id combination.\n When passed to `store.request`, this config will result in the same behavior as a `store.findRecord` request.\n Additionally, it takes the same options as `store.findRecord`, with the exception of `preload` (which is unsupported).\n\n **Example 1**\n\n ```ts\n import { findRecord } from '@warp-drive/legacy/compat/builders';\n const { content: post } = await store.request<Post>(findRecord<Post>('post', '1'));\n ```\n\n **Example 2**\n\n `findRecord` can be called with a single identifier argument instead of the combination\n of `type` (modelName) and `id` as separate arguments. You may recognize this combo as\n the typical pairing from [JSON:API](https://jsonapi.org/format/#document-resource-object-identification)\n\n ```ts\n import { findRecord } from '@warp-drive/legacy/compat/builders';\n const { content: post } = await store.request<Post>(findRecord<Post>({ type: 'post', id }));\n ```\n\n All `@warp-drive/legacy/compat` builders exist to enable you to migrate your codebase to using the correct syntax for `store.request` while temporarily preserving legacy behaviors.\n This is useful for quickly upgrading an entire app to a unified syntax while a longer incremental migration is made to shift off of adapters and serializers.\n To that end, these builders are deprecated and will be removed in a future version of Warp Drive.\n\n @deprecated\n @public\n @param resource - either a string representing the name of the resource or a ResourceIdentifier object containing both the type (a string) and the id (a string) for the record or an lid (a string) of an existing record\n @param id - optional object with options for the request only if the first param is a ResourceIdentifier, else the string id of the record to be retrieved\n @param options - if the first param is a string this will be the optional options for the request. See examples for available options.\n @return request config\n*/\nexport function findRecordBuilder<T extends TypedRecordInstance>(\n type: TypeFromInstance<T>,\n id: string,\n options?: FindRecordBuilderOptions\n): FindRecordRequestInput<TypeFromInstance<T>, T>;\nexport function findRecordBuilder(type: string, id: string, options?: FindRecordBuilderOptions): FindRecordRequestInput;\nexport function findRecordBuilder<T extends TypedRecordInstance>(\n resource: ResourceIdentifierObject<TypeFromInstance<T>>,\n options?: FindRecordBuilderOptions\n): FindRecordRequestInput<TypeFromInstance<T>, T>;\nexport function findRecordBuilder(\n resource: ResourceIdentifierObject,\n options?: FindRecordBuilderOptions\n): FindRecordRequestInput;\nexport function findRecordBuilder(\n resource: string | ResourceIdentifierObject,\n idOrOptions?: string | FindRecordBuilderOptions,\n options?: FindRecordBuilderOptions\n): FindRecordRequestInput {\n assert(\n `You need to pass a modelName or resource identifier as the first argument to the findRecord builder`,\n resource\n );\n if (isMaybeIdentifier(resource)) {\n options = idOrOptions as BaseFinderOptions | undefined;\n } else {\n assert(\n `You need to pass a modelName or resource identifier as the first argument to the findRecord builder (passed ${resource})`,\n typeof resource === 'string'\n );\n const type = normalizeModelName(resource);\n const normalizedId = ensureStringId(idOrOptions as string | number);\n resource = constructResource(type, normalizedId);\n }\n\n options = options || {};\n\n assert('findRecord builder does not support options.preload', !(options as FindRecordOptions).preload);\n\n return {\n op: 'findRecord' as const,\n data: {\n record: resource,\n options,\n },\n cacheOptions: { [SkipCache]: true },\n };\n}\n","import type { StoreRequestInput } from '@warp-drive/core';\nimport { assert } from '@warp-drive/core/build-config/macros';\nimport type { LegacyResourceQuery, QueryOptions } from '@warp-drive/core/types';\nimport type { TypedRecordInstance, TypeFromInstance } from '@warp-drive/core/types/record';\nimport { SkipCache } from '@warp-drive/core/types/request';\nimport type { RequestSignature } from '@warp-drive/core/types/symbols';\n\nimport { normalizeModelName } from './utils.ts';\n\ntype QueryRequestInput<T extends string = string, RT = unknown[]> = StoreRequestInput & {\n op: 'query';\n data: {\n type: T;\n query: LegacyResourceQuery;\n options: QueryBuilderOptions;\n };\n [RequestSignature]?: RT;\n};\n\ntype QueryBuilderOptions = QueryOptions;\n\n/**\n This function builds a request config for a given type and query object.\n When passed to `store.request`, this config will result in the same behavior as a `store.query` request.\n Additionally, it takes the same options as `store.query`.\n\n All `@warp-drive/legacy/compat` builders exist to enable you to migrate your codebase to using the correct syntax for `store.request` while temporarily preserving legacy behaviors.\n This is useful for quickly upgrading an entire app to a unified syntax while a longer incremental migration is made to shift off of adapters and serializers.\n To that end, these builders are deprecated and will be removed in a future version of WarpDrive.\n\n @deprecated\n @public\n @param type the name of the resource\n @param query a query to be used by the adapter\n @param options optional, may include `adapterOptions` hash which will be passed to adapter.query\n @return request config\n*/\nexport function queryBuilder<T extends TypedRecordInstance>(\n type: TypeFromInstance<T>,\n query: LegacyResourceQuery,\n options?: QueryBuilderOptions\n): QueryRequestInput<TypeFromInstance<T>, T[]>;\nexport function queryBuilder(\n type: string,\n query: LegacyResourceQuery,\n options?: QueryBuilderOptions\n): QueryRequestInput;\nexport function queryBuilder(\n type: string,\n query: LegacyResourceQuery,\n options: QueryBuilderOptions = {}\n): QueryRequestInput {\n assert(`You need to pass a model name to the query builder`, type);\n assert(`You need to pass a query hash to the query builder`, query);\n assert(\n `Model name passed to the query builder must be a dasherized string instead of ${type}`,\n typeof type === 'string'\n );\n\n return {\n op: 'query' as const,\n data: {\n type: normalizeModelName(type),\n query,\n options: options,\n },\n cacheOptions: { [SkipCache]: true },\n };\n}\n\ntype QueryRecordRequestInput<T extends string = string, RT = unknown> = StoreRequestInput & {\n op: 'queryRecord';\n data: {\n type: T;\n query: LegacyResourceQuery;\n options: QueryBuilderOptions;\n };\n [RequestSignature]?: RT;\n};\n\n/**\n This function builds a request config for a given type and query object.\n When passed to `store.request`, this config will result in the same behavior as a `store.queryRecord` request.\n Additionally, it takes the same options as `store.queryRecord`.\n\n All `@warp-drive/legacy/compat` builders exist to enable you to migrate your codebase to using the correct syntax for `store.request` while temporarily preserving legacy behaviors.\n This is useful for quickly upgrading an entire app to a unified syntax while a longer incremental migration is made to shift off of adapters and serializers.\n To that end, these builders are deprecated and will be removed in a future version of WarpDrive.\n\n @deprecated\n @public\n @param type the name of the resource\n @param query a query to be used by the adapter\n @param options optional, may include `adapterOptions` hash which will be passed to adapter.query\n @return request config\n*/\nexport function queryRecordBuilder<T extends TypedRecordInstance>(\n type: TypeFromInstance<T>,\n query: LegacyResourceQuery,\n options?: QueryBuilderOptions\n): QueryRecordRequestInput<TypeFromInstance<T>, T | null>;\nexport function queryRecordBuilder(\n type: string,\n query: LegacyResourceQuery,\n options?: QueryBuilderOptions\n): QueryRecordRequestInput;\nexport function queryRecordBuilder(\n type: string,\n query: LegacyResourceQuery,\n options?: QueryBuilderOptions\n): QueryRecordRequestInput {\n assert(`You need to pass a model name to the queryRecord builder`, type);\n assert(`You need to pass a query hash to the queryRecord builder`, query);\n assert(\n `Model name passed to the queryRecord builder must be a dasherized string instead of ${type}`,\n typeof type === 'string'\n );\n\n return {\n op: 'queryRecord',\n data: {\n type: normalizeModelName(type),\n query,\n options: options || {},\n },\n cacheOptions: { [SkipCache]: true },\n };\n}\n","import { recordIdentifierFor, storeFor, type StoreRequestInput } from '@warp-drive/core';\nimport { assert } from '@warp-drive/core/build-config/macros';\nimport { assertPrivateStore, type InstanceCache } from '@warp-drive/core/store/-private';\nimport type { ResourceKey } from '@warp-drive/core/types';\nimport type { Cache } from '@warp-drive/core/types/cache';\nimport type { TypedRecordInstance, TypeFromInstance } from '@warp-drive/core/types/record';\nimport { SkipCache } from '@warp-drive/core/types/request';\nimport type { RequestSignature } from '@warp-drive/core/types/symbols';\n\ntype SaveRecordRequestInput<T extends string = string, RT = unknown> = StoreRequestInput & {\n op: 'createRecord' | 'deleteRecord' | 'updateRecord';\n data: {\n record: ResourceKey<T>;\n options: SaveRecordBuilderOptions;\n };\n records: [ResourceKey<T>];\n [RequestSignature]?: RT;\n};\n\ntype SaveRecordBuilderOptions = Record<string, unknown>;\n\nfunction _resourceIsFullDeleted(identifier: ResourceKey, cache: Cache): boolean {\n return cache.isDeletionCommitted(identifier) || (cache.isNew(identifier) && cache.isDeleted(identifier));\n}\n\nfunction resourceIsFullyDeleted(instanceCache: InstanceCache, identifier: ResourceKey): boolean {\n const cache = instanceCache.cache;\n return !cache || _resourceIsFullDeleted(identifier, cache);\n}\n\n/**\n This function builds a request config for saving the given record (e.g. creating, updating, or deleting the record).\n When passed to `store.request`, this config will result in the same behavior as a legacy `store.saveRecord` request.\n Additionally, it takes the same options as `store.saveRecord`.\n\n All `@ember-data/legacy-compat` builders exist to enable you to migrate your codebase to using the correct syntax for `store.request` while temporarily preserving legacy behaviors.\n This is useful for quickly upgrading an entire app to a unified syntax while a longer incremental migration is made to shift off of adapters and serializers.\n To that end, these builders are deprecated and will be removed in a future version of Ember Data.\n\n @deprecated\n @public\n @param {Object} record a record to save\n @param {SaveRecordBuilderOptions} options optional, may include `adapterOptions` hash which will be passed to adapter.saveRecord\n @return {SaveRecordRequestInput} request config\n*/\nexport function saveRecordBuilder<T extends TypedRecordInstance>(\n record: T,\n options: Record<string, unknown> = {}\n): SaveRecordRequestInput<TypeFromInstance<T>, T> {\n const store = storeFor(record, true);\n assertPrivateStore(store);\n assert(`Unable to initiate save for a record in a disconnected state`, store);\n const identifier = recordIdentifierFor<T>(record);\n\n if (!identifier) {\n // this commonly means we're disconnected\n // but just in case we throw here to prevent bad things.\n throw new Error(`Record Is Disconnected`);\n }\n assert(\n `Cannot initiate a save request for an unloaded record: ${identifier.lid}`,\n store._instanceCache.recordIsLoaded(identifier)\n );\n\n if (resourceIsFullyDeleted(store._instanceCache, identifier)) {\n throw new Error('cannot build saveRecord request for deleted record');\n }\n\n if (!options) {\n options = {};\n }\n let operation: 'createRecord' | 'deleteRecord' | 'updateRecord' = 'updateRecord';\n\n const cache = store.cache;\n if (cache.isNew(identifier)) {\n operation = 'createRecord';\n } else if (cache.isDeleted(identifier)) {\n operation = 'deleteRecord';\n }\n\n return {\n op: operation,\n data: {\n options,\n record: identifier,\n },\n records: [identifier],\n cacheOptions: { [SkipCache]: true },\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"builders.js","names":["SkipCache","normalizeModelName","macroCondition","getGlobalConfig","findAllBuilder","type","options","WarpDrive","env","DEBUG","test","Error","op","data","cacheOptions","constructResource","ensureStringId","SkipCache","isMaybeIdentifier","normalizeModelName","macroCondition","getGlobalConfig","findRecordBuilder","resource","idOrOptions","options","WarpDrive","env","DEBUG","test","Error","type","normalizedId","preload","op","data","record","cacheOptions","SkipCache","normalizeModelName","macroCondition","getGlobalConfig","queryBuilder","type","query","options","WarpDrive","env","DEBUG","test","Error","op","data","cacheOptions","queryRecordBuilder","recordIdentifierFor","storeFor","assertPrivateStore","SkipCache","macroCondition","getGlobalConfig","_resourceIsFullDeleted","identifier","cache","isDeletionCommitted","isNew","isDeleted","resourceIsFullyDeleted","instanceCache","saveRecordBuilder","record","options","store","WarpDrive","env","DEBUG","test","Error","lid","_instanceCache","recordIsLoaded","operation","op","data","records","cacheOptions"],"sources":["../../src/compat/builders/find-all.ts","../../src/compat/builders/find-record.ts","../../src/compat/builders/query.ts","../../src/compat/builders/save-record.ts"],"sourcesContent":["import type { StoreRequestInput } from '@warp-drive/core';\nimport { assert } from '@warp-drive/core/build-config/macros';\nimport type { FindAllOptions } from '@warp-drive/core/types';\nimport type { TypedRecordInstance, TypeFromInstance } from '@warp-drive/core/types/record';\nimport { SkipCache } from '@warp-drive/core/types/request';\nimport type { RequestSignature } from '@warp-drive/core/types/symbols';\n\nimport { normalizeModelName } from './utils.ts';\n\ntype FindAllRequestInput<T extends string = string, RT = unknown[]> = StoreRequestInput & {\n op: 'findAll';\n data: {\n type: T;\n options: FindAllBuilderOptions;\n };\n [RequestSignature]?: RT;\n};\n\ntype FindAllBuilderOptions = FindAllOptions;\n\n/**\n This function builds a request config to perform a `findAll` request for the given type.\n When passed to `store.request`, this config will result in the same behavior as a `store.findAll` request.\n Additionally, it takes the same options as `store.findAll`.\n\n All `@warp-drive/legacy/compat` builders exist to enable you to migrate your codebase to using the correct syntax for `store.request` while temporarily preserving legacy behaviors.\n This is useful for quickly upgrading an entire app to a unified syntax while a longer incremental migration is made to shift off of adapters and serializers.\n To that end, these builders are deprecated and will be removed in a future version of WarpDrive.\n\n @summary Deprecated legacy builder for a `store.request` config that behaves like `store.findAll`, easing\n migration off adapters and serializers.\n @deprecated\n @public\n @param type the name of the resource\n @param options optional, may include `adapterOptions` hash which will be passed to adapter.findAll\n @return request config\n*/\nexport function findAllBuilder<T extends TypedRecordInstance>(\n type: TypeFromInstance<T>,\n options?: FindAllBuilderOptions\n): FindAllRequestInput<TypeFromInstance<T>, T[]>;\nexport function findAllBuilder(type: string, options?: FindAllBuilderOptions): FindAllRequestInput;\nexport function findAllBuilder(type: string, options: FindAllBuilderOptions = {}): FindAllRequestInput {\n assert(`You need to pass a model name to the findAll builder`, type);\n assert(\n `Model name passed to the findAll builder must be a dasherized string instead of ${type}`,\n typeof type === 'string'\n );\n\n return {\n op: 'findAll',\n data: {\n type: normalizeModelName(type),\n options: options || {},\n },\n cacheOptions: { [SkipCache]: true },\n };\n}\n","import type { StoreRequestInput } from '@warp-drive/core';\nimport { assert } from '@warp-drive/core/build-config/macros';\nimport { constructResource, ensureStringId } from '@warp-drive/core/store/-private';\nimport type { BaseFinderOptions, FindRecordOptions } from '@warp-drive/core/types';\nimport type { TypedRecordInstance, TypeFromInstance } from '@warp-drive/core/types/record';\nimport { SkipCache } from '@warp-drive/core/types/request';\nimport type { ResourceIdentifierObject } from '@warp-drive/core/types/spec/json-api-raw';\nimport type { RequestSignature } from '@warp-drive/core/types/symbols';\n\nimport { isMaybeIdentifier, normalizeModelName } from './utils.ts';\n\ntype FindRecordRequestInput<T extends string = string, RT = unknown> = StoreRequestInput & {\n op: 'findRecord';\n data: {\n record: ResourceIdentifierObject<T>;\n options: FindRecordBuilderOptions;\n };\n [RequestSignature]?: RT;\n};\n\ntype FindRecordBuilderOptions = Omit<FindRecordOptions, 'preload'>;\n\n/**\n This function builds a request config to find the record for a given identifier or type and id combination.\n When passed to `store.request`, this config will result in the same behavior as a `store.findRecord` request.\n Additionally, it takes the same options as `store.findRecord`, with the exception of `preload` (which is unsupported).\n\n **Example 1**\n\n ```ts\n import { findRecord } from '@warp-drive/legacy/compat/builders';\n const { content: post } = await store.request<Post>(findRecord<Post>('post', '1'));\n ```\n\n **Example 2**\n\n `findRecord` can be called with a single identifier argument instead of the combination\n of `type` (modelName) and `id` as separate arguments. You may recognize this combo as\n the typical pairing from [JSON:API](https://jsonapi.org/format/#document-resource-object-identification)\n\n ```ts\n import { findRecord } from '@warp-drive/legacy/compat/builders';\n const { content: post } = await store.request<Post>(findRecord<Post>({ type: 'post', id }));\n ```\n\n All `@warp-drive/legacy/compat` builders exist to enable you to migrate your codebase to using the correct syntax for `store.request` while temporarily preserving legacy behaviors.\n This is useful for quickly upgrading an entire app to a unified syntax while a longer incremental migration is made to shift off of adapters and serializers.\n To that end, these builders are deprecated and will be removed in a future version of Warp Drive.\n\n @summary Deprecated legacy builder for a `store.request` config that behaves like `store.findRecord`, taking a\n type and id or a resource identifier.\n @deprecated\n @public\n @param resource - either a string representing the name of the resource or a ResourceIdentifier object containing both the type (a string) and the id (a string) for the record or an lid (a string) of an existing record\n @param id - optional object with options for the request only if the first param is a ResourceIdentifier, else the string id of the record to be retrieved\n @param options - if the first param is a string this will be the optional options for the request. See examples for available options.\n @return request config\n*/\nexport function findRecordBuilder<T extends TypedRecordInstance>(\n type: TypeFromInstance<T>,\n id: string,\n options?: FindRecordBuilderOptions\n): FindRecordRequestInput<TypeFromInstance<T>, T>;\nexport function findRecordBuilder(type: string, id: string, options?: FindRecordBuilderOptions): FindRecordRequestInput;\nexport function findRecordBuilder<T extends TypedRecordInstance>(\n resource: ResourceIdentifierObject<TypeFromInstance<T>>,\n options?: FindRecordBuilderOptions\n): FindRecordRequestInput<TypeFromInstance<T>, T>;\nexport function findRecordBuilder(\n resource: ResourceIdentifierObject,\n options?: FindRecordBuilderOptions\n): FindRecordRequestInput;\nexport function findRecordBuilder(\n resource: string | ResourceIdentifierObject,\n idOrOptions?: string | FindRecordBuilderOptions,\n options?: FindRecordBuilderOptions\n): FindRecordRequestInput {\n assert(\n `You need to pass a modelName or resource identifier as the first argument to the findRecord builder`,\n resource\n );\n if (isMaybeIdentifier(resource)) {\n options = idOrOptions as BaseFinderOptions | undefined;\n } else {\n assert(\n `You need to pass a modelName or resource identifier as the first argument to the findRecord builder (passed ${resource})`,\n typeof resource === 'string'\n );\n const type = normalizeModelName(resource);\n const normalizedId = ensureStringId(idOrOptions as string | number);\n resource = constructResource(type, normalizedId);\n }\n\n options = options || {};\n\n assert('findRecord builder does not support options.preload', !(options as FindRecordOptions).preload);\n\n return {\n op: 'findRecord' as const,\n data: {\n record: resource,\n options,\n },\n cacheOptions: { [SkipCache]: true },\n };\n}\n","import type { StoreRequestInput } from '@warp-drive/core';\nimport { assert } from '@warp-drive/core/build-config/macros';\nimport type { LegacyResourceQuery, QueryOptions } from '@warp-drive/core/types';\nimport type { TypedRecordInstance, TypeFromInstance } from '@warp-drive/core/types/record';\nimport { SkipCache } from '@warp-drive/core/types/request';\nimport type { RequestSignature } from '@warp-drive/core/types/symbols';\n\nimport { normalizeModelName } from './utils.ts';\n\ntype QueryRequestInput<T extends string = string, RT = unknown[]> = StoreRequestInput & {\n op: 'query';\n data: {\n type: T;\n query: LegacyResourceQuery;\n options: QueryBuilderOptions;\n };\n [RequestSignature]?: RT;\n};\n\ntype QueryBuilderOptions = QueryOptions;\n\n/**\n This function builds a request config for a given type and query object.\n When passed to `store.request`, this config will result in the same behavior as a `store.query` request.\n Additionally, it takes the same options as `store.query`.\n\n All `@warp-drive/legacy/compat` builders exist to enable you to migrate your codebase to using the correct syntax for `store.request` while temporarily preserving legacy behaviors.\n This is useful for quickly upgrading an entire app to a unified syntax while a longer incremental migration is made to shift off of adapters and serializers.\n To that end, these builders are deprecated and will be removed in a future version of WarpDrive.\n\n @summary Deprecated legacy builder for a `store.request` config that behaves like `store.query`, returning the\n records matching a query object.\n @deprecated\n @public\n @param type the name of the resource\n @param query a query to be used by the adapter\n @param options optional, may include `adapterOptions` hash which will be passed to adapter.query\n @return request config\n*/\nexport function queryBuilder<T extends TypedRecordInstance>(\n type: TypeFromInstance<T>,\n query: LegacyResourceQuery,\n options?: QueryBuilderOptions\n): QueryRequestInput<TypeFromInstance<T>, T[]>;\nexport function queryBuilder(\n type: string,\n query: LegacyResourceQuery,\n options?: QueryBuilderOptions\n): QueryRequestInput;\nexport function queryBuilder(\n type: string,\n query: LegacyResourceQuery,\n options: QueryBuilderOptions = {}\n): QueryRequestInput {\n assert(`You need to pass a model name to the query builder`, type);\n assert(`You need to pass a query hash to the query builder`, query);\n assert(\n `Model name passed to the query builder must be a dasherized string instead of ${type}`,\n typeof type === 'string'\n );\n\n return {\n op: 'query' as const,\n data: {\n type: normalizeModelName(type),\n query,\n options: options,\n },\n cacheOptions: { [SkipCache]: true },\n };\n}\n\ntype QueryRecordRequestInput<T extends string = string, RT = unknown> = StoreRequestInput & {\n op: 'queryRecord';\n data: {\n type: T;\n query: LegacyResourceQuery;\n options: QueryBuilderOptions;\n };\n [RequestSignature]?: RT;\n};\n\n/**\n This function builds a request config for a given type and query object.\n When passed to `store.request`, this config will result in the same behavior as a `store.queryRecord` request.\n Additionally, it takes the same options as `store.queryRecord`.\n\n All `@warp-drive/legacy/compat` builders exist to enable you to migrate your codebase to using the correct syntax for `store.request` while temporarily preserving legacy behaviors.\n This is useful for quickly upgrading an entire app to a unified syntax while a longer incremental migration is made to shift off of adapters and serializers.\n To that end, these builders are deprecated and will be removed in a future version of WarpDrive.\n\n @summary Deprecated legacy builder for a `store.request` config that behaves like `store.queryRecord`, returning\n a single record or `null` for a query object.\n @deprecated\n @public\n @param type the name of the resource\n @param query a query to be used by the adapter\n @param options optional, may include `adapterOptions` hash which will be passed to adapter.query\n @return request config\n*/\nexport function queryRecordBuilder<T extends TypedRecordInstance>(\n type: TypeFromInstance<T>,\n query: LegacyResourceQuery,\n options?: QueryBuilderOptions\n): QueryRecordRequestInput<TypeFromInstance<T>, T | null>;\nexport function queryRecordBuilder(\n type: string,\n query: LegacyResourceQuery,\n options?: QueryBuilderOptions\n): QueryRecordRequestInput;\nexport function queryRecordBuilder(\n type: string,\n query: LegacyResourceQuery,\n options?: QueryBuilderOptions\n): QueryRecordRequestInput {\n assert(`You need to pass a model name to the queryRecord builder`, type);\n assert(`You need to pass a query hash to the queryRecord builder`, query);\n assert(\n `Model name passed to the queryRecord builder must be a dasherized string instead of ${type}`,\n typeof type === 'string'\n );\n\n return {\n op: 'queryRecord',\n data: {\n type: normalizeModelName(type),\n query,\n options: options || {},\n },\n cacheOptions: { [SkipCache]: true },\n };\n}\n","import { recordIdentifierFor, storeFor, type StoreRequestInput } from '@warp-drive/core';\nimport { assert } from '@warp-drive/core/build-config/macros';\nimport { assertPrivateStore, type InstanceCache } from '@warp-drive/core/store/-private';\nimport type { ResourceKey } from '@warp-drive/core/types';\nimport type { Cache } from '@warp-drive/core/types/cache';\nimport type { TypedRecordInstance, TypeFromInstance } from '@warp-drive/core/types/record';\nimport { SkipCache } from '@warp-drive/core/types/request';\nimport type { RequestSignature } from '@warp-drive/core/types/symbols';\n\ntype SaveRecordRequestInput<T extends string = string, RT = unknown> = StoreRequestInput & {\n op: 'createRecord' | 'deleteRecord' | 'updateRecord';\n data: {\n record: ResourceKey<T>;\n options: SaveRecordBuilderOptions;\n };\n records: [ResourceKey<T>];\n [RequestSignature]?: RT;\n};\n\ntype SaveRecordBuilderOptions = Record<string, unknown>;\n\nfunction _resourceIsFullDeleted(identifier: ResourceKey, cache: Cache): boolean {\n return cache.isDeletionCommitted(identifier) || (cache.isNew(identifier) && cache.isDeleted(identifier));\n}\n\nfunction resourceIsFullyDeleted(instanceCache: InstanceCache, identifier: ResourceKey): boolean {\n const cache = instanceCache.cache;\n return !cache || _resourceIsFullDeleted(identifier, cache);\n}\n\n/**\n This function builds a request config for saving the given record (e.g. creating, updating, or deleting the record).\n When passed to `store.request`, this config will result in the same behavior as a legacy `store.saveRecord` request.\n Additionally, it takes the same options as `store.saveRecord`.\n\n All `@ember-data/legacy-compat` builders exist to enable you to migrate your codebase to using the correct syntax for `store.request` while temporarily preserving legacy behaviors.\n This is useful for quickly upgrading an entire app to a unified syntax while a longer incremental migration is made to shift off of adapters and serializers.\n To that end, these builders are deprecated and will be removed in a future version of Ember Data.\n\n @summary Deprecated legacy builder for a `store.request` config that creates, updates, or deletes a record\n through adapters, like the legacy `store.saveRecord`.\n @deprecated\n @public\n @param {Object} record a record to save\n @param {SaveRecordBuilderOptions} options optional, may include `adapterOptions` hash which will be passed to adapter.saveRecord\n @return {SaveRecordRequestInput} request config\n*/\nexport function saveRecordBuilder<T extends TypedRecordInstance>(\n record: T,\n options: Record<string, unknown> = {}\n): SaveRecordRequestInput<TypeFromInstance<T>, T> {\n const store = storeFor(record, true);\n assertPrivateStore(store);\n assert(`Unable to initiate save for a record in a disconnected state`, store);\n const identifier = recordIdentifierFor<T>(record);\n\n if (!identifier) {\n // this commonly means we're disconnected\n // but just in case we throw here to prevent bad things.\n throw new Error(`Record Is Disconnected`);\n }\n assert(\n `Cannot initiate a save request for an unloaded record: ${identifier.lid}`,\n store._instanceCache.recordIsLoaded(identifier)\n );\n\n if (resourceIsFullyDeleted(store._instanceCache, identifier)) {\n throw new Error('cannot build saveRecord request for deleted record');\n }\n\n if (!options) {\n options = {};\n }\n let operation: 'createRecord' | 'deleteRecord' | 'updateRecord' = 'updateRecord';\n\n const cache = store.cache;\n if (cache.isNew(identifier)) {\n operation = 'createRecord';\n } else if (cache.isDeleted(identifier)) {\n operation = 'deleteRecord';\n }\n\n return {\n op: operation,\n data: {\n options,\n record: identifier,\n },\n records: [identifier],\n cacheOptions: { [SkipCache]: true },\n };\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { a as WithArrayLike, i as EmberObjectExtension, n as EmberArrayLikeExtension, o as WithEmberObject, r as EmberObjectArrayExtension, t as ArrayType } from "../extensions-DumNm4dA.js";
1
+ import { a as WithArrayLike, i as EmberObjectExtension, n as EmberArrayLikeExtension, o as WithEmberObject, r as EmberObjectArrayExtension, t as ArrayType } from "../extensions-DcEz1lKv.js";
2
2
  export { ArrayType, EmberArrayLikeExtension, EmberObjectArrayExtension, EmberObjectExtension, WithArrayLike, WithEmberObject };
@@ -3,7 +3,12 @@ import { get, getProperties, notifyPropertyChange, set, setProperties } from "@e
3
3
  import { addObserver, removeObserver } from "@ember/object/observers";
4
4
  import { compare } from "@ember/utils";
5
5
 
6
- //#region src/compat/extensions.ts
6
+ // src/compat/extensions.ts
7
+ /**
8
+ * @module
9
+ * @summary Legacy schema extensions that give reactive objects and arrays the classic `EmberObject` and Ember array
10
+ * APIs, such as `get`, `set` and `mapBy`, plus matching types.
11
+ */
7
12
  const EmberObjectFeatures = {};
8
13
  [
9
14
  "addObserver",
@@ -56,6 +61,9 @@ const EmberObjectFeatures = {};
56
61
  * `getProperties`, `setProperties`, `incrementProperty`, `decrementProperty`,
57
62
  * `toggleProperty`, `notifyPropertyChange`, `addObserver`, `removeObserver`)
58
63
  * to reactive array resources.
64
+ *
65
+ * @summary Legacy schema extension that gives reactive arrays the classic `EmberObject` API such as `get`, `set`,
66
+ * and observers, to ease migration from Ember objects.
59
67
  */
60
68
  const EmberObjectArrayExtension = {
61
69
  kind: "array",
@@ -67,6 +75,9 @@ const EmberObjectArrayExtension = {
67
75
  * `getProperties`, `setProperties`, `incrementProperty`, `decrementProperty`,
68
76
  * `toggleProperty`, `notifyPropertyChange`, `addObserver`, `removeObserver`)
69
77
  * to reactive object resources.
78
+ *
79
+ * @summary Legacy schema extension that gives reactive objects the classic `EmberObject` API such as `get`, `set`,
80
+ * and observers, to ease migration from Ember objects.
70
81
  */
71
82
  const EmberObjectExtension = {
72
83
  kind: "object",
@@ -259,6 +270,9 @@ const EmberArrayLikeFeatures = {
259
270
  * A schema extension that adds Ember's classic `MutableArray`/`Enumerable`
260
271
  * style methods (`pushObject`, `removeObject`, `mapBy`, `filterBy`,
261
272
  * `sortBy`, `firstObject`, `lastObject`, etc.) to reactive array resources.
273
+ *
274
+ * @summary Legacy schema extension that gives reactive arrays Ember array methods such as `pushObject`, `mapBy`,
275
+ * `filterBy`, and `firstObject`.
262
276
  */
263
277
  const EmberArrayLikeExtension = {
264
278
  kind: "array",
@@ -267,15 +281,22 @@ const EmberArrayLikeExtension = {
267
281
  };
268
282
  /**
269
283
  * Extracts the element type of an array type, or `never` if `T` is not an array.
284
+ *
285
+ * @summary Type utility resolving to the element type of an array type, or `never` for non-arrays.
270
286
  */
271
287
  /**
272
288
  * Adds the classic `EmberObject` API (as registered by {@link EmberObjectExtension}/
273
289
  * {@link EmberObjectArrayExtension}) to the type of a reactive resource.
290
+ *
291
+ * @summary Legacy type that adds the classic `EmberObject` methods to a reactive resource type using
292
+ * `EmberObjectExtension` or `EmberObjectArrayExtension`.
274
293
  */
275
294
  /**
276
295
  * Adds Ember's classic array-like API (as registered by {@link EmberArrayLikeExtension})
277
296
  * to the type of a reactive array resource.
297
+ *
298
+ * @summary Legacy type that adds Ember array methods such as `mapBy` and `firstObject` to a reactive array type
299
+ * using `EmberArrayLikeExtension`.
278
300
  */
279
- //#endregion
280
301
  export { EmberArrayLikeExtension, EmberObjectArrayExtension, EmberObjectExtension };
281
302
  //# sourceMappingURL=extensions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"extensions.js","names":["get","getProperties","notifyPropertyChange","set","setProperties","addObserver","removeObserver","compare","macroCondition","getGlobalConfig","EmberObjectFeatures","EmberObjectMethods","forEach","method","delegatedMethod","args","Error","keyName","decrement","WarpDrive","env","DEBUG","test","isNaN","parseFloat","isFinite","increment","String","key","EmberObjectArrayExtension","kind","name","features","EmberObjectExtension","EmberArrayLikeFeatures","addObject","obj","index","indexOf","push","addObjects","objs","popObject","pop","pushObject","pushObjects","shiftObject","shift","unshiftObject","unshift","unshiftObjects","objectAt","arrIndex","Math","sign","length","objectsAt","indices","map","removeAt","splice","insertAt","removeObject","removeObjects","toArray","slice","replace","idx","amt","objects","clear","setObjects","Array","isArray","reverseObjects","reverse","compact","filter","v","undefined","any","callback","target","some","isAny","prop","value","hasValue","arguments","isEvery","every","getEach","mapBy","findBy","find","val","Boolean","filterBy","record","sortBy","sortKeys","sort","a","b","i","propA","propB","compareValue","invoke","addArrayObserver","removeArrayObserver","arrayContentWillChange","arrayContentDidChange","reject","apply","rejectBy","setEach","item","uniq","from","Set","uniqBy","seen","result","has","add","without","newArr","firstObject","at","lastObject","EmberArrayLikeExtension"],"sources":["../../src/compat/extensions.ts"],"sourcesContent":["import {\n type default as EmberObject,\n get,\n getProperties,\n notifyPropertyChange,\n set,\n setProperties,\n} from '@ember/object';\nimport { addObserver, removeObserver } from '@ember/object/observers';\nimport { compare } from '@ember/utils';\n\nimport { assert } from '@warp-drive/core/build-config/macros';\nimport type { CAUTION_MEGA_DANGER_ZONE_Extension } from '@warp-drive/core/reactive';\n\nconst EmberObjectFeatures = {};\nconst EmberObjectMethods = [\n 'addObserver',\n 'cacheFor',\n 'decrementProperty',\n 'get',\n 'getProperties',\n 'incrementProperty',\n 'notifyPropertyChange',\n 'removeObserver',\n 'set',\n 'setProperties',\n 'toggleProperty',\n] as const;\nEmberObjectMethods.forEach((method) => {\n EmberObjectFeatures[method] = function delegatedMethod(...args: unknown[]): unknown {\n switch (method) {\n case 'addObserver':\n return (addObserver as (...args: unknown[]) => unknown)(this, ...args);\n case 'cacheFor':\n throw new Error('cacheFor has been removed and will not be replaced');\n case 'decrementProperty': {\n const keyName = args[0] as string;\n const decrement = (args[1] as number) ?? 1;\n assert(\n 'Must pass a numeric value to decrementProperty',\n (typeof decrement === 'number' || !isNaN(parseFloat(decrement))) && isFinite(decrement)\n );\n return set(this, keyName, ((get(this, keyName) as number) || 0) - decrement);\n }\n case 'get':\n // the cast is required: without it, TS resolves `get` to an overload whose\n // parameter list isn't a rest/tuple, and the spread below fails to typecheck\n // oxlint-disable-next-line typescript/no-unnecessary-type-assertion\n return (get as (...args: unknown[]) => unknown)(this, ...args);\n case 'getProperties':\n return (getProperties as (...args: unknown[]) => unknown)(this, ...args);\n case 'incrementProperty': {\n const keyName = args[0] as string;\n const increment = (args[1] as number) ?? 1;\n assert(\n 'Must pass a numeric value to incrementProperty',\n !isNaN(parseFloat(String(increment))) && isFinite(increment)\n );\n return set(this, keyName, (parseFloat(get(this, keyName) as string) || 0) + increment);\n }\n case 'notifyPropertyChange':\n return (notifyPropertyChange as (...args: unknown[]) => unknown)(this, ...args);\n case 'removeObserver':\n return (removeObserver as (...args: unknown[]) => unknown)(this, ...args);\n case 'set':\n return (set as (...args: unknown[]) => unknown)(this, ...args);\n case 'setProperties':\n return (setProperties as (...args: unknown[]) => unknown)(this, ...args);\n case 'toggleProperty': {\n const key = args[0] as string;\n return set(this, key, !get(this, key));\n }\n }\n };\n});\n/**\n * A schema extension that adds the classic `EmberObject` API (`get`, `set`,\n * `getProperties`, `setProperties`, `incrementProperty`, `decrementProperty`,\n * `toggleProperty`, `notifyPropertyChange`, `addObserver`, `removeObserver`)\n * to reactive array resources.\n */\nexport const EmberObjectArrayExtension: CAUTION_MEGA_DANGER_ZONE_Extension = {\n kind: 'array',\n name: 'ember-object' as const,\n features: EmberObjectFeatures,\n};\n/**\n * A schema extension that adds the classic `EmberObject` API (`get`, `set`,\n * `getProperties`, `setProperties`, `incrementProperty`, `decrementProperty`,\n * `toggleProperty`, `notifyPropertyChange`, `addObserver`, `removeObserver`)\n * to reactive object resources.\n */\nexport const EmberObjectExtension: CAUTION_MEGA_DANGER_ZONE_Extension = {\n kind: 'object',\n name: 'ember-object' as const,\n features: EmberObjectFeatures,\n};\n\nconst EmberArrayLikeFeatures = {\n addObject<T>(this: T[], obj: T): T[] {\n const index = this.indexOf(obj);\n if (index === -1) {\n this.push(obj);\n }\n return this;\n },\n\n addObjects<T>(this: T[], objs: T[]): T[] {\n objs.forEach((obj: T) => {\n const index = this.indexOf(obj);\n if (index === -1) {\n this.push(obj);\n }\n });\n return this;\n },\n\n popObject<T>(this: T[]): T | undefined {\n return this.pop();\n },\n\n pushObject<T>(this: T[], obj: T): T {\n this.push(obj);\n return obj;\n },\n\n pushObjects<T>(this: T[], objs: T[]): T[] {\n this.push(...objs);\n return this;\n },\n\n shiftObject<T>(this: T[]): NonNullable<T> {\n return this.shift()!;\n },\n\n unshiftObject<T>(this: T[], obj: T): T {\n this.unshift(obj);\n return obj;\n },\n\n unshiftObjects<T>(this: T[], objs: T[]): T[] {\n this.unshift(...objs);\n return this;\n },\n\n objectAt<T>(this: T[], index: number): T {\n //For negative index values go back from the end of the array\n const arrIndex = Math.sign(index) === -1 ? this.length + index : index;\n\n return this[arrIndex];\n },\n\n objectsAt<T>(this: T[], indices: number[]): T[] {\n // @ts-expect-error adding MutableArray method\n // oxlint-disable-next-line typescript/no-unsafe-return, typescript/no-unsafe-call\n return indices.map((index) => this.objectAt(index)!);\n },\n\n removeAt<T>(this: T[], index: number): T[] {\n this.splice(index, 1);\n return this;\n },\n\n insertAt<T>(this: T[], index: number, obj: T): T[] {\n this.splice(index, 0, obj);\n return this;\n },\n\n removeObject<T>(this: T[], obj: T): T[] {\n const index = this.indexOf(obj);\n if (index !== -1) {\n this.splice(index, 1);\n }\n return this;\n },\n\n removeObjects<T>(this: T[], objs: T[]): T[] {\n objs.forEach((obj) => {\n const index = this.indexOf(obj);\n if (index !== -1) {\n this.splice(index, 1);\n }\n });\n return this;\n },\n\n toArray<T>(this: T[]): T[] {\n return this.slice();\n },\n\n replace<T>(this: T[], idx: number, amt: number, objects?: T[]): void {\n if (objects) {\n this.splice(idx, amt, ...objects);\n } else {\n this.splice(idx, amt);\n }\n },\n\n clear<T>(this: T[]): T[] {\n this.splice(0, this.length);\n return this;\n },\n\n setObjects<T>(this: T[], objects: T[]): T[] {\n assert(`setObjects expects to receive an array as its argument`, Array.isArray(objects));\n this.splice(0, this.length);\n this.push(...objects);\n return this;\n },\n\n reverseObjects<T>(this: T[]): T[] {\n this.reverse();\n return this;\n },\n\n compact<T>(this: T[]): (T & {})[] {\n return this.filter((v) => v !== null && v !== undefined);\n },\n\n any<T>(this: T[], callback: Parameters<Array<T>['some']>[0], target?: unknown): boolean {\n return this.some(callback, target);\n },\n\n isAny<T>(this: T[], prop: string, value: unknown): boolean {\n const hasValue = arguments.length === 2;\n return (this as unknown as Array<Record<string, unknown>>).some((v) =>\n hasValue ? v[prop] === value : v[prop] === true\n );\n },\n\n isEvery<T>(this: T[], prop: string, value: unknown): boolean {\n const hasValue = arguments.length === 2;\n return (this as unknown as Array<Record<string, unknown>>).every((v) =>\n hasValue ? v[prop] === value : v[prop] === true\n );\n },\n\n getEach<T>(this: T[], key: string): unknown[] {\n return this.map((value) => get(value, key));\n },\n\n mapBy<T>(this: T[], key: string): unknown[] {\n return this.map((value) => get(value, key));\n },\n\n findBy<T>(this: T[], key: string, value?: unknown): T | undefined {\n if (arguments.length === 2) {\n return this.find((val) => {\n return get(val, key) === value;\n });\n } else {\n return this.find((val) => Boolean(get(val, key)));\n }\n },\n\n filterBy<T>(this: T[], key: string, value?: unknown): T[] {\n if (arguments.length === 2) {\n return this.filter((record) => {\n return get(record, key) === value;\n });\n }\n\n return this.filter((record) => {\n return Boolean(get(record, key));\n });\n },\n\n sortBy<T>(this: T[], ...sortKeys: string[]): T[] {\n return this.slice().sort((a, b) => {\n for (let i = 0; i < sortKeys.length; i++) {\n const key = sortKeys[i];\n\n const propA = get(a, key);\n\n const propB = get(b, key);\n // return 1 or -1 else continue to the next sortKey\n const compareValue = compare(propA, propB);\n\n if (compareValue) {\n return compareValue;\n }\n }\n return 0;\n });\n },\n\n invoke<T>(this: T[], key: string, ...args: unknown[]): unknown[] {\n return (this as unknown as Array<Record<string, unknown>>).map((value) =>\n (value[key] as (...args: unknown[]) => unknown)(...args)\n );\n },\n\n addArrayObserver<T>(this: T[]): void {},\n\n removeArrayObserver<T>(this: T[]): void {},\n\n arrayContentWillChange<T>(this: T[]): void {},\n\n arrayContentDidChange<T>(this: T[]): void {},\n\n reject<T>(this: T[], callback: Parameters<Array<T>['filter']>[0], target?: unknown): T[] {\n assert('`reject` expects a function as first argument.', typeof callback === 'function');\n\n return this.filter((...args) => {\n return !callback.apply(target, args);\n });\n },\n\n rejectBy<T>(this: T[], key: string, value?: unknown): T[] {\n if (arguments.length === 2) {\n return this.filter((record) => {\n return get(record, key) !== value;\n });\n }\n\n return this.filter((record) => {\n return !get(record, key);\n });\n },\n\n setEach<T>(this: T[], key: string, value: unknown): void {\n (this as unknown as Array<Record<string, unknown>>).forEach((item) => set(item, key, value));\n },\n\n uniq<T>(this: T[]): T[] {\n return Array.from(new Set(this));\n },\n\n uniqBy<T>(this: T[], key: string): T[] {\n const seen = new Set();\n const result: T[] = [];\n this.forEach((item) => {\n const value = get(item, key);\n if (seen.has(value)) {\n return;\n }\n seen.add(value);\n result.push(item);\n });\n return result;\n },\n\n without<T>(this: T[], value: T): T[] {\n const newArr = this.slice();\n const index = this.indexOf(value);\n if (index !== -1) {\n newArr.splice(index, 1);\n }\n\n return newArr;\n },\n\n get firstObject(): unknown {\n return (this as unknown as unknown[]).at(0);\n },\n\n get lastObject(): unknown {\n return (this as unknown as unknown[]).at(-1);\n },\n};\n\n/**\n * A schema extension that adds Ember's classic `MutableArray`/`Enumerable`\n * style methods (`pushObject`, `removeObject`, `mapBy`, `filterBy`,\n * `sortBy`, `firstObject`, `lastObject`, etc.) to reactive array resources.\n */\nexport const EmberArrayLikeExtension: CAUTION_MEGA_DANGER_ZONE_Extension = {\n kind: 'array',\n name: 'ember-array-like' as const,\n features: EmberArrayLikeFeatures,\n};\n\n/**\n * Extracts the element type of an array type, or `never` if `T` is not an array.\n */\nexport type ArrayType<T> = T extends ReadonlyArray<infer U> ? U : never;\n/**\n * Adds the classic `EmberObject` API (as registered by {@link EmberObjectExtension}/\n * {@link EmberObjectArrayExtension}) to the type of a reactive resource.\n */\nexport type WithEmberObject<T> = T & Pick<T & EmberObject, ArrayType<typeof EmberObjectMethods>>;\n\n/**\n * Adds Ember's classic array-like API (as registered by {@link EmberArrayLikeExtension})\n * to the type of a reactive array resource.\n */\nexport type WithArrayLike<T> =\n T extends Array<infer U>\n ? U &\n Omit<typeof EmberArrayLikeFeatures, 'firstObject' | 'lastObject'> & {\n /**\n * the first member of the array, or `undefined` if the array is empty\n */\n firstObject: T | undefined;\n /**\n * the last member of the array, or `undefined` if the array is empty\n */\n lastObject: T | undefined;\n }\n : T[] &\n Omit<typeof EmberArrayLikeFeatures, 'firstObject' | 'lastObject'> & {\n /**\n * the first member of the array, or `undefined` if the array is empty\n */\n firstObject: T | undefined;\n /**\n * the last member of the array, or `undefined` if the array is empty\n */\n lastObject: T | undefined;\n };\n"],"mappings":"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"}
1
+ {"version":3,"file":"extensions.js","names":["get","getProperties","notifyPropertyChange","set","setProperties","addObserver","removeObserver","compare","macroCondition","getGlobalConfig","EmberObjectFeatures","EmberObjectMethods","forEach","method","delegatedMethod","args","Error","keyName","decrement","WarpDrive","env","DEBUG","test","isNaN","parseFloat","isFinite","increment","String","key","EmberObjectArrayExtension","kind","name","features","EmberObjectExtension","EmberArrayLikeFeatures","addObject","obj","index","indexOf","push","addObjects","objs","popObject","pop","pushObject","pushObjects","shiftObject","shift","unshiftObject","unshift","unshiftObjects","objectAt","arrIndex","Math","sign","length","objectsAt","indices","map","removeAt","splice","insertAt","removeObject","removeObjects","toArray","slice","replace","idx","amt","objects","clear","setObjects","Array","isArray","reverseObjects","reverse","compact","filter","v","undefined","any","callback","target","some","isAny","prop","value","hasValue","arguments","isEvery","every","getEach","mapBy","findBy","find","val","Boolean","filterBy","record","sortBy","sortKeys","sort","a","b","i","propA","propB","compareValue","invoke","addArrayObserver","removeArrayObserver","arrayContentWillChange","arrayContentDidChange","reject","apply","rejectBy","setEach","item","uniq","from","Set","uniqBy","seen","result","has","add","without","newArr","firstObject","at","lastObject","EmberArrayLikeExtension"],"sources":["../../src/compat/extensions.ts"],"sourcesContent":["/**\n * @module\n * @summary Legacy schema extensions that give reactive objects and arrays the classic `EmberObject` and Ember array\n * APIs, such as `get`, `set` and `mapBy`, plus matching types.\n */\n\nimport {\n type default as EmberObject,\n get,\n getProperties,\n notifyPropertyChange,\n set,\n setProperties,\n} from '@ember/object';\nimport { addObserver, removeObserver } from '@ember/object/observers';\nimport { compare } from '@ember/utils';\n\nimport { assert } from '@warp-drive/core/build-config/macros';\nimport type { CAUTION_MEGA_DANGER_ZONE_Extension } from '@warp-drive/core/reactive';\n\nconst EmberObjectFeatures = {};\nconst EmberObjectMethods = [\n 'addObserver',\n 'cacheFor',\n 'decrementProperty',\n 'get',\n 'getProperties',\n 'incrementProperty',\n 'notifyPropertyChange',\n 'removeObserver',\n 'set',\n 'setProperties',\n 'toggleProperty',\n] as const;\nEmberObjectMethods.forEach((method) => {\n EmberObjectFeatures[method] = function delegatedMethod(...args: unknown[]): unknown {\n switch (method) {\n case 'addObserver':\n return (addObserver as (...args: unknown[]) => unknown)(this, ...args);\n case 'cacheFor':\n throw new Error('cacheFor has been removed and will not be replaced');\n case 'decrementProperty': {\n const keyName = args[0] as string;\n const decrement = (args[1] as number) ?? 1;\n assert(\n 'Must pass a numeric value to decrementProperty',\n (typeof decrement === 'number' || !isNaN(parseFloat(decrement))) && isFinite(decrement)\n );\n return set(this, keyName, ((get(this, keyName) as number) || 0) - decrement);\n }\n case 'get':\n // the cast is required: without it, TS resolves `get` to an overload whose\n // parameter list isn't a rest/tuple, and the spread below fails to typecheck\n // oxlint-disable-next-line typescript/no-unnecessary-type-assertion\n return (get as (...args: unknown[]) => unknown)(this, ...args);\n case 'getProperties':\n return (getProperties as (...args: unknown[]) => unknown)(this, ...args);\n case 'incrementProperty': {\n const keyName = args[0] as string;\n const increment = (args[1] as number) ?? 1;\n assert(\n 'Must pass a numeric value to incrementProperty',\n !isNaN(parseFloat(String(increment))) && isFinite(increment)\n );\n return set(this, keyName, (parseFloat(get(this, keyName) as string) || 0) + increment);\n }\n case 'notifyPropertyChange':\n return (notifyPropertyChange as (...args: unknown[]) => unknown)(this, ...args);\n case 'removeObserver':\n return (removeObserver as (...args: unknown[]) => unknown)(this, ...args);\n case 'set':\n return (set as (...args: unknown[]) => unknown)(this, ...args);\n case 'setProperties':\n return (setProperties as (...args: unknown[]) => unknown)(this, ...args);\n case 'toggleProperty': {\n const key = args[0] as string;\n return set(this, key, !get(this, key));\n }\n }\n };\n});\n/**\n * A schema extension that adds the classic `EmberObject` API (`get`, `set`,\n * `getProperties`, `setProperties`, `incrementProperty`, `decrementProperty`,\n * `toggleProperty`, `notifyPropertyChange`, `addObserver`, `removeObserver`)\n * to reactive array resources.\n *\n * @summary Legacy schema extension that gives reactive arrays the classic `EmberObject` API such as `get`, `set`,\n * and observers, to ease migration from Ember objects.\n */\nexport const EmberObjectArrayExtension: CAUTION_MEGA_DANGER_ZONE_Extension = {\n kind: 'array',\n name: 'ember-object' as const,\n features: EmberObjectFeatures,\n};\n/**\n * A schema extension that adds the classic `EmberObject` API (`get`, `set`,\n * `getProperties`, `setProperties`, `incrementProperty`, `decrementProperty`,\n * `toggleProperty`, `notifyPropertyChange`, `addObserver`, `removeObserver`)\n * to reactive object resources.\n *\n * @summary Legacy schema extension that gives reactive objects the classic `EmberObject` API such as `get`, `set`,\n * and observers, to ease migration from Ember objects.\n */\nexport const EmberObjectExtension: CAUTION_MEGA_DANGER_ZONE_Extension = {\n kind: 'object',\n name: 'ember-object' as const,\n features: EmberObjectFeatures,\n};\n\nconst EmberArrayLikeFeatures = {\n addObject<T>(this: T[], obj: T): T[] {\n const index = this.indexOf(obj);\n if (index === -1) {\n this.push(obj);\n }\n return this;\n },\n\n addObjects<T>(this: T[], objs: T[]): T[] {\n objs.forEach((obj: T) => {\n const index = this.indexOf(obj);\n if (index === -1) {\n this.push(obj);\n }\n });\n return this;\n },\n\n popObject<T>(this: T[]): T | undefined {\n return this.pop();\n },\n\n pushObject<T>(this: T[], obj: T): T {\n this.push(obj);\n return obj;\n },\n\n pushObjects<T>(this: T[], objs: T[]): T[] {\n this.push(...objs);\n return this;\n },\n\n shiftObject<T>(this: T[]): NonNullable<T> {\n return this.shift()!;\n },\n\n unshiftObject<T>(this: T[], obj: T): T {\n this.unshift(obj);\n return obj;\n },\n\n unshiftObjects<T>(this: T[], objs: T[]): T[] {\n this.unshift(...objs);\n return this;\n },\n\n objectAt<T>(this: T[], index: number): T {\n //For negative index values go back from the end of the array\n const arrIndex = Math.sign(index) === -1 ? this.length + index : index;\n\n return this[arrIndex];\n },\n\n objectsAt<T>(this: T[], indices: number[]): T[] {\n // @ts-expect-error adding MutableArray method\n // oxlint-disable-next-line typescript/no-unsafe-return, typescript/no-unsafe-call\n return indices.map((index) => this.objectAt(index)!);\n },\n\n removeAt<T>(this: T[], index: number): T[] {\n this.splice(index, 1);\n return this;\n },\n\n insertAt<T>(this: T[], index: number, obj: T): T[] {\n this.splice(index, 0, obj);\n return this;\n },\n\n removeObject<T>(this: T[], obj: T): T[] {\n const index = this.indexOf(obj);\n if (index !== -1) {\n this.splice(index, 1);\n }\n return this;\n },\n\n removeObjects<T>(this: T[], objs: T[]): T[] {\n objs.forEach((obj) => {\n const index = this.indexOf(obj);\n if (index !== -1) {\n this.splice(index, 1);\n }\n });\n return this;\n },\n\n toArray<T>(this: T[]): T[] {\n return this.slice();\n },\n\n replace<T>(this: T[], idx: number, amt: number, objects?: T[]): void {\n if (objects) {\n this.splice(idx, amt, ...objects);\n } else {\n this.splice(idx, amt);\n }\n },\n\n clear<T>(this: T[]): T[] {\n this.splice(0, this.length);\n return this;\n },\n\n setObjects<T>(this: T[], objects: T[]): T[] {\n assert(`setObjects expects to receive an array as its argument`, Array.isArray(objects));\n this.splice(0, this.length);\n this.push(...objects);\n return this;\n },\n\n reverseObjects<T>(this: T[]): T[] {\n this.reverse();\n return this;\n },\n\n compact<T>(this: T[]): (T & {})[] {\n return this.filter((v) => v !== null && v !== undefined);\n },\n\n any<T>(this: T[], callback: Parameters<Array<T>['some']>[0], target?: unknown): boolean {\n return this.some(callback, target);\n },\n\n isAny<T>(this: T[], prop: string, value: unknown): boolean {\n const hasValue = arguments.length === 2;\n return (this as unknown as Array<Record<string, unknown>>).some((v) =>\n hasValue ? v[prop] === value : v[prop] === true\n );\n },\n\n isEvery<T>(this: T[], prop: string, value: unknown): boolean {\n const hasValue = arguments.length === 2;\n return (this as unknown as Array<Record<string, unknown>>).every((v) =>\n hasValue ? v[prop] === value : v[prop] === true\n );\n },\n\n getEach<T>(this: T[], key: string): unknown[] {\n return this.map((value) => get(value, key));\n },\n\n mapBy<T>(this: T[], key: string): unknown[] {\n return this.map((value) => get(value, key));\n },\n\n findBy<T>(this: T[], key: string, value?: unknown): T | undefined {\n if (arguments.length === 2) {\n return this.find((val) => {\n return get(val, key) === value;\n });\n } else {\n return this.find((val) => Boolean(get(val, key)));\n }\n },\n\n filterBy<T>(this: T[], key: string, value?: unknown): T[] {\n if (arguments.length === 2) {\n return this.filter((record) => {\n return get(record, key) === value;\n });\n }\n\n return this.filter((record) => {\n return Boolean(get(record, key));\n });\n },\n\n sortBy<T>(this: T[], ...sortKeys: string[]): T[] {\n return this.slice().sort((a, b) => {\n for (let i = 0; i < sortKeys.length; i++) {\n const key = sortKeys[i];\n\n const propA = get(a, key);\n\n const propB = get(b, key);\n // return 1 or -1 else continue to the next sortKey\n const compareValue = compare(propA, propB);\n\n if (compareValue) {\n return compareValue;\n }\n }\n return 0;\n });\n },\n\n invoke<T>(this: T[], key: string, ...args: unknown[]): unknown[] {\n return (this as unknown as Array<Record<string, unknown>>).map((value) =>\n (value[key] as (...args: unknown[]) => unknown)(...args)\n );\n },\n\n addArrayObserver<T>(this: T[]): void {},\n\n removeArrayObserver<T>(this: T[]): void {},\n\n arrayContentWillChange<T>(this: T[]): void {},\n\n arrayContentDidChange<T>(this: T[]): void {},\n\n reject<T>(this: T[], callback: Parameters<Array<T>['filter']>[0], target?: unknown): T[] {\n assert('`reject` expects a function as first argument.', typeof callback === 'function');\n\n return this.filter((...args) => {\n return !callback.apply(target, args);\n });\n },\n\n rejectBy<T>(this: T[], key: string, value?: unknown): T[] {\n if (arguments.length === 2) {\n return this.filter((record) => {\n return get(record, key) !== value;\n });\n }\n\n return this.filter((record) => {\n return !get(record, key);\n });\n },\n\n setEach<T>(this: T[], key: string, value: unknown): void {\n (this as unknown as Array<Record<string, unknown>>).forEach((item) => set(item, key, value));\n },\n\n uniq<T>(this: T[]): T[] {\n return Array.from(new Set(this));\n },\n\n uniqBy<T>(this: T[], key: string): T[] {\n const seen = new Set();\n const result: T[] = [];\n this.forEach((item) => {\n const value = get(item, key);\n if (seen.has(value)) {\n return;\n }\n seen.add(value);\n result.push(item);\n });\n return result;\n },\n\n without<T>(this: T[], value: T): T[] {\n const newArr = this.slice();\n const index = this.indexOf(value);\n if (index !== -1) {\n newArr.splice(index, 1);\n }\n\n return newArr;\n },\n\n get firstObject(): unknown {\n return (this as unknown as unknown[]).at(0);\n },\n\n get lastObject(): unknown {\n return (this as unknown as unknown[]).at(-1);\n },\n};\n\n/**\n * A schema extension that adds Ember's classic `MutableArray`/`Enumerable`\n * style methods (`pushObject`, `removeObject`, `mapBy`, `filterBy`,\n * `sortBy`, `firstObject`, `lastObject`, etc.) to reactive array resources.\n *\n * @summary Legacy schema extension that gives reactive arrays Ember array methods such as `pushObject`, `mapBy`,\n * `filterBy`, and `firstObject`.\n */\nexport const EmberArrayLikeExtension: CAUTION_MEGA_DANGER_ZONE_Extension = {\n kind: 'array',\n name: 'ember-array-like' as const,\n features: EmberArrayLikeFeatures,\n};\n\n/**\n * Extracts the element type of an array type, or `never` if `T` is not an array.\n *\n * @summary Type utility resolving to the element type of an array type, or `never` for non-arrays.\n */\nexport type ArrayType<T> = T extends ReadonlyArray<infer U> ? U : never;\n/**\n * Adds the classic `EmberObject` API (as registered by {@link EmberObjectExtension}/\n * {@link EmberObjectArrayExtension}) to the type of a reactive resource.\n *\n * @summary Legacy type that adds the classic `EmberObject` methods to a reactive resource type using\n * `EmberObjectExtension` or `EmberObjectArrayExtension`.\n */\nexport type WithEmberObject<T> = T & Pick<T & EmberObject, ArrayType<typeof EmberObjectMethods>>;\n\n/**\n * Adds Ember's classic array-like API (as registered by {@link EmberArrayLikeExtension})\n * to the type of a reactive array resource.\n *\n * @summary Legacy type that adds Ember array methods such as `mapBy` and `firstObject` to a reactive array type\n * using `EmberArrayLikeExtension`.\n */\nexport type WithArrayLike<T> =\n T extends Array<infer U>\n ? U &\n Omit<typeof EmberArrayLikeFeatures, 'firstObject' | 'lastObject'> & {\n /**\n * the first member of the array, or `undefined` if the array is empty\n */\n firstObject: T | undefined;\n /**\n * the last member of the array, or `undefined` if the array is empty\n */\n lastObject: T | undefined;\n }\n : T[] &\n Omit<typeof EmberArrayLikeFeatures, 'firstObject' | 'lastObject'> & {\n /**\n * the first member of the array, or `undefined` if the array is empty\n */\n firstObject: T | undefined;\n /**\n * the last member of the array, or `undefined` if the array is empty\n */\n lastObject: T | undefined;\n };\n"],"mappings":"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"}