@rsdoctor/sdk 1.6.3 → 1.6.4

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.cjs CHANGED
@@ -6568,41 +6568,6 @@ var __webpack_modules__ = {
6568
6568
  return firstPkgDir || null;
6569
6569
  }
6570
6570
  __webpack_require__.n(dayjs_index_js_namespaceObject)()().format('YYYYMMDD');
6571
- var promises_ = __webpack_require__("node:fs/promises"), promises_default = __webpack_require__.n(promises_);
6572
- let external_node_stream_namespaceObject = require("node:stream");
6573
- var external_node_zlib_ = __webpack_require__("node:zlib");
6574
- async function writeManifestShards(jsonFragments, folder, options = {}) {
6575
- if (0 === jsonFragments.length) throw Error('Cannot write empty JSON fragments.');
6576
- let { index = 0, shardSize = 10485760 } = options;
6577
- if (!Number.isSafeInteger(shardSize) || shardSize <= 0) throw Error('Manifest shard size must be a positive integer.');
6578
- await promises_default().mkdir(folder, {
6579
- recursive: !0
6580
- });
6581
- let files = [], shardParts = [], shardLength = 0, flushShard = async ()=>{
6582
- if (0 === shardLength) return;
6583
- let basename = String(index + files.length), filePath = external_node_path_default().resolve(folder, basename);
6584
- await promises_default().writeFile(filePath, shardParts.join(''), 'utf8'), files.push({
6585
- path: filePath,
6586
- basename
6587
- }), shardParts = [], shardLength = 0;
6588
- }, appendEncodedText = async (encodedText)=>{
6589
- let offset = 0;
6590
- for(; offset < encodedText.length;){
6591
- let length = Math.min(shardSize - shardLength, encodedText.length - offset);
6592
- shardParts.push(encodedText.slice(offset, offset + length)), shardLength += length, offset += length, shardLength === shardSize && await flushShard();
6593
- }
6594
- }, compressor = external_node_stream_namespaceObject.Readable.from(jsonFragments, {
6595
- objectMode: !1
6596
- }).pipe((0, external_node_zlib_.createDeflate)()), base64Remainder = Buffer.alloc(0);
6597
- for await (let chunk of compressor){
6598
- let compressedChunk = Buffer.from(chunk), bytes = base64Remainder.length ? Buffer.concat([
6599
- base64Remainder,
6600
- compressedChunk
6601
- ]) : compressedChunk, encodableLength = bytes.length - bytes.length % 3;
6602
- encodableLength > 0 && await appendEncodedText(bytes.subarray(0, encodableLength).toString('base64')), base64Remainder = Buffer.from(bytes.subarray(encodableLength));
6603
- }
6604
- return base64Remainder.length > 0 && await appendEncodedText(base64Remainder.toString('base64')), await flushShard(), files;
6605
- }
6606
6571
  class SDKCore {
6607
6572
  constructor({ name, root }){
6608
6573
  this.hooks = {
@@ -6689,21 +6654,20 @@ var __webpack_modules__ = {
6689
6654
  return build_namespaceObject.Json.stringify(data);
6690
6655
  }
6691
6656
  })();
6692
- Array.isArray(jsonStr) ? urlsPromiseList.push(this.writeJsonFragmentsToFolder(jsonStr, outputDir, key)) : urlsPromiseList.push(this.writeToFolder(jsonStr, outputDir, key));
6657
+ if (Array.isArray(jsonStr)) {
6658
+ let fileOffset = 0;
6659
+ for (let str of jsonStr){
6660
+ let result = await this.writeToFolder(str, outputDir, key, fileOffset);
6661
+ fileOffset += result.files.length, urlsPromiseList.push(result);
6662
+ }
6663
+ } else urlsPromiseList.push(this.writeToFolder(jsonStr, outputDir, key));
6693
6664
  }
6694
6665
  let dataUrls = await Promise.all(urlsPromiseList);
6695
6666
  logger_namespaceObject.logger.debug(`SDKCore.writePieces extraConfig: ${JSON.stringify(this.extraConfig)}`, '[SDKCore.writePieces]'), this.cloudData = {
6696
6667
  client: {
6697
6668
  enableRoutes: this.getClientRoutes()
6698
6669
  },
6699
- data: dataUrls.reduce((t, item)=>{
6700
- if (!Array.isArray(item.files)) return t[item.name] = item.files, t;
6701
- let previous = t[item.name];
6702
- return t[item.name] = [
6703
- ...Array.isArray(previous) ? previous : [],
6704
- ...item.files.map((e)=>e.path)
6705
- ], t;
6706
- }, {})
6670
+ data: dataUrls.reduce((t, item)=>(t[item.name] = Array.isArray(item.files) ? item.files.map((e)=>e.path).concat(t[item.name] || []) : item.files, t), {})
6707
6671
  };
6708
6672
  }
6709
6673
  async writeManifest() {
@@ -6721,19 +6685,15 @@ var __webpack_modules__ = {
6721
6685
  }), manifestDiskPath;
6722
6686
  }
6723
6687
  writeToFolder(jsonStr, dir, key, index) {
6724
- return this.writeJsonFragmentsToFolder([
6725
- jsonStr
6726
- ], dir, key, index);
6727
- }
6728
- async writeJsonFragmentsToFolder(jsonFragments, dir, key, index) {
6729
- if (0 === jsonFragments.length) throw Error(`Cannot write empty JSON fragments for "${key}".`);
6730
- let folder = external_node_path_default().resolve(dir, key);
6731
- return {
6732
- name: key,
6733
- files: await writeManifestShards(jsonFragments, folder, {
6734
- index
6735
- })
6736
- };
6688
+ let sharding = new build_namespaceObject.File.FileSharding(common_namespaceObject.Algorithm.compressText(jsonStr)), folder = external_node_path_default().resolve(dir, key);
6689
+ return sharding.writeStringToFolder(folder, '', index).then((item)=>({
6690
+ name: key,
6691
+ files: item.map((el)=>({
6692
+ path: external_node_path_default().resolve(folder, el.filename),
6693
+ basename: el.filename,
6694
+ content: el.content
6695
+ }))
6696
+ }));
6737
6697
  }
6738
6698
  }
6739
6699
  let sdk_require = (0, external_module_namespaceObject.createRequire)(__rslib_import_meta_url__);
package/dist/index.js CHANGED
@@ -27,9 +27,6 @@ import { randomBytes } from "crypto";
27
27
  import node_process from "node:process";
28
28
  import { AsyncSeriesHook } from "tapable";
29
29
  import dayjs from "../compiled/dayjs/index.js";
30
- import node_fs_promises from "node:fs/promises";
31
- import { Readable } from "node:stream";
32
- import { createDeflate } from "node:zlib";
33
30
  import { __webpack_require__ } from "./612.js";
34
31
  import { fileURLToPath as __rspack_fileURLToPath } from "node:url";
35
32
  let __rspack_createRequire_require = __rspack_createRequire(import.meta.url);
@@ -58,7 +55,7 @@ __webpack_require__.add({
58
55
  });
59
56
  },
60
57
  "../../node_modules/.pnpm/body-parser@2.2.2/node_modules/body-parser/lib/read.js" (module, __unused_rspack_exports, __webpack_require__) {
61
- var createError = __webpack_require__("../../node_modules/.pnpm/http-errors@2.0.1/node_modules/http-errors/index.js"), getBody = __webpack_require__("../../node_modules/.pnpm/raw-body@3.0.2/node_modules/raw-body/index.js"), iconv = __webpack_require__("../../node_modules/.pnpm/iconv-lite@0.7.0/node_modules/iconv-lite/lib/index.js"), onFinished = __webpack_require__("../../node_modules/.pnpm/on-finished@2.4.1/node_modules/on-finished/index.js"), zlib = __webpack_require__("node:zlib?1e70"), hasBody = __webpack_require__("../../node_modules/.pnpm/type-is@2.0.1/node_modules/type-is/index.js").hasBody, { getCharset } = __webpack_require__("../../node_modules/.pnpm/body-parser@2.2.2/node_modules/body-parser/lib/utils.js");
58
+ var createError = __webpack_require__("../../node_modules/.pnpm/http-errors@2.0.1/node_modules/http-errors/index.js"), getBody = __webpack_require__("../../node_modules/.pnpm/raw-body@3.0.2/node_modules/raw-body/index.js"), iconv = __webpack_require__("../../node_modules/.pnpm/iconv-lite@0.7.0/node_modules/iconv-lite/lib/index.js"), onFinished = __webpack_require__("../../node_modules/.pnpm/on-finished@2.4.1/node_modules/on-finished/index.js"), zlib = __webpack_require__("node:zlib"), hasBody = __webpack_require__("../../node_modules/.pnpm/type-is@2.0.1/node_modules/type-is/index.js").hasBody, { getCharset } = __webpack_require__("../../node_modules/.pnpm/body-parser@2.2.2/node_modules/body-parser/lib/utils.js");
62
59
  module.exports = function(req, res, next, parse, debug, options) {
63
60
  if (onFinished.isFinished(req)) {
64
61
  debug('body already parsed'), next();
@@ -5133,7 +5130,7 @@ __webpack_require__.add({
5133
5130
  "fs?8b28" (module) {
5134
5131
  module.exports = __rspack_createRequire_require("fs");
5135
5132
  },
5136
- "node:zlib?1e70" (module) {
5133
+ "node:zlib" (module) {
5137
5134
  module.exports = __rspack_createRequire_require("node:zlib");
5138
5135
  },
5139
5136
  "os?da1a" (module) {
@@ -6563,38 +6560,6 @@ function findRoot(startDir = process.cwd()) {
6563
6560
  }
6564
6561
  return firstPkgDir || null;
6565
6562
  }
6566
- async function writeManifestShards(jsonFragments, folder, options = {}) {
6567
- if (0 === jsonFragments.length) throw Error('Cannot write empty JSON fragments.');
6568
- let { index = 0, shardSize = 10485760 } = options;
6569
- if (!Number.isSafeInteger(shardSize) || shardSize <= 0) throw Error('Manifest shard size must be a positive integer.');
6570
- await node_fs_promises.mkdir(folder, {
6571
- recursive: !0
6572
- });
6573
- let files = [], shardParts = [], shardLength = 0, flushShard = async ()=>{
6574
- if (0 === shardLength) return;
6575
- let basename = String(index + files.length), filePath = node_path.resolve(folder, basename);
6576
- await node_fs_promises.writeFile(filePath, shardParts.join(''), 'utf8'), files.push({
6577
- path: filePath,
6578
- basename
6579
- }), shardParts = [], shardLength = 0;
6580
- }, appendEncodedText = async (encodedText)=>{
6581
- let offset = 0;
6582
- for(; offset < encodedText.length;){
6583
- let length = Math.min(shardSize - shardLength, encodedText.length - offset);
6584
- shardParts.push(encodedText.slice(offset, offset + length)), shardLength += length, offset += length, shardLength === shardSize && await flushShard();
6585
- }
6586
- }, compressor = Readable.from(jsonFragments, {
6587
- objectMode: !1
6588
- }).pipe(createDeflate()), base64Remainder = Buffer.alloc(0);
6589
- for await (let chunk of compressor){
6590
- let compressedChunk = Buffer.from(chunk), bytes = base64Remainder.length ? Buffer.concat([
6591
- base64Remainder,
6592
- compressedChunk
6593
- ]) : compressedChunk, encodableLength = bytes.length - bytes.length % 3;
6594
- encodableLength > 0 && await appendEncodedText(bytes.subarray(0, encodableLength).toString('base64')), base64Remainder = Buffer.from(bytes.subarray(encodableLength));
6595
- }
6596
- return base64Remainder.length > 0 && await appendEncodedText(base64Remainder.toString('base64')), await flushShard(), files;
6597
- }
6598
6563
  dayjs().format('YYYYMMDD');
6599
6564
  class SDKCore {
6600
6565
  constructor({ name, root }){
@@ -6682,21 +6647,20 @@ class SDKCore {
6682
6647
  return Json.stringify(data);
6683
6648
  }
6684
6649
  })();
6685
- Array.isArray(jsonStr) ? urlsPromiseList.push(this.writeJsonFragmentsToFolder(jsonStr, outputDir, key)) : urlsPromiseList.push(this.writeToFolder(jsonStr, outputDir, key));
6650
+ if (Array.isArray(jsonStr)) {
6651
+ let fileOffset = 0;
6652
+ for (let str of jsonStr){
6653
+ let result = await this.writeToFolder(str, outputDir, key, fileOffset);
6654
+ fileOffset += result.files.length, urlsPromiseList.push(result);
6655
+ }
6656
+ } else urlsPromiseList.push(this.writeToFolder(jsonStr, outputDir, key));
6686
6657
  }
6687
6658
  let dataUrls = await Promise.all(urlsPromiseList);
6688
6659
  logger.debug(`SDKCore.writePieces extraConfig: ${JSON.stringify(this.extraConfig)}`, '[SDKCore.writePieces]'), this.cloudData = {
6689
6660
  client: {
6690
6661
  enableRoutes: this.getClientRoutes()
6691
6662
  },
6692
- data: dataUrls.reduce((t, item)=>{
6693
- if (!Array.isArray(item.files)) return t[item.name] = item.files, t;
6694
- let previous = t[item.name];
6695
- return t[item.name] = [
6696
- ...Array.isArray(previous) ? previous : [],
6697
- ...item.files.map((e)=>e.path)
6698
- ], t;
6699
- }, {})
6663
+ data: dataUrls.reduce((t, item)=>(t[item.name] = Array.isArray(item.files) ? item.files.map((e)=>e.path).concat(t[item.name] || []) : item.files, t), {})
6700
6664
  };
6701
6665
  }
6702
6666
  async writeManifest() {
@@ -6714,19 +6678,15 @@ class SDKCore {
6714
6678
  }), manifestDiskPath;
6715
6679
  }
6716
6680
  writeToFolder(jsonStr, dir, key, index) {
6717
- return this.writeJsonFragmentsToFolder([
6718
- jsonStr
6719
- ], dir, key, index);
6720
- }
6721
- async writeJsonFragmentsToFolder(jsonFragments, dir, key, index) {
6722
- if (0 === jsonFragments.length) throw Error(`Cannot write empty JSON fragments for "${key}".`);
6723
- let folder = node_path.resolve(dir, key);
6724
- return {
6725
- name: key,
6726
- files: await writeManifestShards(jsonFragments, folder, {
6727
- index
6728
- })
6729
- };
6681
+ let sharding = new File.FileSharding(Algorithm.compressText(jsonStr)), folder = node_path.resolve(dir, key);
6682
+ return sharding.writeStringToFolder(folder, '', index).then((item)=>({
6683
+ name: key,
6684
+ files: item.map((el)=>({
6685
+ path: node_path.resolve(folder, el.filename),
6686
+ basename: el.filename,
6687
+ content: el.content
6688
+ }))
6689
+ }));
6730
6690
  }
6731
6691
  }
6732
6692
  let source_map = __webpack_require__("../../node_modules/.pnpm/source-map@0.7.6/node_modules/source-map/source-map.js"), sdk_require = createRequire(import.meta.url);
@@ -29,6 +29,5 @@ export declare abstract class SDKCore<T extends RsdoctorSDKOptions> implements S
29
29
  protected writeManifest(): Promise<string>;
30
30
  saveManifest(data: Common.PlainObject, options: SDK.WriteStoreOptionsType): Promise<string>;
31
31
  protected writeToFolder(jsonStr: string, dir: string, key: string, index?: number): Promise<DataWithUrl>;
32
- protected writeJsonFragmentsToFolder(jsonFragments: string[], dir: string, key: string, index?: number): Promise<DataWithUrl>;
33
32
  abstract onDataReport(): void | Promise<void>;
34
33
  }
@@ -29,6 +29,5 @@ export declare abstract class SDKCore<T extends RsdoctorSDKOptions> implements S
29
29
  protected writeManifest(): Promise<string>;
30
30
  saveManifest(data: Common.PlainObject, options: SDK.WriteStoreOptionsType): Promise<string>;
31
31
  protected writeToFolder(jsonStr: string, dir: string, key: string, index?: number): Promise<DataWithUrl>;
32
- protected writeJsonFragmentsToFolder(jsonFragments: string[], dir: string, key: string, index?: number): Promise<DataWithUrl>;
33
32
  abstract onDataReport(): void | Promise<void>;
34
33
  }
@@ -4,7 +4,7 @@ export interface DataWithUrl {
4
4
  files: {
5
5
  path: string;
6
6
  basename: string;
7
- content?: Buffer;
7
+ content: Buffer;
8
8
  }[] | string;
9
9
  }
10
10
  export interface RsdoctorSDKOptions {
@@ -4,7 +4,7 @@ export interface DataWithUrl {
4
4
  files: {
5
5
  path: string;
6
6
  basename: string;
7
- content?: Buffer;
7
+ content: Buffer;
8
8
  }[] | string;
9
9
  }
10
10
  export interface RsdoctorSDKOptions {
@@ -1,4 +1,3 @@
1
1
  export * from './constant';
2
2
  export * from './base';
3
3
  export * from './upload';
4
- export * from './manifestSharding';
@@ -1,4 +1,3 @@
1
1
  export * from './constant.js';
2
2
  export * from './base.js';
3
3
  export * from './upload.js';
4
- export * from './manifestSharding.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rsdoctor/sdk",
3
- "version": "1.6.3",
3
+ "version": "1.6.4",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/web-infra-dev/rsdoctor",
@@ -32,10 +32,10 @@
32
32
  "safer-buffer": "2.1.2",
33
33
  "socket.io": "4.8.1",
34
34
  "tapable": "2.3.3",
35
- "@rsdoctor/client": "1.6.3",
36
- "@rsdoctor/graph": "1.6.3",
37
- "@rsdoctor/types": "1.6.3",
38
- "@rsdoctor/utils": "1.6.3"
35
+ "@rsdoctor/client": "1.6.4",
36
+ "@rsdoctor/utils": "1.6.4",
37
+ "@rsdoctor/types": "1.6.4",
38
+ "@rsdoctor/graph": "1.6.4"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@types/body-parser": "1.19.6",
@@ -1,15 +0,0 @@
1
- export declare const DEFAULT_MANIFEST_SHARD_SIZE: number;
2
- interface WriteManifestShardsOptions {
3
- index?: number;
4
- shardSize?: number;
5
- }
6
- export interface ManifestShardFile {
7
- path: string;
8
- basename: string;
9
- }
10
- /**
11
- * Compress JSON fragments as one deflate stream, encode that stream as one
12
- * continuous Base64 value, and write bounded physical shards.
13
- */
14
- export declare function writeManifestShards(jsonFragments: string[], folder: string, options?: WriteManifestShardsOptions): Promise<ManifestShardFile[]>;
15
- export {};
@@ -1,15 +0,0 @@
1
- export declare const DEFAULT_MANIFEST_SHARD_SIZE: number;
2
- interface WriteManifestShardsOptions {
3
- index?: number;
4
- shardSize?: number;
5
- }
6
- export interface ManifestShardFile {
7
- path: string;
8
- basename: string;
9
- }
10
- /**
11
- * Compress JSON fragments as one deflate stream, encode that stream as one
12
- * continuous Base64 value, and write bounded physical shards.
13
- */
14
- export declare function writeManifestShards(jsonFragments: string[], folder: string, options?: WriteManifestShardsOptions): Promise<ManifestShardFile[]>;
15
- export {};