@queuebase/nextjs 0.0.1
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.
- package/dist/client.d.ts +13 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +44 -0
- package/dist/client.js.map +1 -0
- package/dist/config.d.ts +10 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +31 -0
- package/dist/config.js.map +1 -0
- package/dist/handler.d.ts +3 -0
- package/dist/handler.d.ts.map +1 -0
- package/dist/handler.js +13 -0
- package/dist/handler.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/package.json +44 -0
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { AnyJobDefinition, CallableJobRouter } from '@queuebase/core';
|
|
2
|
+
interface TransportConfig {
|
|
3
|
+
apiUrl: string;
|
|
4
|
+
apiKey?: string;
|
|
5
|
+
callbackUrl: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Create a callable job client from a job router
|
|
9
|
+
* This wraps the router to provide enqueue functionality
|
|
10
|
+
*/
|
|
11
|
+
export declare function createClient<T extends Record<string, AnyJobDefinition>>(router: T, config: TransportConfig): CallableJobRouter<T>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAkB,MAAM,iBAAiB,CAAC;AAE3F,UAAU,eAAe;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACrE,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,eAAe,GACtB,iBAAiB,CAAC,CAAC,CAAC,CA6CtB"}
|
package/dist/client.js
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create a callable job client from a job router
|
|
3
|
+
* This wraps the router to provide enqueue functionality
|
|
4
|
+
*/
|
|
5
|
+
export function createClient(router, config) {
|
|
6
|
+
const client = {};
|
|
7
|
+
for (const [name, definition] of Object.entries(router)) {
|
|
8
|
+
const jobDef = definition;
|
|
9
|
+
client[name] = {
|
|
10
|
+
enqueue: async (input, options) => {
|
|
11
|
+
// Validate input with Zod schema
|
|
12
|
+
const validatedInput = jobDef.input.parse(input);
|
|
13
|
+
// Merge default options with provided options
|
|
14
|
+
const mergedOptions = {
|
|
15
|
+
...jobDef.defaults,
|
|
16
|
+
...options,
|
|
17
|
+
};
|
|
18
|
+
// Send to queuebase API (local or production)
|
|
19
|
+
const response = await fetch(`${config.apiUrl}/jobs/enqueue`, {
|
|
20
|
+
method: 'POST',
|
|
21
|
+
headers: {
|
|
22
|
+
'Content-Type': 'application/json',
|
|
23
|
+
...(config.apiKey ? { Authorization: `Bearer ${config.apiKey}` } : {}),
|
|
24
|
+
},
|
|
25
|
+
body: JSON.stringify({
|
|
26
|
+
name,
|
|
27
|
+
payload: validatedInput,
|
|
28
|
+
callbackUrl: config.callbackUrl,
|
|
29
|
+
options: mergedOptions,
|
|
30
|
+
}),
|
|
31
|
+
});
|
|
32
|
+
if (!response.ok) {
|
|
33
|
+
const error = await response.text().catch(() => 'Unknown error');
|
|
34
|
+
throw new Error(`Failed to enqueue job: ${error}`);
|
|
35
|
+
}
|
|
36
|
+
const result = (await response.json());
|
|
37
|
+
return { jobId: result.jobId };
|
|
38
|
+
},
|
|
39
|
+
_def: jobDef,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
return client;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAQA;;;GAGG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAS,EACT,MAAuB;IAEvB,MAAM,MAAM,GAAG,EAA0B,CAAC;IAE1C,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACxD,MAAM,MAAM,GAAG,UAAU,CAAC;QAEzB,MAAkC,CAAC,IAAI,CAAC,GAAG;YAC1C,OAAO,EAAE,KAAK,EAAE,KAAc,EAAE,OAAwB,EAAE,EAAE;gBAC1D,iCAAiC;gBACjC,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAEjD,8CAA8C;gBAC9C,MAAM,aAAa,GAAG;oBACpB,GAAG,MAAM,CAAC,QAAQ;oBAClB,GAAG,OAAO;iBACX,CAAC;gBAEF,8CAA8C;gBAC9C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,eAAe,EAAE;oBAC5D,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE;wBACP,cAAc,EAAE,kBAAkB;wBAClC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACvE;oBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,IAAI;wBACJ,OAAO,EAAE,cAAc;wBACvB,WAAW,EAAE,MAAM,CAAC,WAAW;wBAC/B,OAAO,EAAE,aAAa;qBACvB,CAAC;iBACH,CAAC,CAAC;gBAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC;oBACjE,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;gBACrD,CAAC;gBAED,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAsB,CAAC;gBAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;YACjC,CAAC;YACD,IAAI,EAAE,MAAM;SACb,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { QueuebaseConfig } from '@queuebase/core';
|
|
2
|
+
/**
|
|
3
|
+
* Define your queuebase configuration
|
|
4
|
+
*/
|
|
5
|
+
export declare function defineConfig(config: Partial<QueuebaseConfig>): QueuebaseConfig;
|
|
6
|
+
/**
|
|
7
|
+
* Get the resolved config with environment variable overrides
|
|
8
|
+
*/
|
|
9
|
+
export declare function resolveConfig(config: QueuebaseConfig): QueuebaseConfig;
|
|
10
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAMvD;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAU9E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,CAYtE"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
const DEFAULT_DEV_API_URL = 'http://localhost:3847';
|
|
2
|
+
const DEFAULT_PROD_API_URL = 'https://api.queuebase.io';
|
|
3
|
+
const DEFAULT_CALLBACK_URL = 'http://localhost:3000/api/queuebase';
|
|
4
|
+
/**
|
|
5
|
+
* Define your queuebase configuration
|
|
6
|
+
*/
|
|
7
|
+
export function defineConfig(config) {
|
|
8
|
+
return {
|
|
9
|
+
jobsDir: config.jobsDir ?? './src/jobs',
|
|
10
|
+
callbackUrl: config.callbackUrl ?? process.env.QUEUEBASE_CALLBACK_URL ?? DEFAULT_CALLBACK_URL,
|
|
11
|
+
apiKey: config.apiKey ?? process.env.QUEUEBASE_API_KEY,
|
|
12
|
+
apiUrl: config.apiUrl ??
|
|
13
|
+
process.env.QUEUEBASE_API_URL ??
|
|
14
|
+
(process.env.NODE_ENV === 'production' ? DEFAULT_PROD_API_URL : DEFAULT_DEV_API_URL),
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Get the resolved config with environment variable overrides
|
|
19
|
+
*/
|
|
20
|
+
export function resolveConfig(config) {
|
|
21
|
+
const isDev = process.env.NODE_ENV !== 'production';
|
|
22
|
+
return {
|
|
23
|
+
jobsDir: config.jobsDir,
|
|
24
|
+
callbackUrl: process.env.QUEUEBASE_CALLBACK_URL ?? config.callbackUrl ?? DEFAULT_CALLBACK_URL,
|
|
25
|
+
apiKey: process.env.QUEUEBASE_API_KEY ?? config.apiKey,
|
|
26
|
+
apiUrl: process.env.QUEUEBASE_API_URL ??
|
|
27
|
+
config.apiUrl ??
|
|
28
|
+
(isDev ? DEFAULT_DEV_API_URL : DEFAULT_PROD_API_URL),
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AACpD,MAAM,oBAAoB,GAAG,0BAA0B,CAAC;AACxD,MAAM,oBAAoB,GAAG,qCAAqC,CAAC;AAEnE;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,MAAgC;IAC3D,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,YAAY;QACvC,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,oBAAoB;QAC7F,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB;QACtD,MAAM,EACJ,MAAM,CAAC,MAAM;YACb,OAAO,CAAC,GAAG,CAAC,iBAAiB;YAC7B,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,mBAAmB,CAAC;KACvF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAuB;IACnD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;IAEpD,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,MAAM,CAAC,WAAW,IAAI,oBAAoB;QAC7F,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,MAAM,CAAC,MAAM;QACtD,MAAM,EACJ,OAAO,CAAC,GAAG,CAAC,iBAAiB;YAC7B,MAAM,CAAC,MAAM;YACb,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,oBAAoB,CAAC;KACvD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../src/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAuC,MAAM,iBAAiB,CAAC;AAE7F,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,IACtD,SAAS,OAAO,KAAG,OAAO,CAAC,QAAQ,CAAC,CAWnD"}
|
package/dist/handler.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { WEBHOOK_HEADERS, processJobCallback } from '@queuebase/core';
|
|
2
|
+
export function createHandler(router) {
|
|
3
|
+
return async (request) => {
|
|
4
|
+
if (request.method !== 'POST') {
|
|
5
|
+
return new Response('Method not allowed', { status: 405 });
|
|
6
|
+
}
|
|
7
|
+
const body = await request.text();
|
|
8
|
+
const signatureHeader = request.headers.get(WEBHOOK_HEADERS.SIGNATURE);
|
|
9
|
+
const result = await processJobCallback(router, { body, signatureHeader });
|
|
10
|
+
return Response.json(result.body, { status: result.status });
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../src/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,eAAe,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE7F,MAAM,UAAU,aAAa,CAAC,MAAwC;IACpE,OAAO,KAAK,EAAE,OAAgB,EAAqB,EAAE;QACnD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC9B,OAAO,IAAI,QAAQ,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACvE,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;QAE3E,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/D,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { job, createJobRouter } from '@queuebase/core';
|
|
2
|
+
export type { AnyJobDefinition, JobDefinition, JobContext, JobRouter, EnqueueOptions, InferJobInput, InferJobOutput, } from '@queuebase/core';
|
|
3
|
+
export { defineConfig, resolveConfig } from './config.js';
|
|
4
|
+
export { createClient } from './client.js';
|
|
5
|
+
export { createHandler } from './handler.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,SAAS,EACT,cAAc,EACd,aAAa,EACb,cAAc,GACf,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG1D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// Re-export core primitives
|
|
2
|
+
export { job, createJobRouter } from '@queuebase/core';
|
|
3
|
+
// Config
|
|
4
|
+
export { defineConfig, resolveConfig } from './config.js';
|
|
5
|
+
// Client
|
|
6
|
+
export { createClient } from './client.js';
|
|
7
|
+
// Handler
|
|
8
|
+
export { createHandler } from './handler.js';
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAWvD,SAAS;AACT,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE1D,SAAS;AACT,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,UAAU;AACV,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@queuebase/nextjs",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"exports": {
|
|
6
|
+
".": {
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"import": "./dist/index.js"
|
|
9
|
+
},
|
|
10
|
+
"./handler": {
|
|
11
|
+
"types": "./dist/handler.d.ts",
|
|
12
|
+
"import": "./dist/handler.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"dist"
|
|
17
|
+
],
|
|
18
|
+
"publishConfig": {
|
|
19
|
+
"access": "public"
|
|
20
|
+
},
|
|
21
|
+
"dependencies": {
|
|
22
|
+
"zod": "^3.24.1",
|
|
23
|
+
"@queuebase/core": "0.0.1"
|
|
24
|
+
},
|
|
25
|
+
"devDependencies": {
|
|
26
|
+
"@types/node": "^22.10.5",
|
|
27
|
+
"typescript": "^5.7.2",
|
|
28
|
+
"vitest": "^2.1.8",
|
|
29
|
+
"@queuebase/tsconfig": "0.0.0"
|
|
30
|
+
},
|
|
31
|
+
"peerDependencies": {
|
|
32
|
+
"next": ">=14.0.0"
|
|
33
|
+
},
|
|
34
|
+
"scripts": {
|
|
35
|
+
"build": "tsc -b",
|
|
36
|
+
"dev": "tsc -b --watch",
|
|
37
|
+
"clean": "rm -rf dist .turbo *.tsbuildinfo",
|
|
38
|
+
"typecheck": "tsc --noEmit",
|
|
39
|
+
"lint": "biome lint ./src",
|
|
40
|
+
"lint:fix": "biome lint --write ./src",
|
|
41
|
+
"test": "vitest run --passWithNoTests",
|
|
42
|
+
"test:watch": "vitest"
|
|
43
|
+
}
|
|
44
|
+
}
|