@shirokasoke/webapi-sdk 2.9.0-beta2-0.11-pre

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.
Files changed (95) hide show
  1. package/dist/client.d.ts +576 -0
  2. package/dist/client.js +668 -0
  3. package/dist/esm/client.js +663 -0
  4. package/dist/esm/index.js +3 -0
  5. package/dist/esm/package.json +1 -0
  6. package/dist/esm/test.js +6 -0
  7. package/dist/esm/types/ae2.js +1 -0
  8. package/dist/esm/types/block.js +1 -0
  9. package/dist/esm/types/chunk.js +1 -0
  10. package/dist/esm/types/common.js +1 -0
  11. package/dist/esm/types/entity.js +1 -0
  12. package/dist/esm/types/fluid.js +1 -0
  13. package/dist/esm/types/fmp.js +1 -0
  14. package/dist/esm/types/gt5.js +1 -0
  15. package/dist/esm/types/index.js +13 -0
  16. package/dist/esm/types/item.js +1 -0
  17. package/dist/esm/types/rawInfo.js +1 -0
  18. package/dist/esm/types/recipe.js +1 -0
  19. package/dist/esm/types/threeD.js +1 -0
  20. package/dist/esm/types/world.js +1 -0
  21. package/dist/esm/validators/ae2.js +163 -0
  22. package/dist/esm/validators/block.js +85 -0
  23. package/dist/esm/validators/chunk.js +58 -0
  24. package/dist/esm/validators/common.js +28 -0
  25. package/dist/esm/validators/entity.js +117 -0
  26. package/dist/esm/validators/fluid.js +24 -0
  27. package/dist/esm/validators/fmp.js +34 -0
  28. package/dist/esm/validators/gt5.js +186 -0
  29. package/dist/esm/validators/index.js +13 -0
  30. package/dist/esm/validators/item.js +31 -0
  31. package/dist/esm/validators/rawInfo.js +25 -0
  32. package/dist/esm/validators/recipe.js +77 -0
  33. package/dist/esm/validators/threeD.js +34 -0
  34. package/dist/esm/validators/world.js +59 -0
  35. package/dist/index.d.ts +3 -0
  36. package/dist/index.js +22 -0
  37. package/dist/test.d.ts +1 -0
  38. package/dist/test.js +8 -0
  39. package/dist/types/ae2.d.ts +162 -0
  40. package/dist/types/ae2.js +2 -0
  41. package/dist/types/block.d.ts +87 -0
  42. package/dist/types/block.js +2 -0
  43. package/dist/types/chunk.d.ts +57 -0
  44. package/dist/types/chunk.js +2 -0
  45. package/dist/types/common.d.ts +27 -0
  46. package/dist/types/common.js +2 -0
  47. package/dist/types/entity.d.ts +114 -0
  48. package/dist/types/entity.js +2 -0
  49. package/dist/types/fluid.d.ts +23 -0
  50. package/dist/types/fluid.js +2 -0
  51. package/dist/types/fmp.d.ts +33 -0
  52. package/dist/types/fmp.js +2 -0
  53. package/dist/types/gt5.d.ts +210 -0
  54. package/dist/types/gt5.js +2 -0
  55. package/dist/types/index.d.ts +13 -0
  56. package/dist/types/index.js +29 -0
  57. package/dist/types/item.d.ts +38 -0
  58. package/dist/types/item.js +2 -0
  59. package/dist/types/rawInfo.d.ts +25 -0
  60. package/dist/types/rawInfo.js +2 -0
  61. package/dist/types/recipe.d.ts +114 -0
  62. package/dist/types/recipe.js +2 -0
  63. package/dist/types/threeD.d.ts +43 -0
  64. package/dist/types/threeD.js +2 -0
  65. package/dist/types/world.d.ts +58 -0
  66. package/dist/types/world.js +2 -0
  67. package/dist/validators/ae2.d.ts +63 -0
  68. package/dist/validators/ae2.js +169 -0
  69. package/dist/validators/block.d.ts +12 -0
  70. package/dist/validators/block.js +91 -0
  71. package/dist/validators/chunk.d.ts +9 -0
  72. package/dist/validators/chunk.js +64 -0
  73. package/dist/validators/common.d.ts +8 -0
  74. package/dist/validators/common.js +36 -0
  75. package/dist/validators/entity.d.ts +9 -0
  76. package/dist/validators/entity.js +123 -0
  77. package/dist/validators/fluid.d.ts +4 -0
  78. package/dist/validators/fluid.js +30 -0
  79. package/dist/validators/fmp.d.ts +4 -0
  80. package/dist/validators/fmp.js +40 -0
  81. package/dist/validators/gt5.d.ts +24 -0
  82. package/dist/validators/gt5.js +192 -0
  83. package/dist/validators/index.d.ts +13 -0
  84. package/dist/validators/index.js +29 -0
  85. package/dist/validators/item.d.ts +13 -0
  86. package/dist/validators/item.js +37 -0
  87. package/dist/validators/rawInfo.d.ts +6 -0
  88. package/dist/validators/rawInfo.js +31 -0
  89. package/dist/validators/recipe.d.ts +30 -0
  90. package/dist/validators/recipe.js +83 -0
  91. package/dist/validators/threeD.d.ts +8 -0
  92. package/dist/validators/threeD.js +40 -0
  93. package/dist/validators/world.d.ts +5 -0
  94. package/dist/validators/world.js +65 -0
  95. package/package.json +49 -0
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.GTRecipesResultSchema = exports.GTRecipeSchema = exports.RecipeFluidStackSchema = exports.GTRecipeMapSchema = exports.FurnaceRecipesResultSchema = exports.FurnaceRecipeSchema = exports.CraftingRecipesResultSchema = exports.CraftingRecipeSchema = exports.RecipeIngredientSchema = exports.RecipeItemStackLooseSchema = exports.RecipeItemStackSchema = void 0;
7
+ const joi_1 = __importDefault(require("joi"));
8
+ const fluid_1 = require("./fluid");
9
+ const item_1 = require("./item");
10
+ /** 带 stackSize 的物品堆(配方中始终输出 stackSize) */
11
+ exports.RecipeItemStackSchema = item_1.ItemStackSchema.append({ stackSize: joi_1.default.number().required() });
12
+ /** 带 stackSize 的物品堆,但也允许缺失(用于 query 回显等场景) */
13
+ exports.RecipeItemStackLooseSchema = item_1.ItemStackSchema.append({ stackSize: joi_1.default.number().optional() });
14
+ exports.RecipeIngredientSchema = joi_1.default.object({
15
+ ores: joi_1.default.array().items(joi_1.default.string()).optional(),
16
+ items: joi_1.default.array().items(exports.RecipeItemStackSchema).required(),
17
+ });
18
+ exports.CraftingRecipeSchema = joi_1.default.object({
19
+ recipeClass: joi_1.default.string().required(),
20
+ type: joi_1.default.valid("shaped", "shapeless", "unknown").required(),
21
+ shapeless: joi_1.default.boolean().required(),
22
+ width: joi_1.default.number().optional(),
23
+ height: joi_1.default.number().optional(),
24
+ grid: joi_1.default.array().items(joi_1.default.array().items(joi_1.default.alternatives(exports.RecipeIngredientSchema, joi_1.default.valid(null)))).optional(),
25
+ ingredients: joi_1.default.array().items(exports.RecipeIngredientSchema).optional(),
26
+ output: joi_1.default.alternatives(exports.RecipeItemStackSchema, joi_1.default.valid(null)).required(),
27
+ });
28
+ exports.CraftingRecipesResultSchema = joi_1.default.object({
29
+ type: joi_1.default.valid("crafting").required(),
30
+ queryType: joi_1.default.valid("output", "input").required(),
31
+ count: joi_1.default.number().required(),
32
+ offset: joi_1.default.number().required(),
33
+ total: joi_1.default.number().optional(),
34
+ query: exports.RecipeItemStackLooseSchema.optional(),
35
+ recipes: joi_1.default.array().items(exports.CraftingRecipeSchema).required(),
36
+ });
37
+ exports.FurnaceRecipeSchema = joi_1.default.object({
38
+ input: exports.RecipeItemStackSchema.required(),
39
+ output: exports.RecipeItemStackSchema.required(),
40
+ });
41
+ exports.FurnaceRecipesResultSchema = joi_1.default.object({
42
+ type: joi_1.default.valid("furnace").required(),
43
+ queryType: joi_1.default.valid("output", "input").required(),
44
+ count: joi_1.default.number().required(),
45
+ offset: joi_1.default.number().required(),
46
+ query: exports.RecipeItemStackLooseSchema.optional(),
47
+ recipes: joi_1.default.array().items(exports.FurnaceRecipeSchema).required(),
48
+ });
49
+ exports.GTRecipeMapSchema = joi_1.default.object({
50
+ unlocalizedName: joi_1.default.string().required(),
51
+ name: joi_1.default.string().required(),
52
+ });
53
+ /** 配方中的流体堆,附加 amount */
54
+ exports.RecipeFluidStackSchema = fluid_1.FluidSchema.append({ amount: joi_1.default.number().required() });
55
+ const GTRecipeIOItemsSchema = joi_1.default.array().items(joi_1.default.alternatives(exports.RecipeItemStackSchema, joi_1.default.valid(null))).required();
56
+ const GTRecipeIOFluidsSchema = joi_1.default.array().items(joi_1.default.alternatives(exports.RecipeFluidStackSchema, joi_1.default.valid(null))).required();
57
+ exports.GTRecipeSchema = joi_1.default.object({
58
+ recipeMap: joi_1.default.string().required(),
59
+ recipeMapName: joi_1.default.string().required(),
60
+ duration: joi_1.default.number().required(),
61
+ eut: joi_1.default.number().required(),
62
+ amperage: joi_1.default.number().required(),
63
+ specialValue: joi_1.default.number().required(),
64
+ enabled: joi_1.default.boolean().required(),
65
+ hidden: joi_1.default.boolean().required(),
66
+ fake: joi_1.default.boolean().required(),
67
+ inputs: joi_1.default.object({ items: GTRecipeIOItemsSchema, fluids: GTRecipeIOFluidsSchema }).required(),
68
+ outputs: joi_1.default.object({ items: GTRecipeIOItemsSchema, fluids: GTRecipeIOFluidsSchema }).required(),
69
+ inputChances: joi_1.default.array().items(joi_1.default.number()).required(),
70
+ outputChances: joi_1.default.array().items(joi_1.default.number()).required(),
71
+ fluidInputChances: joi_1.default.array().items(joi_1.default.number()).required(),
72
+ fluidOutputChances: joi_1.default.array().items(joi_1.default.number()).required(),
73
+ });
74
+ exports.GTRecipesResultSchema = joi_1.default.object({
75
+ type: joi_1.default.valid("gt").required(),
76
+ queryType: joi_1.default.valid("output", "input").required(),
77
+ count: joi_1.default.number().required(),
78
+ offset: joi_1.default.number().required(),
79
+ map: joi_1.default.string().optional(),
80
+ query: exports.RecipeItemStackLooseSchema.optional(),
81
+ fluid: fluid_1.FluidSchema.optional(),
82
+ recipes: joi_1.default.array().items(exports.GTRecipeSchema).required(),
83
+ });
@@ -0,0 +1,8 @@
1
+ import Joi from "joi";
2
+ import type { PlayerPrintResult, PrintSizeResult, WorldPrintJobResult, WorldPrintSubmitResult } from "../types/threeD";
3
+ export declare const PlayerPrintResultSchema: Joi.ObjectSchema<PlayerPrintResult>;
4
+ export declare const WorldPrintSubmitResultSchema: Joi.ObjectSchema<WorldPrintSubmitResult>;
5
+ export declare const PrintJobStatusSchema: Joi.Schema<any>;
6
+ export declare const WorldPrintFailureSchema: Joi.ObjectSchema<any>;
7
+ export declare const WorldPrintJobResultSchema: Joi.ObjectSchema<WorldPrintJobResult>;
8
+ export declare const PrintSizeResultSchema: Joi.ObjectSchema<PrintSizeResult>;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.PrintSizeResultSchema = exports.WorldPrintJobResultSchema = exports.WorldPrintFailureSchema = exports.PrintJobStatusSchema = exports.WorldPrintSubmitResultSchema = exports.PlayerPrintResultSchema = void 0;
7
+ const joi_1 = __importDefault(require("joi"));
8
+ exports.PlayerPrintResultSchema = joi_1.default.object({
9
+ total: joi_1.default.number().required(),
10
+ added: joi_1.default.number().required(),
11
+ dropped: joi_1.default.number().required(),
12
+ });
13
+ exports.WorldPrintSubmitResultSchema = joi_1.default.object({
14
+ id: joi_1.default.string().required(),
15
+ total: joi_1.default.number().required(),
16
+ skipped: joi_1.default.number().required(),
17
+ });
18
+ exports.PrintJobStatusSchema = joi_1.default.valid("pending", "running", "completed");
19
+ exports.WorldPrintFailureSchema = joi_1.default.object({
20
+ x: joi_1.default.number().required(),
21
+ y: joi_1.default.number().required(),
22
+ z: joi_1.default.number().required(),
23
+ reason: joi_1.default.string().required(),
24
+ });
25
+ exports.WorldPrintJobResultSchema = joi_1.default.object({
26
+ id: joi_1.default.string().required(),
27
+ total: joi_1.default.number().required(),
28
+ completed: joi_1.default.number().required(),
29
+ success: joi_1.default.number().required(),
30
+ failed: joi_1.default.number().required(),
31
+ status: exports.PrintJobStatusSchema.required(),
32
+ createTime: joi_1.default.number().required(),
33
+ finishTime: joi_1.default.number().optional(),
34
+ durationMs: joi_1.default.number().optional(),
35
+ failures: joi_1.default.array().items(exports.WorldPrintFailureSchema).optional(),
36
+ failuresTruncated: joi_1.default.number().optional(),
37
+ });
38
+ exports.PrintSizeResultSchema = joi_1.default.object({
39
+ size: joi_1.default.number().required(),
40
+ });
@@ -0,0 +1,5 @@
1
+ import Joi from "joi";
2
+ export declare const TPSInfoSchema: Joi.ObjectSchema<any>;
3
+ export declare const WorldInfoDataSchema: Joi.ObjectSchema<any>;
4
+ export declare const ProfilerDataSchema: Joi.ObjectSchema<any>;
5
+ export declare const LagAnalyzerDataSchema: Joi.ObjectSchema<any>;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.LagAnalyzerDataSchema = exports.ProfilerDataSchema = exports.WorldInfoDataSchema = exports.TPSInfoSchema = void 0;
7
+ const joi_1 = __importDefault(require("joi"));
8
+ const common_1 = require("./common");
9
+ exports.TPSInfoSchema = joi_1.default.object({
10
+ WorldName: joi_1.default.string().optional(),
11
+ TickTime: joi_1.default.number().required(),
12
+ TPS: joi_1.default.number().required(),
13
+ });
14
+ exports.WorldInfoDataSchema = joi_1.default.object({
15
+ WorldServerClass: common_1.ClassInfoSchema.optional(),
16
+ WorldInfoClass: common_1.ClassInfoSchema.optional(),
17
+ WorldInfo: joi_1.default.object().unknown().required(),
18
+ });
19
+ exports.ProfilerDataSchema = joi_1.default.object({
20
+ server: joi_1.default.object({
21
+ totalMemoryMB: joi_1.default.number().required(),
22
+ freeMemoryMB: joi_1.default.number().required(),
23
+ maxMemoryMB: joi_1.default.number().required(),
24
+ }).required(),
25
+ dimensions: joi_1.default.object().pattern(joi_1.default.string(), joi_1.default.object({
26
+ name: joi_1.default.string().required(),
27
+ loadedChunks: joi_1.default.number().required(),
28
+ totalEntities: joi_1.default.number().required(),
29
+ totalTileEntities: joi_1.default.number().required(),
30
+ laggyChunks: joi_1.default.array().items(joi_1.default.object({
31
+ chunkX: joi_1.default.number().required(),
32
+ chunkZ: joi_1.default.number().required(),
33
+ entityCount: joi_1.default.number().required(),
34
+ })).required(),
35
+ })).required(),
36
+ profiler: joi_1.default.object({
37
+ enabled: joi_1.default.boolean().required(),
38
+ }).required(),
39
+ });
40
+ exports.LagAnalyzerDataSchema = joi_1.default.object({
41
+ entities: joi_1.default.object({
42
+ byType: joi_1.default.array().items(joi_1.default.object({
43
+ name: joi_1.default.string().required(),
44
+ count: joi_1.default.number().required(),
45
+ items: joi_1.default.number().required(),
46
+ xpOrbs: joi_1.default.number().required(),
47
+ })).required(),
48
+ byDimension: joi_1.default.object().pattern(joi_1.default.string(), joi_1.default.number()).required(),
49
+ }).required(),
50
+ tileEntities: joi_1.default.object({
51
+ byType: joi_1.default.array().items(joi_1.default.object({
52
+ name: joi_1.default.string().required(),
53
+ count: joi_1.default.number().required(),
54
+ samplePositions: joi_1.default.array().items(joi_1.default.string()).required(),
55
+ })).required(),
56
+ byDimension: joi_1.default.object().pattern(joi_1.default.string(), joi_1.default.number()).required(),
57
+ }).required(),
58
+ memory: joi_1.default.object({
59
+ totalMB: joi_1.default.number().required(),
60
+ freeMB: joi_1.default.number().required(),
61
+ usedMB: joi_1.default.number().required(),
62
+ maxMB: joi_1.default.number().required(),
63
+ availableProcessors: joi_1.default.number().required(),
64
+ }).required(),
65
+ });
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "@shirokasoke/webapi-sdk",
3
+ "version": "2.9.0-beta2-0.11-pre",
4
+ "private": false,
5
+ "description": "TypeScript SDK for the love.shirokasoke.WebAPI Minecraft Mod",
6
+ "main": "./dist/index.js",
7
+ "module": "./dist/index.mjs",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": {
12
+ "types": "./dist/index.d.ts",
13
+ "default": "./dist/esm/index.js"
14
+ },
15
+ "require": {
16
+ "types": "./dist/index.d.ts",
17
+ "default": "./dist/index.js"
18
+ }
19
+ }
20
+ },
21
+ "files": [
22
+ "dist"
23
+ ],
24
+ "sideEffects": false,
25
+ "scripts": {
26
+ "build": "npm run build:cjs && npm run build:esm",
27
+ "build:cjs": "tsc -p tsconfig.json",
28
+ "build:esm": "tsc -p tsconfig.esm.json && echo '{\"type\": \"module\"}' > dist/esm/package.json",
29
+ "test": "tsx --test test/*.test.ts"
30
+ },
31
+ "keywords": [
32
+ "gtnh",
33
+ "minecraft",
34
+ "webapi",
35
+ "mod",
36
+ "sdk"
37
+ ],
38
+ "author": "Rcrwrate",
39
+ "license": "MIT",
40
+ "devDependencies": {
41
+ "@types/node": "^25.9.0",
42
+ "tsx": "^4.22.1",
43
+ "typescript": "^5.4.0"
44
+ },
45
+ "dependencies": {
46
+ "@microsoft/fetch-event-source": "^2.0.1",
47
+ "joi": "^18.2.1"
48
+ }
49
+ }