Compare commits
2 Commits
main
...
ao/generat
| Author | SHA1 | Date | |
|---|---|---|---|
| 7fdda647bf | |||
| c95c4e5e3f |
@ -8,7 +8,7 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "yarn build:cm && yarn build:non-cm",
|
"build": "yarn build:cm && yarn build:non-cm",
|
||||||
"build:production": "yarn build:cm && yarn workspace dapp-ui build:production",
|
"build:production": "yarn build:cm && yarn workspace dapp-ui build:production",
|
||||||
"build:cm": "yarn workspaces foreach -Ap --include 'packages/*.cm' --include 'packages/lib' --include 'packages/cwait' run build",
|
"build:cm": "yarn workspaces foreach -Ap --include 'packages/lib' --include 'packages/cwait' --include 'packages/*.cm' run build",
|
||||||
"build:non-cm": "yarn workspaces foreach -Ap --include 'packages/*' --exclude 'packages/*.cm' --exclude 'packages/lib' --exclude 'packages/cwait' run build",
|
"build:non-cm": "yarn workspaces foreach -Ap --include 'packages/*' --exclude 'packages/*.cm' --exclude 'packages/lib' --exclude 'packages/cwait' run build",
|
||||||
"create-index": "cweb-tool create-index -c ./.cweb-config/config.yaml --profile $REGISTRATION_PROFILE",
|
"create-index": "cweb-tool create-index -c ./.cweb-config/config.yaml --profile $REGISTRATION_PROFILE",
|
||||||
"publish-index": "cweb-tool publish-index -c ./.cweb-config/config.yaml --profile $REGISTRATION_PROFILE",
|
"publish-index": "cweb-tool publish-index -c ./.cweb-config/config.yaml --profile $REGISTRATION_PROFILE",
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "yarn build:files && yarn pack:all",
|
"build": "yarn build:files && yarn pack:all",
|
||||||
"build:files": "yarn clean && yarn g:tsc -p tsconfig.build.json && NODE_ENV=production yarn g:cweb-tool build-cm .",
|
"build:files": "yarn clean && yarn g:tsc -p tsconfig.build.json && NODE_ENV=production ./scripts/build.sh",
|
||||||
"start": "node src/offchain/index.js",
|
"start": "node src/offchain/index.js",
|
||||||
"test": "yarn g:vitest run --pool=forks",
|
"test": "yarn g:vitest run --pool=forks",
|
||||||
"test:prepare": "mkdir -p tests_data && cp ../../.cweb_tool/simulation/unknown.json tests_data/state.json && cp ../../.dapp-ecosystem-lock-test.yaml tests_data/index.yaml",
|
"test:prepare": "mkdir -p tests_data && cp ../../.cweb_tool/simulation/unknown.json tests_data/state.json && cp ../../.dapp-ecosystem-lock-test.yaml tests_data/index.yaml",
|
||||||
@ -26,6 +26,9 @@
|
|||||||
"bech32": "2.0.0",
|
"bech32": "2.0.0",
|
||||||
"bs58": "6.0.0"
|
"bs58": "6.0.0"
|
||||||
},
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"esbuild": "^0.20.2"
|
||||||
|
},
|
||||||
"main": "cweb_dist/offchain/index.js",
|
"main": "cweb_dist/offchain/index.js",
|
||||||
"engines": {
|
"engines": {
|
||||||
"cweb_interpreter": "a344c6003922f9e44385f6e8234a7d2567d9a676b14330ad3b42cbd1948a92bf"
|
"cweb_interpreter": "a344c6003922f9e44385f6e8234a7d2567d9a676b14330ad3b42cbd1948a92bf"
|
||||||
|
|||||||
41
packages/contract.cm/scripts/build.sh
Executable file
41
packages/contract.cm/scripts/build.sh
Executable file
@ -0,0 +1,41 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
ROOT=$DIR/..
|
||||||
|
|
||||||
|
rm -rf $ROOT/{cweb_dist/{on,off}chain,dist/tmp/{step{1,2,3},final}}
|
||||||
|
mkdir -p $ROOT/{cweb_dist/{on,off}chain,dist/tmp/{step{1,2,3},final}}
|
||||||
|
|
||||||
|
(
|
||||||
|
cd $ROOT
|
||||||
|
cp -rf dist/offchain/. cweb_dist/offchain/
|
||||||
|
|
||||||
|
## Bundle and transpile `index.js` so it can be understood by the quickjs interpreter:
|
||||||
|
echo 'import {cwebMain as f} from "../../../dist/onchain/index"; f();' \
|
||||||
|
> dist/tmp/step1/onchain.js
|
||||||
|
|
||||||
|
yarn esbuild \
|
||||||
|
--bundle \
|
||||||
|
--log-level=error \
|
||||||
|
--format=esm \
|
||||||
|
dist/tmp/step1/onchain.js \
|
||||||
|
--outfile=dist/tmp/step2/onchain.js
|
||||||
|
|
||||||
|
echo 'import * as std from "std";' |
|
||||||
|
cat - dist/tmp/step2/onchain.js \
|
||||||
|
> dist/tmp/step3/onchain.js
|
||||||
|
|
||||||
|
yarn esbuild \
|
||||||
|
--bundle \
|
||||||
|
--log-level=error \
|
||||||
|
--format=esm \
|
||||||
|
--external:std \
|
||||||
|
--tree-shaking=true \
|
||||||
|
dist/tmp/step3/onchain.js \
|
||||||
|
--outfile=dist/tmp/final/onchain.js
|
||||||
|
|
||||||
|
cp dist/tmp/final/onchain.js cweb_dist/onchain/index.js
|
||||||
|
)
|
||||||
|
|
||||||
|
rm -rf $ROOT/dist/{tmp,offchain,onchain}
|
||||||
@ -1,7 +1,7 @@
|
|||||||
import { constructClaim } from '@coinweb/contract-kit';
|
import { constructClaim } from '@coinweb/contract-kit';
|
||||||
import { storeOp } from 'cwait';
|
import { readOp, storeOp, TypedClaim } from 'cwait';
|
||||||
|
|
||||||
import { AddWordArgs, createWordKey } from '../offchain/shared';
|
import { AddWordArgs, createWordKey, WordClaimBody } from '../offchain/shared';
|
||||||
|
|
||||||
function hashCode(str: string): string {
|
function hashCode(str: string): string {
|
||||||
let hash = 0;
|
let hash = 0;
|
||||||
@ -15,7 +15,13 @@ function hashCode(str: string): string {
|
|||||||
return `${hash.toString(16)}`;
|
return `${hash.toString(16)}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const addWord = async (...[word]: AddWordArgs) => {
|
export function* addWord(...[word]: AddWordArgs) {
|
||||||
const id = hashCode(word);
|
const id = hashCode(word);
|
||||||
storeOp(constructClaim(createWordKey(id), { word }, '0x0'));
|
yield storeOp(constructClaim(createWordKey(id), { word }, '0x0'));
|
||||||
};
|
|
||||||
|
const wordClaim: TypedClaim<WordClaimBody> | null = yield readOp(createWordKey(id));
|
||||||
|
|
||||||
|
const newWord = (wordClaim?.body.word ?? '') + '!!!';
|
||||||
|
const newId = hashCode(newWord);
|
||||||
|
yield storeOp(constructClaim(createWordKey(newId), { word: newWord }, '0x0'));
|
||||||
|
}
|
||||||
|
|||||||
@ -1,8 +1,16 @@
|
|||||||
import { SELF_REGISTER_HANDLER_NAME, ContractHandlers as CKContractHandlers } from '@coinweb/contract-kit';
|
import {
|
||||||
|
SELF_REGISTER_HANDLER_NAME,
|
||||||
|
ContractHandlers as CKContractHandlers,
|
||||||
|
MethodCallback,
|
||||||
|
selfCallWrapper,
|
||||||
|
addMethodHandler,
|
||||||
|
executeHandler,
|
||||||
|
ContractHandlers,
|
||||||
|
} from '@coinweb/contract-kit';
|
||||||
import { selfRegisterHandler } from '@coinweb/self-register';
|
import { selfRegisterHandler } from '@coinweb/self-register';
|
||||||
import { addMethodHandler, ContractHandlers, executeHandler, executor, MethodCallback, selfCallWrapper } from 'cwait';
|
|
||||||
import { queue } from 'lib/onchain';
|
import { queue } from 'lib/onchain';
|
||||||
|
|
||||||
|
import { executor } from '../../../cwait/dist/onchain';
|
||||||
import { PUBLIC_METHODS } from '../offchain/shared';
|
import { PUBLIC_METHODS } from '../offchain/shared';
|
||||||
|
|
||||||
import { addWord } from './addWord';
|
import { addWord } from './addWord';
|
||||||
@ -23,8 +31,8 @@ const createModule = (): ContractHandlers => {
|
|||||||
return module;
|
return module;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const cwebMain = async () => {
|
export const cwebMain = () => {
|
||||||
const module = createModule();
|
const module = createModule();
|
||||||
|
|
||||||
await executeHandler(module);
|
executeHandler(module);
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,3 +0,0 @@
|
|||||||
export * from './types';
|
|
||||||
export * from './methods';
|
|
||||||
export * from './wrappers';
|
|
||||||
@ -1,59 +0,0 @@
|
|||||||
import { extractContinuations, Context } from '@coinweb/contract-kit';
|
|
||||||
import {
|
|
||||||
getContextCall,
|
|
||||||
getContextGenesis,
|
|
||||||
getContextSystem,
|
|
||||||
getContextTx,
|
|
||||||
writeToResultFile,
|
|
||||||
} from '@coinweb/contract-kit/dist/esm/context';
|
|
||||||
import { getMethodName } from '@coinweb/contract-kit/dist/esm/method';
|
|
||||||
|
|
||||||
import { ContractHandlers, MethodCallback } from './types';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Adds a method handler for a specific method name.
|
|
||||||
* @param contract_module - Contract module containing the method.
|
|
||||||
* @param methodName - The name of the method.
|
|
||||||
* @param handler - The method callback to add.
|
|
||||||
*/
|
|
||||||
export function addMethodHandler(contract_module: ContractHandlers, methodName: string, handler: MethodCallback): void {
|
|
||||||
contract_module.handlers[methodName] = handler;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Retrieves the method handler for a specific method name.
|
|
||||||
* @param contract_module - Contract module containing the method.
|
|
||||||
* @param methodName - The name of the method.
|
|
||||||
* @returns The method callback for the specified method name.
|
|
||||||
* @throws Will throw an error if no handler is specified for the method name.
|
|
||||||
*/
|
|
||||||
export function getMethodHandler(contract_module: ContractHandlers, methodName: string): MethodCallback {
|
|
||||||
const handler = contract_module.handlers[methodName];
|
|
||||||
if (!handler) {
|
|
||||||
throw Error('Handler not specified for this method name');
|
|
||||||
}
|
|
||||||
return handler;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Executes the handler for the method specified in the transaction context.
|
|
||||||
* The results (new transactions) are written to the result file.
|
|
||||||
* @param contractModule - Contract module containing the method.
|
|
||||||
*/
|
|
||||||
export async function executeHandler(contractModule: ContractHandlers): Promise<void> {
|
|
||||||
const contextTx = getContextTx();
|
|
||||||
const contextCall = getContextCall();
|
|
||||||
const genesis = getContextGenesis();
|
|
||||||
const system = getContextSystem();
|
|
||||||
const context: Context = {
|
|
||||||
tx: contextTx,
|
|
||||||
call: contextCall,
|
|
||||||
genesis,
|
|
||||||
system,
|
|
||||||
continuations: extractContinuations(contextTx),
|
|
||||||
};
|
|
||||||
const method = getMethodName(context);
|
|
||||||
const handler = getMethodHandler(contractModule, method);
|
|
||||||
const txs = await handler(context);
|
|
||||||
writeToResultFile(txs);
|
|
||||||
}
|
|
||||||
@ -1,3 +0,0 @@
|
|||||||
declare namespace os {
|
|
||||||
function readdir(path: string): [any[], number];
|
|
||||||
}
|
|
||||||
@ -1,3 +0,0 @@
|
|||||||
declare namespace std {
|
|
||||||
function open(path: string, mode: string): any;
|
|
||||||
}
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
import { Context, NewTx } from '@coinweb/contract-kit';
|
|
||||||
|
|
||||||
export type MethodCallback = (context: Context) => Promise<NewTx[]> | NewTx[];
|
|
||||||
|
|
||||||
export type ContractHandlers = {
|
|
||||||
handlers: { [key: string]: MethodCallback };
|
|
||||||
};
|
|
||||||
@ -1,17 +0,0 @@
|
|||||||
import { Context, isSelfCall } from '@coinweb/contract-kit';
|
|
||||||
|
|
||||||
import { MethodCallback } from './types';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Wraps a method callback to ensure that it can only be called by the contract itself.
|
|
||||||
* @param handler - The method callback to wrap.
|
|
||||||
* @returns A new method callback that throws an error if the call is not from the contract itself.
|
|
||||||
*/
|
|
||||||
export function selfCallWrapper(handler: MethodCallback): MethodCallback {
|
|
||||||
return async (context: Context) => {
|
|
||||||
if (!isSelfCall(context)) {
|
|
||||||
throw new Error('Only contract itself can call it');
|
|
||||||
}
|
|
||||||
return handler(context);
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -1,3 +1,2 @@
|
|||||||
export * from './contract-kit';
|
|
||||||
export * from './onchain';
|
export * from './onchain';
|
||||||
export * from './types';
|
export * from './types';
|
||||||
|
|||||||
@ -12,38 +12,52 @@ import { getCallParameters, queue } from 'lib/onchain';
|
|||||||
import { context, getRawContext, setRawContext } from './context';
|
import { context, getRawContext, setRawContext } from './context';
|
||||||
import { getAwaitedOps } from './ops/awaited';
|
import { getAwaitedOps } from './ops/awaited';
|
||||||
import { pushResolvedOp } from './ops/resolved';
|
import { pushResolvedOp } from './ops/resolved';
|
||||||
|
import { signal } from './signal';
|
||||||
let abortExecution: (() => void) | null = null;
|
|
||||||
|
|
||||||
const handleState = () => {
|
const handleState = () => {
|
||||||
const ctx = getRawContext();
|
const ctx = getRawContext();
|
||||||
|
|
||||||
const resolvedOps = extractContractArgs(ctx.tx);
|
const resolvedOps = extractContractArgs(ctx.tx);
|
||||||
const currentArgs = getMethodArguments(ctx) as [unknown, unknown[], ResolvedOperation[]];
|
const methodArgs = getMethodArguments(ctx) as [unknown, unknown[], ResolvedOperation[]];
|
||||||
|
|
||||||
const initialArgs = currentArgs[1];
|
const initialArgs = methodArgs[1] ?? [];
|
||||||
const allResolvedOps = [...currentArgs[2], ...resolvedOps];
|
const previousOps = methodArgs[2] ?? [];
|
||||||
|
const allResolvedOps = [...previousOps, ...resolvedOps];
|
||||||
|
|
||||||
pushResolvedOp(allResolvedOps);
|
pushResolvedOp(allResolvedOps);
|
||||||
|
|
||||||
return { args: initialArgs, methodName: currentArgs[0] as string, ops: allResolvedOps };
|
return { args: initialArgs, methodName: methodArgs[0] as string, ops: allResolvedOps };
|
||||||
};
|
};
|
||||||
|
|
||||||
export const executor =
|
export const executor =
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
(method: (...args: any[]) => Promise<void>) =>
|
(method: (...args: any[]) => Generator) =>
|
||||||
async (ctx: Context): Promise<NewTx[]> => {
|
(ctx: Context): NewTx[] => {
|
||||||
setRawContext(ctx);
|
setRawContext(ctx);
|
||||||
|
|
||||||
const { args, methodName, ops } = handleState();
|
const { args, methodName, ops } = handleState();
|
||||||
|
|
||||||
const execution = new Promise<void>((resolve, reject) => {
|
const execution = method(...args);
|
||||||
abortExecution = resolve;
|
|
||||||
|
|
||||||
method(...args).then(resolve, reject);
|
let value: unknown;
|
||||||
});
|
let isValue = false;
|
||||||
|
|
||||||
await execution;
|
while (true) {
|
||||||
|
let result: IteratorResult<unknown>;
|
||||||
|
|
||||||
|
if (!isValue) {
|
||||||
|
result = execution.next();
|
||||||
|
isValue = true;
|
||||||
|
} else {
|
||||||
|
result = execution.next(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
value = result.value;
|
||||||
|
|
||||||
|
if (result.done || result.value === signal) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const { authInfo, availableCweb } = getCallParameters(ctx);
|
const { authInfo, availableCweb } = getCallParameters(ctx);
|
||||||
|
|
||||||
@ -56,7 +70,10 @@ export const executor =
|
|||||||
const txFee = 700n + BigInt(awaitedOps.length) * 100n;
|
const txFee = 700n + BigInt(awaitedOps.length) * 100n;
|
||||||
|
|
||||||
return [
|
return [
|
||||||
constructContinueTx(ctx, awaitedOps, [
|
constructContinueTx(
|
||||||
|
ctx,
|
||||||
|
[],
|
||||||
|
[
|
||||||
{
|
{
|
||||||
callInfo: {
|
callInfo: {
|
||||||
ref: constructContractRef(context.issuer, []),
|
ref: constructContractRef(context.issuer, []),
|
||||||
@ -68,17 +85,10 @@ export const executor =
|
|||||||
providedCweb: availableCweb - txFee,
|
providedCweb: availableCweb - txFee,
|
||||||
authenticated: authInfo,
|
authenticated: authInfo,
|
||||||
},
|
},
|
||||||
contractArgs: [],
|
contractArgs: awaitedOps,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
]),
|
]
|
||||||
|
),
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
export const abort = () => {
|
|
||||||
if (!abortExecution) {
|
|
||||||
throw new Error('Abort not found');
|
|
||||||
}
|
|
||||||
|
|
||||||
abortExecution();
|
|
||||||
};
|
|
||||||
|
|||||||
@ -1,3 +1,6 @@
|
|||||||
|
export * from './awaited';
|
||||||
export * from './block';
|
export * from './block';
|
||||||
|
export * from './read';
|
||||||
|
export * from './resolved';
|
||||||
export * from './store';
|
export * from './store';
|
||||||
export * from './take';
|
export * from './take';
|
||||||
|
|||||||
@ -2,26 +2,27 @@ import { Claim, ClaimKey, constructRead, extractRead, isResolvedRead } from '@co
|
|||||||
|
|
||||||
import { TypedClaim } from '../../types';
|
import { TypedClaim } from '../../types';
|
||||||
import { context } from '../context';
|
import { context } from '../context';
|
||||||
import { abort } from '../executor';
|
import { signal } from '../signal';
|
||||||
|
|
||||||
import { pushAwaitedOp } from './awaited';
|
import { pushAwaitedOp } from './awaited';
|
||||||
import { shiftResolvedOp } from './resolved';
|
import { shiftResolvedOp } from './resolved';
|
||||||
|
|
||||||
export const readOp = <TClaim extends Claim = TypedClaim>(key: ClaimKey) => {
|
export const readOp = <TClaim extends Claim = TypedClaim>(key: ClaimKey): TClaim | null => {
|
||||||
const { op, isOp } = shiftResolvedOp();
|
const resolvedOp = shiftResolvedOp();
|
||||||
|
|
||||||
if (!isOp) {
|
if (!resolvedOp.isOp) {
|
||||||
pushAwaitedOp(constructRead(context.issuer, key));
|
pushAwaitedOp(constructRead(context.issuer, key));
|
||||||
} else if (op && !isResolvedRead(op)) {
|
// @ts-expect-error
|
||||||
|
return signal;
|
||||||
|
} else {
|
||||||
|
if (!resolvedOp.op) {
|
||||||
|
return resolvedOp.op;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isResolvedRead(resolvedOp.op)) {
|
||||||
|
return (extractRead(resolvedOp.op)?.[0].content as TClaim | undefined) ?? null;
|
||||||
|
}
|
||||||
|
|
||||||
throw new Error('Read operation not found');
|
throw new Error('Read operation not found');
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Promise<TClaim | null>((resolve) => {
|
|
||||||
if (isOp) {
|
|
||||||
const claim = op && ((extractRead(op)?.[0] ?? null) as TClaim | null);
|
|
||||||
resolve(claim);
|
|
||||||
} else {
|
|
||||||
abort();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,31 +1,26 @@
|
|||||||
import { Claim, constructStore, isResolvedStore } from '@coinweb/contract-kit';
|
import { Claim, constructStore, isResolvedStore } from '@coinweb/contract-kit';
|
||||||
import { extractStore } from '@coinweb/contract-kit/dist/esm/operations/store';
|
|
||||||
|
|
||||||
import { abort } from '../executor';
|
import { signal } from '../signal';
|
||||||
|
|
||||||
import { pushAwaitedOp } from './awaited';
|
import { pushAwaitedOp } from './awaited';
|
||||||
import { shiftResolvedOp } from './resolved';
|
import { shiftResolvedOp } from './resolved';
|
||||||
|
|
||||||
export const storeOp = (claim: Claim) => {
|
export const storeOp = (claim: Claim): Claim | null => {
|
||||||
const { op, isOp } = shiftResolvedOp();
|
const resolvedOp = shiftResolvedOp();
|
||||||
|
|
||||||
if (!isOp) {
|
if (!resolvedOp.isOp) {
|
||||||
pushAwaitedOp(constructStore(claim));
|
pushAwaitedOp(constructStore(claim));
|
||||||
} else if (op && !isResolvedStore(op)) {
|
// @ts-expect-error
|
||||||
|
return signal;
|
||||||
|
} else {
|
||||||
|
if (!resolvedOp.op) {
|
||||||
|
return resolvedOp.op;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isResolvedStore(resolvedOp.op)) {
|
||||||
|
return resolvedOp.op.StoreOp;
|
||||||
|
}
|
||||||
|
|
||||||
throw new Error('Store operation not found');
|
throw new Error('Store operation not found');
|
||||||
}
|
}
|
||||||
|
|
||||||
const result = op && extractStore(op);
|
|
||||||
|
|
||||||
if (!result) {
|
|
||||||
throw new Error('Wrong store operation');
|
|
||||||
}
|
|
||||||
|
|
||||||
return new Promise<Claim>((resolve) => {
|
|
||||||
if (isOp) {
|
|
||||||
resolve(result);
|
|
||||||
} else {
|
|
||||||
abort();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,26 +1,27 @@
|
|||||||
import { constructTake, extractTake, isResolvedTake, Claim, ClaimKey } from '@coinweb/contract-kit';
|
import { constructTake, extractTake, isResolvedTake, Claim, ClaimKey } from '@coinweb/contract-kit';
|
||||||
|
|
||||||
import { TypedClaim } from '../../types';
|
import { TypedClaim } from '../../types';
|
||||||
import { abort } from '../executor';
|
import { signal } from '../signal';
|
||||||
|
|
||||||
import { pushAwaitedOp } from './awaited';
|
import { pushAwaitedOp } from './awaited';
|
||||||
import { shiftResolvedOp } from './resolved';
|
import { shiftResolvedOp } from './resolved';
|
||||||
|
|
||||||
export const takeOp = <TClaim extends Claim = TypedClaim>(key: ClaimKey) => {
|
export const takeOp = <TClaim extends Claim = TypedClaim>(key: ClaimKey): TClaim | null => {
|
||||||
const { op, isOp } = shiftResolvedOp();
|
const resolvedOp = shiftResolvedOp();
|
||||||
|
|
||||||
if (!isOp) {
|
if (!resolvedOp.isOp) {
|
||||||
pushAwaitedOp(constructTake(key));
|
pushAwaitedOp(constructTake(key));
|
||||||
} else if (op && !isResolvedTake(op)) {
|
// @ts-expect-error
|
||||||
|
return signal;
|
||||||
|
} else {
|
||||||
|
if (!resolvedOp.op) {
|
||||||
|
return resolvedOp.op;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isResolvedTake(resolvedOp.op)) {
|
||||||
|
return extractTake(resolvedOp.op) as TClaim;
|
||||||
|
}
|
||||||
|
|
||||||
throw new Error('Take operation not found');
|
throw new Error('Take operation not found');
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Promise<TClaim | null>((resolve) => {
|
|
||||||
if (isOp) {
|
|
||||||
const claim = op && extractTake(op);
|
|
||||||
resolve(claim as TClaim | null);
|
|
||||||
} else {
|
|
||||||
abort();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|||||||
1
packages/cwait/src/onchain/signal.ts
Normal file
1
packages/cwait/src/onchain/signal.ts
Normal file
@ -0,0 +1 @@
|
|||||||
|
export const signal = Symbol('signal');
|
||||||
@ -1,4 +1,4 @@
|
|||||||
VITE_API_URL='https://api-cloud.coinweb.io/wallet'
|
VITE_API_URL='https://api-cloud.coinweb.io/wallet'
|
||||||
VITE_EXPLORER_URL='https://explorer.coinweb.io'
|
VITE_EXPLORER_URL='https://explorer.coinweb.io'
|
||||||
|
|
||||||
VITE_CONTRACT_ADDRESS="0xc8ed7479667e1b1a9223db34e6a91b3970c7f82686ed0712fce89117a10b77ec"
|
VITE_CONTRACT_ADDRESS="0xe1e81e77f901f630ab760a84b6bb84c96c3a4ec996a287efac2c8502e94a287f"
|
||||||
264
yarn.lock
264
yarn.lock
@ -501,6 +501,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/aix-ppc64@npm:0.20.2":
|
||||||
|
version: 0.20.2
|
||||||
|
resolution: "@esbuild/aix-ppc64@npm:0.20.2"
|
||||||
|
conditions: os=aix & cpu=ppc64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/aix-ppc64@npm:0.21.5":
|
"@esbuild/aix-ppc64@npm:0.21.5":
|
||||||
version: 0.21.5
|
version: 0.21.5
|
||||||
resolution: "@esbuild/aix-ppc64@npm:0.21.5"
|
resolution: "@esbuild/aix-ppc64@npm:0.21.5"
|
||||||
@ -515,6 +522,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/android-arm64@npm:0.20.2":
|
||||||
|
version: 0.20.2
|
||||||
|
resolution: "@esbuild/android-arm64@npm:0.20.2"
|
||||||
|
conditions: os=android & cpu=arm64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/android-arm64@npm:0.21.5":
|
"@esbuild/android-arm64@npm:0.21.5":
|
||||||
version: 0.21.5
|
version: 0.21.5
|
||||||
resolution: "@esbuild/android-arm64@npm:0.21.5"
|
resolution: "@esbuild/android-arm64@npm:0.21.5"
|
||||||
@ -529,6 +543,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/android-arm@npm:0.20.2":
|
||||||
|
version: 0.20.2
|
||||||
|
resolution: "@esbuild/android-arm@npm:0.20.2"
|
||||||
|
conditions: os=android & cpu=arm
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/android-arm@npm:0.21.5":
|
"@esbuild/android-arm@npm:0.21.5":
|
||||||
version: 0.21.5
|
version: 0.21.5
|
||||||
resolution: "@esbuild/android-arm@npm:0.21.5"
|
resolution: "@esbuild/android-arm@npm:0.21.5"
|
||||||
@ -543,6 +564,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/android-x64@npm:0.20.2":
|
||||||
|
version: 0.20.2
|
||||||
|
resolution: "@esbuild/android-x64@npm:0.20.2"
|
||||||
|
conditions: os=android & cpu=x64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/android-x64@npm:0.21.5":
|
"@esbuild/android-x64@npm:0.21.5":
|
||||||
version: 0.21.5
|
version: 0.21.5
|
||||||
resolution: "@esbuild/android-x64@npm:0.21.5"
|
resolution: "@esbuild/android-x64@npm:0.21.5"
|
||||||
@ -557,6 +585,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/darwin-arm64@npm:0.20.2":
|
||||||
|
version: 0.20.2
|
||||||
|
resolution: "@esbuild/darwin-arm64@npm:0.20.2"
|
||||||
|
conditions: os=darwin & cpu=arm64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/darwin-arm64@npm:0.21.5":
|
"@esbuild/darwin-arm64@npm:0.21.5":
|
||||||
version: 0.21.5
|
version: 0.21.5
|
||||||
resolution: "@esbuild/darwin-arm64@npm:0.21.5"
|
resolution: "@esbuild/darwin-arm64@npm:0.21.5"
|
||||||
@ -571,6 +606,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/darwin-x64@npm:0.20.2":
|
||||||
|
version: 0.20.2
|
||||||
|
resolution: "@esbuild/darwin-x64@npm:0.20.2"
|
||||||
|
conditions: os=darwin & cpu=x64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/darwin-x64@npm:0.21.5":
|
"@esbuild/darwin-x64@npm:0.21.5":
|
||||||
version: 0.21.5
|
version: 0.21.5
|
||||||
resolution: "@esbuild/darwin-x64@npm:0.21.5"
|
resolution: "@esbuild/darwin-x64@npm:0.21.5"
|
||||||
@ -585,6 +627,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/freebsd-arm64@npm:0.20.2":
|
||||||
|
version: 0.20.2
|
||||||
|
resolution: "@esbuild/freebsd-arm64@npm:0.20.2"
|
||||||
|
conditions: os=freebsd & cpu=arm64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/freebsd-arm64@npm:0.21.5":
|
"@esbuild/freebsd-arm64@npm:0.21.5":
|
||||||
version: 0.21.5
|
version: 0.21.5
|
||||||
resolution: "@esbuild/freebsd-arm64@npm:0.21.5"
|
resolution: "@esbuild/freebsd-arm64@npm:0.21.5"
|
||||||
@ -599,6 +648,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/freebsd-x64@npm:0.20.2":
|
||||||
|
version: 0.20.2
|
||||||
|
resolution: "@esbuild/freebsd-x64@npm:0.20.2"
|
||||||
|
conditions: os=freebsd & cpu=x64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/freebsd-x64@npm:0.21.5":
|
"@esbuild/freebsd-x64@npm:0.21.5":
|
||||||
version: 0.21.5
|
version: 0.21.5
|
||||||
resolution: "@esbuild/freebsd-x64@npm:0.21.5"
|
resolution: "@esbuild/freebsd-x64@npm:0.21.5"
|
||||||
@ -613,6 +669,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/linux-arm64@npm:0.20.2":
|
||||||
|
version: 0.20.2
|
||||||
|
resolution: "@esbuild/linux-arm64@npm:0.20.2"
|
||||||
|
conditions: os=linux & cpu=arm64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/linux-arm64@npm:0.21.5":
|
"@esbuild/linux-arm64@npm:0.21.5":
|
||||||
version: 0.21.5
|
version: 0.21.5
|
||||||
resolution: "@esbuild/linux-arm64@npm:0.21.5"
|
resolution: "@esbuild/linux-arm64@npm:0.21.5"
|
||||||
@ -627,6 +690,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/linux-arm@npm:0.20.2":
|
||||||
|
version: 0.20.2
|
||||||
|
resolution: "@esbuild/linux-arm@npm:0.20.2"
|
||||||
|
conditions: os=linux & cpu=arm
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/linux-arm@npm:0.21.5":
|
"@esbuild/linux-arm@npm:0.21.5":
|
||||||
version: 0.21.5
|
version: 0.21.5
|
||||||
resolution: "@esbuild/linux-arm@npm:0.21.5"
|
resolution: "@esbuild/linux-arm@npm:0.21.5"
|
||||||
@ -641,6 +711,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/linux-ia32@npm:0.20.2":
|
||||||
|
version: 0.20.2
|
||||||
|
resolution: "@esbuild/linux-ia32@npm:0.20.2"
|
||||||
|
conditions: os=linux & cpu=ia32
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/linux-ia32@npm:0.21.5":
|
"@esbuild/linux-ia32@npm:0.21.5":
|
||||||
version: 0.21.5
|
version: 0.21.5
|
||||||
resolution: "@esbuild/linux-ia32@npm:0.21.5"
|
resolution: "@esbuild/linux-ia32@npm:0.21.5"
|
||||||
@ -655,6 +732,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/linux-loong64@npm:0.20.2":
|
||||||
|
version: 0.20.2
|
||||||
|
resolution: "@esbuild/linux-loong64@npm:0.20.2"
|
||||||
|
conditions: os=linux & cpu=loong64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/linux-loong64@npm:0.21.5":
|
"@esbuild/linux-loong64@npm:0.21.5":
|
||||||
version: 0.21.5
|
version: 0.21.5
|
||||||
resolution: "@esbuild/linux-loong64@npm:0.21.5"
|
resolution: "@esbuild/linux-loong64@npm:0.21.5"
|
||||||
@ -669,6 +753,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/linux-mips64el@npm:0.20.2":
|
||||||
|
version: 0.20.2
|
||||||
|
resolution: "@esbuild/linux-mips64el@npm:0.20.2"
|
||||||
|
conditions: os=linux & cpu=mips64el
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/linux-mips64el@npm:0.21.5":
|
"@esbuild/linux-mips64el@npm:0.21.5":
|
||||||
version: 0.21.5
|
version: 0.21.5
|
||||||
resolution: "@esbuild/linux-mips64el@npm:0.21.5"
|
resolution: "@esbuild/linux-mips64el@npm:0.21.5"
|
||||||
@ -683,6 +774,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/linux-ppc64@npm:0.20.2":
|
||||||
|
version: 0.20.2
|
||||||
|
resolution: "@esbuild/linux-ppc64@npm:0.20.2"
|
||||||
|
conditions: os=linux & cpu=ppc64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/linux-ppc64@npm:0.21.5":
|
"@esbuild/linux-ppc64@npm:0.21.5":
|
||||||
version: 0.21.5
|
version: 0.21.5
|
||||||
resolution: "@esbuild/linux-ppc64@npm:0.21.5"
|
resolution: "@esbuild/linux-ppc64@npm:0.21.5"
|
||||||
@ -697,6 +795,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/linux-riscv64@npm:0.20.2":
|
||||||
|
version: 0.20.2
|
||||||
|
resolution: "@esbuild/linux-riscv64@npm:0.20.2"
|
||||||
|
conditions: os=linux & cpu=riscv64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/linux-riscv64@npm:0.21.5":
|
"@esbuild/linux-riscv64@npm:0.21.5":
|
||||||
version: 0.21.5
|
version: 0.21.5
|
||||||
resolution: "@esbuild/linux-riscv64@npm:0.21.5"
|
resolution: "@esbuild/linux-riscv64@npm:0.21.5"
|
||||||
@ -711,6 +816,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/linux-s390x@npm:0.20.2":
|
||||||
|
version: 0.20.2
|
||||||
|
resolution: "@esbuild/linux-s390x@npm:0.20.2"
|
||||||
|
conditions: os=linux & cpu=s390x
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/linux-s390x@npm:0.21.5":
|
"@esbuild/linux-s390x@npm:0.21.5":
|
||||||
version: 0.21.5
|
version: 0.21.5
|
||||||
resolution: "@esbuild/linux-s390x@npm:0.21.5"
|
resolution: "@esbuild/linux-s390x@npm:0.21.5"
|
||||||
@ -725,6 +837,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/linux-x64@npm:0.20.2":
|
||||||
|
version: 0.20.2
|
||||||
|
resolution: "@esbuild/linux-x64@npm:0.20.2"
|
||||||
|
conditions: os=linux & cpu=x64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/linux-x64@npm:0.21.5":
|
"@esbuild/linux-x64@npm:0.21.5":
|
||||||
version: 0.21.5
|
version: 0.21.5
|
||||||
resolution: "@esbuild/linux-x64@npm:0.21.5"
|
resolution: "@esbuild/linux-x64@npm:0.21.5"
|
||||||
@ -746,6 +865,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/netbsd-x64@npm:0.20.2":
|
||||||
|
version: 0.20.2
|
||||||
|
resolution: "@esbuild/netbsd-x64@npm:0.20.2"
|
||||||
|
conditions: os=netbsd & cpu=x64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/netbsd-x64@npm:0.21.5":
|
"@esbuild/netbsd-x64@npm:0.21.5":
|
||||||
version: 0.21.5
|
version: 0.21.5
|
||||||
resolution: "@esbuild/netbsd-x64@npm:0.21.5"
|
resolution: "@esbuild/netbsd-x64@npm:0.21.5"
|
||||||
@ -767,6 +893,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/openbsd-x64@npm:0.20.2":
|
||||||
|
version: 0.20.2
|
||||||
|
resolution: "@esbuild/openbsd-x64@npm:0.20.2"
|
||||||
|
conditions: os=openbsd & cpu=x64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/openbsd-x64@npm:0.21.5":
|
"@esbuild/openbsd-x64@npm:0.21.5":
|
||||||
version: 0.21.5
|
version: 0.21.5
|
||||||
resolution: "@esbuild/openbsd-x64@npm:0.21.5"
|
resolution: "@esbuild/openbsd-x64@npm:0.21.5"
|
||||||
@ -781,6 +914,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/sunos-x64@npm:0.20.2":
|
||||||
|
version: 0.20.2
|
||||||
|
resolution: "@esbuild/sunos-x64@npm:0.20.2"
|
||||||
|
conditions: os=sunos & cpu=x64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/sunos-x64@npm:0.21.5":
|
"@esbuild/sunos-x64@npm:0.21.5":
|
||||||
version: 0.21.5
|
version: 0.21.5
|
||||||
resolution: "@esbuild/sunos-x64@npm:0.21.5"
|
resolution: "@esbuild/sunos-x64@npm:0.21.5"
|
||||||
@ -795,6 +935,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/win32-arm64@npm:0.20.2":
|
||||||
|
version: 0.20.2
|
||||||
|
resolution: "@esbuild/win32-arm64@npm:0.20.2"
|
||||||
|
conditions: os=win32 & cpu=arm64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/win32-arm64@npm:0.21.5":
|
"@esbuild/win32-arm64@npm:0.21.5":
|
||||||
version: 0.21.5
|
version: 0.21.5
|
||||||
resolution: "@esbuild/win32-arm64@npm:0.21.5"
|
resolution: "@esbuild/win32-arm64@npm:0.21.5"
|
||||||
@ -809,6 +956,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/win32-ia32@npm:0.20.2":
|
||||||
|
version: 0.20.2
|
||||||
|
resolution: "@esbuild/win32-ia32@npm:0.20.2"
|
||||||
|
conditions: os=win32 & cpu=ia32
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/win32-ia32@npm:0.21.5":
|
"@esbuild/win32-ia32@npm:0.21.5":
|
||||||
version: 0.21.5
|
version: 0.21.5
|
||||||
resolution: "@esbuild/win32-ia32@npm:0.21.5"
|
resolution: "@esbuild/win32-ia32@npm:0.21.5"
|
||||||
@ -823,6 +977,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/win32-x64@npm:0.20.2":
|
||||||
|
version: 0.20.2
|
||||||
|
resolution: "@esbuild/win32-x64@npm:0.20.2"
|
||||||
|
conditions: os=win32 & cpu=x64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/win32-x64@npm:0.21.5":
|
"@esbuild/win32-x64@npm:0.21.5":
|
||||||
version: 0.21.5
|
version: 0.21.5
|
||||||
resolution: "@esbuild/win32-x64@npm:0.21.5"
|
resolution: "@esbuild/win32-x64@npm:0.21.5"
|
||||||
@ -2813,6 +2974,9 @@ __metadata:
|
|||||||
"@noble/hashes": "npm:1.4.0"
|
"@noble/hashes": "npm:1.4.0"
|
||||||
bech32: "npm:2.0.0"
|
bech32: "npm:2.0.0"
|
||||||
bs58: "npm:6.0.0"
|
bs58: "npm:6.0.0"
|
||||||
|
esbuild: "npm:^0.20.2"
|
||||||
|
js-yaml: "npm:^4.1.0"
|
||||||
|
write-yaml-file: "npm:^5.0.0"
|
||||||
languageName: unknown
|
languageName: unknown
|
||||||
linkType: soft
|
linkType: soft
|
||||||
|
|
||||||
@ -3510,6 +3674,86 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"esbuild@npm:^0.20.2":
|
||||||
|
version: 0.20.2
|
||||||
|
resolution: "esbuild@npm:0.20.2"
|
||||||
|
dependencies:
|
||||||
|
"@esbuild/aix-ppc64": "npm:0.20.2"
|
||||||
|
"@esbuild/android-arm": "npm:0.20.2"
|
||||||
|
"@esbuild/android-arm64": "npm:0.20.2"
|
||||||
|
"@esbuild/android-x64": "npm:0.20.2"
|
||||||
|
"@esbuild/darwin-arm64": "npm:0.20.2"
|
||||||
|
"@esbuild/darwin-x64": "npm:0.20.2"
|
||||||
|
"@esbuild/freebsd-arm64": "npm:0.20.2"
|
||||||
|
"@esbuild/freebsd-x64": "npm:0.20.2"
|
||||||
|
"@esbuild/linux-arm": "npm:0.20.2"
|
||||||
|
"@esbuild/linux-arm64": "npm:0.20.2"
|
||||||
|
"@esbuild/linux-ia32": "npm:0.20.2"
|
||||||
|
"@esbuild/linux-loong64": "npm:0.20.2"
|
||||||
|
"@esbuild/linux-mips64el": "npm:0.20.2"
|
||||||
|
"@esbuild/linux-ppc64": "npm:0.20.2"
|
||||||
|
"@esbuild/linux-riscv64": "npm:0.20.2"
|
||||||
|
"@esbuild/linux-s390x": "npm:0.20.2"
|
||||||
|
"@esbuild/linux-x64": "npm:0.20.2"
|
||||||
|
"@esbuild/netbsd-x64": "npm:0.20.2"
|
||||||
|
"@esbuild/openbsd-x64": "npm:0.20.2"
|
||||||
|
"@esbuild/sunos-x64": "npm:0.20.2"
|
||||||
|
"@esbuild/win32-arm64": "npm:0.20.2"
|
||||||
|
"@esbuild/win32-ia32": "npm:0.20.2"
|
||||||
|
"@esbuild/win32-x64": "npm:0.20.2"
|
||||||
|
dependenciesMeta:
|
||||||
|
"@esbuild/aix-ppc64":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/android-arm":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/android-arm64":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/android-x64":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/darwin-arm64":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/darwin-x64":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/freebsd-arm64":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/freebsd-x64":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/linux-arm":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/linux-arm64":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/linux-ia32":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/linux-loong64":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/linux-mips64el":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/linux-ppc64":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/linux-riscv64":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/linux-s390x":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/linux-x64":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/netbsd-x64":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/openbsd-x64":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/sunos-x64":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/win32-arm64":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/win32-ia32":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/win32-x64":
|
||||||
|
optional: true
|
||||||
|
bin:
|
||||||
|
esbuild: bin/esbuild
|
||||||
|
checksum: 10c0/66398f9fb2c65e456a3e649747b39af8a001e47963b25e86d9c09d2a48d61aa641b27da0ce5cad63df95ad246105e1d83e7fee0e1e22a0663def73b1c5101112
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"esbuild@npm:^0.21.3":
|
"esbuild@npm:^0.21.3":
|
||||||
version: 0.21.5
|
version: 0.21.5
|
||||||
resolution: "esbuild@npm:0.21.5"
|
resolution: "esbuild@npm:0.21.5"
|
||||||
@ -9327,6 +9571,26 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"write-file-atomic@npm:^5.0.1":
|
||||||
|
version: 5.0.1
|
||||||
|
resolution: "write-file-atomic@npm:5.0.1"
|
||||||
|
dependencies:
|
||||||
|
imurmurhash: "npm:^0.1.4"
|
||||||
|
signal-exit: "npm:^4.0.1"
|
||||||
|
checksum: 10c0/e8c850a8e3e74eeadadb8ad23c9d9d63e4e792bd10f4836ed74189ef6e996763959f1249c5650e232f3c77c11169d239cbfc8342fc70f3fe401407d23810505d
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"write-yaml-file@npm:^5.0.0":
|
||||||
|
version: 5.0.0
|
||||||
|
resolution: "write-yaml-file@npm:5.0.0"
|
||||||
|
dependencies:
|
||||||
|
js-yaml: "npm:^4.1.0"
|
||||||
|
write-file-atomic: "npm:^5.0.1"
|
||||||
|
checksum: 10c0/65fc968225dc216ff1e120f0c0329188d8057e7f1d6abe7bda25d5f074b691495f2f8d48272e29aaceb7356d163a4812b400e6c549e26e50e97ac601308ea3c8
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"ws@npm:^8.16.0, ws@npm:^8.18.0":
|
"ws@npm:^8.16.0, ws@npm:^8.18.0":
|
||||||
version: 8.18.1
|
version: 8.18.1
|
||||||
resolution: "ws@npm:8.18.1"
|
resolution: "ws@npm:8.18.1"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user