glasswork 0.13.1 → 0.13.3

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 (68) hide show
  1. package/dist/authorization/ability-middleware.d.ts +61 -0
  2. package/dist/authorization/ability-middleware.d.ts.map +1 -0
  3. package/dist/authorization/ability-middleware.js +74 -0
  4. package/dist/authorization/ability-middleware.js.map +1 -0
  5. package/dist/authorization/index.d.ts +46 -0
  6. package/dist/authorization/index.d.ts.map +1 -0
  7. package/dist/authorization/index.js +46 -0
  8. package/dist/authorization/index.js.map +1 -0
  9. package/dist/authorization/route-helpers.d.ts +106 -0
  10. package/dist/authorization/route-helpers.d.ts.map +1 -0
  11. package/dist/authorization/route-helpers.js +136 -0
  12. package/dist/authorization/route-helpers.js.map +1 -0
  13. package/dist/authorization/service-proxy.d.ts +59 -0
  14. package/dist/authorization/service-proxy.d.ts.map +1 -0
  15. package/dist/authorization/service-proxy.js +110 -0
  16. package/dist/authorization/service-proxy.js.map +1 -0
  17. package/dist/authorization/types.d.ts +58 -0
  18. package/dist/authorization/types.d.ts.map +1 -0
  19. package/dist/authorization/types.js +7 -0
  20. package/dist/authorization/types.js.map +1 -0
  21. package/dist/core/bootstrap.js.map +1 -1
  22. package/dist/hooks/authorization-hook.d.ts +100 -0
  23. package/dist/hooks/authorization-hook.d.ts.map +1 -0
  24. package/dist/hooks/authorization-hook.js +93 -0
  25. package/dist/hooks/authorization-hook.js.map +1 -0
  26. package/dist/hooks/index.d.ts +54 -0
  27. package/dist/hooks/index.d.ts.map +1 -0
  28. package/dist/hooks/index.js +55 -0
  29. package/dist/hooks/index.js.map +1 -0
  30. package/dist/hooks/service-hooks.d.ts +82 -0
  31. package/dist/hooks/service-hooks.d.ts.map +1 -0
  32. package/dist/hooks/service-hooks.js +158 -0
  33. package/dist/hooks/service-hooks.js.map +1 -0
  34. package/dist/hooks/types.d.ts +151 -0
  35. package/dist/hooks/types.d.ts.map +1 -0
  36. package/dist/hooks/types.js +2 -0
  37. package/dist/hooks/types.js.map +1 -0
  38. package/dist/http/route-helpers.d.ts.map +1 -1
  39. package/dist/http/route-helpers.js.map +1 -1
  40. package/dist/jobs/drivers/mock-driver.d.ts +7 -0
  41. package/dist/jobs/drivers/mock-driver.d.ts.map +1 -1
  42. package/dist/jobs/drivers/mock-driver.js +75 -16
  43. package/dist/jobs/drivers/mock-driver.js.map +1 -1
  44. package/dist/jobs/job-service.d.ts.map +1 -1
  45. package/dist/jobs/job-service.js +3 -0
  46. package/dist/jobs/job-service.js.map +1 -1
  47. package/dist/jobs/types.d.ts +2 -0
  48. package/dist/jobs/types.d.ts.map +1 -1
  49. package/dist/list-query/prisma-builder.d.ts.map +1 -1
  50. package/dist/list-query/prisma-builder.js +36 -8
  51. package/dist/list-query/prisma-builder.js.map +1 -1
  52. package/dist/openapi/hooks.d.ts +14 -0
  53. package/dist/openapi/hooks.d.ts.map +1 -0
  54. package/dist/openapi/hooks.js +83 -0
  55. package/dist/openapi/hooks.js.map +1 -0
  56. package/dist/openapi/openapi-transformer.d.ts +13 -0
  57. package/dist/openapi/openapi-transformer.d.ts.map +1 -0
  58. package/dist/openapi/openapi-transformer.js +87 -0
  59. package/dist/openapi/openapi-transformer.js.map +1 -0
  60. package/dist/utils/pagination.d.ts +48 -0
  61. package/dist/utils/pagination.d.ts.map +1 -0
  62. package/dist/utils/pagination.js +42 -0
  63. package/dist/utils/pagination.js.map +1 -0
  64. package/dist/utils/serialize-dates.d.ts +27 -0
  65. package/dist/utils/serialize-dates.d.ts.map +1 -0
  66. package/dist/utils/serialize-dates.js +39 -0
  67. package/dist/utils/serialize-dates.js.map +1 -0
  68. package/package.json +30 -29
@@ -57,7 +57,7 @@ function buildStringCondition(operator, value, isCaseInsensitive) {
57
57
  */
58
58
  function buildInCondition(operator, value, isCaseInsensitive) {
59
59
  // Split by pipe and parse each value
60
- const values = value.split('|').map((v) => parseValue(v.trim()));
60
+ const values = value.split('|').map((v) => parsePrimitiveValue(v.trim()));
61
61
  // Check if all values are strings for case-insensitive mode
62
62
  const allStrings = values.every((v) => typeof v === 'string');
63
63
  if (operator === '@=|') {
@@ -105,10 +105,14 @@ function operatorToPrismaCondition(operator, value) {
105
105
  throw new Error(`Unsupported operator: ${operator}`);
106
106
  }
107
107
  /**
108
- * Convert a value string to appropriate type for Prisma
109
- * Attempts to parse as number or boolean, otherwise returns as string
108
+ * Coerce a single literal string to the primitive types we support in filters when the operator
109
+ * does not require a raw string (equality, comparison, IN list tokens).
110
+ *
111
+ * - `true` / `false` → boolean (exact match, case-sensitive).
112
+ * - Numeric-looking strings → number (so `age==42` and `age>18` behave intuitively).
113
+ * - Everything else → unchanged string.
110
114
  */
111
- function parseValue(value) {
115
+ function parsePrimitiveValue(value) {
112
116
  if (value === 'true') {
113
117
  return true;
114
118
  }
@@ -121,6 +125,33 @@ function parseValue(value) {
121
125
  }
122
126
  return value;
123
127
  }
128
+ /**
129
+ * Coerce a filter value for `operator` before building Prisma conditions.
130
+ *
131
+ * - **Substring / IN**: return the string as-is. Text search must not turn `"432"` into a number;
132
+ * pipe-separated IN lists are split and parsed per segment in `buildInCondition`.
133
+ * - **Equality and comparisons**: delegate to `parsePrimitiveValue` so legacy string inputs like
134
+ * `"42"` or `"true"` still coerce.
135
+ *
136
+ * A trailing `*` on `operator` is stripped before branching; it only affects case-insensitive
137
+ * matching, not how the value is parsed.
138
+ */
139
+ function parseValue(value, operator) {
140
+ const baseOperator = operator.replace(/\*$/, '');
141
+ // For IN operators, keep the value as string (pipe-separated).
142
+ if (baseOperator.includes('|')) {
143
+ return value;
144
+ }
145
+ if (baseOperator === '@=' ||
146
+ baseOperator === '_=' ||
147
+ baseOperator === '_-=' ||
148
+ baseOperator === '!@=' ||
149
+ baseOperator === '!_=' ||
150
+ baseOperator === '!_-=') {
151
+ return value;
152
+ }
153
+ return parsePrimitiveValue(value);
154
+ }
124
155
  /**
125
156
  * Build a nested Prisma where condition from a field path
126
157
  * For nested paths (relations), wraps in Prisma's relation filter structure { is: { ... } }
@@ -189,10 +220,7 @@ export function buildWhereClause(filters) {
189
220
  }
190
221
  let where = {};
191
222
  for (const filter of filters) {
192
- // For IN operators, keep the value as string (pipe-separated)
193
- // The buildInCondition function will split and parse individual values
194
- const isInOperator = filter.operator.includes('|');
195
- const parsedValue = isInOperator ? filter.value : parseValue(filter.value);
223
+ const parsedValue = parseValue(filter.value, filter.operator);
196
224
  const condition = operatorToPrismaCondition(filter.operator, parsedValue);
197
225
  const nestedCondition = buildNestedWhereCondition(filter.fieldPath, condition);
198
226
  where = mergeWhereConditions(where, nestedCondition);
@@ -1 +1 @@
1
- {"version":3,"file":"prisma-builder.js","sourceRoot":"","sources":["../../src/list-query/prisma-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prisma-builder.js","sourceRoot":"","sources":["../../src/list-query/prisma-builder.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,SAAS,sBAAsB,CAC7B,QAAqB,EACrB,KAAgC,EAChC,iBAA0B;IAE1B,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,IAAI,iBAAiB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACnD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;QAChD,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC3B,CAAC;IACD,IAAI,iBAAiB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACnD,OAAO,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC;IACzD,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,SAAS,wBAAwB,CAC/B,QAAiC,EACjC,KAAgC;IAEhC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,GAAG;YACN,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;QACvB,KAAK,GAAG;YACN,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;QACvB,KAAK,IAAI;YACP,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;QACxB,KAAK,IAAI;YACP,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;IAC1B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAC3B,QAAsD,EACtD,KAAgC,EAChC,iBAA0B;IAE1B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,wBAAwB,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,aAAa,GAA4B,iBAAiB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAChG,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,IAAI;YACP,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,aAAa,EAAE,CAAC;QAC/C,KAAK,IAAI;YACP,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,aAAa,EAAE,CAAC;QACjD,KAAK,KAAK;YACR,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,aAAa,EAAE,CAAC;QAC/C,KAAK,KAAK;YACR,OAAO,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,aAAa,EAAE,EAAE,CAAC;QACxD,KAAK,KAAK;YACR,OAAO,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,aAAa,EAAE,EAAE,CAAC;QAC1D,KAAK,MAAM;YACT,OAAO,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,aAAa,EAAE,EAAE,CAAC;IAC1D,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CACvB,QAAwB,EACxB,KAAa,EACb,iBAA0B;IAE1B,qCAAqC;IACrC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAE1E,4DAA4D;IAC5D,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;IAE9D,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;QACvB,IAAI,iBAAiB,IAAI,UAAU,EAAE,CAAC;YACpC,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;QAC7C,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;IACxB,CAAC;IAED,gBAAgB;IAChB,IAAI,iBAAiB,IAAI,UAAU,EAAE,CAAC;QACpC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IAChD,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB,CAChC,QAAwB,EACxB,KAAgC;IAEhC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACjD,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAmB,CAAC;IAEnE,sBAAsB;IACtB,IAAI,YAAY,KAAK,KAAK,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;QACtD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,eAAe,QAAQ,kDAAkD,CAAC,CAAC;QAC7F,CAAC;QACD,OAAO,gBAAgB,CAAC,YAAY,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QACnD,OAAO,sBAAsB,CAAC,YAAY,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC;IACxE,CAAC;IACD,IACE,YAAY,KAAK,GAAG;QACpB,YAAY,KAAK,GAAG;QACpB,YAAY,KAAK,IAAI;QACrB,YAAY,KAAK,IAAI,EACrB,CAAC;QACD,OAAO,wBAAwB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;IACD,IACE,YAAY,KAAK,IAAI;QACrB,YAAY,KAAK,IAAI;QACrB,YAAY,KAAK,KAAK;QACtB,YAAY,KAAK,KAAK;QACtB,YAAY,KAAK,KAAK;QACtB,YAAY,KAAK,MAAM,EACvB,CAAC;QACD,OAAO,oBAAoB,CAAC,YAAY,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;AACvD,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,mBAAmB,CAAC,KAAa;IACxC,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACnD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,UAAU,CAAC,KAAa,EAAE,QAAwB;IACzD,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAmB,CAAC;IAEnE,+DAA+D;IAC/D,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IACE,YAAY,KAAK,IAAI;QACrB,YAAY,KAAK,IAAI;QACrB,YAAY,KAAK,KAAK;QACtB,YAAY,KAAK,KAAK;QACtB,YAAY,KAAK,KAAK;QACtB,YAAY,KAAK,MAAM,EACvB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,SAAS,yBAAyB,CAChC,SAAoB,EACpB,SAAkC;IAElC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QACD,OAAO;YACL,CAAC,KAAK,CAAC,EAAE,SAAS;SACnB,CAAC;IACJ,CAAC;IAED,uFAAuF;IACvF,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;IACnC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IAED,gDAAgD;IAChD,IAAI,eAAe,GAA4B,SAAS,CAAC;IACzD,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QACD,eAAe,GAAG;YAChB,CAAC,KAAK,CAAC,EAAE,eAAe;SACzB,CAAC;IACJ,CAAC;IAED,6CAA6C;IAC7C,OAAO;QACL,CAAC,KAAK,CAAC,EAAE;YACP,EAAE,EAAE,eAAe;SACpB;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAC3B,QAAiC,EACjC,YAAqC;IAErC,MAAM,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC/B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QACxD,IAAI,GAAG,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAClF,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,aAAa,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrF,MAAM,CAAC,GAAG,CAAC,GAAG,oBAAoB,CAChC,aAAwC,EACxC,KAAgC,CACjC,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACtB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAgC;IAC/D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,KAAK,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,yBAAyB,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC1E,MAAM,eAAe,GAAG,yBAAyB,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC/E,KAAK,GAAG,oBAAoB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAA4B;IACvD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YACD,OAAO;gBACL,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,SAAS;aACxB,CAAC;QACJ,CAAC;QAED,wFAAwF;QACxF,MAAM,OAAO,GAA4B,EAAE,CAAC;QAC5C,IAAI,OAAO,GAAG,OAAO,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YACD,MAAM,IAAI,GAA4B,EAAE,CAAC;YACzC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;YACtB,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACpC,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAyB;IAMzD,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;IACjD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC7B,OAAO;QACL,KAAK;QACL,OAAO;QACP,IAAI;QACJ,IAAI;KACL,CAAC;AACJ,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { OpenAPIResponseHook } from '../core/types.js';
2
+ /**
3
+ * Create a hook that adds CORS headers to responses
4
+ */
5
+ export declare function createCorsHeadersHook(enabled: boolean): OpenAPIResponseHook;
6
+ /**
7
+ * Create a hook that adds rate limiting headers to responses
8
+ */
9
+ export declare function createRateLimitHeadersHook(enabled: boolean): OpenAPIResponseHook;
10
+ /**
11
+ * Create a hook that adds pagination headers to 200 responses
12
+ */
13
+ export declare function createPaginationHeadersHook(): OpenAPIResponseHook;
14
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/openapi/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,mBAAmB,CAc3E;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,mBAAmB,CAgChF;AAED;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,mBAAmB,CA4BjE"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Create a hook that adds CORS headers to responses
3
+ */
4
+ export function createCorsHeadersHook(enabled) {
5
+ return (response, _context) => {
6
+ if (!enabled)
7
+ return response;
8
+ return {
9
+ ...response,
10
+ headers: {
11
+ ...response.headers,
12
+ 'Access-Control-Allow-Origin': {
13
+ $ref: '#/components/headers/Access-Control-Allow-Origin',
14
+ },
15
+ },
16
+ };
17
+ };
18
+ }
19
+ /**
20
+ * Create a hook that adds rate limiting headers to responses
21
+ */
22
+ export function createRateLimitHeadersHook(enabled) {
23
+ return (response, context) => {
24
+ if (!enabled)
25
+ return response;
26
+ const { statusCode } = context;
27
+ const headers = {
28
+ 'RateLimit-Limit': {
29
+ $ref: '#/components/headers/RateLimit-Limit',
30
+ },
31
+ 'RateLimit-Remaining': {
32
+ $ref: '#/components/headers/RateLimit-Remaining',
33
+ },
34
+ 'RateLimit-Reset': {
35
+ $ref: '#/components/headers/RateLimit-Reset',
36
+ },
37
+ };
38
+ // Add Retry-After header for 429 responses
39
+ if (statusCode === '429') {
40
+ headers['Retry-After'] = {
41
+ $ref: '#/components/headers/Retry-After',
42
+ };
43
+ }
44
+ return {
45
+ ...response,
46
+ headers: {
47
+ ...response.headers,
48
+ ...headers,
49
+ },
50
+ };
51
+ };
52
+ }
53
+ /**
54
+ * Create a hook that adds pagination headers to 200 responses
55
+ */
56
+ export function createPaginationHeadersHook() {
57
+ return (response, context) => {
58
+ const { statusCode, routeConfig } = context;
59
+ // Only add pagination headers to 200 responses with paginate flag
60
+ if (statusCode !== '200' || !routeConfig.paginate) {
61
+ return response;
62
+ }
63
+ return {
64
+ ...response,
65
+ headers: {
66
+ ...response.headers,
67
+ 'X-Total-Count': {
68
+ $ref: '#/components/headers/X-Total-Count',
69
+ },
70
+ 'X-Total-Pages': {
71
+ $ref: '#/components/headers/X-Total-Pages',
72
+ },
73
+ 'X-Current-Page': {
74
+ $ref: '#/components/headers/X-Current-Page',
75
+ },
76
+ 'X-Page-Size': {
77
+ $ref: '#/components/headers/X-Page-Size',
78
+ },
79
+ },
80
+ };
81
+ };
82
+ }
83
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/openapi/hooks.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE;QAC5B,IAAI,CAAC,OAAO;YAAE,OAAO,QAAQ,CAAC;QAE9B,OAAO;YACL,GAAG,QAAQ;YACX,OAAO,EAAE;gBACP,GAAG,QAAQ,CAAC,OAAO;gBACnB,6BAA6B,EAAE;oBAC7B,IAAI,EAAE,kDAAkD;iBACzD;aACF;SACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAAgB;IACzD,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;QAC3B,IAAI,CAAC,OAAO;YAAE,OAAO,QAAQ,CAAC;QAE9B,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;QAC/B,MAAM,OAAO,GAAqC;YAChD,iBAAiB,EAAE;gBACjB,IAAI,EAAE,sCAAsC;aAC7C;YACD,qBAAqB,EAAE;gBACrB,IAAI,EAAE,0CAA0C;aACjD;YACD,iBAAiB,EAAE;gBACjB,IAAI,EAAE,sCAAsC;aAC7C;SACF,CAAC;QAEF,2CAA2C;QAC3C,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,aAAa,CAAC,GAAG;gBACvB,IAAI,EAAE,kCAAkC;aACzC,CAAC;QACJ,CAAC;QAED,OAAO;YACL,GAAG,QAAQ;YACX,OAAO,EAAE;gBACP,GAAG,QAAQ,CAAC,OAAO;gBACnB,GAAG,OAAO;aACX;SACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,2BAA2B;IACzC,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;QAC3B,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;QAE5C,kEAAkE;QAClE,IAAI,UAAU,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;YAClD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,OAAO;YACL,GAAG,QAAQ;YACX,OAAO,EAAE;gBACP,GAAG,QAAQ,CAAC,OAAO;gBACnB,eAAe,EAAE;oBACf,IAAI,EAAE,oCAAoC;iBAC3C;gBACD,eAAe,EAAE;oBACf,IAAI,EAAE,oCAAoC;iBAC3C;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,qCAAqC;iBAC5C;gBACD,aAAa,EAAE;oBACb,IAAI,EAAE,kCAAkC;iBACzC;aACF;SACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { OpenAPIV3_1 } from 'openapi-types';
2
+ /**
3
+ * Transforms an OpenAPI document to ensure OpenAPI 3.1.0 compatibility
4
+ *
5
+ * This function:
6
+ * - Converts OpenAPI 3.0-style nullable syntax to OpenAPI 3.1.0 format
7
+ * - Recursively processes all schemas in components, paths, and responses
8
+ *
9
+ * @param doc - OpenAPI document to transform
10
+ * @returns Transformed OpenAPI document
11
+ */
12
+ export declare function transformOpenAPIDocument(doc: OpenAPIV3_1.Document): OpenAPIV3_1.Document;
13
+ //# sourceMappingURL=openapi-transformer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi-transformer.d.ts","sourceRoot":"","sources":["../../src/openapi/openapi-transformer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAmFjD;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,WAAW,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAExF"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Checks if an array of anyOf/oneOf items contains a schema with nullable: true
3
+ */
4
+ function hasNullableSchema(items) {
5
+ return items.some((item) => typeof item === 'object' && item !== null && 'nullable' in item && item.nullable === true);
6
+ }
7
+ /**
8
+ * Removes the nullable property from a schema object
9
+ */
10
+ function removeNullableProperty(item) {
11
+ if (typeof item !== 'object' || item === null) {
12
+ return item;
13
+ }
14
+ const { ...rest } = item;
15
+ delete rest.nullable;
16
+ return rest;
17
+ }
18
+ /**
19
+ * Transforms an anyOf array that contains nullable schemas to include explicit null type
20
+ */
21
+ function transformAnyOfWithNullable(items) {
22
+ const transformed = items.map(removeNullableProperty).filter((item) => {
23
+ if (typeof item !== 'object' || item === null) {
24
+ return true;
25
+ }
26
+ return Object.keys(item).length > 0;
27
+ });
28
+ transformed.push({ type: 'null' });
29
+ return transformed;
30
+ }
31
+ /**
32
+ * Transforms a single key-value pair in a schema object
33
+ */
34
+ function transformSchemaProperty(key, value) {
35
+ if (key === 'anyOf' && Array.isArray(value)) {
36
+ if (hasNullableSchema(value)) {
37
+ return transformAnyOfWithNullable(value).map(transformNullable);
38
+ }
39
+ return transformNullable(value);
40
+ }
41
+ if (key === 'allOf' || key === 'oneOf' || key === 'properties' || key === 'items') {
42
+ return transformNullable(value);
43
+ }
44
+ return transformNullable(value);
45
+ }
46
+ /**
47
+ * Transforms OpenAPI 3.0-style nullable syntax to OpenAPI 3.1.0-compatible format
48
+ *
49
+ * Converts patterns like:
50
+ * {"anyOf": [{"type": "string", "nullable": true}]}
51
+ * To:
52
+ * {"anyOf": [{"type": "string"}, {"type": "null"}]}
53
+ *
54
+ * @param schema - OpenAPI schema to transform
55
+ * @returns Transformed schema with OpenAPI 3.1.0-compatible nullable syntax
56
+ */
57
+ function transformNullable(schema) {
58
+ if (schema === null || schema === undefined || typeof schema !== 'object') {
59
+ return schema;
60
+ }
61
+ if (Array.isArray(schema)) {
62
+ return schema.map(transformNullable);
63
+ }
64
+ const obj = schema;
65
+ const result = {};
66
+ for (const [key, value] of Object.entries(obj)) {
67
+ if (key === 'nullable' && value === true) {
68
+ continue;
69
+ }
70
+ result[key] = transformSchemaProperty(key, value);
71
+ }
72
+ return result;
73
+ }
74
+ /**
75
+ * Transforms an OpenAPI document to ensure OpenAPI 3.1.0 compatibility
76
+ *
77
+ * This function:
78
+ * - Converts OpenAPI 3.0-style nullable syntax to OpenAPI 3.1.0 format
79
+ * - Recursively processes all schemas in components, paths, and responses
80
+ *
81
+ * @param doc - OpenAPI document to transform
82
+ * @returns Transformed OpenAPI document
83
+ */
84
+ export function transformOpenAPIDocument(doc) {
85
+ return transformNullable(doc);
86
+ }
87
+ //# sourceMappingURL=openapi-transformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi-transformer.js","sourceRoot":"","sources":["../../src/openapi/openapi-transformer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import type { Context } from 'hono';
2
+ /**
3
+ * Pagination input parameters
4
+ */
5
+ export interface PaginationInput {
6
+ page: number;
7
+ limit: number;
8
+ }
9
+ /**
10
+ * Paginated output structure
11
+ */
12
+ export interface PaginatedOutput<T> {
13
+ data: T[];
14
+ total: number;
15
+ page: number;
16
+ limit: number;
17
+ }
18
+ /**
19
+ * Execute a paginated query and set response headers.
20
+ *
21
+ * This helper extracts pagination parameters from the query string,
22
+ * executes the provided function, and sets the appropriate response headers.
23
+ *
24
+ * @template T - The type of items in the result
25
+ * @param c - Hono context
26
+ * @param fn - Function that executes the paginated query
27
+ * @returns Array of items (headers are set as side effect)
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * router.get('/users', route({
32
+ * paginate: true,
33
+ * handler: async ({ context }) => {
34
+ * return await paginate(context, (p) => userService.getUsers(p));
35
+ * }
36
+ * }));
37
+ * ```
38
+ */
39
+ export declare function paginate<T>(c: Context, fn: (p: PaginationInput) => Promise<PaginatedOutput<T>>): Promise<T[]>;
40
+ /**
41
+ * Extract pagination parameters from Hono context.
42
+ *
43
+ * @param c - Hono context
44
+ * @param defaultLimit - Default limit if not provided (default: 100)
45
+ * @returns Pagination input with page and limit
46
+ */
47
+ export declare function paginationInput(c: Context, defaultLimit?: number): PaginationInput;
48
+ //# sourceMappingURL=pagination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../src/utils/pagination.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,QAAQ,CAAC,CAAC,EAC9B,CAAC,EAAE,OAAO,EACV,EAAE,EAAE,CAAC,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GACtD,OAAO,CAAC,CAAC,EAAE,CAAC,CASd;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,SAAM,GAAG,eAAe,CAI/E"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Execute a paginated query and set response headers.
3
+ *
4
+ * This helper extracts pagination parameters from the query string,
5
+ * executes the provided function, and sets the appropriate response headers.
6
+ *
7
+ * @template T - The type of items in the result
8
+ * @param c - Hono context
9
+ * @param fn - Function that executes the paginated query
10
+ * @returns Array of items (headers are set as side effect)
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * router.get('/users', route({
15
+ * paginate: true,
16
+ * handler: async ({ context }) => {
17
+ * return await paginate(context, (p) => userService.getUsers(p));
18
+ * }
19
+ * }));
20
+ * ```
21
+ */
22
+ export async function paginate(c, fn) {
23
+ const pagination = paginationInput(c);
24
+ const result = await fn(pagination);
25
+ c.header('X-Total-Count', result.total.toString());
26
+ c.header('X-Page', result.page.toString());
27
+ c.header('X-Limit', result.limit.toString());
28
+ return result.data;
29
+ }
30
+ /**
31
+ * Extract pagination parameters from Hono context.
32
+ *
33
+ * @param c - Hono context
34
+ * @param defaultLimit - Default limit if not provided (default: 100)
35
+ * @returns Pagination input with page and limit
36
+ */
37
+ export function paginationInput(c, defaultLimit = 100) {
38
+ const page = Number.parseInt(c.req.query('page') ?? '1', 10);
39
+ const limit = Number.parseInt(c.req.query('limit') ?? defaultLimit.toString(), 10);
40
+ return { page, limit };
41
+ }
42
+ //# sourceMappingURL=pagination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/utils/pagination.ts"],"names":[],"mappings":"AAoBA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,CAAU,EACV,EAAuD;IAEvD,MAAM,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC;IAEpC,CAAC,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IACnD,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE7C,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,CAAU,EAAE,YAAY,GAAG,GAAG;IAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,YAAY,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IACnF,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACzB,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Type helper to recursively convert Date fields to string in an object type
3
+ */
4
+ export type SerializedDates<T> = T extends Date ? string : T extends Array<infer U> ? Array<SerializedDates<U>> : T extends object ? {
5
+ [K in keyof T]: SerializedDates<T[K]>;
6
+ } : T;
7
+ /**
8
+ * Recursively converts all Date objects to ISO 8601 strings in an entity or array of entities.
9
+ *
10
+ * This utility handles the mismatch between Prisma's Date types and API response DTOs
11
+ * that expect string timestamps. It preserves null values and handles nested objects and arrays.
12
+ *
13
+ * @template T - The type of data to transform
14
+ * @param data - The data to transform (object, array, or primitive)
15
+ * @returns The same structure with all Date objects converted to ISO strings
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const ranger = await prisma.ranger.findUnique({
20
+ * where: { id },
21
+ * include: { category: true }
22
+ * });
23
+ * return serializeDates(ranger); // All Date fields → ISO strings
24
+ * ```
25
+ */
26
+ export declare function serializeDates<T>(data: T): SerializedDates<T>;
27
+ //# sourceMappingURL=serialize-dates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialize-dates.d.ts","sourceRoot":"","sources":["../../src/utils/serialize-dates.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,GAC3C,MAAM,GACN,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACtB,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GACzB,CAAC,SAAS,MAAM,GACd;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACzC,CAAC,CAAC;AAEV;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAsB7D"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Recursively converts all Date objects to ISO 8601 strings in an entity or array of entities.
3
+ *
4
+ * This utility handles the mismatch between Prisma's Date types and API response DTOs
5
+ * that expect string timestamps. It preserves null values and handles nested objects and arrays.
6
+ *
7
+ * @template T - The type of data to transform
8
+ * @param data - The data to transform (object, array, or primitive)
9
+ * @returns The same structure with all Date objects converted to ISO strings
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * const ranger = await prisma.ranger.findUnique({
14
+ * where: { id },
15
+ * include: { category: true }
16
+ * });
17
+ * return serializeDates(ranger); // All Date fields → ISO strings
18
+ * ```
19
+ */
20
+ export function serializeDates(data) {
21
+ if (data === null || data === undefined) {
22
+ return data;
23
+ }
24
+ if (data instanceof Date) {
25
+ return data.toISOString();
26
+ }
27
+ if (Array.isArray(data)) {
28
+ return data.map((item) => serializeDates(item));
29
+ }
30
+ if (typeof data === 'object') {
31
+ const result = {};
32
+ for (const [key, value] of Object.entries(data)) {
33
+ result[key] = serializeDates(value);
34
+ }
35
+ return result;
36
+ }
37
+ return data;
38
+ }
39
+ //# sourceMappingURL=serialize-dates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialize-dates.js","sourceRoot":"","sources":["../../src/utils/serialize-dates.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,cAAc,CAAI,IAAO;IACvC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO,IAA0B,CAAC;IACpC,CAAC;IAED,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,WAAW,EAAwB,CAAC;IAClD,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAuB,CAAC;IACxE,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAChD,MAAM,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,MAA4B,CAAC;IACtC,CAAC;IAED,OAAO,IAA0B,CAAC;AACpC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "glasswork",
3
- "version": "0.13.1",
3
+ "version": "0.13.3",
4
4
  "description": "A transparent, Lambda-optimized web framework for building OpenAPI-compliant REST APIs.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -130,46 +130,47 @@
130
130
  }
131
131
  },
132
132
  "devDependencies": {
133
- "@aws-sdk/client-cloudwatch": "^3.948.0",
134
- "@aws-sdk/client-dynamodb": "^3.948.0",
135
- "@aws-sdk/client-s3": "^3.948.0",
136
- "@aws-sdk/client-scheduler": "^3.948.0",
137
- "@aws-sdk/client-sesv2": "^3.948.0",
138
- "@aws-sdk/client-sqs": "^3.948.0",
139
- "@aws-sdk/client-ssm": "^3.948.0",
140
- "@aws-sdk/lib-dynamodb": "^3.948.0",
141
- "@aws-sdk/s3-request-presigner": "^3.948.0",
142
- "@biomejs/biome": "^2.2.5",
143
- "@casl/ability": "^6.7.3",
144
- "@casl/prisma": "^1.6.0",
145
- "@hono/swagger-ui": "^0.5.2",
146
- "@prisma/client": "^7.1.0",
147
- "@types/aws-lambda": "^8.10.159",
133
+ "@aws-sdk/client-cloudwatch": "^3.1001.0",
134
+ "@aws-sdk/client-dynamodb": "^3.1001.0",
135
+ "@aws-sdk/client-s3": "^3.1001.0",
136
+ "@aws-sdk/client-scheduler": "^3.1001.0",
137
+ "@aws-sdk/client-sesv2": "^3.1001.0",
138
+ "@aws-sdk/client-sqs": "^3.1001.0",
139
+ "@aws-sdk/client-ssm": "^3.1001.0",
140
+ "@aws-sdk/lib-dynamodb": "^3.1001.0",
141
+ "@aws-sdk/s3-request-presigner": "^3.1001.0",
142
+ "@biomejs/biome": "^2.4.5",
143
+ "@casl/ability": "^6.8.0",
144
+ "@casl/prisma": "^1.6.1",
145
+ "@hono/swagger-ui": "^0.5.3",
146
+ "@prisma/client": "^7.4.2",
147
+ "@types/aws-lambda": "^8.10.161",
148
148
  "@types/html-to-text": "^9.0.4",
149
149
  "@types/node": "^22.19.1",
150
- "@vitest/coverage-v8": "^4.0.15",
151
- "awilix": "^12.0.5",
152
- "dotenv": "^17.2.3",
153
- "hono": "^4.11.3",
154
- "hono-openapi": "^1.1.2",
150
+ "@vitest/coverage-v8": "^4.0.18",
151
+ "awilix": "^13.0.3",
152
+ "dotenv": "^17.3.1",
153
+ "hono": "^4.12.5",
154
+ "hono-openapi": "^1.3.0",
155
155
  "html-to-text": "^9.0.5",
156
- "mermaid": "^11.12.2",
156
+ "mermaid": "^11.12.3",
157
157
  "mjml": "^4.18.0",
158
158
  "typescript": "^5.9.3",
159
159
  "valibot": "^1.2.0",
160
160
  "vitepress": "^1.6.4",
161
+ "vitepress-plugin-llms": "^1.11.0",
161
162
  "vitepress-plugin-mermaid": "^2.0.17",
162
- "vitest": "^4.0.15",
163
- "vue": "^3.5.25"
163
+ "vitest": "^4.0.18",
164
+ "vue": "^3.5.29"
164
165
  },
165
166
  "dependencies": {
166
- "@hono/standard-validator": "^0.2.0",
167
- "@hono/valibot-validator": "^0.6.0",
167
+ "@hono/standard-validator": "^0.2.2",
168
+ "@hono/valibot-validator": "^0.6.1",
168
169
  "@standard-community/standard-json": "^0.3.5",
169
170
  "@standard-community/standard-openapi": "^0.2.9",
170
- "@valibot/to-json-schema": "^1.4.0",
171
+ "@valibot/to-json-schema": "^1.5.0",
171
172
  "deepmerge": "^4.3.1",
172
- "nanoid": "^5.0.0",
173
+ "nanoid": "^5.1.6",
173
174
  "openapi-types": "^12.1.3"
174
175
  }
175
- }
176
+ }