@livepreso/api 6.53.0 → 6.53.1
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.
- package/.rush/temp/chunked-rush-logs/api.build.chunks.jsonl +9 -0
- package/.rush/temp/operation/build/all.log +9 -0
- package/.rush/temp/operation/build/error.log +3 -0
- package/.rush/temp/operation/build/log-chunks.jsonl +9 -0
- package/.rush/temp/operation/build/state.json +3 -0
- package/.rush/temp/shrinkwrap-deps.json +11 -2
- package/CHANGELOG.json +15 -0
- package/CHANGELOG.md +9 -1
- package/cjs/collections/base.js +15 -1
- package/cjs/collections/base.js.map +1 -1
- package/cjs/collections/base.spec.js +61 -0
- package/cjs/collections/base.spec.js.map +1 -1
- package/cjs/models/base.js +54 -12
- package/cjs/models/base.js.map +1 -1
- package/cjs/models/base.spec.js +28 -0
- package/cjs/models/base.spec.js.map +1 -1
- package/cjs/models/deck-version.js +14 -5
- package/cjs/models/deck-version.js.map +1 -1
- package/cjs/presentation/presentation-section.js +1 -1
- package/cjs/presentation/presentation-section.js.map +1 -1
- package/cjs/presentation/presentation-slide.js +2 -2
- package/cjs/presentation/presentation-slide.js.map +1 -1
- package/package.json +1 -1
- package/rush-logs/api.build.cache.log +1 -0
- package/rush-logs/api.build.error.log +3 -0
- package/rush-logs/api.build.log +9 -0
- package/src/collections/base.js +13 -2
- package/src/collections/base.spec.js +37 -0
- package/src/models/base.js +38 -11
- package/src/models/base.spec.js +18 -0
- package/src/models/deck-version.js +7 -4
- package/src/presentation/presentation-section.js +1 -1
- package/src/presentation/presentation-slide.js +2 -2
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{"kind":"O","text":"Invoking: run-p build:* \n"}
|
|
2
|
+
{"kind":"O","text":"\n"}
|
|
3
|
+
{"kind":"O","text":"> @livepreso/api@6.53.0 build:cjs\n"}
|
|
4
|
+
{"kind":"O","text":"> BABEL_ENV=cjs babel --delete-dir-on-start src/ --out-dir=cjs/ -s\n"}
|
|
5
|
+
{"kind":"O","text":"\n"}
|
|
6
|
+
{"kind":"E","text":"Browserslist: browsers data (caniuse-lite) is 8 months old. Please run:\n"}
|
|
7
|
+
{"kind":"E","text":" npx update-browserslist-db@latest\n"}
|
|
8
|
+
{"kind":"E","text":" Why you should do it regularly: https://github.com/browserslist/update-db#readme\n"}
|
|
9
|
+
{"kind":"O","text":"Successfully compiled 163 files with Babel (3818ms).\n"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
Invoking: run-p build:*
|
|
2
|
+
|
|
3
|
+
> @livepreso/api@6.53.0 build:cjs
|
|
4
|
+
> BABEL_ENV=cjs babel --delete-dir-on-start src/ --out-dir=cjs/ -s
|
|
5
|
+
|
|
6
|
+
Browserslist: browsers data (caniuse-lite) is 8 months old. Please run:
|
|
7
|
+
npx update-browserslist-db@latest
|
|
8
|
+
Why you should do it regularly: https://github.com/browserslist/update-db#readme
|
|
9
|
+
Successfully compiled 163 files with Babel (3818ms).
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{"kind":"O","text":"Invoking: run-p build:* \n"}
|
|
2
|
+
{"kind":"O","text":"\n"}
|
|
3
|
+
{"kind":"O","text":"> @livepreso/api@6.53.0 build:cjs\n"}
|
|
4
|
+
{"kind":"O","text":"> BABEL_ENV=cjs babel --delete-dir-on-start src/ --out-dir=cjs/ -s\n"}
|
|
5
|
+
{"kind":"O","text":"\n"}
|
|
6
|
+
{"kind":"E","text":"Browserslist: browsers data (caniuse-lite) is 8 months old. Please run:\n"}
|
|
7
|
+
{"kind":"E","text":" npx update-browserslist-db@latest\n"}
|
|
8
|
+
{"kind":"E","text":" Why you should do it regularly: https://github.com/browserslist/update-db#readme\n"}
|
|
9
|
+
{"kind":"O","text":"Successfully compiled 163 files with Babel (3818ms).\n"}
|
|
@@ -3,9 +3,11 @@
|
|
|
3
3
|
"/@ampproject/remapping@2.3.0": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
|
|
4
4
|
"/@babel/cli@7.16.8(@babel/core@7.26.0)": "sha512-FTKBbxyk5TclXOGmwYyqelqP5IF6hMxaeJskd85jbR5jBfYlwqgwAbJwnixi1ZBbTqKfFuAA95mdmUFeSRwyJA==",
|
|
5
5
|
"/@babel/code-frame@7.26.2": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==",
|
|
6
|
+
"/@babel/code-frame@7.27.1": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==",
|
|
6
7
|
"/@babel/compat-data@7.26.2": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==",
|
|
7
8
|
"/@babel/core@7.26.0": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==",
|
|
8
9
|
"/@babel/generator@7.26.2": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==",
|
|
10
|
+
"/@babel/generator@7.28.0": "sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==",
|
|
9
11
|
"/@babel/helper-annotate-as-pure@7.25.9": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==",
|
|
10
12
|
"/@babel/helper-builder-binary-assignment-operator-visitor@7.25.9": "sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==",
|
|
11
13
|
"/@babel/helper-compilation-targets@7.25.9": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==",
|
|
@@ -14,6 +16,7 @@
|
|
|
14
16
|
"/@babel/helper-define-polyfill-provider@0.2.4(@babel/core@7.26.0)": "sha512-OrpPZ97s+aPi6h2n1OXzdhVis1SGSsMU2aMHgLcOKfsp4/v1NWpx3CWT3lBj5eeBq9cDkPkh+YCfdF7O12uNDQ==",
|
|
15
17
|
"/@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.26.0)": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==",
|
|
16
18
|
"/@babel/helper-environment-visitor@7.24.7": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==",
|
|
19
|
+
"/@babel/helper-globals@7.28.0": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
|
|
17
20
|
"/@babel/helper-member-expression-to-functions@7.25.9": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==",
|
|
18
21
|
"/@babel/helper-module-imports@7.25.9": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==",
|
|
19
22
|
"/@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==",
|
|
@@ -24,11 +27,13 @@
|
|
|
24
27
|
"/@babel/helper-simple-access@7.25.9": "sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==",
|
|
25
28
|
"/@babel/helper-skip-transparent-expression-wrappers@7.25.9": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==",
|
|
26
29
|
"/@babel/helper-string-parser@7.25.9": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
|
|
30
|
+
"/@babel/helper-string-parser@7.27.1": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
|
|
27
31
|
"/@babel/helper-validator-identifier@7.25.9": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
|
|
32
|
+
"/@babel/helper-validator-identifier@7.27.1": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==",
|
|
28
33
|
"/@babel/helper-validator-option@7.25.9": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==",
|
|
29
34
|
"/@babel/helper-wrap-function@7.25.9": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==",
|
|
30
35
|
"/@babel/helpers@7.26.0": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==",
|
|
31
|
-
"/@babel/parser@7.
|
|
36
|
+
"/@babel/parser@7.28.0": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==",
|
|
32
37
|
"/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.26.0)": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==",
|
|
33
38
|
"/@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.26.0)": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==",
|
|
34
39
|
"/@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.26.0)": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==",
|
|
@@ -109,8 +114,10 @@
|
|
|
109
114
|
"/@babel/register@7.16.9(@babel/core@7.26.0)": "sha512-jJ72wcghdRIlENfvALcyODhNoGE5j75cYHdC+aQMh6cU/P86tiiXTp9XYZct1UxUMo/4+BgQRyNZEGx0KWGS+g==",
|
|
110
115
|
"/@babel/runtime@7.17.9": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==",
|
|
111
116
|
"/@babel/template@7.25.9": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==",
|
|
112
|
-
"/@babel/
|
|
117
|
+
"/@babel/template@7.27.2": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==",
|
|
118
|
+
"/@babel/traverse@7.28.0": "sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==",
|
|
113
119
|
"/@babel/types@7.26.0": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==",
|
|
120
|
+
"/@babel/types@7.28.2": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==",
|
|
114
121
|
"/@bcoe/v8-coverage@0.2.3": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
|
|
115
122
|
"/@cnakazawa/watch@1.0.4": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==",
|
|
116
123
|
"/@discoveryjs/json-ext@0.5.7": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==",
|
|
@@ -155,12 +162,14 @@
|
|
|
155
162
|
"/@jest/types@24.9.0": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
|
|
156
163
|
"/@jest/types@26.6.2": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==",
|
|
157
164
|
"/@jest/types@29.6.3": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==",
|
|
165
|
+
"/@jridgewell/gen-mapping@0.3.13": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
|
|
158
166
|
"/@jridgewell/gen-mapping@0.3.5": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
|
|
159
167
|
"/@jridgewell/resolve-uri@3.1.2": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
|
|
160
168
|
"/@jridgewell/set-array@1.2.1": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
|
|
161
169
|
"/@jridgewell/source-map@0.3.6": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
|
|
162
170
|
"/@jridgewell/sourcemap-codec@1.5.0": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
|
|
163
171
|
"/@jridgewell/trace-mapping@0.3.25": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
|
|
172
|
+
"/@jridgewell/trace-mapping@0.3.30": "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==",
|
|
164
173
|
"/@leichtgewicht/ip-codec@2.0.5": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==",
|
|
165
174
|
"/@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==",
|
|
166
175
|
"/@sinclair/typebox@0.27.8": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
|
package/CHANGELOG.json
CHANGED
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@livepreso/api",
|
|
3
3
|
"entries": [
|
|
4
|
+
{
|
|
5
|
+
"version": "6.53.1",
|
|
6
|
+
"tag": "@livepreso/api_v6.53.1",
|
|
7
|
+
"date": "Mon, 25 Aug 2025 09:37:11 GMT",
|
|
8
|
+
"comments": {
|
|
9
|
+
"patch": [
|
|
10
|
+
{
|
|
11
|
+
"comment": "Deal with non strings when getting ID from URL"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"comment": "Fix cmsvalkey collection for impostor slides created from manifest"
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
},
|
|
4
19
|
{
|
|
5
20
|
"version": "6.53.0",
|
|
6
21
|
"tag": "@livepreso/api_v6.53.0",
|
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
# Change Log - @livepreso/api
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Mon, 25 Aug 2025 09:37:11 GMT and should not be manually modified.
|
|
4
|
+
|
|
5
|
+
## 6.53.1
|
|
6
|
+
Mon, 25 Aug 2025 09:37:11 GMT
|
|
7
|
+
|
|
8
|
+
### Patches
|
|
9
|
+
|
|
10
|
+
- Deal with non strings when getting ID from URL
|
|
11
|
+
- Fix cmsvalkey collection for impostor slides created from manifest
|
|
4
12
|
|
|
5
13
|
## 6.53.0
|
|
6
14
|
Tue, 08 Jul 2025 01:48:30 GMT
|
package/cjs/collections/base.js
CHANGED
|
@@ -308,7 +308,21 @@ var BaseCollection = exports.BaseCollection = _ampersandRestCollection.default.e
|
|
|
308
308
|
return true;
|
|
309
309
|
},
|
|
310
310
|
serialize: function serialize() {
|
|
311
|
-
var
|
|
311
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
312
|
+
args[_key] = arguments[_key];
|
|
313
|
+
}
|
|
314
|
+
// Don't use the base collection serialize so we can pass in
|
|
315
|
+
// arguments
|
|
316
|
+
var collection = this.map(function (model) {
|
|
317
|
+
if (model.serialize) {
|
|
318
|
+
return model.serialize.apply(model, args);
|
|
319
|
+
} else {
|
|
320
|
+
var out = {};
|
|
321
|
+
_lodash.default.assign(out, model);
|
|
322
|
+
delete out.collection;
|
|
323
|
+
return out;
|
|
324
|
+
}
|
|
325
|
+
});
|
|
312
326
|
if (_lodash.default.isObject(this._data) && this._data.url && !collection.length) {
|
|
313
327
|
return this._data.url;
|
|
314
328
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","names":["_api","require","_base","_ampersandRestCollection","_interopRequireDefault","_bluebird","_lodash","_log","_qs","_stateRegister","_sync2","_excluded","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_createForOfIteratorHelper","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","_n","F","s","n","done","value","f","TypeError","a","u","call","next","return","_arrayLikeToArray","toString","slice","constructor","name","from","test","pageLimit","BaseCollection","exports","Collection","extend","modelName","model","BaseModel","fetchEmpty","urlMatchKeys","defaultFetchData","per_page","_data","undefined","opts","data","options","_","defaults","newData","toJSON","_options","queryData","url","_url","registerStates","prototype","add","values","args","_prepareModel","attrs","omit","Model","registeredStates","Error","concat","urlRoot","getResourceURL","matchesURL","_matchesURL","getFullURLPath","path","query","queryIndex","indexOf","qs","parse","stringify","arrayFormat","resp","includes","re","matches","match","_iterator","_step","replacement","get","replace","isNew","log","error","err","Api","getURL","sync","fetchModels","Promise","all","models","map","fetch","fetchSet","_this","idSet","id","warn","resolve","otherOpts","_objectWithoutProperties2","tap","reset","results","_this2","cloneDeep","response","fetchAll","_this3","checkPages","notLastPage","total_pages","page","belowPageLimit","fetchPage","then","_this4","_this4$_data$results","_toConsumableArray2","toServer","serialize","out","collection","areModelsFetched","isFetched","every","Boolean","isObject","save","batch","patch","delete","attr","DuplicateIdCollection","_reset","mainIndex"],"sources":["../../src/collections/base.js"],"sourcesContent":["import { Api } from \"../api.js\";\nimport { BaseModel } from \"../models/base.js\";\nimport Collection from \"ampersand-rest-collection\";\nimport Promise from \"bluebird\";\nimport _ from \"lodash\";\nimport log from \"../log.js\";\nimport qs from \"qs\";\nimport { registeredStates } from \"../state-register.js\";\nimport { sync } from \"../sync.js\";\n\n// Current hardcoded limit for maximum number of pages fetched\n// automatically by fetchAll\nconst pageLimit = 20;\n\n/**\n * @constructor\n * @alias collections.BaseCollection\n */\nexport const BaseCollection = Collection.extend(\n\t/** @lends collections.BaseCollection# */ {\n\t\tmodelName: null,\n\t\tmodel: BaseModel,\n\t\tfetchEmpty: false,\n\n\t\t// Object of regexes that should be used to match a url in `matchesURL`\n\t\t// For example the URL: /api/foo/{pk}/bar/ might have the following:\n\t\t//\n\t\t// Example:\n\t\t//\n\t\t// ```\n\t\t// {\n\t\t// pk: \"number\"\n\t\t// }\n\t\t// ```\n\t\turlMatchKeys: {},\n\n\t\tdefaultFetchData: {\n\t\t\tper_page: 1000,\n\t\t},\n\n\t\tconstructor(_data = {}, opts = {}) {\n\t\t\tlet data = _data;\n\t\t\tconst options = _.defaults(opts, {\n\t\t\t\tdata: {},\n\t\t\t});\n\n\t\t\t// We ensure that we pass an array because we don't want the collection constructor to\n\t\t\t// create an empty model using a data object\n\t\t\tlet newData = [];\n\n\t\t\t// Allow passing in collections\n\t\t\tif (data instanceof Collection) {\n\t\t\t\tdata = data.toJSON();\n\t\t\t}\n\n\t\t\tthis._data = data;\n\t\t\tthis._options = options;\n\n\t\t\t// Remove reference to the prototype, or this can accidentally\n\t\t\t// apply to all collections\n\t\t\tthis.queryData = _.extend({}, this.defaultFetchData, options.data);\n\n\t\t\t// Check for specialized url returns from the server. This is for when the\n\t\t\t// server responds with an array of urls rather than object data.\n\t\t\tif (data && data.url) {\n\t\t\t\tthis._url = data.url;\n\t\t\t} else if (data && data.length) {\n\t\t\t\tnewData = data;\n\t\t\t}\n\n\t\t\tthis.registerStates();\n\n\t\t\tCollection.prototype.constructor.call(this, newData, opts);\n\n\t\t\t// Get the name for the collection based on the model\n\t\t\tif (!this.modelName && typeof this.model === \"function\") {\n\t\t\t\tthis.modelName = this.model.prototype.modelName;\n\t\t\t}\n\t\t},\n\n\t\tadd(values) {\n\t\t\tconst args = [...arguments];\n\n\t\t\tif (values && values instanceof Collection) {\n\t\t\t\targs[0] = values.toJSON();\n\t\t\t}\n\n\t\t\treturn Collection.prototype.add.apply(this, args);\n\t\t},\n\n\t\t_prepareModel(attrs, options) {\n\t\t\tconst opts = _.omit(options, [\"data\"]);\n\t\t\treturn Collection.prototype._prepareModel.call(this, attrs, opts);\n\t\t},\n\n\t\tregisterStates() {\n\t\t\tif (typeof this.model === \"string\") {\n\t\t\t\tconst Model = registeredStates[this.model];\n\t\t\t\tif (!Model) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`'${this.model}' not found! Did you forget to import it on the '${this.modelName}' model?`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tthis.model = Model;\n\t\t\t}\n\t\t},\n\n\t\turlRoot() {\n\t\t\treturn this.getResourceURL();\n\t\t},\n\n\t\tmatchesURL(url) {\n\t\t\treturn this.model.prototype._matchesURL(url, false);\n\t\t},\n\n\t\tgetFullURLPath(path) {\n\t\t\tlet url = path;\n\t\t\tif (Object.keys(this.queryData).length) {\n\t\t\t\tlet query = this.queryData;\n\t\t\t\tconst queryIndex = url.indexOf(\"?\");\n\t\t\t\tif (queryIndex > -1) {\n\t\t\t\t\turl = url.slice(0, queryIndex);\n\t\t\t\t\tquery = _.extend(\n\t\t\t\t\t\t{},\n\t\t\t\t\t\tqs.parse(url.slice(queryIndex + 1)),\n\t\t\t\t\t\tthis.queryData,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (url.slice(-1) !== \"/\") {\n\t\t\t\t\turl += \"/\";\n\t\t\t\t}\n\t\t\t\turl += `?${qs.stringify(query, { arrayFormat: \"repeat\" })}`;\n\t\t\t}\n\t\t\treturn url;\n\t\t},\n\n\t\turl() {\n\t\t\tif (this._url) {\n\t\t\t\treturn this.getFullURLPath(this._url);\n\t\t\t}\n\t\t\tlet resp = this.urlRoot();\n\t\t\tif (resp.slice(-1) !== \"/\" && resp.indexOf(\"?\") === -1) {\n\t\t\t\tresp += \"/\";\n\t\t\t}\n\n\t\t\tif (!resp.includes(\"{\") || !resp.includes(\"}\")) {\n\t\t\t\treturn this.getFullURLPath(resp);\n\t\t\t}\n\n\t\t\t// Replace any values in a url with one from the collection's options.\n\t\t\t// So if you have /path/to/{model.id}/models/\n\t\t\t// It will check the collection options for \"model.id\" and replace\n\t\t\t// it in the url\n\t\t\tconst re = /(\\{(?:\\w+\\.?)+\\})/g;\n\t\t\tconst matches = resp.match(re) || [];\n\t\t\tfor (const match of matches) {\n\t\t\t\tconst path = match.slice(1, -1);\n\t\t\t\tconst replacement = _.get(this._options, path);\n\t\t\t\tif (replacement) {\n\t\t\t\t\tresp = resp.replace(match, replacement);\n\t\t\t\t} else if (!this.isNew()) {\n\t\t\t\t\tlog.error(\n\t\t\t\t\t\t`Collection ${this.modelName} is missing value ${path} as an option`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tresp = resp.replace(match, replacement);\n\t\t\t}\n\n\t\t\treturn this.getFullURLPath(resp);\n\t\t},\n\n\t\tgetResourceURL() {\n\t\t\t// If no name is present, assume we want the root API.\n\t\t\tif (this.modelName === null) {\n\t\t\t\treturn Api.getURL();\n\t\t\t}\n\t\t\treturn Api.getResourceURL(this.modelName);\n\t\t},\n\n\t\tsync() {\n\t\t\t// Use our own sync instead of the default ampersand one\n\t\t\treturn sync.apply(this, arguments);\n\t\t},\n\n\t\tfetchModels(options = {}) {\n\t\t\treturn Promise.all(this.models.map((model) => model.fetch(options)));\n\t\t},\n\n\t\tfetchSet(opts = {}) {\n\t\t\tconst idSet = this.models.map((model) => model.id);\n\n\t\t\tif (!idSet.length) {\n\t\t\t\tlog.warn(`Tried to fetch ${this.modelName} set with no models`);\n\t\t\t\treturn Promise.resolve();\n\t\t\t}\n\n\t\t\tconst { data, ...otherOpts } = opts;\n\n\t\t\tconst options = {\n\t\t\t\tdata: {\n\t\t\t\t\t...data,\n\t\t\t\t\tid: idSet,\n\t\t\t\t},\n\t\t\t\t...otherOpts,\n\t\t\t};\n\n\t\t\t// Necessary because these models were already initialised before the fetch,\n\t\t\t// and the children weren't updated correctly with the new data.\n\t\t\treturn this.fetch(options).tap((data) => {\n\t\t\t\tthis.reset();\n\t\t\t\tthis.add(data.results);\n\t\t\t});\n\t\t},\n\n\t\tfetch(opts = {}) {\n\t\t\tconst options = _.cloneDeep(opts);\n\n\t\t\t// Add default params to the fetch (ie ?per_page=1000)\n\t\t\toptions.data = _.extend({}, this.queryData, options.data || {});\n\t\t\tthis._options = _.extend({}, this._options, options);\n\n\t\t\tthis.queryData = { ...options.data };\n\t\t\tif (options.url) {\n\t\t\t\tthis._url = options.url;\n\t\t\t}\n\n\t\t\treturn Collection.prototype.fetch.call(this, options).tap((response) => {\n\t\t\t\tthis._data = response;\n\t\t\t});\n\t\t},\n\n\t\tfetchAll(opts = {}) {\n\t\t\tconst options = _.cloneDeep(opts);\n\n\t\t\t// Add default params to the fetch (ie ?per_page=1000)\n\t\t\toptions.data = _.extend({}, this.queryData, options.data || {});\n\t\t\tthis._options = _.extend({}, this._options, options);\n\n\t\t\tthis.queryData = { ...this._options.data };\n\n\t\t\tif (this._options.url) {\n\t\t\t\tthis._url = options.url;\n\t\t\t}\n\n\t\t\tconst checkPages = (response) => {\n\t\t\t\tconst notLastPage = response.total_pages > response.page;\n\t\t\t\tconst belowPageLimit = response.page < pageLimit;\n\n\t\t\t\tif (notLastPage && belowPageLimit) {\n\t\t\t\t\tconst options = {\n\t\t\t\t\t\t...this._options,\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t...this._options.data,\n\t\t\t\t\t\t\tpage: response.page + 1,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\n\t\t\t\t\t// Update the collection with the new data & page number\n\t\t\t\t\tthis._options = options;\n\t\t\t\t\tthis.queryData = { ...options.data };\n\n\t\t\t\t\treturn this.fetchPage().then((response) => {\n\t\t\t\t\t\treturn checkPages(response);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t// The collection's models are replaced with the latest\n\t\t\t\t\t// batch of models every time a new page is fetched.\n\t\t\t\t\t// Here we add back all of the previously-fetched models.\n\t\t\t\t\tthis.add(this._data.results);\n\t\t\t\t\treturn this._data;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\treturn this.fetchPage().then((response) => {\n\t\t\t\treturn checkPages(response);\n\t\t\t});\n\t\t},\n\n\t\tfetchPage() {\n\t\t\treturn Collection.prototype.fetch\n\t\t\t\t.call(this, this._options)\n\t\t\t\t.then((response) => {\n\t\t\t\t\t// Add the response data to this._data - if we're fetching\n\t\t\t\t\t// multiple pages, this._data.results will contain all of the\n\t\t\t\t\t// results fetched from all pages so far\n\t\t\t\t\tif (this._data.results?.length) {\n\t\t\t\t\t\tthis._data = {\n\t\t\t\t\t\t\t...response,\n\t\t\t\t\t\t\tresults: [...this._data.results, ...response.results],\n\t\t\t\t\t\t};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._data = response;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn response;\n\t\t\t\t});\n\t\t},\n\n\t\ttoServer() {\n\t\t\treturn this.map((model) => {\n\t\t\t\tif (model.toServer) {\n\t\t\t\t\treturn model.toServer();\n\t\t\t\t} else if (model.serialize) {\n\t\t\t\t\treturn model.serialize();\n\t\t\t\t}\n\n\t\t\t\tconst out = {};\n\t\t\t\t_.extend(out, model);\n\t\t\t\tdelete out.collection;\n\t\t\t\treturn out;\n\t\t\t});\n\t\t},\n\n\t\t// Returns \"true\" if all child models have been fetched\n\t\tareModelsFetched() {\n\t\t\treturn this.map((model) => model.isFetched()).every(Boolean);\n\t\t},\n\n\t\tisNew() {\n\t\t\treturn true;\n\t\t},\n\n\t\tserialize() {\n\t\t\tconst collection = Collection.prototype.serialize.call(this);\n\n\t\t\tif (_.isObject(this._data) && this._data.url && !collection.length) {\n\t\t\t\treturn this._data.url;\n\t\t\t}\n\n\t\t\treturn collection;\n\t\t},\n\n\t\tsave(options = {}) {\n\t\t\tconst { batch, patch } = options;\n\n\t\t\tif (batch || !this.length) {\n\t\t\t\tif (patch) {\n\t\t\t\t\treturn this.sync(\"patch\", this, options);\n\t\t\t\t}\n\t\t\t\treturn this.sync(\"create\", this, options);\n\t\t\t}\n\n\t\t\treturn Promise.all(\n\t\t\t\tthis.map((model) => {\n\t\t\t\t\treturn model.save(model.toServer(), options);\n\t\t\t\t}),\n\t\t\t);\n\t\t},\n\n\t\tdelete(options = {}) {\n\t\t\tconst { batch } = options;\n\n\t\t\tif (batch) {\n\t\t\t\treturn this.sync(\"delete\", this, options);\n\t\t\t}\n\n\t\t\treturn Promise.all(\n\t\t\t\tthis.map((model) => {\n\t\t\t\t\treturn model.delete(model.toServer(), options);\n\t\t\t\t}),\n\t\t\t);\n\t\t},\n\n\t\tparse(attrs) {\n\t\t\tconst results = attrs.results || attrs;\n\n\t\t\tif (\n\t\t\t\tArray.isArray(results) &&\n\t\t\t\tresults.length &&\n\t\t\t\ttypeof results[0] === \"string\"\n\t\t\t) {\n\t\t\t\t// Convert any url responses from the server into an object that\n\t\t\t\t// can be passed to the model.\n\t\t\t\t//\n\t\t\t\t// TODO: Regex match for URLs\n\t\t\t\treturn results.map((attr) => {\n\t\t\t\t\treturn { url: attr };\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn results;\n\t\t},\n\t},\n);\n\n// Make matchesURL available as a static method\nBaseCollection.matchesURL = function (url) {\n\treturn this.prototype.matchesURL(url);\n};\n\n// Use this instead of BaseCollection if you want to allow for saving a collection\n// with multiple versions of the same model (the same ID).\nexport const DuplicateIdCollection = BaseCollection.extend({\n\t_reset() {\n\t\t// This function is the first thing called before the models are added\n\t\t// to the collection. There's no earlier/easier place to do this - we\n\t\t// want to be able to add the same model multiple times with the same ID\n\t\t// which is what ampersand doesn't want us to do by default. We set this\n\t\t// to something nonsense to prevent it doing that.\n\t\tthis.mainIndex = \"__disabled__\";\n\t\tBaseCollection.prototype._reset.apply(this, arguments);\n\t},\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"base.js","names":["_api","require","_base","_ampersandRestCollection","_interopRequireDefault","_bluebird","_lodash","_log","_qs","_stateRegister","_sync2","_excluded","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_createForOfIteratorHelper","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","_n","F","s","n","done","value","f","TypeError","a","u","call","next","return","_arrayLikeToArray","toString","slice","constructor","name","from","test","pageLimit","BaseCollection","exports","Collection","extend","modelName","model","BaseModel","fetchEmpty","urlMatchKeys","defaultFetchData","per_page","_data","undefined","opts","data","options","_","defaults","newData","toJSON","_options","queryData","url","_url","registerStates","prototype","add","values","args","_prepareModel","attrs","omit","Model","registeredStates","Error","concat","urlRoot","getResourceURL","matchesURL","_matchesURL","getFullURLPath","path","query","queryIndex","indexOf","qs","parse","stringify","arrayFormat","resp","includes","re","matches","match","_iterator","_step","replacement","get","replace","isNew","log","error","err","Api","getURL","sync","fetchModels","Promise","all","models","map","fetch","fetchSet","_this","idSet","id","warn","resolve","otherOpts","_objectWithoutProperties2","tap","reset","results","_this2","cloneDeep","response","fetchAll","_this3","checkPages","notLastPage","total_pages","page","belowPageLimit","fetchPage","then","_this4","_this4$_data$results","_toConsumableArray2","toServer","serialize","out","collection","areModelsFetched","isFetched","every","Boolean","_len","_key","assign","isObject","save","batch","patch","delete","attr","DuplicateIdCollection","_reset","mainIndex"],"sources":["../../src/collections/base.js"],"sourcesContent":["import { Api } from \"../api.js\";\nimport { BaseModel } from \"../models/base.js\";\nimport Collection from \"ampersand-rest-collection\";\nimport Promise from \"bluebird\";\nimport _ from \"lodash\";\nimport log from \"../log.js\";\nimport qs from \"qs\";\nimport { registeredStates } from \"../state-register.js\";\nimport { sync } from \"../sync.js\";\n\n// Current hardcoded limit for maximum number of pages fetched\n// automatically by fetchAll\nconst pageLimit = 20;\n\n/**\n * @constructor\n * @alias collections.BaseCollection\n */\nexport const BaseCollection = Collection.extend(\n\t/** @lends collections.BaseCollection# */ {\n\t\tmodelName: null,\n\t\tmodel: BaseModel,\n\t\tfetchEmpty: false,\n\n\t\t// Object of regexes that should be used to match a url in `matchesURL`\n\t\t// For example the URL: /api/foo/{pk}/bar/ might have the following:\n\t\t//\n\t\t// Example:\n\t\t//\n\t\t// ```\n\t\t// {\n\t\t// pk: \"number\"\n\t\t// }\n\t\t// ```\n\t\turlMatchKeys: {},\n\n\t\tdefaultFetchData: {\n\t\t\tper_page: 1000,\n\t\t},\n\n\t\tconstructor(_data = {}, opts = {}) {\n\t\t\tlet data = _data;\n\t\t\tconst options = _.defaults(opts, {\n\t\t\t\tdata: {},\n\t\t\t});\n\n\t\t\t// We ensure that we pass an array because we don't want the collection constructor to\n\t\t\t// create an empty model using a data object\n\t\t\tlet newData = [];\n\n\t\t\t// Allow passing in collections\n\t\t\tif (data instanceof Collection) {\n\t\t\t\tdata = data.toJSON();\n\t\t\t}\n\n\t\t\tthis._data = data;\n\t\t\tthis._options = options;\n\n\t\t\t// Remove reference to the prototype, or this can accidentally\n\t\t\t// apply to all collections\n\t\t\tthis.queryData = _.extend({}, this.defaultFetchData, options.data);\n\n\t\t\t// Check for specialized url returns from the server. This is for when the\n\t\t\t// server responds with an array of urls rather than object data.\n\t\t\tif (data && data.url) {\n\t\t\t\tthis._url = data.url;\n\t\t\t} else if (data && data.length) {\n\t\t\t\tnewData = data;\n\t\t\t}\n\n\t\t\tthis.registerStates();\n\n\t\t\tCollection.prototype.constructor.call(this, newData, opts);\n\n\t\t\t// Get the name for the collection based on the model\n\t\t\tif (!this.modelName && typeof this.model === \"function\") {\n\t\t\t\tthis.modelName = this.model.prototype.modelName;\n\t\t\t}\n\t\t},\n\n\t\tadd(values) {\n\t\t\tconst args = [...arguments];\n\n\t\t\tif (values && values instanceof Collection) {\n\t\t\t\targs[0] = values.toJSON();\n\t\t\t}\n\n\t\t\treturn Collection.prototype.add.apply(this, args);\n\t\t},\n\n\t\t_prepareModel(attrs, options) {\n\t\t\tconst opts = _.omit(options, [\"data\"]);\n\t\t\treturn Collection.prototype._prepareModel.call(this, attrs, opts);\n\t\t},\n\n\t\tregisterStates() {\n\t\t\tif (typeof this.model === \"string\") {\n\t\t\t\tconst Model = registeredStates[this.model];\n\t\t\t\tif (!Model) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`'${this.model}' not found! Did you forget to import it on the '${this.modelName}' model?`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tthis.model = Model;\n\t\t\t}\n\t\t},\n\n\t\turlRoot() {\n\t\t\treturn this.getResourceURL();\n\t\t},\n\n\t\tmatchesURL(url) {\n\t\t\treturn this.model.prototype._matchesURL(url, false);\n\t\t},\n\n\t\tgetFullURLPath(path) {\n\t\t\tlet url = path;\n\t\t\tif (Object.keys(this.queryData).length) {\n\t\t\t\tlet query = this.queryData;\n\t\t\t\tconst queryIndex = url.indexOf(\"?\");\n\t\t\t\tif (queryIndex > -1) {\n\t\t\t\t\turl = url.slice(0, queryIndex);\n\t\t\t\t\tquery = _.extend(\n\t\t\t\t\t\t{},\n\t\t\t\t\t\tqs.parse(url.slice(queryIndex + 1)),\n\t\t\t\t\t\tthis.queryData,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (url.slice(-1) !== \"/\") {\n\t\t\t\t\turl += \"/\";\n\t\t\t\t}\n\t\t\t\turl += `?${qs.stringify(query, { arrayFormat: \"repeat\" })}`;\n\t\t\t}\n\t\t\treturn url;\n\t\t},\n\n\t\turl() {\n\t\t\tif (this._url) {\n\t\t\t\treturn this.getFullURLPath(this._url);\n\t\t\t}\n\t\t\tlet resp = this.urlRoot();\n\t\t\tif (resp.slice(-1) !== \"/\" && resp.indexOf(\"?\") === -1) {\n\t\t\t\tresp += \"/\";\n\t\t\t}\n\n\t\t\tif (!resp.includes(\"{\") || !resp.includes(\"}\")) {\n\t\t\t\treturn this.getFullURLPath(resp);\n\t\t\t}\n\n\t\t\t// Replace any values in a url with one from the collection's options.\n\t\t\t// So if you have /path/to/{model.id}/models/\n\t\t\t// It will check the collection options for \"model.id\" and replace\n\t\t\t// it in the url\n\t\t\tconst re = /(\\{(?:\\w+\\.?)+\\})/g;\n\t\t\tconst matches = resp.match(re) || [];\n\t\t\tfor (const match of matches) {\n\t\t\t\tconst path = match.slice(1, -1);\n\t\t\t\tconst replacement = _.get(this._options, path);\n\t\t\t\tif (replacement) {\n\t\t\t\t\tresp = resp.replace(match, replacement);\n\t\t\t\t} else if (!this.isNew()) {\n\t\t\t\t\tlog.error(\n\t\t\t\t\t\t`Collection ${this.modelName} is missing value ${path} as an option`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tresp = resp.replace(match, replacement);\n\t\t\t}\n\n\t\t\treturn this.getFullURLPath(resp);\n\t\t},\n\n\t\tgetResourceURL() {\n\t\t\t// If no name is present, assume we want the root API.\n\t\t\tif (this.modelName === null) {\n\t\t\t\treturn Api.getURL();\n\t\t\t}\n\t\t\treturn Api.getResourceURL(this.modelName);\n\t\t},\n\n\t\tsync() {\n\t\t\t// Use our own sync instead of the default ampersand one\n\t\t\treturn sync.apply(this, arguments);\n\t\t},\n\n\t\tfetchModels(options = {}) {\n\t\t\treturn Promise.all(this.models.map((model) => model.fetch(options)));\n\t\t},\n\n\t\tfetchSet(opts = {}) {\n\t\t\tconst idSet = this.models.map((model) => model.id);\n\n\t\t\tif (!idSet.length) {\n\t\t\t\tlog.warn(`Tried to fetch ${this.modelName} set with no models`);\n\t\t\t\treturn Promise.resolve();\n\t\t\t}\n\n\t\t\tconst { data, ...otherOpts } = opts;\n\n\t\t\tconst options = {\n\t\t\t\tdata: {\n\t\t\t\t\t...data,\n\t\t\t\t\tid: idSet,\n\t\t\t\t},\n\t\t\t\t...otherOpts,\n\t\t\t};\n\n\t\t\t// Necessary because these models were already initialised before the fetch,\n\t\t\t// and the children weren't updated correctly with the new data.\n\t\t\treturn this.fetch(options).tap((data) => {\n\t\t\t\tthis.reset();\n\t\t\t\tthis.add(data.results);\n\t\t\t});\n\t\t},\n\n\t\tfetch(opts = {}) {\n\t\t\tconst options = _.cloneDeep(opts);\n\n\t\t\t// Add default params to the fetch (ie ?per_page=1000)\n\t\t\toptions.data = _.extend({}, this.queryData, options.data || {});\n\t\t\tthis._options = _.extend({}, this._options, options);\n\n\t\t\tthis.queryData = { ...options.data };\n\t\t\tif (options.url) {\n\t\t\t\tthis._url = options.url;\n\t\t\t}\n\n\t\t\treturn Collection.prototype.fetch.call(this, options).tap((response) => {\n\t\t\t\tthis._data = response;\n\t\t\t});\n\t\t},\n\n\t\tfetchAll(opts = {}) {\n\t\t\tconst options = _.cloneDeep(opts);\n\n\t\t\t// Add default params to the fetch (ie ?per_page=1000)\n\t\t\toptions.data = _.extend({}, this.queryData, options.data || {});\n\t\t\tthis._options = _.extend({}, this._options, options);\n\n\t\t\tthis.queryData = { ...this._options.data };\n\n\t\t\tif (this._options.url) {\n\t\t\t\tthis._url = options.url;\n\t\t\t}\n\n\t\t\tconst checkPages = (response) => {\n\t\t\t\tconst notLastPage = response.total_pages > response.page;\n\t\t\t\tconst belowPageLimit = response.page < pageLimit;\n\n\t\t\t\tif (notLastPage && belowPageLimit) {\n\t\t\t\t\tconst options = {\n\t\t\t\t\t\t...this._options,\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t...this._options.data,\n\t\t\t\t\t\t\tpage: response.page + 1,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\n\t\t\t\t\t// Update the collection with the new data & page number\n\t\t\t\t\tthis._options = options;\n\t\t\t\t\tthis.queryData = { ...options.data };\n\n\t\t\t\t\treturn this.fetchPage().then((response) => {\n\t\t\t\t\t\treturn checkPages(response);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t// The collection's models are replaced with the latest\n\t\t\t\t\t// batch of models every time a new page is fetched.\n\t\t\t\t\t// Here we add back all of the previously-fetched models.\n\t\t\t\t\tthis.add(this._data.results);\n\t\t\t\t\treturn this._data;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\treturn this.fetchPage().then((response) => {\n\t\t\t\treturn checkPages(response);\n\t\t\t});\n\t\t},\n\n\t\tfetchPage() {\n\t\t\treturn Collection.prototype.fetch\n\t\t\t\t.call(this, this._options)\n\t\t\t\t.then((response) => {\n\t\t\t\t\t// Add the response data to this._data - if we're fetching\n\t\t\t\t\t// multiple pages, this._data.results will contain all of the\n\t\t\t\t\t// results fetched from all pages so far\n\t\t\t\t\tif (this._data.results?.length) {\n\t\t\t\t\t\tthis._data = {\n\t\t\t\t\t\t\t...response,\n\t\t\t\t\t\t\tresults: [...this._data.results, ...response.results],\n\t\t\t\t\t\t};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._data = response;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn response;\n\t\t\t\t});\n\t\t},\n\n\t\ttoServer() {\n\t\t\treturn this.map((model) => {\n\t\t\t\tif (model.toServer) {\n\t\t\t\t\treturn model.toServer();\n\t\t\t\t} else if (model.serialize) {\n\t\t\t\t\treturn model.serialize();\n\t\t\t\t}\n\n\t\t\t\tconst out = {};\n\t\t\t\t_.extend(out, model);\n\t\t\t\tdelete out.collection;\n\t\t\t\treturn out;\n\t\t\t});\n\t\t},\n\n\t\t// Returns \"true\" if all child models have been fetched\n\t\tareModelsFetched() {\n\t\t\treturn this.map((model) => model.isFetched()).every(Boolean);\n\t\t},\n\n\t\tisNew() {\n\t\t\treturn true;\n\t\t},\n\n\t\tserialize(...args) {\n\t\t\t// Don't use the base collection serialize so we can pass in\n\t\t\t// arguments\n\t\t\tconst collection = this.map((model) => {\n\t\t\t\tif (model.serialize) {\n\t\t\t\t\treturn model.serialize(...args);\n\t\t\t\t} else {\n\t\t\t\t\tconst out = {};\n\t\t\t\t\t_.assign(out, model);\n\t\t\t\t\tdelete out.collection;\n\t\t\t\t\treturn out;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (_.isObject(this._data) && this._data.url && !collection.length) {\n\t\t\t\treturn this._data.url;\n\t\t\t}\n\n\t\t\treturn collection;\n\t\t},\n\n\t\tsave(options = {}) {\n\t\t\tconst { batch, patch } = options;\n\n\t\t\tif (batch || !this.length) {\n\t\t\t\tif (patch) {\n\t\t\t\t\treturn this.sync(\"patch\", this, options);\n\t\t\t\t}\n\t\t\t\treturn this.sync(\"create\", this, options);\n\t\t\t}\n\n\t\t\treturn Promise.all(\n\t\t\t\tthis.map((model) => {\n\t\t\t\t\treturn model.save(model.toServer(), options);\n\t\t\t\t}),\n\t\t\t);\n\t\t},\n\n\t\tdelete(options = {}) {\n\t\t\tconst { batch } = options;\n\n\t\t\tif (batch) {\n\t\t\t\treturn this.sync(\"delete\", this, options);\n\t\t\t}\n\n\t\t\treturn Promise.all(\n\t\t\t\tthis.map((model) => {\n\t\t\t\t\treturn model.delete(model.toServer(), options);\n\t\t\t\t}),\n\t\t\t);\n\t\t},\n\n\t\tparse(attrs) {\n\t\t\tconst results = attrs.results || attrs;\n\n\t\t\tif (\n\t\t\t\tArray.isArray(results) &&\n\t\t\t\tresults.length &&\n\t\t\t\ttypeof results[0] === \"string\"\n\t\t\t) {\n\t\t\t\t// Convert any url responses from the server into an object that\n\t\t\t\t// can be passed to the model.\n\t\t\t\t//\n\t\t\t\t// TODO: Regex match for URLs\n\t\t\t\treturn results.map((attr) => {\n\t\t\t\t\treturn { url: attr };\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn results;\n\t\t},\n\t},\n);\n\n// Make matchesURL available as a static method\nBaseCollection.matchesURL = function (url) {\n\treturn this.prototype.matchesURL(url);\n};\n\n// Use this instead of BaseCollection if you want to allow for saving a collection\n// with multiple versions of the same model (the same ID).\nexport const DuplicateIdCollection = BaseCollection.extend({\n\t_reset() {\n\t\t// This function is the first thing called before the models are added\n\t\t// to the collection. There's no earlier/easier place to do this - we\n\t\t// want to be able to add the same model multiple times with the same ID\n\t\t// which is what ampersand doesn't want us to do by default. We set this\n\t\t// to something nonsense to prevent it doing that.\n\t\tthis.mainIndex = \"__disabled__\";\n\t\tBaseCollection.prototype._reset.apply(this, arguments);\n\t},\n});\n"],"mappings":";;;;;;;;;;AAAA,IAAAA,IAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,wBAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,SAAA,GAAAD,sBAAA,CAAAH,OAAA;AACA,IAAAK,OAAA,GAAAF,sBAAA,CAAAH,OAAA;AACA,IAAAM,IAAA,GAAAH,sBAAA,CAAAH,OAAA;AACA,IAAAO,GAAA,GAAAJ,sBAAA,CAAAH,OAAA;AACA,IAAAQ,cAAA,GAAAR,OAAA;AACA,IAAAS,MAAA,GAAAT,OAAA;AAAkC,IAAAU,SAAA;AAAA,SAAAC,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAJ,CAAA,OAAAG,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAL,CAAA,GAAAC,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAR,CAAA,EAAAC,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAZ,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAI,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,QAAAe,gBAAA,CAAAC,OAAA,EAAAjB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAe,yBAAA,GAAAf,MAAA,CAAAgB,gBAAA,CAAAnB,CAAA,EAAAG,MAAA,CAAAe,yBAAA,CAAAhB,CAAA,KAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAiB,cAAA,CAAApB,CAAA,EAAAC,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAAA,SAAAqB,2BAAApB,CAAA,EAAAD,CAAA,QAAAE,CAAA,yBAAAoB,MAAA,IAAArB,CAAA,CAAAqB,MAAA,CAAAC,QAAA,KAAAtB,CAAA,qBAAAC,CAAA,QAAAsB,KAAA,CAAAC,OAAA,CAAAxB,CAAA,MAAAC,CAAA,GAAAwB,2BAAA,CAAAzB,CAAA,MAAAD,CAAA,IAAAC,CAAA,uBAAAA,CAAA,CAAAa,MAAA,IAAAZ,CAAA,KAAAD,CAAA,GAAAC,CAAA,OAAAyB,EAAA,MAAAC,CAAA,YAAAA,EAAA,eAAAC,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAA,EAAA,WAAAH,EAAA,IAAA1B,CAAA,CAAAa,MAAA,KAAAiB,IAAA,WAAAA,IAAA,MAAAC,KAAA,EAAA/B,CAAA,CAAA0B,EAAA,UAAA3B,CAAA,WAAAA,EAAAC,CAAA,UAAAA,CAAA,KAAAgC,CAAA,EAAAL,CAAA,gBAAAM,SAAA,iJAAA5B,CAAA,EAAA6B,CAAA,OAAAC,CAAA,gBAAAP,CAAA,WAAAA,EAAA,IAAA3B,CAAA,GAAAA,CAAA,CAAAmC,IAAA,CAAApC,CAAA,MAAA6B,CAAA,WAAAA,EAAA,QAAA7B,CAAA,GAAAC,CAAA,CAAAoC,IAAA,WAAAH,CAAA,GAAAlC,CAAA,CAAA8B,IAAA,EAAA9B,CAAA,KAAAD,CAAA,WAAAA,EAAAC,CAAA,IAAAmC,CAAA,OAAA9B,CAAA,GAAAL,CAAA,KAAAgC,CAAA,WAAAA,EAAA,UAAAE,CAAA,YAAAjC,CAAA,CAAAqC,MAAA,IAAArC,CAAA,CAAAqC,MAAA,oBAAAH,CAAA,QAAA9B,CAAA;AAAA,SAAAoB,4BAAAzB,CAAA,EAAAkC,CAAA,QAAAlC,CAAA,2BAAAA,CAAA,SAAAuC,iBAAA,CAAAvC,CAAA,EAAAkC,CAAA,OAAAjC,CAAA,MAAAuC,QAAA,CAAAJ,IAAA,CAAApC,CAAA,EAAAyC,KAAA,6BAAAxC,CAAA,IAAAD,CAAA,CAAA0C,WAAA,KAAAzC,CAAA,GAAAD,CAAA,CAAA0C,WAAA,CAAAC,IAAA,aAAA1C,CAAA,cAAAA,CAAA,GAAAsB,KAAA,CAAAqB,IAAA,CAAA5C,CAAA,oBAAAC,CAAA,+CAAA4C,IAAA,CAAA5C,CAAA,IAAAsC,iBAAA,CAAAvC,CAAA,EAAAkC,CAAA;AAAA,SAAAK,kBAAAvC,CAAA,EAAAkC,CAAA,aAAAA,CAAA,IAAAA,CAAA,GAAAlC,CAAA,CAAAa,MAAA,MAAAqB,CAAA,GAAAlC,CAAA,CAAAa,MAAA,YAAAd,CAAA,MAAA8B,CAAA,GAAAN,KAAA,CAAAW,CAAA,GAAAnC,CAAA,GAAAmC,CAAA,EAAAnC,CAAA,IAAA8B,CAAA,CAAA9B,CAAA,IAAAC,CAAA,CAAAD,CAAA,UAAA8B,CAAA;AAElC;AACA;AACA,IAAMiB,SAAS,GAAG,EAAE;;AAEpB;AACA;AACA;AACA;AACO,IAAMC,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAGE,gCAAU,CAACC,MAAM,CAC9C,yCAA0C;EACzCC,SAAS,EAAE,IAAI;EACfC,KAAK,EAAEC,eAAS;EAChBC,UAAU,EAAE,KAAK;EAEjB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACAC,YAAY,EAAE,CAAC,CAAC;EAEhBC,gBAAgB,EAAE;IACjBC,QAAQ,EAAE;EACX,CAAC;EAEDf,WAAW,WAAXA,WAAWA,CAAA,EAAwB;IAAA,IAAvBgB,KAAK,GAAA9C,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA+C,SAAA,GAAA/C,SAAA,MAAG,CAAC,CAAC;IAAA,IAAEgD,IAAI,GAAAhD,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA+C,SAAA,GAAA/C,SAAA,MAAG,CAAC,CAAC;IAChC,IAAIiD,IAAI,GAAGH,KAAK;IAChB,IAAMI,OAAO,GAAGC,eAAC,CAACC,QAAQ,CAACJ,IAAI,EAAE;MAChCC,IAAI,EAAE,CAAC;IACR,CAAC,CAAC;;IAEF;IACA;IACA,IAAII,OAAO,GAAG,EAAE;;IAEhB;IACA,IAAIJ,IAAI,YAAYZ,gCAAU,EAAE;MAC/BY,IAAI,GAAGA,IAAI,CAACK,MAAM,CAAC,CAAC;IACrB;IAEA,IAAI,CAACR,KAAK,GAAGG,IAAI;IACjB,IAAI,CAACM,QAAQ,GAAGL,OAAO;;IAEvB;IACA;IACA,IAAI,CAACM,SAAS,GAAGL,eAAC,CAACb,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAACM,gBAAgB,EAAEM,OAAO,CAACD,IAAI,CAAC;;IAElE;IACA;IACA,IAAIA,IAAI,IAAIA,IAAI,CAACQ,GAAG,EAAE;MACrB,IAAI,CAACC,IAAI,GAAGT,IAAI,CAACQ,GAAG;IACrB,CAAC,MAAM,IAAIR,IAAI,IAAIA,IAAI,CAAChD,MAAM,EAAE;MAC/BoD,OAAO,GAAGJ,IAAI;IACf;IAEA,IAAI,CAACU,cAAc,CAAC,CAAC;IAErBtB,gCAAU,CAACuB,SAAS,CAAC9B,WAAW,CAACN,IAAI,CAAC,IAAI,EAAE6B,OAAO,EAAEL,IAAI,CAAC;;IAE1D;IACA,IAAI,CAAC,IAAI,CAACT,SAAS,IAAI,OAAO,IAAI,CAACC,KAAK,KAAK,UAAU,EAAE;MACxD,IAAI,CAACD,SAAS,GAAG,IAAI,CAACC,KAAK,CAACoB,SAAS,CAACrB,SAAS;IAChD;EACD,CAAC;EAEDsB,GAAG,WAAHA,GAAGA,CAACC,MAAM,EAAE;IACX,IAAMC,IAAI,GAAApD,KAAA,CAAAiD,SAAA,CAAA/B,KAAA,CAAAL,IAAA,CAAOxB,SAAS,CAAC;IAE3B,IAAI8D,MAAM,IAAIA,MAAM,YAAYzB,gCAAU,EAAE;MAC3C0B,IAAI,CAAC,CAAC,CAAC,GAAGD,MAAM,CAACR,MAAM,CAAC,CAAC;IAC1B;IAEA,OAAOjB,gCAAU,CAACuB,SAAS,CAACC,GAAG,CAAC/D,KAAK,CAAC,IAAI,EAAEiE,IAAI,CAAC;EAClD,CAAC;EAEDC,aAAa,WAAbA,aAAaA,CAACC,KAAK,EAAEf,OAAO,EAAE;IAC7B,IAAMF,IAAI,GAAGG,eAAC,CAACe,IAAI,CAAChB,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;IACtC,OAAOb,gCAAU,CAACuB,SAAS,CAACI,aAAa,CAACxC,IAAI,CAAC,IAAI,EAAEyC,KAAK,EAAEjB,IAAI,CAAC;EAClE,CAAC;EAEDW,cAAc,WAAdA,cAAcA,CAAA,EAAG;IAChB,IAAI,OAAO,IAAI,CAACnB,KAAK,KAAK,QAAQ,EAAE;MACnC,IAAM2B,KAAK,GAAGC,+BAAgB,CAAC,IAAI,CAAC5B,KAAK,CAAC;MAC1C,IAAI,CAAC2B,KAAK,EAAE;QACX,MAAM,IAAIE,KAAK,KAAAC,MAAA,CACV,IAAI,CAAC9B,KAAK,uDAAA8B,MAAA,CAAoD,IAAI,CAAC/B,SAAS,aACjF,CAAC;MACF;MACA,IAAI,CAACC,KAAK,GAAG2B,KAAK;IACnB;EACD,CAAC;EAEDI,OAAO,WAAPA,OAAOA,CAAA,EAAG;IACT,OAAO,IAAI,CAACC,cAAc,CAAC,CAAC;EAC7B,CAAC;EAEDC,UAAU,WAAVA,UAAUA,CAAChB,GAAG,EAAE;IACf,OAAO,IAAI,CAACjB,KAAK,CAACoB,SAAS,CAACc,WAAW,CAACjB,GAAG,EAAE,KAAK,CAAC;EACpD,CAAC;EAEDkB,cAAc,WAAdA,cAAcA,CAACC,IAAI,EAAE;IACpB,IAAInB,GAAG,GAAGmB,IAAI;IACd,IAAItF,MAAM,CAACC,IAAI,CAAC,IAAI,CAACiE,SAAS,CAAC,CAACvD,MAAM,EAAE;MACvC,IAAI4E,KAAK,GAAG,IAAI,CAACrB,SAAS;MAC1B,IAAMsB,UAAU,GAAGrB,GAAG,CAACsB,OAAO,CAAC,GAAG,CAAC;MACnC,IAAID,UAAU,GAAG,CAAC,CAAC,EAAE;QACpBrB,GAAG,GAAGA,GAAG,CAAC5B,KAAK,CAAC,CAAC,EAAEiD,UAAU,CAAC;QAC9BD,KAAK,GAAG1B,eAAC,CAACb,MAAM,CACf,CAAC,CAAC,EACF0C,WAAE,CAACC,KAAK,CAACxB,GAAG,CAAC5B,KAAK,CAACiD,UAAU,GAAG,CAAC,CAAC,CAAC,EACnC,IAAI,CAACtB,SACN,CAAC;MACF;MACA,IAAIC,GAAG,CAAC5B,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;QAC1B4B,GAAG,IAAI,GAAG;MACX;MACAA,GAAG,QAAAa,MAAA,CAAQU,WAAE,CAACE,SAAS,CAACL,KAAK,EAAE;QAAEM,WAAW,EAAE;MAAS,CAAC,CAAC,CAAE;IAC5D;IACA,OAAO1B,GAAG;EACX,CAAC;EAEDA,GAAG,WAAHA,GAAGA,CAAA,EAAG;IACL,IAAI,IAAI,CAACC,IAAI,EAAE;MACd,OAAO,IAAI,CAACiB,cAAc,CAAC,IAAI,CAACjB,IAAI,CAAC;IACtC;IACA,IAAI0B,IAAI,GAAG,IAAI,CAACb,OAAO,CAAC,CAAC;IACzB,IAAIa,IAAI,CAACvD,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAIuD,IAAI,CAACL,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;MACvDK,IAAI,IAAI,GAAG;IACZ;IAEA,IAAI,CAACA,IAAI,CAACC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAACD,IAAI,CAACC,QAAQ,CAAC,GAAG,CAAC,EAAE;MAC/C,OAAO,IAAI,CAACV,cAAc,CAACS,IAAI,CAAC;IACjC;;IAEA;IACA;IACA;IACA;IACA,IAAME,EAAE,GAAG,oBAAoB;IAC/B,IAAMC,OAAO,GAAGH,IAAI,CAACI,KAAK,CAACF,EAAE,CAAC,IAAI,EAAE;IAAC,IAAAG,SAAA,GAAAjF,0BAAA,CACjB+E,OAAO;MAAAG,KAAA;IAAA;MAA3B,KAAAD,SAAA,CAAAzE,CAAA,MAAA0E,KAAA,GAAAD,SAAA,CAAAxE,CAAA,IAAAC,IAAA,GAA6B;QAAA,IAAlBsE,KAAK,GAAAE,KAAA,CAAAvE,KAAA;QACf,IAAMyD,IAAI,GAAGY,KAAK,CAAC3D,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/B,IAAM8D,WAAW,GAAGxC,eAAC,CAACyC,GAAG,CAAC,IAAI,CAACrC,QAAQ,EAAEqB,IAAI,CAAC;QAC9C,IAAIe,WAAW,EAAE;UAChBP,IAAI,GAAGA,IAAI,CAACS,OAAO,CAACL,KAAK,EAAEG,WAAW,CAAC;QACxC,CAAC,MAAM,IAAI,CAAC,IAAI,CAACG,KAAK,CAAC,CAAC,EAAE;UACzBC,YAAG,CAACC,KAAK,eAAA1B,MAAA,CACM,IAAI,CAAC/B,SAAS,wBAAA+B,MAAA,CAAqBM,IAAI,kBACtD,CAAC;QACF;QACAQ,IAAI,GAAGA,IAAI,CAACS,OAAO,CAACL,KAAK,EAAEG,WAAW,CAAC;MACxC;IAAC,SAAAM,GAAA;MAAAR,SAAA,CAAAtG,CAAA,CAAA8G,GAAA;IAAA;MAAAR,SAAA,CAAArE,CAAA;IAAA;IAED,OAAO,IAAI,CAACuD,cAAc,CAACS,IAAI,CAAC;EACjC,CAAC;EAEDZ,cAAc,WAAdA,cAAcA,CAAA,EAAG;IAChB;IACA,IAAI,IAAI,CAACjC,SAAS,KAAK,IAAI,EAAE;MAC5B,OAAO2D,QAAG,CAACC,MAAM,CAAC,CAAC;IACpB;IACA,OAAOD,QAAG,CAAC1B,cAAc,CAAC,IAAI,CAACjC,SAAS,CAAC;EAC1C,CAAC;EAED6D,IAAI,WAAJA,IAAIA,CAAA,EAAG;IACN;IACA,OAAOA,WAAI,CAACtG,KAAK,CAAC,IAAI,EAAEE,SAAS,CAAC;EACnC,CAAC;EAEDqG,WAAW,WAAXA,WAAWA,CAAA,EAAe;IAAA,IAAdnD,OAAO,GAAAlD,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA+C,SAAA,GAAA/C,SAAA,MAAG,CAAC,CAAC;IACvB,OAAOsG,iBAAO,CAACC,GAAG,CAAC,IAAI,CAACC,MAAM,CAACC,GAAG,CAAC,UAACjE,KAAK;MAAA,OAAKA,KAAK,CAACkE,KAAK,CAACxD,OAAO,CAAC;IAAA,EAAC,CAAC;EACrE,CAAC;EAEDyD,QAAQ,WAARA,QAAQA,CAAA,EAAY;IAAA,IAAAC,KAAA;IAAA,IAAX5D,IAAI,GAAAhD,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA+C,SAAA,GAAA/C,SAAA,MAAG,CAAC,CAAC;IACjB,IAAM6G,KAAK,GAAG,IAAI,CAACL,MAAM,CAACC,GAAG,CAAC,UAACjE,KAAK;MAAA,OAAKA,KAAK,CAACsE,EAAE;IAAA,EAAC;IAElD,IAAI,CAACD,KAAK,CAAC5G,MAAM,EAAE;MAClB8F,YAAG,CAACgB,IAAI,mBAAAzC,MAAA,CAAmB,IAAI,CAAC/B,SAAS,wBAAqB,CAAC;MAC/D,OAAO+D,iBAAO,CAACU,OAAO,CAAC,CAAC;IACzB;IAEA,IAAQ/D,IAAI,GAAmBD,IAAI,CAA3BC,IAAI;MAAKgE,SAAS,OAAAC,yBAAA,CAAA9G,OAAA,EAAK4C,IAAI,EAAA/D,SAAA;IAEnC,IAAMiE,OAAO,GAAAnD,aAAA;MACZkD,IAAI,EAAAlD,aAAA,CAAAA,aAAA,KACAkD,IAAI;QACP6D,EAAE,EAAED;MAAK;IACT,GACEI,SAAS,CACZ;;IAED;IACA;IACA,OAAO,IAAI,CAACP,KAAK,CAACxD,OAAO,CAAC,CAACiE,GAAG,CAAC,UAAClE,IAAI,EAAK;MACxC2D,KAAI,CAACQ,KAAK,CAAC,CAAC;MACZR,KAAI,CAAC/C,GAAG,CAACZ,IAAI,CAACoE,OAAO,CAAC;IACvB,CAAC,CAAC;EACH,CAAC;EAEDX,KAAK,WAALA,KAAKA,CAAA,EAAY;IAAA,IAAAY,MAAA;IAAA,IAAXtE,IAAI,GAAAhD,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA+C,SAAA,GAAA/C,SAAA,MAAG,CAAC,CAAC;IACd,IAAMkD,OAAO,GAAGC,eAAC,CAACoE,SAAS,CAACvE,IAAI,CAAC;;IAEjC;IACAE,OAAO,CAACD,IAAI,GAAGE,eAAC,CAACb,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAACkB,SAAS,EAAEN,OAAO,CAACD,IAAI,IAAI,CAAC,CAAC,CAAC;IAC/D,IAAI,CAACM,QAAQ,GAAGJ,eAAC,CAACb,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAACiB,QAAQ,EAAEL,OAAO,CAAC;IAEpD,IAAI,CAACM,SAAS,GAAAzD,aAAA,KAAQmD,OAAO,CAACD,IAAI,CAAE;IACpC,IAAIC,OAAO,CAACO,GAAG,EAAE;MAChB,IAAI,CAACC,IAAI,GAAGR,OAAO,CAACO,GAAG;IACxB;IAEA,OAAOpB,gCAAU,CAACuB,SAAS,CAAC8C,KAAK,CAAClF,IAAI,CAAC,IAAI,EAAE0B,OAAO,CAAC,CAACiE,GAAG,CAAC,UAACK,QAAQ,EAAK;MACvEF,MAAI,CAACxE,KAAK,GAAG0E,QAAQ;IACtB,CAAC,CAAC;EACH,CAAC;EAEDC,QAAQ,WAARA,QAAQA,CAAA,EAAY;IAAA,IAAAC,MAAA;IAAA,IAAX1E,IAAI,GAAAhD,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA+C,SAAA,GAAA/C,SAAA,MAAG,CAAC,CAAC;IACjB,IAAMkD,OAAO,GAAGC,eAAC,CAACoE,SAAS,CAACvE,IAAI,CAAC;;IAEjC;IACAE,OAAO,CAACD,IAAI,GAAGE,eAAC,CAACb,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAACkB,SAAS,EAAEN,OAAO,CAACD,IAAI,IAAI,CAAC,CAAC,CAAC;IAC/D,IAAI,CAACM,QAAQ,GAAGJ,eAAC,CAACb,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAACiB,QAAQ,EAAEL,OAAO,CAAC;IAEpD,IAAI,CAACM,SAAS,GAAAzD,aAAA,KAAQ,IAAI,CAACwD,QAAQ,CAACN,IAAI,CAAE;IAE1C,IAAI,IAAI,CAACM,QAAQ,CAACE,GAAG,EAAE;MACtB,IAAI,CAACC,IAAI,GAAGR,OAAO,CAACO,GAAG;IACxB;IAEA,IAAMkE,WAAU,GAAG,SAAbA,UAAUA,CAAIH,QAAQ,EAAK;MAChC,IAAMI,WAAW,GAAGJ,QAAQ,CAACK,WAAW,GAAGL,QAAQ,CAACM,IAAI;MACxD,IAAMC,cAAc,GAAGP,QAAQ,CAACM,IAAI,GAAG5F,SAAS;MAEhD,IAAI0F,WAAW,IAAIG,cAAc,EAAE;QAClC,IAAM7E,QAAO,GAAAnD,aAAA,CAAAA,aAAA,KACT2H,MAAI,CAACnE,QAAQ;UAChBN,IAAI,EAAAlD,aAAA,CAAAA,aAAA,KACA2H,MAAI,CAACnE,QAAQ,CAACN,IAAI;YACrB6E,IAAI,EAAEN,QAAQ,CAACM,IAAI,GAAG;UAAC;QACvB,EACD;;QAED;QACAJ,MAAI,CAACnE,QAAQ,GAAGL,QAAO;QACvBwE,MAAI,CAAClE,SAAS,GAAAzD,aAAA,KAAQmD,QAAO,CAACD,IAAI,CAAE;QAEpC,OAAOyE,MAAI,CAACM,SAAS,CAAC,CAAC,CAACC,IAAI,CAAC,UAACT,QAAQ,EAAK;UAC1C,OAAOG,WAAU,CAACH,QAAQ,CAAC;QAC5B,CAAC,CAAC;MACH,CAAC,MAAM;QACN;QACA;QACA;QACAE,MAAI,CAAC7D,GAAG,CAAC6D,MAAI,CAAC5E,KAAK,CAACuE,OAAO,CAAC;QAC5B,OAAOK,MAAI,CAAC5E,KAAK;MAClB;IACD,CAAC;IAED,OAAO,IAAI,CAACkF,SAAS,CAAC,CAAC,CAACC,IAAI,CAAC,UAACT,QAAQ,EAAK;MAC1C,OAAOG,WAAU,CAACH,QAAQ,CAAC;IAC5B,CAAC,CAAC;EACH,CAAC;EAEDQ,SAAS,WAATA,SAASA,CAAA,EAAG;IAAA,IAAAE,MAAA;IACX,OAAO7F,gCAAU,CAACuB,SAAS,CAAC8C,KAAK,CAC/BlF,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC+B,QAAQ,CAAC,CACzB0E,IAAI,CAAC,UAACT,QAAQ,EAAK;MAAA,IAAAW,oBAAA;MACnB;MACA;MACA;MACA,KAAAA,oBAAA,GAAID,MAAI,CAACpF,KAAK,CAACuE,OAAO,cAAAc,oBAAA,eAAlBA,oBAAA,CAAoBlI,MAAM,EAAE;QAC/BiI,MAAI,CAACpF,KAAK,GAAA/C,aAAA,CAAAA,aAAA,KACNyH,QAAQ;UACXH,OAAO,KAAA/C,MAAA,KAAA8D,mBAAA,CAAAhI,OAAA,EAAM8H,MAAI,CAACpF,KAAK,CAACuE,OAAO,OAAAe,mBAAA,CAAAhI,OAAA,EAAKoH,QAAQ,CAACH,OAAO;QAAC,EACrD;MACF,CAAC,MAAM;QACNa,MAAI,CAACpF,KAAK,GAAG0E,QAAQ;MACtB;MAEA,OAAOA,QAAQ;IAChB,CAAC,CAAC;EACJ,CAAC;EAEDa,QAAQ,WAARA,QAAQA,CAAA,EAAG;IACV,OAAO,IAAI,CAAC5B,GAAG,CAAC,UAACjE,KAAK,EAAK;MAC1B,IAAIA,KAAK,CAAC6F,QAAQ,EAAE;QACnB,OAAO7F,KAAK,CAAC6F,QAAQ,CAAC,CAAC;MACxB,CAAC,MAAM,IAAI7F,KAAK,CAAC8F,SAAS,EAAE;QAC3B,OAAO9F,KAAK,CAAC8F,SAAS,CAAC,CAAC;MACzB;MAEA,IAAMC,GAAG,GAAG,CAAC,CAAC;MACdpF,eAAC,CAACb,MAAM,CAACiG,GAAG,EAAE/F,KAAK,CAAC;MACpB,OAAO+F,GAAG,CAACC,UAAU;MACrB,OAAOD,GAAG;IACX,CAAC,CAAC;EACH,CAAC;EAED;EACAE,gBAAgB,WAAhBA,gBAAgBA,CAAA,EAAG;IAClB,OAAO,IAAI,CAAChC,GAAG,CAAC,UAACjE,KAAK;MAAA,OAAKA,KAAK,CAACkG,SAAS,CAAC,CAAC;IAAA,EAAC,CAACC,KAAK,CAACC,OAAO,CAAC;EAC7D,CAAC;EAED9C,KAAK,WAALA,KAAKA,CAAA,EAAG;IACP,OAAO,IAAI;EACZ,CAAC;EAEDwC,SAAS,WAATA,SAASA,CAAA,EAAU;IAAA,SAAAO,IAAA,GAAA7I,SAAA,CAAAC,MAAA,EAAN8D,IAAI,OAAApD,KAAA,CAAAkI,IAAA,GAAAC,IAAA,MAAAA,IAAA,GAAAD,IAAA,EAAAC,IAAA;MAAJ/E,IAAI,CAAA+E,IAAA,IAAA9I,SAAA,CAAA8I,IAAA;IAAA;IAChB;IACA;IACA,IAAMN,UAAU,GAAG,IAAI,CAAC/B,GAAG,CAAC,UAACjE,KAAK,EAAK;MACtC,IAAIA,KAAK,CAAC8F,SAAS,EAAE;QACpB,OAAO9F,KAAK,CAAC8F,SAAS,CAAAxI,KAAA,CAAf0C,KAAK,EAAcuB,IAAI,CAAC;MAChC,CAAC,MAAM;QACN,IAAMwE,GAAG,GAAG,CAAC,CAAC;QACdpF,eAAC,CAAC4F,MAAM,CAACR,GAAG,EAAE/F,KAAK,CAAC;QACpB,OAAO+F,GAAG,CAACC,UAAU;QACrB,OAAOD,GAAG;MACX;IACD,CAAC,CAAC;IAEF,IAAIpF,eAAC,CAAC6F,QAAQ,CAAC,IAAI,CAAClG,KAAK,CAAC,IAAI,IAAI,CAACA,KAAK,CAACW,GAAG,IAAI,CAAC+E,UAAU,CAACvI,MAAM,EAAE;MACnE,OAAO,IAAI,CAAC6C,KAAK,CAACW,GAAG;IACtB;IAEA,OAAO+E,UAAU;EAClB,CAAC;EAEDS,IAAI,WAAJA,IAAIA,CAAA,EAAe;IAAA,IAAd/F,OAAO,GAAAlD,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA+C,SAAA,GAAA/C,SAAA,MAAG,CAAC,CAAC;IAChB,IAAQkJ,KAAK,GAAYhG,OAAO,CAAxBgG,KAAK;MAAEC,KAAK,GAAKjG,OAAO,CAAjBiG,KAAK;IAEpB,IAAID,KAAK,IAAI,CAAC,IAAI,CAACjJ,MAAM,EAAE;MAC1B,IAAIkJ,KAAK,EAAE;QACV,OAAO,IAAI,CAAC/C,IAAI,CAAC,OAAO,EAAE,IAAI,EAAElD,OAAO,CAAC;MACzC;MACA,OAAO,IAAI,CAACkD,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAElD,OAAO,CAAC;IAC1C;IAEA,OAAOoD,iBAAO,CAACC,GAAG,CACjB,IAAI,CAACE,GAAG,CAAC,UAACjE,KAAK,EAAK;MACnB,OAAOA,KAAK,CAACyG,IAAI,CAACzG,KAAK,CAAC6F,QAAQ,CAAC,CAAC,EAAEnF,OAAO,CAAC;IAC7C,CAAC,CACF,CAAC;EACF,CAAC;EAEDkG,MAAM,WAANA,OAAMA,CAAA,EAAe;IAAA,IAAdlG,OAAO,GAAAlD,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA+C,SAAA,GAAA/C,SAAA,MAAG,CAAC,CAAC;IAClB,IAAQkJ,KAAK,GAAKhG,OAAO,CAAjBgG,KAAK;IAEb,IAAIA,KAAK,EAAE;MACV,OAAO,IAAI,CAAC9C,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAElD,OAAO,CAAC;IAC1C;IAEA,OAAOoD,iBAAO,CAACC,GAAG,CACjB,IAAI,CAACE,GAAG,CAAC,UAACjE,KAAK,EAAK;MACnB,OAAOA,KAAK,CAAC4G,MAAM,CAAC5G,KAAK,CAAC6F,QAAQ,CAAC,CAAC,EAAEnF,OAAO,CAAC;IAC/C,CAAC,CACF,CAAC;EACF,CAAC;EAED+B,KAAK,WAALA,KAAKA,CAAChB,KAAK,EAAE;IACZ,IAAMoD,OAAO,GAAGpD,KAAK,CAACoD,OAAO,IAAIpD,KAAK;IAEtC,IACCtD,KAAK,CAACC,OAAO,CAACyG,OAAO,CAAC,IACtBA,OAAO,CAACpH,MAAM,IACd,OAAOoH,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,EAC7B;MACD;MACA;MACA;MACA;MACA,OAAOA,OAAO,CAACZ,GAAG,CAAC,UAAC4C,IAAI,EAAK;QAC5B,OAAO;UAAE5F,GAAG,EAAE4F;QAAK,CAAC;MACrB,CAAC,CAAC;IACH;IAEA,OAAOhC,OAAO;EACf;AACD,CACD,CAAC;;AAED;AACAlF,cAAc,CAACsC,UAAU,GAAG,UAAUhB,GAAG,EAAE;EAC1C,OAAO,IAAI,CAACG,SAAS,CAACa,UAAU,CAAChB,GAAG,CAAC;AACtC,CAAC;;AAED;AACA;AACO,IAAM6F,qBAAqB,GAAAlH,OAAA,CAAAkH,qBAAA,GAAGnH,cAAc,CAACG,MAAM,CAAC;EAC1DiH,MAAM,WAANA,MAAMA,CAAA,EAAG;IACR;IACA;IACA;IACA;IACA;IACA,IAAI,CAACC,SAAS,GAAG,cAAc;IAC/BrH,cAAc,CAACyB,SAAS,CAAC2F,MAAM,CAACzJ,KAAK,CAAC,IAAI,EAAEE,SAAS,CAAC;EACvD;AACD,CAAC,CAAC","ignoreList":[]}
|
|
@@ -350,5 +350,66 @@ describe("fetchAll", function () {
|
|
|
350
350
|
}
|
|
351
351
|
}, _callee7);
|
|
352
352
|
})));
|
|
353
|
+
it("should serialize collection models with urls", /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee8() {
|
|
354
|
+
var Collection, baseCollection;
|
|
355
|
+
return _regenerator.default.wrap(function _callee8$(_context8) {
|
|
356
|
+
while (1) switch (_context8.prev = _context8.next) {
|
|
357
|
+
case 0:
|
|
358
|
+
(0, _api.G)(_base.BaseCollection.extend({
|
|
359
|
+
model: "TestModel"
|
|
360
|
+
}), "TestCollection");
|
|
361
|
+
(0, _api.G)(_base2.BaseModel.extend({
|
|
362
|
+
modelName: "bar",
|
|
363
|
+
children: {
|
|
364
|
+
test: "TestModel"
|
|
365
|
+
},
|
|
366
|
+
collections: {
|
|
367
|
+
tests: "TestCollection"
|
|
368
|
+
}
|
|
369
|
+
}), "TestModel");
|
|
370
|
+
Collection = (0, _api.G)(_base.BaseCollection.extend({
|
|
371
|
+
model: "TestModel"
|
|
372
|
+
}));
|
|
373
|
+
baseCollection = new Collection([{
|
|
374
|
+
id: 1,
|
|
375
|
+
url: "/api/bar/1/",
|
|
376
|
+
test: {
|
|
377
|
+
id: 1,
|
|
378
|
+
url: "/api/baz/1/"
|
|
379
|
+
},
|
|
380
|
+
tests: [{
|
|
381
|
+
id: 2,
|
|
382
|
+
test: {
|
|
383
|
+
id: 4
|
|
384
|
+
}
|
|
385
|
+
}]
|
|
386
|
+
}, {
|
|
387
|
+
id: 2,
|
|
388
|
+
url: "/api/bar/2/",
|
|
389
|
+
test: {
|
|
390
|
+
id: 2,
|
|
391
|
+
url: "/api/baz/2/"
|
|
392
|
+
},
|
|
393
|
+
tests: []
|
|
394
|
+
}]);
|
|
395
|
+
expect(baseCollection.serialize({
|
|
396
|
+
urlsOnly: true
|
|
397
|
+
})).toEqual([{
|
|
398
|
+
id: 1,
|
|
399
|
+
test: "/api/bar/1/",
|
|
400
|
+
url: "/api/bar/1/",
|
|
401
|
+
tests: ["/api/bar/2/"]
|
|
402
|
+
}, {
|
|
403
|
+
id: 2,
|
|
404
|
+
test: "/api/bar/2/",
|
|
405
|
+
url: "/api/bar/2/",
|
|
406
|
+
tests: []
|
|
407
|
+
}]);
|
|
408
|
+
case 5:
|
|
409
|
+
case "end":
|
|
410
|
+
return _context8.stop();
|
|
411
|
+
}
|
|
412
|
+
}, _callee8);
|
|
413
|
+
})));
|
|
353
414
|
});
|
|
354
415
|
//# sourceMappingURL=base.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.spec.js","names":["_ampersandRestCollection","_interopRequireDefault","require","_base","_base2","_api","_bluebird","_testdouble","_createForOfIteratorHelper","r","e","t","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","o","a","u","call","next","return","_arrayLikeToArray","toString","slice","constructor","name","from","test","it","G","BaseModel","extend","modelName","Collection","BaseCollection","model","collection","expect","models","toHaveLength","_asyncToGenerator2","default","_regenerator","mark","_callee","model1Fetch","model2Fetch","wrap","_callee$","_context","prev","id","td","replace","fetchModels","verify","stop","_callee2","Model","_iterator","_step","_callee2$","_context2","respondWith","fetch","toBeInstanceOf","err","_callee3","_iterator2","_step2","_callee3$","_context3","url","toEqual","concat","data","foo","firstCollection","secondCollection","AppointmentCollection","areModelsFetched","toBe","mockFetchResults","dataFn","jest","spyOn","AmpersandCollection","prototype","mockImplementation","opts","fetchResults","Promise","resolve","describe","_callee4","baseCollection","_callee4$","_context4","results","fetchAll","first","_callee5","_callee5$","_context5","last","_callee6","_callee6$","_context6","page","total_pages","_callee7","_callee7$","_context7"],"sources":["../../src/collections/base.spec.js"],"sourcesContent":["import AmpersandCollection from \"ampersand-rest-collection\";\nimport { BaseCollection } from \"./base.js\";\nimport { BaseModel } from \"../models/base.js\";\nimport { G } from \"sp-test/api\";\nimport Promise from \"bluebird\";\nimport td from \"testdouble\";\n\nit(\"should parse an array of urls into models\", () => {\n\tG(BaseModel, \"TestModel\").extend({ modelName: \"tests\" });\n\tconst Collection = G(BaseCollection).extend({\n\t\tmodel: \"TestModel\",\n\t});\n\tconst collection = new Collection([\"/api/tests/1/\", \"/api/tests/2/\"]);\n\texpect(collection.models).toHaveLength(2);\n});\n\nit(\"should fetch the individual models in the collection\", async () => {\n\tG(BaseModel, \"TestModel\");\n\tconst Collection = G(BaseCollection).extend({ model: \"TestModel\" });\n\tconst collection = new Collection([{ id: 1 }, { id: 2 }]);\n\n\tconst model1Fetch = td.replace(collection.models[0], \"fetch\");\n\tconst model2Fetch = td.replace(collection.models[1], \"fetch\");\n\n\tawait collection.fetchModels();\n\n\ttd.verify(model1Fetch({}));\n\ttd.verify(model2Fetch({}));\n});\n\nit(\"should convert fetched urls into models\", async () => {\n\tconst Model = G(BaseModel.extend({ modelName: \"test\" }), \"TestModel\");\n\tconst Collection = G(BaseCollection).extend({ model: \"TestModel\" });\n\tCollection.respondWith([\"/api/test/1/\", \"/api/test/2/\"]);\n\tconst collection = new Collection();\n\tawait collection.fetch();\n\texpect(collection.models).toHaveLength(2);\n\tfor (const model of collection.models) {\n\t\texpect(model).toBeInstanceOf(Model);\n\t}\n});\n\nit(\"should convert fetched objects into models\", async () => {\n\tconst Model = G(BaseModel, \"TestModel\");\n\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\tCollection.respondWith([{ id: 1 }, { id: 2 }]);\n\tconst collection = new Collection();\n\tawait collection.fetch();\n\texpect(collection.models).toHaveLength(2);\n\tfor (const model of collection.models) {\n\t\texpect(model).toBeInstanceOf(Model);\n\t}\n});\n\nit(\"should override url if passed to constructor\", () => {\n\tconst url = \"/api/foo/\";\n\tconst Collection = G(BaseCollection);\n\tconst collection = new Collection({ url });\n\texpect(collection.url()).toEqual(`${url}?per_page=1000`);\n});\n\nit(\"should return a api url based off of its name\", () => {\n\tconst Collection = G(BaseCollection.extend({ modelName: \"foos\" }));\n\tconst collection = new Collection();\n\texpect(collection.url()).toEqual(\"/api/foos/?per_page=1000\");\n});\n\nit(\"should not append a slash to a get query\", () => {\n\tconst Collection = G(BaseCollection.extend({ modelName: \"foos\" }));\n\tconst collection = new Collection({ url: \"/api/foos/?per_page=1000\" });\n\texpect(collection.url()).toEqual(\"/api/foos/?per_page=1000\");\n});\n\nit(\"should append a trailing slash to urls if not there\", () => {\n\tconst Collection = G(BaseCollection);\n\tconst collection = new Collection({ url: \"/api/appointments\" });\n\texpect(collection.url()).toEqual(\"/api/appointments/?per_page=1000\");\n});\n\nit(\"should append a trailing slash to urls if not there with query\", () => {\n\tconst Collection = G(BaseCollection);\n\tconst collection = new Collection({ url: \"/api/appointments?per_page=1000\" });\n\texpect(collection.url()).toEqual(\"/api/appointments/?per_page=1000\");\n});\n\nit(\"should query multiple values if using an array\", () => {\n\tconst Collection = G(BaseCollection);\n\tconst collection = new Collection(\n\t\t{\n\t\t\turl: \"/api/appointments/\",\n\t\t},\n\t\t{\n\t\t\tdata: {\n\t\t\t\tfoo: [1, 2, null],\n\t\t\t},\n\t\t},\n\t);\n\texpect(collection.url()).toEqual(\n\t\t\"/api/appointments/?per_page=1000&foo=1&foo=2&foo=\",\n\t);\n});\n\nit(\"should replace model as a string with the registered model\", () => {\n\tconst Model = G(BaseModel, \"TestModel\");\n\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\tconst collection = new Collection();\n\texpect(collection.model).toEqual(Model);\n});\n\nit(\"should allow passing in another collection into a collection\", () => {\n\tG(BaseModel, \"TestModel\");\n\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\tconst firstCollection = new Collection([{ id: 1 }]);\n\tconst secondCollection = new Collection(firstCollection);\n\texpect(secondCollection.models[0].id).toEqual(1);\n});\n\nit(\"should be empty on initialize\", () => {\n\tG(BaseModel, \"TestModel\");\n\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\tconst collection = new Collection();\n\texpect(collection.length).toEqual(0);\n});\n\nit(\"should be not 'areModelsFetched' if all models are just a url or integer\", () => {\n\tconst AppointmentCollection = G(\"AppointmentCollection\");\n\t// A string or an integer should be considered not fetched\n\tconst collection = new AppointmentCollection([\"/api/appointments/1/\", 2]);\n\texpect(collection.areModelsFetched()).toBe(false);\n});\n\nit(\"should be 'areModelsFetched' if models are objects\", () => {\n\tG(BaseModel, \"TestModel\");\n\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\tconst collection = new Collection([{ id: 1 }, { id: 2 }]);\n\texpect(collection.areModelsFetched()).toBe(true);\n});\n\nconst mockFetchResults = (dataFn) => {\n\tjest\n\t\t.spyOn(AmpersandCollection.prototype, \"fetch\")\n\t\t.mockImplementation((opts) => {\n\t\t\tconst fetchResults = dataFn(opts);\n\t\t\treturn Promise.resolve(fetchResults);\n\t\t});\n};\n\ndescribe(\"fetchAll\", () => {\n\tit(\"calls Collection.prototype.fetch\", async () => {\n\t\tmockFetchResults(() => {\n\t\t\treturn {\n\t\t\t\tresults: [{ id: 20 }, { id: 21 }, { id: 22 }],\n\t\t\t};\n\t\t});\n\n\t\tG(BaseModel, \"TestModel\");\n\t\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\t\tconst baseCollection = new Collection();\n\n\t\tawait baseCollection.fetchAll();\n\n\t\texpect(baseCollection.length).toEqual(3);\n\t\texpect(baseCollection.first().id).toEqual(20);\n\t});\n\n\tit(\"adds results to existing results\", async () => {\n\t\tmockFetchResults(() => {\n\t\t\treturn {\n\t\t\t\tresults: [{ id: 22 }],\n\t\t\t};\n\t\t});\n\n\t\tG(BaseModel, \"TestModel\");\n\t\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\t\tconst baseCollection = new Collection([{ id: 15 }]);\n\n\t\tawait baseCollection.fetchAll();\n\n\t\texpect(baseCollection.length).toEqual(2);\n\t\t// The models are sorted by ID\n\t\texpect(baseCollection.first().id).toEqual(15);\n\t\texpect(baseCollection.last().id).toEqual(22);\n\t});\n\n\tit(\"fetches multiple pages\", async () => {\n\t\tmockFetchResults((opts) => {\n\t\t\tconst page = opts.data.page || 1;\n\t\t\tconst fetchResults = {\n\t\t\t\ttotal_pages: 5,\n\t\t\t\tpage,\n\t\t\t\tresults: [{ id: page + 10 }],\n\t\t\t};\n\t\t\treturn Promise.resolve(fetchResults);\n\t\t});\n\n\t\tG(BaseModel, \"TestModel\");\n\t\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\t\tconst baseCollection = new Collection();\n\n\t\tawait baseCollection.fetchAll();\n\n\t\texpect(baseCollection.length).toEqual(5);\n\t\texpect(baseCollection.first().id).toEqual(11);\n\t\texpect(baseCollection.last().id).toEqual(15);\n\t});\n\n\tit(\"stops fetching pages at the hardcoded limit\", async () => {\n\t\tmockFetchResults((opts) => {\n\t\t\tconst page = opts.data.page || 1;\n\t\t\tconst fetchResults = {\n\t\t\t\ttotal_pages: 50,\n\t\t\t\tpage,\n\t\t\t\tresults: [{ id: page + 10 }],\n\t\t\t};\n\t\t\treturn Promise.resolve(fetchResults);\n\t\t});\n\n\t\tG(BaseModel, \"TestModel\");\n\t\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\t\tconst baseCollection = new Collection();\n\n\t\tawait baseCollection.fetchAll();\n\n\t\texpect(baseCollection.length).toEqual(20);\n\t\texpect(baseCollection.first().id).toEqual(11);\n\t\texpect(baseCollection.last().id).toEqual(30);\n\t});\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"base.spec.js","names":["_ampersandRestCollection","_interopRequireDefault","require","_base","_base2","_api","_bluebird","_testdouble","_createForOfIteratorHelper","r","e","t","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","o","a","u","call","next","return","_arrayLikeToArray","toString","slice","constructor","name","from","test","it","G","BaseModel","extend","modelName","Collection","BaseCollection","model","collection","expect","models","toHaveLength","_asyncToGenerator2","default","_regenerator","mark","_callee","model1Fetch","model2Fetch","wrap","_callee$","_context","prev","id","td","replace","fetchModels","verify","stop","_callee2","Model","_iterator","_step","_callee2$","_context2","respondWith","fetch","toBeInstanceOf","err","_callee3","_iterator2","_step2","_callee3$","_context3","url","toEqual","concat","data","foo","firstCollection","secondCollection","AppointmentCollection","areModelsFetched","toBe","mockFetchResults","dataFn","jest","spyOn","AmpersandCollection","prototype","mockImplementation","opts","fetchResults","Promise","resolve","describe","_callee4","baseCollection","_callee4$","_context4","results","fetchAll","first","_callee5","_callee5$","_context5","last","_callee6","_callee6$","_context6","page","total_pages","_callee7","_callee7$","_context7","_callee8","_callee8$","_context8","children","collections","tests","serialize","urlsOnly"],"sources":["../../src/collections/base.spec.js"],"sourcesContent":["import AmpersandCollection from \"ampersand-rest-collection\";\nimport { BaseCollection } from \"./base.js\";\nimport { BaseModel } from \"../models/base.js\";\nimport { G } from \"sp-test/api\";\nimport Promise from \"bluebird\";\nimport td from \"testdouble\";\n\nit(\"should parse an array of urls into models\", () => {\n\tG(BaseModel, \"TestModel\").extend({ modelName: \"tests\" });\n\tconst Collection = G(BaseCollection).extend({\n\t\tmodel: \"TestModel\",\n\t});\n\tconst collection = new Collection([\"/api/tests/1/\", \"/api/tests/2/\"]);\n\texpect(collection.models).toHaveLength(2);\n});\n\nit(\"should fetch the individual models in the collection\", async () => {\n\tG(BaseModel, \"TestModel\");\n\tconst Collection = G(BaseCollection).extend({ model: \"TestModel\" });\n\tconst collection = new Collection([{ id: 1 }, { id: 2 }]);\n\n\tconst model1Fetch = td.replace(collection.models[0], \"fetch\");\n\tconst model2Fetch = td.replace(collection.models[1], \"fetch\");\n\n\tawait collection.fetchModels();\n\n\ttd.verify(model1Fetch({}));\n\ttd.verify(model2Fetch({}));\n});\n\nit(\"should convert fetched urls into models\", async () => {\n\tconst Model = G(BaseModel.extend({ modelName: \"test\" }), \"TestModel\");\n\tconst Collection = G(BaseCollection).extend({ model: \"TestModel\" });\n\tCollection.respondWith([\"/api/test/1/\", \"/api/test/2/\"]);\n\tconst collection = new Collection();\n\tawait collection.fetch();\n\texpect(collection.models).toHaveLength(2);\n\tfor (const model of collection.models) {\n\t\texpect(model).toBeInstanceOf(Model);\n\t}\n});\n\nit(\"should convert fetched objects into models\", async () => {\n\tconst Model = G(BaseModel, \"TestModel\");\n\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\tCollection.respondWith([{ id: 1 }, { id: 2 }]);\n\tconst collection = new Collection();\n\tawait collection.fetch();\n\texpect(collection.models).toHaveLength(2);\n\tfor (const model of collection.models) {\n\t\texpect(model).toBeInstanceOf(Model);\n\t}\n});\n\nit(\"should override url if passed to constructor\", () => {\n\tconst url = \"/api/foo/\";\n\tconst Collection = G(BaseCollection);\n\tconst collection = new Collection({ url });\n\texpect(collection.url()).toEqual(`${url}?per_page=1000`);\n});\n\nit(\"should return a api url based off of its name\", () => {\n\tconst Collection = G(BaseCollection.extend({ modelName: \"foos\" }));\n\tconst collection = new Collection();\n\texpect(collection.url()).toEqual(\"/api/foos/?per_page=1000\");\n});\n\nit(\"should not append a slash to a get query\", () => {\n\tconst Collection = G(BaseCollection.extend({ modelName: \"foos\" }));\n\tconst collection = new Collection({ url: \"/api/foos/?per_page=1000\" });\n\texpect(collection.url()).toEqual(\"/api/foos/?per_page=1000\");\n});\n\nit(\"should append a trailing slash to urls if not there\", () => {\n\tconst Collection = G(BaseCollection);\n\tconst collection = new Collection({ url: \"/api/appointments\" });\n\texpect(collection.url()).toEqual(\"/api/appointments/?per_page=1000\");\n});\n\nit(\"should append a trailing slash to urls if not there with query\", () => {\n\tconst Collection = G(BaseCollection);\n\tconst collection = new Collection({ url: \"/api/appointments?per_page=1000\" });\n\texpect(collection.url()).toEqual(\"/api/appointments/?per_page=1000\");\n});\n\nit(\"should query multiple values if using an array\", () => {\n\tconst Collection = G(BaseCollection);\n\tconst collection = new Collection(\n\t\t{\n\t\t\turl: \"/api/appointments/\",\n\t\t},\n\t\t{\n\t\t\tdata: {\n\t\t\t\tfoo: [1, 2, null],\n\t\t\t},\n\t\t},\n\t);\n\texpect(collection.url()).toEqual(\n\t\t\"/api/appointments/?per_page=1000&foo=1&foo=2&foo=\",\n\t);\n});\n\nit(\"should replace model as a string with the registered model\", () => {\n\tconst Model = G(BaseModel, \"TestModel\");\n\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\tconst collection = new Collection();\n\texpect(collection.model).toEqual(Model);\n});\n\nit(\"should allow passing in another collection into a collection\", () => {\n\tG(BaseModel, \"TestModel\");\n\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\tconst firstCollection = new Collection([{ id: 1 }]);\n\tconst secondCollection = new Collection(firstCollection);\n\texpect(secondCollection.models[0].id).toEqual(1);\n});\n\nit(\"should be empty on initialize\", () => {\n\tG(BaseModel, \"TestModel\");\n\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\tconst collection = new Collection();\n\texpect(collection.length).toEqual(0);\n});\n\nit(\"should be not 'areModelsFetched' if all models are just a url or integer\", () => {\n\tconst AppointmentCollection = G(\"AppointmentCollection\");\n\t// A string or an integer should be considered not fetched\n\tconst collection = new AppointmentCollection([\"/api/appointments/1/\", 2]);\n\texpect(collection.areModelsFetched()).toBe(false);\n});\n\nit(\"should be 'areModelsFetched' if models are objects\", () => {\n\tG(BaseModel, \"TestModel\");\n\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\tconst collection = new Collection([{ id: 1 }, { id: 2 }]);\n\texpect(collection.areModelsFetched()).toBe(true);\n});\n\nconst mockFetchResults = (dataFn) => {\n\tjest\n\t\t.spyOn(AmpersandCollection.prototype, \"fetch\")\n\t\t.mockImplementation((opts) => {\n\t\t\tconst fetchResults = dataFn(opts);\n\t\t\treturn Promise.resolve(fetchResults);\n\t\t});\n};\n\ndescribe(\"fetchAll\", () => {\n\tit(\"calls Collection.prototype.fetch\", async () => {\n\t\tmockFetchResults(() => {\n\t\t\treturn {\n\t\t\t\tresults: [{ id: 20 }, { id: 21 }, { id: 22 }],\n\t\t\t};\n\t\t});\n\n\t\tG(BaseModel, \"TestModel\");\n\t\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\t\tconst baseCollection = new Collection();\n\n\t\tawait baseCollection.fetchAll();\n\n\t\texpect(baseCollection.length).toEqual(3);\n\t\texpect(baseCollection.first().id).toEqual(20);\n\t});\n\n\tit(\"adds results to existing results\", async () => {\n\t\tmockFetchResults(() => {\n\t\t\treturn {\n\t\t\t\tresults: [{ id: 22 }],\n\t\t\t};\n\t\t});\n\n\t\tG(BaseModel, \"TestModel\");\n\t\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\t\tconst baseCollection = new Collection([{ id: 15 }]);\n\n\t\tawait baseCollection.fetchAll();\n\n\t\texpect(baseCollection.length).toEqual(2);\n\t\t// The models are sorted by ID\n\t\texpect(baseCollection.first().id).toEqual(15);\n\t\texpect(baseCollection.last().id).toEqual(22);\n\t});\n\n\tit(\"fetches multiple pages\", async () => {\n\t\tmockFetchResults((opts) => {\n\t\t\tconst page = opts.data.page || 1;\n\t\t\tconst fetchResults = {\n\t\t\t\ttotal_pages: 5,\n\t\t\t\tpage,\n\t\t\t\tresults: [{ id: page + 10 }],\n\t\t\t};\n\t\t\treturn Promise.resolve(fetchResults);\n\t\t});\n\n\t\tG(BaseModel, \"TestModel\");\n\t\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\t\tconst baseCollection = new Collection();\n\n\t\tawait baseCollection.fetchAll();\n\n\t\texpect(baseCollection.length).toEqual(5);\n\t\texpect(baseCollection.first().id).toEqual(11);\n\t\texpect(baseCollection.last().id).toEqual(15);\n\t});\n\n\tit(\"stops fetching pages at the hardcoded limit\", async () => {\n\t\tmockFetchResults((opts) => {\n\t\t\tconst page = opts.data.page || 1;\n\t\t\tconst fetchResults = {\n\t\t\t\ttotal_pages: 50,\n\t\t\t\tpage,\n\t\t\t\tresults: [{ id: page + 10 }],\n\t\t\t};\n\t\t\treturn Promise.resolve(fetchResults);\n\t\t});\n\n\t\tG(BaseModel, \"TestModel\");\n\t\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\t\tconst baseCollection = new Collection();\n\n\t\tawait baseCollection.fetchAll();\n\n\t\texpect(baseCollection.length).toEqual(20);\n\t\texpect(baseCollection.first().id).toEqual(11);\n\t\texpect(baseCollection.last().id).toEqual(30);\n\t});\n\n\tit(\"should serialize collection models with urls\", async () => {\n\t\tG(BaseCollection.extend({ model: \"TestModel\" }), \"TestCollection\");\n\t\tG(\n\t\t\tBaseModel.extend({\n\t\t\t\tmodelName: \"bar\",\n\t\t\t\tchildren: { test: \"TestModel\" },\n\t\t\t\tcollections: { tests: \"TestCollection\" },\n\t\t\t}),\n\t\t\t\"TestModel\",\n\t\t);\n\n\t\tconst Collection = G(BaseCollection.extend({ model: \"TestModel\" }));\n\t\tconst baseCollection = new Collection([\n\t\t\t{\n\t\t\t\tid: 1,\n\t\t\t\turl: \"/api/bar/1/\",\n\t\t\t\ttest: { id: 1, url: \"/api/baz/1/\" },\n\t\t\t\ttests: [{ id: 2, test: { id: 4 } }],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 2,\n\t\t\t\turl: \"/api/bar/2/\",\n\t\t\t\ttest: { id: 2, url: \"/api/baz/2/\" },\n\t\t\t\ttests: [],\n\t\t\t},\n\t\t]);\n\t\texpect(baseCollection.serialize({ urlsOnly: true })).toEqual([\n\t\t\t{\n\t\t\t\tid: 1,\n\t\t\t\ttest: \"/api/bar/1/\",\n\t\t\t\turl: \"/api/bar/1/\",\n\t\t\t\ttests: [\"/api/bar/2/\"],\n\t\t\t},\n\t\t\t{ id: 2, test: \"/api/bar/2/\", url: \"/api/bar/2/\", tests: [] },\n\t\t]);\n\t});\n});\n"],"mappings":"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","ignoreList":[]}
|