@modularizer/plat 0.1.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 (287) hide show
  1. package/README.md +574 -0
  2. package/bin/z2.js +5 -0
  3. package/dist/args/coerce.d.ts +54 -0
  4. package/dist/args/coerce.d.ts.map +1 -0
  5. package/dist/args/coerce.js +236 -0
  6. package/dist/args/coerce.js.map +1 -0
  7. package/dist/args/index.d.ts +2 -0
  8. package/dist/args/index.d.ts.map +1 -0
  9. package/dist/args/index.js +2 -0
  10. package/dist/args/index.js.map +1 -0
  11. package/dist/args/scalars.d.ts +87 -0
  12. package/dist/args/scalars.d.ts.map +1 -0
  13. package/dist/args/scalars.js +22 -0
  14. package/dist/args/scalars.js.map +1 -0
  15. package/dist/args/validate.d.ts +23 -0
  16. package/dist/args/validate.d.ts.map +1 -0
  17. package/dist/args/validate.js +185 -0
  18. package/dist/args/validate.js.map +1 -0
  19. package/dist/args/z2.d.ts +27 -0
  20. package/dist/args/z2.d.ts.map +1 -0
  21. package/dist/args/z2.js +24 -0
  22. package/dist/args/z2.js.map +1 -0
  23. package/dist/cli/commands/api-proxy.d.ts +9 -0
  24. package/dist/cli/commands/api-proxy.d.ts.map +1 -0
  25. package/dist/cli/commands/api-proxy.js +292 -0
  26. package/dist/cli/commands/api-proxy.js.map +1 -0
  27. package/dist/cli/commands/env.d.ts +32 -0
  28. package/dist/cli/commands/env.d.ts.map +1 -0
  29. package/dist/cli/commands/env.js +157 -0
  30. package/dist/cli/commands/env.js.map +1 -0
  31. package/dist/cli/commands/gen.d.ts +2 -0
  32. package/dist/cli/commands/gen.d.ts.map +1 -0
  33. package/dist/cli/commands/gen.js +88 -0
  34. package/dist/cli/commands/gen.js.map +1 -0
  35. package/dist/cli/commands/init-project.d.ts +9 -0
  36. package/dist/cli/commands/init-project.d.ts.map +1 -0
  37. package/dist/cli/commands/init-project.js +143 -0
  38. package/dist/cli/commands/init-project.js.map +1 -0
  39. package/dist/cli/commands/jwt-cmd.d.ts +10 -0
  40. package/dist/cli/commands/jwt-cmd.d.ts.map +1 -0
  41. package/dist/cli/commands/jwt-cmd.js +33 -0
  42. package/dist/cli/commands/jwt-cmd.js.map +1 -0
  43. package/dist/cli/commands/run.d.ts +5 -0
  44. package/dist/cli/commands/run.d.ts.map +1 -0
  45. package/dist/cli/commands/run.js +31 -0
  46. package/dist/cli/commands/run.js.map +1 -0
  47. package/dist/cli/commands/serve.d.ts +2 -0
  48. package/dist/cli/commands/serve.d.ts.map +1 -0
  49. package/dist/cli/commands/serve.js +43 -0
  50. package/dist/cli/commands/serve.js.map +1 -0
  51. package/dist/cli/commands/watch.d.ts +5 -0
  52. package/dist/cli/commands/watch.d.ts.map +1 -0
  53. package/dist/cli/commands/watch.js +119 -0
  54. package/dist/cli/commands/watch.js.map +1 -0
  55. package/dist/cli/index.d.ts +11 -0
  56. package/dist/cli/index.d.ts.map +1 -0
  57. package/dist/cli/index.js +11 -0
  58. package/dist/cli/index.js.map +1 -0
  59. package/dist/cli/jwt-helper.d.ts +32 -0
  60. package/dist/cli/jwt-helper.d.ts.map +1 -0
  61. package/dist/cli/jwt-helper.js +84 -0
  62. package/dist/cli/jwt-helper.js.map +1 -0
  63. package/dist/cli/proxy.d.ts +40 -0
  64. package/dist/cli/proxy.d.ts.map +1 -0
  65. package/dist/cli/proxy.js +171 -0
  66. package/dist/cli/proxy.js.map +1 -0
  67. package/dist/cli/runtime.d.ts +17 -0
  68. package/dist/cli/runtime.d.ts.map +1 -0
  69. package/dist/cli/runtime.js +286 -0
  70. package/dist/cli/runtime.js.map +1 -0
  71. package/dist/cli/spec-source.d.ts +13 -0
  72. package/dist/cli/spec-source.d.ts.map +1 -0
  73. package/dist/cli/spec-source.js +207 -0
  74. package/dist/cli/spec-source.js.map +1 -0
  75. package/dist/cli/z2.d.ts +7 -0
  76. package/dist/cli/z2.d.ts.map +1 -0
  77. package/dist/cli/z2.js +93 -0
  78. package/dist/cli/z2.js.map +1 -0
  79. package/dist/client/file-transport-plugin.d.ts +25 -0
  80. package/dist/client/file-transport-plugin.d.ts.map +1 -0
  81. package/dist/client/file-transport-plugin.js +80 -0
  82. package/dist/client/file-transport-plugin.js.map +1 -0
  83. package/dist/client/http-transport-plugin.d.ts +27 -0
  84. package/dist/client/http-transport-plugin.d.ts.map +1 -0
  85. package/dist/client/http-transport-plugin.js +48 -0
  86. package/dist/client/http-transport-plugin.js.map +1 -0
  87. package/dist/client/index.d.ts +6 -0
  88. package/dist/client/index.d.ts.map +1 -0
  89. package/dist/client/index.js +6 -0
  90. package/dist/client/index.js.map +1 -0
  91. package/dist/client/openapi-client.d.ts +332 -0
  92. package/dist/client/openapi-client.d.ts.map +1 -0
  93. package/dist/client/openapi-client.js +879 -0
  94. package/dist/client/openapi-client.js.map +1 -0
  95. package/dist/client/proxy.d.ts +5 -0
  96. package/dist/client/proxy.d.ts.map +1 -0
  97. package/dist/client/proxy.js +353 -0
  98. package/dist/client/proxy.js.map +1 -0
  99. package/dist/client/request-builder.d.ts +4 -0
  100. package/dist/client/request-builder.d.ts.map +1 -0
  101. package/dist/client/request-builder.js +88 -0
  102. package/dist/client/request-builder.js.map +1 -0
  103. package/dist/client/rpc-transport-plugin.d.ts +17 -0
  104. package/dist/client/rpc-transport-plugin.d.ts.map +1 -0
  105. package/dist/client/rpc-transport-plugin.js +69 -0
  106. package/dist/client/rpc-transport-plugin.js.map +1 -0
  107. package/dist/client/tools.d.ts +69 -0
  108. package/dist/client/tools.d.ts.map +1 -0
  109. package/dist/client/tools.js +122 -0
  110. package/dist/client/tools.js.map +1 -0
  111. package/dist/client/transport-plugin.d.ts +62 -0
  112. package/dist/client/transport-plugin.d.ts.map +1 -0
  113. package/dist/client/transport-plugin.js +40 -0
  114. package/dist/client/transport-plugin.js.map +1 -0
  115. package/dist/index.d.ts +9 -0
  116. package/dist/index.d.ts.map +1 -0
  117. package/dist/index.js +8 -0
  118. package/dist/index.js.map +1 -0
  119. package/dist/logging.d.ts +9 -0
  120. package/dist/logging.d.ts.map +1 -0
  121. package/dist/logging.js +29 -0
  122. package/dist/logging.js.map +1 -0
  123. package/dist/rpc.d.ts +39 -0
  124. package/dist/rpc.d.ts.map +1 -0
  125. package/dist/rpc.js +2 -0
  126. package/dist/rpc.js.map +1 -0
  127. package/dist/server/auth/index.d.ts +4 -0
  128. package/dist/server/auth/index.d.ts.map +1 -0
  129. package/dist/server/auth/index.js +2 -0
  130. package/dist/server/auth/index.js.map +1 -0
  131. package/dist/server/auth/jwt.d.ts +27 -0
  132. package/dist/server/auth/jwt.d.ts.map +1 -0
  133. package/dist/server/auth/jwt.js +95 -0
  134. package/dist/server/auth/jwt.js.map +1 -0
  135. package/dist/server/cache/index.d.ts +2 -0
  136. package/dist/server/cache/index.d.ts.map +1 -0
  137. package/dist/server/cache/index.js +2 -0
  138. package/dist/server/cache/index.js.map +1 -0
  139. package/dist/server/cache/utils.d.ts +30 -0
  140. package/dist/server/cache/utils.d.ts.map +1 -0
  141. package/dist/server/cache/utils.js +116 -0
  142. package/dist/server/cache/utils.js.map +1 -0
  143. package/dist/server/call-sessions.d.ts +50 -0
  144. package/dist/server/call-sessions.d.ts.map +1 -0
  145. package/dist/server/call-sessions.js +90 -0
  146. package/dist/server/call-sessions.js.map +1 -0
  147. package/dist/server/config/bucket.d.ts +9 -0
  148. package/dist/server/config/bucket.d.ts.map +1 -0
  149. package/dist/server/config/bucket.js +57 -0
  150. package/dist/server/config/bucket.js.map +1 -0
  151. package/dist/server/config/defaults.d.ts +3 -0
  152. package/dist/server/config/defaults.d.ts.map +1 -0
  153. package/dist/server/config/defaults.js +29 -0
  154. package/dist/server/config/defaults.js.map +1 -0
  155. package/dist/server/config/index.d.ts +5 -0
  156. package/dist/server/config/index.d.ts.map +1 -0
  157. package/dist/server/config/index.js +5 -0
  158. package/dist/server/config/index.js.map +1 -0
  159. package/dist/server/config/logger.d.ts +3 -0
  160. package/dist/server/config/logger.d.ts.map +1 -0
  161. package/dist/server/config/logger.js +2 -0
  162. package/dist/server/config/logger.js.map +1 -0
  163. package/dist/server/config/types.d.ts +198 -0
  164. package/dist/server/config/types.d.ts.map +1 -0
  165. package/dist/server/config/types.js +2 -0
  166. package/dist/server/config/types.js.map +1 -0
  167. package/dist/server/core.d.ts +42 -0
  168. package/dist/server/core.d.ts.map +1 -0
  169. package/dist/server/core.js +202 -0
  170. package/dist/server/core.js.map +1 -0
  171. package/dist/server/env.d.ts +39 -0
  172. package/dist/server/env.d.ts.map +1 -0
  173. package/dist/server/env.js +66 -0
  174. package/dist/server/env.js.map +1 -0
  175. package/dist/server/file-queue-protocol-plugin.d.ts +7 -0
  176. package/dist/server/file-queue-protocol-plugin.d.ts.map +1 -0
  177. package/dist/server/file-queue-protocol-plugin.js +150 -0
  178. package/dist/server/file-queue-protocol-plugin.js.map +1 -0
  179. package/dist/server/file-queue.d.ts +25 -0
  180. package/dist/server/file-queue.d.ts.map +1 -0
  181. package/dist/server/file-queue.js +2 -0
  182. package/dist/server/file-queue.js.map +1 -0
  183. package/dist/server/help.d.ts +19 -0
  184. package/dist/server/help.d.ts.map +1 -0
  185. package/dist/server/help.js +91 -0
  186. package/dist/server/help.js.map +1 -0
  187. package/dist/server/index.d.ts +29 -0
  188. package/dist/server/index.d.ts.map +1 -0
  189. package/dist/server/index.js +29 -0
  190. package/dist/server/index.js.map +1 -0
  191. package/dist/server/operation-registry.d.ts +9 -0
  192. package/dist/server/operation-registry.d.ts.map +1 -0
  193. package/dist/server/operation-registry.js +16 -0
  194. package/dist/server/operation-registry.js.map +1 -0
  195. package/dist/server/param-aliases.d.ts +40 -0
  196. package/dist/server/param-aliases.d.ts.map +1 -0
  197. package/dist/server/param-aliases.js +112 -0
  198. package/dist/server/param-aliases.js.map +1 -0
  199. package/dist/server/protocol-plugin.d.ts +72 -0
  200. package/dist/server/protocol-plugin.d.ts.map +1 -0
  201. package/dist/server/protocol-plugin.js +2 -0
  202. package/dist/server/protocol-plugin.js.map +1 -0
  203. package/dist/server/rate-limit/index.d.ts +2 -0
  204. package/dist/server/rate-limit/index.d.ts.map +1 -0
  205. package/dist/server/rate-limit/index.js +2 -0
  206. package/dist/server/rate-limit/index.js.map +1 -0
  207. package/dist/server/rate-limit/utils.d.ts +27 -0
  208. package/dist/server/rate-limit/utils.d.ts.map +1 -0
  209. package/dist/server/rate-limit/utils.js +126 -0
  210. package/dist/server/rate-limit/utils.js.map +1 -0
  211. package/dist/server/routing.d.ts +39 -0
  212. package/dist/server/routing.d.ts.map +1 -0
  213. package/dist/server/routing.js +70 -0
  214. package/dist/server/routing.js.map +1 -0
  215. package/dist/server/rpc-protocol-plugin.d.ts +12 -0
  216. package/dist/server/rpc-protocol-plugin.d.ts.map +1 -0
  217. package/dist/server/rpc-protocol-plugin.js +134 -0
  218. package/dist/server/rpc-protocol-plugin.js.map +1 -0
  219. package/dist/server/server.d.ts +143 -0
  220. package/dist/server/server.d.ts.map +1 -0
  221. package/dist/server/server.js +1161 -0
  222. package/dist/server/server.js.map +1 -0
  223. package/dist/server/token-limit/index.d.ts +2 -0
  224. package/dist/server/token-limit/index.d.ts.map +1 -0
  225. package/dist/server/token-limit/index.js +2 -0
  226. package/dist/server/token-limit/index.js.map +1 -0
  227. package/dist/server/token-limit/utils.d.ts +44 -0
  228. package/dist/server/token-limit/utils.d.ts.map +1 -0
  229. package/dist/server/token-limit/utils.js +260 -0
  230. package/dist/server/token-limit/utils.js.map +1 -0
  231. package/dist/server/tools.d.ts +51 -0
  232. package/dist/server/tools.d.ts.map +1 -0
  233. package/dist/server/tools.js +225 -0
  234. package/dist/server/tools.js.map +1 -0
  235. package/dist/server/transports.d.ts +25 -0
  236. package/dist/server/transports.d.ts.map +1 -0
  237. package/dist/server/transports.js +2 -0
  238. package/dist/server/transports.js.map +1 -0
  239. package/dist/spec/decorators.d.ts +41 -0
  240. package/dist/spec/decorators.d.ts.map +1 -0
  241. package/dist/spec/decorators.js +93 -0
  242. package/dist/spec/decorators.js.map +1 -0
  243. package/dist/spec/index.d.ts +3 -0
  244. package/dist/spec/index.d.ts.map +1 -0
  245. package/dist/spec/index.js +3 -0
  246. package/dist/spec/index.js.map +1 -0
  247. package/dist/spec/metadata.d.ts +5 -0
  248. package/dist/spec/metadata.d.ts.map +1 -0
  249. package/dist/spec/metadata.js +37 -0
  250. package/dist/spec/metadata.js.map +1 -0
  251. package/dist/types/client.d.ts +81 -0
  252. package/dist/types/client.d.ts.map +1 -0
  253. package/dist/types/client.js +14 -0
  254. package/dist/types/client.js.map +1 -0
  255. package/dist/types/endpoints.d.ts +76 -0
  256. package/dist/types/endpoints.d.ts.map +1 -0
  257. package/dist/types/endpoints.js +2 -0
  258. package/dist/types/endpoints.js.map +1 -0
  259. package/dist/types/errors.d.ts +86 -0
  260. package/dist/types/errors.d.ts.map +1 -0
  261. package/dist/types/errors.js +153 -0
  262. package/dist/types/errors.js.map +1 -0
  263. package/dist/types/http.d.ts +80 -0
  264. package/dist/types/http.d.ts.map +1 -0
  265. package/dist/types/http.js +61 -0
  266. package/dist/types/http.js.map +1 -0
  267. package/dist/types/index.d.ts +9 -0
  268. package/dist/types/index.d.ts.map +1 -0
  269. package/dist/types/index.js +9 -0
  270. package/dist/types/index.js.map +1 -0
  271. package/dist/types/openapi.d.ts +220 -0
  272. package/dist/types/openapi.d.ts.map +1 -0
  273. package/dist/types/openapi.js +11 -0
  274. package/dist/types/openapi.js.map +1 -0
  275. package/dist/types/opts.d.ts +46 -0
  276. package/dist/types/opts.d.ts.map +1 -0
  277. package/dist/types/opts.js +2 -0
  278. package/dist/types/opts.js.map +1 -0
  279. package/dist/types/plugins.d.ts +93 -0
  280. package/dist/types/plugins.d.ts.map +1 -0
  281. package/dist/types/plugins.js +5 -0
  282. package/dist/types/plugins.js.map +1 -0
  283. package/dist/types/tools.d.ts +52 -0
  284. package/dist/types/tools.d.ts.map +1 -0
  285. package/dist/types/tools.js +2 -0
  286. package/dist/types/tools.js.map +1 -0
  287. package/package.json +84 -0
@@ -0,0 +1,150 @@
1
+ import { mkdir, readdir, readFile, rename, rm, writeFile } from 'node:fs/promises';
2
+ import { basename, join } from 'node:path';
3
+ import { HttpError } from '../types';
4
+ export function createFileQueueProtocolPlugin(options) {
5
+ if (!options.config || typeof options.config !== 'object') {
6
+ return { name: 'file' };
7
+ }
8
+ const config = options.config;
9
+ let runtime;
10
+ let timer;
11
+ let busy = false;
12
+ async function archiveRequest(sourcePath) {
13
+ if (config.archive === false) {
14
+ await rm(sourcePath, { force: true });
15
+ return;
16
+ }
17
+ if (typeof config.archive === 'string') {
18
+ await rename(sourcePath, join(config.archive, basename(sourcePath)));
19
+ return;
20
+ }
21
+ await rm(sourcePath, { force: true });
22
+ }
23
+ async function processOnce() {
24
+ if (!runtime || busy)
25
+ return;
26
+ busy = true;
27
+ try {
28
+ await mkdir(config.inbox, { recursive: true });
29
+ await mkdir(config.outbox, { recursive: true });
30
+ if (config.archive && typeof config.archive === 'string') {
31
+ await mkdir(config.archive, { recursive: true });
32
+ }
33
+ const files = (await readdir(config.inbox))
34
+ .filter((name) => name.endsWith('.json'))
35
+ .sort();
36
+ for (const name of files) {
37
+ const sourcePath = join(config.inbox, name);
38
+ let request;
39
+ try {
40
+ request = JSON.parse(await readFile(sourcePath, 'utf8'));
41
+ }
42
+ catch (error) {
43
+ const invalidResponse = {
44
+ id: basename(name, '.json'),
45
+ ok: false,
46
+ error: { status: 400, message: error?.message ?? 'Invalid file queue request' },
47
+ };
48
+ await writeFile(join(config.outbox, `${basename(name, '.json')}.response.json`), JSON.stringify(invalidResponse, null, 2));
49
+ await rm(sourcePath, { force: true });
50
+ continue;
51
+ }
52
+ const operation = runtime.resolveOperation({
53
+ operationId: request.operationId,
54
+ method: request.method,
55
+ path: request.path,
56
+ });
57
+ if (!operation) {
58
+ const notFoundResponse = {
59
+ id: request.id,
60
+ ok: false,
61
+ error: { status: 404, message: `Operation not found for ${request.method} ${request.path}` },
62
+ };
63
+ await writeFile(join(config.outbox, `${request.id}.response.json`), JSON.stringify(notFoundResponse, null, 2));
64
+ await archiveRequest(sourcePath);
65
+ continue;
66
+ }
67
+ const eventsPath = join(config.outbox, `${request.id}.events.jsonl`);
68
+ const normalizedInput = runtime.normalizeInput(request.input ?? {});
69
+ const rt = runtime;
70
+ if (!rt)
71
+ break;
72
+ const ctx = {
73
+ method: request.method,
74
+ url: request.path,
75
+ headers: request.headers ?? {},
76
+ opts: operation.routeMeta?.opts,
77
+ };
78
+ const abortController = new AbortController();
79
+ rt.createCallContext({
80
+ ctx,
81
+ sessionId: request.id,
82
+ mode: 'deferred',
83
+ signal: abortController.signal,
84
+ emit: async (event, data) => {
85
+ await writeFile(eventsPath, `${JSON.stringify({ id: request.id, event, data: rt.serializeValue(data) })}\n`, { flag: 'a' });
86
+ },
87
+ });
88
+ try {
89
+ const envelope = rt.createEnvelope({
90
+ protocol: 'file',
91
+ operation,
92
+ input: normalizedInput,
93
+ headers: request.headers ?? {},
94
+ ctx,
95
+ requestId: request.id,
96
+ req: { headers: request.headers ?? {} },
97
+ allowHelp: false,
98
+ helpRequested: false,
99
+ });
100
+ const execution = await rt.dispatch(operation, envelope);
101
+ const response = {
102
+ id: request.id,
103
+ ok: true,
104
+ result: rt.serializeValue(execution.result),
105
+ statusCode: execution.statusCode,
106
+ };
107
+ await writeFile(join(config.outbox, `${request.id}.response.json`), JSON.stringify(response, null, 2));
108
+ }
109
+ catch (error) {
110
+ const status = error instanceof HttpError ? error.statusCode : 500;
111
+ const response = {
112
+ id: request.id,
113
+ ok: false,
114
+ error: {
115
+ status,
116
+ message: error?.message ?? 'Internal server error',
117
+ data: error instanceof HttpError ? error.data : undefined,
118
+ },
119
+ };
120
+ await writeFile(join(config.outbox, `${request.id}.response.json`), JSON.stringify(response, null, 2));
121
+ }
122
+ await archiveRequest(sourcePath);
123
+ }
124
+ }
125
+ finally {
126
+ busy = false;
127
+ }
128
+ }
129
+ return {
130
+ name: 'file',
131
+ setup(rt) {
132
+ runtime = rt;
133
+ },
134
+ start() {
135
+ if (!config || timer)
136
+ return;
137
+ const pollIntervalMs = config.pollIntervalMs ?? 250;
138
+ void processOnce();
139
+ timer = setInterval(() => { void processOnce(); }, pollIntervalMs);
140
+ },
141
+ teardown() {
142
+ if (timer) {
143
+ clearInterval(timer);
144
+ timer = undefined;
145
+ }
146
+ runtime = undefined;
147
+ },
148
+ };
149
+ }
150
+ //# sourceMappingURL=file-queue-protocol-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-queue-protocol-plugin.js","sourceRoot":"","sources":["../../src/server/file-queue-protocol-plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ export interface PLATFileQueueRequest {
2
+ id: string;
3
+ operationId?: string;
4
+ method: string;
5
+ path: string;
6
+ headers?: Record<string, string>;
7
+ input?: Record<string, any>;
8
+ }
9
+ export interface PLATFileQueueSuccessResponse {
10
+ id: string;
11
+ ok: true;
12
+ result: unknown;
13
+ statusCode: number;
14
+ }
15
+ export interface PLATFileQueueErrorResponse {
16
+ id: string;
17
+ ok: false;
18
+ error: {
19
+ status?: number;
20
+ message: string;
21
+ data?: unknown;
22
+ };
23
+ }
24
+ export type PLATFileQueueResponse = PLATFileQueueSuccessResponse | PLATFileQueueErrorResponse;
25
+ //# sourceMappingURL=file-queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-queue.d.ts","sourceRoot":"","sources":["../../src/server/file-queue.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAC5B;AAED,MAAM,WAAW,4BAA4B;IAC3C,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,IAAI,CAAA;IACR,MAAM,EAAE,OAAO,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,KAAK,CAAA;IACT,KAAK,EAAE;QACL,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,CAAC,EAAE,OAAO,CAAA;KACf,CAAA;CACF;AAED,MAAM,MAAM,qBAAqB,GAAG,4BAA4B,GAAG,0BAA0B,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=file-queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-queue.js","sourceRoot":"","sources":["../../src/server/file-queue.ts"],"names":[],"mappings":""}
@@ -0,0 +1,19 @@
1
+ import { z } from 'zod';
2
+ import type { RouteMeta } from '../types';
3
+ /**
4
+ * Check if a query parameter should trigger help mode
5
+ * Returns true if help parameter is present with a truthy value or without a value
6
+ */
7
+ export declare function isHelpRequested(helpParam: any, hasHelpParam: boolean): boolean;
8
+ /**
9
+ * Generate help documentation for a route
10
+ */
11
+ export declare function generateRouteHelp(methodName: string, routePath: string, httpMethod: string, routeMeta: RouteMeta | undefined, basePath: string): any;
12
+ /**
13
+ * Validate input against a Zod schema and return error if invalid
14
+ */
15
+ export declare function validateInput(input: Record<string, any>, schema: z.ZodTypeAny | undefined): {
16
+ valid: boolean;
17
+ error?: any;
18
+ };
19
+ //# sourceMappingURL=help.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/server/help.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEzC;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAQ9E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,SAAS,GAAG,SAAS,EAChC,QAAQ,EAAE,MAAM,GACf,GAAG,CAqDL;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,MAAM,EAAE,CAAC,CAAC,UAAU,GAAG,SAAS,GAC/B;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAA;CAAE,CAiBjC"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Check if a query parameter should trigger help mode
3
+ * Returns true if help parameter is present with a truthy value or without a value
4
+ */
5
+ export function isHelpRequested(helpParam, hasHelpParam) {
6
+ if (!hasHelpParam)
7
+ return false;
8
+ if (helpParam === undefined || helpParam === '')
9
+ return true;
10
+ if (typeof helpParam === 'string') {
11
+ const lower = helpParam.toLowerCase();
12
+ return lower === 'true' || lower === 't' || lower === 'yes';
13
+ }
14
+ return false;
15
+ }
16
+ /**
17
+ * Generate help documentation for a route
18
+ */
19
+ export function generateRouteHelp(methodName, routePath, httpMethod, routeMeta, basePath) {
20
+ const fullPath = basePath + routePath;
21
+ // Try to extract schema shape for input documentation
22
+ let inputDocs = null;
23
+ const inputSchema = routeMeta?.inputSchema;
24
+ if (inputSchema && 'shape' in inputSchema) {
25
+ const shape = inputSchema.shape;
26
+ if (shape) {
27
+ inputDocs = Object.keys(shape).reduce((acc, key) => {
28
+ const field = shape[key];
29
+ acc[key] = {
30
+ type: field._def?.typeName || 'unknown',
31
+ description: field.description || '',
32
+ required: !field.isOptional?.(),
33
+ };
34
+ return acc;
35
+ }, {});
36
+ }
37
+ }
38
+ // Extract output schema info
39
+ let outputDocs = null;
40
+ const outputSchema = routeMeta?.outputSchema;
41
+ if (outputSchema && 'shape' in outputSchema) {
42
+ const shape = outputSchema.shape;
43
+ if (shape) {
44
+ outputDocs = Object.keys(shape).reduce((acc, key) => {
45
+ const field = shape[key];
46
+ acc[key] = {
47
+ type: field._def?.typeName || 'unknown',
48
+ description: field.description || '',
49
+ };
50
+ return acc;
51
+ }, {});
52
+ }
53
+ }
54
+ return {
55
+ method: httpMethod,
56
+ path: fullPath,
57
+ methodName,
58
+ auth: routeMeta?.auth ?? 'public',
59
+ summary: routeMeta?.summary,
60
+ description: routeMeta?.description || 'Route documentation',
61
+ parameters: inputDocs || 'No input schema defined',
62
+ response: outputDocs || 'No output schema defined',
63
+ limits: {
64
+ rateLimit: routeMeta?.rateLimit ? true : false,
65
+ tokenLimit: routeMeta?.tokenLimit ? true : false,
66
+ cache: routeMeta?.cache ? true : false,
67
+ },
68
+ };
69
+ }
70
+ /**
71
+ * Validate input against a Zod schema and return error if invalid
72
+ */
73
+ export function validateInput(input, schema) {
74
+ if (!schema) {
75
+ return { valid: true };
76
+ }
77
+ try {
78
+ schema.parse(input);
79
+ return { valid: true };
80
+ }
81
+ catch (err) {
82
+ return {
83
+ valid: false,
84
+ error: {
85
+ message: err.message,
86
+ issues: err.issues || [],
87
+ },
88
+ };
89
+ }
90
+ }
91
+ //# sourceMappingURL=help.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/server/help.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * plat Server Framework
3
+ *
4
+ * Built on Express for production-ready HTTP server with:
5
+ * - Automatic controller registration and routing based on decorators
6
+ * - Middleware support
7
+ * - Date/DateTime serialization
8
+ * - Custom type serializers
9
+ * - Configurable error exposure
10
+ * - CORS, headers, and more
11
+ * - Auth decorator system with pluggable handlers
12
+ * - Rate limiting, token limiting, and caching plugins
13
+ */
14
+ export * from './server';
15
+ export * from './core';
16
+ export * from './operation-registry';
17
+ export * from './transports';
18
+ export * from './protocol-plugin';
19
+ export * from './param-aliases';
20
+ export * from './routing';
21
+ export * from './tools';
22
+ export * from './cache';
23
+ export * from './rate-limit';
24
+ export * from './token-limit';
25
+ export * from './auth';
26
+ export * from './help';
27
+ export * from './env';
28
+ export * from './config/bucket';
29
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,sBAAsB,CAAA;AACpC,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,OAAO,CAAA;AACrB,cAAc,iBAAiB,CAAA"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * plat Server Framework
3
+ *
4
+ * Built on Express for production-ready HTTP server with:
5
+ * - Automatic controller registration and routing based on decorators
6
+ * - Middleware support
7
+ * - Date/DateTime serialization
8
+ * - Custom type serializers
9
+ * - Configurable error exposure
10
+ * - CORS, headers, and more
11
+ * - Auth decorator system with pluggable handlers
12
+ * - Rate limiting, token limiting, and caching plugins
13
+ */
14
+ export * from './server';
15
+ export * from './core';
16
+ export * from './operation-registry';
17
+ export * from './transports';
18
+ export * from './protocol-plugin';
19
+ export * from './param-aliases';
20
+ export * from './routing';
21
+ export * from './tools';
22
+ export * from './cache';
23
+ export * from './rate-limit';
24
+ export * from './token-limit';
25
+ export * from './auth';
26
+ export * from './help';
27
+ export * from './env';
28
+ export * from './config/bucket';
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,sBAAsB,CAAA;AACpC,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,OAAO,CAAA;AACrB,cAAc,iBAAiB,CAAA"}
@@ -0,0 +1,9 @@
1
+ import type { PLATServerCallEnvelope, PLATServerResolvedOperation } from './transports';
2
+ export declare class PLATOperationRegistry {
3
+ private operationsById;
4
+ private operationsByRoute;
5
+ register(operation: PLATServerResolvedOperation): void;
6
+ resolve(envelope: Pick<PLATServerCallEnvelope, 'operationId' | 'method' | 'path'>): PLATServerResolvedOperation | undefined;
7
+ list(): PLATServerResolvedOperation[];
8
+ }
9
+ //# sourceMappingURL=operation-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operation-registry.d.ts","sourceRoot":"","sources":["../../src/server/operation-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAA;AAEvF,qBAAa,qBAAqB;IAChC,OAAO,CAAC,cAAc,CAAiD;IACvE,OAAO,CAAC,iBAAiB,CAAiD;IAE1E,QAAQ,CAAC,SAAS,EAAE,2BAA2B,GAAG,IAAI;IAKtD,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,sBAAsB,EAAE,aAAa,GAAG,QAAQ,GAAG,MAAM,CAAC,GAAG,2BAA2B,GAAG,SAAS;IAK3H,IAAI,IAAI,2BAA2B,EAAE;CAGtC"}
@@ -0,0 +1,16 @@
1
+ export class PLATOperationRegistry {
2
+ operationsById = new Map();
3
+ operationsByRoute = new Map();
4
+ register(operation) {
5
+ this.operationsById.set(operation.methodName, operation);
6
+ this.operationsByRoute.set(`${operation.method.toUpperCase()} ${operation.path}`, operation);
7
+ }
8
+ resolve(envelope) {
9
+ return (envelope.operationId ? this.operationsById.get(envelope.operationId) : undefined)
10
+ ?? this.operationsByRoute.get(`${envelope.method.toUpperCase()} ${envelope.path}`);
11
+ }
12
+ list() {
13
+ return Array.from(this.operationsById.values());
14
+ }
15
+ }
16
+ //# sourceMappingURL=operation-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operation-registry.js","sourceRoot":"","sources":["../../src/server/operation-registry.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,qBAAqB;IACxB,cAAc,GAAG,IAAI,GAAG,EAAuC,CAAA;IAC/D,iBAAiB,GAAG,IAAI,GAAG,EAAuC,CAAA;IAE1E,QAAQ,CAAC,SAAsC;QAC7C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;QACxD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,CAAC,CAAA;IAC9F,CAAC;IAED,OAAO,CAAC,QAAyE;QAC/E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;eACpF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;IACtF,CAAC;IAED,IAAI;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAA;IACjD,CAAC;CACF"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Parameter Aliasing
3
+ *
4
+ * Maps common parameter name variants to canonical plat parameter names.
5
+ * This ensures consistency while being resilient to common naming mistakes.
6
+ *
7
+ * Examples:
8
+ * - `query` → `q`
9
+ * - `search` → `q`
10
+ * - `format` → `fmt`
11
+ * - `page` + `pageSize` → `limit` + `offset`
12
+ */
13
+ export interface ParameterAliases {
14
+ [alias: string]: string | ((value: any, params: Record<string, any>) => void);
15
+ }
16
+ /**
17
+ * Normalize/alias a parameters object
18
+ * Converts common parameter name variants to plat canonical names
19
+ *
20
+ * @param params The input parameters object
21
+ * @param paramCoercions Optional config map of parameter aliases (from PLATServerOptions)
22
+ * @param disAllowedParams Optional list of forbidden parameter names
23
+ * @returns New params object with aliased names resolved
24
+ * @throws Error if a disallowed parameter is found in the input
25
+ */
26
+ export declare function normalizeParameters(params: Record<string, any>, paramCoercions?: Record<string, string>, disAllowedParams?: string[]): Record<string, any>;
27
+ /**
28
+ * Get all known parameter aliases
29
+ * Useful for documentation and validation
30
+ */
31
+ export declare function getKnownAliases(): Record<string, string>;
32
+ /**
33
+ * Check if a parameter name would be aliased
34
+ */
35
+ export declare function isAliasedParameter(paramName: string): boolean;
36
+ /**
37
+ * Get canonical name for a parameter
38
+ */
39
+ export declare function getCanonicalName(paramName: string): string | null;
40
+ //# sourceMappingURL=param-aliases.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"param-aliases.d.ts","sourceRoot":"","sources":["../../src/server/param-aliases.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,CAAA;CAC9E;AAeD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACvC,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAC1B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAiDrB;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAcxD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAUjE"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * Parameter Aliasing
3
+ *
4
+ * Maps common parameter name variants to canonical plat parameter names.
5
+ * This ensures consistency while being resilient to common naming mistakes.
6
+ *
7
+ * Examples:
8
+ * - `query` → `q`
9
+ * - `search` → `q`
10
+ * - `format` → `fmt`
11
+ * - `page` + `pageSize` → `limit` + `offset`
12
+ */
13
+ /**
14
+ * Map of parameter aliases to canonical names
15
+ * Value can be:
16
+ * - string: direct alias (query → q)
17
+ * - function: complex transformation (page/pageSize → limit/offset)
18
+ */
19
+ const PARAMETER_ALIASES = {
20
+ query: 'q',
21
+ search: 'q',
22
+ format: 'fmt',
23
+ // Complex transformations are handled separately
24
+ };
25
+ /**
26
+ * Normalize/alias a parameters object
27
+ * Converts common parameter name variants to plat canonical names
28
+ *
29
+ * @param params The input parameters object
30
+ * @param paramCoercions Optional config map of parameter aliases (from PLATServerOptions)
31
+ * @param disAllowedParams Optional list of forbidden parameter names
32
+ * @returns New params object with aliased names resolved
33
+ * @throws Error if a disallowed parameter is found in the input
34
+ */
35
+ export function normalizeParameters(params, paramCoercions, disAllowedParams) {
36
+ if (!params || typeof params !== 'object') {
37
+ return params;
38
+ }
39
+ // Check for disallowed parameters first
40
+ if (disAllowedParams && disAllowedParams.length > 0) {
41
+ for (const paramName of Object.keys(params)) {
42
+ if (disAllowedParams.includes(paramName)) {
43
+ throw new Error(`Parameter '${paramName}' is disallowed in this API. ` +
44
+ `Use '${getCanonicalName(paramName) || 'a different parameter'}' instead.`);
45
+ }
46
+ }
47
+ }
48
+ const normalized = { ...params };
49
+ const aliases = paramCoercions || PARAMETER_ALIASES;
50
+ // Apply simple aliases
51
+ for (const [alias, canonical] of Object.entries(aliases)) {
52
+ if (typeof canonical === 'string' && alias in normalized && canonical) {
53
+ if (!(canonical in normalized)) {
54
+ normalized[canonical] = normalized[alias];
55
+ }
56
+ delete normalized[alias];
57
+ }
58
+ }
59
+ // Handle page/pageSize → limit/offset conversion
60
+ if ('page' in normalized || 'pageSize' in normalized) {
61
+ const page = normalized.page ?? 1;
62
+ const pageSize = normalized.pageSize ?? 10;
63
+ // Only apply if limit/offset aren't already set
64
+ if (!('limit' in normalized)) {
65
+ normalized.limit = pageSize;
66
+ }
67
+ if (!('offset' in normalized)) {
68
+ normalized.offset = (page - 1) * pageSize;
69
+ }
70
+ // Remove the original page/pageSize
71
+ delete normalized.page;
72
+ delete normalized.pageSize;
73
+ }
74
+ return normalized;
75
+ }
76
+ /**
77
+ * Get all known parameter aliases
78
+ * Useful for documentation and validation
79
+ */
80
+ export function getKnownAliases() {
81
+ const aliases = {};
82
+ for (const [alias, canonical] of Object.entries(PARAMETER_ALIASES)) {
83
+ if (typeof canonical === 'string') {
84
+ aliases[alias] = canonical;
85
+ }
86
+ }
87
+ // Add page/pageSize special handling
88
+ aliases['page'] = 'offset (calculated as (page-1)*pageSize)';
89
+ aliases['pageSize'] = 'limit';
90
+ return aliases;
91
+ }
92
+ /**
93
+ * Check if a parameter name would be aliased
94
+ */
95
+ export function isAliasedParameter(paramName) {
96
+ return paramName in PARAMETER_ALIASES || paramName === 'page' || paramName === 'pageSize';
97
+ }
98
+ /**
99
+ * Get canonical name for a parameter
100
+ */
101
+ export function getCanonicalName(paramName) {
102
+ if (paramName === 'page')
103
+ return 'offset';
104
+ if (paramName === 'pageSize')
105
+ return 'limit';
106
+ const alias = PARAMETER_ALIASES[paramName];
107
+ if (typeof alias === 'string') {
108
+ return alias;
109
+ }
110
+ return null;
111
+ }
112
+ //# sourceMappingURL=param-aliases.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"param-aliases.js","sourceRoot":"","sources":["../../src/server/param-aliases.ts"],"names":[],"mappings":"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"}