@xeonr/upload-pool-sdk 1.0.0 → 1.2.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.
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/job-context.d.ts +2 -1
- package/dist/job-context.d.ts.map +1 -1
- package/dist/job-context.js +33 -1
- package/dist/job-context.js.map +1 -1
- package/dist/logger.d.ts +45 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +132 -0
- package/dist/logger.js.map +1 -0
- package/dist/pool.d.ts +1 -0
- package/dist/pool.d.ts.map +1 -1
- package/dist/pool.js +66 -14
- package/dist/pool.js.map +1 -1
- package/dist/rpc-clients.d.ts +7 -1
- package/dist/rpc-clients.d.ts.map +1 -1
- package/dist/rpc-clients.js +58 -12
- package/dist/rpc-clients.js.map +1 -1
- package/dist/sse-client.d.ts +4 -0
- package/dist/sse-client.d.ts.map +1 -1
- package/dist/sse-client.js +58 -4
- package/dist/sse-client.js.map +1 -1
- package/dist/types.d.ts +34 -3
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +4 -1
- package/src/job-context.ts +34 -0
- package/src/logger.ts +159 -0
- package/src/pool.ts +69 -12
- package/src/rpc-clients.ts +73 -12
- package/src/sse-client.ts +68 -4
- package/src/types.ts +34 -3
package/dist/index.d.ts
CHANGED
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
*
|
|
9
9
|
* await createPool({
|
|
10
10
|
* token: process.env.UPL_POOL_TOKEN!,
|
|
11
|
-
*
|
|
11
|
+
* apiEndpoint: process.env.UPL_API_URL!,
|
|
12
|
+
* pipelineEndpoint: process.env.UPL_PIPELINE_API_URL!,
|
|
12
13
|
* handlers: {
|
|
13
14
|
* "my-integration:invoice": async (ctx) => {
|
|
14
15
|
* const buf = await ctx.downloadBuffer();
|
|
@@ -22,6 +23,8 @@ import { Pool } from "./pool.js";
|
|
|
22
23
|
import type { PoolConfig } from "./types.js";
|
|
23
24
|
export { Pool } from "./pool.js";
|
|
24
25
|
export { NonRetryableError } from "./errors.js";
|
|
26
|
+
export { JsonLogger, noopLogger } from "./logger.js";
|
|
27
|
+
export type { Logger, LogLevel } from "./logger.js";
|
|
25
28
|
export type { PoolConfig, JobContext, JobHandler, UploadMetaOpts, UploadMetadataPartial, UploadMetadataProto, FolderContext, PoolLifecycleEvents, PresignedUploadRequest, MetaUploadHandle, } from "./types.js";
|
|
26
29
|
export declare function createPool(config: PoolConfig): Pool;
|
|
27
30
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACpD,YAAY,EACX,UAAU,EACV,UAAU,EACV,UAAU,EACV,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,GAChB,MAAM,YAAY,CAAC;AAEpB,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAEnD"}
|
package/dist/index.js
CHANGED
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
*
|
|
9
9
|
* await createPool({
|
|
10
10
|
* token: process.env.UPL_POOL_TOKEN!,
|
|
11
|
-
*
|
|
11
|
+
* apiEndpoint: process.env.UPL_API_URL!,
|
|
12
|
+
* pipelineEndpoint: process.env.UPL_PIPELINE_API_URL!,
|
|
12
13
|
* handlers: {
|
|
13
14
|
* "my-integration:invoice": async (ctx) => {
|
|
14
15
|
* const buf = await ctx.downloadBuffer();
|
|
@@ -21,6 +22,7 @@
|
|
|
21
22
|
import { Pool } from "./pool.js";
|
|
22
23
|
export { Pool } from "./pool.js";
|
|
23
24
|
export { NonRetryableError } from "./errors.js";
|
|
25
|
+
export { JsonLogger, noopLogger } from "./logger.js";
|
|
24
26
|
export function createPool(config) {
|
|
25
27
|
return new Pool(config);
|
|
26
28
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAerD,MAAM,UAAU,UAAU,CAAC,MAAkB;IAC5C,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;AACzB,CAAC"}
|
package/dist/job-context.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { RpcClients } from "./rpc-clients.js";
|
|
2
|
+
import type { Logger } from "./logger.js";
|
|
2
3
|
import type { FolderContext, JobContext } from "./types.js";
|
|
3
4
|
export interface JobEnvelope {
|
|
4
5
|
jobId: string;
|
|
@@ -14,5 +15,5 @@ export interface JobEnvelope {
|
|
|
14
15
|
};
|
|
15
16
|
folderContext?: FolderContext;
|
|
16
17
|
}
|
|
17
|
-
export declare function createJobContext(envelope: JobEnvelope, rpc: RpcClients): JobContext;
|
|
18
|
+
export declare function createJobContext(envelope: JobEnvelope, rpc: RpcClients, logger: Logger): JobContext;
|
|
18
19
|
//# sourceMappingURL=job-context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job-context.d.ts","sourceRoot":"","sources":["../src/job-context.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EACX,aAAa,EACb,UAAU,EAKV,MAAM,YAAY,CAAC;AAYpB,MAAM,WAAW,WAAW;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE;QACnB,GAAG,EAAE,MAAM,CAAC;QACZ,aAAa,EAAE,MAAM,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,aAAa,CAAC,EAAE,aAAa,CAAC;CAC9B;AAED,wBAAgB,gBAAgB,CAC/B,QAAQ,EAAE,WAAW,EACrB,GAAG,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"job-context.d.ts","sourceRoot":"","sources":["../src/job-context.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EACX,aAAa,EACb,UAAU,EAKV,MAAM,YAAY,CAAC;AAYpB,MAAM,WAAW,WAAW;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE;QACnB,GAAG,EAAE,MAAM,CAAC;QACZ,aAAa,EAAE,MAAM,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,aAAa,CAAC,EAAE,aAAa,CAAC;CAC9B;AAED,wBAAgB,gBAAgB,CAC/B,QAAQ,EAAE,WAAW,EACrB,GAAG,EAAE,UAAU,EACf,MAAM,EAAE,MAAM,GACZ,UAAU,CA6MZ"}
|
package/dist/job-context.js
CHANGED
|
@@ -18,7 +18,7 @@ const META_TYPE_MAP = {
|
|
|
18
18
|
AI_CONTENT: MetaUploadType.MetaUploadType_AI_CONTENT,
|
|
19
19
|
RENDERER_CONFIG: MetaUploadType.MetaUploadType_RENDERER_CONFIG,
|
|
20
20
|
};
|
|
21
|
-
export function createJobContext(envelope, rpc) {
|
|
21
|
+
export function createJobContext(envelope, rpc, logger) {
|
|
22
22
|
const ctx = {
|
|
23
23
|
jobId: envelope.jobId,
|
|
24
24
|
uploadId: envelope.uploadId,
|
|
@@ -34,25 +34,42 @@ export function createJobContext(envelope, rpc) {
|
|
|
34
34
|
folderContext: envelope.folderContext,
|
|
35
35
|
sourceUrl: envelope.sourceUrl,
|
|
36
36
|
async download() {
|
|
37
|
+
logger.debug("source.download.start");
|
|
37
38
|
const resp = await fetch(envelope.sourceUrl);
|
|
38
39
|
if (!resp.ok || !resp.body) {
|
|
40
|
+
logger.error("source.download.failed", {
|
|
41
|
+
status: resp.status,
|
|
42
|
+
statusText: resp.statusText,
|
|
43
|
+
});
|
|
39
44
|
throw new Error(`source download failed: ${resp.status} ${resp.statusText}`);
|
|
40
45
|
}
|
|
41
46
|
return resp.body;
|
|
42
47
|
},
|
|
43
48
|
async downloadBuffer() {
|
|
49
|
+
logger.debug("source.download.start", { mode: "buffer" });
|
|
44
50
|
const resp = await fetch(envelope.sourceUrl);
|
|
45
51
|
if (!resp.ok) {
|
|
52
|
+
logger.error("source.download.failed", {
|
|
53
|
+
status: resp.status,
|
|
54
|
+
statusText: resp.statusText,
|
|
55
|
+
});
|
|
46
56
|
throw new Error(`source download failed: ${resp.status} ${resp.statusText}`);
|
|
47
57
|
}
|
|
48
58
|
const buf = await resp.arrayBuffer();
|
|
59
|
+
logger.debug("source.download.complete", { sizeBytes: buf.byteLength });
|
|
49
60
|
return new Uint8Array(buf);
|
|
50
61
|
},
|
|
51
62
|
async downloadToFile(path) {
|
|
52
63
|
const data = await ctx.downloadBuffer();
|
|
53
64
|
await writeFile(path, data);
|
|
65
|
+
logger.debug("source.download.to_file", { path, sizeBytes: data.byteLength });
|
|
54
66
|
},
|
|
55
67
|
async uploadMeta(opts) {
|
|
68
|
+
logger.debug("meta.upload.start", {
|
|
69
|
+
type: opts.type,
|
|
70
|
+
instance: opts.instance,
|
|
71
|
+
filename: opts.filename,
|
|
72
|
+
});
|
|
56
73
|
const protoType = META_TYPE_MAP[opts.type];
|
|
57
74
|
const metaType = create(MetaTypeSchema, {
|
|
58
75
|
type: protoType,
|
|
@@ -87,6 +104,10 @@ export function createJobContext(envelope, rpc) {
|
|
|
87
104
|
updateToken: envelope.updateToken,
|
|
88
105
|
metadataId: [meta.metadataId],
|
|
89
106
|
}));
|
|
107
|
+
logger.info("meta.upload.complete", {
|
|
108
|
+
type: opts.type,
|
|
109
|
+
metadataId: meta.metadataId,
|
|
110
|
+
});
|
|
90
111
|
},
|
|
91
112
|
async setMetadata(metadata) {
|
|
92
113
|
// Distinguish a pre-built proto from a partial: protos carry the
|
|
@@ -112,6 +133,7 @@ export function createJobContext(envelope, rpc) {
|
|
|
112
133
|
metadata: protoMetadata,
|
|
113
134
|
thumbnailGenerationVersion: thumbnailVersion,
|
|
114
135
|
}));
|
|
136
|
+
logger.debug("metadata.set", { thumbnailVersion });
|
|
115
137
|
},
|
|
116
138
|
async markHasThumbnail(version) {
|
|
117
139
|
await rpc.internalUploads.updateUpload(create(InternalUpdateUploadRequestSchema, {
|
|
@@ -119,6 +141,7 @@ export function createJobContext(envelope, rpc) {
|
|
|
119
141
|
hasThumbnail: true,
|
|
120
142
|
thumbnailGenerationVersion: version,
|
|
121
143
|
}));
|
|
144
|
+
logger.info("thumbnail.marked", { version });
|
|
122
145
|
},
|
|
123
146
|
async setDescription(text, tags) {
|
|
124
147
|
await rpc.internalUploads.updateUpload(create(InternalUpdateUploadRequestSchema, {
|
|
@@ -128,8 +151,16 @@ export function createJobContext(envelope, rpc) {
|
|
|
128
151
|
generatedTags: tags ?? [],
|
|
129
152
|
}),
|
|
130
153
|
}));
|
|
154
|
+
logger.info("description.set", {
|
|
155
|
+
length: text.length,
|
|
156
|
+
tags: tags?.length ?? 0,
|
|
157
|
+
});
|
|
131
158
|
},
|
|
132
159
|
async withPresignedUploads(opts, callback) {
|
|
160
|
+
logger.debug("presigned.upload.request", {
|
|
161
|
+
count: opts.length,
|
|
162
|
+
types: opts.map((o) => o.type),
|
|
163
|
+
});
|
|
133
164
|
const metaTypes = opts.map((opt) => create(MetaTypeSchema, {
|
|
134
165
|
type: META_TYPE_MAP[opt.type],
|
|
135
166
|
n: opt.instance,
|
|
@@ -155,6 +186,7 @@ export function createJobContext(envelope, rpc) {
|
|
|
155
186
|
updateToken: envelope.updateToken,
|
|
156
187
|
metadataId: requested.metaUploads.map((m) => m.metadataId),
|
|
157
188
|
}));
|
|
189
|
+
logger.info("presigned.upload.complete", { count: handles.length });
|
|
158
190
|
return result;
|
|
159
191
|
},
|
|
160
192
|
};
|
package/dist/job-context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job-context.js","sourceRoot":"","sources":["../src/job-context.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EACN,8BAA8B,EAC9B,iCAAiC,EACjC,4CAA4C,EAC5C,cAAc,EACd,cAAc,EACd,8BAA8B,GAC9B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"job-context.js","sourceRoot":"","sources":["../src/job-context.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EACN,8BAA8B,EAC9B,iCAAiC,EACjC,4CAA4C,EAC5C,cAAc,EACd,cAAc,EACd,8BAA8B,GAC9B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAY9E,MAAM,aAAa,GAAmD;IACrE,eAAe,EAAE,cAAc,CAAC,8BAA8B;IAC9D,cAAc,EAAE,cAAc,CAAC,6BAA6B;IAC5D,cAAc,EAAE,cAAc,CAAC,+BAA+B;IAC9D,YAAY,EAAE,cAAc,CAAC,2BAA2B;IACxD,YAAY,EAAE,cAAc,CAAC,2BAA2B;IACxD,UAAU,EAAE,cAAc,CAAC,yBAAyB;IACpD,eAAe,EAAE,cAAc,CAAC,8BAA8B;CAC9D,CAAC;AAiBF,MAAM,UAAU,gBAAgB,CAC/B,QAAqB,EACrB,GAAe,EACf,MAAc;IAEd,MAAM,GAAG,GAAe;QACvB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,WAAW,EAAE;YACZ,GAAG,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG;YACpC,EAAE,EAAE,QAAQ,CAAC,kBAAkB,CAAC,aAAa;YAC7C,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,MAAM;gBACzC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC;gBAC3D,CAAC,CAAC,IAAI,UAAU,EAAE;SACnB;QACD,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,SAAS,EAAE,QAAQ,CAAC,SAAS;QAE7B,KAAK,CAAC,QAAQ;YACb,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;YACtC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC5B,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE;oBACtC,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,UAAU,EAAE,IAAI,CAAC,UAAU;iBAC3B,CAAC,CAAC;gBACH,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YAC9E,CAAC;YACD,OAAO,IAAI,CAAC,IAAI,CAAC;QAClB,CAAC;QAED,KAAK,CAAC,cAAc;YACnB,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC1D,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACd,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE;oBACtC,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,UAAU,EAAE,IAAI,CAAC,UAAU;iBAC3B,CAAC,CAAC;gBACH,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YAC9E,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;YACxE,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;QAED,KAAK,CAAC,cAAc,CAAC,IAAY;YAChC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,cAAc,EAAE,CAAC;YACxC,MAAM,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAC/E,CAAC;QAED,KAAK,CAAC,UAAU,CAAC,IAAoB;YACpC,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE;gBACjC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACvB,CAAC,CAAC;YACH,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,EAAE;gBACvC,IAAI,EAAE,SAAS;gBACf,CAAC,EAAE,IAAI,CAAC,QAAQ;gBAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACvB,CAAC,CAAC;YAEH,wCAAwC;YACxC,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,iBAAiB,CAC5D,MAAM,CAAC,8BAA8B,EAAE;gBACtC,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,QAAQ,EAAE,CAAC,QAAQ,CAAC;aACpB,CAAC,CACF,CAAC;YAEF,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAC/D,CAAC;YAED,aAAa;YACb,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,YAAY,UAAU;gBAC3C,CAAC,CAAC,IAAI,CAAC,IAAI;gBACX,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACb,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE;gBAC3C,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,IAAgB;gBACtB,OAAO,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE;gBACxC,MAAM,EAAE,MAAM;aACuB,CAAC,CAAC;YACxC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;YACpF,CAAC;YAED,wBAAwB;YACxB,MAAM,GAAG,CAAC,eAAe,CAAC,iBAAiB,CAC1C,MAAM,CAAC,8BAA8B,EAAE;gBACtC,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,UAAU,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC;aAC7B,CAAC,CACF,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;gBACnC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,UAAU,EAAE,IAAI,CAAC,UAAU;aAC3B,CAAC,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,WAAW,CAAC,QAAqD;YACtE,iEAAiE;YACjE,sCAAsC;YACtC,MAAM,OAAO,GAAI,QAAgC,CAAC,SAAS,KAAK,SAAS,CAAC;YAC1E,IAAI,aAAqE,CAAC;YAC1E,IAAI,gBAAoC,CAAC;YACzC,IAAI,OAAO,EAAE,CAAC;gBACb,aAAa,GAAG,QAAkE,CAAC;YACpF,CAAC;iBAAM,CAAC;gBACP,MAAM,OAAO,GAAG,QAAiC,CAAC;gBAClD,aAAa,GAAG,MAAM,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;gBACjD,sDAAsD;gBACtD,8DAA8D;gBAC9D,4DAA4D;gBAC5D,qDAAqD;gBACrD,MAAM,CAAC,MAAM,CAAC,aAAuB,EAAE,OAAO,CAAC,CAAC;gBAChD,gBAAgB,GAAG,OAAO,CAAC,0BAA0B,CAAC;YACvD,CAAC;YAED,MAAM,GAAG,CAAC,eAAe,CAAC,YAAY,CACrC,MAAM,CAAC,iCAAiC,EAAE;gBACzC,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,QAAQ,EAAE,aAAa;gBACvB,0BAA0B,EAAE,gBAAgB;aAC5C,CAAC,CACF,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,gBAAgB,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,KAAK,CAAC,gBAAgB,CAAC,OAAe;YACrC,MAAM,GAAG,CAAC,eAAe,CAAC,YAAY,CACrC,MAAM,CAAC,iCAAiC,EAAE;gBACzC,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,YAAY,EAAE,IAAI;gBAClB,0BAA0B,EAAE,OAAO;aACnC,CAAC,CACF,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9C,CAAC;QAED,KAAK,CAAC,cAAc,CAAC,IAAY,EAAE,IAAe;YACjD,MAAM,GAAG,CAAC,eAAe,CAAC,YAAY,CACrC,MAAM,CAAC,iCAAiC,EAAE;gBACzC,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,UAAU,EAAE,MAAM,CAAC,4CAA4C,EAAE;oBAChE,WAAW,EAAE,IAAI;oBACjB,aAAa,EAAE,IAAI,IAAI,EAAE;iBACzB,CAAC;aACF,CAAC,CACF,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBAC9B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,IAAI,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;aACvB,CAAC,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,oBAAoB,CACzB,IAA8B,EAC9B,QAA0E;YAE1E,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE;gBACxC,KAAK,EAAE,IAAI,CAAC,MAAM;gBAClB,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAC9B,CAAC,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE;gBAC1D,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;gBAC7B,CAAC,EAAE,GAAG,CAAC,QAAQ;gBACf,QAAQ,EAAE,GAAG,CAAC,QAAQ;aACtB,CAAC,CAAC,CAAC;YACJ,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,iBAAiB,CAC5D,MAAM,CAAC,8BAA8B,EAAE;gBACtC,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,QAAQ,EAAE,SAAS;aACnB,CAAC,CACF,CAAC;YACF,IAAI,SAAS,CAAC,WAAW,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;gBAClD,MAAM,IAAI,KAAK,CACd,8BAA8B,SAAS,CAAC,WAAW,CAAC,MAAM,mBAAmB,IAAI,CAAC,MAAM,EAAE,CAC1F,CAAC;YACH,CAAC;YACD,MAAM,OAAO,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACjD,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,UAAU,EAAE,CAAC,CAAC,UAAU;aACxB,CAAC,CAAC,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;YACvC,+DAA+D;YAC/D,+DAA+D;YAC/D,qCAAqC;YACrC,MAAM,GAAG,CAAC,eAAe,CAAC,iBAAiB,CAC1C,MAAM,CAAC,8BAA8B,EAAE;gBACtC,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,UAAU,EAAE,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;aAC1D,CAAC,CACF,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YACpE,OAAO,MAAM,CAAC;QACf,CAAC;KACD,CAAC;IAEF,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAgC;IACzD,QAAQ,QAAQ,EAAE,CAAC;QAClB,KAAK,iBAAiB,CAAC;QACvB,KAAK,gBAAgB,CAAC;QACtB,KAAK,gBAAgB,CAAC;QACtB,KAAK,cAAc;YAClB,OAAO,WAAW,CAAC;QACpB,KAAK,cAAc,CAAC;QACpB,KAAK,YAAY,CAAC;QAClB,KAAK,iBAAiB;YACrB,OAAO,0BAA0B,CAAC;IACpC,CAAC;AACF,CAAC"}
|
package/dist/logger.d.ts
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logging interface for the SDK. Customers can plug in their own
|
|
3
|
+
* logger (pino, winston, console) by passing `logger` to createPool;
|
|
4
|
+
* by default we emit structured JSON lines to stdout/stderr so logs
|
|
5
|
+
* are grep-friendly in k8s.
|
|
6
|
+
*
|
|
7
|
+
* The shape mirrors the pipeline-api's logger contract for consistency
|
|
8
|
+
* across the upl.im stack.
|
|
9
|
+
*/
|
|
10
|
+
export type LogLevel = "debug" | "info" | "warn" | "error";
|
|
11
|
+
export interface Logger {
|
|
12
|
+
debug(event: string, context?: Record<string, unknown>): void;
|
|
13
|
+
info(event: string, context?: Record<string, unknown>): void;
|
|
14
|
+
warn(event: string, context?: Record<string, unknown>): void;
|
|
15
|
+
error(event: string, context?: Record<string, unknown>): void;
|
|
16
|
+
/**
|
|
17
|
+
* Return a derived logger that merges these context fields into every
|
|
18
|
+
* subsequent log call. Used by Pool.handleDispatch to attach jobId /
|
|
19
|
+
* uploadId / urn to every line emitted during the job.
|
|
20
|
+
*/
|
|
21
|
+
child(context: Record<string, unknown>): Logger;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Default JSON logger. Emits one line per call. `error` and `warn` go to
|
|
25
|
+
* stderr; `info` and `debug` go to stdout. Honors `UPL_LOG_LEVEL` env var
|
|
26
|
+
* (`debug` | `info` | `warn` | `error`) to filter out noise in prod.
|
|
27
|
+
*/
|
|
28
|
+
export declare class JsonLogger implements Logger {
|
|
29
|
+
private readonly base;
|
|
30
|
+
private readonly minLevel;
|
|
31
|
+
constructor(base?: Record<string, unknown>, minLevel?: LogLevel);
|
|
32
|
+
child(context: Record<string, unknown>): Logger;
|
|
33
|
+
debug(event: string, context?: Record<string, unknown>): void;
|
|
34
|
+
info(event: string, context?: Record<string, unknown>): void;
|
|
35
|
+
warn(event: string, context?: Record<string, unknown>): void;
|
|
36
|
+
error(event: string, context?: Record<string, unknown>): void;
|
|
37
|
+
private shouldEmit;
|
|
38
|
+
private emit;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* No-op logger for tests or callers who want silence. createPool ignores
|
|
42
|
+
* this if `logger` is unset and uses JsonLogger by default.
|
|
43
|
+
*/
|
|
44
|
+
export declare const noopLogger: Logger;
|
|
45
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,MAAM,WAAW,MAAM;IACtB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC9D,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7D,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7D,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC9D;;;;OAIG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC;CAChD;AAmDD;;;;GAIG;AACH,qBAAa,UAAW,YAAW,MAAM;IACxC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA0B;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;gBAExB,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ;IAKnE,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;IAI/C,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAG7D,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAG5D,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAG5D,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI7D,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,IAAI;CA6BZ;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,MAQxB,CAAC"}
|
package/dist/logger.js
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logging interface for the SDK. Customers can plug in their own
|
|
3
|
+
* logger (pino, winston, console) by passing `logger` to createPool;
|
|
4
|
+
* by default we emit structured JSON lines to stdout/stderr so logs
|
|
5
|
+
* are grep-friendly in k8s.
|
|
6
|
+
*
|
|
7
|
+
* The shape mirrors the pipeline-api's logger contract for consistency
|
|
8
|
+
* across the upl.im stack.
|
|
9
|
+
*/
|
|
10
|
+
const SENSITIVE_KEYS = new Set([
|
|
11
|
+
"token",
|
|
12
|
+
"queueToken",
|
|
13
|
+
"queue_token",
|
|
14
|
+
"workerToken",
|
|
15
|
+
"worker_token",
|
|
16
|
+
"updateToken",
|
|
17
|
+
"update_token",
|
|
18
|
+
"authorization",
|
|
19
|
+
"Authorization",
|
|
20
|
+
]);
|
|
21
|
+
/**
|
|
22
|
+
* Redact obvious secrets so a careless `logger.info("rpc.request", { headers })`
|
|
23
|
+
* doesn't leak the pool token to log aggregators. Best-effort; not a
|
|
24
|
+
* substitute for thinking about what you're logging.
|
|
25
|
+
*/
|
|
26
|
+
function redact(value) {
|
|
27
|
+
if (value && typeof value === "object" && !Array.isArray(value)) {
|
|
28
|
+
const out = {};
|
|
29
|
+
for (const [k, v] of Object.entries(value)) {
|
|
30
|
+
if (SENSITIVE_KEYS.has(k)) {
|
|
31
|
+
out[k] = typeof v === "string" && v.length > 8
|
|
32
|
+
? `${v.slice(0, 4)}…(${v.length - 4} redacted)`
|
|
33
|
+
: "[redacted]";
|
|
34
|
+
}
|
|
35
|
+
else if (v && typeof v === "object") {
|
|
36
|
+
out[k] = redact(v);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
out[k] = v;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return out;
|
|
43
|
+
}
|
|
44
|
+
if (Array.isArray(value))
|
|
45
|
+
return value.map(redact);
|
|
46
|
+
return value;
|
|
47
|
+
}
|
|
48
|
+
function serializeError(err) {
|
|
49
|
+
if (err instanceof Error) {
|
|
50
|
+
return {
|
|
51
|
+
name: err.name,
|
|
52
|
+
message: err.message,
|
|
53
|
+
stack: err.stack,
|
|
54
|
+
...err,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
return { value: String(err) };
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Default JSON logger. Emits one line per call. `error` and `warn` go to
|
|
61
|
+
* stderr; `info` and `debug` go to stdout. Honors `UPL_LOG_LEVEL` env var
|
|
62
|
+
* (`debug` | `info` | `warn` | `error`) to filter out noise in prod.
|
|
63
|
+
*/
|
|
64
|
+
export class JsonLogger {
|
|
65
|
+
base;
|
|
66
|
+
minLevel;
|
|
67
|
+
constructor(base = {}, minLevel) {
|
|
68
|
+
this.base = base;
|
|
69
|
+
this.minLevel = minLevel ?? process.env.UPL_LOG_LEVEL ?? "info";
|
|
70
|
+
}
|
|
71
|
+
child(context) {
|
|
72
|
+
return new JsonLogger({ ...this.base, ...context }, this.minLevel);
|
|
73
|
+
}
|
|
74
|
+
debug(event, context) {
|
|
75
|
+
this.emit("debug", event, context);
|
|
76
|
+
}
|
|
77
|
+
info(event, context) {
|
|
78
|
+
this.emit("info", event, context);
|
|
79
|
+
}
|
|
80
|
+
warn(event, context) {
|
|
81
|
+
this.emit("warn", event, context);
|
|
82
|
+
}
|
|
83
|
+
error(event, context) {
|
|
84
|
+
this.emit("error", event, context);
|
|
85
|
+
}
|
|
86
|
+
shouldEmit(level) {
|
|
87
|
+
const order = {
|
|
88
|
+
debug: 10,
|
|
89
|
+
info: 20,
|
|
90
|
+
warn: 30,
|
|
91
|
+
error: 40,
|
|
92
|
+
};
|
|
93
|
+
return order[level] >= order[this.minLevel];
|
|
94
|
+
}
|
|
95
|
+
emit(level, event, context) {
|
|
96
|
+
if (!this.shouldEmit(level))
|
|
97
|
+
return;
|
|
98
|
+
const merged = {
|
|
99
|
+
...this.base,
|
|
100
|
+
...(context ? redact(context) : {}),
|
|
101
|
+
};
|
|
102
|
+
if (merged.err !== undefined) {
|
|
103
|
+
merged.err = serializeError(merged.err);
|
|
104
|
+
}
|
|
105
|
+
if (merged.error !== undefined && merged.error instanceof Error) {
|
|
106
|
+
merged.error = serializeError(merged.error);
|
|
107
|
+
}
|
|
108
|
+
const line = JSON.stringify({
|
|
109
|
+
ts: new Date().toISOString(),
|
|
110
|
+
level,
|
|
111
|
+
logger: "@xeonr/upload-pool-sdk",
|
|
112
|
+
event,
|
|
113
|
+
...merged,
|
|
114
|
+
});
|
|
115
|
+
// eslint-disable-next-line no-console
|
|
116
|
+
(level === "error" || level === "warn" ? console.error : console.log)(line);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* No-op logger for tests or callers who want silence. createPool ignores
|
|
121
|
+
* this if `logger` is unset and uses JsonLogger by default.
|
|
122
|
+
*/
|
|
123
|
+
export const noopLogger = {
|
|
124
|
+
debug() { },
|
|
125
|
+
info() { },
|
|
126
|
+
warn() { },
|
|
127
|
+
error() { },
|
|
128
|
+
child() {
|
|
129
|
+
return noopLogger;
|
|
130
|
+
},
|
|
131
|
+
};
|
|
132
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
|
package/dist/pool.d.ts
CHANGED
package/dist/pool.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAGX,UAAU,EACV,MAAM,YAAY,CAAC;AAEpB,qBAAa,IAAI;IAChB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAW;gBAE5B,MAAM,EAAE,UAAU;IA6CxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAKb,cAAc;IA2E5B,OAAO,CAAC,cAAc;YAIR,WAAW;CAwBzB"}
|
package/dist/pool.js
CHANGED
|
@@ -3,6 +3,11 @@
|
|
|
3
3
|
* to the pool's job stream, dispatches job:dispatch events to the right
|
|
4
4
|
* handler keyed by content type URN, and orchestrates accept/complete/
|
|
5
5
|
* report-error against IntegrationQueueService.
|
|
6
|
+
*
|
|
7
|
+
* Every transition emits a structured log line via the injected Logger
|
|
8
|
+
* so a worker's k8s logs surface SSE connection state, dispatched jobs,
|
|
9
|
+
* handler outcomes, and RPC errors without callers needing to wire up
|
|
10
|
+
* their own onError hook.
|
|
6
11
|
*/
|
|
7
12
|
import { hostname } from "node:os";
|
|
8
13
|
import { randomBytes } from "node:crypto";
|
|
@@ -12,52 +17,90 @@ import { createRpcClients } from "./rpc-clients.js";
|
|
|
12
17
|
import { SseClient } from "./sse-client.js";
|
|
13
18
|
import { createJobContext } from "./job-context.js";
|
|
14
19
|
import { NonRetryableError } from "./errors.js";
|
|
20
|
+
import { JsonLogger } from "./logger.js";
|
|
15
21
|
export class Pool {
|
|
16
22
|
config;
|
|
17
23
|
rpc;
|
|
18
24
|
sse;
|
|
25
|
+
logger;
|
|
19
26
|
inFlight = 0;
|
|
20
27
|
workerId;
|
|
21
28
|
capabilities;
|
|
22
29
|
constructor(config) {
|
|
23
30
|
this.config = {
|
|
24
31
|
concurrency: 1,
|
|
25
|
-
onError: defaultErrorHandler,
|
|
26
32
|
...config,
|
|
27
33
|
};
|
|
28
34
|
this.workerId = config.workerId ?? `${hostname()}-${randomBytes(4).toString("hex")}`;
|
|
29
35
|
this.capabilities = Object.keys(config.handlers);
|
|
30
|
-
this.
|
|
36
|
+
this.logger = (config.logger ?? new JsonLogger()).child({
|
|
37
|
+
workerId: this.workerId,
|
|
38
|
+
});
|
|
39
|
+
this.rpc = createRpcClients({
|
|
40
|
+
apiEndpoint: config.apiEndpoint,
|
|
41
|
+
pipelineEndpoint: config.pipelineEndpoint,
|
|
42
|
+
logger: this.logger,
|
|
43
|
+
});
|
|
31
44
|
this.sse = new SseClient({
|
|
32
|
-
endpoint: config.
|
|
45
|
+
endpoint: config.pipelineEndpoint,
|
|
33
46
|
token: config.token,
|
|
34
47
|
workerId: this.workerId,
|
|
35
48
|
capabilities: this.capabilities,
|
|
49
|
+
logger: this.logger.child({ component: "sse" }),
|
|
36
50
|
onConnected: () => {
|
|
37
|
-
/*
|
|
51
|
+
/* logged inside sse-client; callers can hook lifecycle here later */
|
|
38
52
|
},
|
|
39
53
|
onDisconnected: () => {
|
|
40
|
-
/*
|
|
54
|
+
/* logged inside sse-client */
|
|
41
55
|
},
|
|
42
56
|
onJobDispatch: (payload) => this.handleDispatch(payload),
|
|
43
57
|
});
|
|
58
|
+
this.logger.info("sdk.boot", {
|
|
59
|
+
apiEndpoint: config.apiEndpoint,
|
|
60
|
+
pipelineEndpoint: config.pipelineEndpoint,
|
|
61
|
+
capabilities: this.capabilities,
|
|
62
|
+
concurrency: this.config.concurrency,
|
|
63
|
+
version: SDK_VERSION,
|
|
64
|
+
});
|
|
65
|
+
if (this.capabilities.length === 0) {
|
|
66
|
+
this.logger.warn("sdk.boot.no_handlers", {
|
|
67
|
+
note: "no handlers registered — worker will not receive any jobs",
|
|
68
|
+
});
|
|
69
|
+
}
|
|
44
70
|
}
|
|
45
71
|
async start() {
|
|
72
|
+
this.logger.info("sdk.start");
|
|
46
73
|
this.sse.start();
|
|
47
74
|
}
|
|
48
75
|
async stop() {
|
|
76
|
+
this.logger.info("sdk.stop", { inFlight: this.inFlight });
|
|
49
77
|
this.sse.stop();
|
|
50
78
|
}
|
|
51
79
|
async handleDispatch(envelope) {
|
|
80
|
+
const jobLogger = this.logger.child({
|
|
81
|
+
jobId: envelope.jobId,
|
|
82
|
+
uploadId: envelope.uploadId,
|
|
83
|
+
urn: envelope.contentTypeContext.urn,
|
|
84
|
+
});
|
|
52
85
|
if (this.inFlight >= (this.config.concurrency ?? 1)) {
|
|
53
86
|
// Pipeline only dispatches to idle workers (zero in-flight), so
|
|
54
87
|
// this branch is defensive — if it ever fires we silently
|
|
55
88
|
// drop the dispatch and let the pipeline timeout requeue.
|
|
89
|
+
jobLogger.warn("job.dispatched.dropped_at_capacity", {
|
|
90
|
+
inFlight: this.inFlight,
|
|
91
|
+
concurrency: this.config.concurrency,
|
|
92
|
+
});
|
|
56
93
|
return;
|
|
57
94
|
}
|
|
58
95
|
this.inFlight++;
|
|
96
|
+
jobLogger.info("job.dispatched", {
|
|
97
|
+
filename: envelope.filename,
|
|
98
|
+
mimeType: envelope.mimeType,
|
|
99
|
+
inFlight: this.inFlight,
|
|
100
|
+
});
|
|
59
101
|
const handler = this.resolveHandler(envelope.contentTypeContext.urn);
|
|
60
|
-
const ctx = createJobContext(envelope, this.rpc);
|
|
102
|
+
const ctx = createJobContext(envelope, this.rpc, jobLogger);
|
|
103
|
+
const startedAt = Date.now();
|
|
61
104
|
try {
|
|
62
105
|
// AcceptJob — clears the pipeline's accept-timeout.
|
|
63
106
|
await this.rpc.integrationQueue.acceptJob(create(AcceptJobRequestSchema, {
|
|
@@ -65,8 +108,12 @@ export class Pool {
|
|
|
65
108
|
workerId: this.workerId,
|
|
66
109
|
queueToken: this.config.token,
|
|
67
110
|
}));
|
|
111
|
+
jobLogger.info("job.accepted");
|
|
68
112
|
if (!handler) {
|
|
69
|
-
|
|
113
|
+
jobLogger.warn("job.unhandled", {
|
|
114
|
+
availableHandlers: this.capabilities,
|
|
115
|
+
});
|
|
116
|
+
await this.reportError(envelope.jobId, ctx, jobLogger, new NonRetryableError(`no handler for URN ${envelope.contentTypeContext.urn}`));
|
|
70
117
|
return;
|
|
71
118
|
}
|
|
72
119
|
await handler(ctx);
|
|
@@ -75,9 +122,16 @@ export class Pool {
|
|
|
75
122
|
workerId: this.workerId,
|
|
76
123
|
queueToken: this.config.token,
|
|
77
124
|
}));
|
|
125
|
+
jobLogger.info("job.completed", {
|
|
126
|
+
durationMs: Date.now() - startedAt,
|
|
127
|
+
});
|
|
78
128
|
}
|
|
79
129
|
catch (err) {
|
|
80
|
-
|
|
130
|
+
jobLogger.error("job.failed", {
|
|
131
|
+
err,
|
|
132
|
+
durationMs: Date.now() - startedAt,
|
|
133
|
+
});
|
|
134
|
+
await this.reportError(envelope.jobId, ctx, jobLogger, err);
|
|
81
135
|
}
|
|
82
136
|
finally {
|
|
83
137
|
this.inFlight--;
|
|
@@ -86,7 +140,7 @@ export class Pool {
|
|
|
86
140
|
resolveHandler(urn) {
|
|
87
141
|
return this.config.handlers[urn] ?? this.config.onUnhandled;
|
|
88
142
|
}
|
|
89
|
-
async reportError(jobId, ctx, err) {
|
|
143
|
+
async reportError(jobId, ctx, jobLogger, err) {
|
|
90
144
|
const retry = !(err instanceof NonRetryableError);
|
|
91
145
|
this.config.onError?.(err, ctx);
|
|
92
146
|
try {
|
|
@@ -97,15 +151,13 @@ export class Pool {
|
|
|
97
151
|
error: err.message,
|
|
98
152
|
retry,
|
|
99
153
|
}));
|
|
154
|
+
jobLogger.info("job.error_reported", { retry });
|
|
100
155
|
}
|
|
101
156
|
catch (rptErr) {
|
|
157
|
+
jobLogger.error("job.error_report_failed", { err: rptErr });
|
|
102
158
|
this.config.onError?.(rptErr, ctx);
|
|
103
159
|
}
|
|
104
160
|
}
|
|
105
161
|
}
|
|
106
|
-
|
|
107
|
-
const where = ctx ? `job ${ctx.jobId} (${ctx.contentType.urn})` : "pool";
|
|
108
|
-
// eslint-disable-next-line no-console
|
|
109
|
-
console.error(`[@xeonr/upload-pool-sdk] ${where}: ${err.message}`);
|
|
110
|
-
}
|
|
162
|
+
const SDK_VERSION = "1.2.0";
|
|
111
163
|
//# sourceMappingURL=pool.js.map
|
package/dist/pool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pool.js","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"pool.js","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":"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"}
|
package/dist/rpc-clients.d.ts
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import { type Client } from "@connectrpc/connect";
|
|
2
2
|
import { InternalUploadsService } from "./protocol/uplim/api/v1/uploads_pb.js";
|
|
3
3
|
import { IntegrationQueueService } from "./protocol/uplim/workflow/v1/integration_queue_pb.js";
|
|
4
|
+
import type { Logger } from "./logger.js";
|
|
4
5
|
export interface RpcClients {
|
|
5
6
|
internalUploads: Client<typeof InternalUploadsService>;
|
|
6
7
|
integrationQueue: Client<typeof IntegrationQueueService>;
|
|
7
8
|
}
|
|
8
|
-
export
|
|
9
|
+
export interface RpcClientsConfig {
|
|
10
|
+
apiEndpoint: string;
|
|
11
|
+
pipelineEndpoint: string;
|
|
12
|
+
logger: Logger;
|
|
13
|
+
}
|
|
14
|
+
export declare function createRpcClients(config: RpcClientsConfig): RpcClients;
|
|
9
15
|
//# sourceMappingURL=rpc-clients.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-clients.d.ts","sourceRoot":"","sources":["../src/rpc-clients.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rpc-clients.d.ts","sourceRoot":"","sources":["../src/rpc-clients.ts"],"names":[],"mappings":"AAqBA,OAAO,EAEN,KAAK,MAAM,EAIX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,sDAAsD,CAAC;AAC/F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,UAAU;IAC1B,eAAe,EAAE,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC;IACvD,gBAAgB,EAAE,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC;CACzD;AA+BD,MAAM,WAAW,gBAAgB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU,CAiBrE"}
|