@shirokasoke/webapi-sdk 2.9.0-bete2-0.6-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 (83) hide show
  1. package/dist/client.d.ts +400 -0
  2. package/dist/client.js +462 -0
  3. package/dist/esm/client.js +457 -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 +11 -0
  16. package/dist/esm/types/item.js +1 -0
  17. package/dist/esm/types/rawInfo.js +1 -0
  18. package/dist/esm/types/world.js +1 -0
  19. package/dist/esm/validators/ae2.js +138 -0
  20. package/dist/esm/validators/block.js +85 -0
  21. package/dist/esm/validators/chunk.js +58 -0
  22. package/dist/esm/validators/common.js +28 -0
  23. package/dist/esm/validators/entity.js +117 -0
  24. package/dist/esm/validators/fluid.js +24 -0
  25. package/dist/esm/validators/fmp.js +34 -0
  26. package/dist/esm/validators/gt5.js +186 -0
  27. package/dist/esm/validators/index.js +11 -0
  28. package/dist/esm/validators/item.js +32 -0
  29. package/dist/esm/validators/rawInfo.js +25 -0
  30. package/dist/esm/validators/world.js +59 -0
  31. package/dist/index.d.ts +3 -0
  32. package/dist/index.js +22 -0
  33. package/dist/test.d.ts +1 -0
  34. package/dist/test.js +8 -0
  35. package/dist/types/ae2.d.ts +142 -0
  36. package/dist/types/ae2.js +2 -0
  37. package/dist/types/block.d.ts +87 -0
  38. package/dist/types/block.js +2 -0
  39. package/dist/types/chunk.d.ts +57 -0
  40. package/dist/types/chunk.js +2 -0
  41. package/dist/types/common.d.ts +27 -0
  42. package/dist/types/common.js +2 -0
  43. package/dist/types/entity.d.ts +114 -0
  44. package/dist/types/entity.js +2 -0
  45. package/dist/types/fluid.d.ts +23 -0
  46. package/dist/types/fluid.js +2 -0
  47. package/dist/types/fmp.d.ts +33 -0
  48. package/dist/types/fmp.js +2 -0
  49. package/dist/types/gt5.d.ts +210 -0
  50. package/dist/types/gt5.js +2 -0
  51. package/dist/types/index.d.ts +11 -0
  52. package/dist/types/index.js +27 -0
  53. package/dist/types/item.d.ts +39 -0
  54. package/dist/types/item.js +2 -0
  55. package/dist/types/rawInfo.d.ts +25 -0
  56. package/dist/types/rawInfo.js +2 -0
  57. package/dist/types/world.d.ts +58 -0
  58. package/dist/types/world.js +2 -0
  59. package/dist/validators/ae2.d.ts +55 -0
  60. package/dist/validators/ae2.js +144 -0
  61. package/dist/validators/block.d.ts +12 -0
  62. package/dist/validators/block.js +91 -0
  63. package/dist/validators/chunk.d.ts +9 -0
  64. package/dist/validators/chunk.js +64 -0
  65. package/dist/validators/common.d.ts +8 -0
  66. package/dist/validators/common.js +36 -0
  67. package/dist/validators/entity.d.ts +9 -0
  68. package/dist/validators/entity.js +123 -0
  69. package/dist/validators/fluid.d.ts +4 -0
  70. package/dist/validators/fluid.js +30 -0
  71. package/dist/validators/fmp.d.ts +4 -0
  72. package/dist/validators/fmp.js +40 -0
  73. package/dist/validators/gt5.d.ts +24 -0
  74. package/dist/validators/gt5.js +192 -0
  75. package/dist/validators/index.d.ts +11 -0
  76. package/dist/validators/index.js +27 -0
  77. package/dist/validators/item.d.ts +14 -0
  78. package/dist/validators/item.js +38 -0
  79. package/dist/validators/rawInfo.d.ts +6 -0
  80. package/dist/validators/rawInfo.js +31 -0
  81. package/dist/validators/world.d.ts +5 -0
  82. package/dist/validators/world.js +65 -0
  83. package/package.json +48 -0
package/dist/index.js ADDED
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.WebApiError = exports.WebApiClient = void 0;
18
+ var client_1 = require("./client");
19
+ Object.defineProperty(exports, "WebApiClient", { enumerable: true, get: function () { return client_1.WebApiClient; } });
20
+ Object.defineProperty(exports, "WebApiError", { enumerable: true, get: function () { return client_1.WebApiError; } });
21
+ __exportStar(require("./types"), exports);
22
+ __exportStar(require("./validators"), exports);
package/dist/test.d.ts ADDED
@@ -0,0 +1 @@
1
+ export {};
package/dist/test.js ADDED
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const client_1 = require("./client");
4
+ const api = new client_1.WebApiClient({ baseUrl: "http://localhost:40002" });
5
+ (async () => {
6
+ const r = await api.loadChunk({ x: 10000, z: 66666, dim: -1 });
7
+ console.log(r);
8
+ })();
@@ -0,0 +1,142 @@
1
+ import type { ClassInfo } from "./common";
2
+ import type { Fluid } from "./fluid";
3
+ import type { ItemStack } from "./item";
4
+ /** AE 堆(物品或流体),由服务端 Pattern.dumpAEStack 导出,count 表示该物品/流体的总数量 */
5
+ export type AEStack = (ItemStack | Fluid) & {
6
+ count: number;
7
+ };
8
+ export interface AEStackProviders {
9
+ providers: Array<{
10
+ x: number;
11
+ y: number;
12
+ z: number;
13
+ dimension: number;
14
+ }>;
15
+ }
16
+ export interface AENode {
17
+ active: boolean;
18
+ meetsChannel: boolean;
19
+ playerID: number;
20
+ machineClass?: ClassInfo;
21
+ isPart: boolean;
22
+ isIActionHost: boolean;
23
+ location?: {
24
+ x: number;
25
+ y: number;
26
+ z: number;
27
+ dimension: number;
28
+ };
29
+ idlePowerUsage: number;
30
+ flags: string[];
31
+ }
32
+ export interface AE2Pattern extends ItemStack {
33
+ crafting: boolean;
34
+ substitute: boolean;
35
+ beSubstitute: boolean;
36
+ author?: string;
37
+ inputs?: (ItemStack | null)[];
38
+ outputs?: (ItemStack | null)[];
39
+ isCraftable?: boolean;
40
+ priority?: number;
41
+ canSubstitute?: boolean;
42
+ canBeSubstitute?: boolean;
43
+ condensedInputs?: AEStack[];
44
+ condensedOutputs?: AEStack[];
45
+ patternParseError?: string;
46
+ }
47
+ export interface AECPU {
48
+ name: string;
49
+ busy: boolean;
50
+ availableStorage: number;
51
+ usedStorage: number;
52
+ coProcessors: number;
53
+ remainingItemCount: number;
54
+ startItemCount: number;
55
+ elapsedTime: number;
56
+ craftingAllowMode: string;
57
+ finalOutput?: AEStack;
58
+ tasks?: Array<{
59
+ remaining: number;
60
+ inputs: AEStack[];
61
+ pattern: AE2Pattern;
62
+ outputs: Array<AEStack & AEStackProviders>;
63
+ }>;
64
+ tasking?: Array<AEStack & AEStackProviders>;
65
+ tasksError?: string;
66
+ }
67
+ export interface AEMEInterface {
68
+ display: boolean;
69
+ name: string;
70
+ rawName: string | null;
71
+ active: boolean;
72
+ allowsPatternOptimization: boolean;
73
+ playerID: number;
74
+ location: {
75
+ x: number;
76
+ y: number;
77
+ z: number;
78
+ dimension: number;
79
+ };
80
+ patterns: Array<AE2Pattern & {
81
+ slot: number;
82
+ }>;
83
+ }
84
+ export interface AECraftingTaskBody {
85
+ /** 物品 ID;当 Type 为 "fluid" 时表示流体 ID */
86
+ id: number;
87
+ /** 合成数量(流体时为 mB) */
88
+ Count: number;
89
+ /** 堆类型,缺省或非 "fluid" 时按物品处理 */
90
+ Type?: "item" | "fluid";
91
+ Damage?: number;
92
+ tag?: string;
93
+ cpu?: string;
94
+ }
95
+ export interface AECraftingTaskResult {
96
+ bytes: number;
97
+ cpu: string;
98
+ output: ItemStack & {
99
+ stackSize: number;
100
+ };
101
+ }
102
+ export interface AECPUCancelBody {
103
+ name?: string;
104
+ id?: number;
105
+ }
106
+ export interface AECPUCancelResult {
107
+ cpu: string;
108
+ wasBusy: boolean;
109
+ }
110
+ /** AE 网络库存堆:物品(type 为 "item")或流体(type 为 "fluid"),可通过 type 判别收窄 */
111
+ export type AEItemStack = (ItemStack & {
112
+ type: "item";
113
+ stackSize: number;
114
+ Craftable: boolean;
115
+ }) | (Fluid & {
116
+ type: "fluid";
117
+ stackSize: number;
118
+ Craftable: boolean;
119
+ });
120
+ export interface AEItemCellStatus {
121
+ all: number;
122
+ green: number;
123
+ blue: number;
124
+ orange: number;
125
+ red: number;
126
+ }
127
+ export interface AEItemsResult {
128
+ items: AEItemStack[];
129
+ totalBytes: number;
130
+ usedBytes: number;
131
+ totalTypes: number;
132
+ usedTypes: number;
133
+ cellStatus: AEItemCellStatus;
134
+ fluidTotalBytes: number;
135
+ fluidUsedBytes: number;
136
+ fluidTotalTypes: number;
137
+ fluidUsedTypes: number;
138
+ fluidCellStatus: AEItemCellStatus;
139
+ }
140
+ export interface AEHitResult {
141
+ message: string;
142
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,87 @@
1
+ import type { ClassInfo } from "./common";
2
+ import type { ItemStack } from "./item";
3
+ export interface Material {
4
+ isLiquid: boolean;
5
+ isSolid: boolean;
6
+ blocksMovement: boolean;
7
+ isOpaque: boolean;
8
+ isFlammable: boolean;
9
+ isReplaceable: boolean;
10
+ requiresNoTool: boolean;
11
+ mobilityFlag: number;
12
+ isAdventureModeExempt: boolean;
13
+ }
14
+ export interface Block {
15
+ class?: ClassInfo;
16
+ id: number;
17
+ registryName: string;
18
+ unlocalizedName: string;
19
+ localizedName: string;
20
+ resistance: number | "Infinity";
21
+ lightLevel: number;
22
+ isOpaqueCube: boolean;
23
+ isNormalCube: boolean;
24
+ slipperiness: number;
25
+ renderType: number;
26
+ material: Material;
27
+ /** 仅在 blocks.json / 纹理导出中出现 */
28
+ meta?: number;
29
+ fileName?: string;
30
+ blockColor?: number;
31
+ }
32
+ export interface BlockDetail {
33
+ block: Block & {
34
+ hardness: number;
35
+ isReplaceable: boolean;
36
+ isPassable: boolean;
37
+ };
38
+ coordinates: import("./common").Coordinates;
39
+ metadata: number;
40
+ isAir: boolean;
41
+ tileEntity?: {
42
+ class?: ClassInfo;
43
+ inventorySize?: number;
44
+ items?: Array<ItemStack & {
45
+ slot: number;
46
+ }>;
47
+ } & Record<string, unknown>;
48
+ }
49
+ export interface SetBlockBody {
50
+ id: number;
51
+ metadataIn?: number;
52
+ flag?: number;
53
+ }
54
+ export type SetBlockResult = null;
55
+ export interface BatchSetBlockTask {
56
+ x: number;
57
+ y: number;
58
+ z: number;
59
+ dim?: number;
60
+ id: number;
61
+ metadata?: number;
62
+ flag?: number;
63
+ }
64
+ export interface BatchSetBlockSubmitResult {
65
+ id: string;
66
+ total: number;
67
+ }
68
+ export type BatchSetBlockJobStatus = "pending" | "running" | "completed";
69
+ export interface BatchSetBlockFailure {
70
+ x: number;
71
+ y: number;
72
+ z: number;
73
+ reason: string;
74
+ }
75
+ export interface BatchSetBlockJobResult {
76
+ id: string;
77
+ total: number;
78
+ completed: number;
79
+ success: number;
80
+ failed: number;
81
+ status: BatchSetBlockJobStatus;
82
+ createTime: number;
83
+ finishTime?: number;
84
+ durationMs?: number;
85
+ failures?: BatchSetBlockFailure[];
86
+ failuresTruncated?: number;
87
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,57 @@
1
+ import type { ClassInfo } from "./common";
2
+ import type { Entity } from "./entity";
3
+ export interface Chunk {
4
+ class?: ClassInfo;
5
+ chunkX: number;
6
+ chunkZ: number;
7
+ xStart: number;
8
+ zStart: number;
9
+ xEnd: number;
10
+ zEnd: number;
11
+ lastSaveTime: number;
12
+ isTerrainPopulated: boolean;
13
+ isLightPopulated: boolean;
14
+ isModified: boolean;
15
+ hasEntities: boolean;
16
+ isChunkLoaded: boolean;
17
+ sendUpdates: boolean;
18
+ tileEntityCount: number;
19
+ entityCount?: number;
20
+ entityList?: Entity[][];
21
+ inhabitedTime: number;
22
+ }
23
+ export interface ChunkWithDimension extends Chunk {
24
+ dimension: number;
25
+ }
26
+ export interface ChunksByDimension {
27
+ name: string;
28
+ class?: ClassInfo;
29
+ chunks: Chunk[];
30
+ count: number;
31
+ }
32
+ export interface ChunkLoadInfo {
33
+ ticketKey: string;
34
+ chunkX: number;
35
+ chunkZ: number;
36
+ minX: number;
37
+ maxX: number;
38
+ minZ: number;
39
+ maxZ: number;
40
+ dimension: number;
41
+ startTime: number;
42
+ durationSec: number;
43
+ remainingSec: number;
44
+ isActive: boolean;
45
+ }
46
+ export interface ChunkForceList {
47
+ totalLoaded: number;
48
+ chunks: ChunkLoadInfo[];
49
+ }
50
+ export interface ChunkLoadResult extends ChunkLoadInfo {
51
+ action: "load" | "unload";
52
+ }
53
+ export interface ChunkMapCell {
54
+ name: string;
55
+ meta: number;
56
+ y: number;
57
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,27 @@
1
+ export interface ClassInfo {
2
+ package?: string;
3
+ location?: string;
4
+ extends?: string[];
5
+ implements?: string[];
6
+ }
7
+ export interface Coordinates {
8
+ posX: number;
9
+ posY: number;
10
+ posZ: number;
11
+ dimension: number;
12
+ }
13
+ export interface ApiSuccessResponse<T> {
14
+ success: true;
15
+ data: T;
16
+ }
17
+ export interface ApiErrorResponse {
18
+ success: false;
19
+ message: string;
20
+ stack?: string | null;
21
+ }
22
+ export type ApiResponse<T> = ApiSuccessResponse<T> | ApiErrorResponse;
23
+ export interface RootInfo {
24
+ modid: string;
25
+ version: string;
26
+ buildTime?: number;
27
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,114 @@
1
+ import type { ClassInfo } from "./common";
2
+ import type { ItemStack, NBTData } from "./item";
3
+ export interface EntityBase {
4
+ name: string;
5
+ entityId: number;
6
+ uniqueId: string;
7
+ dimension: number;
8
+ posX: number;
9
+ posY: number;
10
+ posZ: number;
11
+ prevPosX?: number;
12
+ prevPosY?: number;
13
+ prevPosZ?: number;
14
+ motionX: number;
15
+ motionY: number;
16
+ motionZ: number;
17
+ rotationYaw: number;
18
+ rotationPitch: number;
19
+ prevRotationYaw?: number;
20
+ prevRotationPitch?: number;
21
+ width: number;
22
+ height: number;
23
+ yOffset: number;
24
+ stepHeight: number;
25
+ boundingBoxMinX?: number;
26
+ boundingBoxMinY?: number;
27
+ boundingBoxMinZ?: number;
28
+ boundingBoxMaxX?: number;
29
+ boundingBoxMaxY?: number;
30
+ boundingBoxMaxZ?: number;
31
+ onGround: boolean;
32
+ isCollided: boolean;
33
+ isCollidedHorizontally: boolean;
34
+ isCollidedVertically: boolean;
35
+ isDead: boolean;
36
+ isAirBorne: boolean;
37
+ inWater: boolean;
38
+ fallDistance: number;
39
+ ticksExisted: number;
40
+ fireResistance: number;
41
+ hurtResistantTime: number;
42
+ chunkCoordX: number;
43
+ chunkCoordY: number;
44
+ chunkCoordZ: number;
45
+ RidingEntity: string | null;
46
+ RiddenByEntity: string | null;
47
+ }
48
+ export interface PotionEffect {
49
+ name: string;
50
+ duration: number;
51
+ amplifier: number;
52
+ isAmbient: boolean;
53
+ }
54
+ export interface EntityLivingBaseInfo {
55
+ health: number;
56
+ maxHealth: number;
57
+ absorptionAmount: number;
58
+ prevHealth?: number;
59
+ TotalArmor: number;
60
+ items?: ItemStack[];
61
+ hurtTime: number;
62
+ maxHurtTime: number;
63
+ attackTime: number;
64
+ deathTime: number;
65
+ attackedAtYaw: number;
66
+ arrowCountInEntity: number;
67
+ arrowHitTimer: number;
68
+ entityAge: number;
69
+ jumpMovementFactor: number;
70
+ isOnLadder: boolean;
71
+ canBreatheUnderwater: boolean;
72
+ maxHurtResistantTime: number;
73
+ cameraPitch?: number;
74
+ prevCameraPitch?: number;
75
+ attributes?: Record<string, {
76
+ baseValue: number;
77
+ currentValue: number;
78
+ }>;
79
+ creatureAttribute: string;
80
+ revengeTargetId?: number;
81
+ lastAttackerId?: number;
82
+ activePotionEffects?: Record<string, PotionEffect>;
83
+ }
84
+ export interface PlayerInfo {
85
+ experienceLevel: number;
86
+ experience: number;
87
+ experienceTotal: number;
88
+ isSleeping: boolean;
89
+ isBlocking: boolean;
90
+ score: number;
91
+ food: {
92
+ foodLevel: number;
93
+ saturationLevel: number;
94
+ };
95
+ heldItem?: ItemStack;
96
+ armor?: (ItemStack | null)[];
97
+ items?: Array<ItemStack & {
98
+ slot: number;
99
+ }>;
100
+ }
101
+ export interface Entity {
102
+ Entity: EntityBase & Partial<NBTData>;
103
+ EntityLivingBase?: EntityLivingBaseInfo;
104
+ Player?: PlayerInfo;
105
+ class?: ClassInfo;
106
+ }
107
+ /** getEntities 返回的精简实体(服务端强制 all=false) */
108
+ export interface EntitySummary {
109
+ Entity: Pick<EntityBase, "name" | "entityId" | "uniqueId" | "dimension" | "posX" | "posY" | "posZ">;
110
+ }
111
+ export interface EntitiesByDimension {
112
+ WorldName: string;
113
+ loadedEntityList: EntitySummary[];
114
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,23 @@
1
+ import type { ClassInfo } from "./common";
2
+ import type { ItemStack } from "./item";
3
+ export interface Fluid {
4
+ class?: ClassInfo;
5
+ id: number;
6
+ name: string;
7
+ registryName: string;
8
+ unlocalizedName: string;
9
+ localizedName?: string;
10
+ color: number;
11
+ luminosity: number;
12
+ density: number;
13
+ temperature: number;
14
+ viscosity: number;
15
+ gaseous: boolean;
16
+ block?: number;
17
+ }
18
+ export interface FluidContainer {
19
+ fluid?: Fluid;
20
+ amount?: number;
21
+ filledContainer?: ItemStack;
22
+ emptyContainer?: ItemStack;
23
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,33 @@
1
+ import type { ClassInfo } from "./common";
2
+ import type { ItemStack } from "./item";
3
+ export interface Cuboid6Bounds {
4
+ minX: number;
5
+ minY: number;
6
+ minZ: number;
7
+ maxX: number;
8
+ maxY: number;
9
+ maxZ: number;
10
+ }
11
+ export interface FMPPart {
12
+ class?: ClassInfo;
13
+ type: string;
14
+ lightValue: number;
15
+ doesTick: boolean;
16
+ bounds?: Cuboid6Bounds;
17
+ collisionBoxes: Cuboid6Bounds[];
18
+ drops?: ItemStack[];
19
+ ae2?: {
20
+ color: string;
21
+ isEmpty: boolean;
22
+ lightValue: number;
23
+ parts: Array<{
24
+ direction: string;
25
+ item?: ItemStack;
26
+ }>;
27
+ facades: Array<{
28
+ direction: string;
29
+ item?: ItemStack;
30
+ }>;
31
+ error?: string;
32
+ };
33
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });