lumen-framework 3.0.0

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 (302) hide show
  1. package/LICENSE +26 -0
  2. package/README.md +164 -0
  3. package/bin/lumen +275 -0
  4. package/dist/cli.cjs +3002 -0
  5. package/dist/cli.cjs.map +7 -0
  6. package/dist/index.js +6515 -0
  7. package/dist/index.js.map +7 -0
  8. package/dist/index.mjs +6480 -0
  9. package/dist/index.mjs.map +7 -0
  10. package/dist/types/constants.d.ts +7 -0
  11. package/dist/types/errors/controller-missing-error.d.ts +7 -0
  12. package/dist/types/errors/serializer-missing-error.d.ts +7 -0
  13. package/dist/types/index.d.ts +6 -0
  14. package/dist/types/interfaces.d.ts +12 -0
  15. package/dist/types/packages/application/index.d.ts +97 -0
  16. package/dist/types/packages/application/initialize.d.ts +6 -0
  17. package/dist/types/packages/application/interfaces.d.ts +16 -0
  18. package/dist/types/packages/application/utils/create-controller.d.ts +12 -0
  19. package/dist/types/packages/application/utils/create-serializer.d.ts +4 -0
  20. package/dist/types/packages/application/utils/normalize-port.d.ts +4 -0
  21. package/dist/types/packages/cli/commands/build.d.ts +1 -0
  22. package/dist/types/packages/cli/commands/create.d.ts +4 -0
  23. package/dist/types/packages/cli/commands/dbcreate.d.ts +4 -0
  24. package/dist/types/packages/cli/commands/dbdrop.d.ts +4 -0
  25. package/dist/types/packages/cli/commands/dbmigrate.d.ts +4 -0
  26. package/dist/types/packages/cli/commands/dbrollback.d.ts +4 -0
  27. package/dist/types/packages/cli/commands/dbseed.d.ts +4 -0
  28. package/dist/types/packages/cli/commands/destroy.d.ts +11 -0
  29. package/dist/types/packages/cli/commands/generate.d.ts +10 -0
  30. package/dist/types/packages/cli/commands/index.d.ts +12 -0
  31. package/dist/types/packages/cli/commands/repl.d.ts +1 -0
  32. package/dist/types/packages/cli/commands/serve.d.ts +8 -0
  33. package/dist/types/packages/cli/commands/test.d.ts +4 -0
  34. package/dist/types/packages/cli/constants.d.ts +2 -0
  35. package/dist/types/packages/cli/errors/database-config-missing.d.ts +4 -0
  36. package/dist/types/packages/cli/generator/constants.d.ts +5 -0
  37. package/dist/types/packages/cli/generator/index.d.ts +11 -0
  38. package/dist/types/packages/cli/generator/interfaces.d.ts +9 -0
  39. package/dist/types/packages/cli/generator/utils/create-generator.d.ts +9 -0
  40. package/dist/types/packages/cli/generator/utils/generate-type.d.ts +33 -0
  41. package/dist/types/packages/cli/generator/utils/generator-for.d.ts +2 -0
  42. package/dist/types/packages/cli/generator/utils/log.d.ts +4 -0
  43. package/dist/types/packages/cli/generator/utils/migration-conflict.d.ts +6 -0
  44. package/dist/types/packages/cli/templates/application.d.ts +5 -0
  45. package/dist/types/packages/cli/templates/config.d.ts +5 -0
  46. package/dist/types/packages/cli/templates/controller.d.ts +5 -0
  47. package/dist/types/packages/cli/templates/database.d.ts +5 -0
  48. package/dist/types/packages/cli/templates/empty-migration.d.ts +5 -0
  49. package/dist/types/packages/cli/templates/eslint-config.d.ts +5 -0
  50. package/dist/types/packages/cli/templates/gitignore.d.ts +5 -0
  51. package/dist/types/packages/cli/templates/license.d.ts +5 -0
  52. package/dist/types/packages/cli/templates/middleware.d.ts +5 -0
  53. package/dist/types/packages/cli/templates/model-migration.d.ts +5 -0
  54. package/dist/types/packages/cli/templates/model.d.ts +5 -0
  55. package/dist/types/packages/cli/templates/package-json.d.ts +5 -0
  56. package/dist/types/packages/cli/templates/readme.d.ts +5 -0
  57. package/dist/types/packages/cli/templates/routes.d.ts +5 -0
  58. package/dist/types/packages/cli/templates/seed.d.ts +5 -0
  59. package/dist/types/packages/cli/templates/serializer.d.ts +5 -0
  60. package/dist/types/packages/cli/templates/util.d.ts +5 -0
  61. package/dist/types/packages/cli/utils/create-prompt.d.ts +4 -0
  62. package/dist/types/packages/cli/utils/driver-for.d.ts +1 -0
  63. package/dist/types/packages/cli/utils/indent.d.ts +1 -0
  64. package/dist/types/packages/compiler/index.d.ts +11 -0
  65. package/dist/types/packages/compiler/interfaces.d.ts +1 -0
  66. package/dist/types/packages/compiler/utils/create-boot-script.d.ts +6 -0
  67. package/dist/types/packages/compiler/utils/create-manifest.d.ts +6 -0
  68. package/dist/types/packages/compiler/utils/format-name.d.ts +5 -0
  69. package/dist/types/packages/config/index.d.ts +3 -0
  70. package/dist/types/packages/config/interfaces.d.ts +6 -0
  71. package/dist/types/packages/controller/constants.d.ts +2 -0
  72. package/dist/types/packages/controller/index.d.ts +591 -0
  73. package/dist/types/packages/controller/interfaces.d.ts +13 -0
  74. package/dist/types/packages/controller/utils/find-many.d.ts +6 -0
  75. package/dist/types/packages/controller/utils/find-one.d.ts +6 -0
  76. package/dist/types/packages/controller/utils/params-to-query.d.ts +16 -0
  77. package/dist/types/packages/controller/utils/resolve-relationships.d.ts +5 -0
  78. package/dist/types/packages/database/attribute/index.d.ts +6 -0
  79. package/dist/types/packages/database/attribute/interfaces.d.ts +6 -0
  80. package/dist/types/packages/database/attribute/utils/create-attribute.d.ts +5 -0
  81. package/dist/types/packages/database/attribute/utils/create-getter.d.ts +3 -0
  82. package/dist/types/packages/database/attribute/utils/create-normalizer.d.ts +1 -0
  83. package/dist/types/packages/database/attribute/utils/create-setter.d.ts +8 -0
  84. package/dist/types/packages/database/change-set/index.d.ts +10 -0
  85. package/dist/types/packages/database/constants.d.ts +3 -0
  86. package/dist/types/packages/database/errors/config-missing-error.d.ts +4 -0
  87. package/dist/types/packages/database/errors/index.d.ts +5 -0
  88. package/dist/types/packages/database/errors/invalid-driver-error.d.ts +7 -0
  89. package/dist/types/packages/database/errors/migrations-pending-error.d.ts +7 -0
  90. package/dist/types/packages/database/errors/model-missing-error.d.ts +7 -0
  91. package/dist/types/packages/database/errors/unique-constraint-error.d.ts +4 -0
  92. package/dist/types/packages/database/index.d.ts +26 -0
  93. package/dist/types/packages/database/initialize.d.ts +6 -0
  94. package/dist/types/packages/database/interfaces.d.ts +85 -0
  95. package/dist/types/packages/database/migration/index.d.ts +12 -0
  96. package/dist/types/packages/database/migration/interfaces.d.ts +4 -0
  97. package/dist/types/packages/database/migration/utils/generate-timestamp.d.ts +2 -0
  98. package/dist/types/packages/database/model/index.d.ts +1046 -0
  99. package/dist/types/packages/database/model/initialize-class.d.ts +10 -0
  100. package/dist/types/packages/database/model/interfaces.d.ts +14 -0
  101. package/dist/types/packages/database/model/utils/get-columns.d.ts +5 -0
  102. package/dist/types/packages/database/model/utils/persistence.d.ts +18 -0
  103. package/dist/types/packages/database/model/utils/process-write-error.d.ts +4 -0
  104. package/dist/types/packages/database/model/utils/run-hooks.d.ts +6 -0
  105. package/dist/types/packages/database/model/utils/validate.d.ts +5 -0
  106. package/dist/types/packages/database/query/errors/index.d.ts +1 -0
  107. package/dist/types/packages/database/query/errors/record-not-found-error.d.ts +6 -0
  108. package/dist/types/packages/database/query/index.d.ts +38 -0
  109. package/dist/types/packages/database/query/runner/constants.d.ts +2 -0
  110. package/dist/types/packages/database/query/runner/index.d.ts +9 -0
  111. package/dist/types/packages/database/query/runner/utils/build-results.d.ts +10 -0
  112. package/dist/types/packages/database/query/runner/utils/get-find-param.d.ts +2 -0
  113. package/dist/types/packages/database/query/utils/format-select.d.ts +5 -0
  114. package/dist/types/packages/database/query/utils/scopes-for.d.ts +2 -0
  115. package/dist/types/packages/database/relationship/index.d.ts +11 -0
  116. package/dist/types/packages/database/relationship/interfaces.d.ts +12 -0
  117. package/dist/types/packages/database/relationship/utils/getters.d.ts +14 -0
  118. package/dist/types/packages/database/relationship/utils/inverse-setters.d.ts +15 -0
  119. package/dist/types/packages/database/relationship/utils/setters.d.ts +14 -0
  120. package/dist/types/packages/database/relationship/utils/unassociate.d.ts +5 -0
  121. package/dist/types/packages/database/relationship/utils/update-relationship.d.ts +5 -0
  122. package/dist/types/packages/database/relationship/utils/validate-type.d.ts +2 -0
  123. package/dist/types/packages/database/transaction/index.d.ts +16 -0
  124. package/dist/types/packages/database/transaction/interfaces.d.ts +5 -0
  125. package/dist/types/packages/database/utils/connect.d.ts +6 -0
  126. package/dist/types/packages/database/utils/create-migrations.d.ts +5 -0
  127. package/dist/types/packages/database/utils/normalize-model-name.d.ts +5 -0
  128. package/dist/types/packages/database/utils/pending-migrations.d.ts +4 -0
  129. package/dist/types/packages/database/utils/type-for-column.d.ts +5 -0
  130. package/dist/types/packages/database/validation/errors/index.d.ts +1 -0
  131. package/dist/types/packages/database/validation/errors/validation-error.d.ts +7 -0
  132. package/dist/types/packages/database/validation/index.d.ts +13 -0
  133. package/dist/types/packages/database/validation/interfaces.d.ts +5 -0
  134. package/dist/types/packages/freezeable/constants.d.ts +1 -0
  135. package/dist/types/packages/freezeable/index.d.ts +3 -0
  136. package/dist/types/packages/freezeable/map/index.d.ts +11 -0
  137. package/dist/types/packages/freezeable/set/index.d.ts +11 -0
  138. package/dist/types/packages/freezeable/utils/freeze.d.ts +20 -0
  139. package/dist/types/packages/freezeable/utils/is-frozen.d.ts +4 -0
  140. package/dist/types/packages/fs/index.d.ts +52 -0
  141. package/dist/types/packages/fs/interfaces.d.ts +19 -0
  142. package/dist/types/packages/fs/utils/create-path-remover.d.ts +5 -0
  143. package/dist/types/packages/fs/utils/create-resolver.d.ts +4 -0
  144. package/dist/types/packages/fs/utils/exists.d.ts +4 -0
  145. package/dist/types/packages/fs/utils/is-js-file.d.ts +4 -0
  146. package/dist/types/packages/fs/utils/parse-path.d.ts +5 -0
  147. package/dist/types/packages/fs/utils/rmrf.d.ts +5 -0
  148. package/dist/types/packages/fs/watcher/index.d.ts +13 -0
  149. package/dist/types/packages/fs/watcher/initialize.d.ts +5 -0
  150. package/dist/types/packages/fs/watcher/interfaces.d.ts +3 -0
  151. package/dist/types/packages/jsonapi/constants.d.ts +2 -0
  152. package/dist/types/packages/jsonapi/errors/index.d.ts +3 -0
  153. package/dist/types/packages/jsonapi/errors/invalid-content-type-error.d.ts +8 -0
  154. package/dist/types/packages/jsonapi/errors/not-acceptable-error.d.ts +8 -0
  155. package/dist/types/packages/jsonapi/errors/unsupported-media-type-error.d.ts +8 -0
  156. package/dist/types/packages/jsonapi/index.d.ts +5 -0
  157. package/dist/types/packages/jsonapi/interfaces.d.ts +66 -0
  158. package/dist/types/packages/jsonapi/utils/has-media-type.d.ts +4 -0
  159. package/dist/types/packages/jsonapi/utils/is-jsonapi.d.ts +4 -0
  160. package/dist/types/packages/loader/builder/index.d.ts +6 -0
  161. package/dist/types/packages/loader/builder/interfaces.d.ts +10 -0
  162. package/dist/types/packages/loader/builder/utils/create-children-builder.d.ts +2 -0
  163. package/dist/types/packages/loader/builder/utils/create-parent-builder.d.ts +2 -0
  164. package/dist/types/packages/loader/builder/utils/sort-by-namespace.d.ts +5 -0
  165. package/dist/types/packages/loader/index.d.ts +8 -0
  166. package/dist/types/packages/loader/interfaces.d.ts +4 -0
  167. package/dist/types/packages/loader/resolver/index.d.ts +7 -0
  168. package/dist/types/packages/loader/resolver/utils/closest-ancestor.d.ts +2 -0
  169. package/dist/types/packages/loader/resolver/utils/closest-child.d.ts +2 -0
  170. package/dist/types/packages/loader/utils/bundle-for.d.ts +5 -0
  171. package/dist/types/packages/loader/utils/format-key.d.ts +4 -0
  172. package/dist/types/packages/logger/constants.d.ts +8 -0
  173. package/dist/types/packages/logger/index.d.ts +182 -0
  174. package/dist/types/packages/logger/interfaces.d.ts +17 -0
  175. package/dist/types/packages/logger/request-logger/index.d.ts +6 -0
  176. package/dist/types/packages/logger/request-logger/interfaces.d.ts +25 -0
  177. package/dist/types/packages/logger/request-logger/templates.d.ts +9 -0
  178. package/dist/types/packages/logger/request-logger/utils/filter-params.d.ts +4 -0
  179. package/dist/types/packages/logger/request-logger/utils/log-json.d.ts +10 -0
  180. package/dist/types/packages/logger/request-logger/utils/log-text.d.ts +10 -0
  181. package/dist/types/packages/logger/utils/line.d.ts +4 -0
  182. package/dist/types/packages/logger/utils/sql.d.ts +4 -0
  183. package/dist/types/packages/logger/writer/constants.d.ts +3 -0
  184. package/dist/types/packages/logger/writer/index.d.ts +6 -0
  185. package/dist/types/packages/logger/writer/interfaces.d.ts +2 -0
  186. package/dist/types/packages/logger/writer/utils/format-message.d.ts +9 -0
  187. package/dist/types/packages/lumenify/index.d.ts +11 -0
  188. package/dist/types/packages/lumenify/utils/create-response-proxy.d.ts +8 -0
  189. package/dist/types/packages/pm/cluster/index.d.ts +21 -0
  190. package/dist/types/packages/pm/cluster/interfaces.d.ts +7 -0
  191. package/dist/types/packages/pm/index.d.ts +6 -0
  192. package/dist/types/packages/router/definitions/context/index.d.ts +11 -0
  193. package/dist/types/packages/router/definitions/context/utils/create-definition-group.d.ts +7 -0
  194. package/dist/types/packages/router/definitions/context/utils/create-definition.d.ts +10 -0
  195. package/dist/types/packages/router/definitions/context/utils/normalize-resource-args.d.ts +12 -0
  196. package/dist/types/packages/router/definitions/index.d.ts +10 -0
  197. package/dist/types/packages/router/definitions/interfaces.d.ts +7 -0
  198. package/dist/types/packages/router/index.d.ts +18 -0
  199. package/dist/types/packages/router/interfaces.d.ts +18 -0
  200. package/dist/types/packages/router/namespace/index.d.ts +20 -0
  201. package/dist/types/packages/router/namespace/interfaces.d.ts +9 -0
  202. package/dist/types/packages/router/namespace/utils/normalize-name.d.ts +4 -0
  203. package/dist/types/packages/router/namespace/utils/normalize-path.d.ts +4 -0
  204. package/dist/types/packages/router/resource/index.d.ts +13 -0
  205. package/dist/types/packages/router/resource/interfaces.d.ts +5 -0
  206. package/dist/types/packages/router/resource/utils/normalize-only.d.ts +5 -0
  207. package/dist/types/packages/router/route/action/constants.d.ts +1 -0
  208. package/dist/types/packages/router/route/action/enhancers/resource.d.ts +5 -0
  209. package/dist/types/packages/router/route/action/enhancers/track-perf.d.ts +5 -0
  210. package/dist/types/packages/router/route/action/index.d.ts +9 -0
  211. package/dist/types/packages/router/route/action/interfaces.d.ts +2 -0
  212. package/dist/types/packages/router/route/action/utils/create-page-links.d.ts +12 -0
  213. package/dist/types/packages/router/route/action/utils/get-action-name.d.ts +5 -0
  214. package/dist/types/packages/router/route/action/utils/get-controller-name.d.ts +5 -0
  215. package/dist/types/packages/router/route/constants.d.ts +1 -0
  216. package/dist/types/packages/router/route/index.d.ts +28 -0
  217. package/dist/types/packages/router/route/interfaces.d.ts +10 -0
  218. package/dist/types/packages/router/route/params/errors/index.d.ts +5 -0
  219. package/dist/types/packages/router/route/params/errors/invalid-parameter-error.d.ts +8 -0
  220. package/dist/types/packages/router/route/params/errors/parameter-not-nullable-error.d.ts +9 -0
  221. package/dist/types/packages/router/route/params/errors/parameter-required-error.d.ts +8 -0
  222. package/dist/types/packages/router/route/params/errors/parameter-type-error.d.ts +9 -0
  223. package/dist/types/packages/router/route/params/errors/parameter-value-error.d.ts +9 -0
  224. package/dist/types/packages/router/route/params/errors/resource-mismatch-error.d.ts +8 -0
  225. package/dist/types/packages/router/route/params/index.d.ts +18 -0
  226. package/dist/types/packages/router/route/params/interfaces.d.ts +25 -0
  227. package/dist/types/packages/router/route/params/parameter/index.d.ts +14 -0
  228. package/dist/types/packages/router/route/params/parameter/interfaces.d.ts +4 -0
  229. package/dist/types/packages/router/route/params/parameter/utils/validate-value.d.ts +5 -0
  230. package/dist/types/packages/router/route/params/parameter-group/index.d.ts +14 -0
  231. package/dist/types/packages/router/route/params/parameter-group/utils/has-required-params.d.ts +5 -0
  232. package/dist/types/packages/router/route/params/utils/get-data-params.d.ts +6 -0
  233. package/dist/types/packages/router/route/params/utils/get-default-collection-params.d.ts +6 -0
  234. package/dist/types/packages/router/route/params/utils/get-default-member-params.d.ts +5 -0
  235. package/dist/types/packages/router/route/params/utils/get-query-params.d.ts +14 -0
  236. package/dist/types/packages/router/route/params/utils/get-url-params.d.ts +5 -0
  237. package/dist/types/packages/router/route/params/utils/validate-resource-id.d.ts +5 -0
  238. package/dist/types/packages/router/route/params/utils/validate-type.d.ts +5 -0
  239. package/dist/types/packages/router/route/utils/get-dynamic-segments.d.ts +4 -0
  240. package/dist/types/packages/router/route/utils/get-static-path.d.ts +4 -0
  241. package/dist/types/packages/router/utils/create-replacer.d.ts +5 -0
  242. package/dist/types/packages/serializer/index.d.ts +521 -0
  243. package/dist/types/packages/serializer/interfaces.d.ts +7 -0
  244. package/dist/types/packages/server/constants.d.ts +2 -0
  245. package/dist/types/packages/server/index.d.ts +27 -0
  246. package/dist/types/packages/server/interfaces.d.ts +18 -0
  247. package/dist/types/packages/server/request/constants.d.ts +2 -0
  248. package/dist/types/packages/server/request/index.d.ts +8 -0
  249. package/dist/types/packages/server/request/interfaces.d.ts +63 -0
  250. package/dist/types/packages/server/request/parser/constants.d.ts +6 -0
  251. package/dist/types/packages/server/request/parser/errors/index.d.ts +1 -0
  252. package/dist/types/packages/server/request/parser/errors/malformed-request-error.d.ts +8 -0
  253. package/dist/types/packages/server/request/parser/index.d.ts +5 -0
  254. package/dist/types/packages/server/request/parser/utils/format.d.ts +17 -0
  255. package/dist/types/packages/server/request/parser/utils/parse-nested-object.d.ts +4 -0
  256. package/dist/types/packages/server/request/parser/utils/parse-read.d.ts +5 -0
  257. package/dist/types/packages/server/request/parser/utils/parse-write.d.ts +5 -0
  258. package/dist/types/packages/server/request/utils/get-domain.d.ts +5 -0
  259. package/dist/types/packages/server/responder/index.d.ts +5 -0
  260. package/dist/types/packages/server/responder/utils/data-for.d.ts +5 -0
  261. package/dist/types/packages/server/responder/utils/has-content-type.d.ts +2 -0
  262. package/dist/types/packages/server/responder/utils/normalize.d.ts +7 -0
  263. package/dist/types/packages/server/response/index.d.ts +5 -0
  264. package/dist/types/packages/server/response/interfaces.d.ts +22 -0
  265. package/dist/types/packages/server/utils/create-server-error.d.ts +7 -0
  266. package/dist/types/packages/server/utils/set-cors-headers.d.ts +3 -0
  267. package/dist/types/packages/server/utils/validate-accept.d.ts +4 -0
  268. package/dist/types/packages/server/utils/validate-content-type.d.ts +4 -0
  269. package/dist/types/packages/template/index.d.ts +8 -0
  270. package/dist/types/packages/template/utils/insert-values.d.ts +4 -0
  271. package/dist/types/utils/chain.d.ts +5 -0
  272. package/dist/types/utils/compact.d.ts +11 -0
  273. package/dist/types/utils/compose.d.ts +19 -0
  274. package/dist/types/utils/create-query-string.d.ts +6 -0
  275. package/dist/types/utils/diff.d.ts +4 -0
  276. package/dist/types/utils/entries.d.ts +4 -0
  277. package/dist/types/utils/env.d.ts +3 -0
  278. package/dist/types/utils/exec.d.ts +5 -0
  279. package/dist/types/utils/github.d.ts +9 -0
  280. package/dist/types/utils/has-own-property.d.ts +1 -0
  281. package/dist/types/utils/insert.d.ts +4 -0
  282. package/dist/types/utils/is-buffer.d.ts +4 -0
  283. package/dist/types/utils/is-null.d.ts +4 -0
  284. package/dist/types/utils/is-object.d.ts +17 -0
  285. package/dist/types/utils/is-undefined.d.ts +4 -0
  286. package/dist/types/utils/k.d.ts +10 -0
  287. package/dist/types/utils/map-to-object.d.ts +1 -0
  288. package/dist/types/utils/merge.d.ts +4 -0
  289. package/dist/types/utils/omit.d.ts +9 -0
  290. package/dist/types/utils/pick.d.ts +11 -0
  291. package/dist/types/utils/present.d.ts +4 -0
  292. package/dist/types/utils/promise-hash.d.ts +9 -0
  293. package/dist/types/utils/proxy.d.ts +6 -0
  294. package/dist/types/utils/range.d.ts +4 -0
  295. package/dist/types/utils/set-type.d.ts +11 -0
  296. package/dist/types/utils/sleep.d.ts +4 -0
  297. package/dist/types/utils/stringify.d.ts +4 -0
  298. package/dist/types/utils/transform-keys.d.ts +29 -0
  299. package/dist/types/utils/try-catch.d.ts +55 -0
  300. package/dist/types/utils/underscore.d.ts +4 -0
  301. package/dist/types/utils/uniq.d.ts +4 -0
  302. package/package.json +87 -0
@@ -0,0 +1,66 @@
1
+ type JSONAPI$value = string | number | boolean | JSONAPI$BaseObject | Array<JSONAPI$BaseObject> | null | undefined;
2
+ interface JSONAPI$BaseObject {
3
+ [key: string]: JSONAPI$value;
4
+ meta?: JSONAPI$BaseObject;
5
+ }
6
+ interface JSONAPI$LinkObject {
7
+ href: string;
8
+ meta?: JSONAPI$BaseObject;
9
+ }
10
+ type JSONAPI$Link = string | JSONAPI$LinkObject | null;
11
+ interface JSONAPI$ResourceLinksObject {
12
+ self?: JSONAPI$Link;
13
+ related?: JSONAPI$Link;
14
+ }
15
+ export type JSONAPI$versions = '1.0';
16
+ export interface JSONAPI$IdentifierObject {
17
+ id: string;
18
+ type: string;
19
+ meta?: JSONAPI$BaseObject;
20
+ }
21
+ export interface JSONAPI$ResourceObject {
22
+ id: string;
23
+ type: string;
24
+ links?: JSONAPI$ResourceLinksObject;
25
+ attributes?: JSONAPI$BaseObject;
26
+ relationships?: {
27
+ [key: string]: JSONAPI$RelationshipObject | null | undefined;
28
+ };
29
+ }
30
+ export interface JSONAPI$RelationshipObject {
31
+ data: JSONAPI$IdentifierObject;
32
+ meta?: JSONAPI$BaseObject;
33
+ links?: JSONAPI$ResourceLinksObject;
34
+ }
35
+ export interface JSONAPI$DocumentLinks extends JSONAPI$ResourceLinksObject {
36
+ first?: JSONAPI$Link;
37
+ last?: JSONAPI$Link;
38
+ prev?: JSONAPI$Link | null;
39
+ next?: JSONAPI$Link | null;
40
+ }
41
+ export interface JSONAPI$ErrorObject {
42
+ id?: string;
43
+ code?: string;
44
+ meta?: JSONAPI$BaseObject;
45
+ title?: string;
46
+ status?: string;
47
+ detail?: string;
48
+ links?: {
49
+ about: JSONAPI$Link;
50
+ };
51
+ source?: {
52
+ pointer?: string;
53
+ parameter?: string;
54
+ };
55
+ }
56
+ export interface JSONAPI$Document {
57
+ data?: Array<JSONAPI$ResourceObject> | JSONAPI$ResourceObject;
58
+ links?: JSONAPI$DocumentLinks;
59
+ errors?: Array<JSONAPI$ErrorObject>;
60
+ included?: Array<JSONAPI$ResourceObject>;
61
+ jsonapi?: {
62
+ version: JSONAPI$versions;
63
+ meta?: JSONAPI$BaseObject;
64
+ };
65
+ }
66
+ export {};
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @private
3
+ */
4
+ export default function hasMediaType(value: string): boolean;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @private
3
+ */
4
+ export default function isJSONAPI(value: string): boolean;
@@ -0,0 +1,6 @@
1
+ import type { Bundle$Namespace } from '../index';
2
+ import type { Builder$Class, Builder$Construct } from './interfaces';
3
+ /**
4
+ * @private
5
+ */
6
+ export declare function build<T>(group: Bundle$Namespace<Builder$Class<T>>, construct: Builder$Construct<T>): Bundle$Namespace<T>;
@@ -0,0 +1,10 @@
1
+ import type { Bundle$Namespace, Bundle$NamespaceGroup } from '../index';
2
+ export type Builder$Class<T> = new (...args: Array<any>) => T;
3
+ export type Builder$NamespaceMeta<T> = {
4
+ key: string;
5
+ value: Bundle$Namespace<Builder$Class<T>>;
6
+ parent: T | null;
7
+ };
8
+ export type Builder$ParentBuilder<T> = (target: Bundle$NamespaceGroup<Builder$Class<T>>) => Array<Builder$NamespaceMeta<T>>;
9
+ export type Builder$ChildrenBuilder<T> = (target: Array<Builder$NamespaceMeta<T>>) => Array<Array<[string, T]>>;
10
+ export type Builder$Construct<T> = (key: string, value: Builder$Class<T>, parent?: T | null) => T;
@@ -0,0 +1,2 @@
1
+ import type { Builder$Construct, Builder$ChildrenBuilder } from '../interfaces';
2
+ export default function createChildrenBuilder<T>(construct: Builder$Construct<T>): Builder$ChildrenBuilder<T>;
@@ -0,0 +1,2 @@
1
+ import type { Builder$Construct, Builder$ParentBuilder } from '../interfaces';
2
+ export default function createParentBuilder<T>(construct: Builder$Construct<T>): Builder$ParentBuilder<T>;
@@ -0,0 +1,5 @@
1
+ import type { Bundle$Namespace } from '../../index';
2
+ /**
3
+ * @private
4
+ */
5
+ export default function sortByNamespace<T>([a]: [string, Bundle$Namespace<T>], [b]: [string, Bundle$Namespace<T>]): number;
@@ -0,0 +1,8 @@
1
+ import type { Loader } from './interfaces';
2
+ /**
3
+ * @private
4
+ */
5
+ export declare function createLoader(path: string): Loader;
6
+ export { build } from './builder';
7
+ export { closestAncestor, closestChild } from './resolver';
8
+ export type { Loader, Bundle$Namespace, Bundle$NamespaceGroup } from './interfaces';
@@ -0,0 +1,4 @@
1
+ import type { FreezeableMap } from '../freezeable';
2
+ export type Loader = (type: string) => any;
3
+ export type Bundle$Namespace<T> = FreezeableMap<string, T>;
4
+ export type Bundle$NamespaceGroup<T> = FreezeableMap<string, Bundle$Namespace<T>>;
@@ -0,0 +1,7 @@
1
+ import type { Bundle$Namespace, Bundle$NamespaceGroup } from '../index';
2
+ /**
3
+ * @private
4
+ */
5
+ export declare function resolve<T>(group: Bundle$Namespace<T>): Bundle$NamespaceGroup<T>;
6
+ export { default as closestAncestor } from './utils/closest-ancestor';
7
+ export { default as closestChild } from './utils/closest-child';
@@ -0,0 +1,2 @@
1
+ import type { Bundle$Namespace } from '../../index';
2
+ export default function closestAncestor<T>(source: Bundle$Namespace<T>, key: string): T | undefined;
@@ -0,0 +1,2 @@
1
+ import type { Bundle$Namespace } from '../../index';
2
+ export default function closestChild<T>(source: Bundle$Namespace<T>, key: string): T | undefined;
@@ -0,0 +1,5 @@
1
+ import { FreezeableMap } from '../../freezeable';
2
+ /**
3
+ * @private
4
+ */
5
+ export default function bundleFor(path: string): FreezeableMap<string, any>;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @private
3
+ */
4
+ export default function formatKey(key: string, formatter?: (source: string) => string): string;
@@ -0,0 +1,8 @@
1
+ import { FreezeableMap, FreezeableSet } from '../freezeable';
2
+ import type { Logger$level, Logger$format } from './interfaces';
3
+ export declare const DEBUG = "DEBUG";
4
+ export declare const INFO = "INFO";
5
+ export declare const WARN = "WARN";
6
+ export declare const ERROR = "ERROR";
7
+ export declare const FORMATS: FreezeableSet<Logger$format>;
8
+ export declare const LEVELS: FreezeableMap<Logger$level, number>;
@@ -0,0 +1,182 @@
1
+ import type { Logger$RequestLogger } from './request-logger/interfaces';
2
+ import type { Logger$config, Logger$format, Logger$level, Logger$logFn, Logger$filter } from './interfaces';
3
+ /**
4
+ * @class Logger
5
+ * @public
6
+ */
7
+ declare class Logger {
8
+ /**
9
+ * The level your application should log (DEBUG, INFO, WARN, or ERROR).
10
+ *
11
+ * @property level
12
+ * @type {String}
13
+ * @public
14
+ */
15
+ level: Logger$level;
16
+ /**
17
+ * The output format of log data (text or json).
18
+ *
19
+ * @property format
20
+ * @type {String}
21
+ * @public
22
+ */
23
+ format: Logger$format;
24
+ /**
25
+ * Hackers love logs. It's easy to get sensitive user information from log
26
+ * data if your server has been breached. To prevent leaking sensitive
27
+ * information in a potential attack, blacklist certain keys that should be
28
+ * filtered out of the logs.
29
+ *
30
+ * ```javascript
31
+ * // config/environments/development.js
32
+ * export default {
33
+ * logging: {
34
+ * level: 'DEBUG',
35
+ * format: 'text',
36
+ * enabled: true,
37
+ * filter: {
38
+ * params: ['password']
39
+ * }
40
+ * }
41
+ * };
42
+ * ```
43
+ *
44
+ * Now that we've added password to the array of parameters we want to filter
45
+ * out of the logs, let's try to create a new user.
46
+ *
47
+ * ```http
48
+ * POST /users HTTP/1.1
49
+ * Content-Type: application/vnd.api+json
50
+ * Host: 127.0.0.1:4000
51
+ * Connection: close
52
+ * User-Agent: Paw/3.0.14 (Macintosh; OS X/10.12.1) GCDHTTPRequest
53
+ * Content-Length: 188
54
+ *
55
+ * {
56
+ * "data": {
57
+ * "type": "users",
58
+ * "attributes": {
59
+ * "name": "Zachary Golba",
60
+ * "email": "zachary.golba@postlight.com",
61
+ * "password": "vcZxniFYyfnFDcLn%nhe8Vrt"
62
+ * }
63
+ * }
64
+ * }
65
+ * ```
66
+ *
67
+ * The request above will yield the following log message.
68
+ *
69
+ * ```text
70
+ * [2016-12-10T18:28:04.610Z] Processed POST "/users" from ::ffff:127.0.0.1
71
+ * with 201 Created by UsersController#create
72
+ *
73
+ * Params
74
+ *
75
+ * {
76
+ * "data": {
77
+ * "type": "users",
78
+ * "attributes": {
79
+ * "name": "Zachary Golba",
80
+ * "email": "zachary.golba@postlight.com",
81
+ * "password": "[FILTERED]"
82
+ * }
83
+ * }
84
+ * }
85
+ * ```
86
+ *
87
+ * It worked! The password value did not leak into the log message.
88
+ *
89
+ * @property filter
90
+ * @type {Object}
91
+ * @public
92
+ */
93
+ filter: Logger$filter;
94
+ /**
95
+ * A boolean flag that determines whether or not the logger is enabled.
96
+ *
97
+ * @property enabled
98
+ * @type {Boolean}
99
+ * @public
100
+ */
101
+ enabled: boolean;
102
+ /**
103
+ * Log a message at the DEBUG level.
104
+ *
105
+ * ```javascript
106
+ * logger.debug('Hello World!');
107
+ * // => [6/4/16 5:46:53 PM] Hello World!
108
+ * ```
109
+ *
110
+ * @method debug
111
+ * @param {any} data - The data you wish to log.
112
+ * @return {void}
113
+ * @public
114
+ */
115
+ debug: Logger$logFn;
116
+ /**
117
+ * Log a message at the INFO level.
118
+ *
119
+ * ```javascript
120
+ * logger.info('Hello World!');
121
+ * // => [6/4/16 5:46:53 PM] Hello World!
122
+ * ```
123
+ *
124
+ * @method info
125
+ * @param {any} data - The data you wish to log.
126
+ * @return {void}
127
+ * @public
128
+ */
129
+ info: Logger$logFn;
130
+ /**
131
+ * Log a message at the WARN level.
132
+ *
133
+ * ```javascript
134
+ * logger.warn('Good Bye World!');
135
+ * // => [6/4/16 5:46:53 PM] Good Bye World!
136
+ * ```
137
+ *
138
+ * @method warn
139
+ * @param {any} data - The data you wish to log.
140
+ * @return {void}
141
+ * @public
142
+ */
143
+ warn: Logger$logFn;
144
+ /**
145
+ * Log a message at the ERROR level.
146
+ *
147
+ * ```javascript
148
+ * logger.warn('HELP!');
149
+ * // => [6/4/16 5:46:53 PM] HELP!
150
+ * ```
151
+ *
152
+ * @method error
153
+ * @param {any} data - The data you wish to log.
154
+ * @return {void}
155
+ * @public
156
+ */
157
+ error: Logger$logFn;
158
+ /**
159
+ * Internal method used for logging requests.
160
+ *
161
+ * @method request
162
+ * @param {Request} request
163
+ * @param {Response} response
164
+ * @param {Object} opts - An options object.
165
+ * @param {Number} opts.startTime - The timestamp from when the request was
166
+ * received.
167
+ * @return {void}
168
+ * @private
169
+ */
170
+ request: Logger$RequestLogger;
171
+ constructor({ level, format, filter, enabled }: Logger$config);
172
+ /**
173
+ * @method getTimestamp
174
+ * @return {String} The current time as an ISO8601 string.
175
+ * @private
176
+ */
177
+ getTimestamp(): string;
178
+ }
179
+ export default Logger;
180
+ export { default as line } from './utils/line';
181
+ export { default as sql } from './utils/sql';
182
+ export type { Logger$config } from './interfaces';
@@ -0,0 +1,17 @@
1
+ export type Logger$level = 'DEBUG' | 'INFO' | 'WARN' | 'ERROR';
2
+ export type Logger$logFn = (data: string | Record<string, unknown>) => void;
3
+ export type Logger$format = 'text' | 'json';
4
+ export type Logger$data = {
5
+ level: Logger$level;
6
+ message?: unknown;
7
+ timestamp: string;
8
+ };
9
+ export type Logger$filter = {
10
+ params: string[];
11
+ };
12
+ export type Logger$config = {
13
+ level: Logger$level;
14
+ format: Logger$format;
15
+ filter: Logger$filter;
16
+ enabled: boolean;
17
+ };
@@ -0,0 +1,6 @@
1
+ import type Logger from '../index';
2
+ import type { Logger$RequestLogger } from './interfaces';
3
+ /**
4
+ * @private
5
+ */
6
+ export declare function createRequestLogger(logger: Logger): Logger$RequestLogger;
@@ -0,0 +1,25 @@
1
+ import type { Route } from '../../router';
2
+ import type { Request, Response } from '../../server';
3
+ export type Logger$RequestLogger = (req: Request, res: Response, opts: {
4
+ startTime: number;
5
+ }) => void;
6
+ type RequestLogger$stat = {
7
+ type: string;
8
+ name: string;
9
+ duration: number;
10
+ controller: string;
11
+ };
12
+ export type RequestLogger$templateData = {
13
+ path: string;
14
+ stats: Array<RequestLogger$stat>;
15
+ route?: Route;
16
+ method: string;
17
+ params: Record<string, unknown>;
18
+ startTime: number;
19
+ endTime: number;
20
+ statusCode: string;
21
+ statusMessage: string;
22
+ remoteAddress: string;
23
+ colorStr(source: string): string;
24
+ };
25
+ export {};
@@ -0,0 +1,9 @@
1
+ import type { RequestLogger$templateData } from './interfaces';
2
+ /**
3
+ * @private
4
+ */
5
+ export declare const debugTemplate: ({ path, stats, route, method, params, colorStr, startTime, endTime, statusCode, statusMessage, remoteAddress }: RequestLogger$templateData) => string;
6
+ /**
7
+ * @private
8
+ */
9
+ export declare const infoTemplate: ({ path, route, method, params, colorStr, startTime, endTime, statusCode, statusMessage, remoteAddress }: RequestLogger$templateData) => string;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @private
3
+ */
4
+ export default function filterParams(params: Record<string, unknown>, ...filtered: string[]): Record<string, unknown>;
@@ -0,0 +1,10 @@
1
+ import type Logger from '../../index';
2
+ import type { Request, Response } from '../../../server';
3
+ /**
4
+ * @private
5
+ */
6
+ export default function logJSON(logger: Logger, { request: req, response: res }: {
7
+ startTime: number;
8
+ request: Request;
9
+ response: Response;
10
+ }): void;
@@ -0,0 +1,10 @@
1
+ import type Logger from '../../index';
2
+ import type { Request, Response } from '../../../server';
3
+ /**
4
+ * @private
5
+ */
6
+ export default function logText(logger: Logger, { startTime, request: req, response: res }: {
7
+ request: Request;
8
+ response: Response;
9
+ startTime: number;
10
+ }): void;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @private
3
+ */
4
+ export default function line(strings: readonly string[], ...values: unknown[]): string;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @private
3
+ */
4
+ export default function sql(strings: readonly string[], ...values: unknown[]): string;
@@ -0,0 +1,3 @@
1
+ export declare const ANSI: RegExp;
2
+ export declare const STDOUT: RegExp;
3
+ export declare const STDERR: RegExp;
@@ -0,0 +1,6 @@
1
+ import type { Logger$format } from '../interfaces';
2
+ import type { Logger$Writer } from './interfaces';
3
+ /**
4
+ * @private
5
+ */
6
+ export declare function createWriter(format: Logger$format): Logger$Writer;
@@ -0,0 +1,2 @@
1
+ import type { Logger$data } from '../interfaces';
2
+ export type Logger$Writer = (data: Logger$data) => void;
@@ -0,0 +1,9 @@
1
+ import type { Logger$format } from '../../interfaces';
2
+ /**
3
+ * Returns `string | undefined` because `Error#stack` is optional — the Flow
4
+ * original had the same behaviour, it just did not say so.
5
+ *
6
+ * `data` is required here; Flow allowed it to be declared optional ahead of a
7
+ * required parameter, which TypeScript does not (and every caller passes both).
8
+ */
9
+ export default function formatMessage(data: unknown, format: Logger$format): string | undefined;
@@ -0,0 +1,11 @@
1
+ import type { Action } from '../router';
2
+ import type { Request, Response } from '../server';
3
+ /**
4
+ * Convert traditional node HTTP server middleware into a lumen compatible
5
+ * function for use in Controller#beforeAction.
6
+ *
7
+ * @module lumen-framework
8
+ * @namespace Lumen
9
+ * @function lumenify
10
+ */
11
+ export default function lumenify(middleware: (req: Request, res: Response, next: (err?: Error) => void) => void): Action<unknown>;
@@ -0,0 +1,8 @@
1
+ import type { Response } from '../../server';
2
+ /**
3
+ * Create a Proxy that will trap typical node middleware callback invocations
4
+ * and route them to the appropriate Promise callback (resolve or reject).
5
+ *
6
+ * @private
7
+ */
8
+ export default function createResponseProxy(res: Response, resolve: (result: unknown) => void): Response;
@@ -0,0 +1,21 @@
1
+ import EventEmitter from 'events';
2
+ import { type Worker } from 'cluster';
3
+ import type Logger from '../../logger';
4
+ import type { Cluster$opts } from './interfaces';
5
+ /**
6
+ * @private
7
+ */
8
+ declare class Cluster extends EventEmitter {
9
+ path: string;
10
+ port: number;
11
+ logger: Logger;
12
+ workers: Set<Worker>;
13
+ maxWorkers: number;
14
+ constructor({ path, port, logger, maxWorkers }: Cluster$opts);
15
+ fork(retry?: boolean): Promise<Worker>;
16
+ shutdown<T extends Worker>(worker: T): Promise<T>;
17
+ reload(): any;
18
+ forkAll(): Promise<Worker>;
19
+ }
20
+ export default Cluster;
21
+ export type { Cluster$opts } from './interfaces';
@@ -0,0 +1,7 @@
1
+ import type Logger from '../../logger';
2
+ export type Cluster$opts = {
3
+ path: string;
4
+ port: number;
5
+ logger: Logger;
6
+ maxWorkers?: number;
7
+ };
@@ -0,0 +1,6 @@
1
+ import Cluster from './cluster';
2
+ import type { Cluster$opts } from './cluster';
3
+ /**
4
+ * @private
5
+ */
6
+ export declare function createCluster({ path, port, logger, maxWorkers }: Cluster$opts): Cluster;
@@ -0,0 +1,11 @@
1
+ import type { Router$Namespace } from '../../index';
2
+ import type { Router$DefinitionBuilder } from '../interfaces';
3
+ export type DefinitionContext = {
4
+ [key: string]: (...args: Array<any>) => unknown;
5
+ };
6
+ /**
7
+ * @private
8
+ */
9
+ export declare function contextFor(build: Router$DefinitionBuilder<Router$Namespace>): {
10
+ create(namespace: Router$Namespace): DefinitionContext;
11
+ };
@@ -0,0 +1,7 @@
1
+ import type { Route$type, Router$Namespace } from '../../../index';
2
+ type DefinitionFn = (name: string, action?: string) => void;
3
+ /**
4
+ * @private
5
+ */
6
+ export default function createDefinitionGroup<T extends Router$Namespace>(type: Route$type, namespace: T): Record<string, DefinitionFn>;
7
+ export {};
@@ -0,0 +1,10 @@
1
+ import type { Request$method } from '../../../../server';
2
+ import type { Router$Namespace, Route$type } from '../../../index';
3
+ /**
4
+ * @private
5
+ */
6
+ export default function createDefinition({ type, method, namespace }: {
7
+ type: Route$type;
8
+ method: Request$method;
9
+ namespace: Router$Namespace;
10
+ }): (name: string, action?: string) => void;
@@ -0,0 +1,12 @@
1
+ import { type Controller$builtIn } from '../../../../controller';
2
+ /**
3
+ * @private
4
+ */
5
+ export default function normalizeResourceArgs(args: Array<any>): [
6
+ {
7
+ name: string;
8
+ path: string;
9
+ only: Array<Controller$builtIn>;
10
+ },
11
+ () => void
12
+ ];
@@ -0,0 +1,10 @@
1
+ import type Router from '../index';
2
+ import type { Router$Namespace } from '../index';
3
+ /**
4
+ * @private
5
+ */
6
+ export declare function build<T extends Router$Namespace>(builder: (() => void) | undefined, namespace: T): T;
7
+ /**
8
+ * @private
9
+ */
10
+ export declare function define<T extends Router$Namespace>(router: Router, parent: T): void;
@@ -0,0 +1,7 @@
1
+ import type { Router$Namespace, Resource$opts } from '../index';
2
+ export type Router$DefinitionBuilder<T extends Router$Namespace> = (builder: (() => void) | undefined, namespace: T) => T;
3
+ export type Router$resourceArgs = [
4
+ string,
5
+ (Resource$opts | null | undefined)?,
6
+ ((() => void) | null | undefined)?
7
+ ];
@@ -0,0 +1,18 @@
1
+ import { FreezeableMap } from '../freezeable';
2
+ import type { Request } from '../server';
3
+ import Route, { DYNAMIC_PATTERN } from './route';
4
+ import type { Router$opts } from './interfaces';
5
+ /**
6
+ * @private
7
+ */
8
+ declare class Router extends FreezeableMap<string, Route> {
9
+ replacer: RegExp;
10
+ constructor({ routes, controller, controllers }: Router$opts);
11
+ match({ method, url }: Request): void | Route;
12
+ }
13
+ export default Router;
14
+ export { Route, DYNAMIC_PATTERN };
15
+ export type { Router$Namespace } from './interfaces';
16
+ export type { Resource$opts } from './resource';
17
+ export type { Namespace$opts } from './namespace';
18
+ export type { Action, Route$opts, Route$type } from './route';
@@ -0,0 +1,18 @@
1
+ import type Route from './route';
2
+ import type Controller from '../controller';
3
+ import type { FreezeableSet } from '../freezeable';
4
+ export type Router$opts = {
5
+ controller: Controller;
6
+ controllers: Map<string, Controller>;
7
+ routes(): void;
8
+ };
9
+ type Router$NS$content = Route | Router$Namespace;
10
+ export interface Router$Namespace extends FreezeableSet<Router$NS$content> {
11
+ name: string;
12
+ path: string;
13
+ isRoot: boolean;
14
+ namespace: Router$Namespace;
15
+ controller: Controller;
16
+ controllers: Map<string, Controller>;
17
+ }
18
+ export {};