@latticexyz/world 3.0.0-main-3440a86b5 → 3.0.0-main-69eb63b59
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/{chunk-OZBNK257.js → chunk-2DPDMM6H.js} +2 -2
- package/dist/chunk-3EELS6P3.js +2 -0
- package/dist/chunk-3EELS6P3.js.map +1 -0
- package/dist/config/v2.d.ts +1 -1
- package/dist/config/v2.js +1 -1
- package/dist/index.d.ts +3 -12
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal.js +1 -1
- package/dist/mud.config.d.ts +269 -288
- package/dist/mud.config.js +1 -1
- package/dist/node.js +1 -1
- package/dist/node.js.map +1 -1
- package/dist/{world-6e8198d8.d.ts → world-ae07544a.d.ts} +3 -5
- package/out/AccessControl.sol/AccessControl.json +1 -1
- package/out/AccessControl.t.sol/AccessControlTest.json +1 -1
- package/out/AccessManagementSystem.sol/AccessManagementSystem.json +1 -1
- package/out/AddressArray.sol/AddressArray.json +1 -1
- package/out/BalanceTransferSystem.sol/BalanceTransferSystem.json +1 -1
- package/out/Balances.sol/Balances.json +1 -1
- package/out/BatchCall.t.sol/BatchCallTest.json +1 -1
- package/out/BatchCall.t.sol/TestSystem.json +1 -1
- package/out/BatchCallSystem.sol/BatchCallSystem.json +1 -1
- package/out/Bool.sol/Bool.json +1 -1
- package/out/Delegation.sol/Delegation.json +1 -1
- package/out/DelegationControl.sol/DelegationControl.json +1 -1
- package/out/DelegationControlMock.sol/DelegationControlMock.json +1 -1
- package/out/Factories.t.sol/FactoriesTest.json +1 -1
- package/out/FunctionSelectors.sol/FunctionSelectors.json +1 -1
- package/out/FunctionSignatures.sol/FunctionSignatures.json +1 -1
- package/out/Hook.sol/HookInstance.json +1 -1
- package/out/Hook.sol/HookLib.json +1 -1
- package/out/Hooks.sol/Hooks.json +1 -1
- package/out/IAccessManagementSystem.sol/IAccessManagementSystem.json +1 -1
- package/out/IBaseWorld.sol/IBaseWorld.json +1 -1
- package/out/IBatchCallSystem.sol/IBatchCallSystem.json +1 -1
- package/out/IModuleInstallationSystem.sol/IModuleInstallationSystem.json +1 -1
- package/out/IWorldRegistrationSystem.sol/IWorldRegistrationSystem.json +1 -1
- package/out/InitModule.sol/InitModule.json +1 -1
- package/out/InitModule.t.sol/InitModuleTest.json +1 -1
- package/out/InitModule.t.sol/WorldMock.json +1 -1
- package/out/InitModuleAddress.sol/InitModuleAddress.json +1 -1
- package/out/InitSystems.t.sol/LimitedCallContextTest.json +1 -1
- package/out/InstalledModules.sol/InstalledModules.json +1 -1
- package/out/Module.sol/Module.json +1 -1
- package/out/ModuleInstallationSystem.sol/ModuleInstallationSystem.json +1 -1
- package/out/MudTest.t.sol/MudTest.json +1 -1
- package/out/NamespaceDelegationControl.sol/NamespaceDelegationControl.json +1 -1
- package/out/NamespaceOwner.sol/NamespaceOwner.json +1 -1
- package/out/RegistrationSystem.sol/RegistrationSystem.json +1 -1
- package/out/ResourceAccess.sol/ResourceAccess.json +1 -1
- package/out/ResourceIds.sol/ResourceIds.json +1 -1
- package/out/Store.sol/Store.json +1 -1
- package/out/StoreCore.sol/StoreCore.json +1 -1
- package/out/StoreCore.sol/StoreCoreInternal.json +1 -1
- package/out/StoreHooks.sol/StoreHooks.json +1 -1
- package/out/StoreKernel.sol/StoreKernel.json +1 -1
- package/out/StoreMock.sol/StoreMock.json +1 -1
- package/out/StoreRead.sol/StoreRead.json +1 -1
- package/out/StoreRegistrationSystem.sol/StoreRegistrationSystem.json +1 -1
- package/out/StoreSwitch.sol/StoreSwitch.json +1 -1
- package/out/System.sol/System.json +1 -1
- package/out/System.t.sol/SystemTest.json +1 -1
- package/out/System.t.sol/TestSystem.json +1 -1
- package/out/SystemCall.sol/SystemCall.json +1 -1
- package/out/SystemHook.t.sol/SystemHookTest.json +1 -1
- package/out/SystemHooks.sol/SystemHooks.json +1 -1
- package/out/SystemRegistry.sol/SystemRegistry.json +1 -1
- package/out/Systems.sol/Systems.json +1 -1
- package/out/Tables.sol/Tables.json +1 -1
- package/out/TwoFields.sol/TwoFields.json +1 -1
- package/out/UserDelegationControl.sol/UserDelegationControl.json +1 -1
- package/out/Utils.sol/Utils.json +1 -1
- package/out/Utils.t.sol/UtilsTest.json +1 -1
- package/out/Utils.t.sol/UtilsTestSystem.json +1 -1
- package/out/World.sol/World.json +1 -1
- package/out/World.t.sol/EchoSystemHook.json +1 -1
- package/out/World.t.sol/IWorldTestSystem.json +1 -1
- package/out/World.t.sol/PayableFallbackSystem.json +1 -1
- package/out/World.t.sol/RevertSystemHook.json +1 -1
- package/out/World.t.sol/WorldTest.json +1 -1
- package/out/World.t.sol/WorldTestSystem.json +1 -1
- package/out/WorldBalance.t.sol/WorldBalanceTest.json +1 -1
- package/out/WorldBalance.t.sol/WorldBalanceTestSystem.json +1 -1
- package/out/WorldContext.sol/WorldContextConsumer.json +1 -1
- package/out/WorldContext.sol/WorldContextConsumerLib.json +1 -1
- package/out/WorldContext.sol/WorldContextProviderLib.json +1 -1
- package/out/WorldContext.t.sol/TestContextConsumer.json +1 -1
- package/out/WorldContext.t.sol/WorldContextTest.json +1 -1
- package/out/WorldDynamicUpdate.t.sol/UpdateInDynamicFieldTest.json +1 -1
- package/out/WorldFactory.sol/WorldFactory.json +1 -1
- package/out/WorldProxy.sol/WorldProxy.json +1 -1
- package/out/WorldProxy.t.sol/WorldProxyTest.json +1 -1
- package/out/WorldProxyFactory.sol/WorldProxyFactory.json +1 -1
- package/out/WorldProxyFactory.t.sol/WorldProxyFactoryTest.json +1 -1
- package/out/WorldRegistrationSystem.sol/WorldRegistrationSystem.json +1 -1
- package/out/build-info/{11c85b26e1969ca82de39d2cfbd09ca2.json → 7d027d3c2c4234c547896a757e5b3269.json} +1 -1
- package/package.json +8 -8
- package/src/codegen/interfaces/IAccessManagementSystem.sol +1 -1
- package/src/codegen/interfaces/IBatchCallSystem.sol +1 -1
- package/src/codegen/interfaces/IModuleInstallationSystem.sol +1 -1
- package/src/codegen/interfaces/IWorldRegistrationSystem.sol +2 -2
- package/dist/chunk-BH75YTBY.js +0 -2
- package/dist/chunk-BH75YTBY.js.map +0 -1
- /package/dist/{chunk-OZBNK257.js.map → chunk-2DPDMM6H.js.map} +0 -0
@@ -1 +1 @@
|
|
1
|
-
{"id":"
|
1
|
+
{"id":"7d027d3c2c4234c547896a757e5b3269","source_id_to_path":{"0":"node_modules/@latticexyz/gas-report/src/GasReporter.sol","1":"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol","2":"node_modules/@latticexyz/store/src/Bytes.sol","3":"node_modules/@latticexyz/store/src/EncodedLengths.sol","4":"node_modules/@latticexyz/store/src/FieldLayout.sol","5":"node_modules/@latticexyz/store/src/Hook.sol","6":"node_modules/@latticexyz/store/src/IERC165.sol","7":"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol","8":"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol","9":"node_modules/@latticexyz/store/src/ISchemaErrors.sol","10":"node_modules/@latticexyz/store/src/ISliceErrors.sol","11":"node_modules/@latticexyz/store/src/IStore.sol","12":"node_modules/@latticexyz/store/src/IStoreErrors.sol","13":"node_modules/@latticexyz/store/src/IStoreEvents.sol","14":"node_modules/@latticexyz/store/src/IStoreHook.sol","15":"node_modules/@latticexyz/store/src/IStoreKernel.sol","16":"node_modules/@latticexyz/store/src/IStoreRead.sol","17":"node_modules/@latticexyz/store/src/IStoreRegistration.sol","18":"node_modules/@latticexyz/store/src/IStoreWrite.sol","19":"node_modules/@latticexyz/store/src/Memory.sol","20":"node_modules/@latticexyz/store/src/ResourceId.sol","21":"node_modules/@latticexyz/store/src/Schema.sol","22":"node_modules/@latticexyz/store/src/Slice.sol","23":"node_modules/@latticexyz/store/src/Storage.sol","24":"node_modules/@latticexyz/store/src/Store.sol","25":"node_modules/@latticexyz/store/src/StoreCore.sol","26":"node_modules/@latticexyz/store/src/StoreHook.sol","27":"node_modules/@latticexyz/store/src/StoreKernel.sol","28":"node_modules/@latticexyz/store/src/StoreRead.sol","29":"node_modules/@latticexyz/store/src/StoreSwitch.sol","30":"node_modules/@latticexyz/store/src/codegen/index.sol","31":"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol","32":"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol","33":"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol","34":"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol","35":"node_modules/@latticexyz/store/src/constants.sol","36":"node_modules/@latticexyz/store/src/rightMask.sol","37":"node_modules/@latticexyz/store/src/storeHookTypes.sol","38":"node_modules/@latticexyz/store/src/storeResourceTypes.sol","39":"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol","40":"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol","41":"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol","42":"node_modules/@latticexyz/store/src/version.sol","43":"node_modules/@latticexyz/store/test/EchoSubscriber.sol","44":"node_modules/@latticexyz/store/test/FieldLayoutEncodeHelper.sol","45":"node_modules/@latticexyz/store/test/RevertSubscriber.sol","46":"node_modules/@latticexyz/store/test/SchemaEncodeHelper.sol","47":"node_modules/@latticexyz/store/test/StoreMock.sol","48":"node_modules/ds-test/src/test.sol","49":"node_modules/forge-std/src/Base.sol","50":"node_modules/forge-std/src/StdAssertions.sol","51":"node_modules/forge-std/src/StdChains.sol","52":"node_modules/forge-std/src/StdCheats.sol","53":"node_modules/forge-std/src/StdError.sol","54":"node_modules/forge-std/src/StdInvariant.sol","55":"node_modules/forge-std/src/StdJson.sol","56":"node_modules/forge-std/src/StdMath.sol","57":"node_modules/forge-std/src/StdStorage.sol","58":"node_modules/forge-std/src/StdStyle.sol","59":"node_modules/forge-std/src/StdUtils.sol","60":"node_modules/forge-std/src/Test.sol","61":"node_modules/forge-std/src/Vm.sol","62":"node_modules/forge-std/src/console.sol","63":"node_modules/forge-std/src/console2.sol","64":"node_modules/forge-std/src/interfaces/IMulticall3.sol","65":"node_modules/forge-std/src/safeconsole.sol","66":"src/AccessControl.sol","67":"src/Create2.sol","68":"src/Create2Factory.sol","69":"src/Delegation.sol","70":"src/DelegationControl.sol","71":"src/ERC165Checker.sol","72":"src/IDelegationControl.sol","73":"src/IERC165.sol","74":"src/IERC1967.sol","75":"src/IModule.sol","76":"src/IModuleErrors.sol","77":"src/ISystemHook.sol","78":"src/IWorldContextConsumer.sol","79":"src/IWorldErrors.sol","80":"src/IWorldEvents.sol","81":"src/IWorldFactory.sol","82":"src/IWorldKernel.sol","83":"src/Module.sol","84":"src/Proxy.sol","85":"src/StorageSlot.sol","86":"src/System.sol","87":"src/SystemCall.sol","88":"src/SystemHook.sol","89":"src/Utils.sol","90":"src/World.sol","91":"src/WorldContext.sol","92":"src/WorldFactory.sol","93":"src/WorldProxy.sol","94":"src/WorldProxyFactory.sol","95":"src/WorldResourceId.sol","96":"src/codegen/index.sol","97":"src/codegen/interfaces/IAccessManagementSystem.sol","98":"src/codegen/interfaces/IBalanceTransferSystem.sol","99":"src/codegen/interfaces/IBaseWorld.sol","100":"src/codegen/interfaces/IBatchCallSystem.sol","101":"src/codegen/interfaces/IModuleInstallationSystem.sol","102":"src/codegen/interfaces/IRegistrationSystem.sol","103":"src/codegen/interfaces/IWorldRegistrationSystem.sol","104":"src/codegen/tables/Balances.sol","105":"src/codegen/tables/FunctionSelectors.sol","106":"src/codegen/tables/FunctionSignatures.sol","107":"src/codegen/tables/InitModuleAddress.sol","108":"src/codegen/tables/InstalledModules.sol","109":"src/codegen/tables/NamespaceDelegationControl.sol","110":"src/codegen/tables/NamespaceOwner.sol","111":"src/codegen/tables/ResourceAccess.sol","112":"src/codegen/tables/SystemHooks.sol","113":"src/codegen/tables/SystemRegistry.sol","114":"src/codegen/tables/Systems.sol","115":"src/codegen/tables/UserDelegationControl.sol","116":"src/constants.sol","117":"src/modules/init/InitModule.sol","118":"src/modules/init/LimitedCallContext.sol","119":"src/modules/init/RegistrationSystem.sol","120":"src/modules/init/constants.sol","121":"src/modules/init/functionSignatures.sol","122":"src/modules/init/implementations/AccessManagementSystem.sol","123":"src/modules/init/implementations/BalanceTransferSystem.sol","124":"src/modules/init/implementations/BatchCallSystem.sol","125":"src/modules/init/implementations/ModuleInstallationSystem.sol","126":"src/modules/init/implementations/StoreRegistrationSystem.sol","127":"src/modules/init/implementations/WorldRegistrationSystem.sol","128":"src/modules/init/implementations/createDelegation.sol","129":"src/modules/init/types.sol","130":"src/requireInterface.sol","131":"src/requireNamespace.sol","132":"src/requireValidNamespace.sol","133":"src/revertWithBytes.sol","134":"src/systemHookTypes.sol","135":"src/version.sol","136":"src/worldResourceTypes.sol","137":"test/AccessControl.t.sol","138":"test/BatchCall.t.sol","139":"test/DelegationControlMock.sol","140":"test/Factories.t.sol","141":"test/InitModule.t.sol","142":"test/InitSystems.t.sol","143":"test/MudTest.t.sol","144":"test/RevertWithBytes.t.sol","145":"test/System.t.sol","146":"test/SystemHook.t.sol","147":"test/Utils.t.sol","148":"test/World.t.sol","149":"test/WorldBalance.t.sol","150":"test/WorldContext.t.sol","151":"test/WorldDynamicUpdate.t.sol","152":"test/WorldProxy.t.sol","153":"test/WorldProxyFactory.t.sol","154":"test/WorldResourceId.t.sol","155":"test/codegen/index.sol","156":"test/codegen/tables/AddressArray.sol","157":"test/codegen/tables/Bool.sol","158":"test/codegen/tables/TwoFields.sol","159":"test/createInitModule.sol","160":"test/createWorld.sol","161":"test/createWorldProxy.sol"},"language":"Solidity"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@latticexyz/world",
|
3
|
-
"version": "3.0.0-main-
|
3
|
+
"version": "3.0.0-main-69eb63b59",
|
4
4
|
"description": "World framework",
|
5
5
|
"repository": {
|
6
6
|
"type": "git",
|
@@ -47,11 +47,11 @@
|
|
47
47
|
"abitype": "1.0.0",
|
48
48
|
"arktype": "1.0.29-alpha",
|
49
49
|
"viem": "2.9.20",
|
50
|
-
"@latticexyz/
|
51
|
-
"@latticexyz/config": "3.0.0-main-
|
52
|
-
"@latticexyz/
|
53
|
-
"@latticexyz/
|
54
|
-
"@latticexyz/
|
50
|
+
"@latticexyz/common": "3.0.0-main-69eb63b59",
|
51
|
+
"@latticexyz/config": "3.0.0-main-69eb63b59",
|
52
|
+
"@latticexyz/protocol-parser": "3.0.0-main-69eb63b59",
|
53
|
+
"@latticexyz/schema-type": "3.0.0-main-69eb63b59",
|
54
|
+
"@latticexyz/store": "3.0.0-main-69eb63b59"
|
55
55
|
},
|
56
56
|
"devDependencies": {
|
57
57
|
"@arktype/attest": "0.7.5",
|
@@ -66,8 +66,8 @@
|
|
66
66
|
"tsup": "^6.7.0",
|
67
67
|
"tsx": "^3.12.6",
|
68
68
|
"vitest": "0.34.6",
|
69
|
-
"@latticexyz/abi-ts": "3.0.0-main-
|
70
|
-
"@latticexyz/gas-report": "3.0.0-main-
|
69
|
+
"@latticexyz/abi-ts": "3.0.0-main-69eb63b59",
|
70
|
+
"@latticexyz/gas-report": "3.0.0-main-69eb63b59"
|
71
71
|
},
|
72
72
|
"scripts": {
|
73
73
|
"build": "pnpm run build:mud && pnpm run build:abi && pnpm run build:abi-ts && pnpm run build:js",
|
@@ -3,7 +3,7 @@ pragma solidity >=0.8.24;
|
|
3
3
|
|
4
4
|
/* Autogenerated file. Do not edit manually. */
|
5
5
|
|
6
|
-
import { SystemCallData, SystemCallFromData } from "
|
6
|
+
import { SystemCallData, SystemCallFromData } from "../../modules/init/types.sol";
|
7
7
|
|
8
8
|
/**
|
9
9
|
* @title IBatchCallSystem
|
@@ -4,8 +4,8 @@ pragma solidity >=0.8.24;
|
|
4
4
|
/* Autogenerated file. Do not edit manually. */
|
5
5
|
|
6
6
|
import { ResourceId } from "@latticexyz/store/src/ResourceId.sol";
|
7
|
-
import { ISystemHook } from "
|
8
|
-
import { System } from "
|
7
|
+
import { ISystemHook } from "../../ISystemHook.sol";
|
8
|
+
import { System } from "../../System.sol";
|
9
9
|
|
10
10
|
/**
|
11
11
|
* @title IWorldRegistrationSystem
|
package/dist/chunk-BH75YTBY.js
DELETED
@@ -1,2 +0,0 @@
|
|
1
|
-
import{h as c,i as p,j as l,k as r,l as i,m as y}from"./chunk-DK3XOTC2.js";import{extendedScope as k,get as j,resolveTable as L,validateTable as F,mergeIfUndefined as a,resolveStore as $,hasOwnKey as S,validateStore as C}from"@latticexyz/store/config/v2";import{isObject as w}from"@latticexyz/store/config/v2";function f(e){if(w(e)){for(let s of Object.values(e))i(s,{inNamespace:!0});return}throw new Error(`Expected system config, received ${JSON.stringify(e)}`)}function v(e,s){return Object.fromEntries(Object.entries(e).map(([o,n])=>[o,y({...n,label:o,namespace:s})]))}import{validateTables as I,isObject as N,hasOwnKey as O}from"@latticexyz/store/config/v2";function D(e,s){O(e,"tables")&&I(e.tables,s)}function b(e,s){if(!N(e))throw new Error(`Expected namespaces, received ${JSON.stringify(e)}`);for(let o of Object.values(e))D(o,s)}import{isObject as U,mergeIfUndefined as W}from"@latticexyz/store/config/v2";function u(e){return U(e)?W(e,p):p}import{mergeIfUndefined as _,isObject as A}from"@latticexyz/store/config/v2";function x(e){return A(e)?_(e,l):l}function h(e){let s=k(e);C(e),S(e,"systems")&&f(e.systems),S(e,"namespaces")&&b(e.namespaces,s)}function M(e){let s=k(e),o=$(e),n=e.namespaces??{},g=Object.fromEntries(Object.entries(n).map(([t,T])=>Object.entries(T.tables??{}).map(([m,d])=>(F(d,s),[`${t}__${m}`,L(a(d,{namespace:t,name:m}),s)]))).flat()),E=(e.modules??r.modules).map(t=>a(t,c));return a({...o,tables:{...o.tables,...g},codegen:a(o.codegen,u(e.codegen)),deploy:x(e.deploy),systems:v(e.systems??r.systems,o.namespace),excludeSystems:j(e,"excludeSystems"),modules:E},r)}function ye(e){return h(e),M(e)}export{h as a,M as b,ye as c};
|
2
|
-
//# sourceMappingURL=chunk-BH75YTBY.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["../ts/config/v2/world.ts","../ts/config/v2/systems.ts","../ts/config/v2/namespaces.ts","../ts/config/v2/codegen.ts","../ts/config/v2/deploy.ts"],"sourcesContent":["import { ErrorMessage, conform, narrow, type withJsDoc } from \"@arktype/util\";\nimport {\n UserTypes,\n extendedScope,\n get,\n resolveTable,\n validateTable,\n mergeIfUndefined,\n validateTables,\n resolveStore,\n Store,\n hasOwnKey,\n validateStore,\n} from \"@latticexyz/store/config/v2\";\nimport { SystemsInput, WorldInput } from \"./input\";\nimport { CONFIG_DEFAULTS, MODULE_DEFAULTS } from \"./defaults\";\nimport { Tables } from \"@latticexyz/store/internal\";\nimport { resolveSystems, validateSystems } from \"./systems\";\nimport { resolveNamespacedTables, validateNamespaces } from \"./namespaces\";\nimport { resolveCodegen } from \"./codegen\";\nimport { resolveDeploy } from \"./deploy\";\nimport type { World } from \"./output.js\";\n\nexport type validateWorld<world> = {\n readonly [key in keyof world]: key extends \"tables\"\n ? validateTables<world[key], extendedScope<world>>\n : key extends \"userTypes\"\n ? UserTypes\n : key extends \"enums\"\n ? narrow<world[key]>\n : key extends \"systems\"\n ? validateSystems<world[key]>\n : key extends \"namespaces\"\n ? // ? validateNamespaces<world[key], extendedScope<world>>\n ErrorMessage<`Namespaces config will be enabled soon.`>\n : key extends keyof WorldInput\n ? conform<world[key], WorldInput[key]>\n : ErrorMessage<`\\`${key & string}\\` is not a valid World config option.`>;\n};\n\nexport function validateWorld(world: unknown): asserts world is WorldInput {\n const scope = extendedScope(world);\n validateStore(world);\n\n if (hasOwnKey(world, \"systems\")) {\n validateSystems(world.systems);\n }\n if (hasOwnKey(world, \"namespaces\")) {\n validateNamespaces(world.namespaces, scope);\n }\n}\n\nexport type resolveWorld<world, namespace = resolveStore<world>[\"namespace\"]> = withJsDoc<\n resolveStore<world> &\n mergeIfUndefined<\n { readonly tables: resolveNamespacedTables<world> } & {\n [key in Exclude<keyof world, keyof Store>]: key extends \"systems\"\n ? resolveSystems<world[key] & SystemsInput, namespace & string>\n : key extends \"deploy\"\n ? resolveDeploy<world[key]>\n : key extends \"codegen\"\n ? resolveCodegen<world[key]>\n : world[key];\n },\n CONFIG_DEFAULTS\n >,\n World\n>;\n\nexport function resolveWorld<const world extends WorldInput>(world: world): resolveWorld<world> {\n const scope = extendedScope(world);\n const resolvedStore = resolveStore(world);\n const namespaces = world.namespaces ?? {};\n\n const resolvedNamespacedTables = Object.fromEntries(\n Object.entries(namespaces)\n .map(([namespaceKey, namespace]) =>\n Object.entries(namespace.tables ?? {}).map(([tableKey, table]) => {\n validateTable(table, scope);\n return [\n `${namespaceKey}__${tableKey}`,\n resolveTable(mergeIfUndefined(table, { namespace: namespaceKey, name: tableKey }), scope),\n ];\n }),\n )\n .flat(),\n ) as Tables;\n\n const modules = (world.modules ?? CONFIG_DEFAULTS.modules).map((mod) => mergeIfUndefined(mod, MODULE_DEFAULTS));\n\n return mergeIfUndefined(\n {\n ...resolvedStore,\n tables: { ...resolvedStore.tables, ...resolvedNamespacedTables },\n codegen: mergeIfUndefined(resolvedStore.codegen, resolveCodegen(world.codegen)),\n deploy: resolveDeploy(world.deploy),\n systems: resolveSystems(world.systems ?? CONFIG_DEFAULTS.systems, resolvedStore.namespace),\n excludeSystems: get(world, \"excludeSystems\"),\n modules,\n },\n CONFIG_DEFAULTS,\n ) as never;\n}\n\nexport function defineWorld<const input>(input: validateWorld<input>): resolveWorld<input> {\n validateWorld(input);\n return resolveWorld(input) as never;\n}\n","import { ErrorMessage } from \"@arktype/util\";\nimport { isObject } from \"@latticexyz/store/config/v2\";\nimport { SystemsInput } from \"./input\";\nimport { resolveSystem, validateSystem } from \"./system\";\n\n// TODO: add nuance between \"in namespace\" (namespace provided in context) and \"in systems\" (label provided in context)\n\nexport type validateSystems<input> = {\n [label in keyof input]: input[label] extends object\n ? validateSystem<input[label], { inNamespace: true }>\n : ErrorMessage<`Expected a system config for ${label & string}.`>;\n};\n\nexport function validateSystems(input: unknown): asserts input is SystemsInput {\n if (isObject(input)) {\n for (const table of Object.values(input)) {\n validateSystem(table, { inNamespace: true });\n }\n return;\n }\n throw new Error(`Expected system config, received ${JSON.stringify(input)}`);\n}\n\nexport type resolveSystems<systems extends SystemsInput, namespace extends string> = {\n [label in keyof systems]: resolveSystem<systems[label] & { label: label; namespace: namespace }>;\n};\n\nexport function resolveSystems<systems extends SystemsInput, namespace extends string>(\n systems: systems,\n namespace: namespace,\n): resolveSystems<systems, namespace> {\n return Object.fromEntries(\n Object.entries(systems).map(([label, system]) => {\n return [label, resolveSystem({ ...system, label, namespace })];\n }),\n ) as never;\n}\n","import {\n Scope,\n AbiTypeScope,\n validateTables,\n isObject,\n hasOwnKey,\n resolveTable,\n mergeIfUndefined,\n extendedScope,\n getPath,\n} from \"@latticexyz/store/config/v2\";\nimport { NamespaceInput, NamespacesInput } from \"./input\";\nimport { ErrorMessage, conform } from \"@arktype/util\";\n\nexport type namespacedTableKeys<world> = world extends { namespaces: infer namespaces }\n ? {\n [k in keyof namespaces]: namespaces[k] extends { tables: infer tables }\n ? `${k & string}__${keyof tables & string}`\n : never;\n }[keyof namespaces]\n : never;\n\nexport type validateNamespace<namespace, scope extends Scope = AbiTypeScope> = {\n readonly [key in keyof namespace]: key extends \"tables\"\n ? validateTables<namespace[key], scope>\n : key extends keyof NamespaceInput\n ? conform<namespace[key], NamespaceInput[key]>\n : ErrorMessage<`\\`${key & string}\\` is not a valid namespace config option.`>;\n};\n\nexport function validateNamespace<scope extends Scope = AbiTypeScope>(\n namespace: unknown,\n scope: scope,\n): asserts namespace is NamespaceInput {\n if (hasOwnKey(namespace, \"tables\")) {\n validateTables(namespace.tables, scope);\n }\n}\n\nexport type validateNamespaces<namespaces, scope extends Scope = AbiTypeScope> = {\n [label in keyof namespaces]: validateNamespace<namespaces[label], scope>;\n};\n\nexport function validateNamespaces<scope extends Scope = AbiTypeScope>(\n namespaces: unknown,\n scope: scope,\n): asserts namespaces is NamespacesInput {\n if (!isObject(namespaces)) {\n throw new Error(`Expected namespaces, received ${JSON.stringify(namespaces)}`);\n }\n for (const namespace of Object.values(namespaces)) {\n validateNamespace(namespace, scope);\n }\n}\n\nexport type resolveNamespacedTables<world> = \"namespaces\" extends keyof world\n ? {\n readonly [key in namespacedTableKeys<world>]: key extends `${infer namespace}__${infer table}`\n ? resolveTable<\n mergeIfUndefined<\n getPath<world, [\"namespaces\", namespace, \"tables\", table]>,\n { name: table; namespace: namespace }\n >,\n extendedScope<world>\n >\n : never;\n }\n : {};\n","import { isObject, mergeIfUndefined } from \"@latticexyz/store/config/v2\";\nimport { CODEGEN_DEFAULTS } from \"./defaults\";\n\nexport type resolveCodegen<codegen> = codegen extends {}\n ? mergeIfUndefined<codegen, CODEGEN_DEFAULTS>\n : CODEGEN_DEFAULTS;\n\nexport function resolveCodegen<codegen>(codegen: codegen): resolveCodegen<codegen> {\n return (isObject(codegen) ? mergeIfUndefined(codegen, CODEGEN_DEFAULTS) : CODEGEN_DEFAULTS) as never;\n}\n","import { mergeIfUndefined, isObject } from \"@latticexyz/store/config/v2\";\nimport { DEPLOY_DEFAULTS } from \"./defaults\";\n\nexport type resolveDeploy<deploy> = deploy extends {} ? mergeIfUndefined<deploy, DEPLOY_DEFAULTS> : DEPLOY_DEFAULTS;\n\nexport function resolveDeploy<deploy>(deploy: deploy): resolveDeploy<deploy> {\n return (isObject(deploy) ? mergeIfUndefined(deploy, DEPLOY_DEFAULTS) : DEPLOY_DEFAULTS) as never;\n}\n"],"mappings":"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","names":["extendedScope","get","resolveTable","validateTable","mergeIfUndefined","resolveStore","hasOwnKey","validateStore","isObject","validateSystems","input","isObject","table","validateSystem","resolveSystems","systems","namespace","label","system","resolveSystem","validateTables","isObject","hasOwnKey","validateNamespace","namespace","scope","validateNamespaces","namespaces","isObject","mergeIfUndefined","resolveCodegen","codegen","isObject","mergeIfUndefined","CODEGEN_DEFAULTS","mergeIfUndefined","isObject","resolveDeploy","deploy","isObject","mergeIfUndefined","DEPLOY_DEFAULTS","validateWorld","world","scope","extendedScope","validateStore","hasOwnKey","validateSystems","validateNamespaces","resolveWorld","resolvedStore","resolveStore","namespaces","resolvedNamespacedTables","namespaceKey","namespace","tableKey","table","validateTable","resolveTable","mergeIfUndefined","modules","CONFIG_DEFAULTS","mod","MODULE_DEFAULTS","resolveCodegen","resolveDeploy","resolveSystems","get","defineWorld","input"]}
|
File without changes
|