@nosana/api 2.13.5 → 2.13.7

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.
@@ -1 +1 @@
1
- {"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../../../../src/routes/node/actions/nodeSocket/socket.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,gBAAgB,CAAC;AAExB;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACnC,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxD;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,SAAK,GAAG,MAAM,CAEnE;AAED,0FAA0F;AAC1F,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,SAAuC,GAChE,SAAS,CAEX;AAED,wBAAgB,cAAc,CAAC,CAAC,EAC9B,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,mBAAmB,EAC9B,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC/B,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,CAAC,GAAG,SAAS,EACvC,OAAO,GAAE,iBAAsB,GAC9B,sBAAsB,CAwBxB"}
1
+ {"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../../../../src/routes/node/actions/nodeSocket/socket.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,gBAAgB,CAAC;AAExB;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACnC,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxD;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,SAAK,GAAG,MAAM,CAEnE;AAED,0FAA0F;AAC1F,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,SAAuC,GAChE,SAAS,CAEX;AAED,wBAAgB,cAAc,CAAC,CAAC,EAC9B,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,mBAAmB,EAC9B,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC/B,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,CAAC,GAAG,SAAS,EACvC,OAAO,GAAE,iBAAsB,GAC9B,sBAAsB,CA2BxB"}
@@ -1,4 +1,3 @@
1
- import { NOSANA_API_AUTH_MESSAGE } from '../../../../client/createClient.js';
2
1
  import { tryParseJson } from '../../../../utils/json.js';
3
2
  import { requireNodeAuthorization } from '../authorization.js';
4
3
  /** The node's WebSocket endpoint, derived from the client's HTTP base URL. */
@@ -14,7 +13,10 @@ export function openNodeSocket(context, handshake, handlers, parse, options = {}
14
13
  const socket = openNodeWebSocket(context.client, '', options.webSocketFactory);
15
14
  socket.onopen = async () => {
16
15
  try {
17
- socket.send(JSON.stringify({ ...handshake, header: await authorize(NOSANA_API_AUTH_MESSAGE) }));
16
+ // Bind the socket's header to the job it opens, so a captured handshake
17
+ // cannot be replayed against another job (matches the REST/SSE routes).
18
+ const header = await authorize(handshake.body.jobAddress, { skipCache: true });
19
+ socket.send(JSON.stringify({ ...handshake, header }));
18
20
  handlers.onOpen?.();
19
21
  }
20
22
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../../../../src/routes/node/actions/nodeSocket/socket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAoB/D,8EAA8E;AAC9E,MAAM,UAAU,aAAa,CAAC,MAAkB,EAAE,IAAI,GAAG,EAAE;IACzD,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;AACtE,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,iBAAiB,CAC/B,MAAkB,EAClB,IAAY,EACZ,UAAsC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC;IAEjE,OAAO,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,OAAuB,EACvB,SAA8B,EAC9B,QAA+B,EAC/B,KAAuC,EACvC,UAA6B,EAAE;IAE/B,MAAM,SAAS,GAAG,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACnF,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE/E,MAAM,CAAC,MAAM,GAAG,KAAK,IAAI,EAAE;QACzB,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC,CAAC;YAChG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;YAC1B,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;IACF,MAAM,CAAC,SAAS,GAAG,CAAC,KAAmB,EAAE,EAAE;QACzC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO;QAC3C,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAA0C,CAAC;QAChF,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO;QACxD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,IAAI,KAAK,SAAS;YAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC,CAAC;IACF,MAAM,CAAC,OAAO,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;IAC7D,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;IAE5C,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../../../../src/routes/node/actions/nodeSocket/socket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAoB/D,8EAA8E;AAC9E,MAAM,UAAU,aAAa,CAAC,MAAkB,EAAE,IAAI,GAAG,EAAE;IACzD,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;AACtE,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,iBAAiB,CAC/B,MAAkB,EAClB,IAAY,EACZ,UAAsC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC;IAEjE,OAAO,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,OAAuB,EACvB,SAA8B,EAC9B,QAA+B,EAC/B,KAAuC,EACvC,UAA6B,EAAE;IAE/B,MAAM,SAAS,GAAG,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACnF,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE/E,MAAM,CAAC,MAAM,GAAG,KAAK,IAAI,EAAE;QACzB,IAAI,CAAC;YACH,wEAAwE;YACxE,wEAAwE;YACxE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/E,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YACtD,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;YAC1B,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;IACF,MAAM,CAAC,SAAS,GAAG,CAAC,KAAmB,EAAE,EAAE;QACzC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO;QAC3C,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAA0C,CAAC;QAChF,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO;QACxD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,IAAI,KAAK,SAAS;YAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC,CAAC;IACF,MAAM,CAAC,OAAO,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;IAC7D,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;IAE5C,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;AACzC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routes/node/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAW,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAExE,mBAAmB,YAAY,CAAC;AAEhC;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,aAAa,GAAG,aAAa,CActG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routes/node/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAW,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAExE,mBAAmB,YAAY,CAAC;AAEhC;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,aAAa,GAAG,aAAa,CA+BtG"}
@@ -14,7 +14,24 @@ export function createNosanaNodeApi({ environment, authParams, options }) {
14
14
  address,
15
15
  url: client.connection.baseUrl,
16
16
  info: () => nodeInfo(client),
17
- job: (job) => createNodeJob({ client, environment, domain, authorize, node: address, job }),
17
+ job: (job) => {
18
+ // The node verifies the owner's signature over the job address, so a
19
+ // job's client signs that address as its message: the header is bound
20
+ // to this job and cannot be replayed against another. skipCache because
21
+ // the signer's store keys by identifier, not message.
22
+ const jobAuth = authParams && {
23
+ ...authParams,
24
+ generate: () => authParams.generate(job, { skipCache: true }),
25
+ };
26
+ return createNodeJob({
27
+ client: createNodeClient(environment, address, jobAuth, options),
28
+ environment,
29
+ domain,
30
+ authorize,
31
+ node: address,
32
+ job,
33
+ });
34
+ },
18
35
  };
19
36
  };
20
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routes/node/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMnD;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAiB;IACrF,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,UAAU,EAAE,QAAQ,CAAC;IAEvC,OAAO,CAAC,OAAO,EAAW,EAAE;QAC1B,MAAM,MAAM,GAAG,gBAAgB,CAAC,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAE3E,OAAO;YACL,OAAO;YACP,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO;YAC9B,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC5B,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;SAC5F,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routes/node/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAOnD;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAiB;IACrF,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,UAAU,EAAE,QAAQ,CAAC;IAEvC,OAAO,CAAC,OAAO,EAAW,EAAE;QAC1B,MAAM,MAAM,GAAG,gBAAgB,CAAC,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAE3E,OAAO;YACL,OAAO;YACP,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO;YAC9B,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC5B,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE;gBACX,qEAAqE;gBACrE,sEAAsE;gBACtE,wEAAwE;gBACxE,sDAAsD;gBACtD,MAAM,OAAO,GAAiC,UAAU,IAAI;oBAC1D,GAAG,UAAU;oBACb,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;iBAC9D,CAAC;gBACF,OAAO,aAAa,CAAC;oBACnB,MAAM,EAAE,gBAAgB,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;oBAChE,WAAW;oBACX,MAAM;oBACN,SAAS;oBACT,IAAI,EAAE,OAAO;oBACb,GAAG;iBACJ,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nosana/api",
3
- "version": "2.13.5",
3
+ "version": "2.13.7",
4
4
  "description": "Nosana API module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -69,5 +69,5 @@
69
69
  "engines": {
70
70
  "node": ">=20.18.0"
71
71
  },
72
- "gitHead": "d063c1e3dd6bdc58d468bb466fd14d09a065e8b4"
72
+ "gitHead": "6797c0e4be2ab62b4c6bd76cd9539dacdb1328d4"
73
73
  }