@warp-drive/legacy 5.9.0-beta.0 → 5.9.0-beta.2

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 (468) hide show
  1. package/README.md +6 -0
  2. package/dist/-private-DQ6Iap2t.js +193 -0
  3. package/dist/-private-DQ6Iap2t.js.map +1 -0
  4. package/dist/-private-DccRZQsm.js +904 -0
  5. package/dist/-private-DccRZQsm.js.map +1 -0
  6. package/dist/adapter/-private.d.ts +33 -0
  7. package/dist/adapter/-private.d.ts.map +1 -0
  8. package/dist/adapter/-private.js +3 -1
  9. package/dist/adapter/error.d.ts +2 -0
  10. package/dist/adapter/error.js +425 -311
  11. package/dist/adapter/error.js.map +1 -0
  12. package/{declarations → dist}/adapter/json-api.d.ts +31 -19
  13. package/dist/adapter/json-api.d.ts.map +1 -0
  14. package/dist/adapter/json-api.js +265 -131
  15. package/dist/adapter/json-api.js.map +1 -0
  16. package/dist/adapter/rest.d.ts +2 -0
  17. package/dist/adapter/rest.js +937 -1100
  18. package/dist/adapter/rest.js.map +1 -0
  19. package/dist/adapter-CARrK3-8.d.ts +784 -0
  20. package/dist/adapter-CARrK3-8.d.ts.map +1 -0
  21. package/dist/adapter-eYo2pIuM.js +1130 -0
  22. package/dist/adapter-eYo2pIuM.js.map +1 -0
  23. package/dist/adapter.d.ts +2 -0
  24. package/dist/adapter.js +1 -1251
  25. package/dist/compat/-private.d.ts +2 -0
  26. package/dist/compat/-private.js +3 -1
  27. package/dist/compat/builders.d.ts +169 -0
  28. package/dist/compat/builders.d.ts.map +1 -0
  29. package/dist/compat/builders.js +205 -246
  30. package/dist/compat/builders.js.map +1 -0
  31. package/dist/compat/extensions.d.ts +2 -0
  32. package/dist/compat/extensions.js +271 -233
  33. package/dist/compat/extensions.js.map +1 -0
  34. package/dist/compat/utils.d.ts +151 -0
  35. package/dist/compat/utils.d.ts.map +1 -0
  36. package/dist/compat/utils.js +189 -194
  37. package/dist/compat/utils.js.map +1 -0
  38. package/dist/compat-BbNNmTM-.d.ts +1386 -0
  39. package/dist/compat-BbNNmTM-.d.ts.map +1 -0
  40. package/dist/compat-DcHVxuuZ.js +734 -0
  41. package/dist/compat-DcHVxuuZ.js.map +1 -0
  42. package/dist/compat.d.ts +2 -0
  43. package/dist/compat.js +1 -1019
  44. package/dist/error-CzkyXr1Q.d.ts +435 -0
  45. package/dist/error-CzkyXr1Q.d.ts.map +1 -0
  46. package/dist/errors-BEEsrHbl.js +2134 -0
  47. package/dist/errors-BEEsrHbl.js.map +1 -0
  48. package/dist/extensions-DumNm4dA.d.ts +102 -0
  49. package/dist/extensions-DumNm4dA.d.ts.map +1 -0
  50. package/dist/index.d.ts +243 -0
  51. package/dist/index.d.ts.map +1 -0
  52. package/dist/index.js +271 -188
  53. package/dist/index.js.map +1 -0
  54. package/dist/json-BXNPTlcH.js +1106 -0
  55. package/dist/json-BXNPTlcH.js.map +1 -0
  56. package/dist/model/-private.d.ts +3 -0
  57. package/dist/model/-private.js +3 -1
  58. package/dist/model/migration-support.d.ts +335 -0
  59. package/dist/model/migration-support.d.ts.map +1 -0
  60. package/dist/model/migration-support.js +506 -564
  61. package/dist/model/migration-support.js.map +1 -0
  62. package/dist/model-62hn5_PD.d.ts +3107 -0
  63. package/dist/model-62hn5_PD.d.ts.map +1 -0
  64. package/dist/model-DcXZdNMu.js +683 -0
  65. package/dist/model-DcXZdNMu.js.map +1 -0
  66. package/dist/model-fragments-DSqu0ptR.js +334 -0
  67. package/dist/model-fragments-DSqu0ptR.js.map +1 -0
  68. package/dist/model-fragments.d.ts +294 -0
  69. package/dist/model-fragments.d.ts.map +1 -0
  70. package/dist/model-fragments.js +2 -75
  71. package/dist/model.d.ts +404 -0
  72. package/dist/model.d.ts.map +1 -0
  73. package/dist/model.js +3 -666
  74. package/{declarations/adapter/rest.d.ts → dist/rest-0NhtexIq.d.ts} +187 -103
  75. package/dist/rest-0NhtexIq.d.ts.map +1 -0
  76. package/dist/runtime--fcdnjmJ-DMTJ0Kb3.js +53 -0
  77. package/dist/runtime--fcdnjmJ-DMTJ0Kb3.js.map +1 -0
  78. package/dist/schema-provider-H4zNXtry.js +1929 -0
  79. package/dist/schema-provider-H4zNXtry.js.map +1 -0
  80. package/{declarations → dist}/serializer/json-api.d.ts +4 -1
  81. package/dist/serializer/json-api.d.ts.map +1 -0
  82. package/dist/serializer/json-api.js +527 -514
  83. package/dist/serializer/json-api.js.map +1 -0
  84. package/{declarations → dist}/serializer/json.d.ts +3 -0
  85. package/dist/serializer/json.d.ts.map +1 -0
  86. package/dist/serializer/json.js +3 -6
  87. package/{declarations/serializer/-private/embedded-records-mixin.d.ts → dist/serializer/rest.d.ts} +56 -1
  88. package/dist/serializer/rest.d.ts.map +1 -0
  89. package/dist/serializer/rest.js +958 -1200
  90. package/dist/serializer/rest.js.map +1 -0
  91. package/dist/serializer/transform.d.ts +313 -0
  92. package/dist/serializer/transform.d.ts.map +1 -0
  93. package/dist/serializer/transform.js +283 -260
  94. package/dist/serializer/transform.js.map +1 -0
  95. package/dist/serializer.d.ts +151 -0
  96. package/dist/serializer.d.ts.map +1 -0
  97. package/dist/serializer.js +205 -208
  98. package/dist/serializer.js.map +1 -0
  99. package/dist/store-C4qYzXei.js +473 -0
  100. package/dist/store-C4qYzXei.js.map +1 -0
  101. package/dist/store.d.ts +13 -0
  102. package/dist/store.d.ts.map +1 -0
  103. package/dist/store.js +1 -635
  104. package/dist/unpkg/dev/-private-CrEyBE-B.js +189 -0
  105. package/dist/unpkg/dev/-private-CrEyBE-B.js.map +1 -0
  106. package/dist/unpkg/dev/-private-vOhxVExH.js +896 -0
  107. package/dist/unpkg/dev/-private-vOhxVExH.js.map +1 -0
  108. package/dist/unpkg/dev/adapter/-private.js +3 -1
  109. package/dist/unpkg/dev/adapter/error.js +424 -310
  110. package/dist/unpkg/dev/adapter/error.js.map +1 -0
  111. package/dist/unpkg/dev/adapter/json-api.js +239 -245
  112. package/dist/unpkg/dev/adapter/json-api.js.map +1 -0
  113. package/dist/unpkg/dev/adapter/rest.js +935 -1098
  114. package/dist/unpkg/dev/adapter/rest.js.map +1 -0
  115. package/dist/unpkg/dev/adapter-oLwyr47q.js +1129 -0
  116. package/dist/unpkg/dev/adapter-oLwyr47q.js.map +1 -0
  117. package/dist/unpkg/dev/adapter.js +1 -1250
  118. package/dist/unpkg/dev/compat/-private.js +3 -1
  119. package/dist/unpkg/dev/compat/builders.js +204 -248
  120. package/dist/unpkg/dev/compat/builders.js.map +1 -0
  121. package/dist/unpkg/dev/compat/extensions.js +270 -232
  122. package/dist/unpkg/dev/compat/extensions.js.map +1 -0
  123. package/dist/unpkg/dev/compat/utils.js +188 -193
  124. package/dist/unpkg/dev/compat/utils.js.map +1 -0
  125. package/dist/unpkg/dev/compat-D48B8sXv.js +825 -0
  126. package/dist/unpkg/dev/compat-D48B8sXv.js.map +1 -0
  127. package/dist/unpkg/dev/compat.js +1 -1145
  128. package/dist/unpkg/dev/errors-8GnRWcxo.js +2127 -0
  129. package/dist/unpkg/dev/errors-8GnRWcxo.js.map +1 -0
  130. package/dist/unpkg/dev/index.js +270 -190
  131. package/dist/unpkg/dev/index.js.map +1 -0
  132. package/dist/unpkg/dev/json-DDJji3V3.js +1104 -0
  133. package/dist/unpkg/dev/json-DDJji3V3.js.map +1 -0
  134. package/dist/unpkg/dev/model/-private.js +3 -1
  135. package/dist/unpkg/dev/model/migration-support.js +483 -537
  136. package/dist/unpkg/dev/model/migration-support.js.map +1 -0
  137. package/dist/unpkg/dev/model-LK7ethC5.js +655 -0
  138. package/dist/unpkg/dev/model-LK7ethC5.js.map +1 -0
  139. package/dist/unpkg/dev/model-fragments-DSqu0ptR.js +334 -0
  140. package/dist/unpkg/dev/model-fragments-DSqu0ptR.js.map +1 -0
  141. package/dist/unpkg/dev/model-fragments.js +2 -75
  142. package/dist/unpkg/dev/model.js +3 -677
  143. package/dist/unpkg/dev/runtime--fcdnjmJ-DMTJ0Kb3.js +53 -0
  144. package/dist/unpkg/dev/runtime--fcdnjmJ-DMTJ0Kb3.js.map +1 -0
  145. package/dist/unpkg/dev/schema-provider-CRzoMoTO.js +1834 -0
  146. package/dist/unpkg/dev/schema-provider-CRzoMoTO.js.map +1 -0
  147. package/dist/unpkg/dev/serializer/json-api.js +514 -629
  148. package/dist/unpkg/dev/serializer/json-api.js.map +1 -0
  149. package/dist/unpkg/dev/serializer/json.js +3 -4
  150. package/dist/unpkg/dev/serializer/rest.js +954 -1197
  151. package/dist/unpkg/dev/serializer/rest.js.map +1 -0
  152. package/dist/unpkg/dev/serializer/transform.js +283 -260
  153. package/dist/unpkg/dev/serializer/transform.js.map +1 -0
  154. package/dist/unpkg/dev/serializer.js +205 -208
  155. package/dist/unpkg/dev/serializer.js.map +1 -0
  156. package/dist/unpkg/dev/store-D_V8-HQl.js +472 -0
  157. package/dist/unpkg/dev/store-D_V8-HQl.js.map +1 -0
  158. package/dist/unpkg/dev/store.js +1 -635
  159. package/dist/unpkg/dev/util-dSKEgQDp.js +12 -0
  160. package/dist/unpkg/dev/util-dSKEgQDp.js.map +1 -0
  161. package/dist/unpkg/dev/utils-DYC9utVJ.js +11 -0
  162. package/dist/unpkg/dev/utils-DYC9utVJ.js.map +1 -0
  163. package/dist/unpkg/dev-deprecated/-private-CrEyBE-B.js +189 -0
  164. package/dist/unpkg/dev-deprecated/-private-CrEyBE-B.js.map +1 -0
  165. package/dist/unpkg/dev-deprecated/-private-vOhxVExH.js +896 -0
  166. package/dist/unpkg/dev-deprecated/-private-vOhxVExH.js.map +1 -0
  167. package/dist/unpkg/dev-deprecated/adapter/-private.js +3 -1
  168. package/dist/unpkg/dev-deprecated/adapter/error.js +424 -310
  169. package/dist/unpkg/dev-deprecated/adapter/error.js.map +1 -0
  170. package/dist/unpkg/dev-deprecated/adapter/json-api.js +239 -245
  171. package/dist/unpkg/dev-deprecated/adapter/json-api.js.map +1 -0
  172. package/dist/unpkg/dev-deprecated/adapter/rest.js +935 -1098
  173. package/dist/unpkg/dev-deprecated/adapter/rest.js.map +1 -0
  174. package/dist/unpkg/dev-deprecated/adapter-oLwyr47q.js +1129 -0
  175. package/dist/unpkg/dev-deprecated/adapter-oLwyr47q.js.map +1 -0
  176. package/dist/unpkg/dev-deprecated/adapter.js +1 -1250
  177. package/dist/unpkg/dev-deprecated/compat/-private.js +3 -1
  178. package/dist/unpkg/dev-deprecated/compat/builders.js +204 -248
  179. package/dist/unpkg/dev-deprecated/compat/builders.js.map +1 -0
  180. package/dist/unpkg/dev-deprecated/compat/extensions.js +270 -232
  181. package/dist/unpkg/dev-deprecated/compat/extensions.js.map +1 -0
  182. package/dist/unpkg/dev-deprecated/compat/utils.js +188 -193
  183. package/dist/unpkg/dev-deprecated/compat/utils.js.map +1 -0
  184. package/dist/unpkg/dev-deprecated/compat-DGSurLh7.js +825 -0
  185. package/dist/unpkg/dev-deprecated/compat-DGSurLh7.js.map +1 -0
  186. package/dist/unpkg/dev-deprecated/compat.js +1 -1145
  187. package/dist/unpkg/dev-deprecated/errors-0ydn94s0.js +2128 -0
  188. package/dist/unpkg/dev-deprecated/errors-0ydn94s0.js.map +1 -0
  189. package/dist/unpkg/dev-deprecated/index.js +270 -189
  190. package/dist/unpkg/dev-deprecated/index.js.map +1 -0
  191. package/dist/unpkg/dev-deprecated/json-DDJji3V3.js +1104 -0
  192. package/dist/unpkg/dev-deprecated/json-DDJji3V3.js.map +1 -0
  193. package/dist/unpkg/dev-deprecated/model/-private.js +3 -1
  194. package/dist/unpkg/dev-deprecated/model/migration-support.js +494 -554
  195. package/dist/unpkg/dev-deprecated/model/migration-support.js.map +1 -0
  196. package/dist/unpkg/dev-deprecated/model-C1ts6Mod.js +660 -0
  197. package/dist/unpkg/dev-deprecated/model-C1ts6Mod.js.map +1 -0
  198. package/dist/unpkg/dev-deprecated/model-fragments-DSqu0ptR.js +334 -0
  199. package/dist/unpkg/dev-deprecated/model-fragments-DSqu0ptR.js.map +1 -0
  200. package/dist/unpkg/dev-deprecated/model-fragments.js +2 -75
  201. package/dist/unpkg/dev-deprecated/model.js +3 -681
  202. package/dist/unpkg/dev-deprecated/runtime--fcdnjmJ-DMTJ0Kb3.js +53 -0
  203. package/dist/unpkg/dev-deprecated/runtime--fcdnjmJ-DMTJ0Kb3.js.map +1 -0
  204. package/dist/unpkg/dev-deprecated/schema-provider-D2ESMsA8.js +1835 -0
  205. package/dist/unpkg/dev-deprecated/schema-provider-D2ESMsA8.js.map +1 -0
  206. package/dist/unpkg/dev-deprecated/serializer/json-api.js +514 -629
  207. package/dist/unpkg/dev-deprecated/serializer/json-api.js.map +1 -0
  208. package/dist/unpkg/dev-deprecated/serializer/json.js +3 -4
  209. package/dist/unpkg/dev-deprecated/serializer/rest.js +954 -1197
  210. package/dist/unpkg/dev-deprecated/serializer/rest.js.map +1 -0
  211. package/dist/unpkg/dev-deprecated/serializer/transform.js +283 -260
  212. package/dist/unpkg/dev-deprecated/serializer/transform.js.map +1 -0
  213. package/dist/unpkg/dev-deprecated/serializer.js +205 -208
  214. package/dist/unpkg/dev-deprecated/serializer.js.map +1 -0
  215. package/dist/unpkg/dev-deprecated/store-BX7GvXC_.js +472 -0
  216. package/dist/unpkg/dev-deprecated/store-BX7GvXC_.js.map +1 -0
  217. package/dist/unpkg/dev-deprecated/store.js +1 -635
  218. package/dist/unpkg/dev-deprecated/util-9mgEBJ3W.js +18 -0
  219. package/dist/unpkg/dev-deprecated/util-9mgEBJ3W.js.map +1 -0
  220. package/dist/unpkg/dev-deprecated/utils-Cl86-e7F.js +17 -0
  221. package/dist/unpkg/dev-deprecated/utils-Cl86-e7F.js.map +1 -0
  222. package/dist/unpkg/prod/-private-B4bxoTuK.js +160 -0
  223. package/dist/unpkg/prod/-private-B4bxoTuK.js.map +1 -0
  224. package/dist/unpkg/prod/-private-SfXkkHKd.js +745 -0
  225. package/dist/unpkg/prod/-private-SfXkkHKd.js.map +1 -0
  226. package/dist/unpkg/prod/adapter/-private.js +3 -1
  227. package/dist/unpkg/prod/adapter/error.js +421 -305
  228. package/dist/unpkg/prod/adapter/error.js.map +1 -0
  229. package/dist/unpkg/prod/adapter/json-api.js +236 -240
  230. package/dist/unpkg/prod/adapter/json-api.js.map +1 -0
  231. package/dist/unpkg/prod/adapter/rest.js +911 -1061
  232. package/dist/unpkg/prod/adapter/rest.js.map +1 -0
  233. package/dist/unpkg/prod/adapter-DQ9UA7FC.js +1111 -0
  234. package/dist/unpkg/prod/adapter-DQ9UA7FC.js.map +1 -0
  235. package/dist/unpkg/prod/adapter.js +1 -1217
  236. package/dist/unpkg/prod/compat/-private.js +3 -1
  237. package/dist/unpkg/prod/compat/builders.js +165 -183
  238. package/dist/unpkg/prod/compat/builders.js.map +1 -0
  239. package/dist/unpkg/prod/compat/extensions.js +258 -222
  240. package/dist/unpkg/prod/compat/extensions.js.map +1 -0
  241. package/dist/unpkg/prod/compat/utils.js +185 -188
  242. package/dist/unpkg/prod/compat/utils.js.map +1 -0
  243. package/dist/unpkg/prod/compat-DxiVkCUb.js +547 -0
  244. package/dist/unpkg/prod/compat-DxiVkCUb.js.map +1 -0
  245. package/dist/unpkg/prod/compat.js +1 -725
  246. package/dist/unpkg/prod/errors-CVXWrUjP.js +1977 -0
  247. package/dist/unpkg/prod/errors-CVXWrUjP.js.map +1 -0
  248. package/dist/unpkg/prod/index.js +249 -146
  249. package/dist/unpkg/prod/index.js.map +1 -0
  250. package/dist/unpkg/prod/json-BD1kRTfB.js +1080 -0
  251. package/dist/unpkg/prod/json-BD1kRTfB.js.map +1 -0
  252. package/dist/unpkg/prod/model/-private.js +3 -1
  253. package/dist/unpkg/prod/model/migration-support.js +479 -530
  254. package/dist/unpkg/prod/model/migration-support.js.map +1 -0
  255. package/dist/unpkg/prod/model-D3WMsNNE.js +603 -0
  256. package/dist/unpkg/prod/model-D3WMsNNE.js.map +1 -0
  257. package/dist/unpkg/prod/model-fragments-DSqu0ptR.js +334 -0
  258. package/dist/unpkg/prod/model-fragments-DSqu0ptR.js.map +1 -0
  259. package/dist/unpkg/prod/model-fragments.js +2 -75
  260. package/dist/unpkg/prod/model.js +3 -592
  261. package/dist/unpkg/prod/runtime--fcdnjmJ-DMTJ0Kb3.js +53 -0
  262. package/dist/unpkg/prod/runtime--fcdnjmJ-DMTJ0Kb3.js.map +1 -0
  263. package/dist/unpkg/prod/schema-provider-_pimTZ3P.js +1622 -0
  264. package/dist/unpkg/prod/schema-provider-_pimTZ3P.js.map +1 -0
  265. package/dist/unpkg/prod/serializer/json-api.js +497 -587
  266. package/dist/unpkg/prod/serializer/json-api.js.map +1 -0
  267. package/dist/unpkg/prod/serializer/json.js +3 -4
  268. package/dist/unpkg/prod/serializer/rest.js +938 -1167
  269. package/dist/unpkg/prod/serializer/rest.js.map +1 -0
  270. package/dist/unpkg/prod/serializer/transform.js +283 -260
  271. package/dist/unpkg/prod/serializer/transform.js.map +1 -0
  272. package/dist/unpkg/prod/serializer.js +205 -208
  273. package/dist/unpkg/prod/serializer.js.map +1 -0
  274. package/dist/unpkg/prod/store-RGGc1ilN.js +392 -0
  275. package/dist/unpkg/prod/store-RGGc1ilN.js.map +1 -0
  276. package/dist/unpkg/prod/store.js +1 -503
  277. package/dist/unpkg/prod/util-dSKEgQDp.js +12 -0
  278. package/dist/unpkg/prod/util-dSKEgQDp.js.map +1 -0
  279. package/dist/unpkg/prod/utils-DYC9utVJ.js +11 -0
  280. package/dist/unpkg/prod/utils-DYC9utVJ.js.map +1 -0
  281. package/dist/unpkg/prod-deprecated/-private-B4bxoTuK.js +160 -0
  282. package/dist/unpkg/prod-deprecated/-private-B4bxoTuK.js.map +1 -0
  283. package/dist/unpkg/prod-deprecated/-private-SfXkkHKd.js +745 -0
  284. package/dist/unpkg/prod-deprecated/-private-SfXkkHKd.js.map +1 -0
  285. package/dist/unpkg/prod-deprecated/adapter/-private.js +3 -1
  286. package/dist/unpkg/prod-deprecated/adapter/error.js +421 -305
  287. package/dist/unpkg/prod-deprecated/adapter/error.js.map +1 -0
  288. package/dist/unpkg/prod-deprecated/adapter/json-api.js +236 -240
  289. package/dist/unpkg/prod-deprecated/adapter/json-api.js.map +1 -0
  290. package/dist/unpkg/prod-deprecated/adapter/rest.js +911 -1061
  291. package/dist/unpkg/prod-deprecated/adapter/rest.js.map +1 -0
  292. package/{declarations/adapter.d.ts → dist/unpkg/prod-deprecated/adapter-DQ9UA7FC.js} +451 -110
  293. package/dist/unpkg/prod-deprecated/adapter-DQ9UA7FC.js.map +1 -0
  294. package/dist/unpkg/prod-deprecated/adapter.js +1 -1217
  295. package/dist/unpkg/prod-deprecated/compat/-private.js +3 -1
  296. package/dist/unpkg/prod-deprecated/compat/builders.js +165 -183
  297. package/dist/unpkg/prod-deprecated/compat/builders.js.map +1 -0
  298. package/dist/unpkg/prod-deprecated/compat/extensions.js +258 -222
  299. package/dist/unpkg/prod-deprecated/compat/extensions.js.map +1 -0
  300. package/dist/unpkg/prod-deprecated/compat/utils.js +185 -188
  301. package/dist/unpkg/prod-deprecated/compat/utils.js.map +1 -0
  302. package/dist/unpkg/prod-deprecated/compat-DxiVkCUb.js +547 -0
  303. package/dist/unpkg/prod-deprecated/compat-DxiVkCUb.js.map +1 -0
  304. package/dist/unpkg/prod-deprecated/compat.js +1 -725
  305. package/dist/unpkg/prod-deprecated/errors-9LXqpfRd.js +1978 -0
  306. package/dist/unpkg/prod-deprecated/errors-9LXqpfRd.js.map +1 -0
  307. package/dist/unpkg/prod-deprecated/index.js +249 -145
  308. package/dist/unpkg/prod-deprecated/index.js.map +1 -0
  309. package/dist/unpkg/prod-deprecated/json-BD1kRTfB.js +1080 -0
  310. package/dist/unpkg/prod-deprecated/json-BD1kRTfB.js.map +1 -0
  311. package/dist/unpkg/prod-deprecated/model/-private.js +3 -1
  312. package/dist/unpkg/prod-deprecated/model/migration-support.js +490 -547
  313. package/dist/unpkg/prod-deprecated/model/migration-support.js.map +1 -0
  314. package/dist/unpkg/prod-deprecated/model-aiVrr1fz.js +604 -0
  315. package/dist/unpkg/prod-deprecated/model-aiVrr1fz.js.map +1 -0
  316. package/dist/unpkg/prod-deprecated/model-fragments-DSqu0ptR.js +334 -0
  317. package/dist/unpkg/prod-deprecated/model-fragments-DSqu0ptR.js.map +1 -0
  318. package/dist/unpkg/prod-deprecated/model-fragments.js +2 -75
  319. package/dist/unpkg/prod-deprecated/model.js +3 -595
  320. package/dist/unpkg/prod-deprecated/runtime--fcdnjmJ-DMTJ0Kb3.js +53 -0
  321. package/dist/unpkg/prod-deprecated/runtime--fcdnjmJ-DMTJ0Kb3.js.map +1 -0
  322. package/dist/unpkg/prod-deprecated/schema-provider-DyfSd9Cv.js +1635 -0
  323. package/dist/unpkg/prod-deprecated/schema-provider-DyfSd9Cv.js.map +1 -0
  324. package/dist/unpkg/prod-deprecated/serializer/json-api.js +497 -587
  325. package/dist/unpkg/prod-deprecated/serializer/json-api.js.map +1 -0
  326. package/dist/unpkg/prod-deprecated/serializer/json.js +3 -4
  327. package/dist/unpkg/prod-deprecated/serializer/rest.js +938 -1167
  328. package/dist/unpkg/prod-deprecated/serializer/rest.js.map +1 -0
  329. package/dist/unpkg/prod-deprecated/serializer/transform.js +283 -260
  330. package/dist/unpkg/prod-deprecated/serializer/transform.js.map +1 -0
  331. package/dist/unpkg/prod-deprecated/serializer.js +205 -208
  332. package/dist/unpkg/prod-deprecated/serializer.js.map +1 -0
  333. package/dist/unpkg/prod-deprecated/store-0L2CkYzh.js +392 -0
  334. package/dist/unpkg/prod-deprecated/store-0L2CkYzh.js.map +1 -0
  335. package/dist/unpkg/prod-deprecated/store.js +1 -503
  336. package/dist/unpkg/prod-deprecated/util-CQQdHX3n.js +14 -0
  337. package/dist/unpkg/prod-deprecated/util-CQQdHX3n.js.map +1 -0
  338. package/dist/unpkg/prod-deprecated/utils-BMI_JwFP.js +13 -0
  339. package/dist/unpkg/prod-deprecated/utils-BMI_JwFP.js.map +1 -0
  340. package/dist/util-Bnx8nm-D.js +29 -0
  341. package/dist/util-Bnx8nm-D.js.map +1 -0
  342. package/dist/utils-ZAytYep8.js +28 -0
  343. package/dist/utils-ZAytYep8.js.map +1 -0
  344. package/package.json +21 -25
  345. package/declarations/adapter/-private/build-url-mixin.d.ts +0 -33
  346. package/declarations/adapter/-private/fastboot-interface.d.ts +0 -8
  347. package/declarations/adapter/-private/utils/continue-on-reject.d.ts +0 -1
  348. package/declarations/adapter/-private/utils/determine-body-promise.d.ts +0 -4
  349. package/declarations/adapter/-private/utils/fetch.d.ts +0 -8
  350. package/declarations/adapter/-private/utils/parse-response-headers.d.ts +0 -1
  351. package/declarations/adapter/-private/utils/serialize-into-hash.d.ts +0 -6
  352. package/declarations/adapter/-private/utils/serialize-query-params.d.ts +0 -5
  353. package/declarations/adapter/-private.d.ts +0 -5
  354. package/declarations/adapter/error.d.ts +0 -215
  355. package/declarations/compat/-private.d.ts +0 -13
  356. package/declarations/compat/builders/find-all.d.ts +0 -35
  357. package/declarations/compat/builders/find-record.d.ts +0 -56
  358. package/declarations/compat/builders/query.d.ts +0 -66
  359. package/declarations/compat/builders/save-record.d.ts +0 -34
  360. package/declarations/compat/builders/utils.d.ts +0 -3
  361. package/declarations/compat/builders.d.ts +0 -14
  362. package/declarations/compat/extensions.d.ts +0 -59
  363. package/declarations/compat/legacy-network-handler/fetch-manager.d.ts +0 -55
  364. package/declarations/compat/legacy-network-handler/identifier-has-id.d.ts +0 -2
  365. package/declarations/compat/legacy-network-handler/legacy-data-fetch.d.ts +0 -11
  366. package/declarations/compat/legacy-network-handler/legacy-data-utils.d.ts +0 -5
  367. package/declarations/compat/legacy-network-handler/legacy-network-handler.d.ts +0 -2
  368. package/declarations/compat/legacy-network-handler/minimum-adapter-interface.d.ts +0 -524
  369. package/declarations/compat/legacy-network-handler/minimum-serializer-interface.d.ts +0 -213
  370. package/declarations/compat/legacy-network-handler/serializer-response.d.ts +0 -6
  371. package/declarations/compat/legacy-network-handler/snapshot-record-array.d.ts +0 -110
  372. package/declarations/compat/legacy-network-handler/snapshot.d.ts +0 -255
  373. package/declarations/compat/utils.d.ts +0 -137
  374. package/declarations/compat.d.ts +0 -157
  375. package/declarations/index.d.ts +0 -102
  376. package/declarations/model/-private/attr.d.ts +0 -170
  377. package/declarations/model/-private/belongs-to.d.ts +0 -174
  378. package/declarations/model/-private/debug/assert-polymorphic-type.d.ts +0 -5
  379. package/declarations/model/-private/errors.d.ts +0 -289
  380. package/declarations/model/-private/has-many.d.ts +0 -162
  381. package/declarations/model/-private/hooks.d.ts +0 -10
  382. package/declarations/model/-private/legacy-relationships-support.d.ts +0 -47
  383. package/declarations/model/-private/model-for-mixin.d.ts +0 -3
  384. package/declarations/model/-private/model-methods.d.ts +0 -39
  385. package/declarations/model/-private/model.d.ts +0 -1228
  386. package/declarations/model/-private/notify-changes.d.ts +0 -4
  387. package/declarations/model/-private/promise-belongs-to.d.ts +0 -40
  388. package/declarations/model/-private/promise-many-array.d.ts +0 -106
  389. package/declarations/model/-private/record-state.d.ts +0 -58
  390. package/declarations/model/-private/references/belongs-to.d.ts +0 -488
  391. package/declarations/model/-private/references/has-many.d.ts +0 -498
  392. package/declarations/model/-private/schema-provider.d.ts +0 -56
  393. package/declarations/model/-private/type-utils.d.ts +0 -57
  394. package/declarations/model/-private/util.d.ts +0 -5
  395. package/declarations/model/-private.d.ts +0 -8
  396. package/declarations/model/migration-support.d.ts +0 -280
  397. package/declarations/model-fragments/extensions/fragment-array.d.ts +0 -16
  398. package/declarations/model-fragments/extensions/fragment.d.ts +0 -15
  399. package/declarations/model-fragments/hooks/model-for.d.ts +0 -20
  400. package/declarations/model-fragments/index.d.ts +0 -5
  401. package/declarations/model-fragments/instance-initializers/fragment-extensions.d.ts +0 -9
  402. package/declarations/model-fragments/utilities/with-array-defaults.d.ts +0 -15
  403. package/declarations/model-fragments/utilities/with-fragment-array-defaults.d.ts +0 -20
  404. package/declarations/model-fragments/utilities/with-fragment-defaults.d.ts +0 -19
  405. package/declarations/model-fragments/utilities/with-legacy.d.ts +0 -3
  406. package/declarations/model-fragments.d.ts +0 -9
  407. package/declarations/model.d.ts +0 -49
  408. package/declarations/serializer/-private/transforms/boolean.d.ts +0 -47
  409. package/declarations/serializer/-private/transforms/date.d.ts +0 -28
  410. package/declarations/serializer/-private/transforms/number.d.ts +0 -29
  411. package/declarations/serializer/-private/transforms/string.d.ts +0 -29
  412. package/declarations/serializer/-private/transforms/transform.d.ts +0 -118
  413. package/declarations/serializer/-private/utils.d.ts +0 -3
  414. package/declarations/serializer/rest.d.ts +0 -51
  415. package/declarations/serializer/transform.d.ts +0 -5
  416. package/declarations/serializer.d.ts +0 -254
  417. package/declarations/store/-private.d.ts +0 -223
  418. package/declarations/store.d.ts +0 -3
  419. package/dist/-private-BG3bMiKp.js +0 -1211
  420. package/dist/errors-Cz5KrzBk.js +0 -2566
  421. package/dist/hooks-D6diaM34.js +0 -74
  422. package/dist/json-ChdEfB0X.js +0 -1259
  423. package/dist/model-for-CqXsIKws.js +0 -221
  424. package/dist/runtime-BPCpkOf1-BKOwiRJp.js +0 -65
  425. package/dist/schema-provider-DJCV_6AF.js +0 -2295
  426. package/dist/serialize-into-hash-DPZYoF-i.js +0 -261
  427. package/dist/unpkg/dev/-private-DtjBbEgy.js +0 -1206
  428. package/dist/unpkg/dev/errors-DmGGJr3T.js +0 -2562
  429. package/dist/unpkg/dev/hooks-CkYiE6Ud.js +0 -73
  430. package/dist/unpkg/dev/json-Cu1LNgmQ.js +0 -1256
  431. package/dist/unpkg/dev/model-for-CqXsIKws.js +0 -221
  432. package/dist/unpkg/dev/runtime-BPCpkOf1-BKOwiRJp.js +0 -65
  433. package/dist/unpkg/dev/schema-provider-DDVYxmUV.js +0 -2186
  434. package/dist/unpkg/dev/serialize-into-hash-B2xDbuo5.js +0 -259
  435. package/dist/unpkg/dev/util-DvanW33H.js +0 -20
  436. package/dist/unpkg/dev/utils-BhvS1iTS.js +0 -8
  437. package/dist/unpkg/dev-deprecated/-private-DtjBbEgy.js +0 -1206
  438. package/dist/unpkg/dev-deprecated/errors-Spt6ubMd.js +0 -2565
  439. package/dist/unpkg/dev-deprecated/hooks-DOXegvhL.js +0 -73
  440. package/dist/unpkg/dev-deprecated/json-Cu1LNgmQ.js +0 -1256
  441. package/dist/unpkg/dev-deprecated/model-for-CqXsIKws.js +0 -221
  442. package/dist/unpkg/dev-deprecated/runtime-BPCpkOf1-BKOwiRJp.js +0 -65
  443. package/dist/unpkg/dev-deprecated/schema-provider-BP6_8N-V.js +0 -2211
  444. package/dist/unpkg/dev-deprecated/serialize-into-hash-B2xDbuo5.js +0 -259
  445. package/dist/unpkg/dev-deprecated/util-CWr5WQOT.js +0 -24
  446. package/dist/unpkg/dev-deprecated/utils-C9PJehtL.js +0 -12
  447. package/dist/unpkg/prod/-private-BdyZaGEh.js +0 -971
  448. package/dist/unpkg/prod/errors-BGVFCBmi.js +0 -2314
  449. package/dist/unpkg/prod/hooks-BztVA_x0.js +0 -41
  450. package/dist/unpkg/prod/json-BWrZ5546.js +0 -1243
  451. package/dist/unpkg/prod/model-for-CqXsIKws.js +0 -221
  452. package/dist/unpkg/prod/runtime-BPCpkOf1-BKOwiRJp.js +0 -65
  453. package/dist/unpkg/prod/schema-provider-DJtD_8jZ.js +0 -1861
  454. package/dist/unpkg/prod/serialize-into-hash-DGlzQteF.js +0 -215
  455. package/dist/unpkg/prod/util-DvanW33H.js +0 -20
  456. package/dist/unpkg/prod/utils-BhvS1iTS.js +0 -8
  457. package/dist/unpkg/prod-deprecated/-private-BdyZaGEh.js +0 -971
  458. package/dist/unpkg/prod-deprecated/errors-CdDaK81x.js +0 -2317
  459. package/dist/unpkg/prod-deprecated/hooks-yId87yyG.js +0 -41
  460. package/dist/unpkg/prod-deprecated/json-BWrZ5546.js +0 -1243
  461. package/dist/unpkg/prod-deprecated/model-for-CqXsIKws.js +0 -221
  462. package/dist/unpkg/prod-deprecated/runtime-BPCpkOf1-BKOwiRJp.js +0 -65
  463. package/dist/unpkg/prod-deprecated/schema-provider-CjX55uSY.js +0 -1904
  464. package/dist/unpkg/prod-deprecated/serialize-into-hash-DGlzQteF.js +0 -215
  465. package/dist/unpkg/prod-deprecated/util-B6cn-i93.js +0 -23
  466. package/dist/unpkg/prod-deprecated/utils-BUWwQwCh.js +0 -11
  467. package/dist/util-Dul6TZts.js +0 -35
  468. package/dist/utils-Cqw9eRj5.js +0 -23
@@ -0,0 +1,151 @@
1
+ import { Store } from "@warp-drive/core";
2
+ import EmberObject from "@ember/object";
3
+ import { ModelSchema } from "@warp-drive/core/types";
4
+ import { EmptyResourceDocument, SingleResourceDocument } from "@warp-drive/core/types/spec/json-api-raw";
5
+ //#region src/serializer.d.ts
6
+ /**
7
+ > ⚠️ CAUTION you likely want the docs for {@link MinimumSerializerInterface}
8
+ > as extending this abstract class is unnecessary.
9
+
10
+ `Serializer` is an abstract base class that you may override in your
11
+ application to customize it for your backend. The minimum set of methods
12
+ that you should implement is:
13
+
14
+ * `normalizeResponse()`
15
+ * `serialize()`
16
+
17
+ And you can optionally override the following methods:
18
+
19
+ * `normalize()`
20
+
21
+ For an example implementation, see the included {@link JSONSerializer}.
22
+
23
+ @class Serializer
24
+ @public
25
+ */
26
+ declare class Serializer extends EmberObject {
27
+ /**
28
+ The `store` property is the application's `store` that contains
29
+ all records. It can be used to look up serializers for other model
30
+ types that may be nested inside the payload response.
31
+
32
+ Example:
33
+
34
+ ```js
35
+ Serializer.extend({
36
+ extractRelationship(relationshipModelName, relationshipHash) {
37
+ let modelClass = this.store.modelFor(relationshipModelName);
38
+ let relationshipSerializer = this.store.serializerFor(relationshipModelName);
39
+ return relationshipSerializer.normalize(modelClass, relationshipHash);
40
+ }
41
+ });
42
+ ```
43
+
44
+ @public
45
+ */
46
+ store: Store;
47
+ /**
48
+ The `normalizeResponse` method is used to normalize a payload from the
49
+ server to a JSON-API Document.
50
+
51
+ http://jsonapi.org/format/#document-structure
52
+
53
+ Example:
54
+
55
+ ```js
56
+ Serializer.extend({
57
+ normalizeResponse(store, primaryModelClass, payload, id, requestType) {
58
+ if (requestType === 'findRecord') {
59
+ return this.normalize(primaryModelClass, payload);
60
+ } else {
61
+ return payload.reduce(function(documentHash, item) {
62
+ let { data, included } = this.normalize(primaryModelClass, item);
63
+ documentHash.included.push(...included);
64
+ documentHash.data.push(data);
65
+ return documentHash;
66
+ }, { data: [], included: [] })
67
+ }
68
+ }
69
+ });
70
+ ```
71
+
72
+ @since 1.13.0
73
+ @public
74
+ @param {Store} store
75
+ @param {Model} primaryModelClass
76
+ @param {Object} payload
77
+ @param {String|Number} id
78
+ @param {String} requestType
79
+ @return {Object} JSON-API Document
80
+ */
81
+ /**
82
+ The `serialize` method is used when a record is saved in order to convert
83
+ the record into the form that your external data source expects.
84
+
85
+ `serialize` takes an optional `options` hash with a single option:
86
+
87
+ - `includeId`: If this is `true`, `serialize` should include the ID
88
+ in the serialized object it builds.
89
+
90
+ Example:
91
+
92
+ ```js
93
+ Serializer.extend({
94
+ serialize(snapshot, options) {
95
+ let json = {
96
+ id: snapshot.id
97
+ };
98
+
99
+ snapshot.eachAttribute((key, attribute) => {
100
+ json[key] = snapshot.attr(key);
101
+ });
102
+
103
+ snapshot.eachRelationship((key, relationship) => {
104
+ if (relationship.kind === 'belongsTo') {
105
+ json[key] = snapshot.belongsTo(key, { id: true });
106
+ } else if (relationship.kind === 'hasMany') {
107
+ json[key] = snapshot.hasMany(key, { ids: true });
108
+ }
109
+ });
110
+
111
+ return json;
112
+ },
113
+ });
114
+ ```
115
+
116
+ @public
117
+ @param {Snapshot} snapshot
118
+ @param {Object} [options]
119
+ @return {Object}
120
+ */
121
+ /**
122
+ The `normalize` method is used to convert a payload received from your
123
+ external data source into the normalized form `store.push()` expects. You
124
+ should override this method, munge the hash and return the normalized
125
+ payload.
126
+
127
+ Example:
128
+
129
+ ```js
130
+ Serializer.extend({
131
+ normalize(modelClass, resourceHash) {
132
+ let data = {
133
+ id: resourceHash.id,
134
+ type: modelClass.modelName,
135
+ attributes: resourceHash
136
+ };
137
+ return { data: data };
138
+ }
139
+ })
140
+ ```
141
+
142
+ @public
143
+ @param _typeClass - the model class the hash is being normalized for
144
+ @param hash - the raw payload hash to normalize
145
+ @return the normalized resource document
146
+ */
147
+ normalize(_typeClass: ModelSchema, hash: Record<string, unknown>): SingleResourceDocument | EmptyResourceDocument;
148
+ }
149
+ //#endregion
150
+ export { Serializer };
151
+ //# sourceMappingURL=serializer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializer.d.ts","names":[],"sources":["../src/serializer.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;cA+Ia,mBAAmB;;;;;;;;;;;;;;;;;;;;EAoB9B,OAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwGxB,UAAU,YAAY,aAAa,MAAM,0BAA0B,yBAAyB"}
@@ -1,248 +1,245 @@
1
- import EmberObject from '@ember/object';
2
- import * as s from '@ember/service';
3
- import { a as decorateFieldV2, i as initializeDeferredDecorator } from "./runtime-BPCpkOf1-BKOwiRJp.js";
1
+ import { r as initializeDeferredDecorator, t as decorateFieldV2 } from "./runtime--fcdnjmJ-DMTJ0Kb3.js";
2
+ import EmberObject from "@ember/object";
3
+ import * as s from "@ember/service";
4
4
 
5
+ //#region src/serializer.ts
5
6
  /**
6
- ## Overview
7
+ ## Overview
7
8
 
8
- :::danger
9
- ⚠️ **This is LEGACY documentation** for a feature that is no longer encouraged to be used.
10
- If starting a new app or thinking of implementing a new serializer, consider writing a
11
- {@link Handler} instead to be used with the {@link RequestManager}
12
- :::
9
+ :::danger
10
+ ⚠️ **This is LEGACY documentation** for a feature that is no longer encouraged to be used.
11
+ If starting a new app or thinking of implementing a new serializer, consider writing a
12
+ {@link Handler} instead to be used with the {@link RequestManager}
13
+ :::
13
14
 
14
- In order to properly manage and present your data, WarpDrive
15
- needs to understand the structure of data it receives.
15
+ In order to properly manage and present your data, WarpDrive
16
+ needs to understand the structure of data it receives.
16
17
 
17
- `Serializers` convert data between the server's API format and
18
- the format WarpDrive understands.
18
+ `Serializers` convert data between the server's API format and
19
+ the format WarpDrive understands.
19
20
 
20
- Data received from an API response is **normalized** into
21
- [{json:api}](https://jsonapi.org/) (the format used internally
22
- by WarpDrive), while data sent to an API is **serialized**
23
- into the format the API expects.
21
+ Data received from an API response is **normalized** into
22
+ [{json:api}](https://jsonapi.org/) (the format used internally
23
+ by WarpDrive), while data sent to an API is **serialized**
24
+ into the format the API expects.
24
25
 
25
- ### Implementing a Serializer
26
+ ### Implementing a Serializer
26
27
 
27
- There are only two required serializer methods, one for
28
- normalizing data from the server API format into {json:api}, and
29
- another for serializing records via `Snapshots` into the expected
30
- server API format.
28
+ There are only two required serializer methods, one for
29
+ normalizing data from the server API format into {json:api}, and
30
+ another for serializing records via `Snapshots` into the expected
31
+ server API format.
31
32
 
32
- To implement a serializer, export a class that conforms to the structure
33
- described by {@link MinimumSerializerInterface}
34
- from the `app/serializers/` directory. An example is below.
33
+ To implement a serializer, export a class that conforms to the structure
34
+ described by {@link MinimumSerializerInterface}
35
+ from the `app/serializers/` directory. An example is below.
35
36
 
36
- ```ts
37
- import EmberObject from '@ember/object';
37
+ ```ts
38
+ import EmberObject from '@ember/object';
38
39
 
39
- export default class ApplicationSerializer extends EmberObject {
40
- normalizeResponse(store, schema, rawPayload) {
41
- return rawPayload;
42
- }
40
+ export default class ApplicationSerializer extends EmberObject {
41
+ normalizeResponse(store, schema, rawPayload) {
42
+ return rawPayload;
43
+ }
43
44
 
44
- serialize(snapshot, options) {
45
- const serializedResource = {
46
- id: snapshot.id,
47
- type: snapshot.modelName,
48
- attributes: snapshot.attributes()
49
- };
45
+ serialize(snapshot, options) {
46
+ const serializedResource = {
47
+ id: snapshot.id,
48
+ type: snapshot.modelName,
49
+ attributes: snapshot.attributes()
50
+ };
50
51
 
51
- return serializedResource;
52
- }
53
- }
54
- ```
52
+ return serializedResource;
53
+ }
54
+ }
55
+ ```
55
56
 
56
57
 
57
- ### Serializer Resolution
58
+ ### Serializer Resolution
58
59
 
59
- `store.serializerFor(name)` will lookup serializers defined in
60
- `app/serializers/` and return an instance. If no serializer is found, an
61
- error will be thrown.
60
+ `store.serializerFor(name)` will lookup serializers defined in
61
+ `app/serializers/` and return an instance. If no serializer is found, an
62
+ error will be thrown.
62
63
 
63
- `serializerFor` first attempts to find a serializer with an exact match on `name`,
64
- then falls back to checking for the presence of a serializer named `application`.
64
+ `serializerFor` first attempts to find a serializer with an exact match on `name`,
65
+ then falls back to checking for the presence of a serializer named `application`.
65
66
 
66
- ```ts
67
- store.serializerFor('author');
67
+ ```ts
68
+ store.serializerFor('author');
68
69
 
69
- // lookup paths (in order) =>
70
- // app/serializers/author.js
71
- // app/serializers/application.js
72
- ```
70
+ // lookup paths (in order) =>
71
+ // app/serializers/author.js
72
+ // app/serializers/application.js
73
+ ```
73
74
 
74
- Most requests in `@warp-drive/legacy` are made with respect to a particular `type` (or `modelName`)
75
- (e.g., "get me the full collection of **books**" or "get me the **employee** whose id is 37"). We
76
- refer to this as the **primary** resource `type`.
75
+ Most requests in `@warp-drive/legacy` are made with respect to a particular `type` (or `modelName`)
76
+ (e.g., "get me the full collection of **books**" or "get me the **employee** whose id is 37"). We
77
+ refer to this as the **primary** resource `type`.
77
78
 
78
- Typically `serializerFor` will be used to find a serializer with a name matching that of the primary
79
- resource `type` for the request, falling back to the `application` serializer for those types that
80
- do not have a defined serializer. This is often described as a `per-model` or `per-type` strategy
81
- for defining serializers. However, because APIs rarely format payloads per-type but rather
82
- per-API-version, this may not be a desired strategy.
79
+ Typically `serializerFor` will be used to find a serializer with a name matching that of the primary
80
+ resource `type` for the request, falling back to the `application` serializer for those types that
81
+ do not have a defined serializer. This is often described as a `per-model` or `per-type` strategy
82
+ for defining serializers. However, because APIs rarely format payloads per-type but rather
83
+ per-API-version, this may not be a desired strategy.
83
84
 
84
- It is recommended that applications define only a single `application` adapter and serializer
85
- where possible.
85
+ It is recommended that applications define only a single `application` adapter and serializer
86
+ where possible.
86
87
 
87
- If you have multiple API formats and the per-type strategy is not viable, one strategy is to
88
- write an `application` adapter and serializer that make use of `options` to specify the desired
89
- format when making a request.
88
+ If you have multiple API formats and the per-type strategy is not viable, one strategy is to
89
+ write an `application` adapter and serializer that make use of `options` to specify the desired
90
+ format when making a request.
90
91
 
91
- ### Using a Serializer
92
+ ### Using a Serializer
92
93
 
93
- Any serializer in `app/serializers/` can be looked up by `name` using `store.serializerFor(name)`.
94
+ Any serializer in `app/serializers/` can be looked up by `name` using `store.serializerFor(name)`.
94
95
 
95
- ### Default Serializers
96
+ ### Default Serializers
96
97
 
97
- For applications whose APIs are *very close to* or *exactly* the **REST** format or **JSON:API**
98
- format the `@warp-drive/legacy/serializer` package contains implementations these applications can
99
- extend. It also contains a simple `JSONSerializer` for serializing to/from very basic JSON objects.
98
+ For applications whose APIs are *very close to* or *exactly* the **REST** format or **JSON:API**
99
+ format the `@warp-drive/legacy/serializer` package contains implementations these applications can
100
+ extend. It also contains a simple `JSONSerializer` for serializing to/from very basic JSON objects.
100
101
 
101
- Many applications will find writing their own serializer to be more performant and less
102
- complex than extending these classes even when their API format is very close to that expected
103
- by these serializers.
102
+ Many applications will find writing their own serializer to be more performant and less
103
+ complex than extending these classes even when their API format is very close to that expected
104
+ by these serializers.
104
105
 
105
- It is recommended that apps write their own serializer to best suit the needs of their API and
106
- application.
106
+ It is recommended that apps write their own serializer to best suit the needs of their API and
107
+ application.
107
108
 
108
- @module
109
+ @module
109
110
  */
110
111
  const service = s.service ?? s.inject;
111
-
112
112
  /**
113
- > ⚠️ CAUTION you likely want the docs for {@link MinimumSerializerInterface}
114
- > as extending this abstract class is unnecessary.
113
+ > ⚠️ CAUTION you likely want the docs for {@link MinimumSerializerInterface}
114
+ > as extending this abstract class is unnecessary.
115
115
 
116
- `Serializer` is an abstract base class that you may override in your
117
- application to customize it for your backend. The minimum set of methods
118
- that you should implement is:
116
+ `Serializer` is an abstract base class that you may override in your
117
+ application to customize it for your backend. The minimum set of methods
118
+ that you should implement is:
119
119
 
120
- * `normalizeResponse()`
121
- * `serialize()`
120
+ * `normalizeResponse()`
121
+ * `serialize()`
122
122
 
123
- And you can optionally override the following methods:
123
+ And you can optionally override the following methods:
124
124
 
125
- * `normalize()`
125
+ * `normalize()`
126
126
 
127
- For an example implementation, see the included {@link JSONSerializer}.
127
+ For an example implementation, see the included {@link JSONSerializer}.
128
128
 
129
- @class Serializer
130
- @public
129
+ @class Serializer
130
+ @public
131
131
  */
132
-
133
- class Serializer extends EmberObject {
134
- static {
135
- decorateFieldV2(this.prototype, "store", [service]);
136
- }
137
- #store = (initializeDeferredDecorator(this, "store"), void 0);
138
- /**
139
- The `store` property is the application's `store` that contains
140
- all records. It can be used to look up serializers for other model
141
- types that may be nested inside the payload response.
142
- Example:
143
- ```js
144
- Serializer.extend({
145
- extractRelationship(relationshipModelName, relationshipHash) {
146
- let modelClass = this.store.modelFor(relationshipModelName);
147
- let relationshipSerializer = this.store.serializerFor(relationshipModelName);
148
- return relationshipSerializer.normalize(modelClass, relationshipHash);
149
- }
150
- });
151
- ```
152
- @property store
153
- @type {Store}
154
- @public
155
- */
156
-
157
- /**
158
- The `normalizeResponse` method is used to normalize a payload from the
159
- server to a JSON-API Document.
160
- http://jsonapi.org/format/#document-structure
161
- Example:
162
- ```js
163
- Serializer.extend({
164
- normalizeResponse(store, primaryModelClass, payload, id, requestType) {
165
- if (requestType === 'findRecord') {
166
- return this.normalize(primaryModelClass, payload);
167
- } else {
168
- return payload.reduce(function(documentHash, item) {
169
- let { data, included } = this.normalize(primaryModelClass, item);
170
- documentHash.included.push(...included);
171
- documentHash.data.push(data);
172
- return documentHash;
173
- }, { data: [], included: [] })
174
- }
175
- }
176
- });
177
- ```
178
- @since 1.13.0
179
- @public
180
- @param {Store} store
181
- @param {Model} primaryModelClass
182
- @param {Object} payload
183
- @param {String|Number} id
184
- @param {String} requestType
185
- @return {Object} JSON-API Document
186
- */
187
-
188
- /**
189
- The `serialize` method is used when a record is saved in order to convert
190
- the record into the form that your external data source expects.
191
- `serialize` takes an optional `options` hash with a single option:
192
- - `includeId`: If this is `true`, `serialize` should include the ID
193
- in the serialized object it builds.
194
- Example:
195
- ```js
196
- Serializer.extend({
197
- serialize(snapshot, options) {
198
- let json = {
199
- id: snapshot.id
200
- };
201
- snapshot.eachAttribute((key, attribute) => {
202
- json[key] = snapshot.attr(key);
203
- });
204
- snapshot.eachRelationship((key, relationship) => {
205
- if (relationship.kind === 'belongsTo') {
206
- json[key] = snapshot.belongsTo(key, { id: true });
207
- } else if (relationship.kind === 'hasMany') {
208
- json[key] = snapshot.hasMany(key, { ids: true });
209
- }
210
- });
211
- return json;
212
- },
213
- });
214
- ```
215
- @public
216
- @param {Snapshot} snapshot
217
- @param {Object} [options]
218
- @return {Object}
219
- */
220
-
221
- /**
222
- The `normalize` method is used to convert a payload received from your
223
- external data source into the normalized form `store.push()` expects. You
224
- should override this method, munge the hash and return the normalized
225
- payload.
226
- Example:
227
- ```js
228
- Serializer.extend({
229
- normalize(modelClass, resourceHash) {
230
- let data = {
231
- id: resourceHash.id,
232
- type: modelClass.modelName,
233
- attributes: resourceHash
234
- };
235
- return { data: data };
236
- }
237
- })
238
- ```
239
- @public
240
- @param {Model} typeClass
241
- @param {Object} hash
242
- @return {Object}
243
- */
244
- normalize(_typeClass, hash) {
245
- return hash;
246
- }
247
- }
248
- export { Serializer };
132
+ var Serializer = class extends EmberObject {
133
+ static {
134
+ decorateFieldV2(this.prototype, "store", [service]);
135
+ }
136
+ #store = (initializeDeferredDecorator(this, "store"), void 0);
137
+ /**
138
+ The `store` property is the application's `store` that contains
139
+ all records. It can be used to look up serializers for other model
140
+ types that may be nested inside the payload response.
141
+ Example:
142
+ ```js
143
+ Serializer.extend({
144
+ extractRelationship(relationshipModelName, relationshipHash) {
145
+ let modelClass = this.store.modelFor(relationshipModelName);
146
+ let relationshipSerializer = this.store.serializerFor(relationshipModelName);
147
+ return relationshipSerializer.normalize(modelClass, relationshipHash);
148
+ }
149
+ });
150
+ ```
151
+ @public
152
+ */
153
+ /**
154
+ The `normalizeResponse` method is used to normalize a payload from the
155
+ server to a JSON-API Document.
156
+ http://jsonapi.org/format/#document-structure
157
+ Example:
158
+ ```js
159
+ Serializer.extend({
160
+ normalizeResponse(store, primaryModelClass, payload, id, requestType) {
161
+ if (requestType === 'findRecord') {
162
+ return this.normalize(primaryModelClass, payload);
163
+ } else {
164
+ return payload.reduce(function(documentHash, item) {
165
+ let { data, included } = this.normalize(primaryModelClass, item);
166
+ documentHash.included.push(...included);
167
+ documentHash.data.push(data);
168
+ return documentHash;
169
+ }, { data: [], included: [] })
170
+ }
171
+ }
172
+ });
173
+ ```
174
+ @since 1.13.0
175
+ @public
176
+ @param {Store} store
177
+ @param {Model} primaryModelClass
178
+ @param {Object} payload
179
+ @param {String|Number} id
180
+ @param {String} requestType
181
+ @return {Object} JSON-API Document
182
+ */
183
+ /**
184
+ The `serialize` method is used when a record is saved in order to convert
185
+ the record into the form that your external data source expects.
186
+ `serialize` takes an optional `options` hash with a single option:
187
+ - `includeId`: If this is `true`, `serialize` should include the ID
188
+ in the serialized object it builds.
189
+ Example:
190
+ ```js
191
+ Serializer.extend({
192
+ serialize(snapshot, options) {
193
+ let json = {
194
+ id: snapshot.id
195
+ };
196
+ snapshot.eachAttribute((key, attribute) => {
197
+ json[key] = snapshot.attr(key);
198
+ });
199
+ snapshot.eachRelationship((key, relationship) => {
200
+ if (relationship.kind === 'belongsTo') {
201
+ json[key] = snapshot.belongsTo(key, { id: true });
202
+ } else if (relationship.kind === 'hasMany') {
203
+ json[key] = snapshot.hasMany(key, { ids: true });
204
+ }
205
+ });
206
+ return json;
207
+ },
208
+ });
209
+ ```
210
+ @public
211
+ @param {Snapshot} snapshot
212
+ @param {Object} [options]
213
+ @return {Object}
214
+ */
215
+ /**
216
+ The `normalize` method is used to convert a payload received from your
217
+ external data source into the normalized form `store.push()` expects. You
218
+ should override this method, munge the hash and return the normalized
219
+ payload.
220
+ Example:
221
+ ```js
222
+ Serializer.extend({
223
+ normalize(modelClass, resourceHash) {
224
+ let data = {
225
+ id: resourceHash.id,
226
+ type: modelClass.modelName,
227
+ attributes: resourceHash
228
+ };
229
+ return { data: data };
230
+ }
231
+ })
232
+ ```
233
+ @public
234
+ @param _typeClass - the model class the hash is being normalized for
235
+ @param hash - the raw payload hash to normalize
236
+ @return the normalized resource document
237
+ */
238
+ normalize(_typeClass, hash) {
239
+ return hash;
240
+ }
241
+ };
242
+
243
+ //#endregion
244
+ export { Serializer };
245
+ //# sourceMappingURL=serializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializer.js","names":["EmberObject","s","g","i","service","inject","Serializer","prototype","store","normalize","_typeClass","hash"],"sources":["../src/serializer.ts"],"sourcesContent":["/**\n ## Overview\n\n :::danger\n ⚠️ **This is LEGACY documentation** for a feature that is no longer encouraged to be used.\n If starting a new app or thinking of implementing a new serializer, consider writing a\n {@link Handler} instead to be used with the {@link RequestManager}\n :::\n\n In order to properly manage and present your data, WarpDrive\n needs to understand the structure of data it receives.\n\n `Serializers` convert data between the server's API format and\n the format WarpDrive understands.\n\n Data received from an API response is **normalized** into\n [{json:api}](https://jsonapi.org/) (the format used internally\n by WarpDrive), while data sent to an API is **serialized**\n into the format the API expects.\n\n ### Implementing a Serializer\n\n There are only two required serializer methods, one for\n normalizing data from the server API format into {json:api}, and\n another for serializing records via `Snapshots` into the expected\n server API format.\n\n To implement a serializer, export a class that conforms to the structure\n described by {@link MinimumSerializerInterface}\n from the `app/serializers/` directory. An example is below.\n\n ```ts\n import EmberObject from '@ember/object';\n\n export default class ApplicationSerializer extends EmberObject {\n normalizeResponse(store, schema, rawPayload) {\n return rawPayload;\n }\n\n serialize(snapshot, options) {\n const serializedResource = {\n id: snapshot.id,\n type: snapshot.modelName,\n attributes: snapshot.attributes()\n };\n\n return serializedResource;\n }\n }\n ```\n\n\n ### Serializer Resolution\n\n `store.serializerFor(name)` will lookup serializers defined in\n `app/serializers/` and return an instance. If no serializer is found, an\n error will be thrown.\n\n `serializerFor` first attempts to find a serializer with an exact match on `name`,\n then falls back to checking for the presence of a serializer named `application`.\n\n ```ts\n store.serializerFor('author');\n\n // lookup paths (in order) =>\n // app/serializers/author.js\n // app/serializers/application.js\n ```\n\n Most requests in `@warp-drive/legacy` are made with respect to a particular `type` (or `modelName`)\n (e.g., \"get me the full collection of **books**\" or \"get me the **employee** whose id is 37\"). We\n refer to this as the **primary** resource `type`.\n\n Typically `serializerFor` will be used to find a serializer with a name matching that of the primary\n resource `type` for the request, falling back to the `application` serializer for those types that\n do not have a defined serializer. This is often described as a `per-model` or `per-type` strategy\n for defining serializers. However, because APIs rarely format payloads per-type but rather\n per-API-version, this may not be a desired strategy.\n\n It is recommended that applications define only a single `application` adapter and serializer\n where possible.\n\n If you have multiple API formats and the per-type strategy is not viable, one strategy is to\n write an `application` adapter and serializer that make use of `options` to specify the desired\n format when making a request.\n\n ### Using a Serializer\n\n Any serializer in `app/serializers/` can be looked up by `name` using `store.serializerFor(name)`.\n\n ### Default Serializers\n\n For applications whose APIs are *very close to* or *exactly* the **REST** format or **JSON:API**\n format the `@warp-drive/legacy/serializer` package contains implementations these applications can\n extend. It also contains a simple `JSONSerializer` for serializing to/from very basic JSON objects.\n\n Many applications will find writing their own serializer to be more performant and less\n complex than extending these classes even when their API format is very close to that expected\n by these serializers.\n\n It is recommended that apps write their own serializer to best suit the needs of their API and\n application.\n\n @module\n*/\nimport EmberObject from '@ember/object';\nimport * as s from '@ember/service';\n\n// oxlint-disable-next-line no-unused-vars\nimport type { RequestManager, Store } from '@warp-drive/core';\n// oxlint-disable-next-line no-unused-vars\nimport type { Handler } from '@warp-drive/core/request';\nimport type { ModelSchema } from '@warp-drive/core/types';\nimport type { EmptyResourceDocument, SingleResourceDocument } from '@warp-drive/core/types/spec/json-api-raw';\n\n// oxlint-disable-next-line no-unused-vars\nimport type { MinimumSerializerInterface } from './compat';\n// oxlint-disable-next-line no-unused-vars\nimport type { JSONSerializer } from './serializer/json';\n\nconst service = s.service ?? s.inject;\n\n/**\n > ⚠️ CAUTION you likely want the docs for {@link MinimumSerializerInterface}\n > as extending this abstract class is unnecessary.\n\n `Serializer` is an abstract base class that you may override in your\n application to customize it for your backend. The minimum set of methods\n that you should implement is:\n\n * `normalizeResponse()`\n * `serialize()`\n\n And you can optionally override the following methods:\n\n * `normalize()`\n\n For an example implementation, see the included {@link JSONSerializer}.\n\n @class Serializer\n @public\n*/\n\nexport class Serializer extends EmberObject {\n /**\n The `store` property is the application's `store` that contains\n all records. It can be used to look up serializers for other model\n types that may be nested inside the payload response.\n\n Example:\n\n ```js\n Serializer.extend({\n extractRelationship(relationshipModelName, relationshipHash) {\n let modelClass = this.store.modelFor(relationshipModelName);\n let relationshipSerializer = this.store.serializerFor(relationshipModelName);\n return relationshipSerializer.normalize(modelClass, relationshipHash);\n }\n });\n ```\n\n @public\n */\n @service declare store: Store;\n\n /**\n The `normalizeResponse` method is used to normalize a payload from the\n server to a JSON-API Document.\n\n http://jsonapi.org/format/#document-structure\n\n Example:\n\n ```js\n Serializer.extend({\n normalizeResponse(store, primaryModelClass, payload, id, requestType) {\n if (requestType === 'findRecord') {\n return this.normalize(primaryModelClass, payload);\n } else {\n return payload.reduce(function(documentHash, item) {\n let { data, included } = this.normalize(primaryModelClass, item);\n documentHash.included.push(...included);\n documentHash.data.push(data);\n return documentHash;\n }, { data: [], included: [] })\n }\n }\n });\n ```\n\n @since 1.13.0\n @public\n @param {Store} store\n @param {Model} primaryModelClass\n @param {Object} payload\n @param {String|Number} id\n @param {String} requestType\n @return {Object} JSON-API Document\n */\n\n /**\n The `serialize` method is used when a record is saved in order to convert\n the record into the form that your external data source expects.\n\n `serialize` takes an optional `options` hash with a single option:\n\n - `includeId`: If this is `true`, `serialize` should include the ID\n in the serialized object it builds.\n\n Example:\n\n ```js\n Serializer.extend({\n serialize(snapshot, options) {\n let json = {\n id: snapshot.id\n };\n\n snapshot.eachAttribute((key, attribute) => {\n json[key] = snapshot.attr(key);\n });\n\n snapshot.eachRelationship((key, relationship) => {\n if (relationship.kind === 'belongsTo') {\n json[key] = snapshot.belongsTo(key, { id: true });\n } else if (relationship.kind === 'hasMany') {\n json[key] = snapshot.hasMany(key, { ids: true });\n }\n });\n\n return json;\n },\n });\n ```\n\n @public\n @param {Snapshot} snapshot\n @param {Object} [options]\n @return {Object}\n */\n\n /**\n The `normalize` method is used to convert a payload received from your\n external data source into the normalized form `store.push()` expects. You\n should override this method, munge the hash and return the normalized\n payload.\n\n Example:\n\n ```js\n Serializer.extend({\n normalize(modelClass, resourceHash) {\n let data = {\n id: resourceHash.id,\n type: modelClass.modelName,\n attributes: resourceHash\n };\n return { data: data };\n }\n })\n ```\n\n @public\n @param _typeClass - the model class the hash is being normalized for\n @param hash - the raw payload hash to normalize\n @return the normalized resource document\n */\n normalize(_typeClass: ModelSchema, hash: Record<string, unknown>): SingleResourceDocument | EmptyResourceDocument {\n return hash as unknown as SingleResourceDocument;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwHA,MAAMI,UAAUH,EAAEG,WAAWH,EAAEI;;;;;;;;;;;;;;;;;;;;;AAuB/B,IAAaC,aAAb,cAAgCN,YAAY;CAAA;EAAAE,gBAAA,KAAAK,WAAA,SAAA,CAoBzCH,OAAO,CAAA;CAAA;CAAA,UAAAD,4BAAA,MAAA,OAAA,GAAA,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwGRM,UAAUC,YAAyBC,MAA+E;EAChH,OAAOA;CACT;AACF"}