@limrun/api
Advanced tools
+15
-0
| # Changelog | ||
| ## 0.5.2 (2025-09-07) | ||
| Full Changelog: [v0.5.1...v0.5.2](https://github.com/limrun-inc/typescript-sdk/compare/v0.5.1...v0.5.2) | ||
| ### Features | ||
| * **api:** add optional bufferutil lib for websocket performance ([0adf72f](https://github.com/limrun-inc/typescript-sdk/commit/0adf72f7521a552cea3fb670524f37ba95eb0ca3)) | ||
| * **examples:** add the backend piece for fullstack example ([27d0ca8](https://github.com/limrun-inc/typescript-sdk/commit/27d0ca8da7d90fed9342c10290f24ece91e0c55f)) | ||
| ### Chores | ||
| * **examples:** fix upload example ([5115276](https://github.com/limrun-inc/typescript-sdk/commit/51152767baf0cb2ecd47e380c006f977c150a96e)) | ||
| * lint issues ([fff1159](https://github.com/limrun-inc/typescript-sdk/commit/fff1159b5445b13a115e6348a8453f56a703e8d2)) | ||
| ## 0.5.1 (2025-09-07) | ||
@@ -4,0 +19,0 @@ |
+4
-1
| { | ||
| "name": "@limrun/api", | ||
| "version": "0.5.1", | ||
| "version": "0.5.2", | ||
| "description": "The official TypeScript library for the Limrun API", | ||
@@ -139,3 +139,6 @@ "author": "Limrun <contact@limrun.com>", | ||
| } | ||
| }, | ||
| "optionalDependencies": { | ||
| "bufferutil": "^4.0.9" | ||
| } | ||
| } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"assets-helpers.d.mts","sourceRoot":"","sources":["../src/resources/assets-helpers.ts"],"names":[],"mappings":"OAAO,EAAE,cAAc,EAAE;OAClB,EAAE,MAAM,IAAI,eAAe,EAAE;AAEpC,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,MAAM,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,qBAAa,MAAO,SAAQ,eAAe;IACnC,WAAW,CACf,IAAI,EAAE,sBAAsB,EAC5B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,wBAAwB,CAAC;CAoCrC"} | ||
| {"version":3,"file":"assets-helpers.d.mts","sourceRoot":"","sources":["../src/resources/assets-helpers.ts"],"names":[],"mappings":"OAIO,EAAE,cAAc,EAAE;OAClB,EAAE,MAAM,IAAI,eAAe,EAAE;AAEpC,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,MAAM,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,qBAAa,MAAO,SAAQ,eAAe;IACnC,WAAW,CACf,IAAI,EAAE,sBAAsB,EAC5B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,wBAAwB,CAAC;CAmCrC"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"assets-helpers.d.ts","sourceRoot":"","sources":["../src/resources/assets-helpers.ts"],"names":[],"mappings":"OAAO,EAAE,cAAc,EAAE;OAClB,EAAE,MAAM,IAAI,eAAe,EAAE;AAEpC,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,MAAM,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,qBAAa,MAAO,SAAQ,eAAe;IACnC,WAAW,CACf,IAAI,EAAE,sBAAsB,EAC5B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,wBAAwB,CAAC;CAoCrC"} | ||
| {"version":3,"file":"assets-helpers.d.ts","sourceRoot":"","sources":["../src/resources/assets-helpers.ts"],"names":[],"mappings":"OAIO,EAAE,cAAc,EAAE;OAClB,EAAE,MAAM,IAAI,eAAe,EAAE;AAEpC,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,MAAM,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,qBAAa,MAAO,SAAQ,eAAe;IACnC,WAAW,CACf,IAAI,EAAE,sBAAsB,EAC5B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,wBAAwB,CAAC;CAmCrC"} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.Assets = void 0; | ||
| const path_1 = require("path"); | ||
| const crypto_1 = require("crypto"); | ||
| const fs_1 = require("fs"); | ||
| const assets_1 = require("./assets.js"); | ||
| class Assets extends assets_1.Assets { | ||
| async getOrUpload(body, options) { | ||
| const { crypto, fs, path } = globalThis; | ||
| const creationResponse = await this.getOrCreate({ | ||
| name: body.name ?? path.basename(body.path), | ||
| name: body.name ?? (0, path_1.basename)(body.path), | ||
| }, options); | ||
| const data = await fs.promises.readFile(body.path); | ||
| const md5 = crypto.createHash('md5').update(data).digest('hex'); | ||
| const data = await fs_1.promises.readFile(body.path); | ||
| const md5 = (0, crypto_1.createHash)('md5').update(data).digest('hex'); | ||
| if (creationResponse.md5 && creationResponse.md5 === md5) { | ||
@@ -14,0 +16,0 @@ return { |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"assets-helpers.js","sourceRoot":"","sources":["../src/resources/assets-helpers.ts"],"names":[],"mappings":";;;AACA,wCAAqD;AAqBrD,MAAa,MAAO,SAAQ,eAAe;IACzC,KAAK,CAAC,WAAW,CACf,IAA4B,EAC5B,OAAwB;QAExB,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,UAAiB,CAAC;QAC/C,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,WAAW,CAC7C;YACE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;SAC5C,EACD,OAAO,CACR,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChE,IAAI,gBAAgB,CAAC,GAAG,IAAI,gBAAgB,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;YACzD,OAAO;gBACL,EAAE,EAAE,gBAAgB,CAAC,EAAE;gBACvB,IAAI,EAAE,gBAAgB,CAAC,IAAI;gBAC3B,iBAAiB,EAAE,gBAAgB,CAAC,iBAAiB;gBACrD,GAAG,EAAE,gBAAgB,CAAC,GAAG;aAC1B,CAAC;QACJ,CAAC;QACD,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,gBAAgB,CAAC,eAAe,EAAE;YACnE,OAAO,EAAE;gBACP,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;gBACxC,cAAc,EAAE,0BAA0B;aAC3C;YACD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QACH,IAAI,cAAc,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,2BAA2B,cAAc,CAAC,MAAM,IAAI,MAAM,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACrG,CAAC;QACD,OAAO;YACL,EAAE,EAAE,gBAAgB,CAAC,EAAE;YACvB,IAAI,EAAE,gBAAgB,CAAC,IAAI;YAC3B,iBAAiB,EAAE,gBAAgB,CAAC,iBAAiB;YACrD,GAAG;SACJ,CAAC;IACJ,CAAC;CACF;AAxCD,wBAwCC"} | ||
| {"version":3,"file":"assets-helpers.js","sourceRoot":"","sources":["../src/resources/assets-helpers.ts"],"names":[],"mappings":";;;AAAA,+BAAgC;AAChC,mCAAoC;AACpC,2BAAoC;AAGpC,wCAAqD;AAqBrD,MAAa,MAAO,SAAQ,eAAe;IACzC,KAAK,CAAC,WAAW,CACf,IAA4B,EAC5B,OAAwB;QAExB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,WAAW,CAC7C;YACE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAA,eAAQ,EAAC,IAAI,CAAC,IAAI,CAAC;SACvC,EACD,OAAO,CACR,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,IAAA,mBAAU,EAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzD,IAAI,gBAAgB,CAAC,GAAG,IAAI,gBAAgB,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;YACzD,OAAO;gBACL,EAAE,EAAE,gBAAgB,CAAC,EAAE;gBACvB,IAAI,EAAE,gBAAgB,CAAC,IAAI;gBAC3B,iBAAiB,EAAE,gBAAgB,CAAC,iBAAiB;gBACrD,GAAG,EAAE,gBAAgB,CAAC,GAAG;aAC1B,CAAC;QACJ,CAAC;QACD,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,gBAAgB,CAAC,eAAe,EAAE;YACnE,OAAO,EAAE;gBACP,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;gBACxC,cAAc,EAAE,0BAA0B;aAC3C;YACD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QACH,IAAI,cAAc,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,2BAA2B,cAAc,CAAC,MAAM,IAAI,MAAM,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACrG,CAAC;QACD,OAAO;YACL,EAAE,EAAE,gBAAgB,CAAC,EAAE;YACvB,IAAI,EAAE,gBAAgB,CAAC,IAAI;YAC3B,iBAAiB,EAAE,gBAAgB,CAAC,iBAAiB;YACrD,GAAG;SACJ,CAAC;IACJ,CAAC;CACF;AAvCD,wBAuCC"} |
@@ -0,10 +1,12 @@ | ||
| import { basename } from 'path'; | ||
| import { createHash } from 'crypto'; | ||
| import { promises as fs } from 'fs'; | ||
| import { Assets as GeneratedAssets } from "./assets.mjs"; | ||
| export class Assets extends GeneratedAssets { | ||
| async getOrUpload(body, options) { | ||
| const { crypto, fs, path } = globalThis; | ||
| const creationResponse = await this.getOrCreate({ | ||
| name: body.name ?? path.basename(body.path), | ||
| name: body.name ?? basename(body.path), | ||
| }, options); | ||
| const data = await fs.promises.readFile(body.path); | ||
| const md5 = crypto.createHash('md5').update(data).digest('hex'); | ||
| const data = await fs.readFile(body.path); | ||
| const md5 = createHash('md5').update(data).digest('hex'); | ||
| if (creationResponse.md5 && creationResponse.md5 === md5) { | ||
@@ -11,0 +13,0 @@ return { |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"assets-helpers.mjs","sourceRoot":"","sources":["../src/resources/assets-helpers.ts"],"names":[],"mappings":"OACO,EAAE,MAAM,IAAI,eAAe,EAAE;AAqBpC,MAAM,OAAO,MAAO,SAAQ,eAAe;IACzC,KAAK,CAAC,WAAW,CACf,IAA4B,EAC5B,OAAwB;QAExB,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,UAAiB,CAAC;QAC/C,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,WAAW,CAC7C;YACE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;SAC5C,EACD,OAAO,CACR,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChE,IAAI,gBAAgB,CAAC,GAAG,IAAI,gBAAgB,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;YACzD,OAAO;gBACL,EAAE,EAAE,gBAAgB,CAAC,EAAE;gBACvB,IAAI,EAAE,gBAAgB,CAAC,IAAI;gBAC3B,iBAAiB,EAAE,gBAAgB,CAAC,iBAAiB;gBACrD,GAAG,EAAE,gBAAgB,CAAC,GAAG;aAC1B,CAAC;QACJ,CAAC;QACD,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,gBAAgB,CAAC,eAAe,EAAE;YACnE,OAAO,EAAE;gBACP,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;gBACxC,cAAc,EAAE,0BAA0B;aAC3C;YACD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QACH,IAAI,cAAc,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,2BAA2B,cAAc,CAAC,MAAM,IAAI,MAAM,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACrG,CAAC;QACD,OAAO;YACL,EAAE,EAAE,gBAAgB,CAAC,EAAE;YACvB,IAAI,EAAE,gBAAgB,CAAC,IAAI;YAC3B,iBAAiB,EAAE,gBAAgB,CAAC,iBAAiB;YACrD,GAAG;SACJ,CAAC;IACJ,CAAC;CACF"} | ||
| {"version":3,"file":"assets-helpers.mjs","sourceRoot":"","sources":["../src/resources/assets-helpers.ts"],"names":[],"mappings":"OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM;OACxB,EAAE,UAAU,EAAE,MAAM,QAAQ;OAC5B,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI;OAG5B,EAAE,MAAM,IAAI,eAAe,EAAE;AAqBpC,MAAM,OAAO,MAAO,SAAQ,eAAe;IACzC,KAAK,CAAC,WAAW,CACf,IAA4B,EAC5B,OAAwB;QAExB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,WAAW,CAC7C;YACE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;SACvC,EACD,OAAO,CACR,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzD,IAAI,gBAAgB,CAAC,GAAG,IAAI,gBAAgB,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;YACzD,OAAO;gBACL,EAAE,EAAE,gBAAgB,CAAC,EAAE;gBACvB,IAAI,EAAE,gBAAgB,CAAC,IAAI;gBAC3B,iBAAiB,EAAE,gBAAgB,CAAC,iBAAiB;gBACrD,GAAG,EAAE,gBAAgB,CAAC,GAAG;aAC1B,CAAC;QACJ,CAAC;QACD,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,gBAAgB,CAAC,eAAe,EAAE;YACnE,OAAO,EAAE;gBACP,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;gBACxC,cAAc,EAAE,0BAA0B;aAC3C;YACD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QACH,IAAI,cAAc,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,2BAA2B,cAAc,CAAC,MAAM,IAAI,MAAM,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACrG,CAAC;QACD,OAAO;YACL,EAAE,EAAE,gBAAgB,CAAC,EAAE;YACvB,IAAI,EAAE,gBAAgB,CAAC,IAAI;YAC3B,iBAAiB,EAAE,gBAAgB,CAAC,iBAAiB;YACrD,GAAG;SACJ,CAAC;IACJ,CAAC;CACF"} |
@@ -0,1 +1,5 @@ | ||
| import { basename } from 'path'; | ||
| import { createHash } from 'crypto'; | ||
| import { promises as fs } from 'fs'; | ||
| import { RequestOptions } from '../internal/request-options'; | ||
@@ -28,11 +32,10 @@ import { Assets as GeneratedAssets } from './assets'; | ||
| ): Promise<AssetGetOrUploadResponse> { | ||
| const { crypto, fs, path } = globalThis as any; | ||
| const creationResponse = await this.getOrCreate( | ||
| { | ||
| name: body.name ?? path.basename(body.path), | ||
| name: body.name ?? basename(body.path), | ||
| }, | ||
| options, | ||
| ); | ||
| const data = await fs.promises.readFile(body.path); | ||
| const md5 = crypto.createHash('md5').update(data).digest('hex'); | ||
| const data = await fs.readFile(body.path); | ||
| const md5 = createHash('md5').update(data).digest('hex'); | ||
| if (creationResponse.md5 && creationResponse.md5 === md5) { | ||
@@ -39,0 +42,0 @@ return { |
+1
-1
@@ -1,1 +0,1 @@ | ||
| export const VERSION = '0.5.1'; // x-release-please-version | ||
| export const VERSION = '0.5.2'; // x-release-please-version |
+1
-1
@@ -1,2 +0,2 @@ | ||
| export declare const VERSION = "0.5.1"; | ||
| export declare const VERSION = "0.5.2"; | ||
| //# sourceMappingURL=version.d.mts.map |
+1
-1
@@ -1,2 +0,2 @@ | ||
| export declare const VERSION = "0.5.1"; | ||
| export declare const VERSION = "0.5.2"; | ||
| //# sourceMappingURL=version.d.ts.map |
+1
-1
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.VERSION = void 0; | ||
| exports.VERSION = '0.5.1'; // x-release-please-version | ||
| exports.VERSION = '0.5.2'; // x-release-please-version | ||
| //# sourceMappingURL=version.js.map |
+1
-1
@@ -1,2 +0,2 @@ | ||
| export const VERSION = '0.5.1'; // x-release-please-version | ||
| export const VERSION = '0.5.2'; // x-release-please-version | ||
| //# sourceMappingURL=version.mjs.map |
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
AI-detected potential code anomaly
Supply chain riskAI has identified unusual behaviors that may pose a security risk.
Found 1 instance in 1 package
AI-detected potential code anomaly
Supply chain riskAI has identified unusual behaviors that may pose a security risk.
Found 1 instance in 1 package
596851
0.15%7748
0.08%2
100%9
50%