Compare commits

..

No commits in common. "main" and "1.3.3" have entirely different histories.
main ... 1.3.3

22 changed files with 3640 additions and 3480 deletions

View file

@ -4,96 +4,96 @@
name: Bug Report name: Bug Report
about: File a bug report about: File a bug report
labels: ['bug', 'to be confirmed'] labels: ["bug", "to be confirmed"]
body: body:
- type: markdown - type: markdown
attributes: attributes:
value: | value: |
Your issue may already have been reported! Please search on the [issue tracker](https://git.f3l.de/dungeonslayers/tickwerk/issues) before submitting a new one. Your issue may already have been reported! Please search on the [issue tracker](https://git.f3l.de/dungeonslayers/tickwerk/issues) before submitting a new one.
Thanks for taking the time to fill out this bug report! In order to make it effective, please provide the following information. Thanks for taking the time to fill out this bug report! In order to make it effective, please provide the following information.
- type: markdown - type: markdown
attributes: attributes:
value: | value: |
## Issue Description ## Issue Description
- type: textarea - type: textarea
id: expected id: expected
attributes: attributes:
label: Expected Behavior label: Expected Behavior
description: What is the behavior that you expected? description: What is the behavior that you expected?
validations: validations:
required: true required: true
- type: textarea - type: textarea
id: current id: current
attributes: attributes:
label: Current Behavior label: Current Behavior
description: What is the current behavior, i.e., what happens actually? description: What is the current behavior, i.e., what happens actually?
validations: validations:
required: true required: true
- type: textarea - type: textarea
id: steps id: steps
attributes: attributes:
label: Steps to Reproduce label: Steps to Reproduce
description: What are the steps to reproduce the problem? description: What are the steps to reproduce the problem?
placeholder: | placeholder: |
1. 1.
2. 2.
3. 3.
4. 4.
validations: validations:
required: true required: true
- type: textarea - type: textarea
id: context id: context
attributes: attributes:
label: Context label: Context
description: Please provide any additional context that might be helpful, e.g. log messages, screenshots, videos, or exports of problematic scenes or worlds. description: Please provide any additional context that might be helpful, e.g. log messages, screenshots, videos, or exports of problematic scenes or worlds.
validations: validations:
required: false required: false
- type: markdown - type: markdown
attributes: attributes:
value: | value: |
## Environment Details ## Environment Details
- type: input - type: input
id: version id: version
attributes: attributes:
label: Version label: Version
description: Which version(s) of Tickwerk are you seeing the problem on? description: Which version(s) of Tickwerk are you seeing the problem on?
validations: validations:
required: true required: true
- type: input - type: input
id: foundry-version id: foundry-version
attributes: attributes:
label: Foundry VTT Version label: Foundry VTT Version
description: Which version(s) and build of Foundry VTT are you seeing the problem on? description: Which version(s) and build of Foundry VTT are you seeing the problem on?
validations: validations:
required: true required: true
- type: input - type: input
id: os id: os
attributes: attributes:
label: Operating System label: Operating System
description: Which operating system are you using? (Windows, OS X, Linux (which distro)) description: Which operating system are you using? (Windows, OS X, Linux (which distro))
placeholder: Windows placeholder: Windows
validations: validations:
required: true required: true
- type: dropdown - type: dropdown
id: browser id: browser
attributes: attributes:
label: Browser / App label: Browser / App
description: Are you using a Browser or the native Electron application? (Select all that apply) description: Are you using a Browser or the native Electron application? (Select all that apply)
multiple: true multiple: true
options: options:
- Native Electron App - Native Electron App
- Chrome - Chrome
- Firefox - Firefox
- Microsoft Edge - Microsoft Edge
- Safari - Safari
- Other - Other
validations: validations:
required: true required: true
- type: input - type: input
id: modules id: modules
attributes: attributes:
label: Relevant Modules label: Relevant Modules
description: Please list any other active modules (including their versions) that you think might be relevant. description: Please list any other active modules (including their versions) that you think might be relevant.
validations: validations:
required: false required: false

View file

@ -4,25 +4,25 @@
name: Feature Request name: Feature Request
description: Submit a feature request description: Submit a feature request
labels: ['feature'] labels: ["feature"]
body: body:
- type: markdown - type: markdown
attributes: attributes:
value: | value: |
Your issue may already have been reported! Please search on the [issue tracker](https://git.f3l.de/dungeonslayers/tickwerk/issues) before submitting a new one. Your issue may already have been reported! Please search on the [issue tracker](https://git.f3l.de/dungeonslayers/tickwerk/issues) before submitting a new one.
In order to submit an effective feature request, please provide the following information. In order to submit an effective feature request, please provide the following information.
- type: textarea - type: textarea
id: description id: description
attributes: attributes:
label: Description label: Description
description: Please describe the proposal in as much detail as you feel is necessary. description: Please describe the proposal in as much detail as you feel is necessary.
validations: validations:
required: true required: true
- type: textarea - type: textarea
id: context id: context
attributes: attributes:
label: Context label: Context
description: Is there anything else you can add about the proposal? You might want to link to related issues here if you haven't already. description: Is there anything else you can add about the proposal? You might want to link to related issues here if you haven't already.
validations: validations:
required: false required: false

View file

@ -4,5 +4,5 @@
"**/.pnp.*": true "**/.pnp.*": true
}, },
"eslint.nodePath": ".yarn/sdks", "eslint.nodePath": ".yarn/sdks",
"prettier.prettierPath": ".yarn/sdks/prettier/index.js" "prettier.prettierPath": ".yarn/sdks/prettier/index.js",
} }

View file

@ -5,41 +5,41 @@
$schema: https://raw.githubusercontent.com/woodpecker-ci/woodpecker/master/pipeline/schema/schema.json $schema: https://raw.githubusercontent.com/woodpecker-ci/woodpecker/master/pipeline/schema/schema.json
variables: variables:
- &node_image node:lts - &node_image node:lts
when: when:
- event: push - event: push
branch: ${CI_REPO_DEFAULT_BRANCH} branch: ${CI_REPO_DEFAULT_BRANCH}
- event: pull_request - event: pull_request
- event: tag - event: tag
- event: manual - event: manual
steps: steps:
install: install:
image: *node_image image: *node_image
commands: commands:
- yarn install --immutable - yarn install --immutable
lint: lint:
group: check group: check
image: *node_image image: *node_image
commands: commands:
- yarn lint - yarn lint
reuse: reuse:
group: check group: check
image: fsfe/reuse:latest image: fsfe/reuse:latest
commands: commands:
- reuse lint - reuse lint
commitlint: commitlint:
group: check group: check
image: *node_image image: *node_image
commands: commands:
- git fetch - git fetch
- yarn run commitlint --from origin/${CI_COMMIT_TARGET_BRANCH} - yarn run commitlint --from origin/${CI_COMMIT_TARGET_BRANCH}
when: when:
event: pull_request event: pull_request
build: build:
group: build group: build
image: *node_image image: *node_image
commands: commands:
- export APPDATA=$(pwd) - export APPDATA=$(pwd)
- yarn build - yarn build

View file

@ -77,15 +77,15 @@ steps:
- forge_token - forge_token
publish-to-foundry-admin: publish-to-foundry-admin:
group: publish group: publish
image: johannesloher/foundry-publish:v2.4.1 image: johannesloher/foundry-publish
environment: environment:
FVTT_DELETE_OBSOLETE_VERSIONS: 'true' FVTT_DELETE_OBSOLETE_VERSIONS: 'true'
FVTT_USE_NEW_PACKAGE_ADMINISTRATION_INTERFACE: 'true'
commands: commands:
- export FVTT_MANIFEST_PATH=${CI_REPO_NAME}/module.json - export FVTT_MANIFEST_PATH=${CI_REPO_NAME}/module.json
- export FVTT_MANIFEST_URL=${CI_REPO_URL}/releases/download/${CI_COMMIT_TAG}/module.json - export FVTT_MANIFEST_URL=${CI_REPO_URL}/releases/download/${CI_COMMIT_TAG}/module.json
- foundry-publish - foundry-publish
secrets: secrets:
- fvtt_package_id
- fvtt_username - fvtt_username
- fvtt_password - fvtt_password
when: when:

View file

@ -5,38 +5,37 @@
$schema: https://raw.githubusercontent.com/woodpecker-ci/woodpecker/master/pipeline/schema/schema.json $schema: https://raw.githubusercontent.com/woodpecker-ci/woodpecker/master/pipeline/schema/schema.json
variables: variables:
- &node_image node:lts - &node_image node:lts
when: when:
event: manual event: manual
branch: ${CI_REPO_DEFAULT_BRANCH} branch: ${CI_REPO_DEFAULT_BRANCH}
depends_on: depends_on:
- checks - checks
steps: steps:
install: install:
image: *node_image image: *node_image
commands: commands:
- yarn install --immutable - yarn install --immutable
release: release:
image: *node_image image: *node_image
commands: commands:
- apt-get update - apt-get update
- apt-get install --yes jq - apt-get install --yes jq
- export REPOSITORY_URL=$(echo "${CI_REPO_CLONE_URL}" | sed -e "s|://|://$${FORGE_TOKEN_NAME}:$${FORGE_TOKEN}@|g") - export REPOSITORY_URL=$(echo "${CI_REPO_CLONE_URL}" | sed -e "s|://|://$${FORGE_TOKEN_NAME}:$${FORGE_TOKEN}@|g")
- git remote set-url origin $${REPOSITORY_URL} - git remote set-url origin $${REPOSITORY_URL}
- git config user.name woodpecker[bot] - git config user.name woodpecker[bot]
- git config user.email woodpecker[bot]@${CI_SYSTEM_HOST} - git config user.email woodpecker[bot]@${CI_SYSTEM_HOST}
- yarn bump-version --release=${RELEASE_TYPE} - yarn bump-version --release=${RELEASE_TYPE}
- export RELEASE_VERSION=$(jq -r '.version' < package.json) - export RELEASE_VERSION=$(jq -r '.version' < package.json)
- yarn prettier --write package.json module.json - git --no-pager diff
- git --no-pager diff - git add package.json module.json
- git add package.json module.json - 'git commit -m "chore(release): $${RELEASE_VERSION}"'
- 'git commit -m "chore(release): $${RELEASE_VERSION}"' - git tag -f $${RELEASE_VERSION}
- git tag -f $${RELEASE_VERSION} - git push origin ${CI_COMMIT_BRANCH}
- git push origin ${CI_COMMIT_BRANCH} - git push origin $${RELEASE_VERSION}
- git push origin $${RELEASE_VERSION} secrets:
secrets: - forge_token_name
- forge_token_name - forge_token
- forge_token

File diff suppressed because one or more lines are too long

874
.yarn/releases/yarn-3.6.0.cjs vendored Executable file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,20 +0,0 @@
#!/usr/bin/env node
const {existsSync} = require(`fs`);
const {createRequire} = require(`module`);
const {resolve} = require(`path`);
const relPnpApiPath = "../../../../.pnp.cjs";
const absPnpApiPath = resolve(__dirname, relPnpApiPath);
const absRequire = createRequire(absPnpApiPath);
if (existsSync(absPnpApiPath)) {
if (!process.versions.pnp) {
// Setup the environment to be able to require eslint/use-at-your-own-risk
require(absPnpApiPath).setup();
}
}
// Defer to the real eslint/use-at-your-own-risk your application uses
module.exports = absRequire(`eslint/use-at-your-own-risk`);

View file

@ -1,14 +1,6 @@
{ {
"name": "eslint", "name": "eslint",
"version": "8.52.0-sdk", "version": "8.28.0-sdk",
"main": "./lib/api.js", "main": "./lib/api.js",
"type": "commonjs", "type": "commonjs"
"bin": {
"eslint": "./bin/eslint.js"
},
"exports": {
"./package.json": "./package.json",
".": "./lib/api.js",
"./use-at-your-own-risk": "./lib/unsupported-api.js"
}
} }

View file

@ -1,20 +0,0 @@
#!/usr/bin/env node
const {existsSync} = require(`fs`);
const {createRequire} = require(`module`);
const {resolve} = require(`path`);
const relPnpApiPath = "../../../.pnp.cjs";
const absPnpApiPath = resolve(__dirname, relPnpApiPath);
const absRequire = createRequire(absPnpApiPath);
if (existsSync(absPnpApiPath)) {
if (!process.versions.pnp) {
// Setup the environment to be able to require prettier/bin-prettier.js
require(absPnpApiPath).setup();
}
}
// Defer to the real prettier/bin-prettier.js your application uses
module.exports = absRequire(`prettier/bin-prettier.js`);

6
.yarn/sdks/prettier/index.js vendored Normal file → Executable file
View file

@ -11,10 +11,10 @@ const absRequire = createRequire(absPnpApiPath);
if (existsSync(absPnpApiPath)) { if (existsSync(absPnpApiPath)) {
if (!process.versions.pnp) { if (!process.versions.pnp) {
// Setup the environment to be able to require prettier // Setup the environment to be able to require prettier/index.js
require(absPnpApiPath).setup(); require(absPnpApiPath).setup();
} }
} }
// Defer to the real prettier your application uses // Defer to the real prettier/index.js your application uses
module.exports = absRequire(`prettier`); module.exports = absRequire(`prettier/index.js`);

View file

@ -1,7 +1,6 @@
{ {
"name": "prettier", "name": "prettier",
"version": "2.8.8-sdk", "version": "2.8.0-sdk",
"main": "./index.js", "main": "./index.js",
"type": "commonjs", "type": "commonjs"
"bin": "./bin-prettier.js"
} }

View file

@ -1,5 +1,7 @@
nodeLinker: pnp nodeLinker: pnp
yarnPath: .yarn/releases/yarn-4.5.1.cjs plugins:
- path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
spec: '@yarnpkg/plugin-interactive-tools'
enableGlobalCache: false yarnPath: .yarn/releases/yarn-3.6.0.cjs

View file

@ -1,8 +1,7 @@
{ {
"compilerOptions": { "compilerOptions": {
"module": "es2022", "module": "es2022",
"target": "ES2022", "target": "ES2022"
"strict": true
}, },
"exclude": ["node_modules", "dist"], "exclude": ["node_modules", "dist"],
"include": ["src", "client", "common"] "include": ["src", "client", "common"]

View file

@ -10,23 +10,22 @@
"ko-fi": "ghostfvtt" "ko-fi": "ghostfvtt"
} }
], ],
"license": "https://git.f3l.de/dungeonslayers/tickwerk/raw/tag/1.4.4/LICENSE.md", "url": "https://git.f3l.de/dungeonslayers/tickwerk",
"readme": "https://git.f3l.de/dungeonslayers/tickwerk/raw/tag/1.4.4/README.md", "license": "https://git.f3l.de/dungeonslayers/tickwerk/raw/tag/1.3.3/LICENSE.md",
"readme": "https://git.f3l.de/dungeonslayers/tickwerk/raw/tag/1.3.3/README.md",
"bugs": "https://git.f3l.de/dungeonslayers/tickwerk/issues", "bugs": "https://git.f3l.de/dungeonslayers/tickwerk/issues",
"changelog": "https://git.f3l.de/dungeonslayers/tickwerk/releases/tag/1.4.4", "changelog": "https://git.f3l.de/dungeonslayers/tickwerk/releases/tag/1.3.3",
"version": "1.4.4", "version": "1.3.3",
"flags": {
"hotReload": {
"extensions": ["css", "hbs", "json"],
"paths": ["templates", "styles", "lang"]
}
},
"compatibility": { "compatibility": {
"minimum": "10.290", "minimum": "10.290",
"verified": "11" "verified": "10"
}, },
"esmodules": ["tickwerk.js"], "esmodules": [
"styles": ["styles/tickwerk.css"], "tickwerk.js"
],
"styles": [
"styles/tickwerk.css"
],
"languages": [ "languages": [
{ {
"lang": "en", "lang": "en",
@ -40,7 +39,6 @@
} }
], ],
"manifest": "https://git.f3l.de/api/packages/dungeonslayers/generic/tickwerk/latest/module.json", "manifest": "https://git.f3l.de/api/packages/dungeonslayers/generic/tickwerk/latest/module.json",
"download": "https://git.f3l.de/dungeonslayers/tickwerk/releases/download/1.4.4/tickwerk.zip", "download": "https://git.f3l.de/dungeonslayers/tickwerk/releases/download/1.3.3/tickwerk.zip",
"manifestPlusVersion": "1.2.0", "manifestPlusVersion": "1.2.0"
"url": "https://git.f3l.de/dungeonslayers/tickwerk"
} }

View file

@ -2,7 +2,7 @@
"private": true, "private": true,
"name": "tickwerk", "name": "tickwerk",
"description": "A tick based combat system for Foundry Virtual Tabletop", "description": "A tick based combat system for Foundry Virtual Tabletop",
"version": "1.4.4", "version": "1.3.3",
"license": "https://git.f3l.de/dungeonslayers/tickwerk#licensing", "license": "https://git.f3l.de/dungeonslayers/tickwerk#licensing",
"homepage": "https://git.f3l.de/dungeonslayers/tickwerk", "homepage": "https://git.f3l.de/dungeonslayers/tickwerk",
"repository": { "repository": {
@ -29,30 +29,30 @@
"clean:link": "node ./tools/link-package.js --clean", "clean:link": "node ./tools/link-package.js --clean",
"lint": "eslint --ext .js,.cjs,.mjs .", "lint": "eslint --ext .js,.cjs,.mjs .",
"lint:fix": "eslint --ext .js,.cjs,.mjs --fix .", "lint:fix": "eslint --ext .js,.cjs,.mjs --fix .",
"format": "prettier --write \"./**/*.(js|cjs|mjs|json|scss|yml|yaml)\"", "format": "prettier --write \"./**/*.(js|cjs|mjs|json|scss|yml)\"",
"bump-version": "node ./tools/bump-version.js", "bump-version": "node ./tools/bump-version.js",
"changelog": "conventional-changelog -p conventionalcommits -o CHANGELOG.md -r 2" "changelog": "conventional-changelog -p conventionalcommits -o CHANGELOG.md -r 2"
}, },
"devDependencies": { "devDependencies": {
"@commitlint/cli": "19.5.0", "@commitlint/cli": "17.6.5",
"@commitlint/config-conventional": "19.5.0", "@commitlint/config-conventional": "17.6.5",
"@guanghechen/rollup-plugin-copy": "6.0.2", "@guanghechen/rollup-plugin-copy": "5.0.1",
"@swc/core": "1.7.36", "@swc/core": "1.3.62",
"conventional-changelog-cli": "5.0.0", "conventional-changelog-cli": "2.2.2",
"conventional-changelog-conventionalcommits": "8.0.0", "conventional-changelog-conventionalcommits": "5.0.0",
"eslint": "8.57.1", "eslint": "8.42.0",
"eslint-config-prettier": "9.1.0", "eslint-config-prettier": "8.8.0",
"eslint-plugin-prettier": "4.2.1", "eslint-plugin-prettier": "4.2.1",
"fs-extra": "11.2.0", "fs-extra": "11.1.1",
"npm-run-all": "4.1.5", "npm-run-all": "4.1.5",
"prettier": "2.8.8", "prettier": "2.8.8",
"rimraf": "6.0.1", "rimraf": "5.0.1",
"rollup": "4.24.0", "rollup": "3.23.0",
"rollup-plugin-styles": "4.0.0", "rollup-plugin-styles": "4.0.0",
"rollup-plugin-swc3": "0.12.1", "rollup-plugin-swc3": "0.8.2",
"sass": "1.62.1", "sass": "1.62.1",
"semver": "7.6.3", "semver": "7.5.1",
"yargs": "17.7.2" "yargs": "17.7.2"
}, },
"packageManager": "yarn@4.5.1" "packageManager": "yarn@3.6.0"
} }

View file

@ -112,16 +112,14 @@ const CombatantMixin = (BaseCombatant) => {
* @param {object} data The data of the creation / update * @param {object} data The data of the creation / update
*/ */
async #updateTiebreakerData(data) { async #updateTiebreakerData(data) {
const waiting = data.flags?.[packageId]?.waiting; if ('initiative' in data) {
if ('initiative' in data || waiting !== undefined) {
const newInitiative = data.initiative ?? this.initiative;
const combatantsWithSameTickValue = const combatantsWithSameTickValue =
this.parent?.combatants.filter((combatant) => { this.parent?.combatants.filter((combatant) => {
const otherInitiative = const otherInitiative =
combatant._newInitiative !== undefined ? combatant._newInitiative : combatant.initiative; combatant._newInitiative !== undefined ? combatant._newInitiative : combatant.initiative;
return otherInitiative === newInitiative && combatant !== this; return otherInitiative === data.initiative;
}) ?? []; }) ?? [];
const tiebreaker = await this.#getTiebreaker(combatantsWithSameTickValue, waiting); const tiebreaker = await this.#getTiebreaker(combatantsWithSameTickValue);
foundry.utils.setProperty(data, `flags.${packageId}.tiebreaker`, tiebreaker); foundry.utils.setProperty(data, `flags.${packageId}.tiebreaker`, tiebreaker);
this._newInitiative = data.initiative; this._newInitiative = data.initiative;
this._newTiebreaker = tiebreaker; this._newTiebreaker = tiebreaker;
@ -131,12 +129,11 @@ const CombatantMixin = (BaseCombatant) => {
/** /**
* Get a tiebreaker between this combatant and the given other combatants. * Get a tiebreaker between this combatant and the given other combatants.
* @param {TickwerkCombatant[]} combatants The other combatants among which to find a tiebreaker * @param {TickwerkCombatant[]} combatants The other combatants among which to find a tiebreaker
* @param {boolean | undefined} waiting The change of the waiting state of the combatanmt
* @returns {Promise<number>} A promise that resolves to the tiebreaker * @returns {Promise<number>} A promise that resolves to the tiebreaker
*/ */
async #getTiebreaker(combatants, waiting) { async #getTiebreaker(combatants) {
const getTiebreaker = CONFIG.tickwerk?.getTiebreaker ?? defaultGetTiebreaker; const getTiebreaker = CONFIG.tickwerk?.getTiebreaker ?? defaultGetTiebreaker;
return getTiebreaker(this, combatants, waiting); return getTiebreaker(this, combatants);
} }
/** @override */ /** @override */
@ -182,14 +179,14 @@ const CombatantMixin = (BaseCombatant) => {
/** /**
* A function to get a tiebreaker for a combatant * A function to get a tiebreaker for a combatant
* @typedef {(combatant: TickwerkCombatant, combatants: TickwerkCombatant[], waiting: boolean | undefined) => Promise<number>} GetTiebreaker * @typedef {(combatant: TickwerkCombatant, combatants: TickwerkCombatant[]) => Promise<number>} GetTiebreaker
*/ */
/** /**
* Default implementation to get a tiebreaker for a combatant. * Default implementation to get a tiebreaker for a combatant.
* @type {GetTiebreaker} * @type {GetTiebreaker}
*/ */
export const defaultGetTiebreaker = async (combatant, combatants) => { const defaultGetTiebreaker = async (combatant, combatants) => {
if (combatants.length === 0) return 0; if (combatants.length === 0) return 0;
const tiebreakers = combatants.map((combatant) => { const tiebreakers = combatants.map((combatant) => {
return ( return (

View file

@ -14,7 +14,7 @@ export const registerDS4SpecificFunctionality = () => {
}; };
/** @type {import("../data/documents/combatant").GetTiebreaker} */ /** @type {import("../data/documents/combatant").GetTiebreaker} */
const getTiebreaker = async (combatant, combatants, waiting) => { const getTiebreaker = async (combatant, combatants) => {
if (combatants.length === 0) return 0; if (combatants.length === 0) return 0;
/** @type {number[]} */ /** @type {number[]} */
@ -26,7 +26,7 @@ const getTiebreaker = async (combatant, combatants, waiting) => {
for (const other of combatants) { for (const other of combatants) {
const tiebreaker = other._newTiebreaker ?? other.getFlag(packageId, 'tiebreaker') ?? 0; const tiebreaker = other._newTiebreaker ?? other.getFlag(packageId, 'tiebreaker') ?? 0;
if (getInitiative(other) > getInitiative(combatant) || waiting === false) { if (getInitiative(other) > getInitiative(combatant)) {
lowerBounds.push(tiebreaker); lowerBounds.push(tiebreaker);
} else if (getInitiative(other) < getInitiative(combatant)) { } else if (getInitiative(other) < getInitiative(combatant)) {
upperBounds.push(tiebreaker); upperBounds.push(tiebreaker);

View file

@ -10,7 +10,7 @@ import { hideBin } from 'yargs/helpers';
const packageType = 'module'; const packageType = 'module';
const repositoryOwner = process.env.CI_REPO_OWNER; const repositoryOwner = process.env.CI_REPO_OWNER;
const repositoryName = process.env.CI_REPO_NAME; const repositoryName = process.env.CI_REPO_NAME;
const repositoryURL = process.env.CI_REPO_URL; const repositoryURL = process.env.CI_REPO_LINK;
const forgeURL = process.env.CI_FORGE_URL; const forgeURL = process.env.CI_FORGE_URL;
const getManifestUrl = (channel) => const getManifestUrl = (channel) =>

4725
yarn.lock

File diff suppressed because it is too large Load diff