@dyrected/core 2.5.25 → 2.5.26

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 (162) hide show
  1. package/dist/__tests__/app.test.d.ts +2 -0
  2. package/dist/__tests__/app.test.d.ts.map +1 -0
  3. package/dist/__tests__/app.test.js +27 -0
  4. package/dist/__tests__/app.test.js.map +1 -0
  5. package/dist/__tests__/config.test.d.ts +2 -0
  6. package/dist/__tests__/config.test.d.ts.map +1 -0
  7. package/dist/__tests__/config.test.js +34 -0
  8. package/dist/__tests__/config.test.js.map +1 -0
  9. package/dist/__tests__/deleteMany.test.d.ts +2 -0
  10. package/dist/__tests__/deleteMany.test.d.ts.map +1 -0
  11. package/dist/__tests__/deleteMany.test.js +75 -0
  12. package/dist/__tests__/deleteMany.test.js.map +1 -0
  13. package/dist/__tests__/depth.test.d.ts +2 -0
  14. package/dist/__tests__/depth.test.d.ts.map +1 -0
  15. package/dist/__tests__/depth.test.js +81 -0
  16. package/dist/__tests__/depth.test.js.map +1 -0
  17. package/dist/__tests__/dynamic-options.test.d.ts +2 -0
  18. package/dist/__tests__/dynamic-options.test.d.ts.map +1 -0
  19. package/dist/__tests__/dynamic-options.test.js +132 -0
  20. package/dist/__tests__/dynamic-options.test.js.map +1 -0
  21. package/dist/__tests__/field-inference.test-types.d.ts +24 -0
  22. package/dist/__tests__/field-inference.test-types.d.ts.map +1 -0
  23. package/dist/__tests__/field-inference.test-types.js +87 -0
  24. package/dist/__tests__/field-inference.test-types.js.map +1 -0
  25. package/dist/__tests__/hooks.test.d.ts +2 -0
  26. package/dist/__tests__/hooks.test.d.ts.map +1 -0
  27. package/dist/__tests__/hooks.test.js +320 -0
  28. package/dist/__tests__/hooks.test.js.map +1 -0
  29. package/dist/__tests__/mocks.d.ts +68 -0
  30. package/dist/__tests__/mocks.d.ts.map +1 -0
  31. package/dist/__tests__/mocks.js +151 -0
  32. package/dist/__tests__/mocks.js.map +1 -0
  33. package/dist/__tests__/router.test.d.ts +2 -0
  34. package/dist/__tests__/router.test.d.ts.map +1 -0
  35. package/dist/__tests__/router.test.js +48 -0
  36. package/dist/__tests__/router.test.js.map +1 -0
  37. package/dist/__tests__/where.test.d.ts +2 -0
  38. package/dist/__tests__/where.test.d.ts.map +1 -0
  39. package/dist/__tests__/where.test.js +97 -0
  40. package/dist/__tests__/where.test.js.map +1 -0
  41. package/dist/app-BOrsS7Tz.d.cts +1771 -0
  42. package/dist/app-BOrsS7Tz.d.ts +1771 -0
  43. package/dist/app.d.ts +21 -0
  44. package/dist/app.d.ts.map +1 -0
  45. package/dist/app.js +56 -0
  46. package/dist/app.js.map +1 -0
  47. package/dist/auth/jexl.d.ts +10 -0
  48. package/dist/auth/jexl.d.ts.map +1 -0
  49. package/dist/auth/jexl.js +22 -0
  50. package/dist/auth/jexl.js.map +1 -0
  51. package/dist/auth/password.d.ts +10 -0
  52. package/dist/auth/password.d.ts.map +1 -0
  53. package/dist/auth/password.js +28 -0
  54. package/dist/auth/password.js.map +1 -0
  55. package/dist/auth/token.d.ts +20 -0
  56. package/dist/auth/token.d.ts.map +1 -0
  57. package/dist/auth/token.js +40 -0
  58. package/dist/auth/token.js.map +1 -0
  59. package/dist/chunk-SUGK7UYL.js +311 -0
  60. package/dist/chunk-ZFAOBRHT.js +2709 -0
  61. package/dist/controllers/auth.controller.d.ts +125 -0
  62. package/dist/controllers/auth.controller.d.ts.map +1 -0
  63. package/dist/controllers/auth.controller.js +323 -0
  64. package/dist/controllers/auth.controller.js.map +1 -0
  65. package/dist/controllers/collection.controller.d.ts +88 -0
  66. package/dist/controllers/collection.controller.d.ts.map +1 -0
  67. package/dist/controllers/collection.controller.js +554 -0
  68. package/dist/controllers/collection.controller.js.map +1 -0
  69. package/dist/controllers/global.controller.d.ts +17 -0
  70. package/dist/controllers/global.controller.d.ts.map +1 -0
  71. package/dist/controllers/global.controller.js +116 -0
  72. package/dist/controllers/global.controller.js.map +1 -0
  73. package/dist/controllers/media.controller.d.ts +36 -0
  74. package/dist/controllers/media.controller.d.ts.map +1 -0
  75. package/dist/controllers/media.controller.js +155 -0
  76. package/dist/controllers/media.controller.js.map +1 -0
  77. package/dist/controllers/preview.controller.d.ts +37 -0
  78. package/dist/controllers/preview.controller.d.ts.map +1 -0
  79. package/dist/controllers/preview.controller.js +48 -0
  80. package/dist/controllers/preview.controller.js.map +1 -0
  81. package/dist/index-Bp7PDOYG.d.cts +1750 -0
  82. package/dist/index-Bp7PDOYG.d.ts +1750 -0
  83. package/dist/index-DfAmTZXk.d.cts +1749 -0
  84. package/dist/index-DfAmTZXk.d.ts +1749 -0
  85. package/dist/index.cjs +2 -2396
  86. package/dist/index.d.cts +2 -4
  87. package/dist/index.d.ts +2 -4
  88. package/dist/index.d.ts.map +1 -0
  89. package/dist/index.js +3 -5
  90. package/dist/index.js.map +1 -0
  91. package/dist/middleware/auth.d.ts +18 -0
  92. package/dist/middleware/auth.d.ts.map +1 -0
  93. package/dist/middleware/auth.js +45 -0
  94. package/dist/middleware/auth.js.map +1 -0
  95. package/dist/router.d.ts +8 -0
  96. package/dist/router.d.ts.map +1 -0
  97. package/dist/router.js +463 -0
  98. package/dist/router.js.map +1 -0
  99. package/dist/server.cjs +103 -0
  100. package/dist/server.d.cts +22 -4
  101. package/dist/server.d.ts +22 -4
  102. package/dist/server.d.ts.map +1 -0
  103. package/dist/server.js +2429 -8
  104. package/dist/server.js.map +1 -0
  105. package/dist/services/audit.service.d.ts +23 -0
  106. package/dist/services/audit.service.d.ts.map +1 -0
  107. package/dist/services/audit.service.js +28 -0
  108. package/dist/services/audit.service.js.map +1 -0
  109. package/dist/services/defaults.service.d.ts +8 -0
  110. package/dist/services/defaults.service.d.ts.map +1 -0
  111. package/dist/services/defaults.service.js +55 -0
  112. package/dist/services/defaults.service.js.map +1 -0
  113. package/dist/services/email.service.d.ts +33 -0
  114. package/dist/services/email.service.d.ts.map +1 -0
  115. package/dist/services/email.service.js +219 -0
  116. package/dist/services/email.service.js.map +1 -0
  117. package/dist/services/media.service.d.ts +20 -0
  118. package/dist/services/media.service.d.ts.map +1 -0
  119. package/dist/services/media.service.js +49 -0
  120. package/dist/services/media.service.js.map +1 -0
  121. package/dist/services/population.service.d.ts +20 -0
  122. package/dist/services/population.service.d.ts.map +1 -0
  123. package/dist/services/population.service.js +168 -0
  124. package/dist/services/population.service.js.map +1 -0
  125. package/dist/types/index.d.ts +1749 -0
  126. package/dist/types/index.d.ts.map +1 -0
  127. package/dist/types/index.js +3 -0
  128. package/dist/types/index.js.map +1 -0
  129. package/dist/utils/config.d.ts +8 -0
  130. package/dist/utils/config.d.ts.map +1 -0
  131. package/dist/utils/config.js +153 -0
  132. package/dist/utils/config.js.map +1 -0
  133. package/dist/utils/hooks.d.ts +41 -0
  134. package/dist/utils/hooks.d.ts.map +1 -0
  135. package/dist/utils/hooks.js +169 -0
  136. package/dist/utils/hooks.js.map +1 -0
  137. package/dist/utils/openapi.d.ts +6 -0
  138. package/dist/utils/openapi.d.ts.map +1 -0
  139. package/dist/utils/openapi.js +331 -0
  140. package/dist/utils/openapi.js.map +1 -0
  141. package/dist/utils/parse-where.d.ts +63 -0
  142. package/dist/utils/parse-where.d.ts.map +1 -0
  143. package/dist/utils/parse-where.js +196 -0
  144. package/dist/utils/parse-where.js.map +1 -0
  145. package/dist/utils/readonly-db.d.ts +9 -0
  146. package/dist/utils/readonly-db.d.ts.map +1 -0
  147. package/dist/utils/readonly-db.js +21 -0
  148. package/dist/utils/readonly-db.js.map +1 -0
  149. package/dist/utils/setup-prompt.d.ts +11 -0
  150. package/dist/utils/setup-prompt.d.ts.map +1 -0
  151. package/dist/utils/setup-prompt.js +863 -0
  152. package/dist/utils/setup-prompt.js.map +1 -0
  153. package/dist/utils/swagger.d.ts +5 -0
  154. package/dist/utils/swagger.d.ts.map +1 -0
  155. package/dist/utils/swagger.js +51 -0
  156. package/dist/utils/swagger.js.map +1 -0
  157. package/dist/utils/where-sanitizer.d.ts +10 -0
  158. package/dist/utils/where-sanitizer.d.ts.map +1 -0
  159. package/dist/utils/where-sanitizer.js +63 -0
  160. package/dist/utils/where-sanitizer.js.map +1 -0
  161. package/dist/where-sanitizer-DQIWTQZW.js +50 -0
  162. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-prompt.js","sourceRoot":"","sources":["../../src/utils/setup-prompt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Returns a standalone HTML string for Swagger UI loading from a CDN.
3
+ */
4
+ export declare function getSwaggerHtml(specUrl?: string): string;
5
+ //# sourceMappingURL=swagger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swagger.d.ts","sourceRoot":"","sources":["../../src/utils/swagger.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,MAA4B,UA8CnE"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Returns a standalone HTML string for Swagger UI loading from a CDN.
3
+ */
4
+ export function getSwaggerHtml(specUrl = '/api/openapi.json') {
5
+ return `
6
+ <!DOCTYPE html>
7
+ <html lang="en">
8
+ <head>
9
+ <meta charset="utf-8" />
10
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
11
+ <meta name="description" content="SwaggerUI" />
12
+ <title>Dyrected API Documentation</title>
13
+ <link rel="stylesheet" href="https://unpkg.com/swagger-ui-dist@5.11.0/swagger-ui.css" />
14
+ </head>
15
+ <body>
16
+ <div id="swagger-ui"></div>
17
+ <script src="https://unpkg.com/swagger-ui-dist@5.11.0/swagger-ui-bundle.js" charset="UTF-8"></script>
18
+ <script src="https://unpkg.com/swagger-ui-dist@5.11.0/swagger-ui-standalone-preset.js" charset="UTF-8"></script>
19
+ <script>
20
+ window.onload = () => {
21
+ // Forward the apikey query param when loading the spec and making API calls
22
+ const params = new URLSearchParams(window.location.search);
23
+ const apiKey = params.get('apikey');
24
+ const specUrlWithKey = apiKey ? '${specUrl}?apikey=' + encodeURIComponent(apiKey) : '${specUrl}';
25
+
26
+ window.ui = SwaggerUIBundle({
27
+ url: specUrlWithKey,
28
+ dom_id: '#swagger-ui',
29
+ presets: [
30
+ SwaggerUIBundle.presets.apis,
31
+ SwaggerUIStandalonePreset
32
+ ],
33
+ layout: "BaseLayout",
34
+ deepLinking: true,
35
+ showExtensions: true,
36
+ showCommonExtensions: true,
37
+ // Inject x-api-key header on every request made from the Swagger UI
38
+ requestInterceptor: (request) => {
39
+ if (apiKey) {
40
+ request.headers['x-api-key'] = apiKey;
41
+ }
42
+ return request;
43
+ }
44
+ });
45
+ };
46
+ </script>
47
+ </body>
48
+ </html>
49
+ `;
50
+ }
51
+ //# sourceMappingURL=swagger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swagger.js","sourceRoot":"","sources":["../../src/utils/swagger.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,UAAkB,mBAAmB;IAClE,OAAO;;;;;;;;;;;;;;;;;;;uCAmB8B,OAAO,6CAA6C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;GAyB/F,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { WhereClause } from './parse-where.js';
2
+ import type { Field } from '../types/index.js';
3
+ /**
4
+ * Sanitizes a WhereClause by stripping out any fields that:
5
+ * 1. Do not exist in the schema.
6
+ * 2. Have admin.filterable === false.
7
+ * 3. Are of a type that is never filterable (e.g. password, richText).
8
+ */
9
+ export declare function sanitizeWhereClause(where: WhereClause, fields: Field[]): WhereClause;
10
+ //# sourceMappingURL=where-sanitizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"where-sanitizer.d.ts","sourceRoot":"","sources":["../../src/utils/where-sanitizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAY/C;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,CAoDpF"}
@@ -0,0 +1,63 @@
1
+ const NEVER_FILTERABLE_TYPES = [
2
+ 'password',
3
+ 'richText',
4
+ 'json',
5
+ 'file',
6
+ 'image',
7
+ 'join',
8
+ 'collapsible'
9
+ ];
10
+ /**
11
+ * Sanitizes a WhereClause by stripping out any fields that:
12
+ * 1. Do not exist in the schema.
13
+ * 2. Have admin.filterable === false.
14
+ * 3. Are of a type that is never filterable (e.g. password, richText).
15
+ */
16
+ export function sanitizeWhereClause(where, fields) {
17
+ // Build a fast lookup map for fields, including nested fields if needed.
18
+ // For simplicity, we just look at top-level fields for now, as the DSL is flat.
19
+ // If the DSL supports nested properties (e.g., block fields), we'd need a deep lookup.
20
+ const fieldMap = new Map();
21
+ function addFieldsToMap(fList, prefix = '') {
22
+ for (const f of fList) {
23
+ if ('name' in f && f.name) {
24
+ fieldMap.set(prefix + f.name, f);
25
+ }
26
+ // If we support filtering inside groups/rows, we would recurse here.
27
+ // But for now, let's just do top-level.
28
+ if (f.type === 'object' || f.type === 'row' || f.type === 'array') {
29
+ if ('fields' in f && Array.isArray(f.fields)) {
30
+ addFieldsToMap(f.fields, f.type === 'object' || f.type === 'array' ? `${prefix}${f.name}.` : prefix);
31
+ }
32
+ }
33
+ }
34
+ }
35
+ addFieldsToMap(fields);
36
+ function walk(node) {
37
+ const result = {};
38
+ for (const [key, value] of Object.entries(node)) {
39
+ if (key === 'AND' || key === 'OR') {
40
+ if (Array.isArray(value)) {
41
+ const processed = value.map(v => walk(v)).filter(v => Object.keys(v).length > 0);
42
+ if (processed.length > 0) {
43
+ result[key] = processed;
44
+ }
45
+ }
46
+ continue;
47
+ }
48
+ // It's a field condition
49
+ const fieldDef = fieldMap.get(key);
50
+ if (!fieldDef)
51
+ continue; // Field doesn't exist
52
+ if (fieldDef.admin?.filterable === false)
53
+ continue; // Explicitly opted out
54
+ if (NEVER_FILTERABLE_TYPES.includes(fieldDef.type))
55
+ continue; // Never filterable type
56
+ // Keep the field
57
+ result[key] = value;
58
+ }
59
+ return result;
60
+ }
61
+ return walk(where);
62
+ }
63
+ //# sourceMappingURL=where-sanitizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"where-sanitizer.js","sourceRoot":"","sources":["../../src/utils/where-sanitizer.ts"],"names":[],"mappings":"AAGA,MAAM,sBAAsB,GAAG;IAC7B,UAAU;IACV,UAAU;IACV,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,aAAa;CACd,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAkB,EAAE,MAAe;IACrE,yEAAyE;IACzE,gFAAgF;IAChF,uFAAuF;IACvF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAiB,CAAC;IAE1C,SAAS,cAAc,CAAC,KAAc,EAAE,MAAM,GAAG,EAAE;QACjD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC1B,QAAQ,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAU,CAAC,CAAC;YAC5C,CAAC;YACD,qEAAqE;YACrE,wCAAwC;YACxC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAClE,IAAI,QAAQ,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC7C,cAAc,CAAC,CAAC,CAAC,MAAiB,EAAE,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,GAAI,CAAS,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC3H,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,cAAc,CAAC,MAAM,CAAC,CAAC;IAEvB,SAAS,IAAI,CAAC,IAAiB;QAC7B,MAAM,MAAM,GAAgB,EAAE,CAAC;QAE/B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAChD,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBAClC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzB,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACjF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACzB,MAAM,CAAC,GAAmB,CAAC,GAAG,SAAS,CAAC;oBAC1C,CAAC;gBACH,CAAC;gBACD,SAAS;YACX,CAAC;YAED,yBAAyB;YACzB,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAEnC,IAAI,CAAC,QAAQ;gBAAE,SAAS,CAAC,sBAAsB;YAC/C,IAAI,QAAQ,CAAC,KAAK,EAAE,UAAU,KAAK,KAAK;gBAAE,SAAS,CAAC,uBAAuB;YAC3E,IAAI,sBAAsB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,SAAS,CAAC,wBAAwB;YAEtF,iBAAiB;YACjB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;AACrB,CAAC"}
@@ -0,0 +1,50 @@
1
+ // src/utils/where-sanitizer.ts
2
+ var NEVER_FILTERABLE_TYPES = [
3
+ "password",
4
+ "richText",
5
+ "json",
6
+ "file",
7
+ "image",
8
+ "join",
9
+ "collapsible"
10
+ ];
11
+ function sanitizeWhereClause(where, fields) {
12
+ const fieldMap = /* @__PURE__ */ new Map();
13
+ function addFieldsToMap(fList, prefix = "") {
14
+ for (const f of fList) {
15
+ if ("name" in f && f.name) {
16
+ fieldMap.set(prefix + f.name, f);
17
+ }
18
+ if (f.type === "object" || f.type === "row" || f.type === "array") {
19
+ if ("fields" in f && Array.isArray(f.fields)) {
20
+ addFieldsToMap(f.fields, f.type === "object" || f.type === "array" ? `${prefix}${f.name}.` : prefix);
21
+ }
22
+ }
23
+ }
24
+ }
25
+ addFieldsToMap(fields);
26
+ function walk(node) {
27
+ const result = {};
28
+ for (const [key, value] of Object.entries(node)) {
29
+ if (key === "AND" || key === "OR") {
30
+ if (Array.isArray(value)) {
31
+ const processed = value.map((v) => walk(v)).filter((v) => Object.keys(v).length > 0);
32
+ if (processed.length > 0) {
33
+ result[key] = processed;
34
+ }
35
+ }
36
+ continue;
37
+ }
38
+ const fieldDef = fieldMap.get(key);
39
+ if (!fieldDef) continue;
40
+ if (fieldDef.admin?.filterable === false) continue;
41
+ if (NEVER_FILTERABLE_TYPES.includes(fieldDef.type)) continue;
42
+ result[key] = value;
43
+ }
44
+ return result;
45
+ }
46
+ return walk(where);
47
+ }
48
+ export {
49
+ sanitizeWhereClause
50
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dyrected/core",
3
- "version": "2.5.25",
3
+ "version": "2.5.26",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",