@liminalfunctions/framework 1.0.51 → 1.0.53

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 (48) hide show
  1. package/dist/F_Collection.d.ts +2 -0
  2. package/dist/F_Collection.js +9 -0
  3. package/dist/F_Collection.js.map +1 -1
  4. package/dist/F_Compile.js +247 -0
  5. package/dist/F_Compile.js.map +1 -1
  6. package/dist/F_Security_Models/F_SM_Role_Membership.d.ts +2 -2
  7. package/dist/F_Security_Models/F_SM_Role_Membership.js +10 -6
  8. package/dist/F_Security_Models/F_SM_Role_Membership.js.map +1 -1
  9. package/dist/code_generation/generate_client_library.d.ts +1 -0
  10. package/dist/code_generation/generate_client_library.js +37 -16
  11. package/dist/code_generation/generate_client_library.js.map +1 -1
  12. package/dist/code_generation/templates/collection.mustache +79 -1
  13. package/dist/utils/array_children_from_zod.d.ts +3 -0
  14. package/dist/utils/array_children_from_zod.js +39 -0
  15. package/dist/utils/array_children_from_zod.js.map +1 -0
  16. package/dist/utils/mongoose_from_zod.js +7 -2
  17. package/dist/utils/mongoose_from_zod.js.map +1 -1
  18. package/package.json +1 -1
  19. package/src/F_Collection.ts +14 -3
  20. package/src/F_Compile.ts +288 -16
  21. package/src/F_Security_Models/F_SM_Role_Membership.ts +12 -8
  22. package/src/code_generation/generate_client_library.ts +35 -8
  23. package/src/code_generation/templates/collection.mustache +79 -1
  24. package/src/utils/array_children_from_zod.ts +44 -0
  25. package/src/utils/mongoose_from_zod.ts +7 -3
  26. package/test/0_1_mongoose_from_zod.test.ts +16 -10
  27. package/test/0_6_array_children.test.ts +127 -0
  28. package/test/1_0_basic_server.test.ts +107 -2
  29. package/test/1_1_security_ownership.test.ts +186 -6
  30. package/test/1_2_role_membership.test.ts +329 -9
  31. package/test/2_1_client_library_generation.test.ts +125 -1
  32. package/test/tmp/dist/Brief_News_Category.js.map +1 -1
  33. package/test/tmp/dist/Client.js.map +1 -1
  34. package/test/tmp/dist/Institution.js.map +1 -1
  35. package/test/tmp/dist/Project.d.ts +20 -0
  36. package/test/tmp/dist/Project.js +63 -0
  37. package/test/tmp/dist/Project.js.map +1 -1
  38. package/test/tmp/dist/types/project.d.ts +4 -0
  39. package/test/tmp/dist/types/project_post.d.ts +4 -0
  40. package/test/tmp/dist/types/project_put.d.ts +4 -0
  41. package/test/tmp/package-lock.json +111 -111
  42. package/test/tmp/src/Brief_News_Category.ts +3 -1
  43. package/test/tmp/src/Client.ts +3 -1
  44. package/test/tmp/src/Institution.ts +3 -1
  45. package/test/tmp/src/Project.ts +73 -1
  46. package/test/tmp/src/types/project.ts +4 -0
  47. package/test/tmp/src/types/project_post.ts +4 -0
  48. package/test/tmp/src/types/project_put.ts +4 -0
@@ -16,9 +16,9 @@
16
16
  }
17
17
  },
18
18
  "node_modules/@esbuild/aix-ppc64": {
19
- "version": "0.25.12",
20
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz",
21
- "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==",
19
+ "version": "0.27.1",
20
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.1.tgz",
21
+ "integrity": "sha512-HHB50pdsBX6k47S4u5g/CaLjqS3qwaOVE5ILsq64jyzgMhLuCuZ8rGzM9yhsAjfjkbgUPMzZEPa7DAp7yz6vuA==",
22
22
  "cpu": [
23
23
  "ppc64"
24
24
  ],
@@ -33,9 +33,9 @@
33
33
  }
34
34
  },
35
35
  "node_modules/@esbuild/android-arm": {
36
- "version": "0.25.12",
37
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz",
38
- "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==",
36
+ "version": "0.27.1",
37
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.1.tgz",
38
+ "integrity": "sha512-kFqa6/UcaTbGm/NncN9kzVOODjhZW8e+FRdSeypWe6j33gzclHtwlANs26JrupOntlcWmB0u8+8HZo8s7thHvg==",
39
39
  "cpu": [
40
40
  "arm"
41
41
  ],
@@ -50,9 +50,9 @@
50
50
  }
51
51
  },
52
52
  "node_modules/@esbuild/android-arm64": {
53
- "version": "0.25.12",
54
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz",
55
- "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==",
53
+ "version": "0.27.1",
54
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.1.tgz",
55
+ "integrity": "sha512-45fuKmAJpxnQWixOGCrS+ro4Uvb4Re9+UTieUY2f8AEc+t7d4AaZ6eUJ3Hva7dtrxAAWHtlEFsXFMAgNnGU9uQ==",
56
56
  "cpu": [
57
57
  "arm64"
58
58
  ],
@@ -67,9 +67,9 @@
67
67
  }
68
68
  },
69
69
  "node_modules/@esbuild/android-x64": {
70
- "version": "0.25.12",
71
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz",
72
- "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==",
70
+ "version": "0.27.1",
71
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.1.tgz",
72
+ "integrity": "sha512-LBEpOz0BsgMEeHgenf5aqmn/lLNTFXVfoWMUox8CtWWYK9X4jmQzWjoGoNb8lmAYml/tQ/Ysvm8q7szu7BoxRQ==",
73
73
  "cpu": [
74
74
  "x64"
75
75
  ],
@@ -84,9 +84,9 @@
84
84
  }
85
85
  },
86
86
  "node_modules/@esbuild/darwin-arm64": {
87
- "version": "0.25.12",
88
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz",
89
- "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==",
87
+ "version": "0.27.1",
88
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.1.tgz",
89
+ "integrity": "sha512-veg7fL8eMSCVKL7IW4pxb54QERtedFDfY/ASrumK/SbFsXnRazxY4YykN/THYqFnFwJ0aVjiUrVG2PwcdAEqQQ==",
90
90
  "cpu": [
91
91
  "arm64"
92
92
  ],
@@ -101,9 +101,9 @@
101
101
  }
102
102
  },
103
103
  "node_modules/@esbuild/darwin-x64": {
104
- "version": "0.25.12",
105
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz",
106
- "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==",
104
+ "version": "0.27.1",
105
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.1.tgz",
106
+ "integrity": "sha512-+3ELd+nTzhfWb07Vol7EZ+5PTbJ/u74nC6iv4/lwIU99Ip5uuY6QoIf0Hn4m2HoV0qcnRivN3KSqc+FyCHjoVQ==",
107
107
  "cpu": [
108
108
  "x64"
109
109
  ],
@@ -118,9 +118,9 @@
118
118
  }
119
119
  },
120
120
  "node_modules/@esbuild/freebsd-arm64": {
121
- "version": "0.25.12",
122
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz",
123
- "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==",
121
+ "version": "0.27.1",
122
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.1.tgz",
123
+ "integrity": "sha512-/8Rfgns4XD9XOSXlzUDepG8PX+AVWHliYlUkFI3K3GB6tqbdjYqdhcb4BKRd7C0BhZSoaCxhv8kTcBrcZWP+xg==",
124
124
  "cpu": [
125
125
  "arm64"
126
126
  ],
@@ -135,9 +135,9 @@
135
135
  }
136
136
  },
137
137
  "node_modules/@esbuild/freebsd-x64": {
138
- "version": "0.25.12",
139
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz",
140
- "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==",
138
+ "version": "0.27.1",
139
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.1.tgz",
140
+ "integrity": "sha512-GITpD8dK9C+r+5yRT/UKVT36h/DQLOHdwGVwwoHidlnA168oD3uxA878XloXebK4Ul3gDBBIvEdL7go9gCUFzQ==",
141
141
  "cpu": [
142
142
  "x64"
143
143
  ],
@@ -152,9 +152,9 @@
152
152
  }
153
153
  },
154
154
  "node_modules/@esbuild/linux-arm": {
155
- "version": "0.25.12",
156
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz",
157
- "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==",
155
+ "version": "0.27.1",
156
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.1.tgz",
157
+ "integrity": "sha512-ieMID0JRZY/ZeCrsFQ3Y3NlHNCqIhTprJfDgSB3/lv5jJZ8FX3hqPyXWhe+gvS5ARMBJ242PM+VNz/ctNj//eA==",
158
158
  "cpu": [
159
159
  "arm"
160
160
  ],
@@ -169,9 +169,9 @@
169
169
  }
170
170
  },
171
171
  "node_modules/@esbuild/linux-arm64": {
172
- "version": "0.25.12",
173
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz",
174
- "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==",
172
+ "version": "0.27.1",
173
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.1.tgz",
174
+ "integrity": "sha512-W9//kCrh/6in9rWIBdKaMtuTTzNj6jSeG/haWBADqLLa9P8O5YSRDzgD5y9QBok4AYlzS6ARHifAb75V6G670Q==",
175
175
  "cpu": [
176
176
  "arm64"
177
177
  ],
@@ -186,9 +186,9 @@
186
186
  }
187
187
  },
188
188
  "node_modules/@esbuild/linux-ia32": {
189
- "version": "0.25.12",
190
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz",
191
- "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==",
189
+ "version": "0.27.1",
190
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.1.tgz",
191
+ "integrity": "sha512-VIUV4z8GD8rtSVMfAj1aXFahsi/+tcoXXNYmXgzISL+KB381vbSTNdeZHHHIYqFyXcoEhu9n5cT+05tRv13rlw==",
192
192
  "cpu": [
193
193
  "ia32"
194
194
  ],
@@ -203,9 +203,9 @@
203
203
  }
204
204
  },
205
205
  "node_modules/@esbuild/linux-loong64": {
206
- "version": "0.25.12",
207
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz",
208
- "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==",
206
+ "version": "0.27.1",
207
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.1.tgz",
208
+ "integrity": "sha512-l4rfiiJRN7sTNI//ff65zJ9z8U+k6zcCg0LALU5iEWzY+a1mVZ8iWC1k5EsNKThZ7XCQ6YWtsZ8EWYm7r1UEsg==",
209
209
  "cpu": [
210
210
  "loong64"
211
211
  ],
@@ -220,9 +220,9 @@
220
220
  }
221
221
  },
222
222
  "node_modules/@esbuild/linux-mips64el": {
223
- "version": "0.25.12",
224
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz",
225
- "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==",
223
+ "version": "0.27.1",
224
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.1.tgz",
225
+ "integrity": "sha512-U0bEuAOLvO/DWFdygTHWY8C067FXz+UbzKgxYhXC0fDieFa0kDIra1FAhsAARRJbvEyso8aAqvPdNxzWuStBnA==",
226
226
  "cpu": [
227
227
  "mips64el"
228
228
  ],
@@ -237,9 +237,9 @@
237
237
  }
238
238
  },
239
239
  "node_modules/@esbuild/linux-ppc64": {
240
- "version": "0.25.12",
241
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz",
242
- "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==",
240
+ "version": "0.27.1",
241
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.1.tgz",
242
+ "integrity": "sha512-NzdQ/Xwu6vPSf/GkdmRNsOfIeSGnh7muundsWItmBsVpMoNPVpM61qNzAVY3pZ1glzzAxLR40UyYM23eaDDbYQ==",
243
243
  "cpu": [
244
244
  "ppc64"
245
245
  ],
@@ -254,9 +254,9 @@
254
254
  }
255
255
  },
256
256
  "node_modules/@esbuild/linux-riscv64": {
257
- "version": "0.25.12",
258
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz",
259
- "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==",
257
+ "version": "0.27.1",
258
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.1.tgz",
259
+ "integrity": "sha512-7zlw8p3IApcsN7mFw0O1Z1PyEk6PlKMu18roImfl3iQHTnr/yAfYv6s4hXPidbDoI2Q0pW+5xeoM4eTCC0UdrQ==",
260
260
  "cpu": [
261
261
  "riscv64"
262
262
  ],
@@ -271,9 +271,9 @@
271
271
  }
272
272
  },
273
273
  "node_modules/@esbuild/linux-s390x": {
274
- "version": "0.25.12",
275
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz",
276
- "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==",
274
+ "version": "0.27.1",
275
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.1.tgz",
276
+ "integrity": "sha512-cGj5wli+G+nkVQdZo3+7FDKC25Uh4ZVwOAK6A06Hsvgr8WqBBuOy/1s+PUEd/6Je+vjfm6stX0kmib5b/O2Ykw==",
277
277
  "cpu": [
278
278
  "s390x"
279
279
  ],
@@ -288,9 +288,9 @@
288
288
  }
289
289
  },
290
290
  "node_modules/@esbuild/linux-x64": {
291
- "version": "0.25.12",
292
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz",
293
- "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==",
291
+ "version": "0.27.1",
292
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.1.tgz",
293
+ "integrity": "sha512-z3H/HYI9MM0HTv3hQZ81f+AKb+yEoCRlUby1F80vbQ5XdzEMyY/9iNlAmhqiBKw4MJXwfgsh7ERGEOhrM1niMA==",
294
294
  "cpu": [
295
295
  "x64"
296
296
  ],
@@ -305,9 +305,9 @@
305
305
  }
306
306
  },
307
307
  "node_modules/@esbuild/netbsd-arm64": {
308
- "version": "0.25.12",
309
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz",
310
- "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==",
308
+ "version": "0.27.1",
309
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.1.tgz",
310
+ "integrity": "sha512-wzC24DxAvk8Em01YmVXyjl96Mr+ecTPyOuADAvjGg+fyBpGmxmcr2E5ttf7Im8D0sXZihpxzO1isus8MdjMCXQ==",
311
311
  "cpu": [
312
312
  "arm64"
313
313
  ],
@@ -322,9 +322,9 @@
322
322
  }
323
323
  },
324
324
  "node_modules/@esbuild/netbsd-x64": {
325
- "version": "0.25.12",
326
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz",
327
- "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==",
325
+ "version": "0.27.1",
326
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.1.tgz",
327
+ "integrity": "sha512-1YQ8ybGi2yIXswu6eNzJsrYIGFpnlzEWRl6iR5gMgmsrR0FcNoV1m9k9sc3PuP5rUBLshOZylc9nqSgymI+TYg==",
328
328
  "cpu": [
329
329
  "x64"
330
330
  ],
@@ -339,9 +339,9 @@
339
339
  }
340
340
  },
341
341
  "node_modules/@esbuild/openbsd-arm64": {
342
- "version": "0.25.12",
343
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz",
344
- "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==",
342
+ "version": "0.27.1",
343
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.1.tgz",
344
+ "integrity": "sha512-5Z+DzLCrq5wmU7RDaMDe2DVXMRm2tTDvX2KU14JJVBN2CT/qov7XVix85QoJqHltpvAOZUAc3ndU56HSMWrv8g==",
345
345
  "cpu": [
346
346
  "arm64"
347
347
  ],
@@ -356,9 +356,9 @@
356
356
  }
357
357
  },
358
358
  "node_modules/@esbuild/openbsd-x64": {
359
- "version": "0.25.12",
360
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz",
361
- "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==",
359
+ "version": "0.27.1",
360
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.1.tgz",
361
+ "integrity": "sha512-Q73ENzIdPF5jap4wqLtsfh8YbYSZ8Q0wnxplOlZUOyZy7B4ZKW8DXGWgTCZmF8VWD7Tciwv5F4NsRf6vYlZtqg==",
362
362
  "cpu": [
363
363
  "x64"
364
364
  ],
@@ -373,9 +373,9 @@
373
373
  }
374
374
  },
375
375
  "node_modules/@esbuild/openharmony-arm64": {
376
- "version": "0.25.12",
377
- "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz",
378
- "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==",
376
+ "version": "0.27.1",
377
+ "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.1.tgz",
378
+ "integrity": "sha512-ajbHrGM/XiK+sXM0JzEbJAen+0E+JMQZ2l4RR4VFwvV9JEERx+oxtgkpoKv1SevhjavK2z2ReHk32pjzktWbGg==",
379
379
  "cpu": [
380
380
  "arm64"
381
381
  ],
@@ -390,9 +390,9 @@
390
390
  }
391
391
  },
392
392
  "node_modules/@esbuild/sunos-x64": {
393
- "version": "0.25.12",
394
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz",
395
- "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==",
393
+ "version": "0.27.1",
394
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.1.tgz",
395
+ "integrity": "sha512-IPUW+y4VIjuDVn+OMzHc5FV4GubIwPnsz6ubkvN8cuhEqH81NovB53IUlrlBkPMEPxvNnf79MGBoz8rZ2iW8HA==",
396
396
  "cpu": [
397
397
  "x64"
398
398
  ],
@@ -407,9 +407,9 @@
407
407
  }
408
408
  },
409
409
  "node_modules/@esbuild/win32-arm64": {
410
- "version": "0.25.12",
411
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz",
412
- "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==",
410
+ "version": "0.27.1",
411
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.1.tgz",
412
+ "integrity": "sha512-RIVRWiljWA6CdVu8zkWcRmGP7iRRIIwvhDKem8UMBjPql2TXM5PkDVvvrzMtj1V+WFPB4K7zkIGM7VzRtFkjdg==",
413
413
  "cpu": [
414
414
  "arm64"
415
415
  ],
@@ -424,9 +424,9 @@
424
424
  }
425
425
  },
426
426
  "node_modules/@esbuild/win32-ia32": {
427
- "version": "0.25.12",
428
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz",
429
- "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==",
427
+ "version": "0.27.1",
428
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.1.tgz",
429
+ "integrity": "sha512-2BR5M8CPbptC1AK5JbJT1fWrHLvejwZidKx3UMSF0ecHMa+smhi16drIrCEggkgviBwLYd5nwrFLSl5Kho96RQ==",
430
430
  "cpu": [
431
431
  "ia32"
432
432
  ],
@@ -441,9 +441,9 @@
441
441
  }
442
442
  },
443
443
  "node_modules/@esbuild/win32-x64": {
444
- "version": "0.25.12",
445
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz",
446
- "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==",
444
+ "version": "0.27.1",
445
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.1.tgz",
446
+ "integrity": "sha512-d5X6RMYv6taIymSk8JBP+nxv8DQAMY6A51GPgusqLdK9wBz5wWIXy1KjTck6HnjE9hqJzJRdk+1p/t5soSbCtw==",
447
447
  "cpu": [
448
448
  "x64"
449
449
  ],
@@ -458,9 +458,9 @@
458
458
  }
459
459
  },
460
460
  "node_modules/esbuild": {
461
- "version": "0.25.12",
462
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz",
463
- "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==",
461
+ "version": "0.27.1",
462
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.1.tgz",
463
+ "integrity": "sha512-yY35KZckJJuVVPXpvjgxiCuVEJT67F6zDeVTv4rizyPrfGBUpZQsvmxnN+C371c2esD/hNMjj4tpBhuueLN7aA==",
464
464
  "dev": true,
465
465
  "hasInstallScript": true,
466
466
  "license": "MIT",
@@ -471,32 +471,32 @@
471
471
  "node": ">=18"
472
472
  },
473
473
  "optionalDependencies": {
474
- "@esbuild/aix-ppc64": "0.25.12",
475
- "@esbuild/android-arm": "0.25.12",
476
- "@esbuild/android-arm64": "0.25.12",
477
- "@esbuild/android-x64": "0.25.12",
478
- "@esbuild/darwin-arm64": "0.25.12",
479
- "@esbuild/darwin-x64": "0.25.12",
480
- "@esbuild/freebsd-arm64": "0.25.12",
481
- "@esbuild/freebsd-x64": "0.25.12",
482
- "@esbuild/linux-arm": "0.25.12",
483
- "@esbuild/linux-arm64": "0.25.12",
484
- "@esbuild/linux-ia32": "0.25.12",
485
- "@esbuild/linux-loong64": "0.25.12",
486
- "@esbuild/linux-mips64el": "0.25.12",
487
- "@esbuild/linux-ppc64": "0.25.12",
488
- "@esbuild/linux-riscv64": "0.25.12",
489
- "@esbuild/linux-s390x": "0.25.12",
490
- "@esbuild/linux-x64": "0.25.12",
491
- "@esbuild/netbsd-arm64": "0.25.12",
492
- "@esbuild/netbsd-x64": "0.25.12",
493
- "@esbuild/openbsd-arm64": "0.25.12",
494
- "@esbuild/openbsd-x64": "0.25.12",
495
- "@esbuild/openharmony-arm64": "0.25.12",
496
- "@esbuild/sunos-x64": "0.25.12",
497
- "@esbuild/win32-arm64": "0.25.12",
498
- "@esbuild/win32-ia32": "0.25.12",
499
- "@esbuild/win32-x64": "0.25.12"
474
+ "@esbuild/aix-ppc64": "0.27.1",
475
+ "@esbuild/android-arm": "0.27.1",
476
+ "@esbuild/android-arm64": "0.27.1",
477
+ "@esbuild/android-x64": "0.27.1",
478
+ "@esbuild/darwin-arm64": "0.27.1",
479
+ "@esbuild/darwin-x64": "0.27.1",
480
+ "@esbuild/freebsd-arm64": "0.27.1",
481
+ "@esbuild/freebsd-x64": "0.27.1",
482
+ "@esbuild/linux-arm": "0.27.1",
483
+ "@esbuild/linux-arm64": "0.27.1",
484
+ "@esbuild/linux-ia32": "0.27.1",
485
+ "@esbuild/linux-loong64": "0.27.1",
486
+ "@esbuild/linux-mips64el": "0.27.1",
487
+ "@esbuild/linux-ppc64": "0.27.1",
488
+ "@esbuild/linux-riscv64": "0.27.1",
489
+ "@esbuild/linux-s390x": "0.27.1",
490
+ "@esbuild/linux-x64": "0.27.1",
491
+ "@esbuild/netbsd-arm64": "0.27.1",
492
+ "@esbuild/netbsd-x64": "0.27.1",
493
+ "@esbuild/openbsd-arm64": "0.27.1",
494
+ "@esbuild/openbsd-x64": "0.27.1",
495
+ "@esbuild/openharmony-arm64": "0.27.1",
496
+ "@esbuild/sunos-x64": "0.27.1",
497
+ "@esbuild/win32-arm64": "0.27.1",
498
+ "@esbuild/win32-ia32": "0.27.1",
499
+ "@esbuild/win32-x64": "0.27.1"
500
500
  }
501
501
  },
502
502
  "node_modules/fsevents": {
@@ -550,13 +550,13 @@
550
550
  }
551
551
  },
552
552
  "node_modules/tsx": {
553
- "version": "4.20.6",
554
- "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.20.6.tgz",
555
- "integrity": "sha512-ytQKuwgmrrkDTFP4LjR0ToE2nqgy886GpvRSpU0JAnrdBYppuY5rLkRUYPU1yCryb24SsKBTL/hlDQAEFVwtZg==",
553
+ "version": "4.21.0",
554
+ "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.21.0.tgz",
555
+ "integrity": "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==",
556
556
  "dev": true,
557
557
  "license": "MIT",
558
558
  "dependencies": {
559
- "esbuild": "~0.25.0",
559
+ "esbuild": "~0.27.0",
560
560
  "get-tsconfig": "^4.7.5"
561
561
  },
562
562
  "bin": {
@@ -115,4 +115,6 @@ class Document {
115
115
  }
116
116
  }
117
117
 
118
- }
118
+
119
+ }
120
+
@@ -129,4 +129,6 @@ class Document {
129
129
  throw new Error(`Api does not have the collection ${collection_id}`)
130
130
  }
131
131
  }
132
- }
132
+
133
+ }
134
+
@@ -125,4 +125,6 @@ class Document {
125
125
  throw new Error(`Api does not have the collection ${collection_id}`)
126
126
  }
127
127
  }
128
- }
128
+
129
+ }
130
+
@@ -115,4 +115,76 @@ class Document {
115
115
  }
116
116
  }
117
117
 
118
- }
118
+
119
+ array(key: "steps"): Collection_Project_Array_steps;
120
+ array(key: string) {
121
+ switch(key) {
122
+ case "steps":
123
+ return new Collection_Project_Array_steps([...this.path, this.document_id, "steps"], this.get_auth);
124
+ default:
125
+ throw new Error(`Collection ${this.collection_id} does not have an array at the key ${key}`)
126
+ }
127
+ }
128
+ }
129
+
130
+ export type project_steps_put = {
131
+ "_id": string, "name": string,}
132
+ export type project_steps_post = {
133
+ "_id"?: string, "name": string,}
134
+
135
+ export class Collection_Project_Array_steps {
136
+ path: string[]
137
+ get_auth: () => Promise<any>
138
+ collection_id: string
139
+ collection_name_plural: string
140
+ array_key: string
141
+
142
+ constructor(path: string[], get_auth: () => Promise<any>) {
143
+ this.path = path;
144
+ this.get_auth = get_auth;
145
+ this.collection_id = "project";
146
+ this.collection_name_plural = "projects"
147
+ this.array_key = "steps"
148
+ }
149
+
150
+ async push(document: project_steps_post): Promise<project>{
151
+ try {
152
+ let result = await ky.post(this.path.join('/'), {
153
+ headers: {
154
+ authorization: await this.get_auth()
155
+ },
156
+ json: document
157
+ }).json() as Response<project>;
158
+ return result.data;
159
+ } catch(err){
160
+ return Promise.reject(err)
161
+ }
162
+ }
163
+
164
+ async replace(document: project_steps_put): Promise<project>{
165
+ try {
166
+ let result = await ky.put([...this.path, document._id].join('/'), {
167
+ headers: {
168
+ authorization: await this.get_auth()
169
+ },
170
+ json: document
171
+ }).json() as Response<project>;
172
+ return result.data;
173
+ } catch(err){
174
+ return Promise.reject(err)
175
+ }
176
+ }
177
+
178
+ async delete(document_id: string): Promise<project>{
179
+ try {
180
+ let result = await ky.delete([...this.path, document_id].join('/'), {
181
+ headers: {
182
+ authorization: await this.get_auth()
183
+ }
184
+ }).json() as Response<project>;
185
+ return result.data;
186
+ } catch(err){
187
+ return Promise.reject(err)
188
+ }
189
+ }
190
+ }
@@ -4,4 +4,8 @@ export type project = {
4
4
  "institution_id": string
5
5
  "client_id": string
6
6
  "project_number": number
7
+ "steps": {
8
+ "_id": string
9
+ "name": string
10
+ }[]
7
11
  }
@@ -4,4 +4,8 @@ export type project_post = {
4
4
  "institution_id": string
5
5
  "client_id": string
6
6
  "project_number": number
7
+ "steps": {
8
+ "_id": string
9
+ "name": string
10
+ }[]
7
11
  }
@@ -4,4 +4,8 @@ export type project_put = {
4
4
  "institution_id"?: string
5
5
  "client_id"?: string
6
6
  "project_number"?: number
7
+ "steps"?: {
8
+ "_id": string
9
+ "name": string
10
+ }[]
7
11
  }