From 6d9524f18cc5fc39cfc65933f511508ba863c9c6 Mon Sep 17 00:00:00 2001 From: eyelidlessness Date: Sat, 9 Mar 2024 08:37:32 -0800 Subject: [PATCH 01/14] Rename package: tree-sitter-xpath -> @odk-web-forms/tree-sitter-xpath --- .changeset/silver-lemons-mate.md | 2 +- .changeset/thirty-mails-punch.md | 2 +- .github/workflows/ci.yml | 2 +- packages/odk-web-forms/package.json | 2 +- packages/odk-web-forms/src/lib/xpath/parser.ts | 2 +- packages/odk-xpath/README.md | 2 +- packages/odk-xpath/package.json | 4 ++-- .../src/static/grammar/TreeSitterXPathParser.ts | 5 +++-- packages/odk-xpath/src/static/grammar/type-names.ts | 2 +- packages/odk-xpath/test/parser.ts | 2 +- packages/odk-xpath/vite.config.ts | 2 +- packages/tree-sitter-xpath/index.d.ts | 2 +- packages/tree-sitter-xpath/package.json | 2 +- packages/tree-sitter-xpath/scripts/build/parser-types | 9 ++++++--- packages/tree-sitter-xpath/vite.config.ts | 2 +- turbo.json | 11 +++++++++-- 16 files changed, 32 insertions(+), 21 deletions(-) diff --git a/.changeset/silver-lemons-mate.md b/.changeset/silver-lemons-mate.md index 56dce2c24..55edd5fa5 100644 --- a/.changeset/silver-lemons-mate.md +++ b/.changeset/silver-lemons-mate.md @@ -1,5 +1,5 @@ --- -'tree-sitter-xpath': patch +'@odk-web-forms/tree-sitter-xpath': patch --- Initial implementation of XPath grammar for tree-sitter diff --git a/.changeset/thirty-mails-punch.md b/.changeset/thirty-mails-punch.md index c732c5e8f..dac5ab0c8 100644 --- a/.changeset/thirty-mails-punch.md +++ b/.changeset/thirty-mails-punch.md @@ -1,5 +1,5 @@ --- -'tree-sitter-xpath': patch +'@odk-web-forms/tree-sitter-xpath: patch --- Fix inclusion of types in package diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a9e0cfb53..e2e74a9b5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -368,7 +368,7 @@ jobs: run: 'yarn workspace @odk/xpath test-browser:${{ matrix.browser }}' tree-sitter-xpath: - name: 'tree-sitter-xpath' + name: '@odk-web-forms/tree-sitter-xpath' needs: ['install-and-build', 'changes'] if: needs.changes.outputs.root == 'true' || needs.changes.outputs.tree-sitter-xpath == 'true' runs-on: 'ubuntu-latest' diff --git a/packages/odk-web-forms/package.json b/packages/odk-web-forms/package.json index c8d7ee778..f5414834b 100644 --- a/packages/odk-web-forms/package.json +++ b/packages/odk-web-forms/package.json @@ -46,6 +46,7 @@ }, "dependencies": { "@fontsource/roboto": "^5.0.8", + "@odk-web-forms/tree-sitter-xpath": "1.0.0-alpha.0", "@odk/common": "0.0.0", "@odk/xpath": "1.0.0-alpha.0", "@solid-primitives/set": "^0.4.8", @@ -53,7 +54,6 @@ "@suid/icons-material": "^0.6.11", "@suid/material": "^0.15.1", "solid-js": "^1.8.3", - "tree-sitter-xpath": "1.0.0-alpha.0", "web-tree-sitter": "^0.20.8" }, "devDependencies": { diff --git a/packages/odk-web-forms/src/lib/xpath/parser.ts b/packages/odk-web-forms/src/lib/xpath/parser.ts index 224155d2f..30387a2c9 100644 --- a/packages/odk-web-forms/src/lib/xpath/parser.ts +++ b/packages/odk-web-forms/src/lib/xpath/parser.ts @@ -1,5 +1,5 @@ +import xpathLanguage from '@odk-web-forms/tree-sitter-xpath/tree-sitter-xpath.wasm?url'; import { ExpressionParser } from '@odk/xpath/static/grammar/ExpressionParser.js'; -import xpathLanguage from 'tree-sitter-xpath/tree-sitter-xpath.wasm?url'; import webTreeSitter from 'web-tree-sitter/tree-sitter.wasm?url'; export const xpathParser = await ExpressionParser.init({ diff --git a/packages/odk-xpath/README.md b/packages/odk-xpath/README.md index 21e846d48..0b7d6e3df 100644 --- a/packages/odk-xpath/README.md +++ b/packages/odk-xpath/README.md @@ -25,7 +25,7 @@ The `@odk/xpath` package depends on the `web-tree-sitter` and `tree-sitter-xpath A solution which is working so far, both in the @odk/xpath test suite and downstream within the odk-web-forms monorepo: ```ts -import xpathLanguage from 'tree-sitter-xpath/tree-sitter-xpath.wasm?url'; +import xpathLanguage from '@odk-web-forms/tree-sitter-xpath/tree-sitter-xpath.wasm?url'; import webTreeSitter from 'web-tree-sitter/tree-sitter.wasm?url'; import { TreeSitterXPathParser } from '@odk/xpath/static/grammar/TreeSitterXPathParser.ts'; diff --git a/packages/odk-xpath/package.json b/packages/odk-xpath/package.json index a10b976ec..0730b905a 100644 --- a/packages/odk-xpath/package.json +++ b/packages/odk-xpath/package.json @@ -53,17 +53,17 @@ "itertools-ts": "^1.23.0" }, "peerDependencies": { - "tree-sitter-xpath": "1.0.0-alpha.0", + "@odk-web-forms/tree-sitter-xpath": "1.0.0-alpha.0", "web-tree-sitter": "^0.20.8" }, "devDependencies": { "@babel/core": "^7.23.2", + "@odk-web-forms/tree-sitter-xpath": "1.0.0-alpha.0", "@playwright/test": "^1.42.1", "@types/crypto-js": "^4.1.2", "@vitest/browser": "^1.0.0-beta.3", "babel-plugin-transform-jsbi-to-bigint": "^1.4.0", "jsdom": "^22.1.0", - "tree-sitter-xpath": "1.0.0-alpha.0", "vite": "^4.5.0", "vite-plugin-babel": "^1.1.3", "vite-plugin-dts": "^3.6.1", diff --git a/packages/odk-xpath/src/static/grammar/TreeSitterXPathParser.ts b/packages/odk-xpath/src/static/grammar/TreeSitterXPathParser.ts index 9c9aced87..17aa590da 100644 --- a/packages/odk-xpath/src/static/grammar/TreeSitterXPathParser.ts +++ b/packages/odk-xpath/src/static/grammar/TreeSitterXPathParser.ts @@ -120,7 +120,7 @@ export interface WebAssemblyResourceSpecifiers { readonly webTreeSitter?: string | undefined; /** - * @default 'tree-sitter-xpath/tree-sitter-xpath.wasm' (unbundled, expected to + * @default '@odk-web-forms/tree-sitter-xpath/tree-sitter-xpath.wasm' (unbundled, expected to * be resolved by downstream environment) */ readonly xpathLanguage?: string | undefined; @@ -157,7 +157,8 @@ export class TreeSitterXPathParser { static async init(resources: WebAssemblyResourceSpecifiers = {}): Promise { const { webTreeSitter: webTreeSitterResource, - xpathLanguage: xpathLanguageResource = 'tree-sitter-xpath/tree-sitter-xpath.wasm', + xpathLanguage: + xpathLanguageResource = '@odk-web-forms/tree-sitter-xpath/tree-sitter-xpath.wasm', } = resources; let webTreeSitterInitOptions: WebTreeSitterInitOptions = {}; diff --git a/packages/odk-xpath/src/static/grammar/type-names.ts b/packages/odk-xpath/src/static/grammar/type-names.ts index 8379f2c2b..b787d2137 100644 --- a/packages/odk-xpath/src/static/grammar/type-names.ts +++ b/packages/odk-xpath/src/static/grammar/type-names.ts @@ -1,4 +1,4 @@ -import type { SyntaxType, UnnamedType } from 'tree-sitter-xpath'; +import type { SyntaxType, UnnamedType } from '@odk-web-forms/tree-sitter-xpath'; import { assertType, type Exact } from '../../type-safety'; /* diff --git a/packages/odk-xpath/test/parser.ts b/packages/odk-xpath/test/parser.ts index 59eea82fa..c4983e3aa 100644 --- a/packages/odk-xpath/test/parser.ts +++ b/packages/odk-xpath/test/parser.ts @@ -1,4 +1,4 @@ -import xpathLanguage from 'tree-sitter-xpath/tree-sitter-xpath.wasm?url'; +import xpathLanguage from '@odk-web-forms/tree-sitter-xpath/tree-sitter-xpath.wasm?url'; import webTreeSitter from 'web-tree-sitter/tree-sitter.wasm?url'; import { TreeSitterXPathParser } from '../src/static/grammar/TreeSitterXPathParser.ts'; diff --git a/packages/odk-xpath/vite.config.ts b/packages/odk-xpath/vite.config.ts index f3e826925..31bd2e2d5 100644 --- a/packages/odk-xpath/vite.config.ts +++ b/packages/odk-xpath/vite.config.ts @@ -87,7 +87,7 @@ export default defineConfig(({ command, mode }) => { formats: ['es'], }, rollupOptions: { - external: isBuild ? ['tree-sitter-xpath', 'web-tree-sitter'] : [], + external: isBuild ? ['@odk-web-forms/tree-sitter-xpath', 'web-tree-sitter'] : [], }, }, define: { diff --git a/packages/tree-sitter-xpath/index.d.ts b/packages/tree-sitter-xpath/index.d.ts index e52b9265f..a74ddb07b 100644 --- a/packages/tree-sitter-xpath/index.d.ts +++ b/packages/tree-sitter-xpath/index.d.ts @@ -1,3 +1,3 @@ /// -export * from 'tree-sitter-xpath/parser'; +export * from '@odk-web-forms/tree-sitter-xpath/parser'; diff --git a/packages/tree-sitter-xpath/package.json b/packages/tree-sitter-xpath/package.json index bffd4d987..5473004e1 100644 --- a/packages/tree-sitter-xpath/package.json +++ b/packages/tree-sitter-xpath/package.json @@ -1,5 +1,5 @@ { - "name": "tree-sitter-xpath", + "name": "@odk-web-forms/tree-sitter-xpath", "version": "1.0.0-alpha.0", "description": "XPath grammar for tree-sitter", "type": "commonjs", diff --git a/packages/tree-sitter-xpath/scripts/build/parser-types b/packages/tree-sitter-xpath/scripts/build/parser-types index 3877821ea..1aba71c27 100755 --- a/packages/tree-sitter-xpath/scripts/build/parser-types +++ b/packages/tree-sitter-xpath/scripts/build/parser-types @@ -18,9 +18,12 @@ const correctedTypes = baseGeneratedTypes.replaceAll( '$1: this;' ); -const wrappedTypes = ["declare module 'tree-sitter-xpath/parser' {", correctedTypes, '}', ''].join( - '\n' -); +const wrappedTypes = [ + "declare module '@odk-web-forms/tree-sitter-xpath/parser' {", + correctedTypes, + '}', + '', +].join('\n'); fs.mkdirSync('./types', { recursive: true, diff --git a/packages/tree-sitter-xpath/vite.config.ts b/packages/tree-sitter-xpath/vite.config.ts index 8b1757d7b..08561b249 100644 --- a/packages/tree-sitter-xpath/vite.config.ts +++ b/packages/tree-sitter-xpath/vite.config.ts @@ -6,7 +6,7 @@ export default defineConfig({ entry: './grammar.ts', fileName: 'grammar', formats: ['cjs'], - name: 'tree-sitter-xpath', + name: '@odk-web-forms/tree-sitter-xpath', }, emptyOutDir: false, diff --git a/turbo.json b/turbo.json index 6b5cf1c85..2444ec9d4 100644 --- a/turbo.json +++ b/turbo.json @@ -5,17 +5,24 @@ "dependsOn": ["^build"], "outputMode": "new-only" }, - "suid#build": { + "@odk-web-forms/tree-sitter-xpath#build": { "outputMode": "new-only" }, "@odk/xpath#build": { - "dependsOn": ["tree-sitter-xpath#build"], + "dependsOn": ["@odk-web-forms/tree-sitter-xpath#build"], + "outputMode": "new-only" + }, + "suid#build": { "outputMode": "new-only" }, "@odk/web-forms#build": { "dependsOn": ["suid#build", "@odk/xpath#build"], "outputs": ["dist/**"] }, + "@odk-web-forms/ui-vue#build": { + "dependsOn": ["@odk/xpath#build"], + "outputs": ["dist/**"] + }, "test": { "outputs": [] } From 689c40b9db809acaed2f88ca895457e2c343f811 Mon Sep 17 00:00:00 2001 From: eyelidlessness Date: Sat, 9 Mar 2024 08:42:17 -0800 Subject: [PATCH 02/14] Rename package: @odk/common -> @odk-web-forms/common Also, fix package.json > repository > directory --- .github/workflows/ci.yml | 8 ++++---- packages/common/README.md | 2 +- packages/common/package.json | 6 +++--- packages/common/vitest.config.ts | 2 +- packages/odk-web-forms/package.json | 2 +- .../src/components/Demo/DemoFixturesList.tsx | 2 +- packages/odk-web-forms/src/lib/xform/XFormDOM.test.ts | 2 +- packages/odk-web-forms/src/lib/xform/XFormDOM.ts | 2 +- packages/odk-web-forms/src/lib/xform/XFormDataType.ts | 2 +- .../odk-web-forms/src/lib/xform/body/RepeatDefinition.ts | 2 +- .../lib/xform/body/control/select/SelectDefinition.ts | 4 ++-- .../src/lib/xform/body/group/BaseGroupDefinition.ts | 2 +- .../src/lib/xform/body/text/TextElementDefinition.ts | 6 +++++- .../src/lib/xform/model/ModelDefinition.test.ts | 4 ++-- .../src/lib/xform/model/RepeatTemplateDefinition.ts | 2 +- packages/odk-web-forms/src/lib/xform/query.ts | 7 +++++-- packages/odk-web-forms/src/lib/xform/state/EntryState.ts | 2 +- .../src/lib/xform/state/RepeatSequenceState.ts | 2 +- .../src/lib/xform/state/select/SelectState.ts | 2 +- packages/odk-web-forms/src/lib/xpath/analysis.ts | 2 +- packages/odk-web-forms/src/test/scenario/Scenario.ts | 6 +++--- packages/odk-web-forms/tsconfig.json | 4 ++-- packages/odk-web-forms/vite.config.ts | 6 +++--- packages/odk-xpath/package.json | 2 +- .../odk-xpath/src/evaluations/LocationPathEvaluation.ts | 2 +- packages/odk-xpath/src/evaluations/NodeEvaluation.ts | 2 +- packages/odk-xpath/src/evaluations/ValueEvaluation.ts | 2 +- packages/odk-xpath/src/evaluator/Evaluator.test.ts | 2 +- .../odk-xpath/src/evaluator/NamespaceResolver.test.ts | 2 +- packages/odk-xpath/src/evaluator/NamespaceResolver.ts | 4 ++-- .../expression/FunctionCallExpressionEvaluator.ts | 2 +- .../src/evaluator/expression/LocationPathEvaluator.ts | 2 +- .../expression/NumericBinaryExpressionEvaluator.ts | 2 +- packages/odk-xpath/src/evaluator/expression/factory.ts | 2 +- .../src/evaluator/functions/FunctionImplementation.ts | 4 ++-- packages/odk-xpath/src/evaluator/result/index.ts | 2 +- packages/odk-xpath/src/evaluator/step/Step.ts | 2 +- packages/odk-xpath/src/functions/enketo/index.ts | 2 +- packages/odk-xpath/src/functions/fn/index.ts | 2 +- packages/odk-xpath/src/functions/fn/node-set.ts | 2 +- packages/odk-xpath/src/functions/fn/string.ts | 2 +- packages/odk-xpath/src/functions/javarosa/index.ts | 2 +- packages/odk-xpath/src/functions/xforms/index.ts | 2 +- packages/odk-xpath/src/functions/xforms/node-set.ts | 6 +++--- packages/odk-xpath/src/functions/xforms/select.ts | 2 +- packages/odk-xpath/src/lib/iterators/Reiterable.test.ts | 2 +- .../odk-xpath/src/static/grammar/ExpressionParser.ts | 2 +- packages/odk-xpath/src/xforms/XFormsItextTranslations.ts | 9 ++++++--- packages/odk-xpath/test/native/predicates.spec.ts | 2 +- packages/odk-xpath/test/xforms/complex.spec.ts | 2 +- packages/odk-xpath/test/xforms/predicates.spec.ts | 2 +- packages/odk-xpath/test/xforms/root-node-context.spec.ts | 6 +++--- packages/odk-xpath/tsconfig.json | 4 ++-- packages/odk-xpath/vite.config.ts | 6 +++--- tsconfig.tools.json | 4 ++-- 55 files changed, 90 insertions(+), 80 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e2e74a9b5..82a27863b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -164,7 +164,7 @@ jobs: - run: 'yarn lint' odk-common: - name: '@odk/common' + name: '@odk-web-forms/common' needs: ['install-and-build', 'changes'] if: needs.changes.outputs.root == 'true' || needs.changes.outputs.odk-common == 'true' runs-on: 'ubuntu-latest' @@ -218,16 +218,16 @@ jobs: fail-on-cache-miss: true - if: ${{ matrix.target == 'Node' }} - run: 'yarn workspace @odk/common test:types' + run: 'yarn workspace @odk-web-forms/common test:types' - if: ${{ matrix.target == 'Node' }} - run: 'yarn workspace @odk/common test-node:jsdom' + run: 'yarn workspace @odk-web-forms/common test-node:jsdom' - if: ${{ matrix.target == 'Web' }} run: 'yarn playwright install ${{ matrix.browser }} --with-deps' - if: ${{ matrix.target == 'Web' }} - run: 'yarn workspace @odk/common test-browser:${{ matrix.browser }}' + run: 'yarn workspace @odk-web-forms/common test-browser:${{ matrix.browser }}' odk-web-forms: name: '@odk/web-forms' diff --git a/packages/common/README.md b/packages/common/README.md index 5fc272f82..84e6a7871 100644 --- a/packages/common/README.md +++ b/packages/common/README.md @@ -1,4 +1,4 @@ -# @odk/common (private package) +# @odk-web-forms/common (private package) An internal package to address common (e.g. the dreaded "utils") concerns across two or more getodk/web-forms packages. There have already been several such cross-cutting concerns. diff --git a/packages/common/package.json b/packages/common/package.json index 1f09cd4c4..0a8ef96fc 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -1,14 +1,14 @@ { - "name": "@odk/common", + "name": "@odk-web-forms/common", "private": true, "version": "0.0.0", - "description": "@odk/common", + "description": "@odk-web-forms/common", "type": "module", "author": "getodk", "repository": { "type": "git", "url": "https://github.com/getodk/web-forms", - "directory": "packages/odk-xpath" + "directory": "packages/common" }, "bugs": "https://github.com/getodk/web-forms/issues", "homepage": "https://getodk.org/", diff --git a/packages/common/vitest.config.ts b/packages/common/vitest.config.ts index 1f9a8ff78..cad6484d6 100644 --- a/packages/common/vitest.config.ts +++ b/packages/common/vitest.config.ts @@ -3,7 +3,7 @@ // TODO: much of this may be a good candidate for sharing from this internal package! -import type { CollectionValues } from '@odk/common/types/collections/CollectionValues.ts'; +import type { CollectionValues } from '@odk-web-forms/common/types/collections/CollectionValues.ts'; import { defineConfig } from 'vite'; import GithubActionsReporter from 'vitest-github-actions-reporter'; diff --git a/packages/odk-web-forms/package.json b/packages/odk-web-forms/package.json index f5414834b..198463aa1 100644 --- a/packages/odk-web-forms/package.json +++ b/packages/odk-web-forms/package.json @@ -47,7 +47,7 @@ "dependencies": { "@fontsource/roboto": "^5.0.8", "@odk-web-forms/tree-sitter-xpath": "1.0.0-alpha.0", - "@odk/common": "0.0.0", + "@odk-web-forms/common": "0.0.0", "@odk/xpath": "1.0.0-alpha.0", "@solid-primitives/set": "^0.4.8", "@solidjs/router": "^0.8.3", diff --git a/packages/odk-web-forms/src/components/Demo/DemoFixturesList.tsx b/packages/odk-web-forms/src/components/Demo/DemoFixturesList.tsx index 090b1a032..73c8f96cb 100644 --- a/packages/odk-web-forms/src/components/Demo/DemoFixturesList.tsx +++ b/packages/odk-web-forms/src/components/Demo/DemoFixturesList.tsx @@ -1,4 +1,4 @@ -import { XHTML_NAMESPACE_URI } from '@odk/common/constants/xmlns'; +import { XHTML_NAMESPACE_URI } from '@odk-web-forms/common/constants/xmlns'; import { For, Show, createComputed, createMemo, createSignal } from 'solid-js'; import Assignment from 'suid/icons-material/Assignment'; import ChevronLeft from 'suid/icons-material/ChevronLeft'; diff --git a/packages/odk-web-forms/src/lib/xform/XFormDOM.test.ts b/packages/odk-web-forms/src/lib/xform/XFormDOM.test.ts index ddc828002..28c8bc507 100644 --- a/packages/odk-web-forms/src/lib/xform/XFormDOM.test.ts +++ b/packages/odk-web-forms/src/lib/xform/XFormDOM.test.ts @@ -1,4 +1,4 @@ -import { XFORMS_NAMESPACE_URI } from '@odk/common/constants/xmlns.ts'; +import { XFORMS_NAMESPACE_URI } from '@odk-web-forms/common/constants/xmlns.ts'; import { beforeEach, describe, expect, it } from 'vitest'; import { body, diff --git a/packages/odk-web-forms/src/lib/xform/XFormDOM.ts b/packages/odk-web-forms/src/lib/xform/XFormDOM.ts index 792453dfa..fffecee44 100644 --- a/packages/odk-web-forms/src/lib/xform/XFormDOM.ts +++ b/packages/odk-web-forms/src/lib/xform/XFormDOM.ts @@ -1,4 +1,4 @@ -import { XFORMS_NAMESPACE_URI } from '@odk/common/constants/xmlns.ts'; +import { XFORMS_NAMESPACE_URI } from '@odk-web-forms/common/constants/xmlns.ts'; import { XFormsXPathEvaluator } from '@odk/xpath'; import { xpathEvaluator } from '../xpath/evaluator.ts'; diff --git a/packages/odk-web-forms/src/lib/xform/XFormDataType.ts b/packages/odk-web-forms/src/lib/xform/XFormDataType.ts index d03265c30..4a103e6ba 100644 --- a/packages/odk-web-forms/src/lib/xform/XFormDataType.ts +++ b/packages/odk-web-forms/src/lib/xform/XFormDataType.ts @@ -1,4 +1,4 @@ -import type { CollectionValues } from '@odk/common/types/collections/CollectionValues.ts'; +import type { CollectionValues } from '@odk-web-forms/common/types/collections/CollectionValues.ts'; /** * Like JavaRosa. Presumably for explicit types which aren't impelemnted? diff --git a/packages/odk-web-forms/src/lib/xform/body/RepeatDefinition.ts b/packages/odk-web-forms/src/lib/xform/body/RepeatDefinition.ts index bbf8d06be..e0fd5c93d 100644 --- a/packages/odk-web-forms/src/lib/xform/body/RepeatDefinition.ts +++ b/packages/odk-web-forms/src/lib/xform/body/RepeatDefinition.ts @@ -1,4 +1,4 @@ -import { JAVAROSA_NAMESPACE_URI } from '@odk/common/constants/xmlns.ts'; +import { JAVAROSA_NAMESPACE_URI } from '@odk-web-forms/common/constants/xmlns.ts'; import type { XFormDefinition } from '../XFormDefinition.ts'; import type { BodyElementDefinitionArray } from './BodyDefinition.ts'; import { BodyElementDefinition } from './BodyElementDefinition.ts'; diff --git a/packages/odk-web-forms/src/lib/xform/body/control/select/SelectDefinition.ts b/packages/odk-web-forms/src/lib/xform/body/control/select/SelectDefinition.ts index d5b2483f4..201ce5d3a 100644 --- a/packages/odk-web-forms/src/lib/xform/body/control/select/SelectDefinition.ts +++ b/packages/odk-web-forms/src/lib/xform/body/control/select/SelectDefinition.ts @@ -1,5 +1,5 @@ -import type { CollectionValues } from '@odk/common/types/collections/CollectionValues.ts'; -import type { LocalNamedElement } from '@odk/common/types/dom.ts'; +import type { CollectionValues } from '@odk-web-forms/common/types/collections/CollectionValues.ts'; +import type { LocalNamedElement } from '@odk-web-forms/common/types/dom.ts'; import type { XFormDefinition } from '../../../XFormDefinition.ts'; import { getItemElements, getItemsetElement } from '../../../query.ts'; import type { AnyBodyElementDefinition, BodyElementParentContext } from '../../BodyDefinition.ts'; diff --git a/packages/odk-web-forms/src/lib/xform/body/group/BaseGroupDefinition.ts b/packages/odk-web-forms/src/lib/xform/body/group/BaseGroupDefinition.ts index d4393c9f2..d14c0f22c 100644 --- a/packages/odk-web-forms/src/lib/xform/body/group/BaseGroupDefinition.ts +++ b/packages/odk-web-forms/src/lib/xform/body/group/BaseGroupDefinition.ts @@ -1,4 +1,4 @@ -import { UpsertableMap } from '@odk/common/lib/collections/UpsertableMap.ts'; +import { UpsertableMap } from '@odk-web-forms/common/lib/collections/UpsertableMap.ts'; // eslint-disable-next-line @typescript-eslint/no-unused-vars -- refrenced in JSDoc import type { XFormDOM } from '../../XFormDOM.ts'; import type { XFormDefinition } from '../../XFormDefinition.ts'; diff --git a/packages/odk-web-forms/src/lib/xform/body/text/TextElementDefinition.ts b/packages/odk-web-forms/src/lib/xform/body/text/TextElementDefinition.ts index 1f832ece0..a108e0126 100644 --- a/packages/odk-web-forms/src/lib/xform/body/text/TextElementDefinition.ts +++ b/packages/odk-web-forms/src/lib/xform/body/text/TextElementDefinition.ts @@ -1,4 +1,8 @@ -import { isCommentNode, isElementNode, isTextNode } from '@odk/common/lib/dom/predicates.ts'; +import { + isCommentNode, + isElementNode, + isTextNode, +} from '@odk-web-forms/common/lib/dom/predicates.ts'; import type { XFormDefinition } from '../../XFormDefinition.ts'; import { type AnyDependentExpression } from '../../expression/DependentExpression.ts'; import type { AnyGroupElementDefinition } from '../BodyDefinition.ts'; diff --git a/packages/odk-web-forms/src/lib/xform/model/ModelDefinition.test.ts b/packages/odk-web-forms/src/lib/xform/model/ModelDefinition.test.ts index 94760e9db..34880aa20 100644 --- a/packages/odk-web-forms/src/lib/xform/model/ModelDefinition.test.ts +++ b/packages/odk-web-forms/src/lib/xform/model/ModelDefinition.test.ts @@ -1,5 +1,5 @@ -import { expectEqualNode } from '@odk/common/test/assertions/dom.ts'; -import { xformsElement } from '@odk/common/test/factories/xml.ts'; +import { expectEqualNode } from '@odk-web-forms/common/test/assertions/dom.ts'; +import { xformsElement } from '@odk-web-forms/common/test/factories/xml.ts'; import { beforeEach, describe, expect, it } from 'vitest'; import { bind, diff --git a/packages/odk-web-forms/src/lib/xform/model/RepeatTemplateDefinition.ts b/packages/odk-web-forms/src/lib/xform/model/RepeatTemplateDefinition.ts index bc06b878a..a7517efc9 100644 --- a/packages/odk-web-forms/src/lib/xform/model/RepeatTemplateDefinition.ts +++ b/packages/odk-web-forms/src/lib/xform/model/RepeatTemplateDefinition.ts @@ -1,4 +1,4 @@ -import { JAVAROSA_NAMESPACE_URI } from '@odk/common/constants/xmlns.ts'; +import { JAVAROSA_NAMESPACE_URI } from '@odk-web-forms/common/constants/xmlns.ts'; import type { RepeatDefinition } from '../body/RepeatDefinition.ts'; import { BindDefinition } from './BindDefinition.ts'; import { DescendentNodeDefinition } from './DescendentNodeDefinition.ts'; diff --git a/packages/odk-web-forms/src/lib/xform/query.ts b/packages/odk-web-forms/src/lib/xform/query.ts index 1def1213b..6fc6d6ba4 100644 --- a/packages/odk-web-forms/src/lib/xform/query.ts +++ b/packages/odk-web-forms/src/lib/xform/query.ts @@ -1,5 +1,8 @@ -import { ScopedElementLookup } from '@odk/common/lib/dom/compatibility.ts'; -import type { KnownAttributeLocalNamedElement, LocalNamedElement } from '@odk/common/types/dom.ts'; +import { ScopedElementLookup } from '@odk-web-forms/common/lib/dom/compatibility.ts'; +import type { + KnownAttributeLocalNamedElement, + LocalNamedElement, +} from '@odk-web-forms/common/types/dom.ts'; import type { SelectElement } from './body/control/select/SelectDefinition'; const hintLookup = new ScopedElementLookup(':scope > hint', 'hint'); diff --git a/packages/odk-web-forms/src/lib/xform/state/EntryState.ts b/packages/odk-web-forms/src/lib/xform/state/EntryState.ts index 6e20ff706..54f48c8fd 100644 --- a/packages/odk-web-forms/src/lib/xform/state/EntryState.ts +++ b/packages/odk-web-forms/src/lib/xform/state/EntryState.ts @@ -1,4 +1,4 @@ -import { UnreachableError } from '@odk/common/lib/error/UnreachableError.ts'; +import { UnreachableError } from '@odk-web-forms/common/lib/error/UnreachableError.ts'; import type { XFormsXPathEvaluator } from '@odk/xpath'; import { createMemo, type Accessor } from 'solid-js'; import type { XFormDOM } from '../XFormDOM.ts'; diff --git a/packages/odk-web-forms/src/lib/xform/state/RepeatSequenceState.ts b/packages/odk-web-forms/src/lib/xform/state/RepeatSequenceState.ts index d9932fee3..62b8f4f3d 100644 --- a/packages/odk-web-forms/src/lib/xform/state/RepeatSequenceState.ts +++ b/packages/odk-web-forms/src/lib/xform/state/RepeatSequenceState.ts @@ -1,4 +1,4 @@ -import { isDocumentNode } from '@odk/common/lib/dom/predicates.ts'; +import { isDocumentNode } from '@odk-web-forms/common/lib/dom/predicates.ts'; import type { Signal } from 'solid-js'; import { batch, createComputed, createSignal, untrack } from 'solid-js'; import type { RepeatInstanceDefinition } from '../model/RepeatInstanceDefinition.ts'; diff --git a/packages/odk-web-forms/src/lib/xform/state/select/SelectState.ts b/packages/odk-web-forms/src/lib/xform/state/select/SelectState.ts index bada67428..8b4a802e9 100644 --- a/packages/odk-web-forms/src/lib/xform/state/select/SelectState.ts +++ b/packages/odk-web-forms/src/lib/xform/state/select/SelectState.ts @@ -1,4 +1,4 @@ -import { xmlXPathWhitespaceSeparatedList } from '@odk/common/lib/string/whitespace.ts'; +import { xmlXPathWhitespaceSeparatedList } from '@odk-web-forms/common/lib/string/whitespace.ts'; import { ReactiveSet } from '@solid-primitives/set'; import type { Accessor } from 'solid-js'; import { batch, createComputed, createMemo } from 'solid-js'; diff --git a/packages/odk-web-forms/src/lib/xpath/analysis.ts b/packages/odk-web-forms/src/lib/xpath/analysis.ts index cd9dc49fd..ea2a4047d 100644 --- a/packages/odk-web-forms/src/lib/xpath/analysis.ts +++ b/packages/odk-web-forms/src/lib/xpath/analysis.ts @@ -1,4 +1,4 @@ -import { UnreachableError } from '@odk/common/lib/error/UnreachableError'; +import { UnreachableError } from '@odk-web-forms/common/lib/error/UnreachableError'; import type { AbsoluteLocationPathNode, AnyBinaryExprNode, diff --git a/packages/odk-web-forms/src/test/scenario/Scenario.ts b/packages/odk-web-forms/src/test/scenario/Scenario.ts index dd9478c04..e2ce6e402 100644 --- a/packages/odk-web-forms/src/test/scenario/Scenario.ts +++ b/packages/odk-web-forms/src/test/scenario/Scenario.ts @@ -1,6 +1,6 @@ -import { UpsertableMap } from '@odk/common/lib/collections/UpsertableMap.ts'; -import { UnreachableError } from '@odk/common/lib/error/UnreachableError.ts'; -import type { CollectionValues } from '@odk/common/types/collections/CollectionValues.ts'; +import { UpsertableMap } from '@odk-web-forms/common/lib/collections/UpsertableMap.ts'; +import { UnreachableError } from '@odk-web-forms/common/lib/error/UnreachableError.ts'; +import type { CollectionValues } from '@odk-web-forms/common/types/collections/CollectionValues.ts'; import { createMemo, createSignal, type Accessor, type Signal } from 'solid-js'; import { afterEach, expect } from 'vitest'; import { XFormDefinition } from '../../lib/xform/XFormDefinition.ts'; diff --git a/packages/odk-web-forms/tsconfig.json b/packages/odk-web-forms/tsconfig.json index 3d4e891ac..dd7c3e9a8 100644 --- a/packages/odk-web-forms/tsconfig.json +++ b/packages/odk-web-forms/tsconfig.json @@ -10,8 +10,8 @@ "skipLibCheck": true, "outDir": "./dist", "paths": { - "@odk/common/types/*": ["../common/types/*"], - "@odk/common/*": ["../common/src/*"], + "@odk-web-forms/common/types/*": ["../common/types/*"], + "@odk-web-forms/common/*": ["../common/src/*"], "@solidjs/testing-library": ["./tools/@solidjs/testing-library/index.ts"] } } diff --git a/packages/odk-web-forms/vite.config.ts b/packages/odk-web-forms/vite.config.ts index cece9e665..8aa83ce38 100644 --- a/packages/odk-web-forms/vite.config.ts +++ b/packages/odk-web-forms/vite.config.ts @@ -3,7 +3,7 @@ // TODO: share Vite config where makes sense -import type { CollectionValues } from '@odk/common/types/collections/CollectionValues.ts'; +import type { CollectionValues } from '@odk-web-forms/common/types/collections/CollectionValues.ts'; import suidPlugin from '@suid/vite-plugin'; import { createRequire } from 'node:module'; import { resolve as resolvePath } from 'node:path'; @@ -144,8 +144,8 @@ export default defineConfig(({ mode }) => { resolve: { alias: { - '@odk/common/types': resolvePath(__dirname, '../common/types'), - '@odk/common': resolvePath(__dirname, '../common/src'), + '@odk-web-forms/common/types': resolvePath(__dirname, '../common/types'), + '@odk-web-forms/common': resolvePath(__dirname, '../common/src'), '@solidjs/testing-library': require.resolve('./tools/@solidjs/testing-library/index.ts'), }, diff --git a/packages/odk-xpath/package.json b/packages/odk-xpath/package.json index 0730b905a..938d40f2c 100644 --- a/packages/odk-xpath/package.json +++ b/packages/odk-xpath/package.json @@ -48,7 +48,7 @@ }, "dependencies": { "@js-temporal/polyfill": "^0.4.4", - "@odk/common": "0.0.0", + "@odk-web-forms/common": "0.0.0", "crypto-js": "^4.1.1", "itertools-ts": "^1.23.0" }, diff --git a/packages/odk-xpath/src/evaluations/LocationPathEvaluation.ts b/packages/odk-xpath/src/evaluations/LocationPathEvaluation.ts index c93304cd3..eca3a2ec3 100644 --- a/packages/odk-xpath/src/evaluations/LocationPathEvaluation.ts +++ b/packages/odk-xpath/src/evaluations/LocationPathEvaluation.ts @@ -1,5 +1,5 @@ import type { Temporal } from '@js-temporal/polyfill'; -import { UnreachableError } from '@odk/common/lib/error/UnreachableError.ts'; +import { UnreachableError } from '@odk-web-forms/common/lib/error/UnreachableError.ts'; import type { Context } from '../context/Context.ts'; import type { EvaluationContext, diff --git a/packages/odk-xpath/src/evaluations/NodeEvaluation.ts b/packages/odk-xpath/src/evaluations/NodeEvaluation.ts index 5f792234a..dad661c4f 100644 --- a/packages/odk-xpath/src/evaluations/NodeEvaluation.ts +++ b/packages/odk-xpath/src/evaluations/NodeEvaluation.ts @@ -1,4 +1,4 @@ -import { trimXMLXPathWhitespace } from '@odk/common/lib/string/whitespace.ts'; +import { trimXMLXPathWhitespace } from '@odk-web-forms/common/lib/string/whitespace.ts'; import type { LocationPathEvaluation } from './LocationPathEvaluation.ts'; import { StringEvaluation } from './StringEvaluation.ts'; import { ValueEvaluation } from './ValueEvaluation.ts'; diff --git a/packages/odk-xpath/src/evaluations/ValueEvaluation.ts b/packages/odk-xpath/src/evaluations/ValueEvaluation.ts index eb330f0f7..7971b5bc3 100644 --- a/packages/odk-xpath/src/evaluations/ValueEvaluation.ts +++ b/packages/odk-xpath/src/evaluations/ValueEvaluation.ts @@ -1,4 +1,4 @@ -import { UnreachableError } from '@odk/common/lib/error/UnreachableError.ts'; +import { UnreachableError } from '@odk-web-forms/common/lib/error/UnreachableError.ts'; import type { Evaluation } from './Evaluation.ts'; import type { EvaluationType, EvaluationTypes } from './EvaluationType.ts'; import { LocationPathEvaluation } from './LocationPathEvaluation.ts'; diff --git a/packages/odk-xpath/src/evaluator/Evaluator.test.ts b/packages/odk-xpath/src/evaluator/Evaluator.test.ts index f32f2c3bb..20e97dd83 100644 --- a/packages/odk-xpath/src/evaluator/Evaluator.test.ts +++ b/packages/odk-xpath/src/evaluator/Evaluator.test.ts @@ -1,4 +1,4 @@ -import { xml } from '@odk/common/test/factories/xml'; +import { xml } from '@odk-web-forms/common/test/factories/xml'; import { beforeEach, describe, expect, it } from 'vitest'; import { xpathParser } from '../../test/parser.ts'; import { Evaluator } from './Evaluator.ts'; diff --git a/packages/odk-xpath/src/evaluator/NamespaceResolver.test.ts b/packages/odk-xpath/src/evaluator/NamespaceResolver.test.ts index e1e628f04..36630be28 100644 --- a/packages/odk-xpath/src/evaluator/NamespaceResolver.test.ts +++ b/packages/odk-xpath/src/evaluator/NamespaceResolver.test.ts @@ -1,4 +1,4 @@ -import { xml } from '@odk/common/test/factories/xml.ts'; +import { xml } from '@odk-web-forms/common/test/factories/xml.ts'; import { beforeEach, describe, expect, it } from 'vitest'; import { NamespaceResolver, staticNamespaces } from './NamespaceResolver.ts'; diff --git a/packages/odk-xpath/src/evaluator/NamespaceResolver.ts b/packages/odk-xpath/src/evaluator/NamespaceResolver.ts index adda8f4ca..a31f7f6b4 100644 --- a/packages/odk-xpath/src/evaluator/NamespaceResolver.ts +++ b/packages/odk-xpath/src/evaluator/NamespaceResolver.ts @@ -18,8 +18,8 @@ import { XML_PREFIX, XMLNS_NAMESPACE_URI, XMLNS_PREFIX, -} from '@odk/common/constants/xmlns.ts'; -import { UpsertableMap } from '@odk/common/lib/collections/UpsertableMap.ts'; +} from '@odk-web-forms/common/constants/xmlns.ts'; +import { UpsertableMap } from '@odk-web-forms/common/lib/collections/UpsertableMap.ts'; import type { ContextParentNode } from '../lib/dom/types.ts'; import type { XPathNamespaceResolverObject } from '../shared/interface.ts'; diff --git a/packages/odk-xpath/src/evaluator/expression/FunctionCallExpressionEvaluator.ts b/packages/odk-xpath/src/evaluator/expression/FunctionCallExpressionEvaluator.ts index ffbf376bf..2c79b4c6b 100644 --- a/packages/odk-xpath/src/evaluator/expression/FunctionCallExpressionEvaluator.ts +++ b/packages/odk-xpath/src/evaluator/expression/FunctionCallExpressionEvaluator.ts @@ -1,4 +1,4 @@ -import { UnreachableError } from '@odk/common/lib/error/UnreachableError.ts'; +import { UnreachableError } from '@odk-web-forms/common/lib/error/UnreachableError.ts'; import type { EvaluationContext } from '../../context/EvaluationContext.ts'; import type { Evaluation } from '../../evaluations/Evaluation.ts'; import type { FunctionCallNode } from '../../static/grammar/SyntaxNode.ts'; diff --git a/packages/odk-xpath/src/evaluator/expression/LocationPathEvaluator.ts b/packages/odk-xpath/src/evaluator/expression/LocationPathEvaluator.ts index 25d55767c..60edff95b 100644 --- a/packages/odk-xpath/src/evaluator/expression/LocationPathEvaluator.ts +++ b/packages/odk-xpath/src/evaluator/expression/LocationPathEvaluator.ts @@ -1,4 +1,4 @@ -import { UnreachableError } from '@odk/common/lib/error/UnreachableError.ts'; +import { UnreachableError } from '@odk-web-forms/common/lib/error/UnreachableError.ts'; import type { EvaluationContext } from '../../context/EvaluationContext.ts'; import { LocationPathEvaluation } from '../../evaluations/LocationPathEvaluation.ts'; import type { ContextNode } from '../../lib/dom/types.ts'; diff --git a/packages/odk-xpath/src/evaluator/expression/NumericBinaryExpressionEvaluator.ts b/packages/odk-xpath/src/evaluator/expression/NumericBinaryExpressionEvaluator.ts index 4af4a4e22..0f3679287 100644 --- a/packages/odk-xpath/src/evaluator/expression/NumericBinaryExpressionEvaluator.ts +++ b/packages/odk-xpath/src/evaluator/expression/NumericBinaryExpressionEvaluator.ts @@ -1,4 +1,4 @@ -import { UnreachableError } from '@odk/common/lib/error/UnreachableError.ts'; +import { UnreachableError } from '@odk-web-forms/common/lib/error/UnreachableError.ts'; import type { EvaluationContext } from '../../context/EvaluationContext.ts'; import { NumberEvaluation } from '../../evaluations/NumberEvaluation.ts'; import type { diff --git a/packages/odk-xpath/src/evaluator/expression/factory.ts b/packages/odk-xpath/src/evaluator/expression/factory.ts index cbb382e0b..0ffe5b9d1 100644 --- a/packages/odk-xpath/src/evaluator/expression/factory.ts +++ b/packages/odk-xpath/src/evaluator/expression/factory.ts @@ -1,4 +1,4 @@ -import { UnreachableError } from '@odk/common/lib/error/UnreachableError.ts'; +import { UnreachableError } from '@odk-web-forms/common/lib/error/UnreachableError.ts'; import type { AnyExprNode, ArgumentNode, diff --git a/packages/odk-xpath/src/evaluator/functions/FunctionImplementation.ts b/packages/odk-xpath/src/evaluator/functions/FunctionImplementation.ts index d12c1bbab..2a72d8961 100644 --- a/packages/odk-xpath/src/evaluator/functions/FunctionImplementation.ts +++ b/packages/odk-xpath/src/evaluator/functions/FunctionImplementation.ts @@ -7,8 +7,8 @@ // - Type hints -> anything? // - TS types for arity -> expression nullishness? -import { UnreachableError } from '@odk/common/lib/error/UnreachableError.ts'; -import type { IterableReadonlyTuple } from '@odk/common/types/collections/IterableReadonlyTuple.ts'; +import { UnreachableError } from '@odk-web-forms/common/lib/error/UnreachableError.ts'; +import type { IterableReadonlyTuple } from '@odk-web-forms/common/types/collections/IterableReadonlyTuple.ts'; import type { Context } from '../../context/Context.ts'; import type { Evaluation } from '../../evaluations/Evaluation.ts'; import type { EvaluationType } from '../../evaluations/EvaluationType.ts'; diff --git a/packages/odk-xpath/src/evaluator/result/index.ts b/packages/odk-xpath/src/evaluator/result/index.ts index 2eb59a3ea..2f88da29f 100644 --- a/packages/odk-xpath/src/evaluator/result/index.ts +++ b/packages/odk-xpath/src/evaluator/result/index.ts @@ -1,4 +1,4 @@ -import { UnreachableError } from '@odk/common/lib/error/UnreachableError.ts'; +import { UnreachableError } from '@odk-web-forms/common/lib/error/UnreachableError.ts'; import type { Evaluation } from '../../evaluations/Evaluation.ts'; import type { XPathResultType } from '../../shared/index.ts'; import { BooleanResult } from './BooleanResult'; diff --git a/packages/odk-xpath/src/evaluator/step/Step.ts b/packages/odk-xpath/src/evaluator/step/Step.ts index 727f48ce9..85dc379ec 100644 --- a/packages/odk-xpath/src/evaluator/step/Step.ts +++ b/packages/odk-xpath/src/evaluator/step/Step.ts @@ -1,4 +1,4 @@ -import { UnreachableError } from '@odk/common/lib/error/UnreachableError.ts'; +import { UnreachableError } from '@odk-web-forms/common/lib/error/UnreachableError.ts'; import type { AbbreviatedAbsoluteLocationPathNode, AbsoluteLocationPathNode, diff --git a/packages/odk-xpath/src/functions/enketo/index.ts b/packages/odk-xpath/src/functions/enketo/index.ts index 98b078187..999de8d61 100644 --- a/packages/odk-xpath/src/functions/enketo/index.ts +++ b/packages/odk-xpath/src/functions/enketo/index.ts @@ -1,4 +1,4 @@ -import { ENKETO_NAMESPACE_URI } from '@odk/common/constants/xmlns.ts'; +import { ENKETO_NAMESPACE_URI } from '@odk-web-forms/common/constants/xmlns.ts'; import { FunctionAlias } from '../../evaluator/functions/FunctionAlias.ts'; import { FunctionLibrary } from '../../evaluator/functions/FunctionLibrary.ts'; import { date, formatDateTime } from '../xforms/datetime.ts'; diff --git a/packages/odk-xpath/src/functions/fn/index.ts b/packages/odk-xpath/src/functions/fn/index.ts index c387a3793..e47cd94d1 100644 --- a/packages/odk-xpath/src/functions/fn/index.ts +++ b/packages/odk-xpath/src/functions/fn/index.ts @@ -1,4 +1,4 @@ -import { FN_NAMESPACE_URI } from '@odk/common/constants/xmlns.ts'; +import { FN_NAMESPACE_URI } from '@odk-web-forms/common/constants/xmlns.ts'; import { FunctionLibrary } from '../../evaluator/functions/FunctionLibrary.ts'; import * as boolean from './boolean.ts'; import * as nodeset from './node-set.ts'; diff --git a/packages/odk-xpath/src/functions/fn/node-set.ts b/packages/odk-xpath/src/functions/fn/node-set.ts index 46707603e..c05747f1a 100644 --- a/packages/odk-xpath/src/functions/fn/node-set.ts +++ b/packages/odk-xpath/src/functions/fn/node-set.ts @@ -1,4 +1,4 @@ -import { normalizeXMLXPathWhitespace } from '@odk/common/lib/string/whitespace.ts'; +import { normalizeXMLXPathWhitespace } from '@odk-web-forms/common/lib/string/whitespace.ts'; import { reduce } from 'itertools-ts'; import { LocationPathEvaluation } from '../../evaluations/LocationPathEvaluation.ts'; import { NodeSetFunction } from '../../evaluator/functions/NodeSetFunction.ts'; diff --git a/packages/odk-xpath/src/functions/fn/string.ts b/packages/odk-xpath/src/functions/fn/string.ts index b3d87f178..85e71c41d 100644 --- a/packages/odk-xpath/src/functions/fn/string.ts +++ b/packages/odk-xpath/src/functions/fn/string.ts @@ -1,4 +1,4 @@ -import { normalizeXMLXPathWhitespace } from '@odk/common/lib/string/whitespace.ts'; +import { normalizeXMLXPathWhitespace } from '@odk-web-forms/common/lib/string/whitespace.ts'; import { BooleanFunction } from '../../evaluator/functions/BooleanFunction.ts'; import { NumberFunction } from '../../evaluator/functions/NumberFunction.ts'; import { StringFunction } from '../../evaluator/functions/StringFunction.ts'; diff --git a/packages/odk-xpath/src/functions/javarosa/index.ts b/packages/odk-xpath/src/functions/javarosa/index.ts index e4e35fd59..e2dbdb345 100644 --- a/packages/odk-xpath/src/functions/javarosa/index.ts +++ b/packages/odk-xpath/src/functions/javarosa/index.ts @@ -1,4 +1,4 @@ -import { JAVAROSA_NAMESPACE_URI } from '@odk/common/constants/xmlns'; +import { JAVAROSA_NAMESPACE_URI } from '@odk-web-forms/common/constants/xmlns'; import { FunctionLibrary } from '../../evaluator/functions/FunctionLibrary'; import * as string from './string.ts'; diff --git a/packages/odk-xpath/src/functions/xforms/index.ts b/packages/odk-xpath/src/functions/xforms/index.ts index f6d4d8c41..dfd5eccdb 100644 --- a/packages/odk-xpath/src/functions/xforms/index.ts +++ b/packages/odk-xpath/src/functions/xforms/index.ts @@ -1,4 +1,4 @@ -import { XFORMS_NAMESPACE_URI } from '@odk/common/constants/xmlns.ts'; +import { XFORMS_NAMESPACE_URI } from '@odk-web-forms/common/constants/xmlns.ts'; import { FunctionLibrary } from '../../evaluator/functions/FunctionLibrary.ts'; import * as boolean from './boolean.ts'; import * as datetime from './datetime.ts'; diff --git a/packages/odk-xpath/src/functions/xforms/node-set.ts b/packages/odk-xpath/src/functions/xforms/node-set.ts index 948a2949a..a229fd4ca 100644 --- a/packages/odk-xpath/src/functions/xforms/node-set.ts +++ b/packages/odk-xpath/src/functions/xforms/node-set.ts @@ -1,6 +1,6 @@ -import { UpsertableWeakMap } from '@odk/common/lib/collections/UpsertableWeakMap.ts'; -import { ScopedElementLookup } from '@odk/common/lib/dom/compatibility.ts'; -import type { LocalNamedElement } from '@odk/common/types/dom.ts'; +import { UpsertableWeakMap } from '@odk-web-forms/common/lib/collections/UpsertableWeakMap.ts'; +import { ScopedElementLookup } from '@odk-web-forms/common/lib/dom/compatibility.ts'; +import type { LocalNamedElement } from '@odk-web-forms/common/types/dom.ts'; import { LocationPathEvaluation } from '../../evaluations/LocationPathEvaluation.ts'; import { NodeSetFunction } from '../../evaluator/functions/NodeSetFunction.ts'; import { NumberFunction } from '../../evaluator/functions/NumberFunction.ts'; diff --git a/packages/odk-xpath/src/functions/xforms/select.ts b/packages/odk-xpath/src/functions/xforms/select.ts index fe4a8ff91..db90c5154 100644 --- a/packages/odk-xpath/src/functions/xforms/select.ts +++ b/packages/odk-xpath/src/functions/xforms/select.ts @@ -1,7 +1,7 @@ import { trimXMLXPathWhitespace, xmlXPathWhitespaceSeparatedList, -} from '@odk/common/lib/string/whitespace.ts'; +} from '@odk-web-forms/common/lib/string/whitespace.ts'; import { BooleanFunction } from '../../evaluator/functions/BooleanFunction.ts'; import { NumberFunction } from '../../evaluator/functions/NumberFunction.ts'; import { StringFunction } from '../../evaluator/functions/StringFunction.ts'; diff --git a/packages/odk-xpath/src/lib/iterators/Reiterable.test.ts b/packages/odk-xpath/src/lib/iterators/Reiterable.test.ts index 8a5c7a414..5c52e5b27 100644 --- a/packages/odk-xpath/src/lib/iterators/Reiterable.test.ts +++ b/packages/odk-xpath/src/lib/iterators/Reiterable.test.ts @@ -1,4 +1,4 @@ -import type { CollectionValues } from '@odk/common/types/collections/CollectionValues.ts'; +import type { CollectionValues } from '@odk-web-forms/common/types/collections/CollectionValues.ts'; import { describe, expect, it } from 'vitest'; import { Reiterable } from './Reiterable.ts'; diff --git a/packages/odk-xpath/src/static/grammar/ExpressionParser.ts b/packages/odk-xpath/src/static/grammar/ExpressionParser.ts index 10a575997..fe8a4d828 100644 --- a/packages/odk-xpath/src/static/grammar/ExpressionParser.ts +++ b/packages/odk-xpath/src/static/grammar/ExpressionParser.ts @@ -1,4 +1,4 @@ -import { UpsertableMap } from '@odk/common/lib/collections/UpsertableMap.ts'; +import { UpsertableMap } from '@odk-web-forms/common/lib/collections/UpsertableMap.ts'; import type { SyntaxLanguageTypeName, SyntaxLanguage as TreeSitterLanguage, diff --git a/packages/odk-xpath/src/xforms/XFormsItextTranslations.ts b/packages/odk-xpath/src/xforms/XFormsItextTranslations.ts index ae53302e5..c1d6e932e 100644 --- a/packages/odk-xpath/src/xforms/XFormsItextTranslations.ts +++ b/packages/odk-xpath/src/xforms/XFormsItextTranslations.ts @@ -1,6 +1,9 @@ -import { UpsertableWeakMap } from '@odk/common/lib/collections/UpsertableWeakMap.ts'; -import { ScopedElementLookup } from '@odk/common/lib/dom/compatibility.ts'; -import type { KnownAttributeLocalNamedElement, LocalNamedElement } from '@odk/common/types/dom.ts'; +import { UpsertableWeakMap } from '@odk-web-forms/common/lib/collections/UpsertableWeakMap.ts'; +import { ScopedElementLookup } from '@odk-web-forms/common/lib/dom/compatibility.ts'; +import type { + KnownAttributeLocalNamedElement, + LocalNamedElement, +} from '@odk-web-forms/common/types/dom.ts'; import type { ModelElement, XFormsXPathEvaluator } from './XFormsXPathEvaluator.ts'; export interface ItextRootElement extends LocalNamedElement<'itext'> {} diff --git a/packages/odk-xpath/test/native/predicates.spec.ts b/packages/odk-xpath/test/native/predicates.spec.ts index 7797fdcc4..08d6050be 100644 --- a/packages/odk-xpath/test/native/predicates.spec.ts +++ b/packages/odk-xpath/test/native/predicates.spec.ts @@ -1,4 +1,4 @@ -import { UnreachableError } from '@odk/common/lib/error/UnreachableError.ts'; +import { UnreachableError } from '@odk-web-forms/common/lib/error/UnreachableError.ts'; import { beforeEach, describe, it } from 'vitest'; import type { TestContext } from '../helpers.ts'; import { createTestContext } from '../helpers.ts'; diff --git a/packages/odk-xpath/test/xforms/complex.spec.ts b/packages/odk-xpath/test/xforms/complex.spec.ts index 432fa5846..e0b261edb 100644 --- a/packages/odk-xpath/test/xforms/complex.spec.ts +++ b/packages/odk-xpath/test/xforms/complex.spec.ts @@ -1,4 +1,4 @@ -import { UnreachableError } from '@odk/common/lib/error/UnreachableError.ts'; +import { UnreachableError } from '@odk-web-forms/common/lib/error/UnreachableError.ts'; import { beforeEach, describe, expect, it } from 'vitest'; import type { XFormsTestContext } from '../helpers.ts'; import { createXFormsTestContext } from '../helpers.ts'; diff --git a/packages/odk-xpath/test/xforms/predicates.spec.ts b/packages/odk-xpath/test/xforms/predicates.spec.ts index 7866387a9..ebd8bd459 100644 --- a/packages/odk-xpath/test/xforms/predicates.spec.ts +++ b/packages/odk-xpath/test/xforms/predicates.spec.ts @@ -1,4 +1,4 @@ -import { UnreachableError } from '@odk/common/lib/error/UnreachableError.ts'; +import { UnreachableError } from '@odk-web-forms/common/lib/error/UnreachableError.ts'; import { beforeEach, describe, it } from 'vitest'; import type { XFormsTestContext } from '../helpers.ts'; import { createXFormsTestContext } from '../helpers.ts'; diff --git a/packages/odk-xpath/test/xforms/root-node-context.spec.ts b/packages/odk-xpath/test/xforms/root-node-context.spec.ts index 236c14968..5b6b4d758 100644 --- a/packages/odk-xpath/test/xforms/root-node-context.spec.ts +++ b/packages/odk-xpath/test/xforms/root-node-context.spec.ts @@ -1,6 +1,6 @@ -import { ScopedElementLookup } from '@odk/common/lib/dom/compatibility.ts'; -import { UnreachableError } from '@odk/common/lib/error/UnreachableError.ts'; -import { xml } from '@odk/common/test/factories/xml.ts'; +import { ScopedElementLookup } from '@odk-web-forms/common/lib/dom/compatibility.ts'; +import { UnreachableError } from '@odk-web-forms/common/lib/error/UnreachableError.ts'; +import { xml } from '@odk-web-forms/common/test/factories/xml.ts'; import { beforeEach, describe, expect, it } from 'vitest'; import { Evaluator } from '../../src/index.ts'; import { xpathParser } from '../parser.ts'; diff --git a/packages/odk-xpath/tsconfig.json b/packages/odk-xpath/tsconfig.json index 22c43fa46..3bc696e7c 100644 --- a/packages/odk-xpath/tsconfig.json +++ b/packages/odk-xpath/tsconfig.json @@ -6,8 +6,8 @@ "lib": ["DOM", "DOM.Iterable", "ES2022"], "outDir": "./dist", "paths": { - "@odk/common/types/*": ["../common/types/*"], - "@odk/common/*": ["../common/src/*"] + "@odk-web-forms/common/types/*": ["../common/types/*"], + "@odk-web-forms/common/*": ["../common/src/*"] } } } diff --git a/packages/odk-xpath/vite.config.ts b/packages/odk-xpath/vite.config.ts index 31bd2e2d5..34d2c0cd3 100644 --- a/packages/odk-xpath/vite.config.ts +++ b/packages/odk-xpath/vite.config.ts @@ -1,7 +1,7 @@ /// /// -import type { CollectionValues } from '@odk/common/types/collections/CollectionValues'; +import type { CollectionValues } from '@odk-web-forms/common/types/collections/CollectionValues'; import { resolve as resolvePath } from 'node:path'; import { defineConfig } from 'vite'; import babel from 'vite-plugin-babel'; @@ -130,8 +130,8 @@ export default defineConfig(({ command, mode }) => { ].filter((plugin) => plugin != null), resolve: { alias: { - '@odk/common/types': resolvePath(__dirname, '../common/types'), - '@odk/common': resolvePath(__dirname, '../common/src'), + '@odk-web-forms/common/types': resolvePath(__dirname, '../common/types'), + '@odk-web-forms/common': resolvePath(__dirname, '../common/src'), }, }, test: { diff --git a/tsconfig.tools.json b/tsconfig.tools.json index 270e4ee30..e8a46250c 100644 --- a/tsconfig.tools.json +++ b/tsconfig.tools.json @@ -15,8 +15,8 @@ ], "compilerOptions": { "paths": { - "@odk/common/types/*": ["../common/types/*"], - "@odk/common/*": ["../common/src/*"] + "@odk-web-forms/common/types/*": ["../common/types/*"], + "@odk-web-forms/common/*": ["../common/src/*"] } } } From bab7236c2853a8f26c3f9f5922da9fae0aa4ff9c Mon Sep 17 00:00:00 2001 From: eyelidlessness Date: Sat, 9 Mar 2024 08:53:10 -0800 Subject: [PATCH 03/14] Rename package: @odk/xpath -> @odk-web-forms/xpath Also: - Fixed a few missed `tree-sitter-xpath` references along the way. - Fixed an errant comment trailing off --- .changeset/afraid-comics-pump.md | 2 +- .github/workflows/ci.yml | 22 +++++++++---------- .gitignore | 2 +- packages/common/README.md | 4 +++- packages/odk-web-forms/package.json | 2 +- .../odk-web-forms/src/lib/xform/XFormDOM.ts | 2 +- .../xform/expression/DependentExpression.ts | 2 +- .../src/lib/xform/state/EntryState.ts | 2 +- .../src/lib/xform/state/TranslationState.ts | 2 +- .../odk-web-forms/src/lib/xpath/analysis.ts | 4 ++-- .../odk-web-forms/src/lib/xpath/evaluator.ts | 2 +- .../odk-web-forms/src/lib/xpath/parser.ts | 2 +- packages/odk-web-forms/vite.config.ts | 8 +++---- packages/odk-xpath/CHANGELOG.md | 1 - packages/tree-sitter-xpath/CHANGELOG.md | 2 +- packages/tree-sitter-xpath/README.md | 2 +- packages/xpath/CHANGELOG.md | 1 + packages/{odk-xpath => xpath}/README.md | 16 +++++++------- .../{odk-xpath => xpath}/e2e/noop.test.ts | 0 .../{odk-xpath => xpath}/e2e/tsconfig.json | 0 packages/{odk-xpath => xpath}/index.html | 0 packages/{odk-xpath => xpath}/package.json | 4 ++-- .../{odk-xpath => xpath}/playwright.config.ts | 0 .../src/context/Context.ts | 0 .../src/context/EvaluationContext.ts | 0 .../src/evaluations/BooleanEvaluation.ts | 0 .../src/evaluations/DateTimeLikeEvaluation.ts | 0 .../src/evaluations/Evaluation.ts | 0 .../src/evaluations/EvaluationType.ts | 0 .../src/evaluations/LocationPathEvaluation.ts | 0 .../src/evaluations/NodeEvaluation.ts | 0 .../src/evaluations/NumberEvaluation.ts | 0 .../src/evaluations/StringEvaluation.ts | 0 .../src/evaluations/ValueEvaluation.ts | 0 .../src/evaluator/Evaluator.test.ts | 0 .../src/evaluator/Evaluator.ts | 0 .../src/evaluator/NamespaceResolver.test.ts | 0 .../src/evaluator/NamespaceResolver.ts | 0 ...AbsoluteLocationPathExpressionEvaluator.ts | 0 .../expression/BinaryExpressionEvaluator.ts | 0 .../BooleanBinaryExpressionEvaluator.ts | 0 .../expression/ExpressionEvaluator.ts | 0 .../FilterPathExpressionEvaluator.ts | 0 .../FunctionCallExpressionEvaluator.ts | 0 .../expression/LocationPathEvaluator.ts | 0 .../LocationPathExpressionEvaluator.ts | 0 .../expression/NumberExpressionEvaluator.ts | 0 .../NumberLiteralExpressionEvaluator.ts | 0 .../NumericBinaryExpressionEvaluator.ts | 0 ...RelativeLocationPathExpressionEvaluator.ts | 0 .../expression/StringExpressionEvaluator.ts | 0 .../StringLiteralExpressionEvaluator.ts | 0 .../expression/UnaryExpressionEvaluator.ts | 0 .../expression/UnionExpressionEvaluator.ts | 0 .../src/evaluator/expression/factory.ts | 0 .../evaluator/functions/BooleanFunction.ts | 0 .../src/evaluator/functions/FunctionAlias.ts | 0 .../functions/FunctionImplementation.ts | 0 .../evaluator/functions/FunctionLibrary.ts | 0 .../functions/FunctionLibraryCollection.ts | 4 ++-- .../evaluator/functions/NodeSetFunction.ts | 0 .../src/evaluator/functions/NumberFunction.ts | 0 .../src/evaluator/functions/StringFunction.ts | 0 .../functions/TypedFunctionImplementation.ts | 0 .../src/evaluator/functions/index.ts | 0 .../src/evaluator/result/BaseResult.ts | 0 .../src/evaluator/result/BooleanResult.ts | 0 .../src/evaluator/result/NodeSetResult.ts | 0 .../src/evaluator/result/NumberResult.ts | 0 .../src/evaluator/result/PrimitiveResult.ts | 0 .../src/evaluator/result/ResultType.ts | 0 .../src/evaluator/result/StringResult.ts | 0 .../src/evaluator/result/index.ts | 0 .../src/evaluator/step/Step.ts | 0 .../src/functions/_shared/number.ts | 0 .../src/functions/_shared/string.ts | 0 .../src/functions/enketo/index.ts | 0 .../src/functions/fn/boolean.ts | 0 .../src/functions/fn/index.ts | 0 .../src/functions/fn/node-set.ts | 0 .../src/functions/fn/number.ts | 0 .../src/functions/fn/string.ts | 0 .../src/functions/javarosa/index.ts | 0 .../src/functions/javarosa/string.ts | 0 .../src/functions/xforms/boolean.ts | 0 .../src/functions/xforms/datetime.ts | 0 .../src/functions/xforms/geo.ts | 0 .../src/functions/xforms/index.ts | 0 .../src/functions/xforms/node-set.ts | 0 .../src/functions/xforms/number.ts | 0 .../src/functions/xforms/select.ts | 0 .../src/functions/xforms/string.ts | 0 packages/{odk-xpath => xpath}/src/index.ts | 0 .../src/lib/collections/sort.ts | 0 .../src/lib/datetime/coercion.ts | 0 .../src/lib/datetime/constants.ts | 0 .../src/lib/datetime/functions.ts | 0 .../src/lib/datetime/predicates.ts | 0 .../src/lib/dom/assertions.ts | 0 .../src/lib/dom/predicates.ts | 0 .../{odk-xpath => xpath}/src/lib/dom/sort.ts | 0 .../src/lib/dom/traversal.ts | 0 .../{odk-xpath => xpath}/src/lib/dom/types.ts | 0 .../{odk-xpath => xpath}/src/lib/dom/xml.ts | 0 .../src/lib/iterators/Reiterable.test.ts | 0 .../src/lib/iterators/Reiterable.ts | 0 .../src/lib/iterators/common.ts | 0 .../src/lib/iterators/index.ts | 0 .../src/lib/regex/escape.ts | 0 .../src/shared/constants.ts | 0 .../{odk-xpath => xpath}/src/shared/index.ts | 0 .../src/shared/interface.ts | 0 .../src/static/grammar/ExpressionParser.ts | 0 .../src/static/grammar/SyntaxLanguage.ts | 0 .../src/static/grammar/SyntaxNode.ts | 0 .../src/static/grammar/SyntaxTree.ts | 0 .../static/grammar/TreeSitterXPathParser.ts | 16 +++++++------- .../src/static/grammar/type-names.ts | 0 .../{odk-xpath => xpath}/src/type-safety.d.ts | 0 .../src/xforms/XFormsItextTranslations.ts | 0 .../src/xforms/XFormsXPathEvaluator.ts | 0 packages/{odk-xpath => xpath}/test/helpers.ts | 0 packages/{odk-xpath => xpath}/test/index.ts | 0 .../test/native/attributes.spec.ts | 0 .../test/native/axis.spec.ts | 0 .../test/native/basic-xpath.spec.ts | 0 .../test/native/boolean.spec.ts | 0 .../test/native/ceiling.spec.ts | 0 .../test/native/comparison-operator.spec.ts | 0 .../test/native/comparison-operator2.spec.ts | 0 .../test/native/current.spec.ts | 0 .../test/native/expression-evaluation.spec.ts | 0 .../test/native/false.spec.ts | 0 .../test/native/floor.spec.ts | 0 .../{odk-xpath => xpath}/test/native/index.ts | 0 .../test/native/infix-operators.spec.ts | 0 .../test/native/lang.spec.ts | 0 .../test/native/namespace-resolver.spec.ts | 0 .../test/native/node-name.spec.ts | 0 .../test/native/node-type.spec.ts | 0 .../test/native/nodeset-id.spec.ts | 0 .../test/native/nodeset.spec.ts | 0 .../test/native/number-operator.spec.ts | 0 .../test/native/number.spec.ts | 0 .../test/native/path.spec.ts | 0 .../test/native/predicates.spec.ts | 0 .../test/native/string.spec.ts | 0 .../test/native/true.spec.ts | 0 .../test/native/union-operator.spec.ts | 0 packages/{odk-xpath => xpath}/test/parser.ts | 8 +++---- .../test/xforms/abs.spec.ts | 0 .../test/xforms/and-or.spec.ts | 0 .../test/xforms/area.spec.ts | 0 .../test/xforms/boolean-from-string.spec.ts | 0 .../test/xforms/checklist.spec.ts | 0 .../test/xforms/coalesce.spec.ts | 0 .../test/xforms/complex.spec.ts | 0 .../test/xforms/concat.spec.ts | 0 .../test/xforms/count-non-empty.spec.ts | 0 .../test/xforms/count-selected.spec.ts | 0 .../test/xforms/custom.spec.ts | 0 .../test/xforms/date-comparison.spec.ts | 0 .../test/xforms/date-time.spec.ts | 0 .../test/xforms/date.spec.ts | 0 .../test/xforms/decimal-date-time.spec.ts | 0 .../test/xforms/decimal-time.spec.ts | 0 .../test/xforms/digest.spec.ts | 0 .../test/xforms/ends-with.spec.ts | 0 .../test/xforms/format-date-time.spec.ts | 0 .../test/xforms/format-date.spec.ts | 0 .../test/xforms/if.spec.ts | 0 .../{odk-xpath => xpath}/test/xforms/index.ts | 0 .../test/xforms/instance.spec.ts | 0 .../test/xforms/int.spec.ts | 0 .../test/xforms/join.spec.ts | 0 .../test/xforms/jr-itext.spec.ts | 0 .../test/xforms/max.spec.ts | 0 .../test/xforms/min.spec.ts | 0 .../test/xforms/not.spec.ts | 0 .../test/xforms/now.spec.ts | 0 .../test/xforms/number.spec.ts | 0 .../test/xforms/once.spec.ts | 0 .../test/xforms/position.spec.ts | 0 .../test/xforms/pow.spec.ts | 0 .../test/xforms/predicates.spec.ts | 0 .../test/xforms/random.spec.ts | 0 .../test/xforms/randomize.spec.ts | 0 .../test/xforms/regex.spec.ts | 0 .../test/xforms/root-node-context.spec.ts | 0 .../test/xforms/round.spec.ts | 0 .../test/xforms/selected-at.spec.ts | 0 .../test/xforms/selected.spec.ts | 0 .../test/xforms/simple-xpath.spec.ts | 0 .../test/xforms/subs.spec.ts | 0 .../test/xforms/sum.spec.ts | 0 .../test/xforms/today.spec.ts | 0 .../test/xforms/trigo.spec.ts | 0 .../test/xforms/uuid.spec.ts | 0 .../test/xforms/weighted-checklist.spec.ts | 0 packages/{odk-xpath => xpath}/tsconfig.json | 0 packages/{odk-xpath => xpath}/vite-env.d.ts | 0 packages/{odk-xpath => xpath}/vite.config.ts | 0 turbo.json | 6 ++--- vendor-packages/suid/vite.config.ts | 4 ++-- 204 files changed, 61 insertions(+), 59 deletions(-) delete mode 100644 packages/odk-xpath/CHANGELOG.md create mode 100644 packages/xpath/CHANGELOG.md rename packages/{odk-xpath => xpath}/README.md (86%) rename packages/{odk-xpath => xpath}/e2e/noop.test.ts (100%) rename packages/{odk-xpath => xpath}/e2e/tsconfig.json (100%) rename packages/{odk-xpath => xpath}/index.html (100%) rename packages/{odk-xpath => xpath}/package.json (97%) rename packages/{odk-xpath => xpath}/playwright.config.ts (100%) rename packages/{odk-xpath => xpath}/src/context/Context.ts (100%) rename packages/{odk-xpath => xpath}/src/context/EvaluationContext.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluations/BooleanEvaluation.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluations/DateTimeLikeEvaluation.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluations/Evaluation.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluations/EvaluationType.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluations/LocationPathEvaluation.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluations/NodeEvaluation.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluations/NumberEvaluation.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluations/StringEvaluation.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluations/ValueEvaluation.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/Evaluator.test.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/Evaluator.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/NamespaceResolver.test.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/NamespaceResolver.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/expression/AbsoluteLocationPathExpressionEvaluator.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/expression/BinaryExpressionEvaluator.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/expression/BooleanBinaryExpressionEvaluator.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/expression/ExpressionEvaluator.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/expression/FilterPathExpressionEvaluator.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/expression/FunctionCallExpressionEvaluator.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/expression/LocationPathEvaluator.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/expression/LocationPathExpressionEvaluator.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/expression/NumberExpressionEvaluator.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/expression/NumberLiteralExpressionEvaluator.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/expression/NumericBinaryExpressionEvaluator.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/expression/RelativeLocationPathExpressionEvaluator.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/expression/StringExpressionEvaluator.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/expression/StringLiteralExpressionEvaluator.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/expression/UnaryExpressionEvaluator.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/expression/UnionExpressionEvaluator.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/expression/factory.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/functions/BooleanFunction.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/functions/FunctionAlias.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/functions/FunctionImplementation.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/functions/FunctionLibrary.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/functions/FunctionLibraryCollection.ts (96%) rename packages/{odk-xpath => xpath}/src/evaluator/functions/NodeSetFunction.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/functions/NumberFunction.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/functions/StringFunction.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/functions/TypedFunctionImplementation.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/functions/index.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/result/BaseResult.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/result/BooleanResult.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/result/NodeSetResult.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/result/NumberResult.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/result/PrimitiveResult.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/result/ResultType.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/result/StringResult.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/result/index.ts (100%) rename packages/{odk-xpath => xpath}/src/evaluator/step/Step.ts (100%) rename packages/{odk-xpath => xpath}/src/functions/_shared/number.ts (100%) rename packages/{odk-xpath => xpath}/src/functions/_shared/string.ts (100%) rename packages/{odk-xpath => xpath}/src/functions/enketo/index.ts (100%) rename packages/{odk-xpath => xpath}/src/functions/fn/boolean.ts (100%) rename packages/{odk-xpath => xpath}/src/functions/fn/index.ts (100%) rename packages/{odk-xpath => xpath}/src/functions/fn/node-set.ts (100%) rename packages/{odk-xpath => xpath}/src/functions/fn/number.ts (100%) rename packages/{odk-xpath => xpath}/src/functions/fn/string.ts (100%) rename packages/{odk-xpath => xpath}/src/functions/javarosa/index.ts (100%) rename packages/{odk-xpath => xpath}/src/functions/javarosa/string.ts (100%) rename packages/{odk-xpath => xpath}/src/functions/xforms/boolean.ts (100%) rename packages/{odk-xpath => xpath}/src/functions/xforms/datetime.ts (100%) rename packages/{odk-xpath => xpath}/src/functions/xforms/geo.ts (100%) rename packages/{odk-xpath => xpath}/src/functions/xforms/index.ts (100%) rename packages/{odk-xpath => xpath}/src/functions/xforms/node-set.ts (100%) rename packages/{odk-xpath => xpath}/src/functions/xforms/number.ts (100%) rename packages/{odk-xpath => xpath}/src/functions/xforms/select.ts (100%) rename packages/{odk-xpath => xpath}/src/functions/xforms/string.ts (100%) rename packages/{odk-xpath => xpath}/src/index.ts (100%) rename packages/{odk-xpath => xpath}/src/lib/collections/sort.ts (100%) rename packages/{odk-xpath => xpath}/src/lib/datetime/coercion.ts (100%) rename packages/{odk-xpath => xpath}/src/lib/datetime/constants.ts (100%) rename packages/{odk-xpath => xpath}/src/lib/datetime/functions.ts (100%) rename packages/{odk-xpath => xpath}/src/lib/datetime/predicates.ts (100%) rename packages/{odk-xpath => xpath}/src/lib/dom/assertions.ts (100%) rename packages/{odk-xpath => xpath}/src/lib/dom/predicates.ts (100%) rename packages/{odk-xpath => xpath}/src/lib/dom/sort.ts (100%) rename packages/{odk-xpath => xpath}/src/lib/dom/traversal.ts (100%) rename packages/{odk-xpath => xpath}/src/lib/dom/types.ts (100%) rename packages/{odk-xpath => xpath}/src/lib/dom/xml.ts (100%) rename packages/{odk-xpath => xpath}/src/lib/iterators/Reiterable.test.ts (100%) rename packages/{odk-xpath => xpath}/src/lib/iterators/Reiterable.ts (100%) rename packages/{odk-xpath => xpath}/src/lib/iterators/common.ts (100%) rename packages/{odk-xpath => xpath}/src/lib/iterators/index.ts (100%) rename packages/{odk-xpath => xpath}/src/lib/regex/escape.ts (100%) rename packages/{odk-xpath => xpath}/src/shared/constants.ts (100%) rename packages/{odk-xpath => xpath}/src/shared/index.ts (100%) rename packages/{odk-xpath => xpath}/src/shared/interface.ts (100%) rename packages/{odk-xpath => xpath}/src/static/grammar/ExpressionParser.ts (100%) rename packages/{odk-xpath => xpath}/src/static/grammar/SyntaxLanguage.ts (100%) rename packages/{odk-xpath => xpath}/src/static/grammar/SyntaxNode.ts (100%) rename packages/{odk-xpath => xpath}/src/static/grammar/SyntaxTree.ts (100%) rename packages/{odk-xpath => xpath}/src/static/grammar/TreeSitterXPathParser.ts (92%) rename packages/{odk-xpath => xpath}/src/static/grammar/type-names.ts (100%) rename packages/{odk-xpath => xpath}/src/type-safety.d.ts (100%) rename packages/{odk-xpath => xpath}/src/xforms/XFormsItextTranslations.ts (100%) rename packages/{odk-xpath => xpath}/src/xforms/XFormsXPathEvaluator.ts (100%) rename packages/{odk-xpath => xpath}/test/helpers.ts (100%) rename packages/{odk-xpath => xpath}/test/index.ts (100%) rename packages/{odk-xpath => xpath}/test/native/attributes.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/native/axis.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/native/basic-xpath.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/native/boolean.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/native/ceiling.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/native/comparison-operator.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/native/comparison-operator2.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/native/current.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/native/expression-evaluation.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/native/false.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/native/floor.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/native/index.ts (100%) rename packages/{odk-xpath => xpath}/test/native/infix-operators.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/native/lang.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/native/namespace-resolver.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/native/node-name.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/native/node-type.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/native/nodeset-id.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/native/nodeset.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/native/number-operator.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/native/number.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/native/path.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/native/predicates.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/native/string.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/native/true.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/native/union-operator.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/parser.ts (55%) rename packages/{odk-xpath => xpath}/test/xforms/abs.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/and-or.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/area.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/boolean-from-string.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/checklist.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/coalesce.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/complex.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/concat.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/count-non-empty.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/count-selected.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/custom.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/date-comparison.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/date-time.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/date.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/decimal-date-time.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/decimal-time.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/digest.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/ends-with.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/format-date-time.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/format-date.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/if.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/index.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/instance.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/int.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/join.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/jr-itext.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/max.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/min.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/not.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/now.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/number.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/once.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/position.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/pow.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/predicates.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/random.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/randomize.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/regex.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/root-node-context.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/round.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/selected-at.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/selected.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/simple-xpath.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/subs.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/sum.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/today.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/trigo.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/uuid.spec.ts (100%) rename packages/{odk-xpath => xpath}/test/xforms/weighted-checklist.spec.ts (100%) rename packages/{odk-xpath => xpath}/tsconfig.json (100%) rename packages/{odk-xpath => xpath}/vite-env.d.ts (100%) rename packages/{odk-xpath => xpath}/vite.config.ts (100%) diff --git a/.changeset/afraid-comics-pump.md b/.changeset/afraid-comics-pump.md index 1f3c679af..98d31c7ce 100644 --- a/.changeset/afraid-comics-pump.md +++ b/.changeset/afraid-comics-pump.md @@ -1,5 +1,5 @@ --- -'@odk/xpath': patch +'@odk-web-forms/xpath': patch --- Initial evaluator implementation diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 82a27863b..8cb955318 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -31,8 +31,8 @@ jobs: root: ${{ steps.changes.outputs.root }} odk-common: ${{ steps.changes.outputs.odk-common }} odk-web-forms: ${{ steps.changes.outputs.odk-web-forms }} - odk-xpath: ${{ steps.changes.outputs.odk-xpath }} tree-sitter-xpath: ${{ steps.changes.outputs.tree-sitter-xpath }} + xpath: ${{ steps.changes.outputs.xpath }} ui-vue: ${{ steps.changes.outputs.ui-vue }} steps: @@ -51,14 +51,14 @@ jobs: odk-web-forms: - 'packages/odk-web-forms/**' - odk-xpath: - - 'packages/odk-xpath/**' - tree-sitter-xpath: - 'packages/tree-sitter-xpath/grammar.ts' - 'packages/tree-sitter-xpath/scripts/**' - 'packages/tree-sitter-xpath/test/**' + xpath: + - 'packages/xpath/**' + ui-vue: - 'packages/ui-vue/**' @@ -109,7 +109,7 @@ jobs: packages/tree-sitter-xpath/types key: build-${{ matrix.node-version }}-${{ github.sha }} - # `@odk/xpath` tests (currently) expect this time zone + # `@odk-web-forms/xpath` tests (currently) expect this time zone - uses: szenius/set-timezone@v1.2 with: timezoneLinux: ${{ env.TZ }} @@ -295,10 +295,10 @@ jobs: - if: ${{ matrix.target == 'Web' }} run: 'yarn workspace @odk/web-forms test-browser:${{ matrix.browser }}' - odk-xpath: - name: '@odk/xpath' + xpath: + name: '@odk-web-forms/xpath' needs: ['install-and-build', 'changes'] - if: needs.changes.outputs.root == 'true' || needs.changes.outputs.tree-sitter-xpath == 'true' || needs.changes.outputs.odk-xpath == 'true' + if: needs.changes.outputs.root == 'true' || needs.changes.outputs.tree-sitter-xpath == 'true' || needs.changes.outputs.xpath == 'true' runs-on: 'ubuntu-latest' strategy: @@ -356,16 +356,16 @@ jobs: timezoneWindows: ${{ env.TZ }} - if: ${{ matrix.target == 'Node' }} - run: 'yarn workspace @odk/xpath test:types' + run: 'yarn workspace @odk-web-forms/xpath test:types' - if: ${{ matrix.target == 'Node' }} - run: 'yarn workspace @odk/xpath test-node:jsdom' + run: 'yarn workspace @odk-web-forms/xpath test-node:jsdom' - if: ${{ matrix.target == 'Web' }} run: 'yarn playwright install ${{ matrix.browser }} --with-deps' - if: ${{ matrix.target == 'Web' }} - run: 'yarn workspace @odk/xpath test-browser:${{ matrix.browser }}' + run: 'yarn workspace @odk-web-forms/xpath test-browser:${{ matrix.browser }}' tree-sitter-xpath: name: '@odk-web-forms/tree-sitter-xpath' diff --git a/.gitignore b/.gitignore index e6f2ebb29..7e9212f42 100644 --- a/.gitignore +++ b/.gitignore @@ -22,7 +22,7 @@ examples/**/dist packages/**/dist vendor-packages/**/dist -## Specific to tree-sitter and/or tree-sitter-xpath +## Specific to tree-sitter and/or @odk-web-forms/tree-sitter-xpath packages/tree-sitter-xpath/bindings/ packages/tree-sitter-xpath/build/ packages/tree-sitter-xpath/src/tree_sitter diff --git a/packages/common/README.md b/packages/common/README.md index 84e6a7871..3f242813c 100644 --- a/packages/common/README.md +++ b/packages/common/README.md @@ -15,4 +15,6 @@ Being an internal package, for now there is no build step: downstream packages s - downstream package setup concerns - consideration for downstream build and bundle impact -- usage in a package intended for both internal and external purposes (i.e. packages such as `tree-sitter-xpath` or `@odk/xpath` which are used in `@odk/web-forms` but may also be used on their own) +- usage in a package intended for both internal and external purposes (i.e. + packages such as `@odk-web-forms/tree-sitter-xpath` or `@odk-web-forms/xpath` + which are used in `@odk/web-forms` but may also be used on their own) diff --git a/packages/odk-web-forms/package.json b/packages/odk-web-forms/package.json index 198463aa1..8a27d168c 100644 --- a/packages/odk-web-forms/package.json +++ b/packages/odk-web-forms/package.json @@ -48,7 +48,7 @@ "@fontsource/roboto": "^5.0.8", "@odk-web-forms/tree-sitter-xpath": "1.0.0-alpha.0", "@odk-web-forms/common": "0.0.0", - "@odk/xpath": "1.0.0-alpha.0", + "@odk-web-forms/xpath": "1.0.0-alpha.0", "@solid-primitives/set": "^0.4.8", "@solidjs/router": "^0.8.3", "@suid/icons-material": "^0.6.11", diff --git a/packages/odk-web-forms/src/lib/xform/XFormDOM.ts b/packages/odk-web-forms/src/lib/xform/XFormDOM.ts index fffecee44..2fc4a6307 100644 --- a/packages/odk-web-forms/src/lib/xform/XFormDOM.ts +++ b/packages/odk-web-forms/src/lib/xform/XFormDOM.ts @@ -1,5 +1,5 @@ import { XFORMS_NAMESPACE_URI } from '@odk-web-forms/common/constants/xmlns.ts'; -import { XFormsXPathEvaluator } from '@odk/xpath'; +import { XFormsXPathEvaluator } from '@odk-web-forms/xpath'; import { xpathEvaluator } from '../xpath/evaluator.ts'; const domParser = new DOMParser(); diff --git a/packages/odk-web-forms/src/lib/xform/expression/DependentExpression.ts b/packages/odk-web-forms/src/lib/xform/expression/DependentExpression.ts index b9e0e3086..124e2bd89 100644 --- a/packages/odk-web-forms/src/lib/xform/expression/DependentExpression.ts +++ b/packages/odk-web-forms/src/lib/xform/expression/DependentExpression.ts @@ -1,4 +1,4 @@ -import type { XFormsXPathEvaluator } from '@odk/xpath'; +import type { XFormsXPathEvaluator } from '@odk-web-forms/xpath'; import { getNodesetDependencies, isItextFunctionCalled } from '../../xpath/analysis.ts'; import type { DependencyContext } from './DependencyContext.ts'; diff --git a/packages/odk-web-forms/src/lib/xform/state/EntryState.ts b/packages/odk-web-forms/src/lib/xform/state/EntryState.ts index 54f48c8fd..8107aa551 100644 --- a/packages/odk-web-forms/src/lib/xform/state/EntryState.ts +++ b/packages/odk-web-forms/src/lib/xform/state/EntryState.ts @@ -1,5 +1,5 @@ import { UnreachableError } from '@odk-web-forms/common/lib/error/UnreachableError.ts'; -import type { XFormsXPathEvaluator } from '@odk/xpath'; +import type { XFormsXPathEvaluator } from '@odk-web-forms/xpath'; import { createMemo, type Accessor } from 'solid-js'; import type { XFormDOM } from '../XFormDOM.ts'; import type { XFormDefinition } from '../XFormDefinition.ts'; diff --git a/packages/odk-web-forms/src/lib/xform/state/TranslationState.ts b/packages/odk-web-forms/src/lib/xform/state/TranslationState.ts index c4da6b3f4..d993e0c24 100644 --- a/packages/odk-web-forms/src/lib/xform/state/TranslationState.ts +++ b/packages/odk-web-forms/src/lib/xform/state/TranslationState.ts @@ -1,4 +1,4 @@ -import { XFormsXPathEvaluator } from '@odk/xpath'; +import { XFormsXPathEvaluator } from '@odk-web-forms/xpath'; import type { Signal } from 'solid-js'; import { createSignal } from 'solid-js'; import type { EntryState } from './EntryState.ts'; diff --git a/packages/odk-web-forms/src/lib/xpath/analysis.ts b/packages/odk-web-forms/src/lib/xpath/analysis.ts index ea2a4047d..10e8b231a 100644 --- a/packages/odk-web-forms/src/lib/xpath/analysis.ts +++ b/packages/odk-web-forms/src/lib/xpath/analysis.ts @@ -8,8 +8,8 @@ import type { PrefixedNameNode, RelativeLocationPathNode, UnprefixedNameNode, -} from '@odk/xpath/static/grammar/SyntaxNode.js'; -import type { AnyBinaryExprType } from '@odk/xpath/static/grammar/type-names.js'; +} from '@odk-web-forms/xpath/static/grammar/SyntaxNode.js'; +import type { AnyBinaryExprType } from '@odk-web-forms/xpath/static/grammar/type-names.js'; import { xpathParser } from './parser'; export type SingleChildNode = Extract< diff --git a/packages/odk-web-forms/src/lib/xpath/evaluator.ts b/packages/odk-web-forms/src/lib/xpath/evaluator.ts index d4223c1a0..d4a0c9250 100644 --- a/packages/odk-web-forms/src/lib/xpath/evaluator.ts +++ b/packages/odk-web-forms/src/lib/xpath/evaluator.ts @@ -1,4 +1,4 @@ -import { XFormsXPathEvaluator } from '@odk/xpath'; +import { XFormsXPathEvaluator } from '@odk-web-forms/xpath'; import { xpathParser } from './parser.ts'; export const xpathEvaluator = (rootNode: Element | XMLDocument): XFormsXPathEvaluator => { diff --git a/packages/odk-web-forms/src/lib/xpath/parser.ts b/packages/odk-web-forms/src/lib/xpath/parser.ts index 30387a2c9..f7c45f1a5 100644 --- a/packages/odk-web-forms/src/lib/xpath/parser.ts +++ b/packages/odk-web-forms/src/lib/xpath/parser.ts @@ -1,5 +1,5 @@ import xpathLanguage from '@odk-web-forms/tree-sitter-xpath/tree-sitter-xpath.wasm?url'; -import { ExpressionParser } from '@odk/xpath/static/grammar/ExpressionParser.js'; +import { ExpressionParser } from '@odk-web-forms/xpath/static/grammar/ExpressionParser.js'; import webTreeSitter from 'web-tree-sitter/tree-sitter.wasm?url'; export const xpathParser = await ExpressionParser.init({ diff --git a/packages/odk-web-forms/vite.config.ts b/packages/odk-web-forms/vite.config.ts index 8aa83ce38..c3da9a6d8 100644 --- a/packages/odk-web-forms/vite.config.ts +++ b/packages/odk-web-forms/vite.config.ts @@ -46,7 +46,7 @@ export default defineConfig(({ mode }) => { const TEST_ENVIRONMENT = BROWSER_ENABLED ? 'node' : 'jsdom'; /** - * @see notes on the same variable in the config for @odk/xpath + * @see notes on the same variable in the config for @odk-web-forms/xpath */ const TEST_TIME_ZONE = 'America/Phoenix'; @@ -65,7 +65,7 @@ export default defineConfig(({ mode }) => { 'assets/**/*', 'fixtures/**/*.xml', '../../node_modules/web-tree-sitter/tree-sitter.wasm', - '../../node_modules/tree-sitter-xpath/tree-sitter-xpath.wasm', + '../../node_modules/@odk-web-forms/tree-sitter-xpath/tree-sitter-xpath.wasm', ], build: { target: 'esnext', @@ -134,8 +134,8 @@ export default defineConfig(({ mode }) => { solidVitestNoNodeLoader, // Generate type definitions. This turned out to be more reliable in - // @odk/xpath. TODO: revisit in case it makes sense to use tsc directly in - // this package + // @odk-web-forms/xpath. TODO: revisit in case it makes sense to use tsc + // directly in this package dts({ exclude: ['test', 'tools', 'vite-env.d.ts'], entryRoot: './src', diff --git a/packages/odk-xpath/CHANGELOG.md b/packages/odk-xpath/CHANGELOG.md deleted file mode 100644 index 080fe2fcc..000000000 --- a/packages/odk-xpath/CHANGELOG.md +++ /dev/null @@ -1 +0,0 @@ -# @odk/xpath diff --git a/packages/tree-sitter-xpath/CHANGELOG.md b/packages/tree-sitter-xpath/CHANGELOG.md index 68435811a..5c64da89a 100644 --- a/packages/tree-sitter-xpath/CHANGELOG.md +++ b/packages/tree-sitter-xpath/CHANGELOG.md @@ -1 +1 @@ -# tree-sitter-xpath +# @odk-web-forms/tree-sitter-xpath diff --git a/packages/tree-sitter-xpath/README.md b/packages/tree-sitter-xpath/README.md index b681e24cc..6acf8804f 100644 --- a/packages/tree-sitter-xpath/README.md +++ b/packages/tree-sitter-xpath/README.md @@ -1,3 +1,3 @@ -# tree-sitter-xpath +# @odk-web-forms/tree-sitter-xpath ... diff --git a/packages/xpath/CHANGELOG.md b/packages/xpath/CHANGELOG.md new file mode 100644 index 000000000..e5797b6cc --- /dev/null +++ b/packages/xpath/CHANGELOG.md @@ -0,0 +1 @@ +# @odk-web-forms/xpath diff --git a/packages/odk-xpath/README.md b/packages/xpath/README.md similarity index 86% rename from packages/odk-xpath/README.md rename to packages/xpath/README.md index 0b7d6e3df..12e707ddc 100644 --- a/packages/odk-xpath/README.md +++ b/packages/xpath/README.md @@ -1,4 +1,4 @@ -# @odk/xpath +# @odk-web-forms/xpath An XPath evaluator, with intent to support: @@ -15,19 +15,19 @@ An XPath evaluator, with intent to support: Install this package and its required peer dependencies with `npm` (or the equivalent command for your preferred package manager): ```sh -npm install @odk/xpath web-tree-sitter tree-sitter-xpath +npm install @odk-web-forms/tree-sitter-xpath @odk-web-forms/xpath web-tree-sitter ``` ### A note on tree-sitter, usage with or without a bundler -The `@odk/xpath` package depends on the `web-tree-sitter` and `tree-sitter-xpath` libraries. Both provide WASM resources which must be accessible to initialize parsing in this libary. We intend to make setting it all up as easy as possible, and document it thoroughly. That effort is a work in progress, pending our own experience using this library internally. We'll update this space as that effort progresses. +The `@odk-web-forms/xpath` package depends on the `web-tree-sitter` and `@odk-web-forms/tree-sitter-xpath` libraries. Both provide WASM resources which must be accessible to initialize parsing in this libary. We intend to make setting it all up as easy as possible, and document it thoroughly. That effort is a work in progress, pending our own experience using this library internally. We'll update this space as that effort progresses. -A solution which is working so far, both in the @odk/xpath test suite and downstream within the odk-web-forms monorepo: +A solution which is working so far, both in the @odk-web-forms/xpath test suite and downstream within the odk-web-forms monorepo: ```ts import xpathLanguage from '@odk-web-forms/tree-sitter-xpath/tree-sitter-xpath.wasm?url'; import webTreeSitter from 'web-tree-sitter/tree-sitter.wasm?url'; -import { TreeSitterXPathParser } from '@odk/xpath/static/grammar/TreeSitterXPathParser.ts'; +import { TreeSitterXPathParser } from '@odk-web-forms/xpath/static/grammar/TreeSitterXPathParser.ts'; export const xpathParser = await TreeSitterXPathParser.init({ webTreeSitter, @@ -39,10 +39,10 @@ Note that this depends on Vite's [`?url` import suffix](https://vitejs.dev/guide ## Usage -To use `@odk/xpath` at runtime, first create an `XFormsXPathEvaluator` instance, specifying a parser instance and the XForm `rootNode`. Usage from that point is API-compatible with the standard DOM [`evaluate` method](https://developer.mozilla.org/en-US/docs/Web/API/XPathEvaluator/evaluate). +To use `@odk-web-forms/xpath` at runtime, first create an `XFormsXPathEvaluator` instance, specifying a parser instance and the XForm `rootNode`. Usage from that point is API-compatible with the standard DOM [`evaluate` method](https://developer.mozilla.org/en-US/docs/Web/API/XPathEvaluator/evaluate). ```ts -import { XFormsXPathEvaluator } from '@odk/xpath'; +import { XFormsXPathEvaluator } from '@odk-web-forms/xpath'; // Given an XForms DOM document... declare const xform: XMLDocument; @@ -65,7 +65,7 @@ For typical XForms usage, `rootNode` will be either an XForm `XMLDocument` or it For XPath 1.0 functionality without XForms extension functions, you may use `Evaluator` the same way, and `rootNode` is optional: ```ts -import { Evaluator } from '@odk/xpath'; +import { Evaluator } from '@odk-web-forms/xpath'; const evaluator = new Evaluator(xpathParser); diff --git a/packages/odk-xpath/e2e/noop.test.ts b/packages/xpath/e2e/noop.test.ts similarity index 100% rename from packages/odk-xpath/e2e/noop.test.ts rename to packages/xpath/e2e/noop.test.ts diff --git a/packages/odk-xpath/e2e/tsconfig.json b/packages/xpath/e2e/tsconfig.json similarity index 100% rename from packages/odk-xpath/e2e/tsconfig.json rename to packages/xpath/e2e/tsconfig.json diff --git a/packages/odk-xpath/index.html b/packages/xpath/index.html similarity index 100% rename from packages/odk-xpath/index.html rename to packages/xpath/index.html diff --git a/packages/odk-xpath/package.json b/packages/xpath/package.json similarity index 97% rename from packages/odk-xpath/package.json rename to packages/xpath/package.json index 938d40f2c..02da997a5 100644 --- a/packages/odk-xpath/package.json +++ b/packages/xpath/package.json @@ -1,5 +1,5 @@ { - "name": "@odk/xpath", + "name": "@odk-web-forms/xpath", "version": "1.0.0-alpha.0", "description": "ODK XPath", "type": "module", @@ -7,7 +7,7 @@ "repository": { "type": "git", "url": "https://github.com/getodk/web-forms", - "directory": "packages/odk-xpath" + "directory": "packages/xpath" }, "bugs": "https://github.com/getodk/web-forms/issues", "homepage": "https://getodk.org/", diff --git a/packages/odk-xpath/playwright.config.ts b/packages/xpath/playwright.config.ts similarity index 100% rename from packages/odk-xpath/playwright.config.ts rename to packages/xpath/playwright.config.ts diff --git a/packages/odk-xpath/src/context/Context.ts b/packages/xpath/src/context/Context.ts similarity index 100% rename from packages/odk-xpath/src/context/Context.ts rename to packages/xpath/src/context/Context.ts diff --git a/packages/odk-xpath/src/context/EvaluationContext.ts b/packages/xpath/src/context/EvaluationContext.ts similarity index 100% rename from packages/odk-xpath/src/context/EvaluationContext.ts rename to packages/xpath/src/context/EvaluationContext.ts diff --git a/packages/odk-xpath/src/evaluations/BooleanEvaluation.ts b/packages/xpath/src/evaluations/BooleanEvaluation.ts similarity index 100% rename from packages/odk-xpath/src/evaluations/BooleanEvaluation.ts rename to packages/xpath/src/evaluations/BooleanEvaluation.ts diff --git a/packages/odk-xpath/src/evaluations/DateTimeLikeEvaluation.ts b/packages/xpath/src/evaluations/DateTimeLikeEvaluation.ts similarity index 100% rename from packages/odk-xpath/src/evaluations/DateTimeLikeEvaluation.ts rename to packages/xpath/src/evaluations/DateTimeLikeEvaluation.ts diff --git a/packages/odk-xpath/src/evaluations/Evaluation.ts b/packages/xpath/src/evaluations/Evaluation.ts similarity index 100% rename from packages/odk-xpath/src/evaluations/Evaluation.ts rename to packages/xpath/src/evaluations/Evaluation.ts diff --git a/packages/odk-xpath/src/evaluations/EvaluationType.ts b/packages/xpath/src/evaluations/EvaluationType.ts similarity index 100% rename from packages/odk-xpath/src/evaluations/EvaluationType.ts rename to packages/xpath/src/evaluations/EvaluationType.ts diff --git a/packages/odk-xpath/src/evaluations/LocationPathEvaluation.ts b/packages/xpath/src/evaluations/LocationPathEvaluation.ts similarity index 100% rename from packages/odk-xpath/src/evaluations/LocationPathEvaluation.ts rename to packages/xpath/src/evaluations/LocationPathEvaluation.ts diff --git a/packages/odk-xpath/src/evaluations/NodeEvaluation.ts b/packages/xpath/src/evaluations/NodeEvaluation.ts similarity index 100% rename from packages/odk-xpath/src/evaluations/NodeEvaluation.ts rename to packages/xpath/src/evaluations/NodeEvaluation.ts diff --git a/packages/odk-xpath/src/evaluations/NumberEvaluation.ts b/packages/xpath/src/evaluations/NumberEvaluation.ts similarity index 100% rename from packages/odk-xpath/src/evaluations/NumberEvaluation.ts rename to packages/xpath/src/evaluations/NumberEvaluation.ts diff --git a/packages/odk-xpath/src/evaluations/StringEvaluation.ts b/packages/xpath/src/evaluations/StringEvaluation.ts similarity index 100% rename from packages/odk-xpath/src/evaluations/StringEvaluation.ts rename to packages/xpath/src/evaluations/StringEvaluation.ts diff --git a/packages/odk-xpath/src/evaluations/ValueEvaluation.ts b/packages/xpath/src/evaluations/ValueEvaluation.ts similarity index 100% rename from packages/odk-xpath/src/evaluations/ValueEvaluation.ts rename to packages/xpath/src/evaluations/ValueEvaluation.ts diff --git a/packages/odk-xpath/src/evaluator/Evaluator.test.ts b/packages/xpath/src/evaluator/Evaluator.test.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/Evaluator.test.ts rename to packages/xpath/src/evaluator/Evaluator.test.ts diff --git a/packages/odk-xpath/src/evaluator/Evaluator.ts b/packages/xpath/src/evaluator/Evaluator.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/Evaluator.ts rename to packages/xpath/src/evaluator/Evaluator.ts diff --git a/packages/odk-xpath/src/evaluator/NamespaceResolver.test.ts b/packages/xpath/src/evaluator/NamespaceResolver.test.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/NamespaceResolver.test.ts rename to packages/xpath/src/evaluator/NamespaceResolver.test.ts diff --git a/packages/odk-xpath/src/evaluator/NamespaceResolver.ts b/packages/xpath/src/evaluator/NamespaceResolver.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/NamespaceResolver.ts rename to packages/xpath/src/evaluator/NamespaceResolver.ts diff --git a/packages/odk-xpath/src/evaluator/expression/AbsoluteLocationPathExpressionEvaluator.ts b/packages/xpath/src/evaluator/expression/AbsoluteLocationPathExpressionEvaluator.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/expression/AbsoluteLocationPathExpressionEvaluator.ts rename to packages/xpath/src/evaluator/expression/AbsoluteLocationPathExpressionEvaluator.ts diff --git a/packages/odk-xpath/src/evaluator/expression/BinaryExpressionEvaluator.ts b/packages/xpath/src/evaluator/expression/BinaryExpressionEvaluator.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/expression/BinaryExpressionEvaluator.ts rename to packages/xpath/src/evaluator/expression/BinaryExpressionEvaluator.ts diff --git a/packages/odk-xpath/src/evaluator/expression/BooleanBinaryExpressionEvaluator.ts b/packages/xpath/src/evaluator/expression/BooleanBinaryExpressionEvaluator.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/expression/BooleanBinaryExpressionEvaluator.ts rename to packages/xpath/src/evaluator/expression/BooleanBinaryExpressionEvaluator.ts diff --git a/packages/odk-xpath/src/evaluator/expression/ExpressionEvaluator.ts b/packages/xpath/src/evaluator/expression/ExpressionEvaluator.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/expression/ExpressionEvaluator.ts rename to packages/xpath/src/evaluator/expression/ExpressionEvaluator.ts diff --git a/packages/odk-xpath/src/evaluator/expression/FilterPathExpressionEvaluator.ts b/packages/xpath/src/evaluator/expression/FilterPathExpressionEvaluator.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/expression/FilterPathExpressionEvaluator.ts rename to packages/xpath/src/evaluator/expression/FilterPathExpressionEvaluator.ts diff --git a/packages/odk-xpath/src/evaluator/expression/FunctionCallExpressionEvaluator.ts b/packages/xpath/src/evaluator/expression/FunctionCallExpressionEvaluator.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/expression/FunctionCallExpressionEvaluator.ts rename to packages/xpath/src/evaluator/expression/FunctionCallExpressionEvaluator.ts diff --git a/packages/odk-xpath/src/evaluator/expression/LocationPathEvaluator.ts b/packages/xpath/src/evaluator/expression/LocationPathEvaluator.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/expression/LocationPathEvaluator.ts rename to packages/xpath/src/evaluator/expression/LocationPathEvaluator.ts diff --git a/packages/odk-xpath/src/evaluator/expression/LocationPathExpressionEvaluator.ts b/packages/xpath/src/evaluator/expression/LocationPathExpressionEvaluator.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/expression/LocationPathExpressionEvaluator.ts rename to packages/xpath/src/evaluator/expression/LocationPathExpressionEvaluator.ts diff --git a/packages/odk-xpath/src/evaluator/expression/NumberExpressionEvaluator.ts b/packages/xpath/src/evaluator/expression/NumberExpressionEvaluator.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/expression/NumberExpressionEvaluator.ts rename to packages/xpath/src/evaluator/expression/NumberExpressionEvaluator.ts diff --git a/packages/odk-xpath/src/evaluator/expression/NumberLiteralExpressionEvaluator.ts b/packages/xpath/src/evaluator/expression/NumberLiteralExpressionEvaluator.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/expression/NumberLiteralExpressionEvaluator.ts rename to packages/xpath/src/evaluator/expression/NumberLiteralExpressionEvaluator.ts diff --git a/packages/odk-xpath/src/evaluator/expression/NumericBinaryExpressionEvaluator.ts b/packages/xpath/src/evaluator/expression/NumericBinaryExpressionEvaluator.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/expression/NumericBinaryExpressionEvaluator.ts rename to packages/xpath/src/evaluator/expression/NumericBinaryExpressionEvaluator.ts diff --git a/packages/odk-xpath/src/evaluator/expression/RelativeLocationPathExpressionEvaluator.ts b/packages/xpath/src/evaluator/expression/RelativeLocationPathExpressionEvaluator.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/expression/RelativeLocationPathExpressionEvaluator.ts rename to packages/xpath/src/evaluator/expression/RelativeLocationPathExpressionEvaluator.ts diff --git a/packages/odk-xpath/src/evaluator/expression/StringExpressionEvaluator.ts b/packages/xpath/src/evaluator/expression/StringExpressionEvaluator.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/expression/StringExpressionEvaluator.ts rename to packages/xpath/src/evaluator/expression/StringExpressionEvaluator.ts diff --git a/packages/odk-xpath/src/evaluator/expression/StringLiteralExpressionEvaluator.ts b/packages/xpath/src/evaluator/expression/StringLiteralExpressionEvaluator.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/expression/StringLiteralExpressionEvaluator.ts rename to packages/xpath/src/evaluator/expression/StringLiteralExpressionEvaluator.ts diff --git a/packages/odk-xpath/src/evaluator/expression/UnaryExpressionEvaluator.ts b/packages/xpath/src/evaluator/expression/UnaryExpressionEvaluator.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/expression/UnaryExpressionEvaluator.ts rename to packages/xpath/src/evaluator/expression/UnaryExpressionEvaluator.ts diff --git a/packages/odk-xpath/src/evaluator/expression/UnionExpressionEvaluator.ts b/packages/xpath/src/evaluator/expression/UnionExpressionEvaluator.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/expression/UnionExpressionEvaluator.ts rename to packages/xpath/src/evaluator/expression/UnionExpressionEvaluator.ts diff --git a/packages/odk-xpath/src/evaluator/expression/factory.ts b/packages/xpath/src/evaluator/expression/factory.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/expression/factory.ts rename to packages/xpath/src/evaluator/expression/factory.ts diff --git a/packages/odk-xpath/src/evaluator/functions/BooleanFunction.ts b/packages/xpath/src/evaluator/functions/BooleanFunction.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/functions/BooleanFunction.ts rename to packages/xpath/src/evaluator/functions/BooleanFunction.ts diff --git a/packages/odk-xpath/src/evaluator/functions/FunctionAlias.ts b/packages/xpath/src/evaluator/functions/FunctionAlias.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/functions/FunctionAlias.ts rename to packages/xpath/src/evaluator/functions/FunctionAlias.ts diff --git a/packages/odk-xpath/src/evaluator/functions/FunctionImplementation.ts b/packages/xpath/src/evaluator/functions/FunctionImplementation.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/functions/FunctionImplementation.ts rename to packages/xpath/src/evaluator/functions/FunctionImplementation.ts diff --git a/packages/odk-xpath/src/evaluator/functions/FunctionLibrary.ts b/packages/xpath/src/evaluator/functions/FunctionLibrary.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/functions/FunctionLibrary.ts rename to packages/xpath/src/evaluator/functions/FunctionLibrary.ts diff --git a/packages/odk-xpath/src/evaluator/functions/FunctionLibraryCollection.ts b/packages/xpath/src/evaluator/functions/FunctionLibraryCollection.ts similarity index 96% rename from packages/odk-xpath/src/evaluator/functions/FunctionLibraryCollection.ts rename to packages/xpath/src/evaluator/functions/FunctionLibraryCollection.ts index 928c4859a..fffb51f64 100644 --- a/packages/odk-xpath/src/evaluator/functions/FunctionLibraryCollection.ts +++ b/packages/xpath/src/evaluator/functions/FunctionLibraryCollection.ts @@ -41,8 +41,8 @@ interface FunctionLibraryCollectionOptions { // demonstrating custom functions. This has different semantics than ORXE // (where overrides are explicitly disallowed), otherwise I'd be inclined to // both document its usage now and to update the custom function tests to use -// the @odk/xpath API (which would of course be a breaking change if we do -// decide to backport this implementation to Enketo...). +// the @odk-web-forms/xpath API (which would of course be a breaking change +// if we do decide to backport this implementation to Enketo...). export class FunctionLibraryCollection { /** * Default function libraries determine, for a given Evaluator instance and diff --git a/packages/odk-xpath/src/evaluator/functions/NodeSetFunction.ts b/packages/xpath/src/evaluator/functions/NodeSetFunction.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/functions/NodeSetFunction.ts rename to packages/xpath/src/evaluator/functions/NodeSetFunction.ts diff --git a/packages/odk-xpath/src/evaluator/functions/NumberFunction.ts b/packages/xpath/src/evaluator/functions/NumberFunction.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/functions/NumberFunction.ts rename to packages/xpath/src/evaluator/functions/NumberFunction.ts diff --git a/packages/odk-xpath/src/evaluator/functions/StringFunction.ts b/packages/xpath/src/evaluator/functions/StringFunction.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/functions/StringFunction.ts rename to packages/xpath/src/evaluator/functions/StringFunction.ts diff --git a/packages/odk-xpath/src/evaluator/functions/TypedFunctionImplementation.ts b/packages/xpath/src/evaluator/functions/TypedFunctionImplementation.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/functions/TypedFunctionImplementation.ts rename to packages/xpath/src/evaluator/functions/TypedFunctionImplementation.ts diff --git a/packages/odk-xpath/src/evaluator/functions/index.ts b/packages/xpath/src/evaluator/functions/index.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/functions/index.ts rename to packages/xpath/src/evaluator/functions/index.ts diff --git a/packages/odk-xpath/src/evaluator/result/BaseResult.ts b/packages/xpath/src/evaluator/result/BaseResult.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/result/BaseResult.ts rename to packages/xpath/src/evaluator/result/BaseResult.ts diff --git a/packages/odk-xpath/src/evaluator/result/BooleanResult.ts b/packages/xpath/src/evaluator/result/BooleanResult.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/result/BooleanResult.ts rename to packages/xpath/src/evaluator/result/BooleanResult.ts diff --git a/packages/odk-xpath/src/evaluator/result/NodeSetResult.ts b/packages/xpath/src/evaluator/result/NodeSetResult.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/result/NodeSetResult.ts rename to packages/xpath/src/evaluator/result/NodeSetResult.ts diff --git a/packages/odk-xpath/src/evaluator/result/NumberResult.ts b/packages/xpath/src/evaluator/result/NumberResult.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/result/NumberResult.ts rename to packages/xpath/src/evaluator/result/NumberResult.ts diff --git a/packages/odk-xpath/src/evaluator/result/PrimitiveResult.ts b/packages/xpath/src/evaluator/result/PrimitiveResult.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/result/PrimitiveResult.ts rename to packages/xpath/src/evaluator/result/PrimitiveResult.ts diff --git a/packages/odk-xpath/src/evaluator/result/ResultType.ts b/packages/xpath/src/evaluator/result/ResultType.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/result/ResultType.ts rename to packages/xpath/src/evaluator/result/ResultType.ts diff --git a/packages/odk-xpath/src/evaluator/result/StringResult.ts b/packages/xpath/src/evaluator/result/StringResult.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/result/StringResult.ts rename to packages/xpath/src/evaluator/result/StringResult.ts diff --git a/packages/odk-xpath/src/evaluator/result/index.ts b/packages/xpath/src/evaluator/result/index.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/result/index.ts rename to packages/xpath/src/evaluator/result/index.ts diff --git a/packages/odk-xpath/src/evaluator/step/Step.ts b/packages/xpath/src/evaluator/step/Step.ts similarity index 100% rename from packages/odk-xpath/src/evaluator/step/Step.ts rename to packages/xpath/src/evaluator/step/Step.ts diff --git a/packages/odk-xpath/src/functions/_shared/number.ts b/packages/xpath/src/functions/_shared/number.ts similarity index 100% rename from packages/odk-xpath/src/functions/_shared/number.ts rename to packages/xpath/src/functions/_shared/number.ts diff --git a/packages/odk-xpath/src/functions/_shared/string.ts b/packages/xpath/src/functions/_shared/string.ts similarity index 100% rename from packages/odk-xpath/src/functions/_shared/string.ts rename to packages/xpath/src/functions/_shared/string.ts diff --git a/packages/odk-xpath/src/functions/enketo/index.ts b/packages/xpath/src/functions/enketo/index.ts similarity index 100% rename from packages/odk-xpath/src/functions/enketo/index.ts rename to packages/xpath/src/functions/enketo/index.ts diff --git a/packages/odk-xpath/src/functions/fn/boolean.ts b/packages/xpath/src/functions/fn/boolean.ts similarity index 100% rename from packages/odk-xpath/src/functions/fn/boolean.ts rename to packages/xpath/src/functions/fn/boolean.ts diff --git a/packages/odk-xpath/src/functions/fn/index.ts b/packages/xpath/src/functions/fn/index.ts similarity index 100% rename from packages/odk-xpath/src/functions/fn/index.ts rename to packages/xpath/src/functions/fn/index.ts diff --git a/packages/odk-xpath/src/functions/fn/node-set.ts b/packages/xpath/src/functions/fn/node-set.ts similarity index 100% rename from packages/odk-xpath/src/functions/fn/node-set.ts rename to packages/xpath/src/functions/fn/node-set.ts diff --git a/packages/odk-xpath/src/functions/fn/number.ts b/packages/xpath/src/functions/fn/number.ts similarity index 100% rename from packages/odk-xpath/src/functions/fn/number.ts rename to packages/xpath/src/functions/fn/number.ts diff --git a/packages/odk-xpath/src/functions/fn/string.ts b/packages/xpath/src/functions/fn/string.ts similarity index 100% rename from packages/odk-xpath/src/functions/fn/string.ts rename to packages/xpath/src/functions/fn/string.ts diff --git a/packages/odk-xpath/src/functions/javarosa/index.ts b/packages/xpath/src/functions/javarosa/index.ts similarity index 100% rename from packages/odk-xpath/src/functions/javarosa/index.ts rename to packages/xpath/src/functions/javarosa/index.ts diff --git a/packages/odk-xpath/src/functions/javarosa/string.ts b/packages/xpath/src/functions/javarosa/string.ts similarity index 100% rename from packages/odk-xpath/src/functions/javarosa/string.ts rename to packages/xpath/src/functions/javarosa/string.ts diff --git a/packages/odk-xpath/src/functions/xforms/boolean.ts b/packages/xpath/src/functions/xforms/boolean.ts similarity index 100% rename from packages/odk-xpath/src/functions/xforms/boolean.ts rename to packages/xpath/src/functions/xforms/boolean.ts diff --git a/packages/odk-xpath/src/functions/xforms/datetime.ts b/packages/xpath/src/functions/xforms/datetime.ts similarity index 100% rename from packages/odk-xpath/src/functions/xforms/datetime.ts rename to packages/xpath/src/functions/xforms/datetime.ts diff --git a/packages/odk-xpath/src/functions/xforms/geo.ts b/packages/xpath/src/functions/xforms/geo.ts similarity index 100% rename from packages/odk-xpath/src/functions/xforms/geo.ts rename to packages/xpath/src/functions/xforms/geo.ts diff --git a/packages/odk-xpath/src/functions/xforms/index.ts b/packages/xpath/src/functions/xforms/index.ts similarity index 100% rename from packages/odk-xpath/src/functions/xforms/index.ts rename to packages/xpath/src/functions/xforms/index.ts diff --git a/packages/odk-xpath/src/functions/xforms/node-set.ts b/packages/xpath/src/functions/xforms/node-set.ts similarity index 100% rename from packages/odk-xpath/src/functions/xforms/node-set.ts rename to packages/xpath/src/functions/xforms/node-set.ts diff --git a/packages/odk-xpath/src/functions/xforms/number.ts b/packages/xpath/src/functions/xforms/number.ts similarity index 100% rename from packages/odk-xpath/src/functions/xforms/number.ts rename to packages/xpath/src/functions/xforms/number.ts diff --git a/packages/odk-xpath/src/functions/xforms/select.ts b/packages/xpath/src/functions/xforms/select.ts similarity index 100% rename from packages/odk-xpath/src/functions/xforms/select.ts rename to packages/xpath/src/functions/xforms/select.ts diff --git a/packages/odk-xpath/src/functions/xforms/string.ts b/packages/xpath/src/functions/xforms/string.ts similarity index 100% rename from packages/odk-xpath/src/functions/xforms/string.ts rename to packages/xpath/src/functions/xforms/string.ts diff --git a/packages/odk-xpath/src/index.ts b/packages/xpath/src/index.ts similarity index 100% rename from packages/odk-xpath/src/index.ts rename to packages/xpath/src/index.ts diff --git a/packages/odk-xpath/src/lib/collections/sort.ts b/packages/xpath/src/lib/collections/sort.ts similarity index 100% rename from packages/odk-xpath/src/lib/collections/sort.ts rename to packages/xpath/src/lib/collections/sort.ts diff --git a/packages/odk-xpath/src/lib/datetime/coercion.ts b/packages/xpath/src/lib/datetime/coercion.ts similarity index 100% rename from packages/odk-xpath/src/lib/datetime/coercion.ts rename to packages/xpath/src/lib/datetime/coercion.ts diff --git a/packages/odk-xpath/src/lib/datetime/constants.ts b/packages/xpath/src/lib/datetime/constants.ts similarity index 100% rename from packages/odk-xpath/src/lib/datetime/constants.ts rename to packages/xpath/src/lib/datetime/constants.ts diff --git a/packages/odk-xpath/src/lib/datetime/functions.ts b/packages/xpath/src/lib/datetime/functions.ts similarity index 100% rename from packages/odk-xpath/src/lib/datetime/functions.ts rename to packages/xpath/src/lib/datetime/functions.ts diff --git a/packages/odk-xpath/src/lib/datetime/predicates.ts b/packages/xpath/src/lib/datetime/predicates.ts similarity index 100% rename from packages/odk-xpath/src/lib/datetime/predicates.ts rename to packages/xpath/src/lib/datetime/predicates.ts diff --git a/packages/odk-xpath/src/lib/dom/assertions.ts b/packages/xpath/src/lib/dom/assertions.ts similarity index 100% rename from packages/odk-xpath/src/lib/dom/assertions.ts rename to packages/xpath/src/lib/dom/assertions.ts diff --git a/packages/odk-xpath/src/lib/dom/predicates.ts b/packages/xpath/src/lib/dom/predicates.ts similarity index 100% rename from packages/odk-xpath/src/lib/dom/predicates.ts rename to packages/xpath/src/lib/dom/predicates.ts diff --git a/packages/odk-xpath/src/lib/dom/sort.ts b/packages/xpath/src/lib/dom/sort.ts similarity index 100% rename from packages/odk-xpath/src/lib/dom/sort.ts rename to packages/xpath/src/lib/dom/sort.ts diff --git a/packages/odk-xpath/src/lib/dom/traversal.ts b/packages/xpath/src/lib/dom/traversal.ts similarity index 100% rename from packages/odk-xpath/src/lib/dom/traversal.ts rename to packages/xpath/src/lib/dom/traversal.ts diff --git a/packages/odk-xpath/src/lib/dom/types.ts b/packages/xpath/src/lib/dom/types.ts similarity index 100% rename from packages/odk-xpath/src/lib/dom/types.ts rename to packages/xpath/src/lib/dom/types.ts diff --git a/packages/odk-xpath/src/lib/dom/xml.ts b/packages/xpath/src/lib/dom/xml.ts similarity index 100% rename from packages/odk-xpath/src/lib/dom/xml.ts rename to packages/xpath/src/lib/dom/xml.ts diff --git a/packages/odk-xpath/src/lib/iterators/Reiterable.test.ts b/packages/xpath/src/lib/iterators/Reiterable.test.ts similarity index 100% rename from packages/odk-xpath/src/lib/iterators/Reiterable.test.ts rename to packages/xpath/src/lib/iterators/Reiterable.test.ts diff --git a/packages/odk-xpath/src/lib/iterators/Reiterable.ts b/packages/xpath/src/lib/iterators/Reiterable.ts similarity index 100% rename from packages/odk-xpath/src/lib/iterators/Reiterable.ts rename to packages/xpath/src/lib/iterators/Reiterable.ts diff --git a/packages/odk-xpath/src/lib/iterators/common.ts b/packages/xpath/src/lib/iterators/common.ts similarity index 100% rename from packages/odk-xpath/src/lib/iterators/common.ts rename to packages/xpath/src/lib/iterators/common.ts diff --git a/packages/odk-xpath/src/lib/iterators/index.ts b/packages/xpath/src/lib/iterators/index.ts similarity index 100% rename from packages/odk-xpath/src/lib/iterators/index.ts rename to packages/xpath/src/lib/iterators/index.ts diff --git a/packages/odk-xpath/src/lib/regex/escape.ts b/packages/xpath/src/lib/regex/escape.ts similarity index 100% rename from packages/odk-xpath/src/lib/regex/escape.ts rename to packages/xpath/src/lib/regex/escape.ts diff --git a/packages/odk-xpath/src/shared/constants.ts b/packages/xpath/src/shared/constants.ts similarity index 100% rename from packages/odk-xpath/src/shared/constants.ts rename to packages/xpath/src/shared/constants.ts diff --git a/packages/odk-xpath/src/shared/index.ts b/packages/xpath/src/shared/index.ts similarity index 100% rename from packages/odk-xpath/src/shared/index.ts rename to packages/xpath/src/shared/index.ts diff --git a/packages/odk-xpath/src/shared/interface.ts b/packages/xpath/src/shared/interface.ts similarity index 100% rename from packages/odk-xpath/src/shared/interface.ts rename to packages/xpath/src/shared/interface.ts diff --git a/packages/odk-xpath/src/static/grammar/ExpressionParser.ts b/packages/xpath/src/static/grammar/ExpressionParser.ts similarity index 100% rename from packages/odk-xpath/src/static/grammar/ExpressionParser.ts rename to packages/xpath/src/static/grammar/ExpressionParser.ts diff --git a/packages/odk-xpath/src/static/grammar/SyntaxLanguage.ts b/packages/xpath/src/static/grammar/SyntaxLanguage.ts similarity index 100% rename from packages/odk-xpath/src/static/grammar/SyntaxLanguage.ts rename to packages/xpath/src/static/grammar/SyntaxLanguage.ts diff --git a/packages/odk-xpath/src/static/grammar/SyntaxNode.ts b/packages/xpath/src/static/grammar/SyntaxNode.ts similarity index 100% rename from packages/odk-xpath/src/static/grammar/SyntaxNode.ts rename to packages/xpath/src/static/grammar/SyntaxNode.ts diff --git a/packages/odk-xpath/src/static/grammar/SyntaxTree.ts b/packages/xpath/src/static/grammar/SyntaxTree.ts similarity index 100% rename from packages/odk-xpath/src/static/grammar/SyntaxTree.ts rename to packages/xpath/src/static/grammar/SyntaxTree.ts diff --git a/packages/odk-xpath/src/static/grammar/TreeSitterXPathParser.ts b/packages/xpath/src/static/grammar/TreeSitterXPathParser.ts similarity index 92% rename from packages/odk-xpath/src/static/grammar/TreeSitterXPathParser.ts rename to packages/xpath/src/static/grammar/TreeSitterXPathParser.ts index 17aa590da..7afb86699 100644 --- a/packages/odk-xpath/src/static/grammar/TreeSitterXPathParser.ts +++ b/packages/xpath/src/static/grammar/TreeSitterXPathParser.ts @@ -61,8 +61,8 @@ class ResourceResolutionError extends Error { } /** - * Resolves tree-sitter and tree-sitter-xpath WASM resources in all supported - * environments. The following cases are handled: + * Resolves tree-sitter and @odk-web-forms/tree-sitter-xpath WASM resources in + * all supported environments. The following cases are handled: * * - web-tree-sitter `Parser.init` expects its WASM resource to be specified by * URL in a web environment, but it expects a file system path in a Node @@ -79,10 +79,10 @@ class ResourceResolutionError extends Error { * * - `resource` is a `data:` URL which may be provided by a bundled build, which * in turn is pre-fetched and stored as a `blob:` object URL for fetching the - * tree-sitter-xpath language WASM asset. + * @odk-web-forms/tree-sitter-xpath language WASM asset. * * - `resource` is an arbitrary URL, as provided by a downstream user of - * @odk/xpath as a library. Resolving it + * @odk-web-forms/xpath as a library. */ const resolveWebAssemblyResource = async ( resource: string, @@ -131,10 +131,10 @@ interface WebTreeSitterInitOptions { } /** - * `TreeSitterXPathParser` is a separate entry provided by @odk/xpath as a - * simpler means to handle various conditions where the tree-sitter and - * tree-sitter-xpath WASM resources need to be loaded before we can begin - * parsing XPath expressions. + * `TreeSitterXPathParser` is a separate entry provided by @odk-web-forms/xpath + * as a simpler means to handle various conditions where the tree-sitter and + * @odk-web-forms/tree-sitter-xpath WASM resources need to be loaded before we + * can begin parsing XPath expressions. * * Note: Loading these resources is (for now) inherently asynchronous, as they * are expected to be loaded with either file system or network calls. This has diff --git a/packages/odk-xpath/src/static/grammar/type-names.ts b/packages/xpath/src/static/grammar/type-names.ts similarity index 100% rename from packages/odk-xpath/src/static/grammar/type-names.ts rename to packages/xpath/src/static/grammar/type-names.ts diff --git a/packages/odk-xpath/src/type-safety.d.ts b/packages/xpath/src/type-safety.d.ts similarity index 100% rename from packages/odk-xpath/src/type-safety.d.ts rename to packages/xpath/src/type-safety.d.ts diff --git a/packages/odk-xpath/src/xforms/XFormsItextTranslations.ts b/packages/xpath/src/xforms/XFormsItextTranslations.ts similarity index 100% rename from packages/odk-xpath/src/xforms/XFormsItextTranslations.ts rename to packages/xpath/src/xforms/XFormsItextTranslations.ts diff --git a/packages/odk-xpath/src/xforms/XFormsXPathEvaluator.ts b/packages/xpath/src/xforms/XFormsXPathEvaluator.ts similarity index 100% rename from packages/odk-xpath/src/xforms/XFormsXPathEvaluator.ts rename to packages/xpath/src/xforms/XFormsXPathEvaluator.ts diff --git a/packages/odk-xpath/test/helpers.ts b/packages/xpath/test/helpers.ts similarity index 100% rename from packages/odk-xpath/test/helpers.ts rename to packages/xpath/test/helpers.ts diff --git a/packages/odk-xpath/test/index.ts b/packages/xpath/test/index.ts similarity index 100% rename from packages/odk-xpath/test/index.ts rename to packages/xpath/test/index.ts diff --git a/packages/odk-xpath/test/native/attributes.spec.ts b/packages/xpath/test/native/attributes.spec.ts similarity index 100% rename from packages/odk-xpath/test/native/attributes.spec.ts rename to packages/xpath/test/native/attributes.spec.ts diff --git a/packages/odk-xpath/test/native/axis.spec.ts b/packages/xpath/test/native/axis.spec.ts similarity index 100% rename from packages/odk-xpath/test/native/axis.spec.ts rename to packages/xpath/test/native/axis.spec.ts diff --git a/packages/odk-xpath/test/native/basic-xpath.spec.ts b/packages/xpath/test/native/basic-xpath.spec.ts similarity index 100% rename from packages/odk-xpath/test/native/basic-xpath.spec.ts rename to packages/xpath/test/native/basic-xpath.spec.ts diff --git a/packages/odk-xpath/test/native/boolean.spec.ts b/packages/xpath/test/native/boolean.spec.ts similarity index 100% rename from packages/odk-xpath/test/native/boolean.spec.ts rename to packages/xpath/test/native/boolean.spec.ts diff --git a/packages/odk-xpath/test/native/ceiling.spec.ts b/packages/xpath/test/native/ceiling.spec.ts similarity index 100% rename from packages/odk-xpath/test/native/ceiling.spec.ts rename to packages/xpath/test/native/ceiling.spec.ts diff --git a/packages/odk-xpath/test/native/comparison-operator.spec.ts b/packages/xpath/test/native/comparison-operator.spec.ts similarity index 100% rename from packages/odk-xpath/test/native/comparison-operator.spec.ts rename to packages/xpath/test/native/comparison-operator.spec.ts diff --git a/packages/odk-xpath/test/native/comparison-operator2.spec.ts b/packages/xpath/test/native/comparison-operator2.spec.ts similarity index 100% rename from packages/odk-xpath/test/native/comparison-operator2.spec.ts rename to packages/xpath/test/native/comparison-operator2.spec.ts diff --git a/packages/odk-xpath/test/native/current.spec.ts b/packages/xpath/test/native/current.spec.ts similarity index 100% rename from packages/odk-xpath/test/native/current.spec.ts rename to packages/xpath/test/native/current.spec.ts diff --git a/packages/odk-xpath/test/native/expression-evaluation.spec.ts b/packages/xpath/test/native/expression-evaluation.spec.ts similarity index 100% rename from packages/odk-xpath/test/native/expression-evaluation.spec.ts rename to packages/xpath/test/native/expression-evaluation.spec.ts diff --git a/packages/odk-xpath/test/native/false.spec.ts b/packages/xpath/test/native/false.spec.ts similarity index 100% rename from packages/odk-xpath/test/native/false.spec.ts rename to packages/xpath/test/native/false.spec.ts diff --git a/packages/odk-xpath/test/native/floor.spec.ts b/packages/xpath/test/native/floor.spec.ts similarity index 100% rename from packages/odk-xpath/test/native/floor.spec.ts rename to packages/xpath/test/native/floor.spec.ts diff --git a/packages/odk-xpath/test/native/index.ts b/packages/xpath/test/native/index.ts similarity index 100% rename from packages/odk-xpath/test/native/index.ts rename to packages/xpath/test/native/index.ts diff --git a/packages/odk-xpath/test/native/infix-operators.spec.ts b/packages/xpath/test/native/infix-operators.spec.ts similarity index 100% rename from packages/odk-xpath/test/native/infix-operators.spec.ts rename to packages/xpath/test/native/infix-operators.spec.ts diff --git a/packages/odk-xpath/test/native/lang.spec.ts b/packages/xpath/test/native/lang.spec.ts similarity index 100% rename from packages/odk-xpath/test/native/lang.spec.ts rename to packages/xpath/test/native/lang.spec.ts diff --git a/packages/odk-xpath/test/native/namespace-resolver.spec.ts b/packages/xpath/test/native/namespace-resolver.spec.ts similarity index 100% rename from packages/odk-xpath/test/native/namespace-resolver.spec.ts rename to packages/xpath/test/native/namespace-resolver.spec.ts diff --git a/packages/odk-xpath/test/native/node-name.spec.ts b/packages/xpath/test/native/node-name.spec.ts similarity index 100% rename from packages/odk-xpath/test/native/node-name.spec.ts rename to packages/xpath/test/native/node-name.spec.ts diff --git a/packages/odk-xpath/test/native/node-type.spec.ts b/packages/xpath/test/native/node-type.spec.ts similarity index 100% rename from packages/odk-xpath/test/native/node-type.spec.ts rename to packages/xpath/test/native/node-type.spec.ts diff --git a/packages/odk-xpath/test/native/nodeset-id.spec.ts b/packages/xpath/test/native/nodeset-id.spec.ts similarity index 100% rename from packages/odk-xpath/test/native/nodeset-id.spec.ts rename to packages/xpath/test/native/nodeset-id.spec.ts diff --git a/packages/odk-xpath/test/native/nodeset.spec.ts b/packages/xpath/test/native/nodeset.spec.ts similarity index 100% rename from packages/odk-xpath/test/native/nodeset.spec.ts rename to packages/xpath/test/native/nodeset.spec.ts diff --git a/packages/odk-xpath/test/native/number-operator.spec.ts b/packages/xpath/test/native/number-operator.spec.ts similarity index 100% rename from packages/odk-xpath/test/native/number-operator.spec.ts rename to packages/xpath/test/native/number-operator.spec.ts diff --git a/packages/odk-xpath/test/native/number.spec.ts b/packages/xpath/test/native/number.spec.ts similarity index 100% rename from packages/odk-xpath/test/native/number.spec.ts rename to packages/xpath/test/native/number.spec.ts diff --git a/packages/odk-xpath/test/native/path.spec.ts b/packages/xpath/test/native/path.spec.ts similarity index 100% rename from packages/odk-xpath/test/native/path.spec.ts rename to packages/xpath/test/native/path.spec.ts diff --git a/packages/odk-xpath/test/native/predicates.spec.ts b/packages/xpath/test/native/predicates.spec.ts similarity index 100% rename from packages/odk-xpath/test/native/predicates.spec.ts rename to packages/xpath/test/native/predicates.spec.ts diff --git a/packages/odk-xpath/test/native/string.spec.ts b/packages/xpath/test/native/string.spec.ts similarity index 100% rename from packages/odk-xpath/test/native/string.spec.ts rename to packages/xpath/test/native/string.spec.ts diff --git a/packages/odk-xpath/test/native/true.spec.ts b/packages/xpath/test/native/true.spec.ts similarity index 100% rename from packages/odk-xpath/test/native/true.spec.ts rename to packages/xpath/test/native/true.spec.ts diff --git a/packages/odk-xpath/test/native/union-operator.spec.ts b/packages/xpath/test/native/union-operator.spec.ts similarity index 100% rename from packages/odk-xpath/test/native/union-operator.spec.ts rename to packages/xpath/test/native/union-operator.spec.ts diff --git a/packages/odk-xpath/test/parser.ts b/packages/xpath/test/parser.ts similarity index 55% rename from packages/odk-xpath/test/parser.ts rename to packages/xpath/test/parser.ts index c4983e3aa..c2e531b86 100644 --- a/packages/odk-xpath/test/parser.ts +++ b/packages/xpath/test/parser.ts @@ -2,10 +2,10 @@ import xpathLanguage from '@odk-web-forms/tree-sitter-xpath/tree-sitter-xpath.wa import webTreeSitter from 'web-tree-sitter/tree-sitter.wasm?url'; import { TreeSitterXPathParser } from '../src/static/grammar/TreeSitterXPathParser.ts'; -// Initialize a tree-sitter parser instance, with the tree-sitter-xpath language -// loaded. This is used in the test environment, and roughly serves as a -// reference implementation for how a similarly configured project will need to -// be initialized downstream. +// Initialize a tree-sitter parser instance, with the +// @odk-web-forms/tree-sitter-xpath language loaded. This is used in the test +// environment, and roughly serves as a reference implementation for how a +// similarly configured project will need to be initialized downstream. export const xpathParser = await TreeSitterXPathParser.init({ webTreeSitter, xpathLanguage, diff --git a/packages/odk-xpath/test/xforms/abs.spec.ts b/packages/xpath/test/xforms/abs.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/abs.spec.ts rename to packages/xpath/test/xforms/abs.spec.ts diff --git a/packages/odk-xpath/test/xforms/and-or.spec.ts b/packages/xpath/test/xforms/and-or.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/and-or.spec.ts rename to packages/xpath/test/xforms/and-or.spec.ts diff --git a/packages/odk-xpath/test/xforms/area.spec.ts b/packages/xpath/test/xforms/area.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/area.spec.ts rename to packages/xpath/test/xforms/area.spec.ts diff --git a/packages/odk-xpath/test/xforms/boolean-from-string.spec.ts b/packages/xpath/test/xforms/boolean-from-string.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/boolean-from-string.spec.ts rename to packages/xpath/test/xforms/boolean-from-string.spec.ts diff --git a/packages/odk-xpath/test/xforms/checklist.spec.ts b/packages/xpath/test/xforms/checklist.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/checklist.spec.ts rename to packages/xpath/test/xforms/checklist.spec.ts diff --git a/packages/odk-xpath/test/xforms/coalesce.spec.ts b/packages/xpath/test/xforms/coalesce.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/coalesce.spec.ts rename to packages/xpath/test/xforms/coalesce.spec.ts diff --git a/packages/odk-xpath/test/xforms/complex.spec.ts b/packages/xpath/test/xforms/complex.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/complex.spec.ts rename to packages/xpath/test/xforms/complex.spec.ts diff --git a/packages/odk-xpath/test/xforms/concat.spec.ts b/packages/xpath/test/xforms/concat.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/concat.spec.ts rename to packages/xpath/test/xforms/concat.spec.ts diff --git a/packages/odk-xpath/test/xforms/count-non-empty.spec.ts b/packages/xpath/test/xforms/count-non-empty.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/count-non-empty.spec.ts rename to packages/xpath/test/xforms/count-non-empty.spec.ts diff --git a/packages/odk-xpath/test/xforms/count-selected.spec.ts b/packages/xpath/test/xforms/count-selected.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/count-selected.spec.ts rename to packages/xpath/test/xforms/count-selected.spec.ts diff --git a/packages/odk-xpath/test/xforms/custom.spec.ts b/packages/xpath/test/xforms/custom.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/custom.spec.ts rename to packages/xpath/test/xforms/custom.spec.ts diff --git a/packages/odk-xpath/test/xforms/date-comparison.spec.ts b/packages/xpath/test/xforms/date-comparison.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/date-comparison.spec.ts rename to packages/xpath/test/xforms/date-comparison.spec.ts diff --git a/packages/odk-xpath/test/xforms/date-time.spec.ts b/packages/xpath/test/xforms/date-time.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/date-time.spec.ts rename to packages/xpath/test/xforms/date-time.spec.ts diff --git a/packages/odk-xpath/test/xforms/date.spec.ts b/packages/xpath/test/xforms/date.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/date.spec.ts rename to packages/xpath/test/xforms/date.spec.ts diff --git a/packages/odk-xpath/test/xforms/decimal-date-time.spec.ts b/packages/xpath/test/xforms/decimal-date-time.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/decimal-date-time.spec.ts rename to packages/xpath/test/xforms/decimal-date-time.spec.ts diff --git a/packages/odk-xpath/test/xforms/decimal-time.spec.ts b/packages/xpath/test/xforms/decimal-time.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/decimal-time.spec.ts rename to packages/xpath/test/xforms/decimal-time.spec.ts diff --git a/packages/odk-xpath/test/xforms/digest.spec.ts b/packages/xpath/test/xforms/digest.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/digest.spec.ts rename to packages/xpath/test/xforms/digest.spec.ts diff --git a/packages/odk-xpath/test/xforms/ends-with.spec.ts b/packages/xpath/test/xforms/ends-with.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/ends-with.spec.ts rename to packages/xpath/test/xforms/ends-with.spec.ts diff --git a/packages/odk-xpath/test/xforms/format-date-time.spec.ts b/packages/xpath/test/xforms/format-date-time.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/format-date-time.spec.ts rename to packages/xpath/test/xforms/format-date-time.spec.ts diff --git a/packages/odk-xpath/test/xforms/format-date.spec.ts b/packages/xpath/test/xforms/format-date.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/format-date.spec.ts rename to packages/xpath/test/xforms/format-date.spec.ts diff --git a/packages/odk-xpath/test/xforms/if.spec.ts b/packages/xpath/test/xforms/if.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/if.spec.ts rename to packages/xpath/test/xforms/if.spec.ts diff --git a/packages/odk-xpath/test/xforms/index.ts b/packages/xpath/test/xforms/index.ts similarity index 100% rename from packages/odk-xpath/test/xforms/index.ts rename to packages/xpath/test/xforms/index.ts diff --git a/packages/odk-xpath/test/xforms/instance.spec.ts b/packages/xpath/test/xforms/instance.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/instance.spec.ts rename to packages/xpath/test/xforms/instance.spec.ts diff --git a/packages/odk-xpath/test/xforms/int.spec.ts b/packages/xpath/test/xforms/int.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/int.spec.ts rename to packages/xpath/test/xforms/int.spec.ts diff --git a/packages/odk-xpath/test/xforms/join.spec.ts b/packages/xpath/test/xforms/join.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/join.spec.ts rename to packages/xpath/test/xforms/join.spec.ts diff --git a/packages/odk-xpath/test/xforms/jr-itext.spec.ts b/packages/xpath/test/xforms/jr-itext.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/jr-itext.spec.ts rename to packages/xpath/test/xforms/jr-itext.spec.ts diff --git a/packages/odk-xpath/test/xforms/max.spec.ts b/packages/xpath/test/xforms/max.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/max.spec.ts rename to packages/xpath/test/xforms/max.spec.ts diff --git a/packages/odk-xpath/test/xforms/min.spec.ts b/packages/xpath/test/xforms/min.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/min.spec.ts rename to packages/xpath/test/xforms/min.spec.ts diff --git a/packages/odk-xpath/test/xforms/not.spec.ts b/packages/xpath/test/xforms/not.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/not.spec.ts rename to packages/xpath/test/xforms/not.spec.ts diff --git a/packages/odk-xpath/test/xforms/now.spec.ts b/packages/xpath/test/xforms/now.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/now.spec.ts rename to packages/xpath/test/xforms/now.spec.ts diff --git a/packages/odk-xpath/test/xforms/number.spec.ts b/packages/xpath/test/xforms/number.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/number.spec.ts rename to packages/xpath/test/xforms/number.spec.ts diff --git a/packages/odk-xpath/test/xforms/once.spec.ts b/packages/xpath/test/xforms/once.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/once.spec.ts rename to packages/xpath/test/xforms/once.spec.ts diff --git a/packages/odk-xpath/test/xforms/position.spec.ts b/packages/xpath/test/xforms/position.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/position.spec.ts rename to packages/xpath/test/xforms/position.spec.ts diff --git a/packages/odk-xpath/test/xforms/pow.spec.ts b/packages/xpath/test/xforms/pow.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/pow.spec.ts rename to packages/xpath/test/xforms/pow.spec.ts diff --git a/packages/odk-xpath/test/xforms/predicates.spec.ts b/packages/xpath/test/xforms/predicates.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/predicates.spec.ts rename to packages/xpath/test/xforms/predicates.spec.ts diff --git a/packages/odk-xpath/test/xforms/random.spec.ts b/packages/xpath/test/xforms/random.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/random.spec.ts rename to packages/xpath/test/xforms/random.spec.ts diff --git a/packages/odk-xpath/test/xforms/randomize.spec.ts b/packages/xpath/test/xforms/randomize.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/randomize.spec.ts rename to packages/xpath/test/xforms/randomize.spec.ts diff --git a/packages/odk-xpath/test/xforms/regex.spec.ts b/packages/xpath/test/xforms/regex.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/regex.spec.ts rename to packages/xpath/test/xforms/regex.spec.ts diff --git a/packages/odk-xpath/test/xforms/root-node-context.spec.ts b/packages/xpath/test/xforms/root-node-context.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/root-node-context.spec.ts rename to packages/xpath/test/xforms/root-node-context.spec.ts diff --git a/packages/odk-xpath/test/xforms/round.spec.ts b/packages/xpath/test/xforms/round.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/round.spec.ts rename to packages/xpath/test/xforms/round.spec.ts diff --git a/packages/odk-xpath/test/xforms/selected-at.spec.ts b/packages/xpath/test/xforms/selected-at.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/selected-at.spec.ts rename to packages/xpath/test/xforms/selected-at.spec.ts diff --git a/packages/odk-xpath/test/xforms/selected.spec.ts b/packages/xpath/test/xforms/selected.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/selected.spec.ts rename to packages/xpath/test/xforms/selected.spec.ts diff --git a/packages/odk-xpath/test/xforms/simple-xpath.spec.ts b/packages/xpath/test/xforms/simple-xpath.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/simple-xpath.spec.ts rename to packages/xpath/test/xforms/simple-xpath.spec.ts diff --git a/packages/odk-xpath/test/xforms/subs.spec.ts b/packages/xpath/test/xforms/subs.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/subs.spec.ts rename to packages/xpath/test/xforms/subs.spec.ts diff --git a/packages/odk-xpath/test/xforms/sum.spec.ts b/packages/xpath/test/xforms/sum.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/sum.spec.ts rename to packages/xpath/test/xforms/sum.spec.ts diff --git a/packages/odk-xpath/test/xforms/today.spec.ts b/packages/xpath/test/xforms/today.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/today.spec.ts rename to packages/xpath/test/xforms/today.spec.ts diff --git a/packages/odk-xpath/test/xforms/trigo.spec.ts b/packages/xpath/test/xforms/trigo.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/trigo.spec.ts rename to packages/xpath/test/xforms/trigo.spec.ts diff --git a/packages/odk-xpath/test/xforms/uuid.spec.ts b/packages/xpath/test/xforms/uuid.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/uuid.spec.ts rename to packages/xpath/test/xforms/uuid.spec.ts diff --git a/packages/odk-xpath/test/xforms/weighted-checklist.spec.ts b/packages/xpath/test/xforms/weighted-checklist.spec.ts similarity index 100% rename from packages/odk-xpath/test/xforms/weighted-checklist.spec.ts rename to packages/xpath/test/xforms/weighted-checklist.spec.ts diff --git a/packages/odk-xpath/tsconfig.json b/packages/xpath/tsconfig.json similarity index 100% rename from packages/odk-xpath/tsconfig.json rename to packages/xpath/tsconfig.json diff --git a/packages/odk-xpath/vite-env.d.ts b/packages/xpath/vite-env.d.ts similarity index 100% rename from packages/odk-xpath/vite-env.d.ts rename to packages/xpath/vite-env.d.ts diff --git a/packages/odk-xpath/vite.config.ts b/packages/xpath/vite.config.ts similarity index 100% rename from packages/odk-xpath/vite.config.ts rename to packages/xpath/vite.config.ts diff --git a/turbo.json b/turbo.json index 2444ec9d4..e37a3ba51 100644 --- a/turbo.json +++ b/turbo.json @@ -8,7 +8,7 @@ "@odk-web-forms/tree-sitter-xpath#build": { "outputMode": "new-only" }, - "@odk/xpath#build": { + "@odk-web-forms/xpath#build": { "dependsOn": ["@odk-web-forms/tree-sitter-xpath#build"], "outputMode": "new-only" }, @@ -16,11 +16,11 @@ "outputMode": "new-only" }, "@odk/web-forms#build": { - "dependsOn": ["suid#build", "@odk/xpath#build"], + "dependsOn": ["suid#build", "@odk-web-forms/xpath#build"], "outputs": ["dist/**"] }, "@odk-web-forms/ui-vue#build": { - "dependsOn": ["@odk/xpath#build"], + "dependsOn": ["@odk-web-forms/xpath#build"], "outputs": ["dist/**"] }, "test": { diff --git a/vendor-packages/suid/vite.config.ts b/vendor-packages/suid/vite.config.ts index f047a5289..799a874d5 100644 --- a/vendor-packages/suid/vite.config.ts +++ b/vendor-packages/suid/vite.config.ts @@ -54,8 +54,8 @@ export default defineConfig(() => { }), // Generate type definitions. This turned out to be more reliable in - // @odk/xpath. TODO: revisit in case it makes sense to use tsc directly in - // this package + // @odk-web-forms/xpath. TODO: revisit in case it makes sense to use tsc + // directly in this package dts(), noBundle(), From 0e35e75d6f55d9d6c998906ac7cde8056a22ac77 Mon Sep 17 00:00:00 2001 From: eyelidlessness Date: Sat, 9 Mar 2024 09:11:38 -0800 Subject: [PATCH 04/14] Rename package: @odk/web-forms -> @odk-web-forms/xforms-engine Subsequent commits will split out the current UI aspects into a separate `@odk-web-forms/ui-solid` package. An attempt will also be made to move fixtures which are generally used for demo purposes into a shared space that any UI client can reference (with the Solid client being a reference implementation for that). --- .changeset/blue-papayas-know.md | 2 +- .github/workflows/ci.yml | 20 ++++++++-------- .prettierignore | 2 +- packages/common/README.md | 3 ++- packages/odk-web-forms/CHANGELOG.md | 1 - packages/xforms-engine/CHANGELOG.md | 1 + .../README.md | 22 +++++++++--------- .../assets/favicon.ico | Bin .../assets/odk-logo.png | Bin .../e2e/App.test.ts | 0 .../e2e/tsconfig.json | 0 .../1-calculate-simple.xform.xml | 0 .../2-relevant-simple.xform.xml | 0 .../3-relevant-calculate.xml | 0 .../4-calculate-required.xml | 0 .../computations-demo/5-relevant-readonly.xml | 0 .../6-relevant-calculate-group.xml | 0 .../computations-demo/7-readonly-group.xml | 0 .../xforms/computations-demo/8-outputs.xml | 0 .../fixtures/xforms/itext/01-itext-basic.xml | 0 .../fixtures/xforms/minimal.xform.xml | 0 .../xforms/repeats/01-basic-repeat.xml | 0 .../xforms/repeats/02-repeat-grouped.xml | 0 .../repeats/03-multiple-default-instances.xml | 0 .../repeats/04-no-default-instances.xml | 0 .../05-multiple-default-instances-x50.xml | 0 .../repeats/06-jr-test-add-repeat-calc.xml | 0 ...-jr-test-add-repeat-calc-multiple-deps.xml | 0 .../xforms/select/1-static-selects.xml | 0 .../select/2-dynamic-selects-itemsets.xml | 0 .../index.d.ts | 0 .../index.html | 0 .../package.json | 4 ++-- .../playwright.config.ts | 0 .../src/App.tsx | 0 .../src/Demo.tsx | 0 .../src/components/Demo/DemoFixturesList.tsx | 0 .../src/components/FormLanguageMenu.tsx | 0 .../src/components/Label/LabelPart.tsx | 0 .../src/components/LocalizationProvider.tsx | 0 .../src/components/Page/Page.tsx | 0 .../src/components/Page/PageFooter.tsx | 0 .../src/components/Page/PageHeader.tsx | 0 .../src/components/Page/PageMain.tsx | 0 .../src/components/ThemeProvider.tsx | 0 .../src/components/Widget/MultiSelect.tsx | 0 .../src/components/Widget/SingleSelect.tsx | 0 .../src/components/Widget/TextWidget.tsx | 0 .../src/components/XForm/XFormBodyElement.tsx | 0 .../components/XForm/XFormControlStack.tsx | 0 .../src/components/XForm/XFormDetails.tsx | 0 .../src/components/XForm/XFormLabel.tsx | 0 .../components/XForm/XFormQuestionList.tsx | 0 .../components/XForm/XFormRelevanceGuard.tsx | 0 .../src/components/XForm/XFormTitle.test.tsx | 0 .../src/components/XForm/XFormTitle.tsx | 0 .../src/components/XForm/XFormView.test.tsx | 0 .../src/components/XForm/XFormView.tsx | 0 .../containers/RepeatInstanceOptionsMenu.tsx | 0 .../XForm/containers/XFormGroup.tsx | 0 .../XForm/containers/XFormGroupLabel.tsx | 0 .../XForm/containers/XFormRepeatInstance.tsx | 0 .../containers/XFormRepeatInstanceLabel.tsx | 0 .../XForm/containers/XFormRepeatList.tsx | 0 .../XForm/controls/SelectControl.tsx | 0 .../XForm/controls/XFormControl.tsx | 0 .../XForm/controls/XFormControlLabel.tsx | 0 .../XForm/controls/XFormInputControl.tsx | 0 .../components/XForm/debugging/XFormAlert.tsx | 0 .../XForm/debugging/XFormUnknownControl.tsx | 0 .../debugging/XFormUnlabeledInputControl.tsx | 0 .../src/components/styled/DefaultLabel.tsx | 0 .../styled/DefaultLabelParagraph.tsx | 0 .../styled/DefaultLabelRequiredIndicator.tsx | 0 .../components/styled/DefaultParagraph.tsx | 0 .../components/styled/DefaultSubmitButton.tsx | 0 .../components/styled/DefaultTextField.tsx | 0 .../styled/DefaultTextFormControl.tsx | 0 .../components/styled/FormSubmitButton.tsx | 0 .../src/components/styled/NestedGroupBox.tsx | 0 .../src/components/styled/PageContainer.tsx | 0 .../src/components/styled/PageMenuButton.tsx | 0 .../src/components/styled/PlainTextButton.tsx | 0 .../components/styled/SecondaryParagraph.tsx | 0 .../styled/ThemeColorOutlineButton.tsx | 0 .../styled/TopLevelRepeatInstance.tsx | 0 .../src/index.tsx | 0 .../src/lib/i18n-l10n/types.ts | 0 .../lib/reactivity/primitives/createLatest.ts | 0 .../reactivity/primitives/uninitialized.ts | 0 .../src/lib/xform/XFormDOM.test.ts | 0 .../src/lib/xform/XFormDOM.ts | 0 .../src/lib/xform/XFormDataType.ts | 0 .../src/lib/xform/XFormDefinition.test.ts | 0 .../src/lib/xform/XFormDefinition.ts | 0 .../src/lib/xform/body/BodyDefinition.test.ts | 0 .../src/lib/xform/body/BodyDefinition.ts | 0 .../lib/xform/body/BodyElementDefinition.ts | 0 .../src/lib/xform/body/RepeatDefinition.ts | 0 .../body/UnsupportedBodyElementDefinition.ts | 0 .../xform/body/control/ControlDefinition.ts | 0 .../lib/xform/body/control/InputDefinition.ts | 0 .../body/control/select/ItemDefinition.ts | 0 .../body/control/select/ItemsetDefinition.ts | 0 .../control/select/ItemsetNodesetContext.ts | 0 .../select/ItemsetNodesetExpression.ts | 0 .../control/select/ItemsetValueExpression.ts | 0 .../body/control/select/SelectDefinition.ts | 0 .../xform/body/group/BaseGroupDefinition.ts | 0 .../body/group/LogicalGroupDefinition.ts | 0 .../body/group/PresentationGroupDefinition.ts | 0 .../xform/body/group/RepeatGroupDefinition.ts | 0 .../body/group/StructuralGroupDefinition.ts | 0 .../src/lib/xform/body/text/HintDefinition.ts | 0 .../lib/xform/body/text/LabelDefinition.ts | 0 .../xform/body/text/TextElementDefinition.ts | 0 .../xform/body/text/TextElementOutputPart.ts | 0 .../lib/xform/body/text/TextElementPart.ts | 0 .../body/text/TextElementReferencePart.ts | 0 .../xform/body/text/TextElementStaticPart.ts | 0 .../lib/xform/expression/DependencyContext.ts | 0 .../xform/expression/DependentExpression.ts | 0 .../src/lib/xform/model/BindComputation.ts | 0 .../lib/xform/model/BindDefinition.test.ts | 0 .../src/lib/xform/model/BindDefinition.ts | 0 .../src/lib/xform/model/BindElement.ts | 0 .../xform/model/DescendentNodeDefinition.ts | 0 .../src/lib/xform/model/ModelBindMap.test.ts | 0 .../src/lib/xform/model/ModelBindMap.ts | 0 .../lib/xform/model/ModelDefinition.test.ts | 0 .../src/lib/xform/model/ModelDefinition.ts | 0 .../src/lib/xform/model/NodeDefinition.ts | 0 .../xform/model/RepeatInstanceDefinition.ts | 0 .../xform/model/RepeatSequenceDefinition.ts | 0 .../xform/model/RepeatTemplateDefinition.ts | 0 .../src/lib/xform/model/RootDefinition.ts | 0 .../src/lib/xform/model/SubtreeDefinition.ts | 0 .../lib/xform/model/ValueNodeDefinition.ts | 0 .../src/lib/xform/query.ts | 0 .../lib/xform/state/DescendantNodeState.ts | 0 .../src/lib/xform/state/EntryState.test.ts | 0 .../src/lib/xform/state/EntryState.ts | 0 .../src/lib/xform/state/NodeState.ts | 0 .../src/lib/xform/state/NodeStateValidity.ts | 0 .../lib/xform/state/RepeatInstanceState.ts | 0 .../lib/xform/state/RepeatSequenceState.ts | 0 .../src/lib/xform/state/SubtreeState.ts | 0 .../src/lib/xform/state/TranslationState.ts | 0 .../src/lib/xform/state/ValueNodeState.ts | 0 .../src/lib/xform/state/select/SelectState.ts | 0 .../lib/xform/state/select/SelectStateItem.ts | 0 .../src/lib/xpath/analysis.test.ts | 0 .../src/lib/xpath/analysis.ts | 0 .../src/lib/xpath/evaluator.ts | 0 .../src/lib/xpath/parser.ts | 0 .../xform-dsl/BindBuilderXFormsElement.ts | 0 .../fixtures/xform-dsl/BodyXFormsElement.ts | 0 .../fixtures/xform-dsl/EmptyXFormsElement.ts | 0 .../fixtures/xform-dsl/HeadXFormsElement.ts | 0 .../fixtures/xform-dsl/HtmlXFormsElement.ts | 0 .../src/test/fixtures/xform-dsl/README.md | 0 .../xform-dsl/StringLiteralXFormsElement.ts | 0 .../fixtures/xform-dsl/TagXFormsElement.ts | 0 .../test/fixtures/xform-dsl/XFormsElement.ts | 0 .../test/fixtures/xform-dsl/collections.ts | 0 .../src/test/fixtures/xform-dsl/index.ts | 0 .../src/test/fixtures/xform-dsl/shared.ts | 0 .../src/test/jr/repeat.test.ts | 0 .../src/test/scenario/Scenario.ts | 0 .../src/test/scenario/assert.ts | 0 .../src/test/scenario/cast.ts | 0 .../src/test/view/translations.test.tsx | 0 .../tools/@solidjs/testing-library/index.ts | 0 .../tools/@solidjs/testing-library/types.ts | 0 .../tools/vite/solid-vitest-no-node-loader.ts | 0 .../tools/vite/vitest-setup.ts | 0 .../tsconfig.json | 0 .../vite-env.d.ts | 0 .../vite.config.ts | 0 packages/xpath/README.md | 2 +- .../static/grammar/TreeSitterXPathParser.ts | 8 +++---- turbo.json | 4 ++-- 182 files changed, 35 insertions(+), 34 deletions(-) delete mode 100644 packages/odk-web-forms/CHANGELOG.md create mode 100644 packages/xforms-engine/CHANGELOG.md rename packages/{odk-web-forms => xforms-engine}/README.md (82%) rename packages/{odk-web-forms => xforms-engine}/assets/favicon.ico (100%) rename packages/{odk-web-forms => xforms-engine}/assets/odk-logo.png (100%) rename packages/{odk-web-forms => xforms-engine}/e2e/App.test.ts (100%) rename packages/{odk-web-forms => xforms-engine}/e2e/tsconfig.json (100%) rename packages/{odk-web-forms => xforms-engine}/fixtures/xforms/computations-demo/1-calculate-simple.xform.xml (100%) rename packages/{odk-web-forms => xforms-engine}/fixtures/xforms/computations-demo/2-relevant-simple.xform.xml (100%) rename packages/{odk-web-forms => xforms-engine}/fixtures/xforms/computations-demo/3-relevant-calculate.xml (100%) rename packages/{odk-web-forms => xforms-engine}/fixtures/xforms/computations-demo/4-calculate-required.xml (100%) rename packages/{odk-web-forms => xforms-engine}/fixtures/xforms/computations-demo/5-relevant-readonly.xml (100%) rename packages/{odk-web-forms => xforms-engine}/fixtures/xforms/computations-demo/6-relevant-calculate-group.xml (100%) rename packages/{odk-web-forms => xforms-engine}/fixtures/xforms/computations-demo/7-readonly-group.xml (100%) rename packages/{odk-web-forms => xforms-engine}/fixtures/xforms/computations-demo/8-outputs.xml (100%) rename packages/{odk-web-forms => xforms-engine}/fixtures/xforms/itext/01-itext-basic.xml (100%) rename packages/{odk-web-forms => xforms-engine}/fixtures/xforms/minimal.xform.xml (100%) rename packages/{odk-web-forms => xforms-engine}/fixtures/xforms/repeats/01-basic-repeat.xml (100%) rename packages/{odk-web-forms => xforms-engine}/fixtures/xforms/repeats/02-repeat-grouped.xml (100%) rename packages/{odk-web-forms => xforms-engine}/fixtures/xforms/repeats/03-multiple-default-instances.xml (100%) rename packages/{odk-web-forms => xforms-engine}/fixtures/xforms/repeats/04-no-default-instances.xml (100%) rename packages/{odk-web-forms => xforms-engine}/fixtures/xforms/repeats/05-multiple-default-instances-x50.xml (100%) rename packages/{odk-web-forms => xforms-engine}/fixtures/xforms/repeats/06-jr-test-add-repeat-calc.xml (100%) rename packages/{odk-web-forms => xforms-engine}/fixtures/xforms/repeats/07-jr-test-add-repeat-calc-multiple-deps.xml (100%) rename packages/{odk-web-forms => xforms-engine}/fixtures/xforms/select/1-static-selects.xml (100%) rename packages/{odk-web-forms => xforms-engine}/fixtures/xforms/select/2-dynamic-selects-itemsets.xml (100%) rename packages/{odk-web-forms => xforms-engine}/index.d.ts (100%) rename packages/{odk-web-forms => xforms-engine}/index.html (100%) rename packages/{odk-web-forms => xforms-engine}/package.json (96%) rename packages/{odk-web-forms => xforms-engine}/playwright.config.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/App.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/Demo.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/Demo/DemoFixturesList.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/FormLanguageMenu.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/Label/LabelPart.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/LocalizationProvider.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/Page/Page.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/Page/PageFooter.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/Page/PageHeader.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/Page/PageMain.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/ThemeProvider.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/Widget/MultiSelect.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/Widget/SingleSelect.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/Widget/TextWidget.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/XForm/XFormBodyElement.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/XForm/XFormControlStack.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/XForm/XFormDetails.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/XForm/XFormLabel.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/XForm/XFormQuestionList.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/XForm/XFormRelevanceGuard.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/XForm/XFormTitle.test.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/XForm/XFormTitle.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/XForm/XFormView.test.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/XForm/XFormView.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/XForm/containers/RepeatInstanceOptionsMenu.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/XForm/containers/XFormGroup.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/XForm/containers/XFormGroupLabel.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/XForm/containers/XFormRepeatInstance.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/XForm/containers/XFormRepeatInstanceLabel.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/XForm/containers/XFormRepeatList.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/XForm/controls/SelectControl.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/XForm/controls/XFormControl.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/XForm/controls/XFormControlLabel.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/XForm/controls/XFormInputControl.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/XForm/debugging/XFormAlert.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/XForm/debugging/XFormUnknownControl.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/XForm/debugging/XFormUnlabeledInputControl.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/styled/DefaultLabel.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/styled/DefaultLabelParagraph.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/styled/DefaultLabelRequiredIndicator.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/styled/DefaultParagraph.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/styled/DefaultSubmitButton.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/styled/DefaultTextField.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/styled/DefaultTextFormControl.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/styled/FormSubmitButton.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/styled/NestedGroupBox.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/styled/PageContainer.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/styled/PageMenuButton.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/styled/PlainTextButton.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/styled/SecondaryParagraph.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/styled/ThemeColorOutlineButton.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/components/styled/TopLevelRepeatInstance.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/index.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/i18n-l10n/types.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/reactivity/primitives/createLatest.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/reactivity/primitives/uninitialized.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/XFormDOM.test.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/XFormDOM.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/XFormDataType.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/XFormDefinition.test.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/XFormDefinition.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/body/BodyDefinition.test.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/body/BodyDefinition.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/body/BodyElementDefinition.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/body/RepeatDefinition.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/body/UnsupportedBodyElementDefinition.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/body/control/ControlDefinition.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/body/control/InputDefinition.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/body/control/select/ItemDefinition.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/body/control/select/ItemsetDefinition.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/body/control/select/ItemsetNodesetContext.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/body/control/select/ItemsetNodesetExpression.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/body/control/select/ItemsetValueExpression.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/body/control/select/SelectDefinition.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/body/group/BaseGroupDefinition.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/body/group/LogicalGroupDefinition.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/body/group/PresentationGroupDefinition.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/body/group/RepeatGroupDefinition.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/body/group/StructuralGroupDefinition.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/body/text/HintDefinition.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/body/text/LabelDefinition.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/body/text/TextElementDefinition.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/body/text/TextElementOutputPart.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/body/text/TextElementPart.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/body/text/TextElementReferencePart.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/body/text/TextElementStaticPart.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/expression/DependencyContext.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/expression/DependentExpression.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/model/BindComputation.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/model/BindDefinition.test.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/model/BindDefinition.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/model/BindElement.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/model/DescendentNodeDefinition.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/model/ModelBindMap.test.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/model/ModelBindMap.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/model/ModelDefinition.test.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/model/ModelDefinition.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/model/NodeDefinition.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/model/RepeatInstanceDefinition.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/model/RepeatSequenceDefinition.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/model/RepeatTemplateDefinition.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/model/RootDefinition.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/model/SubtreeDefinition.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/model/ValueNodeDefinition.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/query.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/state/DescendantNodeState.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/state/EntryState.test.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/state/EntryState.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/state/NodeState.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/state/NodeStateValidity.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/state/RepeatInstanceState.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/state/RepeatSequenceState.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/state/SubtreeState.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/state/TranslationState.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/state/ValueNodeState.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/state/select/SelectState.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xform/state/select/SelectStateItem.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xpath/analysis.test.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xpath/analysis.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xpath/evaluator.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/lib/xpath/parser.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/test/fixtures/xform-dsl/BindBuilderXFormsElement.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/test/fixtures/xform-dsl/BodyXFormsElement.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/test/fixtures/xform-dsl/EmptyXFormsElement.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/test/fixtures/xform-dsl/HeadXFormsElement.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/test/fixtures/xform-dsl/HtmlXFormsElement.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/test/fixtures/xform-dsl/README.md (100%) rename packages/{odk-web-forms => xforms-engine}/src/test/fixtures/xform-dsl/StringLiteralXFormsElement.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/test/fixtures/xform-dsl/TagXFormsElement.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/test/fixtures/xform-dsl/XFormsElement.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/test/fixtures/xform-dsl/collections.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/test/fixtures/xform-dsl/index.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/test/fixtures/xform-dsl/shared.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/test/jr/repeat.test.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/test/scenario/Scenario.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/test/scenario/assert.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/test/scenario/cast.ts (100%) rename packages/{odk-web-forms => xforms-engine}/src/test/view/translations.test.tsx (100%) rename packages/{odk-web-forms => xforms-engine}/tools/@solidjs/testing-library/index.ts (100%) rename packages/{odk-web-forms => xforms-engine}/tools/@solidjs/testing-library/types.ts (100%) rename packages/{odk-web-forms => xforms-engine}/tools/vite/solid-vitest-no-node-loader.ts (100%) rename packages/{odk-web-forms => xforms-engine}/tools/vite/vitest-setup.ts (100%) rename packages/{odk-web-forms => xforms-engine}/tsconfig.json (100%) rename packages/{odk-web-forms => xforms-engine}/vite-env.d.ts (100%) rename packages/{odk-web-forms => xforms-engine}/vite.config.ts (100%) diff --git a/.changeset/blue-papayas-know.md b/.changeset/blue-papayas-know.md index aa69e90e5..3df34c390 100644 --- a/.changeset/blue-papayas-know.md +++ b/.changeset/blue-papayas-know.md @@ -1,5 +1,5 @@ --- -'@odk/web-forms': patch +'@odk-web-forms/xforms-engine': patch 'odk-scripts': patch --- diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8cb955318..33091b6a1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -30,8 +30,8 @@ jobs: outputs: root: ${{ steps.changes.outputs.root }} odk-common: ${{ steps.changes.outputs.odk-common }} - odk-web-forms: ${{ steps.changes.outputs.odk-web-forms }} tree-sitter-xpath: ${{ steps.changes.outputs.tree-sitter-xpath }} + xforms-engine: ${{ steps.changes.outputs.xforms-engine }} xpath: ${{ steps.changes.outputs.xpath }} ui-vue: ${{ steps.changes.outputs.ui-vue }} @@ -48,14 +48,14 @@ jobs: odk-common: - 'packages/common/**' - odk-web-forms: - - 'packages/odk-web-forms/**' - tree-sitter-xpath: - 'packages/tree-sitter-xpath/grammar.ts' - 'packages/tree-sitter-xpath/scripts/**' - 'packages/tree-sitter-xpath/test/**' + xforms-engine: + - 'packages/xforms-engine/**' + xpath: - 'packages/xpath/**' @@ -229,10 +229,10 @@ jobs: - if: ${{ matrix.target == 'Web' }} run: 'yarn workspace @odk-web-forms/common test-browser:${{ matrix.browser }}' - odk-web-forms: - name: '@odk/web-forms' + xforms-engine: + name: '@odk-web-forms/xforms-engine' needs: ['install-and-build', 'changes'] - if: needs.changes.outputs.root == 'true' || needs.changes.outputs.odk-web-forms == 'true' + if: needs.changes.outputs.root == 'true' || needs.changes.outputs.xforms-engine == 'true' runs-on: 'ubuntu-latest' strategy: @@ -284,16 +284,16 @@ jobs: fail-on-cache-miss: true - if: ${{ matrix.target == 'Node' }} - run: 'yarn workspace @odk/web-forms test:types' + run: 'yarn workspace @odk-web-forms/xforms-engine test:types' - if: ${{ matrix.target == 'Node' }} - run: 'yarn workspace @odk/web-forms test-node:jsdom' + run: 'yarn workspace @odk-web-forms/xforms-engine test-node:jsdom' - if: ${{ matrix.target == 'Web' }} run: 'yarn playwright install ${{ matrix.browser }} --with-deps' - if: ${{ matrix.target == 'Web' }} - run: 'yarn workspace @odk/web-forms test-browser:${{ matrix.browser }}' + run: 'yarn workspace @odk-web-forms/xforms-engine test-browser:${{ matrix.browser }}' xpath: name: '@odk-web-forms/xpath' diff --git a/.prettierignore b/.prettierignore index c44da2c4a..74b7f5d0a 100644 --- a/.prettierignore +++ b/.prettierignore @@ -2,7 +2,7 @@ **/node_modules **/dist **/fixtures -!packages/odk-web-forms/src/test/fixtures +!packages/xforms-engine/src/test/fixtures **/vendor # Directories diff --git a/packages/common/README.md b/packages/common/README.md index 3f242813c..173fef8d7 100644 --- a/packages/common/README.md +++ b/packages/common/README.md @@ -17,4 +17,5 @@ Being an internal package, for now there is no build step: downstream packages s - consideration for downstream build and bundle impact - usage in a package intended for both internal and external purposes (i.e. packages such as `@odk-web-forms/tree-sitter-xpath` or `@odk-web-forms/xpath` - which are used in `@odk/web-forms` but may also be used on their own) + which are used in `@odk-web-forms/xforms-engine` but may also be used on their + own) diff --git a/packages/odk-web-forms/CHANGELOG.md b/packages/odk-web-forms/CHANGELOG.md deleted file mode 100644 index cb8651e68..000000000 --- a/packages/odk-web-forms/CHANGELOG.md +++ /dev/null @@ -1 +0,0 @@ -# @odk/web-forms diff --git a/packages/xforms-engine/CHANGELOG.md b/packages/xforms-engine/CHANGELOG.md new file mode 100644 index 000000000..8d7d56a67 --- /dev/null +++ b/packages/xforms-engine/CHANGELOG.md @@ -0,0 +1 @@ +# @odk-web-forms/xforms-engine diff --git a/packages/odk-web-forms/README.md b/packages/xforms-engine/README.md similarity index 82% rename from packages/odk-web-forms/README.md rename to packages/xforms-engine/README.md index 5ad28a5ac..9e397668b 100644 --- a/packages/odk-web-forms/README.md +++ b/packages/xforms-engine/README.md @@ -7,7 +7,7 @@ Install with `npm` (or the equivalent command for your preferred package manager): ```sh -npm install @odk/web-forms +npm install @odk-web-forms/xforms-engine ``` ## Development @@ -15,26 +15,26 @@ npm install @odk/web-forms > **Note** > All commands should be run from the root of the monorepo, not this package's subdirectory. -To run @odk/web-forms in development mode: +To run @odk-web-forms/xforms-engine in development mode: ```sh -yarn workspace @odk/web-forms dev +yarn workspace @odk-web-forms/xforms-engine dev ``` Test commands: ```sh # Single run -yarn workspace @odk/web-forms test-node:jsdom -yarn workspace @odk/web-forms test-browser:chromium -yarn workspace @odk/web-forms test-browser:firefox -yarn workspace @odk/web-forms test-browser:webkit +yarn workspace @odk-web-forms/xforms-engine test-node:jsdom +yarn workspace @odk-web-forms/xforms-engine test-browser:chromium +yarn workspace @odk-web-forms/xforms-engine test-browser:firefox +yarn workspace @odk-web-forms/xforms-engine test-browser:webkit # Watch mode (convenient during development) -yarn workspace @odk/web-forms test-watch:jsdom -yarn workspace @odk/web-forms test-watch:chromium -yarn workspace @odk/web-forms test-watch:firefox -yarn workspace @odk/web-forms test-watch:webkit +yarn workspace @odk-web-forms/xforms-engine test-watch:jsdom +yarn workspace @odk-web-forms/xforms-engine test-watch:chromium +yarn workspace @odk-web-forms/xforms-engine test-watch:firefox +yarn workspace @odk-web-forms/xforms-engine test-watch:webkit ``` ### Project structure (WIP) diff --git a/packages/odk-web-forms/assets/favicon.ico b/packages/xforms-engine/assets/favicon.ico similarity index 100% rename from packages/odk-web-forms/assets/favicon.ico rename to packages/xforms-engine/assets/favicon.ico diff --git a/packages/odk-web-forms/assets/odk-logo.png b/packages/xforms-engine/assets/odk-logo.png similarity index 100% rename from packages/odk-web-forms/assets/odk-logo.png rename to packages/xforms-engine/assets/odk-logo.png diff --git a/packages/odk-web-forms/e2e/App.test.ts b/packages/xforms-engine/e2e/App.test.ts similarity index 100% rename from packages/odk-web-forms/e2e/App.test.ts rename to packages/xforms-engine/e2e/App.test.ts diff --git a/packages/odk-web-forms/e2e/tsconfig.json b/packages/xforms-engine/e2e/tsconfig.json similarity index 100% rename from packages/odk-web-forms/e2e/tsconfig.json rename to packages/xforms-engine/e2e/tsconfig.json diff --git a/packages/odk-web-forms/fixtures/xforms/computations-demo/1-calculate-simple.xform.xml b/packages/xforms-engine/fixtures/xforms/computations-demo/1-calculate-simple.xform.xml similarity index 100% rename from packages/odk-web-forms/fixtures/xforms/computations-demo/1-calculate-simple.xform.xml rename to packages/xforms-engine/fixtures/xforms/computations-demo/1-calculate-simple.xform.xml diff --git a/packages/odk-web-forms/fixtures/xforms/computations-demo/2-relevant-simple.xform.xml b/packages/xforms-engine/fixtures/xforms/computations-demo/2-relevant-simple.xform.xml similarity index 100% rename from packages/odk-web-forms/fixtures/xforms/computations-demo/2-relevant-simple.xform.xml rename to packages/xforms-engine/fixtures/xforms/computations-demo/2-relevant-simple.xform.xml diff --git a/packages/odk-web-forms/fixtures/xforms/computations-demo/3-relevant-calculate.xml b/packages/xforms-engine/fixtures/xforms/computations-demo/3-relevant-calculate.xml similarity index 100% rename from packages/odk-web-forms/fixtures/xforms/computations-demo/3-relevant-calculate.xml rename to packages/xforms-engine/fixtures/xforms/computations-demo/3-relevant-calculate.xml diff --git a/packages/odk-web-forms/fixtures/xforms/computations-demo/4-calculate-required.xml b/packages/xforms-engine/fixtures/xforms/computations-demo/4-calculate-required.xml similarity index 100% rename from packages/odk-web-forms/fixtures/xforms/computations-demo/4-calculate-required.xml rename to packages/xforms-engine/fixtures/xforms/computations-demo/4-calculate-required.xml diff --git a/packages/odk-web-forms/fixtures/xforms/computations-demo/5-relevant-readonly.xml b/packages/xforms-engine/fixtures/xforms/computations-demo/5-relevant-readonly.xml similarity index 100% rename from packages/odk-web-forms/fixtures/xforms/computations-demo/5-relevant-readonly.xml rename to packages/xforms-engine/fixtures/xforms/computations-demo/5-relevant-readonly.xml diff --git a/packages/odk-web-forms/fixtures/xforms/computations-demo/6-relevant-calculate-group.xml b/packages/xforms-engine/fixtures/xforms/computations-demo/6-relevant-calculate-group.xml similarity index 100% rename from packages/odk-web-forms/fixtures/xforms/computations-demo/6-relevant-calculate-group.xml rename to packages/xforms-engine/fixtures/xforms/computations-demo/6-relevant-calculate-group.xml diff --git a/packages/odk-web-forms/fixtures/xforms/computations-demo/7-readonly-group.xml b/packages/xforms-engine/fixtures/xforms/computations-demo/7-readonly-group.xml similarity index 100% rename from packages/odk-web-forms/fixtures/xforms/computations-demo/7-readonly-group.xml rename to packages/xforms-engine/fixtures/xforms/computations-demo/7-readonly-group.xml diff --git a/packages/odk-web-forms/fixtures/xforms/computations-demo/8-outputs.xml b/packages/xforms-engine/fixtures/xforms/computations-demo/8-outputs.xml similarity index 100% rename from packages/odk-web-forms/fixtures/xforms/computations-demo/8-outputs.xml rename to packages/xforms-engine/fixtures/xforms/computations-demo/8-outputs.xml diff --git a/packages/odk-web-forms/fixtures/xforms/itext/01-itext-basic.xml b/packages/xforms-engine/fixtures/xforms/itext/01-itext-basic.xml similarity index 100% rename from packages/odk-web-forms/fixtures/xforms/itext/01-itext-basic.xml rename to packages/xforms-engine/fixtures/xforms/itext/01-itext-basic.xml diff --git a/packages/odk-web-forms/fixtures/xforms/minimal.xform.xml b/packages/xforms-engine/fixtures/xforms/minimal.xform.xml similarity index 100% rename from packages/odk-web-forms/fixtures/xforms/minimal.xform.xml rename to packages/xforms-engine/fixtures/xforms/minimal.xform.xml diff --git a/packages/odk-web-forms/fixtures/xforms/repeats/01-basic-repeat.xml b/packages/xforms-engine/fixtures/xforms/repeats/01-basic-repeat.xml similarity index 100% rename from packages/odk-web-forms/fixtures/xforms/repeats/01-basic-repeat.xml rename to packages/xforms-engine/fixtures/xforms/repeats/01-basic-repeat.xml diff --git a/packages/odk-web-forms/fixtures/xforms/repeats/02-repeat-grouped.xml b/packages/xforms-engine/fixtures/xforms/repeats/02-repeat-grouped.xml similarity index 100% rename from packages/odk-web-forms/fixtures/xforms/repeats/02-repeat-grouped.xml rename to packages/xforms-engine/fixtures/xforms/repeats/02-repeat-grouped.xml diff --git a/packages/odk-web-forms/fixtures/xforms/repeats/03-multiple-default-instances.xml b/packages/xforms-engine/fixtures/xforms/repeats/03-multiple-default-instances.xml similarity index 100% rename from packages/odk-web-forms/fixtures/xforms/repeats/03-multiple-default-instances.xml rename to packages/xforms-engine/fixtures/xforms/repeats/03-multiple-default-instances.xml diff --git a/packages/odk-web-forms/fixtures/xforms/repeats/04-no-default-instances.xml b/packages/xforms-engine/fixtures/xforms/repeats/04-no-default-instances.xml similarity index 100% rename from packages/odk-web-forms/fixtures/xforms/repeats/04-no-default-instances.xml rename to packages/xforms-engine/fixtures/xforms/repeats/04-no-default-instances.xml diff --git a/packages/odk-web-forms/fixtures/xforms/repeats/05-multiple-default-instances-x50.xml b/packages/xforms-engine/fixtures/xforms/repeats/05-multiple-default-instances-x50.xml similarity index 100% rename from packages/odk-web-forms/fixtures/xforms/repeats/05-multiple-default-instances-x50.xml rename to packages/xforms-engine/fixtures/xforms/repeats/05-multiple-default-instances-x50.xml diff --git a/packages/odk-web-forms/fixtures/xforms/repeats/06-jr-test-add-repeat-calc.xml b/packages/xforms-engine/fixtures/xforms/repeats/06-jr-test-add-repeat-calc.xml similarity index 100% rename from packages/odk-web-forms/fixtures/xforms/repeats/06-jr-test-add-repeat-calc.xml rename to packages/xforms-engine/fixtures/xforms/repeats/06-jr-test-add-repeat-calc.xml diff --git a/packages/odk-web-forms/fixtures/xforms/repeats/07-jr-test-add-repeat-calc-multiple-deps.xml b/packages/xforms-engine/fixtures/xforms/repeats/07-jr-test-add-repeat-calc-multiple-deps.xml similarity index 100% rename from packages/odk-web-forms/fixtures/xforms/repeats/07-jr-test-add-repeat-calc-multiple-deps.xml rename to packages/xforms-engine/fixtures/xforms/repeats/07-jr-test-add-repeat-calc-multiple-deps.xml diff --git a/packages/odk-web-forms/fixtures/xforms/select/1-static-selects.xml b/packages/xforms-engine/fixtures/xforms/select/1-static-selects.xml similarity index 100% rename from packages/odk-web-forms/fixtures/xforms/select/1-static-selects.xml rename to packages/xforms-engine/fixtures/xforms/select/1-static-selects.xml diff --git a/packages/odk-web-forms/fixtures/xforms/select/2-dynamic-selects-itemsets.xml b/packages/xforms-engine/fixtures/xforms/select/2-dynamic-selects-itemsets.xml similarity index 100% rename from packages/odk-web-forms/fixtures/xforms/select/2-dynamic-selects-itemsets.xml rename to packages/xforms-engine/fixtures/xforms/select/2-dynamic-selects-itemsets.xml diff --git a/packages/odk-web-forms/index.d.ts b/packages/xforms-engine/index.d.ts similarity index 100% rename from packages/odk-web-forms/index.d.ts rename to packages/xforms-engine/index.d.ts diff --git a/packages/odk-web-forms/index.html b/packages/xforms-engine/index.html similarity index 100% rename from packages/odk-web-forms/index.html rename to packages/xforms-engine/index.html diff --git a/packages/odk-web-forms/package.json b/packages/xforms-engine/package.json similarity index 96% rename from packages/odk-web-forms/package.json rename to packages/xforms-engine/package.json index 8a27d168c..d76465fff 100644 --- a/packages/odk-web-forms/package.json +++ b/packages/xforms-engine/package.json @@ -1,5 +1,5 @@ { - "name": "@odk/web-forms", + "name": "@odk-web-forms/xforms-engine", "version": "1.0.0-alpha.0", "description": "ODK Web forms", "type": "module", @@ -7,7 +7,7 @@ "repository": { "type": "git", "url": "https://github.com/getodk/web-forms", - "directory": "packages/odk-web-forms" + "directory": "packages/xforms-engine" }, "bugs": "https://github.com/getodk/web-forms/issues", "homepage": "https://getodk.org/", diff --git a/packages/odk-web-forms/playwright.config.ts b/packages/xforms-engine/playwright.config.ts similarity index 100% rename from packages/odk-web-forms/playwright.config.ts rename to packages/xforms-engine/playwright.config.ts diff --git a/packages/odk-web-forms/src/App.tsx b/packages/xforms-engine/src/App.tsx similarity index 100% rename from packages/odk-web-forms/src/App.tsx rename to packages/xforms-engine/src/App.tsx diff --git a/packages/odk-web-forms/src/Demo.tsx b/packages/xforms-engine/src/Demo.tsx similarity index 100% rename from packages/odk-web-forms/src/Demo.tsx rename to packages/xforms-engine/src/Demo.tsx diff --git a/packages/odk-web-forms/src/components/Demo/DemoFixturesList.tsx b/packages/xforms-engine/src/components/Demo/DemoFixturesList.tsx similarity index 100% rename from packages/odk-web-forms/src/components/Demo/DemoFixturesList.tsx rename to packages/xforms-engine/src/components/Demo/DemoFixturesList.tsx diff --git a/packages/odk-web-forms/src/components/FormLanguageMenu.tsx b/packages/xforms-engine/src/components/FormLanguageMenu.tsx similarity index 100% rename from packages/odk-web-forms/src/components/FormLanguageMenu.tsx rename to packages/xforms-engine/src/components/FormLanguageMenu.tsx diff --git a/packages/odk-web-forms/src/components/Label/LabelPart.tsx b/packages/xforms-engine/src/components/Label/LabelPart.tsx similarity index 100% rename from packages/odk-web-forms/src/components/Label/LabelPart.tsx rename to packages/xforms-engine/src/components/Label/LabelPart.tsx diff --git a/packages/odk-web-forms/src/components/LocalizationProvider.tsx b/packages/xforms-engine/src/components/LocalizationProvider.tsx similarity index 100% rename from packages/odk-web-forms/src/components/LocalizationProvider.tsx rename to packages/xforms-engine/src/components/LocalizationProvider.tsx diff --git a/packages/odk-web-forms/src/components/Page/Page.tsx b/packages/xforms-engine/src/components/Page/Page.tsx similarity index 100% rename from packages/odk-web-forms/src/components/Page/Page.tsx rename to packages/xforms-engine/src/components/Page/Page.tsx diff --git a/packages/odk-web-forms/src/components/Page/PageFooter.tsx b/packages/xforms-engine/src/components/Page/PageFooter.tsx similarity index 100% rename from packages/odk-web-forms/src/components/Page/PageFooter.tsx rename to packages/xforms-engine/src/components/Page/PageFooter.tsx diff --git a/packages/odk-web-forms/src/components/Page/PageHeader.tsx b/packages/xforms-engine/src/components/Page/PageHeader.tsx similarity index 100% rename from packages/odk-web-forms/src/components/Page/PageHeader.tsx rename to packages/xforms-engine/src/components/Page/PageHeader.tsx diff --git a/packages/odk-web-forms/src/components/Page/PageMain.tsx b/packages/xforms-engine/src/components/Page/PageMain.tsx similarity index 100% rename from packages/odk-web-forms/src/components/Page/PageMain.tsx rename to packages/xforms-engine/src/components/Page/PageMain.tsx diff --git a/packages/odk-web-forms/src/components/ThemeProvider.tsx b/packages/xforms-engine/src/components/ThemeProvider.tsx similarity index 100% rename from packages/odk-web-forms/src/components/ThemeProvider.tsx rename to packages/xforms-engine/src/components/ThemeProvider.tsx diff --git a/packages/odk-web-forms/src/components/Widget/MultiSelect.tsx b/packages/xforms-engine/src/components/Widget/MultiSelect.tsx similarity index 100% rename from packages/odk-web-forms/src/components/Widget/MultiSelect.tsx rename to packages/xforms-engine/src/components/Widget/MultiSelect.tsx diff --git a/packages/odk-web-forms/src/components/Widget/SingleSelect.tsx b/packages/xforms-engine/src/components/Widget/SingleSelect.tsx similarity index 100% rename from packages/odk-web-forms/src/components/Widget/SingleSelect.tsx rename to packages/xforms-engine/src/components/Widget/SingleSelect.tsx diff --git a/packages/odk-web-forms/src/components/Widget/TextWidget.tsx b/packages/xforms-engine/src/components/Widget/TextWidget.tsx similarity index 100% rename from packages/odk-web-forms/src/components/Widget/TextWidget.tsx rename to packages/xforms-engine/src/components/Widget/TextWidget.tsx diff --git a/packages/odk-web-forms/src/components/XForm/XFormBodyElement.tsx b/packages/xforms-engine/src/components/XForm/XFormBodyElement.tsx similarity index 100% rename from packages/odk-web-forms/src/components/XForm/XFormBodyElement.tsx rename to packages/xforms-engine/src/components/XForm/XFormBodyElement.tsx diff --git a/packages/odk-web-forms/src/components/XForm/XFormControlStack.tsx b/packages/xforms-engine/src/components/XForm/XFormControlStack.tsx similarity index 100% rename from packages/odk-web-forms/src/components/XForm/XFormControlStack.tsx rename to packages/xforms-engine/src/components/XForm/XFormControlStack.tsx diff --git a/packages/odk-web-forms/src/components/XForm/XFormDetails.tsx b/packages/xforms-engine/src/components/XForm/XFormDetails.tsx similarity index 100% rename from packages/odk-web-forms/src/components/XForm/XFormDetails.tsx rename to packages/xforms-engine/src/components/XForm/XFormDetails.tsx diff --git a/packages/odk-web-forms/src/components/XForm/XFormLabel.tsx b/packages/xforms-engine/src/components/XForm/XFormLabel.tsx similarity index 100% rename from packages/odk-web-forms/src/components/XForm/XFormLabel.tsx rename to packages/xforms-engine/src/components/XForm/XFormLabel.tsx diff --git a/packages/odk-web-forms/src/components/XForm/XFormQuestionList.tsx b/packages/xforms-engine/src/components/XForm/XFormQuestionList.tsx similarity index 100% rename from packages/odk-web-forms/src/components/XForm/XFormQuestionList.tsx rename to packages/xforms-engine/src/components/XForm/XFormQuestionList.tsx diff --git a/packages/odk-web-forms/src/components/XForm/XFormRelevanceGuard.tsx b/packages/xforms-engine/src/components/XForm/XFormRelevanceGuard.tsx similarity index 100% rename from packages/odk-web-forms/src/components/XForm/XFormRelevanceGuard.tsx rename to packages/xforms-engine/src/components/XForm/XFormRelevanceGuard.tsx diff --git a/packages/odk-web-forms/src/components/XForm/XFormTitle.test.tsx b/packages/xforms-engine/src/components/XForm/XFormTitle.test.tsx similarity index 100% rename from packages/odk-web-forms/src/components/XForm/XFormTitle.test.tsx rename to packages/xforms-engine/src/components/XForm/XFormTitle.test.tsx diff --git a/packages/odk-web-forms/src/components/XForm/XFormTitle.tsx b/packages/xforms-engine/src/components/XForm/XFormTitle.tsx similarity index 100% rename from packages/odk-web-forms/src/components/XForm/XFormTitle.tsx rename to packages/xforms-engine/src/components/XForm/XFormTitle.tsx diff --git a/packages/odk-web-forms/src/components/XForm/XFormView.test.tsx b/packages/xforms-engine/src/components/XForm/XFormView.test.tsx similarity index 100% rename from packages/odk-web-forms/src/components/XForm/XFormView.test.tsx rename to packages/xforms-engine/src/components/XForm/XFormView.test.tsx diff --git a/packages/odk-web-forms/src/components/XForm/XFormView.tsx b/packages/xforms-engine/src/components/XForm/XFormView.tsx similarity index 100% rename from packages/odk-web-forms/src/components/XForm/XFormView.tsx rename to packages/xforms-engine/src/components/XForm/XFormView.tsx diff --git a/packages/odk-web-forms/src/components/XForm/containers/RepeatInstanceOptionsMenu.tsx b/packages/xforms-engine/src/components/XForm/containers/RepeatInstanceOptionsMenu.tsx similarity index 100% rename from packages/odk-web-forms/src/components/XForm/containers/RepeatInstanceOptionsMenu.tsx rename to packages/xforms-engine/src/components/XForm/containers/RepeatInstanceOptionsMenu.tsx diff --git a/packages/odk-web-forms/src/components/XForm/containers/XFormGroup.tsx b/packages/xforms-engine/src/components/XForm/containers/XFormGroup.tsx similarity index 100% rename from packages/odk-web-forms/src/components/XForm/containers/XFormGroup.tsx rename to packages/xforms-engine/src/components/XForm/containers/XFormGroup.tsx diff --git a/packages/odk-web-forms/src/components/XForm/containers/XFormGroupLabel.tsx b/packages/xforms-engine/src/components/XForm/containers/XFormGroupLabel.tsx similarity index 100% rename from packages/odk-web-forms/src/components/XForm/containers/XFormGroupLabel.tsx rename to packages/xforms-engine/src/components/XForm/containers/XFormGroupLabel.tsx diff --git a/packages/odk-web-forms/src/components/XForm/containers/XFormRepeatInstance.tsx b/packages/xforms-engine/src/components/XForm/containers/XFormRepeatInstance.tsx similarity index 100% rename from packages/odk-web-forms/src/components/XForm/containers/XFormRepeatInstance.tsx rename to packages/xforms-engine/src/components/XForm/containers/XFormRepeatInstance.tsx diff --git a/packages/odk-web-forms/src/components/XForm/containers/XFormRepeatInstanceLabel.tsx b/packages/xforms-engine/src/components/XForm/containers/XFormRepeatInstanceLabel.tsx similarity index 100% rename from packages/odk-web-forms/src/components/XForm/containers/XFormRepeatInstanceLabel.tsx rename to packages/xforms-engine/src/components/XForm/containers/XFormRepeatInstanceLabel.tsx diff --git a/packages/odk-web-forms/src/components/XForm/containers/XFormRepeatList.tsx b/packages/xforms-engine/src/components/XForm/containers/XFormRepeatList.tsx similarity index 100% rename from packages/odk-web-forms/src/components/XForm/containers/XFormRepeatList.tsx rename to packages/xforms-engine/src/components/XForm/containers/XFormRepeatList.tsx diff --git a/packages/odk-web-forms/src/components/XForm/controls/SelectControl.tsx b/packages/xforms-engine/src/components/XForm/controls/SelectControl.tsx similarity index 100% rename from packages/odk-web-forms/src/components/XForm/controls/SelectControl.tsx rename to packages/xforms-engine/src/components/XForm/controls/SelectControl.tsx diff --git a/packages/odk-web-forms/src/components/XForm/controls/XFormControl.tsx b/packages/xforms-engine/src/components/XForm/controls/XFormControl.tsx similarity index 100% rename from packages/odk-web-forms/src/components/XForm/controls/XFormControl.tsx rename to packages/xforms-engine/src/components/XForm/controls/XFormControl.tsx diff --git a/packages/odk-web-forms/src/components/XForm/controls/XFormControlLabel.tsx b/packages/xforms-engine/src/components/XForm/controls/XFormControlLabel.tsx similarity index 100% rename from packages/odk-web-forms/src/components/XForm/controls/XFormControlLabel.tsx rename to packages/xforms-engine/src/components/XForm/controls/XFormControlLabel.tsx diff --git a/packages/odk-web-forms/src/components/XForm/controls/XFormInputControl.tsx b/packages/xforms-engine/src/components/XForm/controls/XFormInputControl.tsx similarity index 100% rename from packages/odk-web-forms/src/components/XForm/controls/XFormInputControl.tsx rename to packages/xforms-engine/src/components/XForm/controls/XFormInputControl.tsx diff --git a/packages/odk-web-forms/src/components/XForm/debugging/XFormAlert.tsx b/packages/xforms-engine/src/components/XForm/debugging/XFormAlert.tsx similarity index 100% rename from packages/odk-web-forms/src/components/XForm/debugging/XFormAlert.tsx rename to packages/xforms-engine/src/components/XForm/debugging/XFormAlert.tsx diff --git a/packages/odk-web-forms/src/components/XForm/debugging/XFormUnknownControl.tsx b/packages/xforms-engine/src/components/XForm/debugging/XFormUnknownControl.tsx similarity index 100% rename from packages/odk-web-forms/src/components/XForm/debugging/XFormUnknownControl.tsx rename to packages/xforms-engine/src/components/XForm/debugging/XFormUnknownControl.tsx diff --git a/packages/odk-web-forms/src/components/XForm/debugging/XFormUnlabeledInputControl.tsx b/packages/xforms-engine/src/components/XForm/debugging/XFormUnlabeledInputControl.tsx similarity index 100% rename from packages/odk-web-forms/src/components/XForm/debugging/XFormUnlabeledInputControl.tsx rename to packages/xforms-engine/src/components/XForm/debugging/XFormUnlabeledInputControl.tsx diff --git a/packages/odk-web-forms/src/components/styled/DefaultLabel.tsx b/packages/xforms-engine/src/components/styled/DefaultLabel.tsx similarity index 100% rename from packages/odk-web-forms/src/components/styled/DefaultLabel.tsx rename to packages/xforms-engine/src/components/styled/DefaultLabel.tsx diff --git a/packages/odk-web-forms/src/components/styled/DefaultLabelParagraph.tsx b/packages/xforms-engine/src/components/styled/DefaultLabelParagraph.tsx similarity index 100% rename from packages/odk-web-forms/src/components/styled/DefaultLabelParagraph.tsx rename to packages/xforms-engine/src/components/styled/DefaultLabelParagraph.tsx diff --git a/packages/odk-web-forms/src/components/styled/DefaultLabelRequiredIndicator.tsx b/packages/xforms-engine/src/components/styled/DefaultLabelRequiredIndicator.tsx similarity index 100% rename from packages/odk-web-forms/src/components/styled/DefaultLabelRequiredIndicator.tsx rename to packages/xforms-engine/src/components/styled/DefaultLabelRequiredIndicator.tsx diff --git a/packages/odk-web-forms/src/components/styled/DefaultParagraph.tsx b/packages/xforms-engine/src/components/styled/DefaultParagraph.tsx similarity index 100% rename from packages/odk-web-forms/src/components/styled/DefaultParagraph.tsx rename to packages/xforms-engine/src/components/styled/DefaultParagraph.tsx diff --git a/packages/odk-web-forms/src/components/styled/DefaultSubmitButton.tsx b/packages/xforms-engine/src/components/styled/DefaultSubmitButton.tsx similarity index 100% rename from packages/odk-web-forms/src/components/styled/DefaultSubmitButton.tsx rename to packages/xforms-engine/src/components/styled/DefaultSubmitButton.tsx diff --git a/packages/odk-web-forms/src/components/styled/DefaultTextField.tsx b/packages/xforms-engine/src/components/styled/DefaultTextField.tsx similarity index 100% rename from packages/odk-web-forms/src/components/styled/DefaultTextField.tsx rename to packages/xforms-engine/src/components/styled/DefaultTextField.tsx diff --git a/packages/odk-web-forms/src/components/styled/DefaultTextFormControl.tsx b/packages/xforms-engine/src/components/styled/DefaultTextFormControl.tsx similarity index 100% rename from packages/odk-web-forms/src/components/styled/DefaultTextFormControl.tsx rename to packages/xforms-engine/src/components/styled/DefaultTextFormControl.tsx diff --git a/packages/odk-web-forms/src/components/styled/FormSubmitButton.tsx b/packages/xforms-engine/src/components/styled/FormSubmitButton.tsx similarity index 100% rename from packages/odk-web-forms/src/components/styled/FormSubmitButton.tsx rename to packages/xforms-engine/src/components/styled/FormSubmitButton.tsx diff --git a/packages/odk-web-forms/src/components/styled/NestedGroupBox.tsx b/packages/xforms-engine/src/components/styled/NestedGroupBox.tsx similarity index 100% rename from packages/odk-web-forms/src/components/styled/NestedGroupBox.tsx rename to packages/xforms-engine/src/components/styled/NestedGroupBox.tsx diff --git a/packages/odk-web-forms/src/components/styled/PageContainer.tsx b/packages/xforms-engine/src/components/styled/PageContainer.tsx similarity index 100% rename from packages/odk-web-forms/src/components/styled/PageContainer.tsx rename to packages/xforms-engine/src/components/styled/PageContainer.tsx diff --git a/packages/odk-web-forms/src/components/styled/PageMenuButton.tsx b/packages/xforms-engine/src/components/styled/PageMenuButton.tsx similarity index 100% rename from packages/odk-web-forms/src/components/styled/PageMenuButton.tsx rename to packages/xforms-engine/src/components/styled/PageMenuButton.tsx diff --git a/packages/odk-web-forms/src/components/styled/PlainTextButton.tsx b/packages/xforms-engine/src/components/styled/PlainTextButton.tsx similarity index 100% rename from packages/odk-web-forms/src/components/styled/PlainTextButton.tsx rename to packages/xforms-engine/src/components/styled/PlainTextButton.tsx diff --git a/packages/odk-web-forms/src/components/styled/SecondaryParagraph.tsx b/packages/xforms-engine/src/components/styled/SecondaryParagraph.tsx similarity index 100% rename from packages/odk-web-forms/src/components/styled/SecondaryParagraph.tsx rename to packages/xforms-engine/src/components/styled/SecondaryParagraph.tsx diff --git a/packages/odk-web-forms/src/components/styled/ThemeColorOutlineButton.tsx b/packages/xforms-engine/src/components/styled/ThemeColorOutlineButton.tsx similarity index 100% rename from packages/odk-web-forms/src/components/styled/ThemeColorOutlineButton.tsx rename to packages/xforms-engine/src/components/styled/ThemeColorOutlineButton.tsx diff --git a/packages/odk-web-forms/src/components/styled/TopLevelRepeatInstance.tsx b/packages/xforms-engine/src/components/styled/TopLevelRepeatInstance.tsx similarity index 100% rename from packages/odk-web-forms/src/components/styled/TopLevelRepeatInstance.tsx rename to packages/xforms-engine/src/components/styled/TopLevelRepeatInstance.tsx diff --git a/packages/odk-web-forms/src/index.tsx b/packages/xforms-engine/src/index.tsx similarity index 100% rename from packages/odk-web-forms/src/index.tsx rename to packages/xforms-engine/src/index.tsx diff --git a/packages/odk-web-forms/src/lib/i18n-l10n/types.ts b/packages/xforms-engine/src/lib/i18n-l10n/types.ts similarity index 100% rename from packages/odk-web-forms/src/lib/i18n-l10n/types.ts rename to packages/xforms-engine/src/lib/i18n-l10n/types.ts diff --git a/packages/odk-web-forms/src/lib/reactivity/primitives/createLatest.ts b/packages/xforms-engine/src/lib/reactivity/primitives/createLatest.ts similarity index 100% rename from packages/odk-web-forms/src/lib/reactivity/primitives/createLatest.ts rename to packages/xforms-engine/src/lib/reactivity/primitives/createLatest.ts diff --git a/packages/odk-web-forms/src/lib/reactivity/primitives/uninitialized.ts b/packages/xforms-engine/src/lib/reactivity/primitives/uninitialized.ts similarity index 100% rename from packages/odk-web-forms/src/lib/reactivity/primitives/uninitialized.ts rename to packages/xforms-engine/src/lib/reactivity/primitives/uninitialized.ts diff --git a/packages/odk-web-forms/src/lib/xform/XFormDOM.test.ts b/packages/xforms-engine/src/lib/xform/XFormDOM.test.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/XFormDOM.test.ts rename to packages/xforms-engine/src/lib/xform/XFormDOM.test.ts diff --git a/packages/odk-web-forms/src/lib/xform/XFormDOM.ts b/packages/xforms-engine/src/lib/xform/XFormDOM.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/XFormDOM.ts rename to packages/xforms-engine/src/lib/xform/XFormDOM.ts diff --git a/packages/odk-web-forms/src/lib/xform/XFormDataType.ts b/packages/xforms-engine/src/lib/xform/XFormDataType.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/XFormDataType.ts rename to packages/xforms-engine/src/lib/xform/XFormDataType.ts diff --git a/packages/odk-web-forms/src/lib/xform/XFormDefinition.test.ts b/packages/xforms-engine/src/lib/xform/XFormDefinition.test.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/XFormDefinition.test.ts rename to packages/xforms-engine/src/lib/xform/XFormDefinition.test.ts diff --git a/packages/odk-web-forms/src/lib/xform/XFormDefinition.ts b/packages/xforms-engine/src/lib/xform/XFormDefinition.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/XFormDefinition.ts rename to packages/xforms-engine/src/lib/xform/XFormDefinition.ts diff --git a/packages/odk-web-forms/src/lib/xform/body/BodyDefinition.test.ts b/packages/xforms-engine/src/lib/xform/body/BodyDefinition.test.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/body/BodyDefinition.test.ts rename to packages/xforms-engine/src/lib/xform/body/BodyDefinition.test.ts diff --git a/packages/odk-web-forms/src/lib/xform/body/BodyDefinition.ts b/packages/xforms-engine/src/lib/xform/body/BodyDefinition.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/body/BodyDefinition.ts rename to packages/xforms-engine/src/lib/xform/body/BodyDefinition.ts diff --git a/packages/odk-web-forms/src/lib/xform/body/BodyElementDefinition.ts b/packages/xforms-engine/src/lib/xform/body/BodyElementDefinition.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/body/BodyElementDefinition.ts rename to packages/xforms-engine/src/lib/xform/body/BodyElementDefinition.ts diff --git a/packages/odk-web-forms/src/lib/xform/body/RepeatDefinition.ts b/packages/xforms-engine/src/lib/xform/body/RepeatDefinition.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/body/RepeatDefinition.ts rename to packages/xforms-engine/src/lib/xform/body/RepeatDefinition.ts diff --git a/packages/odk-web-forms/src/lib/xform/body/UnsupportedBodyElementDefinition.ts b/packages/xforms-engine/src/lib/xform/body/UnsupportedBodyElementDefinition.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/body/UnsupportedBodyElementDefinition.ts rename to packages/xforms-engine/src/lib/xform/body/UnsupportedBodyElementDefinition.ts diff --git a/packages/odk-web-forms/src/lib/xform/body/control/ControlDefinition.ts b/packages/xforms-engine/src/lib/xform/body/control/ControlDefinition.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/body/control/ControlDefinition.ts rename to packages/xforms-engine/src/lib/xform/body/control/ControlDefinition.ts diff --git a/packages/odk-web-forms/src/lib/xform/body/control/InputDefinition.ts b/packages/xforms-engine/src/lib/xform/body/control/InputDefinition.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/body/control/InputDefinition.ts rename to packages/xforms-engine/src/lib/xform/body/control/InputDefinition.ts diff --git a/packages/odk-web-forms/src/lib/xform/body/control/select/ItemDefinition.ts b/packages/xforms-engine/src/lib/xform/body/control/select/ItemDefinition.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/body/control/select/ItemDefinition.ts rename to packages/xforms-engine/src/lib/xform/body/control/select/ItemDefinition.ts diff --git a/packages/odk-web-forms/src/lib/xform/body/control/select/ItemsetDefinition.ts b/packages/xforms-engine/src/lib/xform/body/control/select/ItemsetDefinition.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/body/control/select/ItemsetDefinition.ts rename to packages/xforms-engine/src/lib/xform/body/control/select/ItemsetDefinition.ts diff --git a/packages/odk-web-forms/src/lib/xform/body/control/select/ItemsetNodesetContext.ts b/packages/xforms-engine/src/lib/xform/body/control/select/ItemsetNodesetContext.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/body/control/select/ItemsetNodesetContext.ts rename to packages/xforms-engine/src/lib/xform/body/control/select/ItemsetNodesetContext.ts diff --git a/packages/odk-web-forms/src/lib/xform/body/control/select/ItemsetNodesetExpression.ts b/packages/xforms-engine/src/lib/xform/body/control/select/ItemsetNodesetExpression.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/body/control/select/ItemsetNodesetExpression.ts rename to packages/xforms-engine/src/lib/xform/body/control/select/ItemsetNodesetExpression.ts diff --git a/packages/odk-web-forms/src/lib/xform/body/control/select/ItemsetValueExpression.ts b/packages/xforms-engine/src/lib/xform/body/control/select/ItemsetValueExpression.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/body/control/select/ItemsetValueExpression.ts rename to packages/xforms-engine/src/lib/xform/body/control/select/ItemsetValueExpression.ts diff --git a/packages/odk-web-forms/src/lib/xform/body/control/select/SelectDefinition.ts b/packages/xforms-engine/src/lib/xform/body/control/select/SelectDefinition.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/body/control/select/SelectDefinition.ts rename to packages/xforms-engine/src/lib/xform/body/control/select/SelectDefinition.ts diff --git a/packages/odk-web-forms/src/lib/xform/body/group/BaseGroupDefinition.ts b/packages/xforms-engine/src/lib/xform/body/group/BaseGroupDefinition.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/body/group/BaseGroupDefinition.ts rename to packages/xforms-engine/src/lib/xform/body/group/BaseGroupDefinition.ts diff --git a/packages/odk-web-forms/src/lib/xform/body/group/LogicalGroupDefinition.ts b/packages/xforms-engine/src/lib/xform/body/group/LogicalGroupDefinition.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/body/group/LogicalGroupDefinition.ts rename to packages/xforms-engine/src/lib/xform/body/group/LogicalGroupDefinition.ts diff --git a/packages/odk-web-forms/src/lib/xform/body/group/PresentationGroupDefinition.ts b/packages/xforms-engine/src/lib/xform/body/group/PresentationGroupDefinition.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/body/group/PresentationGroupDefinition.ts rename to packages/xforms-engine/src/lib/xform/body/group/PresentationGroupDefinition.ts diff --git a/packages/odk-web-forms/src/lib/xform/body/group/RepeatGroupDefinition.ts b/packages/xforms-engine/src/lib/xform/body/group/RepeatGroupDefinition.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/body/group/RepeatGroupDefinition.ts rename to packages/xforms-engine/src/lib/xform/body/group/RepeatGroupDefinition.ts diff --git a/packages/odk-web-forms/src/lib/xform/body/group/StructuralGroupDefinition.ts b/packages/xforms-engine/src/lib/xform/body/group/StructuralGroupDefinition.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/body/group/StructuralGroupDefinition.ts rename to packages/xforms-engine/src/lib/xform/body/group/StructuralGroupDefinition.ts diff --git a/packages/odk-web-forms/src/lib/xform/body/text/HintDefinition.ts b/packages/xforms-engine/src/lib/xform/body/text/HintDefinition.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/body/text/HintDefinition.ts rename to packages/xforms-engine/src/lib/xform/body/text/HintDefinition.ts diff --git a/packages/odk-web-forms/src/lib/xform/body/text/LabelDefinition.ts b/packages/xforms-engine/src/lib/xform/body/text/LabelDefinition.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/body/text/LabelDefinition.ts rename to packages/xforms-engine/src/lib/xform/body/text/LabelDefinition.ts diff --git a/packages/odk-web-forms/src/lib/xform/body/text/TextElementDefinition.ts b/packages/xforms-engine/src/lib/xform/body/text/TextElementDefinition.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/body/text/TextElementDefinition.ts rename to packages/xforms-engine/src/lib/xform/body/text/TextElementDefinition.ts diff --git a/packages/odk-web-forms/src/lib/xform/body/text/TextElementOutputPart.ts b/packages/xforms-engine/src/lib/xform/body/text/TextElementOutputPart.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/body/text/TextElementOutputPart.ts rename to packages/xforms-engine/src/lib/xform/body/text/TextElementOutputPart.ts diff --git a/packages/odk-web-forms/src/lib/xform/body/text/TextElementPart.ts b/packages/xforms-engine/src/lib/xform/body/text/TextElementPart.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/body/text/TextElementPart.ts rename to packages/xforms-engine/src/lib/xform/body/text/TextElementPart.ts diff --git a/packages/odk-web-forms/src/lib/xform/body/text/TextElementReferencePart.ts b/packages/xforms-engine/src/lib/xform/body/text/TextElementReferencePart.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/body/text/TextElementReferencePart.ts rename to packages/xforms-engine/src/lib/xform/body/text/TextElementReferencePart.ts diff --git a/packages/odk-web-forms/src/lib/xform/body/text/TextElementStaticPart.ts b/packages/xforms-engine/src/lib/xform/body/text/TextElementStaticPart.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/body/text/TextElementStaticPart.ts rename to packages/xforms-engine/src/lib/xform/body/text/TextElementStaticPart.ts diff --git a/packages/odk-web-forms/src/lib/xform/expression/DependencyContext.ts b/packages/xforms-engine/src/lib/xform/expression/DependencyContext.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/expression/DependencyContext.ts rename to packages/xforms-engine/src/lib/xform/expression/DependencyContext.ts diff --git a/packages/odk-web-forms/src/lib/xform/expression/DependentExpression.ts b/packages/xforms-engine/src/lib/xform/expression/DependentExpression.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/expression/DependentExpression.ts rename to packages/xforms-engine/src/lib/xform/expression/DependentExpression.ts diff --git a/packages/odk-web-forms/src/lib/xform/model/BindComputation.ts b/packages/xforms-engine/src/lib/xform/model/BindComputation.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/model/BindComputation.ts rename to packages/xforms-engine/src/lib/xform/model/BindComputation.ts diff --git a/packages/odk-web-forms/src/lib/xform/model/BindDefinition.test.ts b/packages/xforms-engine/src/lib/xform/model/BindDefinition.test.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/model/BindDefinition.test.ts rename to packages/xforms-engine/src/lib/xform/model/BindDefinition.test.ts diff --git a/packages/odk-web-forms/src/lib/xform/model/BindDefinition.ts b/packages/xforms-engine/src/lib/xform/model/BindDefinition.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/model/BindDefinition.ts rename to packages/xforms-engine/src/lib/xform/model/BindDefinition.ts diff --git a/packages/odk-web-forms/src/lib/xform/model/BindElement.ts b/packages/xforms-engine/src/lib/xform/model/BindElement.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/model/BindElement.ts rename to packages/xforms-engine/src/lib/xform/model/BindElement.ts diff --git a/packages/odk-web-forms/src/lib/xform/model/DescendentNodeDefinition.ts b/packages/xforms-engine/src/lib/xform/model/DescendentNodeDefinition.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/model/DescendentNodeDefinition.ts rename to packages/xforms-engine/src/lib/xform/model/DescendentNodeDefinition.ts diff --git a/packages/odk-web-forms/src/lib/xform/model/ModelBindMap.test.ts b/packages/xforms-engine/src/lib/xform/model/ModelBindMap.test.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/model/ModelBindMap.test.ts rename to packages/xforms-engine/src/lib/xform/model/ModelBindMap.test.ts diff --git a/packages/odk-web-forms/src/lib/xform/model/ModelBindMap.ts b/packages/xforms-engine/src/lib/xform/model/ModelBindMap.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/model/ModelBindMap.ts rename to packages/xforms-engine/src/lib/xform/model/ModelBindMap.ts diff --git a/packages/odk-web-forms/src/lib/xform/model/ModelDefinition.test.ts b/packages/xforms-engine/src/lib/xform/model/ModelDefinition.test.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/model/ModelDefinition.test.ts rename to packages/xforms-engine/src/lib/xform/model/ModelDefinition.test.ts diff --git a/packages/odk-web-forms/src/lib/xform/model/ModelDefinition.ts b/packages/xforms-engine/src/lib/xform/model/ModelDefinition.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/model/ModelDefinition.ts rename to packages/xforms-engine/src/lib/xform/model/ModelDefinition.ts diff --git a/packages/odk-web-forms/src/lib/xform/model/NodeDefinition.ts b/packages/xforms-engine/src/lib/xform/model/NodeDefinition.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/model/NodeDefinition.ts rename to packages/xforms-engine/src/lib/xform/model/NodeDefinition.ts diff --git a/packages/odk-web-forms/src/lib/xform/model/RepeatInstanceDefinition.ts b/packages/xforms-engine/src/lib/xform/model/RepeatInstanceDefinition.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/model/RepeatInstanceDefinition.ts rename to packages/xforms-engine/src/lib/xform/model/RepeatInstanceDefinition.ts diff --git a/packages/odk-web-forms/src/lib/xform/model/RepeatSequenceDefinition.ts b/packages/xforms-engine/src/lib/xform/model/RepeatSequenceDefinition.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/model/RepeatSequenceDefinition.ts rename to packages/xforms-engine/src/lib/xform/model/RepeatSequenceDefinition.ts diff --git a/packages/odk-web-forms/src/lib/xform/model/RepeatTemplateDefinition.ts b/packages/xforms-engine/src/lib/xform/model/RepeatTemplateDefinition.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/model/RepeatTemplateDefinition.ts rename to packages/xforms-engine/src/lib/xform/model/RepeatTemplateDefinition.ts diff --git a/packages/odk-web-forms/src/lib/xform/model/RootDefinition.ts b/packages/xforms-engine/src/lib/xform/model/RootDefinition.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/model/RootDefinition.ts rename to packages/xforms-engine/src/lib/xform/model/RootDefinition.ts diff --git a/packages/odk-web-forms/src/lib/xform/model/SubtreeDefinition.ts b/packages/xforms-engine/src/lib/xform/model/SubtreeDefinition.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/model/SubtreeDefinition.ts rename to packages/xforms-engine/src/lib/xform/model/SubtreeDefinition.ts diff --git a/packages/odk-web-forms/src/lib/xform/model/ValueNodeDefinition.ts b/packages/xforms-engine/src/lib/xform/model/ValueNodeDefinition.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/model/ValueNodeDefinition.ts rename to packages/xforms-engine/src/lib/xform/model/ValueNodeDefinition.ts diff --git a/packages/odk-web-forms/src/lib/xform/query.ts b/packages/xforms-engine/src/lib/xform/query.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/query.ts rename to packages/xforms-engine/src/lib/xform/query.ts diff --git a/packages/odk-web-forms/src/lib/xform/state/DescendantNodeState.ts b/packages/xforms-engine/src/lib/xform/state/DescendantNodeState.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/state/DescendantNodeState.ts rename to packages/xforms-engine/src/lib/xform/state/DescendantNodeState.ts diff --git a/packages/odk-web-forms/src/lib/xform/state/EntryState.test.ts b/packages/xforms-engine/src/lib/xform/state/EntryState.test.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/state/EntryState.test.ts rename to packages/xforms-engine/src/lib/xform/state/EntryState.test.ts diff --git a/packages/odk-web-forms/src/lib/xform/state/EntryState.ts b/packages/xforms-engine/src/lib/xform/state/EntryState.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/state/EntryState.ts rename to packages/xforms-engine/src/lib/xform/state/EntryState.ts diff --git a/packages/odk-web-forms/src/lib/xform/state/NodeState.ts b/packages/xforms-engine/src/lib/xform/state/NodeState.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/state/NodeState.ts rename to packages/xforms-engine/src/lib/xform/state/NodeState.ts diff --git a/packages/odk-web-forms/src/lib/xform/state/NodeStateValidity.ts b/packages/xforms-engine/src/lib/xform/state/NodeStateValidity.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/state/NodeStateValidity.ts rename to packages/xforms-engine/src/lib/xform/state/NodeStateValidity.ts diff --git a/packages/odk-web-forms/src/lib/xform/state/RepeatInstanceState.ts b/packages/xforms-engine/src/lib/xform/state/RepeatInstanceState.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/state/RepeatInstanceState.ts rename to packages/xforms-engine/src/lib/xform/state/RepeatInstanceState.ts diff --git a/packages/odk-web-forms/src/lib/xform/state/RepeatSequenceState.ts b/packages/xforms-engine/src/lib/xform/state/RepeatSequenceState.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/state/RepeatSequenceState.ts rename to packages/xforms-engine/src/lib/xform/state/RepeatSequenceState.ts diff --git a/packages/odk-web-forms/src/lib/xform/state/SubtreeState.ts b/packages/xforms-engine/src/lib/xform/state/SubtreeState.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/state/SubtreeState.ts rename to packages/xforms-engine/src/lib/xform/state/SubtreeState.ts diff --git a/packages/odk-web-forms/src/lib/xform/state/TranslationState.ts b/packages/xforms-engine/src/lib/xform/state/TranslationState.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/state/TranslationState.ts rename to packages/xforms-engine/src/lib/xform/state/TranslationState.ts diff --git a/packages/odk-web-forms/src/lib/xform/state/ValueNodeState.ts b/packages/xforms-engine/src/lib/xform/state/ValueNodeState.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/state/ValueNodeState.ts rename to packages/xforms-engine/src/lib/xform/state/ValueNodeState.ts diff --git a/packages/odk-web-forms/src/lib/xform/state/select/SelectState.ts b/packages/xforms-engine/src/lib/xform/state/select/SelectState.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/state/select/SelectState.ts rename to packages/xforms-engine/src/lib/xform/state/select/SelectState.ts diff --git a/packages/odk-web-forms/src/lib/xform/state/select/SelectStateItem.ts b/packages/xforms-engine/src/lib/xform/state/select/SelectStateItem.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xform/state/select/SelectStateItem.ts rename to packages/xforms-engine/src/lib/xform/state/select/SelectStateItem.ts diff --git a/packages/odk-web-forms/src/lib/xpath/analysis.test.ts b/packages/xforms-engine/src/lib/xpath/analysis.test.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xpath/analysis.test.ts rename to packages/xforms-engine/src/lib/xpath/analysis.test.ts diff --git a/packages/odk-web-forms/src/lib/xpath/analysis.ts b/packages/xforms-engine/src/lib/xpath/analysis.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xpath/analysis.ts rename to packages/xforms-engine/src/lib/xpath/analysis.ts diff --git a/packages/odk-web-forms/src/lib/xpath/evaluator.ts b/packages/xforms-engine/src/lib/xpath/evaluator.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xpath/evaluator.ts rename to packages/xforms-engine/src/lib/xpath/evaluator.ts diff --git a/packages/odk-web-forms/src/lib/xpath/parser.ts b/packages/xforms-engine/src/lib/xpath/parser.ts similarity index 100% rename from packages/odk-web-forms/src/lib/xpath/parser.ts rename to packages/xforms-engine/src/lib/xpath/parser.ts diff --git a/packages/odk-web-forms/src/test/fixtures/xform-dsl/BindBuilderXFormsElement.ts b/packages/xforms-engine/src/test/fixtures/xform-dsl/BindBuilderXFormsElement.ts similarity index 100% rename from packages/odk-web-forms/src/test/fixtures/xform-dsl/BindBuilderXFormsElement.ts rename to packages/xforms-engine/src/test/fixtures/xform-dsl/BindBuilderXFormsElement.ts diff --git a/packages/odk-web-forms/src/test/fixtures/xform-dsl/BodyXFormsElement.ts b/packages/xforms-engine/src/test/fixtures/xform-dsl/BodyXFormsElement.ts similarity index 100% rename from packages/odk-web-forms/src/test/fixtures/xform-dsl/BodyXFormsElement.ts rename to packages/xforms-engine/src/test/fixtures/xform-dsl/BodyXFormsElement.ts diff --git a/packages/odk-web-forms/src/test/fixtures/xform-dsl/EmptyXFormsElement.ts b/packages/xforms-engine/src/test/fixtures/xform-dsl/EmptyXFormsElement.ts similarity index 100% rename from packages/odk-web-forms/src/test/fixtures/xform-dsl/EmptyXFormsElement.ts rename to packages/xforms-engine/src/test/fixtures/xform-dsl/EmptyXFormsElement.ts diff --git a/packages/odk-web-forms/src/test/fixtures/xform-dsl/HeadXFormsElement.ts b/packages/xforms-engine/src/test/fixtures/xform-dsl/HeadXFormsElement.ts similarity index 100% rename from packages/odk-web-forms/src/test/fixtures/xform-dsl/HeadXFormsElement.ts rename to packages/xforms-engine/src/test/fixtures/xform-dsl/HeadXFormsElement.ts diff --git a/packages/odk-web-forms/src/test/fixtures/xform-dsl/HtmlXFormsElement.ts b/packages/xforms-engine/src/test/fixtures/xform-dsl/HtmlXFormsElement.ts similarity index 100% rename from packages/odk-web-forms/src/test/fixtures/xform-dsl/HtmlXFormsElement.ts rename to packages/xforms-engine/src/test/fixtures/xform-dsl/HtmlXFormsElement.ts diff --git a/packages/odk-web-forms/src/test/fixtures/xform-dsl/README.md b/packages/xforms-engine/src/test/fixtures/xform-dsl/README.md similarity index 100% rename from packages/odk-web-forms/src/test/fixtures/xform-dsl/README.md rename to packages/xforms-engine/src/test/fixtures/xform-dsl/README.md diff --git a/packages/odk-web-forms/src/test/fixtures/xform-dsl/StringLiteralXFormsElement.ts b/packages/xforms-engine/src/test/fixtures/xform-dsl/StringLiteralXFormsElement.ts similarity index 100% rename from packages/odk-web-forms/src/test/fixtures/xform-dsl/StringLiteralXFormsElement.ts rename to packages/xforms-engine/src/test/fixtures/xform-dsl/StringLiteralXFormsElement.ts diff --git a/packages/odk-web-forms/src/test/fixtures/xform-dsl/TagXFormsElement.ts b/packages/xforms-engine/src/test/fixtures/xform-dsl/TagXFormsElement.ts similarity index 100% rename from packages/odk-web-forms/src/test/fixtures/xform-dsl/TagXFormsElement.ts rename to packages/xforms-engine/src/test/fixtures/xform-dsl/TagXFormsElement.ts diff --git a/packages/odk-web-forms/src/test/fixtures/xform-dsl/XFormsElement.ts b/packages/xforms-engine/src/test/fixtures/xform-dsl/XFormsElement.ts similarity index 100% rename from packages/odk-web-forms/src/test/fixtures/xform-dsl/XFormsElement.ts rename to packages/xforms-engine/src/test/fixtures/xform-dsl/XFormsElement.ts diff --git a/packages/odk-web-forms/src/test/fixtures/xform-dsl/collections.ts b/packages/xforms-engine/src/test/fixtures/xform-dsl/collections.ts similarity index 100% rename from packages/odk-web-forms/src/test/fixtures/xform-dsl/collections.ts rename to packages/xforms-engine/src/test/fixtures/xform-dsl/collections.ts diff --git a/packages/odk-web-forms/src/test/fixtures/xform-dsl/index.ts b/packages/xforms-engine/src/test/fixtures/xform-dsl/index.ts similarity index 100% rename from packages/odk-web-forms/src/test/fixtures/xform-dsl/index.ts rename to packages/xforms-engine/src/test/fixtures/xform-dsl/index.ts diff --git a/packages/odk-web-forms/src/test/fixtures/xform-dsl/shared.ts b/packages/xforms-engine/src/test/fixtures/xform-dsl/shared.ts similarity index 100% rename from packages/odk-web-forms/src/test/fixtures/xform-dsl/shared.ts rename to packages/xforms-engine/src/test/fixtures/xform-dsl/shared.ts diff --git a/packages/odk-web-forms/src/test/jr/repeat.test.ts b/packages/xforms-engine/src/test/jr/repeat.test.ts similarity index 100% rename from packages/odk-web-forms/src/test/jr/repeat.test.ts rename to packages/xforms-engine/src/test/jr/repeat.test.ts diff --git a/packages/odk-web-forms/src/test/scenario/Scenario.ts b/packages/xforms-engine/src/test/scenario/Scenario.ts similarity index 100% rename from packages/odk-web-forms/src/test/scenario/Scenario.ts rename to packages/xforms-engine/src/test/scenario/Scenario.ts diff --git a/packages/odk-web-forms/src/test/scenario/assert.ts b/packages/xforms-engine/src/test/scenario/assert.ts similarity index 100% rename from packages/odk-web-forms/src/test/scenario/assert.ts rename to packages/xforms-engine/src/test/scenario/assert.ts diff --git a/packages/odk-web-forms/src/test/scenario/cast.ts b/packages/xforms-engine/src/test/scenario/cast.ts similarity index 100% rename from packages/odk-web-forms/src/test/scenario/cast.ts rename to packages/xforms-engine/src/test/scenario/cast.ts diff --git a/packages/odk-web-forms/src/test/view/translations.test.tsx b/packages/xforms-engine/src/test/view/translations.test.tsx similarity index 100% rename from packages/odk-web-forms/src/test/view/translations.test.tsx rename to packages/xforms-engine/src/test/view/translations.test.tsx diff --git a/packages/odk-web-forms/tools/@solidjs/testing-library/index.ts b/packages/xforms-engine/tools/@solidjs/testing-library/index.ts similarity index 100% rename from packages/odk-web-forms/tools/@solidjs/testing-library/index.ts rename to packages/xforms-engine/tools/@solidjs/testing-library/index.ts diff --git a/packages/odk-web-forms/tools/@solidjs/testing-library/types.ts b/packages/xforms-engine/tools/@solidjs/testing-library/types.ts similarity index 100% rename from packages/odk-web-forms/tools/@solidjs/testing-library/types.ts rename to packages/xforms-engine/tools/@solidjs/testing-library/types.ts diff --git a/packages/odk-web-forms/tools/vite/solid-vitest-no-node-loader.ts b/packages/xforms-engine/tools/vite/solid-vitest-no-node-loader.ts similarity index 100% rename from packages/odk-web-forms/tools/vite/solid-vitest-no-node-loader.ts rename to packages/xforms-engine/tools/vite/solid-vitest-no-node-loader.ts diff --git a/packages/odk-web-forms/tools/vite/vitest-setup.ts b/packages/xforms-engine/tools/vite/vitest-setup.ts similarity index 100% rename from packages/odk-web-forms/tools/vite/vitest-setup.ts rename to packages/xforms-engine/tools/vite/vitest-setup.ts diff --git a/packages/odk-web-forms/tsconfig.json b/packages/xforms-engine/tsconfig.json similarity index 100% rename from packages/odk-web-forms/tsconfig.json rename to packages/xforms-engine/tsconfig.json diff --git a/packages/odk-web-forms/vite-env.d.ts b/packages/xforms-engine/vite-env.d.ts similarity index 100% rename from packages/odk-web-forms/vite-env.d.ts rename to packages/xforms-engine/vite-env.d.ts diff --git a/packages/odk-web-forms/vite.config.ts b/packages/xforms-engine/vite.config.ts similarity index 100% rename from packages/odk-web-forms/vite.config.ts rename to packages/xforms-engine/vite.config.ts diff --git a/packages/xpath/README.md b/packages/xpath/README.md index 12e707ddc..33a064985 100644 --- a/packages/xpath/README.md +++ b/packages/xpath/README.md @@ -22,7 +22,7 @@ npm install @odk-web-forms/tree-sitter-xpath @odk-web-forms/xpath web-tree-sitte The `@odk-web-forms/xpath` package depends on the `web-tree-sitter` and `@odk-web-forms/tree-sitter-xpath` libraries. Both provide WASM resources which must be accessible to initialize parsing in this libary. We intend to make setting it all up as easy as possible, and document it thoroughly. That effort is a work in progress, pending our own experience using this library internally. We'll update this space as that effort progresses. -A solution which is working so far, both in the @odk-web-forms/xpath test suite and downstream within the odk-web-forms monorepo: +A solution which is working so far, both in the @odk-web-forms/xpath test suite and downstream within the ODK web-forms monorepo: ```ts import xpathLanguage from '@odk-web-forms/tree-sitter-xpath/tree-sitter-xpath.wasm?url'; diff --git a/packages/xpath/src/static/grammar/TreeSitterXPathParser.ts b/packages/xpath/src/static/grammar/TreeSitterXPathParser.ts index 7afb86699..ac570cfa3 100644 --- a/packages/xpath/src/static/grammar/TreeSitterXPathParser.ts +++ b/packages/xpath/src/static/grammar/TreeSitterXPathParser.ts @@ -148,10 +148,10 @@ interface WebTreeSitterInitOptions { * its returned Promise, likely use cases (such as our own) will need to * perform this async initialization upfront before (otherwise synchronous) * XPath evaluation may proceed. This is more or less a solved problem for - * e.g. @odk/web-forms, which uses ESM in environments supporting top-level - * `await`. But it will require extra consideration in environments which - * currently initialize synchronously (such as enketo-core, should we want to - * adopt this evaluator there). + * e.g. @odk-web-forms/xforms-engine, which uses ESM in environments + * supporting top-level `await`. But it will require extra consideration in + * environments which currently initialize synchronously (such as + * enketo-core, should we want to adopt this evaluator there). */ export class TreeSitterXPathParser { static async init(resources: WebAssemblyResourceSpecifiers = {}): Promise { diff --git a/turbo.json b/turbo.json index e37a3ba51..a9b8260ae 100644 --- a/turbo.json +++ b/turbo.json @@ -15,12 +15,12 @@ "suid#build": { "outputMode": "new-only" }, - "@odk/web-forms#build": { + "@odk-web-forms/xforms-engine#build": { "dependsOn": ["suid#build", "@odk-web-forms/xpath#build"], "outputs": ["dist/**"] }, "@odk-web-forms/ui-vue#build": { - "dependsOn": ["@odk-web-forms/xpath#build"], + "dependsOn": ["@odk-web-forms/xforms-engine#build"], "outputs": ["dist/**"] }, "test": { From 9d12b8fa4be7b3154b3f0018ef380104a68fed76 Mon Sep 17 00:00:00 2001 From: eyelidlessness Date: Sat, 9 Mar 2024 10:37:40 -0800 Subject: [PATCH 05/14] Temp: move shared engine/solid vite config --- eslint.config.js | 1 + packages/xforms-engine/package.json | 20 +++++++++---------- ...s => vite.engine-solid-combined.config.ts} | 0 tsconfig.tools.json | 1 + 4 files changed, 12 insertions(+), 10 deletions(-) rename packages/xforms-engine/{vite.config.ts => vite.engine-solid-combined.config.ts} (100%) diff --git a/eslint.config.js b/eslint.config.js index b37fd746c..38e011106 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -396,6 +396,7 @@ export default tseslint.config( 'packages/*/playwright.config.ts', 'packages/*/vite.config.ts', 'packages/*/vitest.config.ts', + 'packages/xforms-engine/vite.*.config.ts', 'packages/*/tools/**/*', 'vendor-packages/*/vite.config.ts', diff --git a/packages/xforms-engine/package.json b/packages/xforms-engine/package.json index d76465fff..b15a48ac2 100644 --- a/packages/xforms-engine/package.json +++ b/packages/xforms-engine/package.json @@ -30,18 +30,18 @@ "scripts": { "build": "npm-run-all -nl build:*", "build:clean": "rimraf dist/", - "build:js": "vite build", - "dev": "vite", + "build:js": "vite --config vite.engine-solid-combined.config.ts build", + "dev": "vite --config vite.engine-solid-combined.config.ts", "test": "npm-run-all -nl test:*", "test:e2e": "playwright test", - "test-node:jsdom": "vitest run", - "test-browser:chromium": "BROWSER_NAME=chromium vitest run", - "test-browser:firefox": "BROWSER_NAME=firefox vitest run", - "test-browser:webkit": "BROWSER_NAME=webkit vitest run", - "test-watch:jsdom": "vitest", - "test-watch:chromium": "BROWSER_NAME=chromium vitest", - "test-watch:firefox": "BROWSER_NAME=firefox vitest", - "test-watch:webkit": "BROWSER_NAME=webkit vitest", + "test-node:jsdom": "vitest --config vite.engine-solid-combined.config.ts run", + "test-browser:chromium": "BROWSER_NAME=chromium vitest --config vite.engine-solid-combined.config.ts run", + "test-browser:firefox": "BROWSER_NAME=firefox vitest --config vite.engine-solid-combined.config.ts run", + "test-browser:webkit": "BROWSER_NAME=webkit vitest --config vite.engine-solid-combined.config.ts run", + "test-watch:jsdom": "vitest --config vite.engine-solid-combined.config.ts", + "test-watch:chromium": "BROWSER_NAME=chromium vitest --config vite.engine-solid-combined.config.ts", + "test-watch:firefox": "BROWSER_NAME=firefox vitest --config vite.engine-solid-combined.config.ts", + "test-watch:webkit": "BROWSER_NAME=webkit vitest --config vite.engine-solid-combined.config.ts", "test:types": "tsc --project ./tsconfig.json --emitDeclarationOnly false --noEmit" }, "dependencies": { diff --git a/packages/xforms-engine/vite.config.ts b/packages/xforms-engine/vite.engine-solid-combined.config.ts similarity index 100% rename from packages/xforms-engine/vite.config.ts rename to packages/xforms-engine/vite.engine-solid-combined.config.ts diff --git a/tsconfig.tools.json b/tsconfig.tools.json index e8a46250c..4c05a7248 100644 --- a/tsconfig.tools.json +++ b/tsconfig.tools.json @@ -11,6 +11,7 @@ "packages/*/playwright.config.ts", "packages/*/vite.config.ts", "packages/*/vitest.config.ts", + "packages/xforms-engine/vite.*.config.ts", "vendor-packages/*/vite.config.ts" ], "compilerOptions": { From adc273d11be11403229dc4a9713e8897802df0d0 Mon Sep 17 00:00:00 2001 From: eyelidlessness Date: Sat, 9 Mar 2024 13:35:31 -0800 Subject: [PATCH 06/14] @odk-web-forms/xforms-engine: plausible first go at isolating test/build to the engine aspects --- packages/xforms-engine/index.d.ts | 1 - packages/xforms-engine/package.json | 27 +++-- packages/xforms-engine/src/lib/index.ts | 2 + packages/xforms-engine/vite.config.ts | 127 ++++++++++++++++++++++++ 4 files changed, 142 insertions(+), 15 deletions(-) delete mode 100644 packages/xforms-engine/index.d.ts create mode 100644 packages/xforms-engine/src/lib/index.ts create mode 100644 packages/xforms-engine/vite.config.ts diff --git a/packages/xforms-engine/index.d.ts b/packages/xforms-engine/index.d.ts deleted file mode 100644 index 2b8395cdb..000000000 --- a/packages/xforms-engine/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './dist/index.js'; diff --git a/packages/xforms-engine/package.json b/packages/xforms-engine/package.json index b15a48ac2..7673e30b0 100644 --- a/packages/xforms-engine/package.json +++ b/packages/xforms-engine/package.json @@ -11,16 +11,15 @@ }, "bugs": "https://github.com/getodk/web-forms/issues", "homepage": "https://getodk.org/", - "types": "./index.d.ts", + "types": "./dist/lib/index.d.ts", "exports": { ".": { - "types": "./index.d.ts", - "default": "./dist/index.js" + "types": "./dist/lib/index.d.ts", + "default": "./dist/lib/index.js" } }, "files": [ "dist", - "index.d.ts", "README.md" ], "engines": { @@ -30,18 +29,18 @@ "scripts": { "build": "npm-run-all -nl build:*", "build:clean": "rimraf dist/", - "build:js": "vite --config vite.engine-solid-combined.config.ts build", - "dev": "vite --config vite.engine-solid-combined.config.ts", + "build:js": "vite build", + "dev": "vite", "test": "npm-run-all -nl test:*", "test:e2e": "playwright test", - "test-node:jsdom": "vitest --config vite.engine-solid-combined.config.ts run", - "test-browser:chromium": "BROWSER_NAME=chromium vitest --config vite.engine-solid-combined.config.ts run", - "test-browser:firefox": "BROWSER_NAME=firefox vitest --config vite.engine-solid-combined.config.ts run", - "test-browser:webkit": "BROWSER_NAME=webkit vitest --config vite.engine-solid-combined.config.ts run", - "test-watch:jsdom": "vitest --config vite.engine-solid-combined.config.ts", - "test-watch:chromium": "BROWSER_NAME=chromium vitest --config vite.engine-solid-combined.config.ts", - "test-watch:firefox": "BROWSER_NAME=firefox vitest --config vite.engine-solid-combined.config.ts", - "test-watch:webkit": "BROWSER_NAME=webkit vitest --config vite.engine-solid-combined.config.ts", + "test-node:jsdom": "vitest run", + "test-browser:chromium": "BROWSER_NAME=chromium vitest run", + "test-browser:firefox": "BROWSER_NAME=firefox vitest run", + "test-browser:webkit": "BROWSER_NAME=webkit vitest run", + "test-watch:jsdom": "vitest", + "test-watch:chromium": "BROWSER_NAME=chromium vitest", + "test-watch:firefox": "BROWSER_NAME=firefox vitest", + "test-watch:webkit": "BROWSER_NAME=webkit vitest", "test:types": "tsc --project ./tsconfig.json --emitDeclarationOnly false --noEmit" }, "dependencies": { diff --git a/packages/xforms-engine/src/lib/index.ts b/packages/xforms-engine/src/lib/index.ts new file mode 100644 index 000000000..d56383794 --- /dev/null +++ b/packages/xforms-engine/src/lib/index.ts @@ -0,0 +1,2 @@ +export { XFormDefinition } from './xform/XFormDefinition.ts'; +export { EntryState } from './xform/state/EntryState.ts'; diff --git a/packages/xforms-engine/vite.config.ts b/packages/xforms-engine/vite.config.ts new file mode 100644 index 000000000..a4b6972f3 --- /dev/null +++ b/packages/xforms-engine/vite.config.ts @@ -0,0 +1,127 @@ +/// + +import type { CollectionValues } from '@odk-web-forms/common/types/collections/CollectionValues'; +import { resolve as resolvePath } from 'node:path'; +import type { UserConfig } from 'vite'; +import { defineConfig } from 'vite'; +import dts from 'vite-plugin-dts'; +import GithubActionsReporter from 'vitest-github-actions-reporter'; +import type { UserConfig as VitestConfig } from 'vitest/config'; + +// TODO: this will hopefully be unnecessary when we update Vite/Vitest. +interface ViteConfig extends UserConfig, Pick {} + +const supportedBrowsers = new Set(['chromium', 'firefox', 'webkit'] as const); + +type SupportedBrowser = CollectionValues; + +const isSupportedBrowser = (browserName: string): browserName is SupportedBrowser => + supportedBrowsers.has(browserName as SupportedBrowser); + +const BROWSER_NAME = (() => { + const envBrowserName = process.env.BROWSER_NAME; + + if (envBrowserName == null) { + return null; + } + + if (isSupportedBrowser(envBrowserName)) { + return envBrowserName; + } + + throw new Error(`Unsupported browser: ${envBrowserName}`); +})(); + +const BROWSER_ENABLED = BROWSER_NAME != null; + +const TEST_ENVIRONMENT = BROWSER_ENABLED ? 'node' : 'jsdom'; + +export default defineConfig(({ mode }) => { + const isTest = mode === 'test'; + const entries = ['./src/lib/index.ts']; + + // Mapping entry names with path-based keys gives a more predictable output + // which we control at the filesystem level, so the exports in package.json + // are stable along with their paths and this config. + const libEntry = Object.fromEntries( + entries.map((entry) => [entry.replaceAll(/^\.\/src\/|\.ts$/g, ''), entry]) + ); + + return { + build: { + target: 'esnext', + minify: false, + sourcemap: true, + emptyOutDir: false, + outDir: './dist', + manifest: true, + lib: { + entry: libEntry, + formats: ['es'], + name: '@odk-web-forms/xforms-engine', + }, + }, + + esbuild: { + sourcemap: true, + target: 'esnext', + format: 'esm', + }, + + optimizeDeps: { + entries, + force: true, + include: BROWSER_ENABLED + ? [ + // For reasons that aren't yet clear, these need to be present for + // WebKit tests. Without either, there are weird import errors that + // prevent at least one of the test modules from running. + '@odk-web-forms/xpath', + '@odk-web-forms/xpath/static/grammar/ExpressionParser.js', + + // This is necessary for the current versions of Vite and Vitest. It + // will almost certainly need to be removed when we upgrade. (Same + // goes for its presence in other packages' Vite configs.) + 'loupe', + ] + : [], + }, + + plugins: [ + // Generate type definitions. This is somehow more reliable than directly + // calling tsc + dts({ + entryRoot: './src', + exclude: ['test', 'vite-env.d.ts'], + include: ['src/lib/**/*.ts'], + }), + ], + + resolve: { + alias: { + '@odk-web-forms/common/types': resolvePath(__dirname, '../common/types'), + '@odk-web-forms/common': resolvePath(__dirname, '../common/src'), + }, + + conditions: isTest + ? // Without this, anything using Solid reactivity fails inexplicably... + ['development', 'browser'] + : ['import', 'browser'], + }, + + test: { + browser: { + enabled: BROWSER_ENABLED, + name: BROWSER_NAME!, + provider: 'playwright', + headless: true, + }, + + environment: TEST_ENVIRONMENT, + globals: false, + include: ['src/**/*.test.ts', 'test/**/*.test.ts'], + exclude: ['src/**/*.tsx', 'test/**/*.tsx'], + reporters: process.env.GITHUB_ACTIONS ? ['default', new GithubActionsReporter()] : 'default', + }, + } satisfies ViteConfig; +}); From 5bd341190cc5676d3843e6c56411f4c2a6601509 Mon Sep 17 00:00:00 2001 From: eyelidlessness Date: Mon, 11 Mar 2024 16:09:03 -0700 Subject: [PATCH 07/14] Remove eslint config detritus MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This was meant to be removed after the Vue package init. It was testing whether ESLint’s `globals` rules really do treat `globalThis` as read-only (they don’t) --- eslint.config.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/eslint.config.js b/eslint.config.js index 38e011106..45a5861ae 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -427,5 +427,3 @@ export default tseslint.config( }, } ); - -globalThis.foo = 'bar'; From b9bc5ad733d67f44d34ed2293bbef4b64207a4f6 Mon Sep 17 00:00:00 2001 From: eyelidlessness Date: Mon, 11 Mar 2024 16:52:12 -0700 Subject: [PATCH 08/14] Split xforms-engine, ui-solid, JR-derived test form DSL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Primary purpose of this commit: Move all aspects of UI, as implemented with Solid, to the `@odk-web-forms/ui-solid` package Necessary to support that: Move the JavaRosa-derived test form DSL into the `@odk-web-forms/common` package, so it can be shared across packages (currently used in both `ui-solid` and `xforms-engine` Also necessary to support that: a whole lot of tooling-related churn. Some of this is hard to recall, after a few rounds of trial and error and finally wrapping up with some stuff much simpler than it started. To the best of my recollection… - Vite and Vitest each issues around: - `web-tree-sitter`’s particular (and particularly odd!) CommonJS module structure getting even more confusing to import in various environments - `web-tree-sitter`’s references to Node modules getting mangled in weird ways when it and `@odk-web-forms/xpath` become transitive dependencies (`xpath` -> `engine` -> `ui-solid`) - `@odk-web-forms/xpath` parser init breaking as a transitive dependency, due to differences in how the `tree-sitter` and `tree-sitter-xpath` WASM resources are referenced between build phases - Our derived version of the Solid testing library behaving differently once moved to `ui-solid`, for reasons still unclear - Updating both of those was already on the agenda, so I gave that a go. That revealed further issues with: - A bunch of stuff either internal to Vitest throwing import errors or other build tool errors in various test/build/downstream contexts - Apparent side effects of merely having anything `@testing-library/…` installed, at all - Our `suid` vendor package, which itself had worked around previous issues in previous Vitest versions, causing problems anew just by existing as such a workaround The good news is that resolving **almost all of these** has resulted in simplification! - The `suid` vendor package is no more - The `@odk-web-forms/xpath` package now bundles `web-tree-sitter` (JS/WASM) and `tree-sitter-xpath` (WASM), which (TODO) should allow us encapsulate init and stop pushing that responsibility to downstream packages - A variety of Vite config stuff is either no longer necessary or simplified - Did I mention Vite/Vitest aren’t out of date now? Lastly, a known issue: all client reactivity is temporarily broken due to the xforms-engine/ui-solid split. The root cause of this is known and understood (it’s a common symptom of implicitly mixing multiple Solid reactive roots), but it’s moot: it will be fixed in the next branch/PR, where we incorporate the new client interface design/implementation which accepts an explicit client reactive factory. --- .github/workflows/ci.yml | 76 +- .gitignore | 1 - eslint.config.js | 3 - package.json | 1 - packages/common/package.json | 10 +- .../xform-dsl/BindBuilderXFormsElement.ts | 0 .../fixtures/xform-dsl/BodyXFormsElement.ts | 0 .../fixtures/xform-dsl/EmptyXFormsElement.ts | 0 .../fixtures/xform-dsl/HeadXFormsElement.ts | 0 .../fixtures/xform-dsl/HtmlXFormsElement.ts | 0 .../src/test/fixtures/xform-dsl/README.md | 0 .../xform-dsl/StringLiteralXFormsElement.ts | 0 .../fixtures/xform-dsl/TagXFormsElement.ts | 0 .../test/fixtures/xform-dsl/XFormsElement.ts | 0 .../test/fixtures/xform-dsl/collections.ts | 0 .../src/test/fixtures/xform-dsl/index.ts | 3 +- .../src/test/fixtures/xform-dsl/shared.ts | 0 packages/tree-sitter-xpath/package.json | 6 +- packages/ui-solid/README.md | 1 + .../assets/favicon.ico | Bin .../assets/odk-logo.png | Bin .../e2e/App.test.ts | 0 .../e2e/tsconfig.json | 0 .../1-calculate-simple.xform.xml | 0 .../2-relevant-simple.xform.xml | 0 .../3-relevant-calculate.xml | 0 .../4-calculate-required.xml | 0 .../computations-demo/5-relevant-readonly.xml | 0 .../6-relevant-calculate-group.xml | 0 .../computations-demo/7-readonly-group.xml | 0 .../xforms/computations-demo/8-outputs.xml | 0 .../fixtures/xforms/itext/01-itext-basic.xml | 0 .../fixtures/xforms/minimal.xform.xml | 0 .../xforms/repeats/01-basic-repeat.xml | 0 .../xforms/repeats/02-repeat-grouped.xml | 0 .../repeats/03-multiple-default-instances.xml | 0 .../repeats/04-no-default-instances.xml | 0 .../05-multiple-default-instances-x50.xml | 0 .../repeats/06-jr-test-add-repeat-calc.xml | 0 ...-jr-test-add-repeat-calc-multiple-deps.xml | 0 .../xforms/select/1-static-selects.xml | 0 .../select/2-dynamic-selects-itemsets.xml | 0 .../{xforms-engine => ui-solid}/index.html | 0 packages/ui-solid/package.json | 73 + .../{xforms-engine => ui-solid}/src/App.tsx | 4 +- .../{xforms-engine => ui-solid}/src/Demo.tsx | 3 +- .../src/components/Demo/DemoFixturesList.tsx | 10 +- .../src/components/FormLanguageMenu.tsx | 14 +- .../src/components/Label/LabelPart.tsx | 0 .../src/components/LocalizationProvider.tsx | 0 .../src/components/Page/Page.tsx | 4 +- .../src/components/Page/PageFooter.tsx | 2 +- .../src/components/Page/PageHeader.tsx | 4 +- .../src/components/Page/PageMain.tsx | 2 +- .../src/components/ThemeProvider.tsx | 4 +- .../src/components/Widget/MultiSelect.tsx | 4 +- .../src/components/Widget/SingleSelect.tsx | 4 +- .../src/components/Widget/TextWidget.tsx | 3 +- .../src/components/XForm/XFormBodyElement.tsx | 12 +- .../components/XForm/XFormControlStack.tsx | 2 +- .../src/components/XForm/XFormDetails.tsx | 4 +- .../src/components/XForm/XFormLabel.tsx | 5 +- .../components/XForm/XFormQuestionList.tsx | 2 +- .../components/XForm/XFormRelevanceGuard.tsx | 2 +- .../src/components/XForm/XFormTitle.test.tsx | 26 + .../src/components/XForm/XFormTitle.tsx | 2 +- .../src/components/XForm/XFormView.test.tsx | 35 +- .../src/components/XForm/XFormView.tsx | 4 +- .../containers/RepeatInstanceOptionsMenu.tsx | 8 +- .../XForm/containers/XFormGroup.tsx | 3 +- .../XForm/containers/XFormGroupLabel.tsx | 6 +- .../XForm/containers/XFormRepeatInstance.tsx | 4 +- .../containers/XFormRepeatInstanceLabel.tsx | 6 +- .../XForm/containers/XFormRepeatList.tsx | 4 +- .../XForm/controls/SelectControl.tsx | 6 +- .../XForm/controls/XFormControl.tsx | 8 +- .../XForm/controls/XFormControlLabel.tsx | 0 .../XForm/controls/XFormInputControl.tsx | 3 +- .../components/XForm/debugging/XFormAlert.tsx | 2 +- .../XForm/debugging/XFormUnknownControl.tsx | 4 +- .../debugging/XFormUnlabeledInputControl.tsx | 2 +- .../src/components/styled/DefaultLabel.tsx | 2 +- .../styled/DefaultLabelParagraph.tsx | 2 +- .../styled/DefaultLabelRequiredIndicator.tsx | 2 +- .../components/styled/DefaultParagraph.tsx | 2 +- .../components/styled/DefaultSubmitButton.tsx | 2 +- .../components/styled/DefaultTextField.tsx | 2 +- .../styled/DefaultTextFormControl.tsx | 2 +- .../components/styled/FormSubmitButton.tsx | 2 +- .../src/components/styled/NestedGroupBox.tsx | 2 +- .../src/components/styled/PageContainer.tsx | 2 +- .../src/components/styled/PageMenuButton.tsx | 2 +- .../src/components/styled/PlainTextButton.tsx | 2 +- .../components/styled/SecondaryParagraph.tsx | 2 +- .../styled/ThemeColorOutlineButton.tsx | 2 +- .../styled/TopLevelRepeatInstance.tsx | 2 +- .../{xforms-engine => ui-solid}/src/index.tsx | 0 .../src/lib/i18n-l10n/types.ts | 0 .../test/view/translations.test.tsx | 47 +- .../tools/vite/solid-vitest-no-node-loader.ts | 2 +- packages/ui-solid/tsconfig.json | 17 + packages/ui-solid/vite-env.d.ts | 1 + .../vite.config.ts} | 45 +- packages/ui-vue/package.json | 6 +- packages/xforms-engine/package.json | 23 +- .../src/components/XForm/XFormTitle.test.tsx | 12 - packages/xforms-engine/src/lib/index.ts | 20 + .../src/lib/xform/XFormDOM.test.ts | 6 +- .../src/lib/xform/XFormDefinition.test.ts | 4 +- .../src/lib/xform/body/BodyDefinition.test.ts | 4 +- .../lib/xform/model/BindDefinition.test.ts | 4 +- .../src/lib/xform/model/ModelBindMap.test.ts | 4 +- .../lib/xform/model/ModelDefinition.test.ts | 4 +- .../lib/xform/state/DescendantNodeState.ts | 2 +- .../src/lib/xform/state/EntryState.test.ts | 6 +- .../src/lib/xform/state/EntryState.ts | 12 +- .../xforms-engine/src/lib/xpath/parser.ts | 2 + .../xforms-engine/src/test/jr/repeat.test.ts | 6 +- .../src/test/scenario/Scenario.ts | 2 +- .../tools/@solidjs/testing-library/index.ts | 329 ---- .../tools/@solidjs/testing-library/types.ts | 65 - .../xforms-engine/tools/vite/vitest-setup.ts | 4 - packages/xforms-engine/tsconfig.json | 3 +- packages/xforms-engine/vite.config.ts | 38 +- packages/xpath/package.json | 22 +- .../static/grammar/TreeSitterXPathParser.ts | 48 +- packages/xpath/vite.config.ts | 20 +- tsconfig.tools.json | 3 +- turbo.json | 5 +- vendor-packages/suid/README.md | 5 - vendor-packages/suid/package.json | 40 - .../suid/src/icons-material-icon-module.d.ts | 1 - vendor-packages/suid/src/icons-material.ts | 1 - vendor-packages/suid/src/material.ts | 1 - vendor-packages/suid/tsconfig.json | 11 - vendor-packages/suid/vite.config.ts | 68 - yarn.lock | 1454 +++++++---------- 137 files changed, 1090 insertions(+), 1669 deletions(-) rename packages/{xforms-engine => common}/src/test/fixtures/xform-dsl/BindBuilderXFormsElement.ts (100%) rename packages/{xforms-engine => common}/src/test/fixtures/xform-dsl/BodyXFormsElement.ts (100%) rename packages/{xforms-engine => common}/src/test/fixtures/xform-dsl/EmptyXFormsElement.ts (100%) rename packages/{xforms-engine => common}/src/test/fixtures/xform-dsl/HeadXFormsElement.ts (100%) rename packages/{xforms-engine => common}/src/test/fixtures/xform-dsl/HtmlXFormsElement.ts (100%) rename packages/{xforms-engine => common}/src/test/fixtures/xform-dsl/README.md (100%) rename packages/{xforms-engine => common}/src/test/fixtures/xform-dsl/StringLiteralXFormsElement.ts (100%) rename packages/{xforms-engine => common}/src/test/fixtures/xform-dsl/TagXFormsElement.ts (100%) rename packages/{xforms-engine => common}/src/test/fixtures/xform-dsl/XFormsElement.ts (100%) rename packages/{xforms-engine => common}/src/test/fixtures/xform-dsl/collections.ts (100%) rename packages/{xforms-engine => common}/src/test/fixtures/xform-dsl/index.ts (98%) rename packages/{xforms-engine => common}/src/test/fixtures/xform-dsl/shared.ts (100%) create mode 100644 packages/ui-solid/README.md rename packages/{xforms-engine => ui-solid}/assets/favicon.ico (100%) rename packages/{xforms-engine => ui-solid}/assets/odk-logo.png (100%) rename packages/{xforms-engine => ui-solid}/e2e/App.test.ts (100%) rename packages/{xforms-engine => ui-solid}/e2e/tsconfig.json (100%) rename packages/{xforms-engine => ui-solid}/fixtures/xforms/computations-demo/1-calculate-simple.xform.xml (100%) rename packages/{xforms-engine => ui-solid}/fixtures/xforms/computations-demo/2-relevant-simple.xform.xml (100%) rename packages/{xforms-engine => ui-solid}/fixtures/xforms/computations-demo/3-relevant-calculate.xml (100%) rename packages/{xforms-engine => ui-solid}/fixtures/xforms/computations-demo/4-calculate-required.xml (100%) rename packages/{xforms-engine => ui-solid}/fixtures/xforms/computations-demo/5-relevant-readonly.xml (100%) rename packages/{xforms-engine => ui-solid}/fixtures/xforms/computations-demo/6-relevant-calculate-group.xml (100%) rename packages/{xforms-engine => ui-solid}/fixtures/xforms/computations-demo/7-readonly-group.xml (100%) rename packages/{xforms-engine => ui-solid}/fixtures/xforms/computations-demo/8-outputs.xml (100%) rename packages/{xforms-engine => ui-solid}/fixtures/xforms/itext/01-itext-basic.xml (100%) rename packages/{xforms-engine => ui-solid}/fixtures/xforms/minimal.xform.xml (100%) rename packages/{xforms-engine => ui-solid}/fixtures/xforms/repeats/01-basic-repeat.xml (100%) rename packages/{xforms-engine => ui-solid}/fixtures/xforms/repeats/02-repeat-grouped.xml (100%) rename packages/{xforms-engine => ui-solid}/fixtures/xforms/repeats/03-multiple-default-instances.xml (100%) rename packages/{xforms-engine => ui-solid}/fixtures/xforms/repeats/04-no-default-instances.xml (100%) rename packages/{xforms-engine => ui-solid}/fixtures/xforms/repeats/05-multiple-default-instances-x50.xml (100%) rename packages/{xforms-engine => ui-solid}/fixtures/xforms/repeats/06-jr-test-add-repeat-calc.xml (100%) rename packages/{xforms-engine => ui-solid}/fixtures/xforms/repeats/07-jr-test-add-repeat-calc-multiple-deps.xml (100%) rename packages/{xforms-engine => ui-solid}/fixtures/xforms/select/1-static-selects.xml (100%) rename packages/{xforms-engine => ui-solid}/fixtures/xforms/select/2-dynamic-selects-itemsets.xml (100%) rename packages/{xforms-engine => ui-solid}/index.html (100%) create mode 100644 packages/ui-solid/package.json rename packages/{xforms-engine => ui-solid}/src/App.tsx (88%) rename packages/{xforms-engine => ui-solid}/src/Demo.tsx (87%) rename packages/{xforms-engine => ui-solid}/src/components/Demo/DemoFixturesList.tsx (94%) rename packages/{xforms-engine => ui-solid}/src/components/FormLanguageMenu.tsx (91%) rename packages/{xforms-engine => ui-solid}/src/components/Label/LabelPart.tsx (100%) rename packages/{xforms-engine => ui-solid}/src/components/LocalizationProvider.tsx (100%) rename packages/{xforms-engine => ui-solid}/src/components/Page/Page.tsx (88%) rename packages/{xforms-engine => ui-solid}/src/components/Page/PageFooter.tsx (92%) rename packages/{xforms-engine => ui-solid}/src/components/Page/PageHeader.tsx (81%) rename packages/{xforms-engine => ui-solid}/src/components/Page/PageMain.tsx (76%) rename packages/{xforms-engine => ui-solid}/src/components/ThemeProvider.tsx (95%) rename packages/{xforms-engine => ui-solid}/src/components/Widget/MultiSelect.tsx (89%) rename packages/{xforms-engine => ui-solid}/src/components/Widget/SingleSelect.tsx (89%) rename packages/{xforms-engine => ui-solid}/src/components/Widget/TextWidget.tsx (87%) rename packages/{xforms-engine => ui-solid}/src/components/XForm/XFormBodyElement.tsx (76%) rename packages/{xforms-engine => ui-solid}/src/components/XForm/XFormControlStack.tsx (87%) rename packages/{xforms-engine => ui-solid}/src/components/XForm/XFormDetails.tsx (89%) rename packages/{xforms-engine => ui-solid}/src/components/XForm/XFormLabel.tsx (75%) rename packages/{xforms-engine => ui-solid}/src/components/XForm/XFormQuestionList.tsx (88%) rename packages/{xforms-engine => ui-solid}/src/components/XForm/XFormRelevanceGuard.tsx (94%) create mode 100644 packages/ui-solid/src/components/XForm/XFormTitle.test.tsx rename packages/{xforms-engine => ui-solid}/src/components/XForm/XFormTitle.tsx (80%) rename packages/{xforms-engine => ui-solid}/src/components/XForm/XFormView.test.tsx (62%) rename packages/{xforms-engine => ui-solid}/src/components/XForm/XFormView.tsx (76%) rename packages/{xforms-engine => ui-solid}/src/components/XForm/containers/RepeatInstanceOptionsMenu.tsx (87%) rename packages/{xforms-engine => ui-solid}/src/components/XForm/containers/XFormGroup.tsx (91%) rename packages/{xforms-engine => ui-solid}/src/components/XForm/containers/XFormGroupLabel.tsx (89%) rename packages/{xforms-engine => ui-solid}/src/components/XForm/containers/XFormRepeatInstance.tsx (91%) rename packages/{xforms-engine => ui-solid}/src/components/XForm/containers/XFormRepeatInstanceLabel.tsx (92%) rename packages/{xforms-engine => ui-solid}/src/components/XForm/containers/XFormRepeatList.tsx (84%) rename packages/{xforms-engine => ui-solid}/src/components/XForm/controls/SelectControl.tsx (88%) rename packages/{xforms-engine => ui-solid}/src/components/XForm/controls/XFormControl.tsx (84%) rename packages/{xforms-engine => ui-solid}/src/components/XForm/controls/XFormControlLabel.tsx (100%) rename packages/{xforms-engine => ui-solid}/src/components/XForm/controls/XFormInputControl.tsx (76%) rename packages/{xforms-engine => ui-solid}/src/components/XForm/debugging/XFormAlert.tsx (93%) rename packages/{xforms-engine => ui-solid}/src/components/XForm/debugging/XFormUnknownControl.tsx (81%) rename packages/{xforms-engine => ui-solid}/src/components/XForm/debugging/XFormUnlabeledInputControl.tsx (84%) rename packages/{xforms-engine => ui-solid}/src/components/styled/DefaultLabel.tsx (70%) rename packages/{xforms-engine => ui-solid}/src/components/styled/DefaultLabelParagraph.tsx (79%) rename packages/{xforms-engine => ui-solid}/src/components/styled/DefaultLabelRequiredIndicator.tsx (74%) rename packages/{xforms-engine => ui-solid}/src/components/styled/DefaultParagraph.tsx (70%) rename packages/{xforms-engine => ui-solid}/src/components/styled/DefaultSubmitButton.tsx (76%) rename packages/{xforms-engine => ui-solid}/src/components/styled/DefaultTextField.tsx (83%) rename packages/{xforms-engine => ui-solid}/src/components/styled/DefaultTextFormControl.tsx (61%) rename packages/{xforms-engine => ui-solid}/src/components/styled/FormSubmitButton.tsx (88%) rename packages/{xforms-engine => ui-solid}/src/components/styled/NestedGroupBox.tsx (82%) rename packages/{xforms-engine => ui-solid}/src/components/styled/PageContainer.tsx (75%) rename packages/{xforms-engine => ui-solid}/src/components/styled/PageMenuButton.tsx (87%) rename packages/{xforms-engine => ui-solid}/src/components/styled/PlainTextButton.tsx (86%) rename packages/{xforms-engine => ui-solid}/src/components/styled/SecondaryParagraph.tsx (70%) rename packages/{xforms-engine => ui-solid}/src/components/styled/ThemeColorOutlineButton.tsx (86%) rename packages/{xforms-engine => ui-solid}/src/components/styled/TopLevelRepeatInstance.tsx (83%) rename packages/{xforms-engine => ui-solid}/src/index.tsx (100%) rename packages/{xforms-engine => ui-solid}/src/lib/i18n-l10n/types.ts (100%) rename packages/{xforms-engine/src => ui-solid}/test/view/translations.test.tsx (53%) rename packages/{xforms-engine => ui-solid}/tools/vite/solid-vitest-no-node-loader.ts (93%) create mode 100644 packages/ui-solid/tsconfig.json create mode 100644 packages/ui-solid/vite-env.d.ts rename packages/{xforms-engine/vite.engine-solid-combined.config.ts => ui-solid/vite.config.ts} (79%) delete mode 100644 packages/xforms-engine/src/components/XForm/XFormTitle.test.tsx delete mode 100644 packages/xforms-engine/tools/@solidjs/testing-library/index.ts delete mode 100644 packages/xforms-engine/tools/@solidjs/testing-library/types.ts delete mode 100644 packages/xforms-engine/tools/vite/vitest-setup.ts delete mode 100644 vendor-packages/suid/README.md delete mode 100644 vendor-packages/suid/package.json delete mode 100644 vendor-packages/suid/src/icons-material-icon-module.d.ts delete mode 100644 vendor-packages/suid/src/icons-material.ts delete mode 100644 vendor-packages/suid/src/material.ts delete mode 100644 vendor-packages/suid/tsconfig.json delete mode 100644 vendor-packages/suid/vite.config.ts diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 33091b6a1..a6b6700e4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,6 +33,7 @@ jobs: tree-sitter-xpath: ${{ steps.changes.outputs.tree-sitter-xpath }} xforms-engine: ${{ steps.changes.outputs.xforms-engine }} xpath: ${{ steps.changes.outputs.xpath }} + ui-solid: ${{ steps.changes.outputs.ui-solid }} ui-vue: ${{ steps.changes.outputs.ui-vue }} steps: @@ -59,6 +60,9 @@ jobs: xpath: - 'packages/xpath/**' + ui-solid: + - 'packages/ui-solid/**' + ui-vue: - 'packages/ui-vue/**' @@ -100,7 +104,6 @@ jobs: path: | examples/*/dist packages/*/dist - vendor-packages/*/dist packages/tree-sitter-xpath/grammar.js packages/tree-sitter-xpath/src/grammar.json packages/tree-sitter-xpath/src/parser.c @@ -151,7 +154,6 @@ jobs: path: | examples/*/dist packages/*/dist - vendor-packages/*/dist packages/tree-sitter-xpath/grammar.js packages/tree-sitter-xpath/src/grammar.json packages/tree-sitter-xpath/src/parser.c @@ -207,7 +209,6 @@ jobs: path: | examples/*/dist packages/*/dist - vendor-packages/*/dist packages/tree-sitter-xpath/grammar.js packages/tree-sitter-xpath/src/grammar.json packages/tree-sitter-xpath/src/parser.c @@ -273,7 +274,6 @@ jobs: path: | examples/*/dist packages/*/dist - vendor-packages/*/dist packages/tree-sitter-xpath/grammar.js packages/tree-sitter-xpath/src/grammar.json packages/tree-sitter-xpath/src/parser.c @@ -339,7 +339,6 @@ jobs: path: | examples/*/dist packages/*/dist - vendor-packages/*/dist packages/tree-sitter-xpath/grammar.js packages/tree-sitter-xpath/src/grammar.json packages/tree-sitter-xpath/src/parser.c @@ -400,7 +399,6 @@ jobs: path: | examples/*/dist packages/*/dist - vendor-packages/*/dist packages/tree-sitter-xpath/grammar.js packages/tree-sitter-xpath/src/grammar.json packages/tree-sitter-xpath/src/parser.c @@ -412,6 +410,71 @@ jobs: - run: 'yarn workspace tree-sitter-xpath test' + ui-solid: + name: 'ui-solid' + needs: ['install-and-build', 'changes'] + if: needs.changes.outputs.root == 'true' || needs.changes.outputs.ui-solid == 'true' + runs-on: 'ubuntu-latest' + + strategy: + matrix: + target: ['Node'] + node-version: ['18.19.1', '20.11.1'] + include: + - target: 'Web' + node-version: '20.11.1' + browser: chromium + - target: 'Web' + node-version: '20.11.1' + browser: firefox + - target: 'Web' + node-version: '20.11.1' + browser: webkit + + steps: + - uses: 'actions/checkout@v3' + + - uses: 'volta-cli/action@v4' + with: + node-version: '${{ matrix.node-version }}' + yarn-version: '1.22.19' + + - uses: 'actions/cache@v3' + id: cache-install + with: + path: | + node_modules + **/node_modules + key: install-${{ matrix.node-version }}-${{ hashFiles('yarn.lock', 'examples/*/yarn.lock', 'packages/*/yarn.lock') }} + fail-on-cache-miss: true + + - uses: 'actions/cache@v3' + id: cache-build + with: + path: | + examples/*/dist + packages/*/dist + packages/tree-sitter-xpath/grammar.js + packages/tree-sitter-xpath/src/grammar.json + packages/tree-sitter-xpath/src/parser.c + packages/tree-sitter-xpath/src/tree_sitter/parser.h + packages/tree-sitter-xpath/tree-sitter-xpath.wasm + packages/tree-sitter-xpath/types + key: build-${{ matrix.node-version }}-${{ github.sha }} + fail-on-cache-miss: true + + - if: ${{ matrix.target == 'Node' }} + run: 'yarn workspace @odk-web-forms/ui-solid test:types' + + - if: ${{ matrix.target == 'Node' }} + run: 'yarn workspace @odk-web-forms/ui-solid test-node:jsdom' + + - if: ${{ matrix.target == 'Web' }} + run: 'yarn playwright install ${{ matrix.browser }} --with-deps' + + - if: ${{ matrix.target == 'Web' }} + run: 'yarn workspace @odk-web-forms/ui-solid test-browser:${{ matrix.browser }}' + ui-vue: name: 'ui-vue' needs: ['install-and-build', 'changes'] @@ -456,7 +519,6 @@ jobs: path: | examples/*/dist packages/*/dist - vendor-packages/*/dist packages/tree-sitter-xpath/grammar.js packages/tree-sitter-xpath/src/grammar.json packages/tree-sitter-xpath/src/parser.c diff --git a/.gitignore b/.gitignore index 7e9212f42..2fde06e9e 100644 --- a/.gitignore +++ b/.gitignore @@ -20,7 +20,6 @@ node_modules/ dist/ examples/**/dist packages/**/dist -vendor-packages/**/dist ## Specific to tree-sitter and/or @odk-web-forms/tree-sitter-xpath packages/tree-sitter-xpath/bindings/ diff --git a/eslint.config.js b/eslint.config.js index 45a5861ae..e7feaaf90 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -100,7 +100,6 @@ export default tseslint.config( 'packages/tree-sitter-xpath/grammar.js', 'packages/tree-sitter-xpath/bindings/**/*', 'packages/tree-sitter-xpath/types/**/*', - 'vendor-packages/**/dist/**/*', '**/vendor', ], }, @@ -265,7 +264,6 @@ export default tseslint.config( './packages/ui-vue/tsconfig.node.json', './packages/ui-vue/tsconfig.vitest.json', - './vendor-packages/**/tsconfig.json', './scripts/tsconfig.json', ], }, @@ -398,7 +396,6 @@ export default tseslint.config( 'packages/*/vitest.config.ts', 'packages/xforms-engine/vite.*.config.ts', 'packages/*/tools/**/*', - 'vendor-packages/*/vite.config.ts', // TODO: in theory, all e2e tests (if they continue to be run with // Playwright) are technically run in a "Node" environment, although diff --git a/package.json b/package.json index cb37eab10..5f983616b 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,6 @@ }, "workspaces": [ "packages/*", - "vendor-packages/*", "scripts" ], "scripts": { diff --git a/packages/common/package.json b/packages/common/package.json index 0a8ef96fc..3fd567548 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -51,10 +51,10 @@ "test:types": "tsc --project ./tsconfig.json --emitDeclarationOnly false --noEmit" }, "devDependencies": { - "@vitest/browser": "^1.0.0-beta.3", - "jsdom": "^22.1.0", - "vite": "^4.5.0", - "vitest": "^1.0.0-beta.3", - "vitest-github-actions-reporter": "^0.10.0" + "@vitest/browser": "^1.3.1", + "jsdom": "^24.0.0", + "vite": "^5.1.5", + "vitest": "^1.3.1", + "vitest-github-actions-reporter": "^0.11.1" } } diff --git a/packages/xforms-engine/src/test/fixtures/xform-dsl/BindBuilderXFormsElement.ts b/packages/common/src/test/fixtures/xform-dsl/BindBuilderXFormsElement.ts similarity index 100% rename from packages/xforms-engine/src/test/fixtures/xform-dsl/BindBuilderXFormsElement.ts rename to packages/common/src/test/fixtures/xform-dsl/BindBuilderXFormsElement.ts diff --git a/packages/xforms-engine/src/test/fixtures/xform-dsl/BodyXFormsElement.ts b/packages/common/src/test/fixtures/xform-dsl/BodyXFormsElement.ts similarity index 100% rename from packages/xforms-engine/src/test/fixtures/xform-dsl/BodyXFormsElement.ts rename to packages/common/src/test/fixtures/xform-dsl/BodyXFormsElement.ts diff --git a/packages/xforms-engine/src/test/fixtures/xform-dsl/EmptyXFormsElement.ts b/packages/common/src/test/fixtures/xform-dsl/EmptyXFormsElement.ts similarity index 100% rename from packages/xforms-engine/src/test/fixtures/xform-dsl/EmptyXFormsElement.ts rename to packages/common/src/test/fixtures/xform-dsl/EmptyXFormsElement.ts diff --git a/packages/xforms-engine/src/test/fixtures/xform-dsl/HeadXFormsElement.ts b/packages/common/src/test/fixtures/xform-dsl/HeadXFormsElement.ts similarity index 100% rename from packages/xforms-engine/src/test/fixtures/xform-dsl/HeadXFormsElement.ts rename to packages/common/src/test/fixtures/xform-dsl/HeadXFormsElement.ts diff --git a/packages/xforms-engine/src/test/fixtures/xform-dsl/HtmlXFormsElement.ts b/packages/common/src/test/fixtures/xform-dsl/HtmlXFormsElement.ts similarity index 100% rename from packages/xforms-engine/src/test/fixtures/xform-dsl/HtmlXFormsElement.ts rename to packages/common/src/test/fixtures/xform-dsl/HtmlXFormsElement.ts diff --git a/packages/xforms-engine/src/test/fixtures/xform-dsl/README.md b/packages/common/src/test/fixtures/xform-dsl/README.md similarity index 100% rename from packages/xforms-engine/src/test/fixtures/xform-dsl/README.md rename to packages/common/src/test/fixtures/xform-dsl/README.md diff --git a/packages/xforms-engine/src/test/fixtures/xform-dsl/StringLiteralXFormsElement.ts b/packages/common/src/test/fixtures/xform-dsl/StringLiteralXFormsElement.ts similarity index 100% rename from packages/xforms-engine/src/test/fixtures/xform-dsl/StringLiteralXFormsElement.ts rename to packages/common/src/test/fixtures/xform-dsl/StringLiteralXFormsElement.ts diff --git a/packages/xforms-engine/src/test/fixtures/xform-dsl/TagXFormsElement.ts b/packages/common/src/test/fixtures/xform-dsl/TagXFormsElement.ts similarity index 100% rename from packages/xforms-engine/src/test/fixtures/xform-dsl/TagXFormsElement.ts rename to packages/common/src/test/fixtures/xform-dsl/TagXFormsElement.ts diff --git a/packages/xforms-engine/src/test/fixtures/xform-dsl/XFormsElement.ts b/packages/common/src/test/fixtures/xform-dsl/XFormsElement.ts similarity index 100% rename from packages/xforms-engine/src/test/fixtures/xform-dsl/XFormsElement.ts rename to packages/common/src/test/fixtures/xform-dsl/XFormsElement.ts diff --git a/packages/xforms-engine/src/test/fixtures/xform-dsl/collections.ts b/packages/common/src/test/fixtures/xform-dsl/collections.ts similarity index 100% rename from packages/xforms-engine/src/test/fixtures/xform-dsl/collections.ts rename to packages/common/src/test/fixtures/xform-dsl/collections.ts diff --git a/packages/xforms-engine/src/test/fixtures/xform-dsl/index.ts b/packages/common/src/test/fixtures/xform-dsl/index.ts similarity index 98% rename from packages/xforms-engine/src/test/fixtures/xform-dsl/index.ts rename to packages/common/src/test/fixtures/xform-dsl/index.ts index b5011af72..4280a766c 100644 --- a/packages/xforms-engine/src/test/fixtures/xform-dsl/index.ts +++ b/packages/common/src/test/fixtures/xform-dsl/index.ts @@ -3,7 +3,8 @@ import { BodyXFormsElement } from './BodyXFormsElement.ts'; import { EmptyXFormsElement } from './EmptyXFormsElement.ts'; import { HeadXFormsElement } from './HeadXFormsElement.ts'; -import { HtmlXFormsElement, type NamespaceTuples } from './HtmlXFormsElement.ts'; +import type { NamespaceTuples } from './HtmlXFormsElement.ts'; +import { HtmlXFormsElement } from './HtmlXFormsElement.ts'; import { StringLiteralXFormsElement } from './StringLiteralXFormsElement.ts'; import { TagXFormsElement } from './TagXFormsElement.ts'; import type { XFormsElement } from './XFormsElement.ts'; diff --git a/packages/xforms-engine/src/test/fixtures/xform-dsl/shared.ts b/packages/common/src/test/fixtures/xform-dsl/shared.ts similarity index 100% rename from packages/xforms-engine/src/test/fixtures/xform-dsl/shared.ts rename to packages/common/src/test/fixtures/xform-dsl/shared.ts diff --git a/packages/tree-sitter-xpath/package.json b/packages/tree-sitter-xpath/package.json index 5473004e1..789622682 100644 --- a/packages/tree-sitter-xpath/package.json +++ b/packages/tree-sitter-xpath/package.json @@ -41,11 +41,11 @@ "node-gyp": "^9.4.0", "tree-sitter": "^0.20.5", "tree-sitter-cli": "^0.20.8", - "vite": "^4.5.0", - "web-tree-sitter": "^0.20.8" + "vite": "^5.1.5", + "web-tree-sitter": "0.21.0" }, "peerDependencies": { - "web-tree-sitter": "^0.20.8" + "web-tree-sitter": "0.21.0" }, "resolutions": { "**/tree-sitter": "^0.20.5", diff --git a/packages/ui-solid/README.md b/packages/ui-solid/README.md new file mode 100644 index 000000000..51184229d --- /dev/null +++ b/packages/ui-solid/README.md @@ -0,0 +1 @@ +# @odk-web-forms/ui-solid diff --git a/packages/xforms-engine/assets/favicon.ico b/packages/ui-solid/assets/favicon.ico similarity index 100% rename from packages/xforms-engine/assets/favicon.ico rename to packages/ui-solid/assets/favicon.ico diff --git a/packages/xforms-engine/assets/odk-logo.png b/packages/ui-solid/assets/odk-logo.png similarity index 100% rename from packages/xforms-engine/assets/odk-logo.png rename to packages/ui-solid/assets/odk-logo.png diff --git a/packages/xforms-engine/e2e/App.test.ts b/packages/ui-solid/e2e/App.test.ts similarity index 100% rename from packages/xforms-engine/e2e/App.test.ts rename to packages/ui-solid/e2e/App.test.ts diff --git a/packages/xforms-engine/e2e/tsconfig.json b/packages/ui-solid/e2e/tsconfig.json similarity index 100% rename from packages/xforms-engine/e2e/tsconfig.json rename to packages/ui-solid/e2e/tsconfig.json diff --git a/packages/xforms-engine/fixtures/xforms/computations-demo/1-calculate-simple.xform.xml b/packages/ui-solid/fixtures/xforms/computations-demo/1-calculate-simple.xform.xml similarity index 100% rename from packages/xforms-engine/fixtures/xforms/computations-demo/1-calculate-simple.xform.xml rename to packages/ui-solid/fixtures/xforms/computations-demo/1-calculate-simple.xform.xml diff --git a/packages/xforms-engine/fixtures/xforms/computations-demo/2-relevant-simple.xform.xml b/packages/ui-solid/fixtures/xforms/computations-demo/2-relevant-simple.xform.xml similarity index 100% rename from packages/xforms-engine/fixtures/xforms/computations-demo/2-relevant-simple.xform.xml rename to packages/ui-solid/fixtures/xforms/computations-demo/2-relevant-simple.xform.xml diff --git a/packages/xforms-engine/fixtures/xforms/computations-demo/3-relevant-calculate.xml b/packages/ui-solid/fixtures/xforms/computations-demo/3-relevant-calculate.xml similarity index 100% rename from packages/xforms-engine/fixtures/xforms/computations-demo/3-relevant-calculate.xml rename to packages/ui-solid/fixtures/xforms/computations-demo/3-relevant-calculate.xml diff --git a/packages/xforms-engine/fixtures/xforms/computations-demo/4-calculate-required.xml b/packages/ui-solid/fixtures/xforms/computations-demo/4-calculate-required.xml similarity index 100% rename from packages/xforms-engine/fixtures/xforms/computations-demo/4-calculate-required.xml rename to packages/ui-solid/fixtures/xforms/computations-demo/4-calculate-required.xml diff --git a/packages/xforms-engine/fixtures/xforms/computations-demo/5-relevant-readonly.xml b/packages/ui-solid/fixtures/xforms/computations-demo/5-relevant-readonly.xml similarity index 100% rename from packages/xforms-engine/fixtures/xforms/computations-demo/5-relevant-readonly.xml rename to packages/ui-solid/fixtures/xforms/computations-demo/5-relevant-readonly.xml diff --git a/packages/xforms-engine/fixtures/xforms/computations-demo/6-relevant-calculate-group.xml b/packages/ui-solid/fixtures/xforms/computations-demo/6-relevant-calculate-group.xml similarity index 100% rename from packages/xforms-engine/fixtures/xforms/computations-demo/6-relevant-calculate-group.xml rename to packages/ui-solid/fixtures/xforms/computations-demo/6-relevant-calculate-group.xml diff --git a/packages/xforms-engine/fixtures/xforms/computations-demo/7-readonly-group.xml b/packages/ui-solid/fixtures/xforms/computations-demo/7-readonly-group.xml similarity index 100% rename from packages/xforms-engine/fixtures/xforms/computations-demo/7-readonly-group.xml rename to packages/ui-solid/fixtures/xforms/computations-demo/7-readonly-group.xml diff --git a/packages/xforms-engine/fixtures/xforms/computations-demo/8-outputs.xml b/packages/ui-solid/fixtures/xforms/computations-demo/8-outputs.xml similarity index 100% rename from packages/xforms-engine/fixtures/xforms/computations-demo/8-outputs.xml rename to packages/ui-solid/fixtures/xforms/computations-demo/8-outputs.xml diff --git a/packages/xforms-engine/fixtures/xforms/itext/01-itext-basic.xml b/packages/ui-solid/fixtures/xforms/itext/01-itext-basic.xml similarity index 100% rename from packages/xforms-engine/fixtures/xforms/itext/01-itext-basic.xml rename to packages/ui-solid/fixtures/xforms/itext/01-itext-basic.xml diff --git a/packages/xforms-engine/fixtures/xforms/minimal.xform.xml b/packages/ui-solid/fixtures/xforms/minimal.xform.xml similarity index 100% rename from packages/xforms-engine/fixtures/xforms/minimal.xform.xml rename to packages/ui-solid/fixtures/xforms/minimal.xform.xml diff --git a/packages/xforms-engine/fixtures/xforms/repeats/01-basic-repeat.xml b/packages/ui-solid/fixtures/xforms/repeats/01-basic-repeat.xml similarity index 100% rename from packages/xforms-engine/fixtures/xforms/repeats/01-basic-repeat.xml rename to packages/ui-solid/fixtures/xforms/repeats/01-basic-repeat.xml diff --git a/packages/xforms-engine/fixtures/xforms/repeats/02-repeat-grouped.xml b/packages/ui-solid/fixtures/xforms/repeats/02-repeat-grouped.xml similarity index 100% rename from packages/xforms-engine/fixtures/xforms/repeats/02-repeat-grouped.xml rename to packages/ui-solid/fixtures/xforms/repeats/02-repeat-grouped.xml diff --git a/packages/xforms-engine/fixtures/xforms/repeats/03-multiple-default-instances.xml b/packages/ui-solid/fixtures/xforms/repeats/03-multiple-default-instances.xml similarity index 100% rename from packages/xforms-engine/fixtures/xforms/repeats/03-multiple-default-instances.xml rename to packages/ui-solid/fixtures/xforms/repeats/03-multiple-default-instances.xml diff --git a/packages/xforms-engine/fixtures/xforms/repeats/04-no-default-instances.xml b/packages/ui-solid/fixtures/xforms/repeats/04-no-default-instances.xml similarity index 100% rename from packages/xforms-engine/fixtures/xforms/repeats/04-no-default-instances.xml rename to packages/ui-solid/fixtures/xforms/repeats/04-no-default-instances.xml diff --git a/packages/xforms-engine/fixtures/xforms/repeats/05-multiple-default-instances-x50.xml b/packages/ui-solid/fixtures/xforms/repeats/05-multiple-default-instances-x50.xml similarity index 100% rename from packages/xforms-engine/fixtures/xforms/repeats/05-multiple-default-instances-x50.xml rename to packages/ui-solid/fixtures/xforms/repeats/05-multiple-default-instances-x50.xml diff --git a/packages/xforms-engine/fixtures/xforms/repeats/06-jr-test-add-repeat-calc.xml b/packages/ui-solid/fixtures/xforms/repeats/06-jr-test-add-repeat-calc.xml similarity index 100% rename from packages/xforms-engine/fixtures/xforms/repeats/06-jr-test-add-repeat-calc.xml rename to packages/ui-solid/fixtures/xforms/repeats/06-jr-test-add-repeat-calc.xml diff --git a/packages/xforms-engine/fixtures/xforms/repeats/07-jr-test-add-repeat-calc-multiple-deps.xml b/packages/ui-solid/fixtures/xforms/repeats/07-jr-test-add-repeat-calc-multiple-deps.xml similarity index 100% rename from packages/xforms-engine/fixtures/xforms/repeats/07-jr-test-add-repeat-calc-multiple-deps.xml rename to packages/ui-solid/fixtures/xforms/repeats/07-jr-test-add-repeat-calc-multiple-deps.xml diff --git a/packages/xforms-engine/fixtures/xforms/select/1-static-selects.xml b/packages/ui-solid/fixtures/xforms/select/1-static-selects.xml similarity index 100% rename from packages/xforms-engine/fixtures/xforms/select/1-static-selects.xml rename to packages/ui-solid/fixtures/xforms/select/1-static-selects.xml diff --git a/packages/xforms-engine/fixtures/xforms/select/2-dynamic-selects-itemsets.xml b/packages/ui-solid/fixtures/xforms/select/2-dynamic-selects-itemsets.xml similarity index 100% rename from packages/xforms-engine/fixtures/xforms/select/2-dynamic-selects-itemsets.xml rename to packages/ui-solid/fixtures/xforms/select/2-dynamic-selects-itemsets.xml diff --git a/packages/xforms-engine/index.html b/packages/ui-solid/index.html similarity index 100% rename from packages/xforms-engine/index.html rename to packages/ui-solid/index.html diff --git a/packages/ui-solid/package.json b/packages/ui-solid/package.json new file mode 100644 index 000000000..5450086d3 --- /dev/null +++ b/packages/ui-solid/package.json @@ -0,0 +1,73 @@ +{ + "name": "@odk-web-forms/ui-solid", + "version": "1.0.0-alpha.0", + "description": "Solid UI client for ODK Web Forms", + "type": "module", + "author": "getodk", + "repository": { + "type": "git", + "url": "https://github.com/getodk/web-forms", + "directory": "packages/ui-solid" + }, + "bugs": "https://github.com/getodk/web-forms/issues", + "homepage": "https://getodk.org/", + "types": "./dist/lib/index.d.ts", + "exports": { + ".": { + "types": "./dist/lib/index.d.ts", + "default": "./dist/lib/index.js" + } + }, + "files": [ + "dist", + "README.md" + ], + "engines": { + "node": "^18.19.1 || ^20.11.1", + "yarn": "1.22.19" + }, + "scripts": { + "build": "npm-run-all -nl build:*", + "build:clean": "rimraf dist/", + "build:js": "vite build", + "dev": "vite", + "test": "npm-run-all -nl test:*", + "test:e2e": "playwright test", + "test-node:jsdom": "vitest run", + "test-browser:chromium": "BROWSER_NAME=chromium vitest run", + "test-browser:firefox": "BROWSER_NAME=firefox vitest run", + "test-browser:webkit": "BROWSER_NAME=webkit vitest run", + "test-watch:jsdom": "vitest", + "test-watch:chromium": "BROWSER_NAME=chromium vitest", + "test-watch:firefox": "BROWSER_NAME=firefox vitest", + "test-watch:webkit": "BROWSER_NAME=webkit vitest", + "test:types": "tsc --project ./tsconfig.json --emitDeclarationOnly false --noEmit" + }, + "dependencies": { + "@fontsource/roboto": "^5.0.8", + "@odk-web-forms/common": "0.0.0", + "@odk-web-forms/xforms-engine": "1.0.0-alpha.0", + "@solid-primitives/set": "^0.4.8", + "@solidjs/router": "^0.8.3", + "@suid/icons-material": "^0.6.11", + "@suid/material": "^0.15.1", + "solid-js": "^1.8.3" + }, + "devDependencies": { + "@babel/core": "^7.23.2", + "@playwright/test": "^1.42.1", + "@suid/vite-plugin": "^0.1.5", + "@vitest/browser": "^1.3.1", + "@vitest/ui": "^1.3.1", + "babel-plugin-transform-jsbi-to-bigint": "^1.4.0", + "jsdom": "^24.0.0", + "unplugin-fonts": "^1.1.1", + "vite": "^5.1.5", + "vite-plugin-babel": "^1.2.0", + "vite-plugin-dts": "^3.7.3", + "vite-plugin-no-bundle": "^3.0.0", + "vite-plugin-solid": "^2.10.1", + "vitest": "^1.3.1", + "vitest-github-actions-reporter": "^0.11.1" + } +} diff --git a/packages/xforms-engine/src/App.tsx b/packages/ui-solid/src/App.tsx similarity index 88% rename from packages/xforms-engine/src/App.tsx rename to packages/ui-solid/src/App.tsx index 4a58bfc8b..07e2bea2f 100644 --- a/packages/xforms-engine/src/App.tsx +++ b/packages/ui-solid/src/App.tsx @@ -1,10 +1,10 @@ +import { EntryState } from '@odk-web-forms/xforms-engine'; +import { Divider, Stack } from '@suid/material'; import { Show, type JSX } from 'solid-js'; -import { Divider, Stack } from 'suid/material'; import { Page } from './components/Page/Page.tsx'; import { ThemeProvider } from './components/ThemeProvider.tsx'; import { XFormDetails } from './components/XForm/XFormDetails.tsx'; import { XFormView } from './components/XForm/XFormView.tsx'; -import { EntryState } from './lib/xform/state/EntryState.ts'; interface AppProps { readonly extras?: JSX.Element; diff --git a/packages/xforms-engine/src/Demo.tsx b/packages/ui-solid/src/Demo.tsx similarity index 87% rename from packages/xforms-engine/src/Demo.tsx rename to packages/ui-solid/src/Demo.tsx index dc350ca0b..eda12a8d6 100644 --- a/packages/xforms-engine/src/Demo.tsx +++ b/packages/ui-solid/src/Demo.tsx @@ -1,8 +1,7 @@ +import { EntryState, XFormDefinition } from '@odk-web-forms/xforms-engine'; import { createEffect, createMemo, createResource, createSignal, on, untrack } from 'solid-js'; import { App } from './App.tsx'; import { DemoFixturesList, type SelectedDemoFixture } from './components/Demo/DemoFixturesList.tsx'; -import { XFormDefinition } from './lib/xform/XFormDefinition.ts'; -import { EntryState } from './lib/xform/state/EntryState.ts'; export const Demo = () => { const [fixture, setFixture] = createSignal(null); diff --git a/packages/xforms-engine/src/components/Demo/DemoFixturesList.tsx b/packages/ui-solid/src/components/Demo/DemoFixturesList.tsx similarity index 94% rename from packages/xforms-engine/src/components/Demo/DemoFixturesList.tsx rename to packages/ui-solid/src/components/Demo/DemoFixturesList.tsx index 73c8f96cb..573a8a298 100644 --- a/packages/xforms-engine/src/components/Demo/DemoFixturesList.tsx +++ b/packages/ui-solid/src/components/Demo/DemoFixturesList.tsx @@ -1,7 +1,6 @@ -import { XHTML_NAMESPACE_URI } from '@odk-web-forms/common/constants/xmlns'; -import { For, Show, createComputed, createMemo, createSignal } from 'solid-js'; -import Assignment from 'suid/icons-material/Assignment'; -import ChevronLeft from 'suid/icons-material/ChevronLeft'; +import { XHTML_NAMESPACE_URI } from '@odk-web-forms/common/constants/xmlns.ts'; +import Assignment from '@suid/icons-material/Assignment'; +import ChevronLeft from '@suid/icons-material/ChevronLeft'; import { Button, List, @@ -12,7 +11,8 @@ import { Stack, Typography, styled, -} from 'suid/material'; +} from '@suid/material'; +import { For, Show, createComputed, createMemo, createSignal } from 'solid-js'; const DemoBackButton = styled(Button)(({ theme }) => ({ marginBlockEnd: theme.spacing(2), diff --git a/packages/xforms-engine/src/components/FormLanguageMenu.tsx b/packages/ui-solid/src/components/FormLanguageMenu.tsx similarity index 91% rename from packages/xforms-engine/src/components/FormLanguageMenu.tsx rename to packages/ui-solid/src/components/FormLanguageMenu.tsx index da7a0b81a..9811a690c 100644 --- a/packages/xforms-engine/src/components/FormLanguageMenu.tsx +++ b/packages/ui-solid/src/components/FormLanguageMenu.tsx @@ -1,10 +1,9 @@ // TODO: lots of this should get broken out -import { createSignal } from 'solid-js'; -import { For, Show } from 'solid-js/web'; -import Check from 'suid/icons-material/Check'; -import ExpandMore from 'suid/icons-material/ExpandMore'; -import Language from 'suid/icons-material/Language'; +import type { TranslationState } from '@odk-web-forms/xforms-engine'; +import Check from '@suid/icons-material/Check'; +import ExpandMore from '@suid/icons-material/ExpandMore'; +import Language from '@suid/icons-material/Language'; import { ListItemIcon, ListItemText, @@ -13,8 +12,9 @@ import { Stack, Typography, styled, -} from 'suid/material'; -import type { TranslationState } from '../lib/xform/state/TranslationState.ts'; +} from '@suid/material'; +import { createSignal } from 'solid-js'; +import { For, Show } from 'solid-js/web'; import { PageMenuButton } from './styled/PageMenuButton.tsx'; const FormLanguageMenuButtonIcon = styled(Language)(({ theme }) => ({ diff --git a/packages/xforms-engine/src/components/Label/LabelPart.tsx b/packages/ui-solid/src/components/Label/LabelPart.tsx similarity index 100% rename from packages/xforms-engine/src/components/Label/LabelPart.tsx rename to packages/ui-solid/src/components/Label/LabelPart.tsx diff --git a/packages/xforms-engine/src/components/LocalizationProvider.tsx b/packages/ui-solid/src/components/LocalizationProvider.tsx similarity index 100% rename from packages/xforms-engine/src/components/LocalizationProvider.tsx rename to packages/ui-solid/src/components/LocalizationProvider.tsx diff --git a/packages/xforms-engine/src/components/Page/Page.tsx b/packages/ui-solid/src/components/Page/Page.tsx similarity index 88% rename from packages/xforms-engine/src/components/Page/Page.tsx rename to packages/ui-solid/src/components/Page/Page.tsx index f90061047..ef5d28bdb 100644 --- a/packages/xforms-engine/src/components/Page/Page.tsx +++ b/packages/ui-solid/src/components/Page/Page.tsx @@ -1,6 +1,6 @@ +import type { EntryState } from '@odk-web-forms/xforms-engine'; +import { GlobalStyles, Stack, useTheme } from '@suid/material'; import type { JSX } from 'solid-js'; -import { GlobalStyles, Stack, useTheme } from 'suid/material'; -import type { EntryState } from '../../lib/xform/state/EntryState.ts'; import { PageContainer } from '../styled/PageContainer.tsx'; import { PageFooter } from './PageFooter.tsx'; import { PageHeader } from './PageHeader.tsx'; diff --git a/packages/xforms-engine/src/components/Page/PageFooter.tsx b/packages/ui-solid/src/components/Page/PageFooter.tsx similarity index 92% rename from packages/xforms-engine/src/components/Page/PageFooter.tsx rename to packages/ui-solid/src/components/Page/PageFooter.tsx index 31e08974d..cc5ddae04 100644 --- a/packages/xforms-engine/src/components/Page/PageFooter.tsx +++ b/packages/ui-solid/src/components/Page/PageFooter.tsx @@ -1,4 +1,4 @@ -import { Box, Stack, Typography, styled } from 'suid/material'; +import { Box, Stack, Typography, styled } from '@suid/material'; import odkLogo from '../../../assets/odk-logo.png'; import { FormSubmitButton } from '../styled/FormSubmitButton'; diff --git a/packages/xforms-engine/src/components/Page/PageHeader.tsx b/packages/ui-solid/src/components/Page/PageHeader.tsx similarity index 81% rename from packages/xforms-engine/src/components/Page/PageHeader.tsx rename to packages/ui-solid/src/components/Page/PageHeader.tsx index c33740ea9..72bf3cfae 100644 --- a/packages/xforms-engine/src/components/Page/PageHeader.tsx +++ b/packages/ui-solid/src/components/Page/PageHeader.tsx @@ -1,6 +1,6 @@ +import type { EntryState } from '@odk-web-forms/xforms-engine'; +import { Stack } from '@suid/material'; import { Show } from 'solid-js'; -import { Stack } from 'suid/material'; -import type { EntryState } from '../../lib/xform/state/EntryState.ts'; import { FormLanguageMenu } from '../FormLanguageMenu.tsx'; interface PageHeaderProps { diff --git a/packages/xforms-engine/src/components/Page/PageMain.tsx b/packages/ui-solid/src/components/Page/PageMain.tsx similarity index 76% rename from packages/xforms-engine/src/components/Page/PageMain.tsx rename to packages/ui-solid/src/components/Page/PageMain.tsx index 5799b4770..e8332f9b7 100644 --- a/packages/xforms-engine/src/components/Page/PageMain.tsx +++ b/packages/ui-solid/src/components/Page/PageMain.tsx @@ -1,4 +1,4 @@ -import { Paper, styled } from 'suid/material'; +import { Paper, styled } from '@suid/material'; export const PageMain = styled(Paper)(({ theme }) => ({ borderRadius: theme.shape.borderRadius * 4, diff --git a/packages/xforms-engine/src/components/ThemeProvider.tsx b/packages/ui-solid/src/components/ThemeProvider.tsx similarity index 95% rename from packages/xforms-engine/src/components/ThemeProvider.tsx rename to packages/ui-solid/src/components/ThemeProvider.tsx index 11d9a1deb..f6c3e4eed 100644 --- a/packages/xforms-engine/src/components/ThemeProvider.tsx +++ b/packages/ui-solid/src/components/ThemeProvider.tsx @@ -1,9 +1,9 @@ import '@fontsource/roboto/400.css'; import '@fontsource/roboto/500.css'; +import type { StyledProps } from '@suid/material'; +import { createPalette, createTheme, ThemeProvider as SUIDThemeProvider } from '@suid/material'; import type { JSX } from 'solid-js'; -import type { StyledProps } from 'suid/material'; -import { createPalette, createTheme, ThemeProvider as SUIDThemeProvider } from 'suid/material'; declare module '@suid/material/styles/createTheme' { interface ThemeInput { diff --git a/packages/xforms-engine/src/components/Widget/MultiSelect.tsx b/packages/ui-solid/src/components/Widget/MultiSelect.tsx similarity index 89% rename from packages/xforms-engine/src/components/Widget/MultiSelect.tsx rename to packages/ui-solid/src/components/Widget/MultiSelect.tsx index 53bf2162f..47769c479 100644 --- a/packages/xforms-engine/src/components/Widget/MultiSelect.tsx +++ b/packages/ui-solid/src/components/Widget/MultiSelect.tsx @@ -1,6 +1,6 @@ +import type { ValueNodeState } from '@odk-web-forms/xforms-engine'; +import { Checkbox, FormControlLabel, FormGroup } from '@suid/material'; import { createMemo, For, Show } from 'solid-js'; -import { Checkbox, FormControlLabel, FormGroup } from 'suid/material'; -import type { ValueNodeState } from '../../lib/xform/state/ValueNodeState.ts'; import type { SelectNDefinition } from '../XForm/controls/SelectControl.tsx'; import { XFormControlLabel } from '../XForm/controls/XFormControlLabel.tsx'; diff --git a/packages/xforms-engine/src/components/Widget/SingleSelect.tsx b/packages/ui-solid/src/components/Widget/SingleSelect.tsx similarity index 89% rename from packages/xforms-engine/src/components/Widget/SingleSelect.tsx rename to packages/ui-solid/src/components/Widget/SingleSelect.tsx index c6f37abb9..604ea9d56 100644 --- a/packages/xforms-engine/src/components/Widget/SingleSelect.tsx +++ b/packages/ui-solid/src/components/Widget/SingleSelect.tsx @@ -1,7 +1,7 @@ +import type { ValueNodeState } from '@odk-web-forms/xforms-engine'; +import { FormControlLabel, Radio, RadioGroup } from '@suid/material'; import type { ChangeEvent } from '@suid/types'; import { createMemo, For, Show } from 'solid-js'; -import { FormControlLabel, Radio, RadioGroup } from 'suid/material'; -import type { ValueNodeState } from '../../lib/xform/state/ValueNodeState.ts'; import type { Select1Definition } from '../XForm/controls/SelectControl.tsx'; import { XFormControlLabel } from '../XForm/controls/XFormControlLabel.tsx'; diff --git a/packages/xforms-engine/src/components/Widget/TextWidget.tsx b/packages/ui-solid/src/components/Widget/TextWidget.tsx similarity index 87% rename from packages/xforms-engine/src/components/Widget/TextWidget.tsx rename to packages/ui-solid/src/components/Widget/TextWidget.tsx index 835e5be44..fc5407057 100644 --- a/packages/xforms-engine/src/components/Widget/TextWidget.tsx +++ b/packages/ui-solid/src/components/Widget/TextWidget.tsx @@ -1,6 +1,5 @@ +import type { InputDefinition, ValueNodeState } from '@odk-web-forms/xforms-engine'; import { Show, createMemo } from 'solid-js'; -import type { InputDefinition } from '../../lib/xform/body/control/InputDefinition.ts'; -import type { ValueNodeState } from '../../lib/xform/state/ValueNodeState.ts'; import { XFormControlLabel } from '../XForm/controls/XFormControlLabel.tsx'; import { DefaultTextField } from '../styled/DefaultTextField.tsx'; import { DefaultTextFormControl } from '../styled/DefaultTextFormControl.tsx'; diff --git a/packages/xforms-engine/src/components/XForm/XFormBodyElement.tsx b/packages/ui-solid/src/components/XForm/XFormBodyElement.tsx similarity index 76% rename from packages/xforms-engine/src/components/XForm/XFormBodyElement.tsx rename to packages/ui-solid/src/components/XForm/XFormBodyElement.tsx index a391f1905..ac7759b16 100644 --- a/packages/xforms-engine/src/components/XForm/XFormBodyElement.tsx +++ b/packages/ui-solid/src/components/XForm/XFormBodyElement.tsx @@ -1,9 +1,11 @@ +import type { + AnyBodyElementDefinition, + AnyChildState, + RepeatSequenceState, + SubtreeState, + ValueNodeState, +} from '@odk-web-forms/xforms-engine'; import { Match, Switch } from 'solid-js'; -import { type AnyBodyElementDefinition } from '../../lib/xform/body/BodyDefinition.ts'; -import type { AnyChildState } from '../../lib/xform/state/NodeState.ts'; -import type { RepeatSequenceState } from '../../lib/xform/state/RepeatSequenceState.ts'; -import type { SubtreeState } from '../../lib/xform/state/SubtreeState.ts'; -import type { ValueNodeState } from '../../lib/xform/state/ValueNodeState.ts'; import { XFormGroup } from './containers/XFormGroup.tsx'; import { XFormControl } from './controls/XFormControl.tsx'; diff --git a/packages/xforms-engine/src/components/XForm/XFormControlStack.tsx b/packages/ui-solid/src/components/XForm/XFormControlStack.tsx similarity index 87% rename from packages/xforms-engine/src/components/XForm/XFormControlStack.tsx rename to packages/ui-solid/src/components/XForm/XFormControlStack.tsx index b4e967ed7..b2d19137a 100644 --- a/packages/xforms-engine/src/components/XForm/XFormControlStack.tsx +++ b/packages/ui-solid/src/components/XForm/XFormControlStack.tsx @@ -1,5 +1,5 @@ +import { Stack } from '@suid/material'; import type { JSX } from 'solid-js'; -import { Stack } from 'suid/material'; interface XFormControlStackProps { readonly children: JSX.Element; diff --git a/packages/xforms-engine/src/components/XForm/XFormDetails.tsx b/packages/ui-solid/src/components/XForm/XFormDetails.tsx similarity index 89% rename from packages/xforms-engine/src/components/XForm/XFormDetails.tsx rename to packages/ui-solid/src/components/XForm/XFormDetails.tsx index b9672980a..b211c47fa 100644 --- a/packages/xforms-engine/src/components/XForm/XFormDetails.tsx +++ b/packages/ui-solid/src/components/XForm/XFormDetails.tsx @@ -1,5 +1,5 @@ -import { styled } from 'suid/material'; -import type { EntryState } from '../../lib/xform/state/EntryState.ts'; +import type { EntryState } from '@odk-web-forms/xforms-engine'; +import { styled } from '@suid/material'; const Details = styled('details')({ position: 'relative', diff --git a/packages/xforms-engine/src/components/XForm/XFormLabel.tsx b/packages/ui-solid/src/components/XForm/XFormLabel.tsx similarity index 75% rename from packages/xforms-engine/src/components/XForm/XFormLabel.tsx rename to packages/ui-solid/src/components/XForm/XFormLabel.tsx index 222ea7f25..f785bfe1d 100644 --- a/packages/xforms-engine/src/components/XForm/XFormLabel.tsx +++ b/packages/ui-solid/src/components/XForm/XFormLabel.tsx @@ -1,12 +1,11 @@ +import type { AnyDescendantNodeState, LabelDefinition } from '@odk-web-forms/xforms-engine'; import { Show } from 'solid-js'; -import type { LabelDefinition } from '../../lib/xform/body/text/LabelDefinition'; -import type { AnyDescandantNodeState } from '../../lib/xform/state/DescendantNodeState'; import { DefaultLabel } from '../styled/DefaultLabel'; import { DefaultLabelRequiredIndicator } from '../styled/DefaultLabelRequiredIndicator'; export interface XFormLabelProps { readonly as?: 'span'; - readonly state: AnyDescandantNodeState; + readonly state: AnyDescendantNodeState; readonly label: LabelDefinition; } diff --git a/packages/xforms-engine/src/components/XForm/XFormQuestionList.tsx b/packages/ui-solid/src/components/XForm/XFormQuestionList.tsx similarity index 88% rename from packages/xforms-engine/src/components/XForm/XFormQuestionList.tsx rename to packages/ui-solid/src/components/XForm/XFormQuestionList.tsx index ca33da201..948387bac 100644 --- a/packages/xforms-engine/src/components/XForm/XFormQuestionList.tsx +++ b/packages/ui-solid/src/components/XForm/XFormQuestionList.tsx @@ -1,5 +1,5 @@ +import type { AnyParentState } from '@odk-web-forms/xforms-engine'; import { For } from 'solid-js'; -import type { AnyParentState } from '../../lib/xform/state/NodeState.ts'; import { XFormBodyElement } from './XFormBodyElement.tsx'; import { XFormControlStack } from './XFormControlStack.tsx'; diff --git a/packages/xforms-engine/src/components/XForm/XFormRelevanceGuard.tsx b/packages/ui-solid/src/components/XForm/XFormRelevanceGuard.tsx similarity index 94% rename from packages/xforms-engine/src/components/XForm/XFormRelevanceGuard.tsx rename to packages/ui-solid/src/components/XForm/XFormRelevanceGuard.tsx index b3bb868d8..b060797d0 100644 --- a/packages/xforms-engine/src/components/XForm/XFormRelevanceGuard.tsx +++ b/packages/ui-solid/src/components/XForm/XFormRelevanceGuard.tsx @@ -1,6 +1,6 @@ +import { Box, styled } from '@suid/material'; import type { JSX } from 'solid-js'; import { Show } from 'solid-js'; -import { Box, styled } from 'suid/material'; interface XFormRelevanceGuardProps { readonly debug?: boolean; diff --git a/packages/ui-solid/src/components/XForm/XFormTitle.test.tsx b/packages/ui-solid/src/components/XForm/XFormTitle.test.tsx new file mode 100644 index 000000000..f758a087f --- /dev/null +++ b/packages/ui-solid/src/components/XForm/XFormTitle.test.tsx @@ -0,0 +1,26 @@ +import { render } from 'solid-js/web'; +import { afterEach, beforeEach, describe, expect, it } from 'vitest'; +import { XFormTitle } from './XFormTitle.tsx'; + +describe('XFormTitle', () => { + let rootElement: Element; + let dispose: VoidFunction; + + beforeEach(() => { + dispose = () => { + throw new Error('Render must have failed'); + }; + + rootElement = document.createElement('div'); + }); + + afterEach(() => { + dispose(); + }); + + it('renders the title', () => { + dispose = render(() => Hello, rootElement); + + expect(rootElement.textContent).toContain('Hello'); + }); +}); diff --git a/packages/xforms-engine/src/components/XForm/XFormTitle.tsx b/packages/ui-solid/src/components/XForm/XFormTitle.tsx similarity index 80% rename from packages/xforms-engine/src/components/XForm/XFormTitle.tsx rename to packages/ui-solid/src/components/XForm/XFormTitle.tsx index 713cb2786..ac1aa32ea 100644 --- a/packages/xforms-engine/src/components/XForm/XFormTitle.tsx +++ b/packages/ui-solid/src/components/XForm/XFormTitle.tsx @@ -1,4 +1,4 @@ -import { Typography } from 'suid/material'; +import { Typography } from '@suid/material'; interface XFormTitleProps { readonly children: string; diff --git a/packages/xforms-engine/src/components/XForm/XFormView.test.tsx b/packages/ui-solid/src/components/XForm/XFormView.test.tsx similarity index 62% rename from packages/xforms-engine/src/components/XForm/XFormView.test.tsx rename to packages/ui-solid/src/components/XForm/XFormView.test.tsx index aedb716d2..ae18a517f 100644 --- a/packages/xforms-engine/src/components/XForm/XFormView.test.tsx +++ b/packages/ui-solid/src/components/XForm/XFormView.test.tsx @@ -1,7 +1,3 @@ -import { render } from '@solidjs/testing-library'; -import { beforeEach, describe, expect, it } from 'vitest'; -import { XFormDefinition } from '../../lib/xform/XFormDefinition.ts'; -import { EntryState } from '../../lib/xform/state/EntryState.ts'; import { bind, body, @@ -13,7 +9,10 @@ import { model, t, title, -} from '../../test/fixtures/xform-dsl/index.ts'; +} from '@odk-web-forms/common/test/fixtures/xform-dsl/index.ts'; +import { EntryState, XFormDefinition } from '@odk-web-forms/xforms-engine'; +import { render } from 'solid-js/web'; +import { afterEach, beforeEach, describe, expect, it } from 'vitest'; import { XFormView } from './XFormView.tsx'; describe('XFormView', () => { @@ -44,28 +43,42 @@ describe('XFormView', () => { ); let xformDefinition: XFormDefinition; + let rootElement: Element; + let dispose: VoidFunction; + + beforeEach(() => { + dispose = () => { + throw new Error('Render must have failed'); + }; + + rootElement = document.createElement('div'); + }); + + afterEach(() => { + dispose(); + }); beforeEach(() => { xformDefinition = new XFormDefinition(xform.asXml()); }); it('renders the form title', () => { - const rendered = render(() => { + dispose = render(() => { const entry = new EntryState(xformDefinition); return ; - }); + }, rootElement); - expect(rendered.getByText('Minimal XForm')).toBeInTheDocument(); + expect(rootElement.textContent).toContain('Minimal XForm'); }); it('renders the first question', () => { - const rendered = render(() => { + dispose = render(() => { const entry = new EntryState(xformDefinition); return ; - }); + }, rootElement); - expect(rendered.getByText('First question')).toBeInTheDocument(); + expect(rootElement.textContent).toContain('First question'); }); }); diff --git a/packages/xforms-engine/src/components/XForm/XFormView.tsx b/packages/ui-solid/src/components/XForm/XFormView.tsx similarity index 76% rename from packages/xforms-engine/src/components/XForm/XFormView.tsx rename to packages/ui-solid/src/components/XForm/XFormView.tsx index 29f55ede9..2fcb525b2 100644 --- a/packages/xforms-engine/src/components/XForm/XFormView.tsx +++ b/packages/ui-solid/src/components/XForm/XFormView.tsx @@ -1,5 +1,5 @@ -import { Box } from 'suid/material'; -import type { EntryState } from '../../lib/xform/state/EntryState.ts'; +import type { EntryState } from '@odk-web-forms/xforms-engine'; +import { Box } from '@suid/material'; import { XFormQuestionList } from './XFormQuestionList.tsx'; import { XFormTitle } from './XFormTitle.tsx'; diff --git a/packages/xforms-engine/src/components/XForm/containers/RepeatInstanceOptionsMenu.tsx b/packages/ui-solid/src/components/XForm/containers/RepeatInstanceOptionsMenu.tsx similarity index 87% rename from packages/xforms-engine/src/components/XForm/containers/RepeatInstanceOptionsMenu.tsx rename to packages/ui-solid/src/components/XForm/containers/RepeatInstanceOptionsMenu.tsx index 11fabc75b..2fdf65717 100644 --- a/packages/xforms-engine/src/components/XForm/containers/RepeatInstanceOptionsMenu.tsx +++ b/packages/ui-solid/src/components/XForm/containers/RepeatInstanceOptionsMenu.tsx @@ -1,9 +1,9 @@ // TODO: quite a bit of this is very similar to FormLanguageMenu +import type { RepeatInstanceState } from '@odk-web-forms/xforms-engine'; +import Delete from '@suid/icons-material/Delete'; +import MoreVert from '@suid/icons-material/MoreVert'; +import { IconButton, ListItemIcon, ListItemText, Menu, MenuItem } from '@suid/material'; import { createSignal } from 'solid-js'; -import Delete from 'suid/icons-material/Delete'; -import MoreVert from 'suid/icons-material/MoreVert'; -import { IconButton, ListItemIcon, ListItemText, Menu, MenuItem } from 'suid/material'; -import type { RepeatInstanceState } from '../../../lib/xform/state/RepeatInstanceState.ts'; interface RepeatInstanceOptionsMenuProps { readonly state: RepeatInstanceState; diff --git a/packages/xforms-engine/src/components/XForm/containers/XFormGroup.tsx b/packages/ui-solid/src/components/XForm/containers/XFormGroup.tsx similarity index 91% rename from packages/xforms-engine/src/components/XForm/containers/XFormGroup.tsx rename to packages/ui-solid/src/components/XForm/containers/XFormGroup.tsx index 7aeec2d39..163b201e0 100644 --- a/packages/xforms-engine/src/components/XForm/containers/XFormGroup.tsx +++ b/packages/ui-solid/src/components/XForm/containers/XFormGroup.tsx @@ -1,6 +1,5 @@ +import type { RepeatSequenceState, SubtreeState } from '@odk-web-forms/xforms-engine'; import { Match, Show, Switch, createMemo, createSignal } from 'solid-js'; -import type { RepeatSequenceState } from '../../../lib/xform/state/RepeatSequenceState.ts'; -import type { SubtreeState } from '../../../lib/xform/state/SubtreeState.ts'; import { NestedGroupBox } from '../../styled/NestedGroupBox.tsx'; import { XFormQuestionList } from '../XFormQuestionList.tsx'; import { XFormRelevanceGuard } from '../XFormRelevanceGuard.tsx'; diff --git a/packages/xforms-engine/src/components/XForm/containers/XFormGroupLabel.tsx b/packages/ui-solid/src/components/XForm/containers/XFormGroupLabel.tsx similarity index 89% rename from packages/xforms-engine/src/components/XForm/containers/XFormGroupLabel.tsx rename to packages/ui-solid/src/components/XForm/containers/XFormGroupLabel.tsx index 9be3786b3..470950e5a 100644 --- a/packages/xforms-engine/src/components/XForm/containers/XFormGroupLabel.tsx +++ b/packages/ui-solid/src/components/XForm/containers/XFormGroupLabel.tsx @@ -1,7 +1,7 @@ +import ExpandLess from '@suid/icons-material/ExpandLess'; +import ExpandMore from '@suid/icons-material/ExpandMore'; +import { Stack, styled } from '@suid/material'; import { Match, Switch } from 'solid-js'; -import ExpandLess from 'suid/icons-material/ExpandLess'; -import ExpandMore from 'suid/icons-material/ExpandMore'; -import { Stack, styled } from 'suid/material'; import { PlainTextButton } from '../../styled/PlainTextButton.tsx'; import { XFormLabel, type XFormLabelProps } from '../XFormLabel.tsx'; diff --git a/packages/xforms-engine/src/components/XForm/containers/XFormRepeatInstance.tsx b/packages/ui-solid/src/components/XForm/containers/XFormRepeatInstance.tsx similarity index 91% rename from packages/xforms-engine/src/components/XForm/containers/XFormRepeatInstance.tsx rename to packages/ui-solid/src/components/XForm/containers/XFormRepeatInstance.tsx index f723ec922..15b4c143a 100644 --- a/packages/xforms-engine/src/components/XForm/containers/XFormRepeatInstance.tsx +++ b/packages/ui-solid/src/components/XForm/containers/XFormRepeatInstance.tsx @@ -1,6 +1,6 @@ +import type { RepeatInstanceState } from '@odk-web-forms/xforms-engine'; +import { Box, Stack, styled } from '@suid/material'; import { Show, createSignal } from 'solid-js'; -import { Box, Stack, styled } from 'suid/material'; -import type { RepeatInstanceState } from '../../../lib/xform/state/RepeatInstanceState.ts'; import { TopLevelRepeatInstance } from '../../styled/TopLevelRepeatInstance.tsx'; import { XFormQuestionList } from '../XFormQuestionList.tsx'; import { RepeatInstanceOptionsMenu } from './RepeatInstanceOptionsMenu.tsx'; diff --git a/packages/xforms-engine/src/components/XForm/containers/XFormRepeatInstanceLabel.tsx b/packages/ui-solid/src/components/XForm/containers/XFormRepeatInstanceLabel.tsx similarity index 92% rename from packages/xforms-engine/src/components/XForm/containers/XFormRepeatInstanceLabel.tsx rename to packages/ui-solid/src/components/XForm/containers/XFormRepeatInstanceLabel.tsx index d09f4ab43..ff658fca0 100644 --- a/packages/xforms-engine/src/components/XForm/containers/XFormRepeatInstanceLabel.tsx +++ b/packages/ui-solid/src/components/XForm/containers/XFormRepeatInstanceLabel.tsx @@ -5,10 +5,10 @@ // they both turn out to have a very similar view-level data model *and* wrap // the same view logic in a styled container. +import ExpandLess from '@suid/icons-material/ExpandLess'; +import ExpandMore from '@suid/icons-material/ExpandMore'; +import { Stack, styled } from '@suid/material'; import { Match, Switch } from 'solid-js'; -import ExpandLess from 'suid/icons-material/ExpandLess'; -import ExpandMore from 'suid/icons-material/ExpandMore'; -import { Stack, styled } from 'suid/material'; import { PlainTextButton } from '../../styled/PlainTextButton.tsx'; import { XFormLabel, type XFormLabelProps } from '../XFormLabel.tsx'; diff --git a/packages/xforms-engine/src/components/XForm/containers/XFormRepeatList.tsx b/packages/ui-solid/src/components/XForm/containers/XFormRepeatList.tsx similarity index 84% rename from packages/xforms-engine/src/components/XForm/containers/XFormRepeatList.tsx rename to packages/ui-solid/src/components/XForm/containers/XFormRepeatList.tsx index 02b5ab833..9a5af0d69 100644 --- a/packages/xforms-engine/src/components/XForm/containers/XFormRepeatList.tsx +++ b/packages/ui-solid/src/components/XForm/containers/XFormRepeatList.tsx @@ -1,6 +1,6 @@ +import type { RepeatSequenceState } from '@odk-web-forms/xforms-engine'; +import { Box, Stack } from '@suid/material'; import { For, getOwner, runWithOwner } from 'solid-js'; -import { Box, Stack } from 'suid/material'; -import type { RepeatSequenceState } from '../../../lib/xform/state/RepeatSequenceState.ts'; import { ThemeColorOutlineButton } from '../../styled/ThemeColorOutlineButton.tsx'; import { XFormRepeatInstance } from './XFormRepeatInstance.tsx'; diff --git a/packages/xforms-engine/src/components/XForm/controls/SelectControl.tsx b/packages/ui-solid/src/components/XForm/controls/SelectControl.tsx similarity index 88% rename from packages/xforms-engine/src/components/XForm/controls/SelectControl.tsx rename to packages/ui-solid/src/components/XForm/controls/SelectControl.tsx index 205651803..367a3b7be 100644 --- a/packages/xforms-engine/src/components/XForm/controls/SelectControl.tsx +++ b/packages/ui-solid/src/components/XForm/controls/SelectControl.tsx @@ -1,9 +1,9 @@ -import { Match, Switch } from 'solid-js'; import type { AnySelectDefinition, SelectDefinition, -} from '../../../lib/xform/body/control/select/SelectDefinition.ts'; -import type { ValueNodeState } from '../../../lib/xform/state/ValueNodeState.ts'; + ValueNodeState, +} from '@odk-web-forms/xforms-engine'; +import { Match, Switch } from 'solid-js'; import { MultiSelect } from '../../Widget/MultiSelect.tsx'; import { SingleSelect } from '../../Widget/SingleSelect.tsx'; diff --git a/packages/xforms-engine/src/components/XForm/controls/XFormControl.tsx b/packages/ui-solid/src/components/XForm/controls/XFormControl.tsx similarity index 84% rename from packages/xforms-engine/src/components/XForm/controls/XFormControl.tsx rename to packages/ui-solid/src/components/XForm/controls/XFormControl.tsx index fcd9f63f3..df9f0b351 100644 --- a/packages/xforms-engine/src/components/XForm/controls/XFormControl.tsx +++ b/packages/ui-solid/src/components/XForm/controls/XFormControl.tsx @@ -1,7 +1,9 @@ +import type { + AnySelectDefinition, + InputDefinition, + ValueNodeState, +} from '@odk-web-forms/xforms-engine'; import { Match, Switch, createMemo } from 'solid-js'; -import type { InputDefinition } from '../../../lib/xform/body/control/InputDefinition.ts'; -import type { AnySelectDefinition } from '../../../lib/xform/body/control/select/SelectDefinition.ts'; -import type { ValueNodeState } from '../../../lib/xform/state/ValueNodeState.ts'; import { XFormRelevanceGuard } from '../XFormRelevanceGuard.tsx'; import { XFormUnknownControl } from '../debugging/XFormUnknownControl.tsx'; import { SelectControl } from './SelectControl.tsx'; diff --git a/packages/xforms-engine/src/components/XForm/controls/XFormControlLabel.tsx b/packages/ui-solid/src/components/XForm/controls/XFormControlLabel.tsx similarity index 100% rename from packages/xforms-engine/src/components/XForm/controls/XFormControlLabel.tsx rename to packages/ui-solid/src/components/XForm/controls/XFormControlLabel.tsx diff --git a/packages/xforms-engine/src/components/XForm/controls/XFormInputControl.tsx b/packages/ui-solid/src/components/XForm/controls/XFormInputControl.tsx similarity index 76% rename from packages/xforms-engine/src/components/XForm/controls/XFormInputControl.tsx rename to packages/ui-solid/src/components/XForm/controls/XFormInputControl.tsx index 48f99e1d6..0ff84ed50 100644 --- a/packages/xforms-engine/src/components/XForm/controls/XFormInputControl.tsx +++ b/packages/ui-solid/src/components/XForm/controls/XFormInputControl.tsx @@ -1,6 +1,5 @@ +import type { InputDefinition, ValueNodeState } from '@odk-web-forms/xforms-engine'; import { Show } from 'solid-js'; -import { InputDefinition } from '../../../lib/xform/body/control/InputDefinition.ts'; -import type { ValueNodeState } from '../../../lib/xform/state/ValueNodeState.ts'; import { TextWidget } from '../../Widget/TextWidget.tsx'; import { XFormUnlabeledControl } from '../debugging/XFormUnlabeledInputControl.tsx'; diff --git a/packages/xforms-engine/src/components/XForm/debugging/XFormAlert.tsx b/packages/ui-solid/src/components/XForm/debugging/XFormAlert.tsx similarity index 93% rename from packages/xforms-engine/src/components/XForm/debugging/XFormAlert.tsx rename to packages/ui-solid/src/components/XForm/debugging/XFormAlert.tsx index 88f5fcb84..019499fac 100644 --- a/packages/xforms-engine/src/components/XForm/debugging/XFormAlert.tsx +++ b/packages/ui-solid/src/components/XForm/debugging/XFormAlert.tsx @@ -1,7 +1,7 @@ +import { Alert, AlertTitle } from '@suid/material'; import type { AlertColor } from '@suid/material/Alert'; import type { JSX } from 'solid-js'; import { Show } from 'solid-js'; -import { Alert, AlertTitle } from 'suid/material'; interface XFormAlertProps { readonly title?: JSX.Element; diff --git a/packages/xforms-engine/src/components/XForm/debugging/XFormUnknownControl.tsx b/packages/ui-solid/src/components/XForm/debugging/XFormUnknownControl.tsx similarity index 81% rename from packages/xforms-engine/src/components/XForm/debugging/XFormUnknownControl.tsx rename to packages/ui-solid/src/components/XForm/debugging/XFormUnknownControl.tsx index c15afe2dc..e60056134 100644 --- a/packages/xforms-engine/src/components/XForm/debugging/XFormUnknownControl.tsx +++ b/packages/ui-solid/src/components/XForm/debugging/XFormUnknownControl.tsx @@ -1,5 +1,5 @@ -import { Box } from 'suid/material'; -import type { ValueNodeState } from '../../../lib/xform/state/ValueNodeState.ts'; +import type { ValueNodeState } from '@odk-web-forms/xforms-engine'; +import { Box } from '@suid/material'; import { XFormAlert } from './XFormAlert.tsx'; interface XFormUnknownControlProps { diff --git a/packages/xforms-engine/src/components/XForm/debugging/XFormUnlabeledInputControl.tsx b/packages/ui-solid/src/components/XForm/debugging/XFormUnlabeledInputControl.tsx similarity index 84% rename from packages/xforms-engine/src/components/XForm/debugging/XFormUnlabeledInputControl.tsx rename to packages/ui-solid/src/components/XForm/debugging/XFormUnlabeledInputControl.tsx index 54050c837..69547e6c8 100644 --- a/packages/xforms-engine/src/components/XForm/debugging/XFormUnlabeledInputControl.tsx +++ b/packages/ui-solid/src/components/XForm/debugging/XFormUnlabeledInputControl.tsx @@ -1,4 +1,4 @@ -import type { ControlDefinition } from '../../../lib/xform/body/control/ControlDefinition.ts'; +import type { ControlDefinition } from '@odk-web-forms/xforms-engine'; import { XFormAlert } from './XFormAlert.tsx'; interface XFormUnlabeledControlProps { diff --git a/packages/xforms-engine/src/components/styled/DefaultLabel.tsx b/packages/ui-solid/src/components/styled/DefaultLabel.tsx similarity index 70% rename from packages/xforms-engine/src/components/styled/DefaultLabel.tsx rename to packages/ui-solid/src/components/styled/DefaultLabel.tsx index 8e5f312f0..c56781839 100644 --- a/packages/xforms-engine/src/components/styled/DefaultLabel.tsx +++ b/packages/ui-solid/src/components/styled/DefaultLabel.tsx @@ -1,4 +1,4 @@ -import { styled } from 'suid/material'; +import { styled } from '@suid/material'; export const DefaultLabel = styled('label')(({ theme }) => ({ ...theme.typography.body1, diff --git a/packages/xforms-engine/src/components/styled/DefaultLabelParagraph.tsx b/packages/ui-solid/src/components/styled/DefaultLabelParagraph.tsx similarity index 79% rename from packages/xforms-engine/src/components/styled/DefaultLabelParagraph.tsx rename to packages/ui-solid/src/components/styled/DefaultLabelParagraph.tsx index 572f9ce21..9f94f6a3f 100644 --- a/packages/xforms-engine/src/components/styled/DefaultLabelParagraph.tsx +++ b/packages/ui-solid/src/components/styled/DefaultLabelParagraph.tsx @@ -1,4 +1,4 @@ -import { styled } from 'suid/material'; +import { styled } from '@suid/material'; import { DefaultParagraph } from './DefaultParagraph.tsx'; export const DefaultLabelParagraph = styled(DefaultParagraph)({ diff --git a/packages/xforms-engine/src/components/styled/DefaultLabelRequiredIndicator.tsx b/packages/ui-solid/src/components/styled/DefaultLabelRequiredIndicator.tsx similarity index 74% rename from packages/xforms-engine/src/components/styled/DefaultLabelRequiredIndicator.tsx rename to packages/ui-solid/src/components/styled/DefaultLabelRequiredIndicator.tsx index 965435935..0e0e8102b 100644 --- a/packages/xforms-engine/src/components/styled/DefaultLabelRequiredIndicator.tsx +++ b/packages/ui-solid/src/components/styled/DefaultLabelRequiredIndicator.tsx @@ -1,4 +1,4 @@ -import { styled } from 'suid/material'; +import { styled } from '@suid/material'; export const DefaultLabelRequiredIndicator = styled('label')(({ theme }) => ({ color: theme.palette.required, diff --git a/packages/xforms-engine/src/components/styled/DefaultParagraph.tsx b/packages/ui-solid/src/components/styled/DefaultParagraph.tsx similarity index 70% rename from packages/xforms-engine/src/components/styled/DefaultParagraph.tsx rename to packages/ui-solid/src/components/styled/DefaultParagraph.tsx index f94db99e0..4e46ccd9b 100644 --- a/packages/xforms-engine/src/components/styled/DefaultParagraph.tsx +++ b/packages/ui-solid/src/components/styled/DefaultParagraph.tsx @@ -1,4 +1,4 @@ -import { styled } from 'suid/material'; +import { styled } from '@suid/material'; export const DefaultParagraph = styled('p')(({ theme }) => ({ ...theme.typography.body1, diff --git a/packages/xforms-engine/src/components/styled/DefaultSubmitButton.tsx b/packages/ui-solid/src/components/styled/DefaultSubmitButton.tsx similarity index 76% rename from packages/xforms-engine/src/components/styled/DefaultSubmitButton.tsx rename to packages/ui-solid/src/components/styled/DefaultSubmitButton.tsx index a48e4acf3..5c1e0fa83 100644 --- a/packages/xforms-engine/src/components/styled/DefaultSubmitButton.tsx +++ b/packages/ui-solid/src/components/styled/DefaultSubmitButton.tsx @@ -1,4 +1,4 @@ -import { Button, styled } from 'suid/material'; +import { Button, styled } from '@suid/material'; export const DefaultSubmitButton = styled(Button)(({ theme }) => ({ background: theme.palette.primary.main, diff --git a/packages/xforms-engine/src/components/styled/DefaultTextField.tsx b/packages/ui-solid/src/components/styled/DefaultTextField.tsx similarity index 83% rename from packages/xforms-engine/src/components/styled/DefaultTextField.tsx rename to packages/ui-solid/src/components/styled/DefaultTextField.tsx index ad10b52c4..3cb8f927b 100644 --- a/packages/xforms-engine/src/components/styled/DefaultTextField.tsx +++ b/packages/ui-solid/src/components/styled/DefaultTextField.tsx @@ -1,4 +1,4 @@ -import { TextField, styled } from 'suid/material'; +import { TextField, styled } from '@suid/material'; export const DefaultTextField = styled(TextField)(({ theme }) => ({ ...theme.typography.body2, diff --git a/packages/xforms-engine/src/components/styled/DefaultTextFormControl.tsx b/packages/ui-solid/src/components/styled/DefaultTextFormControl.tsx similarity index 61% rename from packages/xforms-engine/src/components/styled/DefaultTextFormControl.tsx rename to packages/ui-solid/src/components/styled/DefaultTextFormControl.tsx index a3698a831..16d872aa8 100644 --- a/packages/xforms-engine/src/components/styled/DefaultTextFormControl.tsx +++ b/packages/ui-solid/src/components/styled/DefaultTextFormControl.tsx @@ -1,4 +1,4 @@ -import { FormControl, styled } from 'suid/material'; +import { FormControl, styled } from '@suid/material'; export const DefaultTextFormControl = styled(FormControl)({ maxWidth: '43.75rem', diff --git a/packages/xforms-engine/src/components/styled/FormSubmitButton.tsx b/packages/ui-solid/src/components/styled/FormSubmitButton.tsx similarity index 88% rename from packages/xforms-engine/src/components/styled/FormSubmitButton.tsx rename to packages/ui-solid/src/components/styled/FormSubmitButton.tsx index 8e22b460b..9f6f4c644 100644 --- a/packages/xforms-engine/src/components/styled/FormSubmitButton.tsx +++ b/packages/ui-solid/src/components/styled/FormSubmitButton.tsx @@ -1,4 +1,4 @@ -import { styled } from 'suid/material'; +import { styled } from '@suid/material'; import { DefaultSubmitButton } from './DefaultSubmitButton'; export const FormSubmitButton = styled(DefaultSubmitButton)(({ theme }) => ({ diff --git a/packages/xforms-engine/src/components/styled/NestedGroupBox.tsx b/packages/ui-solid/src/components/styled/NestedGroupBox.tsx similarity index 82% rename from packages/xforms-engine/src/components/styled/NestedGroupBox.tsx rename to packages/ui-solid/src/components/styled/NestedGroupBox.tsx index 60b34586d..3d45434a7 100644 --- a/packages/xforms-engine/src/components/styled/NestedGroupBox.tsx +++ b/packages/ui-solid/src/components/styled/NestedGroupBox.tsx @@ -1,4 +1,4 @@ -import { Box, styled } from 'suid/material'; +import { Box, styled } from '@suid/material'; export const NestedGroupBox = styled(Box)(({ theme }) => ({ borderLeftWidth: '0.375rem', diff --git a/packages/xforms-engine/src/components/styled/PageContainer.tsx b/packages/ui-solid/src/components/styled/PageContainer.tsx similarity index 75% rename from packages/xforms-engine/src/components/styled/PageContainer.tsx rename to packages/ui-solid/src/components/styled/PageContainer.tsx index c82daaf23..c198d97ed 100644 --- a/packages/xforms-engine/src/components/styled/PageContainer.tsx +++ b/packages/ui-solid/src/components/styled/PageContainer.tsx @@ -1,4 +1,4 @@ -import { Container, styled } from 'suid/material'; +import { Container, styled } from '@suid/material'; export const PageContainer = styled(Container)(({ theme }) => ({ backgroundColor: theme.palette.background.default, diff --git a/packages/xforms-engine/src/components/styled/PageMenuButton.tsx b/packages/ui-solid/src/components/styled/PageMenuButton.tsx similarity index 87% rename from packages/xforms-engine/src/components/styled/PageMenuButton.tsx rename to packages/ui-solid/src/components/styled/PageMenuButton.tsx index df739f4b2..bc3132b8a 100644 --- a/packages/xforms-engine/src/components/styled/PageMenuButton.tsx +++ b/packages/ui-solid/src/components/styled/PageMenuButton.tsx @@ -1,4 +1,4 @@ -import { Button, styled } from 'suid/material'; +import { Button, styled } from '@suid/material'; export const PageMenuButton = styled(Button)(({ theme }) => ({ color: theme.palette.text.primary, diff --git a/packages/xforms-engine/src/components/styled/PlainTextButton.tsx b/packages/ui-solid/src/components/styled/PlainTextButton.tsx similarity index 86% rename from packages/xforms-engine/src/components/styled/PlainTextButton.tsx rename to packages/ui-solid/src/components/styled/PlainTextButton.tsx index d800581e5..f7d7387b8 100644 --- a/packages/xforms-engine/src/components/styled/PlainTextButton.tsx +++ b/packages/ui-solid/src/components/styled/PlainTextButton.tsx @@ -1,4 +1,4 @@ -import { styled } from 'suid/material'; +import { styled } from '@suid/material'; export const PlainTextButton = styled('button')(({ theme, props }) => ({ appearance: 'none', diff --git a/packages/xforms-engine/src/components/styled/SecondaryParagraph.tsx b/packages/ui-solid/src/components/styled/SecondaryParagraph.tsx similarity index 70% rename from packages/xforms-engine/src/components/styled/SecondaryParagraph.tsx rename to packages/ui-solid/src/components/styled/SecondaryParagraph.tsx index b3c327762..004d5ba85 100644 --- a/packages/xforms-engine/src/components/styled/SecondaryParagraph.tsx +++ b/packages/ui-solid/src/components/styled/SecondaryParagraph.tsx @@ -1,4 +1,4 @@ -import { styled } from 'suid/material'; +import { styled } from '@suid/material'; export const SecondaryParagraph = styled('p')(({ theme }) => ({ ...theme.typography.body2, diff --git a/packages/xforms-engine/src/components/styled/ThemeColorOutlineButton.tsx b/packages/ui-solid/src/components/styled/ThemeColorOutlineButton.tsx similarity index 86% rename from packages/xforms-engine/src/components/styled/ThemeColorOutlineButton.tsx rename to packages/ui-solid/src/components/styled/ThemeColorOutlineButton.tsx index 44bd3a59f..908c7c428 100644 --- a/packages/xforms-engine/src/components/styled/ThemeColorOutlineButton.tsx +++ b/packages/ui-solid/src/components/styled/ThemeColorOutlineButton.tsx @@ -1,4 +1,4 @@ -import { Button, styled } from 'suid/material'; +import { Button, styled } from '@suid/material'; export const ThemeColorOutlineButton = styled(Button)(({ theme }) => ({ backgroundColor: theme.palette.background.paper, diff --git a/packages/xforms-engine/src/components/styled/TopLevelRepeatInstance.tsx b/packages/ui-solid/src/components/styled/TopLevelRepeatInstance.tsx similarity index 83% rename from packages/xforms-engine/src/components/styled/TopLevelRepeatInstance.tsx rename to packages/ui-solid/src/components/styled/TopLevelRepeatInstance.tsx index e33d422ad..6951f2c53 100644 --- a/packages/xforms-engine/src/components/styled/TopLevelRepeatInstance.tsx +++ b/packages/ui-solid/src/components/styled/TopLevelRepeatInstance.tsx @@ -1,4 +1,4 @@ -import { Box, styled } from 'suid/material'; +import { Box, styled } from '@suid/material'; export const TopLevelRepeatInstance = styled(Box)(({ theme }) => ({ paddingBlock: theme.spacing(2), diff --git a/packages/xforms-engine/src/index.tsx b/packages/ui-solid/src/index.tsx similarity index 100% rename from packages/xforms-engine/src/index.tsx rename to packages/ui-solid/src/index.tsx diff --git a/packages/xforms-engine/src/lib/i18n-l10n/types.ts b/packages/ui-solid/src/lib/i18n-l10n/types.ts similarity index 100% rename from packages/xforms-engine/src/lib/i18n-l10n/types.ts rename to packages/ui-solid/src/lib/i18n-l10n/types.ts diff --git a/packages/xforms-engine/src/test/view/translations.test.tsx b/packages/ui-solid/test/view/translations.test.tsx similarity index 53% rename from packages/xforms-engine/src/test/view/translations.test.tsx rename to packages/ui-solid/test/view/translations.test.tsx index b416633a5..7a43c5ff0 100644 --- a/packages/xforms-engine/src/test/view/translations.test.tsx +++ b/packages/ui-solid/test/view/translations.test.tsx @@ -1,8 +1,3 @@ -import { render } from '@solidjs/testing-library'; -import { beforeEach, describe, expect, it } from 'vitest'; -import { App } from '../../App.tsx'; -import { XFormDefinition } from '../../lib/xform/XFormDefinition.ts'; -import { EntryState } from '../../lib/xform/state/EntryState.ts'; import { bind, body, @@ -13,9 +8,17 @@ import { model, t, title, -} from '../../test/fixtures/xform-dsl/index.ts'; +} from '@odk-web-forms/common/test/fixtures/xform-dsl/index.ts'; +import { EntryState, XFormDefinition } from '@odk-web-forms/xforms-engine'; +// import { render } from '@solidjs/testing-library'; +import { render } from 'solid-js/web'; +import { afterEach, beforeEach, describe, expect, it } from 'vitest'; +import { App } from '../../src/App.tsx'; describe('XFormView', () => { + let rootElement: Element; + let dispose: VoidFunction | null; + const xform = html( head( title('Itext (basic)'), @@ -44,38 +47,48 @@ describe('XFormView', () => { beforeEach(() => { xformDefinition = new XFormDefinition(xform.asXml()); + rootElement = document.createElement('div'); + dispose = null; + }); + + afterEach(() => { + dispose?.(); }); it('renders a label in the default language', () => { - const rendered = render(() => { + dispose = render(() => { const entry = new EntryState(xformDefinition); return ; - }); + }, rootElement); - const label = rendered.getByText(/^1\./); + const label = Array.from(rootElement.querySelectorAll('label')).find((element) => { + return element.textContent?.startsWith('1.'); + }); - expect(label).toBeInTheDocument(); - expect(label.textContent).toBe('1. Question one'); + expect(label).not.toBeUndefined(); + expect(label!.textContent).toBe('1. Question one'); }); - it('translates the label to another language', () => { + it.todo('translates the label to another language', () => { let entry!: EntryState; - const rendered = render(() => { + dispose = render(() => { entry = new EntryState(xformDefinition); return ; - }); + }, rootElement); // TODO: the intent was actually to test this by selecting the menu item, // but resolving the menu item proved difficult. Probably better as an // e2e test? entry.translations!.setActiveLanguage('Español'); - const label = rendered.getByText(/^1\./); + const label = Array.from(rootElement.querySelectorAll('label')).find((element) => { + return element.textContent?.startsWith('1.'); + }); - expect(label).toBeInTheDocument(); - expect(label.textContent).toBe('1. Pregunta uno'); + expect(label).not.toBeUndefined(); + expect(label!.textContent).toBe('1. Pregunta uno'); }); }); diff --git a/packages/xforms-engine/tools/vite/solid-vitest-no-node-loader.ts b/packages/ui-solid/tools/vite/solid-vitest-no-node-loader.ts similarity index 93% rename from packages/xforms-engine/tools/vite/solid-vitest-no-node-loader.ts rename to packages/ui-solid/tools/vite/solid-vitest-no-node-loader.ts index 8c97dcd72..8bbed9e04 100644 --- a/packages/xforms-engine/tools/vite/solid-vitest-no-node-loader.ts +++ b/packages/ui-solid/tools/vite/solid-vitest-no-node-loader.ts @@ -14,7 +14,7 @@ import type { UserConfig as VitestConfig } from 'vitest/config'; export const solidVitestNoNodeLoader: PluginOption = { name: 'solid-vitest-no-node-loader', config(config): UserConfig { - const baseConfig = config as UserConfig & VitestConfig; + const baseConfig = config; return { ...baseConfig, test: { diff --git a/packages/ui-solid/tsconfig.json b/packages/ui-solid/tsconfig.json new file mode 100644 index 000000000..6eecaccf0 --- /dev/null +++ b/packages/ui-solid/tsconfig.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tsconfig.json", + "include": ["src", "test/**/*.ts", "test/**/*.tsx", "tools/**/*.ts", "vite-env.d.ts"], + "compilerOptions": { + "allowSyntheticDefaultImports": false, + "declarationDir": "./dist", + "jsx": "preserve", + "jsxImportSource": "solid-js", + "lib": ["DOM", "DOM.Iterable", "ES2022"], + "skipLibCheck": true, + "outDir": "./dist", + "paths": { + "@odk-web-forms/common/types/*": ["../common/types/*"], + "@odk-web-forms/common/*": ["../common/src/*"] + } + } +} diff --git a/packages/ui-solid/vite-env.d.ts b/packages/ui-solid/vite-env.d.ts new file mode 100644 index 000000000..11f02fe2a --- /dev/null +++ b/packages/ui-solid/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/packages/xforms-engine/vite.engine-solid-combined.config.ts b/packages/ui-solid/vite.config.ts similarity index 79% rename from packages/xforms-engine/vite.engine-solid-combined.config.ts rename to packages/ui-solid/vite.config.ts index c3da9a6d8..c8009a451 100644 --- a/packages/xforms-engine/vite.engine-solid-combined.config.ts +++ b/packages/ui-solid/vite.config.ts @@ -5,7 +5,6 @@ import type { CollectionValues } from '@odk-web-forms/common/types/collections/CollectionValues.ts'; import suidPlugin from '@suid/vite-plugin'; -import { createRequire } from 'node:module'; import { resolve as resolvePath } from 'node:path'; import unpluginFonts from 'unplugin-fonts/vite'; import { defineConfig } from 'vite'; @@ -25,7 +24,7 @@ export default defineConfig(({ mode }) => { const BROWSER_NAME = (() => { if (!isTest) { - return false; + return null; } const envBrowserName = process.env.BROWSER_NAME; @@ -50,10 +49,6 @@ export default defineConfig(({ mode }) => { */ const TEST_TIME_ZONE = 'America/Phoenix'; - const require = createRequire(import.meta.url); - - const VITEST_SETUP = require.resolve('./tools/vite/vitest-setup.ts'); - let timeZoneId: string | null = process.env.TZ ?? null; if (mode === 'test') { @@ -61,12 +56,7 @@ export default defineConfig(({ mode }) => { } return { - assetsInclude: [ - 'assets/**/*', - 'fixtures/**/*.xml', - '../../node_modules/web-tree-sitter/tree-sitter.wasm', - '../../node_modules/@odk-web-forms/tree-sitter-xpath/tree-sitter-xpath.wasm', - ], + assetsInclude: ['assets/**/*', 'fixtures/**/*.xml'], build: { target: 'esnext', minify: false, @@ -79,22 +69,13 @@ export default defineConfig(({ mode }) => { TZ: JSON.stringify(timeZoneId), }, esbuild: { - sourcemap: true, target: 'esnext', }, optimizeDeps: { esbuildOptions: { target: 'esnext', }, - include: BROWSER_ENABLED - ? [ - '@testing-library/dom', - '@testing-library/jest-dom', - '@testing-library/jest-dom/matchers', - 'loupe', - ] - : [], - entries: isTest ? ['./index.html', './tools/vite/vitest-setup.ts'] : ['./index.html'], + entries: ['./index.html'], force: true, }, plugins: [ @@ -115,6 +96,7 @@ export default defineConfig(({ mode }) => { ], }, }), + // SUID = Solid MUI component library suidPlugin(), @@ -146,15 +128,16 @@ export default defineConfig(({ mode }) => { alias: { '@odk-web-forms/common/types': resolvePath(__dirname, '../common/types'), '@odk-web-forms/common': resolvePath(__dirname, '../common/src'), - '@solidjs/testing-library': require.resolve('./tools/@solidjs/testing-library/index.ts'), }, - conditions: ['browser', 'development'], + conditions: ['solid', 'browser', 'development'], }, - server: { - port: 8675, - }, + server: BROWSER_ENABLED + ? {} + : { + port: 8675, + }, test: { browser: { @@ -168,9 +151,9 @@ export default defineConfig(({ mode }) => { optimizer: { web: { // Prevent loading multiple instances of Solid. This deviates from - // most of the recommendations provided by Solid and related tooling, - // as Vitest's interfaces have since changed. But it does seem to be - // the appropriate solution (at least for our usage). + // most of the recommendations provided by Solid and related + // tooling, as Vitest's interfaces have since changed. But it does + // seem to be the appropriate solution (at least for our usage). exclude: ['solid-js'], }, }, @@ -178,9 +161,7 @@ export default defineConfig(({ mode }) => { }, environment: TEST_ENVIRONMENT, globals: false, - setupFiles: [VITEST_SETUP], transformMode: { web: [/\.[jt]sx?$/] }, - exclude: ['e2e/**/*'], reporters: process.env.GITHUB_ACTIONS ? ['default', new GithubActionsReporter()] : 'default', }, diff --git a/packages/ui-vue/package.json b/packages/ui-vue/package.json index e4b08a89c..ab8c2f406 100644 --- a/packages/ui-vue/package.json +++ b/packages/ui-vue/package.json @@ -51,11 +51,11 @@ }, "devDependencies": { "@playwright/test": "^1.42.1", - "@vitejs/plugin-vue": "^5.0.3", + "@vitejs/plugin-vue": "^5.0.4", "@vitejs/plugin-vue-jsx": "^3.1.0", "@vue/test-utils": "^2.4.4", "jsdom": "^24.0.0", - "vite": "^4.5.0", - "vitest": "^1.0.0-beta.3" + "vite": "^5.1.5", + "vitest": "^1.3.1" } } diff --git a/packages/xforms-engine/package.json b/packages/xforms-engine/package.json index 7673e30b0..dd453d042 100644 --- a/packages/xforms-engine/package.json +++ b/packages/xforms-engine/package.json @@ -46,31 +46,28 @@ "dependencies": { "@fontsource/roboto": "^5.0.8", "@odk-web-forms/tree-sitter-xpath": "1.0.0-alpha.0", - "@odk-web-forms/common": "0.0.0", "@odk-web-forms/xpath": "1.0.0-alpha.0", "@solid-primitives/set": "^0.4.8", "@solidjs/router": "^0.8.3", "@suid/icons-material": "^0.6.11", "@suid/material": "^0.15.1", "solid-js": "^1.8.3", - "web-tree-sitter": "^0.20.8" + "web-tree-sitter": "0.21.0" }, "devDependencies": { "@babel/core": "^7.23.2", "@playwright/test": "^1.42.1", "@suid/vite-plugin": "^0.1.5", - "@testing-library/dom": "^9.3.3", - "@testing-library/jest-dom": "^6.1.4", - "@vitest/browser": "^1.0.0-beta.3", + "@vitest/browser": "^1.3.1", "babel-plugin-transform-jsbi-to-bigint": "^1.4.0", - "jsdom": "^22.1.0", - "unplugin-fonts": "^1.0.3", - "vite": "^4.5.0", - "vite-plugin-babel": "^1.1.3", - "vite-plugin-dts": "^3.6.1", + "jsdom": "^24.0.0", + "unplugin-fonts": "^1.1.1", + "vite": "^5.1.5", + "vite-plugin-babel": "^1.2.0", + "vite-plugin-dts": "^3.7.3", "vite-plugin-no-bundle": "^3.0.0", - "vite-plugin-solid": "^2.7.2", - "vitest": "^1.0.0-beta.3", - "vitest-github-actions-reporter": "^0.10.0" + "vite-plugin-solid": "^2.10.1", + "vitest": "^1.3.1", + "vitest-github-actions-reporter": "^0.11.1" } } diff --git a/packages/xforms-engine/src/components/XForm/XFormTitle.test.tsx b/packages/xforms-engine/src/components/XForm/XFormTitle.test.tsx deleted file mode 100644 index b65b7e39e..000000000 --- a/packages/xforms-engine/src/components/XForm/XFormTitle.test.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { render } from '@solidjs/testing-library'; -import { describe, expect, it } from 'vitest'; -import { XFormTitle } from './XFormTitle.tsx'; - -describe('XFormTitle', () => { - it('renders the title', () => { - const rendered = render(() => Hello); - - expect(rendered).not.toBe(null); - expect(rendered.getByText('Hello')).toBeInTheDocument(); - }); -}); diff --git a/packages/xforms-engine/src/lib/index.ts b/packages/xforms-engine/src/lib/index.ts index d56383794..3454450b7 100644 --- a/packages/xforms-engine/src/lib/index.ts +++ b/packages/xforms-engine/src/lib/index.ts @@ -1,2 +1,22 @@ +export type { AnyBodyElementDefinition, BodyDefinition } from './xform/body/BodyDefinition.ts'; +export type { ControlDefinition } from './xform/body/control/ControlDefinition.ts'; +export type { InputDefinition } from './xform/body/control/InputDefinition.ts'; +export type { + AnySelectDefinition, + SelectDefinition, +} from './xform/body/control/select/SelectDefinition.ts'; +export type { LabelDefinition } from './xform/body/text/LabelDefinition.ts'; +export type { TranslationState } from './xform/state/TranslationState.ts'; + +export type { + AnyDescendantNodeState, + DescendantNodeState, +} from './xform/state/DescendantNodeState.ts'; +export type { AnyChildState, AnyParentState, NodeState } from './xform/state/NodeState.ts'; +export type { RepeatInstanceState } from './xform/state/RepeatInstanceState.ts'; +export type { RepeatSequenceState } from './xform/state/RepeatSequenceState.ts'; +export type { SubtreeState } from './xform/state/SubtreeState.ts'; +export type { ValueNodeState } from './xform/state/ValueNodeState.ts'; + export { XFormDefinition } from './xform/XFormDefinition.ts'; export { EntryState } from './xform/state/EntryState.ts'; diff --git a/packages/xforms-engine/src/lib/xform/XFormDOM.test.ts b/packages/xforms-engine/src/lib/xform/XFormDOM.test.ts index 28c8bc507..be476f2ff 100644 --- a/packages/xforms-engine/src/lib/xform/XFormDOM.test.ts +++ b/packages/xforms-engine/src/lib/xform/XFormDOM.test.ts @@ -1,5 +1,5 @@ import { XFORMS_NAMESPACE_URI } from '@odk-web-forms/common/constants/xmlns.ts'; -import { beforeEach, describe, expect, it } from 'vitest'; +import type { HtmlXFormsElement } from '@odk-web-forms/common/test/fixtures/xform-dsl/HtmlXFormsElement.ts'; import { body, head, @@ -9,8 +9,8 @@ import { model, t, title, -} from '../../test/fixtures/xform-dsl'; -import type { HtmlXFormsElement } from '../../test/fixtures/xform-dsl/HtmlXFormsElement.ts'; +} from '@odk-web-forms/common/test/fixtures/xform-dsl/index.ts'; +import { beforeEach, describe, expect, it } from 'vitest'; import { XFormDOM } from './XFormDOM.ts'; describe('XFormDOM', () => { diff --git a/packages/xforms-engine/src/lib/xform/XFormDefinition.test.ts b/packages/xforms-engine/src/lib/xform/XFormDefinition.test.ts index e7132606b..4a3ce355b 100644 --- a/packages/xforms-engine/src/lib/xform/XFormDefinition.test.ts +++ b/packages/xforms-engine/src/lib/xform/XFormDefinition.test.ts @@ -1,4 +1,3 @@ -import { beforeEach, describe, expect, it } from 'vitest'; import { bind, body, @@ -10,7 +9,8 @@ import { model, t, title, -} from '../../test/fixtures/xform-dsl'; +} from '@odk-web-forms/common/test/fixtures/xform-dsl'; +import { beforeEach, describe, expect, it } from 'vitest'; import { XFormDefinition } from './XFormDefinition.ts'; import { BodyDefinition } from './body/BodyDefinition.ts'; import { ModelDefinition } from './model/ModelDefinition.ts'; diff --git a/packages/xforms-engine/src/lib/xform/body/BodyDefinition.test.ts b/packages/xforms-engine/src/lib/xform/body/BodyDefinition.test.ts index 05f72bdb8..095f231f5 100644 --- a/packages/xforms-engine/src/lib/xform/body/BodyDefinition.test.ts +++ b/packages/xforms-engine/src/lib/xform/body/BodyDefinition.test.ts @@ -1,4 +1,3 @@ -import { beforeEach, describe, expect, it } from 'vitest'; import { bind, body, @@ -12,7 +11,8 @@ import { repeat, t, title, -} from '../../../test/fixtures/xform-dsl'; +} from '@odk-web-forms/common/test/fixtures/xform-dsl'; +import { beforeEach, describe, expect, it } from 'vitest'; import { XFormDefinition } from '../XFormDefinition'; import type { BodyDefinition } from './BodyDefinition'; diff --git a/packages/xforms-engine/src/lib/xform/model/BindDefinition.test.ts b/packages/xforms-engine/src/lib/xform/model/BindDefinition.test.ts index 77416734c..10ffc28ab 100644 --- a/packages/xforms-engine/src/lib/xform/model/BindDefinition.test.ts +++ b/packages/xforms-engine/src/lib/xform/model/BindDefinition.test.ts @@ -1,4 +1,3 @@ -import { describe, expect, it } from 'vitest'; import { bind, body, @@ -8,7 +7,8 @@ import { model, t, title, -} from '../../../test/fixtures/xform-dsl/index.ts'; +} from '@odk-web-forms/common/test/fixtures/xform-dsl/index.ts'; +import { describe, expect, it } from 'vitest'; import { XFormDefinition } from '../XFormDefinition.ts'; describe('BindDefinition', () => { diff --git a/packages/xforms-engine/src/lib/xform/model/ModelBindMap.test.ts b/packages/xforms-engine/src/lib/xform/model/ModelBindMap.test.ts index 102825af2..243e5e0e9 100644 --- a/packages/xforms-engine/src/lib/xform/model/ModelBindMap.test.ts +++ b/packages/xforms-engine/src/lib/xform/model/ModelBindMap.test.ts @@ -1,4 +1,3 @@ -import { beforeEach, describe, expect, it } from 'vitest'; import { bind, body, @@ -8,7 +7,8 @@ import { model, t, title, -} from '../../../test/fixtures/xform-dsl'; +} from '@odk-web-forms/common/test/fixtures/xform-dsl'; +import { beforeEach, describe, expect, it } from 'vitest'; import { XFormDefinition } from '../XFormDefinition.ts'; import { BindDefinition } from './BindDefinition.ts'; import type { ModelBindMap } from './ModelBindMap.ts'; diff --git a/packages/xforms-engine/src/lib/xform/model/ModelDefinition.test.ts b/packages/xforms-engine/src/lib/xform/model/ModelDefinition.test.ts index 34880aa20..91fd060a7 100644 --- a/packages/xforms-engine/src/lib/xform/model/ModelDefinition.test.ts +++ b/packages/xforms-engine/src/lib/xform/model/ModelDefinition.test.ts @@ -1,6 +1,5 @@ import { expectEqualNode } from '@odk-web-forms/common/test/assertions/dom.ts'; import { xformsElement } from '@odk-web-forms/common/test/factories/xml.ts'; -import { beforeEach, describe, expect, it } from 'vitest'; import { bind, body, @@ -14,7 +13,8 @@ import { repeat, t, title, -} from '../../../test/fixtures/xform-dsl/index.ts'; +} from '@odk-web-forms/common/test/fixtures/xform-dsl/index.ts'; +import { beforeEach, describe, expect, it } from 'vitest'; import { XFormDefinition } from '../XFormDefinition.ts'; import { BindDefinition } from './BindDefinition.ts'; import { ModelDefinition } from './ModelDefinition.ts'; diff --git a/packages/xforms-engine/src/lib/xform/state/DescendantNodeState.ts b/packages/xforms-engine/src/lib/xform/state/DescendantNodeState.ts index 72f1f02a9..959ad4956 100644 --- a/packages/xforms-engine/src/lib/xform/state/DescendantNodeState.ts +++ b/packages/xforms-engine/src/lib/xform/state/DescendantNodeState.ts @@ -331,4 +331,4 @@ export abstract class DescendantNodeState } // eslint-disable-next-line @typescript-eslint/no-explicit-any -export type AnyDescandantNodeState = Extract>; +export type AnyDescendantNodeState = Extract>; diff --git a/packages/xforms-engine/src/lib/xform/state/EntryState.test.ts b/packages/xforms-engine/src/lib/xform/state/EntryState.test.ts index 0d1b7f5bd..e212b1798 100644 --- a/packages/xforms-engine/src/lib/xform/state/EntryState.test.ts +++ b/packages/xforms-engine/src/lib/xform/state/EntryState.test.ts @@ -1,5 +1,3 @@ -import { createRoot } from 'solid-js'; -import { afterEach, beforeEach, describe, expect, it } from 'vitest'; import { bind, body, @@ -9,7 +7,9 @@ import { model, t, title, -} from '../../../test/fixtures/xform-dsl/index.ts'; +} from '@odk-web-forms/common/test/fixtures/xform-dsl/index.ts'; +import { createRoot } from 'solid-js'; +import { afterEach, beforeEach, describe, expect, it } from 'vitest'; import { XFormDefinition } from '../XFormDefinition.ts'; import { EntryState } from './EntryState.ts'; import type { ValueNodeState } from './ValueNodeState.ts'; diff --git a/packages/xforms-engine/src/lib/xform/state/EntryState.ts b/packages/xforms-engine/src/lib/xform/state/EntryState.ts index 8107aa551..4b788a454 100644 --- a/packages/xforms-engine/src/lib/xform/state/EntryState.ts +++ b/packages/xforms-engine/src/lib/xform/state/EntryState.ts @@ -6,7 +6,7 @@ import type { XFormDefinition } from '../XFormDefinition.ts'; // eslint-disable-next-line @typescript-eslint/no-unused-vars -- referenced in JSDoc import type { ModelBindMap } from '../model/ModelBindMap.ts'; import type { RootDefinition } from '../model/RootDefinition.ts'; -import type { AnyDescandantNodeState } from './DescendantNodeState.ts'; +import type { AnyDescendantNodeState } from './DescendantNodeState.ts'; import type { AnyChildState, AnyNodeState, AnyParentState, NodeState } from './NodeState.ts'; import { RepeatSequenceState } from './RepeatSequenceState.ts'; import { SubtreeState } from './SubtreeState.ts'; @@ -141,8 +141,8 @@ export class EntryState implements NodeState<'root'> { * already performed in {@link ModelBindMap} */ protected sortDescendants( - descendants: readonly AnyDescandantNodeState[] - ): readonly AnyDescandantNodeState[] { + descendants: readonly AnyDescendantNodeState[] + ): readonly AnyDescendantNodeState[] { const { sortedNodesetIndexes } = this.form; return descendants.slice().sort((a, b) => { @@ -155,8 +155,8 @@ export class EntryState implements NodeState<'root'> { protected collectUninitializedDescendants( parent: AnyNodeState - ): readonly AnyDescandantNodeState[] { - let children: readonly AnyDescandantNodeState[]; + ): readonly AnyDescendantNodeState[] { + let children: readonly AnyDescendantNodeState[]; if (parent.type === 'repeat-sequence') { children = parent.getInstances(); @@ -175,7 +175,7 @@ export class EntryState implements NodeState<'root'> { return [parent, ...descendants]; } - getUninitializedDescendants(parent: AnyNodeState): readonly AnyDescandantNodeState[] { + getUninitializedDescendants(parent: AnyNodeState): readonly AnyDescendantNodeState[] { const descendants = this.collectUninitializedDescendants(parent); return this.sortDescendants(descendants); diff --git a/packages/xforms-engine/src/lib/xpath/parser.ts b/packages/xforms-engine/src/lib/xpath/parser.ts index f7c45f1a5..89c79565b 100644 --- a/packages/xforms-engine/src/lib/xpath/parser.ts +++ b/packages/xforms-engine/src/lib/xpath/parser.ts @@ -2,6 +2,8 @@ import xpathLanguage from '@odk-web-forms/tree-sitter-xpath/tree-sitter-xpath.wa import { ExpressionParser } from '@odk-web-forms/xpath/static/grammar/ExpressionParser.js'; import webTreeSitter from 'web-tree-sitter/tree-sitter.wasm?url'; +// TODO: passing these in is likely redundant now! It's also likely doubling the +// impact on final bundle size (in the engine, as well as in any client package) export const xpathParser = await ExpressionParser.init({ webTreeSitter, xpathLanguage, diff --git a/packages/xforms-engine/src/test/jr/repeat.test.ts b/packages/xforms-engine/src/test/jr/repeat.test.ts index 76fbe3ea0..14b783790 100644 --- a/packages/xforms-engine/src/test/jr/repeat.test.ts +++ b/packages/xforms-engine/src/test/jr/repeat.test.ts @@ -1,5 +1,3 @@ -import { createRoot } from 'solid-js'; -import { describe, it } from 'vitest'; import { bind, body, @@ -11,7 +9,9 @@ import { repeat, t, title, -} from '../fixtures/xform-dsl/index.ts'; +} from '@odk-web-forms/common/test/fixtures/xform-dsl/index.ts'; +import { createRoot } from 'solid-js'; +import { describe, it } from 'vitest'; import { Scenario } from '../scenario/Scenario.ts'; import { CoreMatchers, assertThat, intAnswer, stringAnswer } from '../scenario/assert.ts'; diff --git a/packages/xforms-engine/src/test/scenario/Scenario.ts b/packages/xforms-engine/src/test/scenario/Scenario.ts index e2ce6e402..69441b6ab 100644 --- a/packages/xforms-engine/src/test/scenario/Scenario.ts +++ b/packages/xforms-engine/src/test/scenario/Scenario.ts @@ -1,5 +1,6 @@ import { UpsertableMap } from '@odk-web-forms/common/lib/collections/UpsertableMap.ts'; import { UnreachableError } from '@odk-web-forms/common/lib/error/UnreachableError.ts'; +import type { XFormsElement } from '@odk-web-forms/common/test/fixtures/xform-dsl/XFormsElement.ts'; import type { CollectionValues } from '@odk-web-forms/common/types/collections/CollectionValues.ts'; import { createMemo, createSignal, type Accessor, type Signal } from 'solid-js'; import { afterEach, expect } from 'vitest'; @@ -15,7 +16,6 @@ import type { RepeatInstanceState } from '../../lib/xform/state/RepeatInstanceSt import type { RepeatSequenceState } from '../../lib/xform/state/RepeatSequenceState.ts'; import type { SubtreeState } from '../../lib/xform/state/SubtreeState.ts'; import { ValueNodeState } from '../../lib/xform/state/ValueNodeState.ts'; -import type { XFormsElement } from '../fixtures/xform-dsl/XFormsElement.ts'; import { castToString } from './cast.ts'; interface BodyElementSpecifier< diff --git a/packages/xforms-engine/tools/@solidjs/testing-library/index.ts b/packages/xforms-engine/tools/@solidjs/testing-library/index.ts deleted file mode 100644 index d0eb10fdc..000000000 --- a/packages/xforms-engine/tools/@solidjs/testing-library/index.ts +++ /dev/null @@ -1,329 +0,0 @@ -/* eslint-disable no-console */ -/** - * Derived from - * {@link https://github.com/solidjs/solid-testing-library/blob/805c3f70961d956d1ffacb08d435535e71d50398/src/index.ts} - * - * Modified to: - * - * - Make access to Node's global `process` object optional, allowing use in - * browser environments - * - Address type strictness errors (as with {@link ./types.ts}, largely by - * loosening types) - * - Use non-global `afterEach` for cleanup - */ - -/// - -import { getQueriesForElement, prettyDOM } from '@testing-library/dom'; -import type { Accessor, Owner } from 'solid-js'; -import { - createComponent, - createRoot, - createSignal, - getOwner, - lazy, - onError, - onMount, - runWithOwner, -} from 'solid-js'; -import { hydrate as solidHydrate, render as solidRender } from 'solid-js/web'; - -import type { - Options, - Ref, - RenderDirectiveOptions, - RenderDirectiveResult, - RenderHookOptions, - RenderHookResult, - Result, - Ui, -} from './types.ts'; - -type Process = typeof import('node:process'); - -declare global { - // eslint-disable-next-line no-var - var afterEach: ((callback: () => Promise | void) => void) | undefined; - - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore -- overriding the built-in node types has proved surprisingly difficult D: - // eslint-disable-next-line no-var - var process: Process | undefined; -} - -const { afterEach } = globalThis; - -/* istanbul ignore next */ -if (!globalThis.process?.env.STL_SKIP_AUTO_CLEANUP) { - if (typeof afterEach === 'function') { - afterEach(() => { - cleanup(); - }); - } -} - -const mountedContainers = new Set(); - -/** - * Renders a component to test it - * @param ui {Ui} a function calling the component - * @param options {Options} test options - * @returns {Result} references and tools to test the component - * - * ```ts - * const { getByText } = render(() => , { wrapper: I18nProvider }); - * const button = getByText('Accept'); - * ``` - * ### Options - * - `options.container` - the HTML element which the UI will be rendered into; otherwise a `
` will be created - * - `options.baseElement` - the parent of the container, the default will be `` - * - `options.queries` - custom queries (see https://testing-library.com/docs/queries/about) - * - `options.hydrate` - `true` if you want to test hydration - * - `options.wrapper` - a component that applies a context provider and returns `props.children` - * - `options.location` - wraps the component in a solid-router with memory integration pointing at the given path - * - * ### Result - * - `result.asFragment()` - returns the HTML fragment as string - * - `result.container` - the container in which the component is rendered - * - `result.baseElement` - the parent of the component - * - `result.debug()` - returns helpful debug output on the console - * - `result.unmount()` - unmounts the component, usually automatically called in cleanup - * - `result.`[queries] - testing library queries, see https://testing-library.com/docs/queries/about) - */ -function render(ui: Ui, options: Options = {}): Result { - const { queries, hydrate = false, location, wrapper } = options; - let { container, baseElement = container } = options; - - if (!baseElement) { - // Default to document.body instead of documentElement to avoid output of potentially-large - // head elements (such as JSS style blocks) in debug output. - baseElement = document.body; - } - - if (!container) { - container = baseElement.appendChild(document.createElement('div')); - } - - const wrappedUi: Ui = - typeof wrapper === 'function' - ? () => - createComponent(wrapper, { - get children() { - return createComponent(ui, {}); - }, - }) - : ui; - - const routedUi: Ui = - typeof location === 'string' || typeof options.routeDataFunc === 'function' - ? lazy(async () => { - try { - const { memoryIntegration, useNavigate, Router } = await import('@solidjs/router'); - return { - default: () => - createComponent(Router, { - get children() { - return [ - typeof location === 'string' - ? createComponent( - () => (useNavigate()(location, { replace: true, scroll: false }), null), - {} - ) - : null, - createComponent(wrappedUi, {}), - ]; - }, - // Ideally this wouldn't be `!` asserted, but it works around - // lack of `undefined` in underlying types (accommodation for - // `exactOptionalPropertyTypes` TypeScript config) - data: options.routeDataFunc!, - get source() { - return memoryIntegration(); - }, - }), - }; - } catch (e) { - console.error( - `Error attempting to initialize @solidjs/router:\n"${ - (e as Partial)?.message ?? 'unknown error' - }"` - ); - return { default: () => createComponent(wrappedUi, {}) }; - } - }) - : wrappedUi; - - const dispose = hydrate - ? (solidHydrate(routedUi, container) as unknown as () => void) - : solidRender(routedUi, container); - - // We'll add it to the mounted containers regardless of whether it's actually - // added to document.body so the cleanup method works regardless of whether - // they're passing us a custom container or not. - mountedContainers.add({ container, dispose }); - - const queryHelpers = getQueriesForElement(container, queries); - - return { - asFragment: () => container?.innerHTML, - container, - baseElement, - debug: (el = baseElement, maxLength, debugOptions) => - Array.isArray(el) - ? el.forEach((e) => console.log(prettyDOM(e, maxLength, debugOptions))) - : console.log(prettyDOM(el, maxLength, debugOptions)), - unmount: dispose, - ...queryHelpers, - } as Result; -} - -/** - * "Renders" a hook to test it - * @param hook {() => unknown)} a hook or primitive - * @param options {RenderHookOptions} test options - * @returns {RenderHookResult} references and tools to test the hook/primitive - * - * ```ts - * const { result } = render(useI18n, { wrapper: I18nProvider }); - * expect(result.t('test')).toBe('works'); - * ``` - * ### Options - * - `options.initialProps` - an array with the props that the hook will be provided with. - * - `options.wrapper` - a component that applies a context provider and **always** returns `props.children` - * - * ### Result - * - `result.result` - the return value of the hook/primitive - * - `result.owner` - the reactive owner in which the hook is run (in order to run other reactive code in the same context with [`runWithOwner`](https://www.solidjs.com/docs/latest/api#runwithowner)) - * - `result.cleanup()` - calls the cleanup function of the hook/primitive - */ -export function renderHook( - hook: (...args: A) => R, - options?: RenderHookOptions -): RenderHookResult { - const initialProps: A | [] = Array.isArray(options) ? options : options?.initialProps ?? []; - const [dispose, owner, result] = createRoot((disposeRoot) => { - if ( - typeof options === 'object' && - 'wrapper' in options && - typeof options.wrapper === 'function' - ) { - let hookResult: ReturnType | undefined; - - options.wrapper({ - get children() { - return createComponent(() => { - hookResult = hook(...(initialProps as A)); - return null; - }, {}); - }, - }); - return [disposeRoot, getOwner(), hookResult]; - } - return [disposeRoot, getOwner(), hook(...(initialProps as A))]; - }); - - mountedContainers.add({ dispose }); - - return { result, cleanup: dispose, owner }; -} - -/** - * Applies a directive to a test container - * @param directive {(ref, value: () => unknown)} a reusable custom directive - * @param options {RenderDirectiveOptions} test options - * @returns {RenderDirectiveResult} references and tools to test the directive - * - * ```ts - * const called = vi.fn() - * const { getByText, baseContainer } = render(onClickOutside, { initialValue: called }); - * expect(called).not.toBeCalled(); - * fireEvent.click(baseContainer); - * expect(called).toBeCalled(); - * ``` - * ### Options - * - `options.initialValue` - a value added to the directive - * - `options.targetElement` - the name of a HTML element as a string or a HTMLElement or a function returning a HTMLElement - * - `options.container` - the HTML element which the UI will be rendered into; otherwise a `
` will be created - * - `options.baseElement` - the parent of the container, the default will be `` - * - `options.queries` - custom queries (see https://testing-library.com/docs/queries/about) - * - `options.hydrate` - `true` if you want to test hydration - * - `options.wrapper` - a component that applies a context provider and returns `props.children` - * - * ### Result - * - `result.arg()` - the accessor for the value that the directive receives - * - `result.setArg()` - the setter for the value that the directive receives - * - `result.asFragment()` - returns the HTML fragment as string - * - `result.container` - the container in which the component is rendered - * - `result.baseElement` - the parent of the component - * - `result.debug()` - returns helpful debug output on the console - * - `result.unmount()` - unmounts the component, usually automatically called in cleanup - * - `result.`[queries] - testing library queries, see https://testing-library.com/docs/queries/about) - */ -export function renderDirective( - directive: (ref: E, arg: Accessor) => void, - options?: RenderDirectiveOptions -): RenderDirectiveResult { - const [arg, setArg] = createSignal(options?.initialValue as U); - - return Object.assign( - render(() => { - const targetElement = - (options?.targetElement && - // prettier-ignore - (options.targetElement instanceof HTMLElement - ? options.targetElement - : typeof options.targetElement === 'string' - ? document.createElement(options.targetElement) - : typeof options.targetElement === 'function' - ? options.targetElement() - : undefined)) ?? - document.createElement('div'); - onMount(() => directive(targetElement as E, arg)); - return targetElement; - }, options), - { arg, setArg } - ); -} - -export function testEffect( - fn: (done: (result: T) => void) => void, - owner?: Owner -): Promise { - const context: { - promise?: Promise; - done?: (result: T) => void; - fail?: (error: unknown) => void; - dispose?: () => void; - } = {}; - context.promise = new Promise((resolve, reject) => { - context.done = resolve; - context.fail = reject; - }); - context.dispose = createRoot((dispose) => { - onError((err) => context.fail?.(err)); - (owner ? (done: (result: T) => void) => runWithOwner(owner, () => fn(done)) : fn)((result) => { - context.done?.(result); - dispose(); - }); - return dispose; - }); - return context.promise; -} - -function cleanupAtContainer(ref: Ref) { - const { container, dispose } = ref; - dispose(); - - if (container?.parentNode === document.body) { - document.body.removeChild(container); - } - - mountedContainers.delete(ref); -} - -function cleanup() { - mountedContainers.forEach(cleanupAtContainer); -} - -export * from '@testing-library/dom'; -export { cleanup, render }; diff --git a/packages/xforms-engine/tools/@solidjs/testing-library/types.ts b/packages/xforms-engine/tools/@solidjs/testing-library/types.ts deleted file mode 100644 index 872df4aee..000000000 --- a/packages/xforms-engine/tools/@solidjs/testing-library/types.ts +++ /dev/null @@ -1,65 +0,0 @@ -/** - * Derived from - * {@link https://github.com/solidjs/solid-testing-library/blob/805c3f70961d956d1ffacb08d435535e71d50398/src/types.ts} - * - * Modified to address type strictness errors (largely by loosening types :/) - */ - -import type { RouteDataFunc } from '@solidjs/router'; -import type { BoundFunctions, Queries, prettyFormat } from '@testing-library/dom'; -import { queries } from '@testing-library/dom'; -import type { Accessor, Component, JSX, Owner, Setter } from 'solid-js'; - -export interface Ref { - container?: HTMLElement; - dispose: () => void; -} - -export type Ui = () => JSX.Element; - -export interface Options { - container?: HTMLElement; - baseElement?: HTMLElement; - queries?: Queries & typeof queries; - hydrate?: boolean; - wrapper?: Component<{ children: JSX.Element }>; - readonly location?: string; - routeDataFunc?: RouteDataFunc; -} - -export type DebugFn = ( - baseElement?: HTMLElement | HTMLElement[], - maxLength?: number, - options?: prettyFormat.OptionsReceived -) => void; - -export type Result = BoundFunctions & { - asFragment: () => string; - container: HTMLElement; - baseElement: HTMLElement; - debug: DebugFn; - unmount: () => void; -}; - -export type RenderHookOptions = - | A - | { - initialProps?: A; - wrapper?: Component<{ children: JSX.Element }>; - }; - -export interface RenderHookResult { - result: R | undefined; - owner: Owner | null; - cleanup: () => void; -} - -export type RenderDirectiveOptions = Options & { - initialValue?: A; - targetElement?: E | Lowercase | (() => E); -}; - -export type RenderDirectiveResult = Result & { - arg: Accessor; - setArg: Setter; -}; diff --git a/packages/xforms-engine/tools/vite/vitest-setup.ts b/packages/xforms-engine/tools/vite/vitest-setup.ts deleted file mode 100644 index 7fdab8bcc..000000000 --- a/packages/xforms-engine/tools/vite/vitest-setup.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as matchers from '@testing-library/jest-dom/matchers'; -import { expect } from 'vitest'; - -expect.extend(matchers); diff --git a/packages/xforms-engine/tsconfig.json b/packages/xforms-engine/tsconfig.json index dd7c3e9a8..6eecaccf0 100644 --- a/packages/xforms-engine/tsconfig.json +++ b/packages/xforms-engine/tsconfig.json @@ -11,8 +11,7 @@ "outDir": "./dist", "paths": { "@odk-web-forms/common/types/*": ["../common/types/*"], - "@odk-web-forms/common/*": ["../common/src/*"], - "@solidjs/testing-library": ["./tools/@solidjs/testing-library/index.ts"] + "@odk-web-forms/common/*": ["../common/src/*"] } } } diff --git a/packages/xforms-engine/vite.config.ts b/packages/xforms-engine/vite.config.ts index a4b6972f3..fe7df5786 100644 --- a/packages/xforms-engine/vite.config.ts +++ b/packages/xforms-engine/vite.config.ts @@ -47,6 +47,8 @@ export default defineConfig(({ mode }) => { entries.map((entry) => [entry.replaceAll(/^\.\/src\/|\.ts$/g, ''), entry]) ); + const external = ['@odk-web-forms/common']; + return { build: { target: 'esnext', @@ -59,32 +61,26 @@ export default defineConfig(({ mode }) => { entry: libEntry, formats: ['es'], name: '@odk-web-forms/xforms-engine', + fileName(_, entryName) { + if (entryName in libEntry) { + return `${entryName}.js`; + } + + return entryName.replace(/^\.src\//, '').replace(/\.ts$/, '.js'); + }, }, + rollupOptions: { external }, }, esbuild: { - sourcemap: true, target: 'esnext', format: 'esm', + exclude: external, }, optimizeDeps: { entries, force: true, - include: BROWSER_ENABLED - ? [ - // For reasons that aren't yet clear, these need to be present for - // WebKit tests. Without either, there are weird import errors that - // prevent at least one of the test modules from running. - '@odk-web-forms/xpath', - '@odk-web-forms/xpath/static/grammar/ExpressionParser.js', - - // This is necessary for the current versions of Vite and Vitest. It - // will almost certainly need to be removed when we upgrade. (Same - // goes for its presence in other packages' Vite configs.) - 'loupe', - ] - : [], }, plugins: [ @@ -92,7 +88,7 @@ export default defineConfig(({ mode }) => { // calling tsc dts({ entryRoot: './src', - exclude: ['test', 'vite-env.d.ts'], + exclude: ['@odk-web-forms/common', 'test', 'vite-env.d.ts'], include: ['src/lib/**/*.ts'], }), ], @@ -103,10 +99,12 @@ export default defineConfig(({ mode }) => { '@odk-web-forms/common': resolvePath(__dirname, '../common/src'), }, - conditions: isTest - ? // Without this, anything using Solid reactivity fails inexplicably... - ['development', 'browser'] - : ['import', 'browser'], + // prettier-ignore + conditions: + isTest + // Without this, anything using Solid reactivity fails inexplicably... + ? ['development', 'browser'] + : ['import', 'browser'], }, test: { diff --git a/packages/xpath/package.json b/packages/xpath/package.json index 02da997a5..55cad51f9 100644 --- a/packages/xpath/package.json +++ b/packages/xpath/package.json @@ -52,24 +52,20 @@ "crypto-js": "^4.1.1", "itertools-ts": "^1.23.0" }, - "peerDependencies": { - "@odk-web-forms/tree-sitter-xpath": "1.0.0-alpha.0", - "web-tree-sitter": "^0.20.8" - }, "devDependencies": { - "@babel/core": "^7.23.2", + "@babel/core": "^7.24.0", "@odk-web-forms/tree-sitter-xpath": "1.0.0-alpha.0", "@playwright/test": "^1.42.1", "@types/crypto-js": "^4.1.2", - "@vitest/browser": "^1.0.0-beta.3", + "@vitest/browser": "^1.3.1", "babel-plugin-transform-jsbi-to-bigint": "^1.4.0", - "jsdom": "^22.1.0", - "vite": "^4.5.0", - "vite-plugin-babel": "^1.1.3", - "vite-plugin-dts": "^3.6.1", + "jsdom": "^24.0.0", + "vite": "^5.1.5", + "vite-plugin-babel": "^1.2.0", + "vite-plugin-dts": "^3.7.3", "vite-plugin-no-bundle": "^3.0.0", - "vitest": "^1.0.0-beta.3", - "vitest-github-actions-reporter": "^0.10.0", - "web-tree-sitter": "^0.20.8" + "vitest": "^1.3.1", + "vitest-github-actions-reporter": "^0.11.1", + "web-tree-sitter": "0.21.0" } } diff --git a/packages/xpath/src/static/grammar/TreeSitterXPathParser.ts b/packages/xpath/src/static/grammar/TreeSitterXPathParser.ts index ac570cfa3..5e7f998f2 100644 --- a/packages/xpath/src/static/grammar/TreeSitterXPathParser.ts +++ b/packages/xpath/src/static/grammar/TreeSitterXPathParser.ts @@ -60,6 +60,28 @@ class ResourceResolutionError extends Error { } } +const WEB_ASSEMBLY_DATA_URL_PREFIX = 'data:application/wasm;base64,'; + +/** + * Node-specific: convert a `data:` URL resource to binary data. This will be + * encountered when `@odk-web-forms/xpath` is built/bundled, and downstream + * packages (like `@odk-web-forms/xforms-engine` and its clients) initialize + * a tree-sitter {@link Parser}. + */ +const resolveWebAssemblyDataURL = (resource: string): Uint8Array | null => { + const base64 = resource.replace(WEB_ASSEMBLY_DATA_URL_PREFIX, ''); + + if (base64 === resource) { + throw new ResourceResolutionError(resource, 'binary'); + } + + // Node's `Buffer` is supposed to be a Uint8Array. web-tree-sitter disagrees! + const buffer = Buffer.from(base64, 'base64'); + const u8a = new Uint8Array(buffer); + + return u8a; +}; + /** * Resolves tree-sitter and @odk-web-forms/tree-sitter-xpath WASM resources in * all supported environments. The following cases are handled: @@ -76,10 +98,14 @@ class ResourceResolutionError extends Error { * * - `resource` is a URL (likely a path relative to the server host), as * provided by Vite in an import like `package-name/file-name.wasm?url` + * (typically `@odk-web-forms/xpath` test mode) * * - `resource` is a `data:` URL which may be provided by a bundled build, which - * in turn is pre-fetched and stored as a `blob:` object URL for fetching the - * @odk-web-forms/tree-sitter-xpath language WASM asset. + * in turn is: + * + * - Converted to a `Uint8Array` (Node) + * - pre-fetched and stored as a `blob:` object URL for fetching the + * @odk-web-forms/tree-sitter-xpath language WASM asset (Browser) * * - `resource` is an arbitrary URL, as provided by a downstream user of * @odk-web-forms/xpath as a library. @@ -88,6 +114,14 @@ const resolveWebAssemblyResource = async ( resource: string, resourceType: T ): Promise> => { + if (IS_NODE && resourceType === 'binary' && resource.startsWith('data:')) { + const binary = resolveWebAssemblyDataURL(resource); + + if (binary != null) { + return binary as ResolvedResourceType; + } + } + const baseResult = unprefixNodeFileSystemPath(resource); if (resourceType === 'locator' && !baseResult.startsWith('data:')) { @@ -174,9 +208,17 @@ export class TreeSitterXPathParser { }; } + let xpathLanguageResourceType: ResourceType; + + if (IS_NODE && !xpathLanguageResource.startsWith('data:')) { + xpathLanguageResourceType = 'locator'; + } else { + xpathLanguageResourceType = 'binary'; + } + const xpathLanguageBinary = await resolveWebAssemblyResource( xpathLanguageResource, - IS_NODE ? 'locator' : 'binary' + xpathLanguageResourceType ); await Parser.init(webTreeSitterInitOptions); diff --git a/packages/xpath/vite.config.ts b/packages/xpath/vite.config.ts index 34d2c0cd3..5acac1ee1 100644 --- a/packages/xpath/vite.config.ts +++ b/packages/xpath/vite.config.ts @@ -45,8 +45,7 @@ const TEST_ENVIRONMENT = BROWSER_ENABLED ? 'node' : 'jsdom'; */ const TEST_TIME_ZONE = 'America/Phoenix'; -export default defineConfig(({ command, mode }) => { - const isBuild = command === 'build'; +export default defineConfig(({ mode }) => { const isTest = mode === 'test'; let timeZoneId: string | null = process.env.TZ ?? null; @@ -70,10 +69,6 @@ export default defineConfig(({ command, mode }) => { entries.map((entry) => [entry.replaceAll(/^\.\/src\/|\.ts$/g, ''), entry]) ); - if (isTest) { - entries.push('./tools/vite/vitest-setup.ts'); - } - return { build: { target: 'esnext', @@ -87,29 +82,18 @@ export default defineConfig(({ command, mode }) => { formats: ['es'], }, rollupOptions: { - external: isBuild ? ['@odk-web-forms/tree-sitter-xpath', 'web-tree-sitter'] : [], + external: ['fs', 'path'], }, }, define: { TZ: JSON.stringify(timeZoneId), }, esbuild: { - sourcemap: true, target: 'esnext', format: 'esm', }, optimizeDeps: { - // Entries is also specified here so Vite will detect dependencies which - // need to be converted to ESM. Namely: tree-sitter/tree-sitter.js, which - // is published as an optionally-CJS module. - // - // TODO: investigate transforming it to ESM separately, to minimize the - // necessity for special tooling consideration here (and downstream). - entries, - force: true, - - include: BROWSER_ENABLED ? ['loupe'] : [], }, plugins: [ // Transform the BigInt polyfill (used by the Temporal polyfill) to use native diff --git a/tsconfig.tools.json b/tsconfig.tools.json index 4c05a7248..306de7787 100644 --- a/tsconfig.tools.json +++ b/tsconfig.tools.json @@ -11,8 +11,7 @@ "packages/*/playwright.config.ts", "packages/*/vite.config.ts", "packages/*/vitest.config.ts", - "packages/xforms-engine/vite.*.config.ts", - "vendor-packages/*/vite.config.ts" + "packages/xforms-engine/vite.*.config.ts" ], "compilerOptions": { "paths": { diff --git a/turbo.json b/turbo.json index a9b8260ae..d1416a6f4 100644 --- a/turbo.json +++ b/turbo.json @@ -12,11 +12,8 @@ "dependsOn": ["@odk-web-forms/tree-sitter-xpath#build"], "outputMode": "new-only" }, - "suid#build": { - "outputMode": "new-only" - }, "@odk-web-forms/xforms-engine#build": { - "dependsOn": ["suid#build", "@odk-web-forms/xpath#build"], + "dependsOn": ["@odk-web-forms/xpath#build"], "outputs": ["dist/**"] }, "@odk-web-forms/ui-vue#build": { diff --git a/vendor-packages/suid/README.md b/vendor-packages/suid/README.md deleted file mode 100644 index 2b2b035e2..000000000 --- a/vendor-packages/suid/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# suid (vendor package) - -This is a module to build, and then to re-export, the [`@suid/*`](https://suid.io/) packages. This is a workaround (hopefully temporary!) for tooling issues with Vite and Vitest. The primary remaining issue is that SUID imports cause test runs to hang indefinitely under certain circumstances (most recently, in Chromium and Firefox). The nature of the workaround is to compile SUID's packaged `.jsx` files as compiled JavaScript (with `solid-js` and `solid-js/web` imports externalized, not bundled). - -This has been pretty quickly thrown together, and it is definitely incomplete. If the workaround remains necessary, we may need to expand beyond the currently built packages. And we will definitely need to be cautious about some of the assumptions made about types. diff --git a/vendor-packages/suid/package.json b/vendor-packages/suid/package.json deleted file mode 100644 index bd7d48a3d..000000000 --- a/vendor-packages/suid/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "suid", - "description": "Prebuilt package of @suid/*", - "version": "1.0.0-alpha.0", - "type": "module", - "files": [ - "dist" - ], - "exports": { - "./material": { - "types": "./dist/material.d.ts", - "default": "./dist/material.js" - }, - "./icons-material/*": { - "types": "./src/icons-material-icon-module.d.ts", - "default": "./dist/node_modules/@suid/icons-material/*.js" - } - }, - "engines": { - "node": "^18.19.1 || ^20.11.1", - "yarn": "1.22.19" - }, - "scripts": { - "build": "vite build" - }, - "dependencies": { - "@suid/base": "0.8.5", - "@suid/css": "0.4.0", - "@suid/icons-material": "^0.6.11", - "@suid/material": "0.15.1", - "@suid/styled-engine": "0.6.1", - "@suid/system": "0.10.5", - "@suid/types": "0.5.3", - "@suid/utils": "0.8.0", - "vite": "^4.5.0", - "vite-plugin-dts": "^3.6.1", - "vite-plugin-no-bundle": "^3.0.0", - "vite-plugin-solid": "^2.7.2" - } -} diff --git a/vendor-packages/suid/src/icons-material-icon-module.d.ts b/vendor-packages/suid/src/icons-material-icon-module.d.ts deleted file mode 100644 index d37030ff6..000000000 --- a/vendor-packages/suid/src/icons-material-icon-module.d.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from '@suid/material/SvgIcon'; diff --git a/vendor-packages/suid/src/icons-material.ts b/vendor-packages/suid/src/icons-material.ts deleted file mode 100644 index ee6522c7d..000000000 --- a/vendor-packages/suid/src/icons-material.ts +++ /dev/null @@ -1 +0,0 @@ -export * from '@suid/icons-material'; diff --git a/vendor-packages/suid/src/material.ts b/vendor-packages/suid/src/material.ts deleted file mode 100644 index df969288e..000000000 --- a/vendor-packages/suid/src/material.ts +++ /dev/null @@ -1 +0,0 @@ -export * from '@suid/material'; diff --git a/vendor-packages/suid/tsconfig.json b/vendor-packages/suid/tsconfig.json deleted file mode 100644 index 76c61817a..000000000 --- a/vendor-packages/suid/tsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "include": ["src"], - "compilerOptions": { - "allowSyntheticDefaultImports": false, - "declarationDir": "./dist", - "jsx": "preserve", - "jsxImportSource": "solid-js", - "outDir": "./dist" - } -} diff --git a/vendor-packages/suid/vite.config.ts b/vendor-packages/suid/vite.config.ts deleted file mode 100644 index 799a874d5..000000000 --- a/vendor-packages/suid/vite.config.ts +++ /dev/null @@ -1,68 +0,0 @@ -/// -/// - -// TODO: share Vite config where makes sense - -import { defineConfig } from 'vite'; -import dts from 'vite-plugin-dts'; -import noBundle from 'vite-plugin-no-bundle'; -import solidPlugin from 'vite-plugin-solid'; - -export default defineConfig(() => { - return { - build: { - target: 'esnext', - minify: false, - sourcemap: true, - emptyOutDir: false, - outDir: './dist', - manifest: true, - rollupOptions: { - external: ['solid-js', 'solid-js/web'], - }, - lib: { - entry: { - material: './src/material.ts', - 'icons-material': './src/icons-material.ts', - }, - formats: ['es' as const], - name: 'suid', - }, - }, - esbuild: { - sourcemap: true, - target: 'esnext', - }, - optimizeDeps: { - esbuildOptions: { - target: 'esnext', - }, - exclude: ['solid-js', 'solid-js/web'], - entries: ['./src/**/*.ts'], - }, - plugins: [ - // Solid's JSX transform (dom-expressions), optimizes DOM access in components - solidPlugin({ - babel: { - babelrc: false, - configFile: false, - - // Transform the BigInt polyfill (used by the Temporal polyfill) to use native - // APIs. We can safely assume BigInt is available for our target platforms. - plugins: ['transform-jsbi-to-bigint'], - }, - }), - - // Generate type definitions. This turned out to be more reliable in - // @odk-web-forms/xpath. TODO: revisit in case it makes sense to use tsc - // directly in this package - dts(), - - noBundle(), - ], - - resolve: { - conditions: ['browser', 'development'], - }, - }; -}); diff --git a/yarn.lock b/yarn.lock index 7bf2693bd..8674873ca 100644 --- a/yarn.lock +++ b/yarn.lock @@ -23,11 +23,6 @@ tunnel "^0.0.6" undici "^5.25.4" -"@adobe/css-tools@^4.3.1": - version "4.3.1" - resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.3.1.tgz#abfccb8ca78075a2b6187345c26243c1a0842f28" - integrity sha512-/62yikz7NLScCGAAST5SHdnjaDJQBDq0M2muyRTpf2VQhw6StBg2ALiu73zSJQ4fMVLA+0uBhBHAle7Wg+2kSg== - "@ampproject/remapping@^2.2.0": version "2.2.1" resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" @@ -43,7 +38,7 @@ dependencies: tree-sitter "^0.16.1" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.22.13": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.22.13": version "7.22.13" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== @@ -69,7 +64,7 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== -"@babel/core@^7.23.0", "@babel/core@^7.23.2": +"@babel/core@^7.23.2": version "7.23.2" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.2.tgz#ed10df0d580fff67c5f3ee70fd22e2e4c90a9f94" integrity sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ== @@ -111,7 +106,28 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.21.1", "@babel/generator@^7.22.15", "@babel/generator@^7.23.0": +"@babel/core@^7.24.0": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.0.tgz#56cbda6b185ae9d9bed369816a8f4423c5f2ff1b" + integrity sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.24.0" + "@babel/parser" "^7.24.0" + "@babel/template" "^7.24.0" + "@babel/traverse" "^7.24.0" + "@babel/types" "^7.24.0" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/generator@^7.22.15", "@babel/generator@^7.23.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420" integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g== @@ -160,21 +176,6 @@ lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz#97a61b385e57fe458496fad19f8e63b63c867de4" - integrity sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-member-expression-to-functions" "^7.22.15" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - semver "^6.3.1" - "@babel/helper-create-class-features-plugin@^7.23.6": version "7.23.10" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.10.tgz#25d55fafbaea31fd0e723820bb6cc3df72edf7ea" @@ -190,12 +191,12 @@ "@babel/helper-split-export-declaration" "^7.22.6" semver "^6.3.1" -"@babel/helper-environment-visitor@^7.22.20", "@babel/helper-environment-visitor@^7.22.5": +"@babel/helper-environment-visitor@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== -"@babel/helper-function-name@^7.22.5", "@babel/helper-function-name@^7.23.0": +"@babel/helper-function-name@^7.23.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== @@ -224,7 +225,7 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.22.15": +"@babel/helper-module-imports@^7.22.15": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== @@ -265,7 +266,7 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== -"@babel/helper-replace-supers@^7.22.20", "@babel/helper-replace-supers@^7.22.9": +"@babel/helper-replace-supers@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== @@ -338,6 +339,15 @@ "@babel/traverse" "^7.23.9" "@babel/types" "^7.23.9" +"@babel/helpers@^7.24.0": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.0.tgz#a3dd462b41769c95db8091e49cfe019389a9409b" + integrity sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA== + dependencies: + "@babel/template" "^7.24.0" + "@babel/traverse" "^7.24.0" + "@babel/types" "^7.24.0" + "@babel/highlight@^7.22.13": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" @@ -366,7 +376,12 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.9.tgz#7b903b6149b0f8fa7ad564af646c4c38a77fc44b" integrity sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA== -"@babel/plugin-syntax-jsx@^7.18.6", "@babel/plugin-syntax-jsx@^7.22.5": +"@babel/parser@^7.24.0": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.0.tgz#26a3d1ff49031c53a97d03b604375f028746a9ac" + integrity sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg== + +"@babel/plugin-syntax-jsx@^7.18.6": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918" integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== @@ -380,13 +395,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-syntax-typescript@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz#aac8d383b062c5072c647a31ef990c1d0af90272" - integrity sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-typescript@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz#24f460c85dbbc983cd2b9c4994178bcc01df958f" @@ -394,25 +402,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-commonjs@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz#b3dba4757133b2762c00f4f94590cf6d52602481" - integrity sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ== - dependencies: - "@babel/helper-module-transforms" "^7.23.0" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-simple-access" "^7.22.5" - -"@babel/plugin-transform-typescript@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.15.tgz#15adef906451d86349eb4b8764865c960eb54127" - integrity sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-typescript" "^7.22.5" - "@babel/plugin-transform-typescript@^7.23.3": version "7.23.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz#aa36a94e5da8d94339ae3a4e22d40ed287feb34c" @@ -423,24 +412,6 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-typescript" "^7.23.3" -"@babel/preset-typescript@^7.23.0": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.23.2.tgz#c8de488130b7081f7e1482936ad3de5b018beef4" - integrity sha512-u4UJc1XsS1GhIGteM8rnGiIvf9rJpiVgMEeCnwlLA7WJPC+jcXWJAGxYmeqs5hOZD8BbAfnV5ezBOxQbb4OUxA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.15" - "@babel/plugin-syntax-jsx" "^7.22.5" - "@babel/plugin-transform-modules-commonjs" "^7.23.0" - "@babel/plugin-transform-typescript" "^7.22.15" - -"@babel/runtime@^7.12.5", "@babel/runtime@^7.9.2": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.2.tgz#062b0ac103261d68a966c4c7baf2ae3e62ec3885" - integrity sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg== - dependencies: - regenerator-runtime "^0.14.0" - "@babel/runtime@^7.20.1", "@babel/runtime@^7.5.5": version "7.23.1" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.1.tgz#72741dc4d413338a91dcb044a86f3c0bc402646d" @@ -466,6 +437,15 @@ "@babel/parser" "^7.23.9" "@babel/types" "^7.23.9" +"@babel/template@^7.24.0": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.0.tgz#c6a524aa93a4a05d66aaf31654258fae69d87d50" + integrity sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/parser" "^7.24.0" + "@babel/types" "^7.24.0" + "@babel/traverse@^7.22.20", "@babel/traverse@^7.23.2": version "7.23.2" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.2.tgz#329c7a06735e144a506bdb2cad0268b7f46f4ad8" @@ -498,7 +478,23 @@ debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.20.7", "@babel/types@^7.21.2", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0": +"@babel/traverse@^7.24.0": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.0.tgz#4a408fbf364ff73135c714a2ab46a5eab2831b1e" + integrity sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.24.0" + "@babel/types" "^7.24.0" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg== @@ -516,6 +512,15 @@ "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" +"@babel/types@^7.24.0": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.0.tgz#3b951f435a92e7333eba05b7566fd297960ea1bf" + integrity sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w== + dependencies: + "@babel/helper-string-parser" "^7.23.4" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + "@changesets/apply-release-plan@^6.1.4": version "6.1.4" resolved "https://registry.yarnpkg.com/@changesets/apply-release-plan/-/apply-release-plan-6.1.4.tgz#09293256090737ecd2f683842d6d732034a5e3c8" @@ -733,115 +738,120 @@ human-id "^1.0.2" prettier "^2.7.1" -"@esbuild/android-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622" - integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ== - -"@esbuild/android-arm@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682" - integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw== - -"@esbuild/android-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2" - integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg== - -"@esbuild/darwin-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1" - integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA== - -"@esbuild/darwin-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d" - integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ== - -"@esbuild/freebsd-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54" - integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw== - -"@esbuild/freebsd-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e" - integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ== - -"@esbuild/linux-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0" - integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA== - -"@esbuild/linux-arm@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0" - integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg== - -"@esbuild/linux-ia32@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7" - integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA== - -"@esbuild/linux-loong64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d" - integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg== - -"@esbuild/linux-mips64el@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231" - integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ== - -"@esbuild/linux-ppc64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb" - integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA== - -"@esbuild/linux-riscv64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6" - integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A== - -"@esbuild/linux-s390x@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071" - integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ== - -"@esbuild/linux-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338" - integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== - -"@esbuild/netbsd-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1" - integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A== - -"@esbuild/openbsd-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae" - integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg== - -"@esbuild/sunos-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d" - integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ== - -"@esbuild/win32-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9" - integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg== - -"@esbuild/win32-ia32@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102" - integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g== - -"@esbuild/win32-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" - integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== +"@esbuild/aix-ppc64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz#d1bc06aedb6936b3b6d313bf809a5a40387d2b7f" + integrity sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA== + +"@esbuild/android-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz#7ad65a36cfdb7e0d429c353e00f680d737c2aed4" + integrity sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA== + +"@esbuild/android-arm@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.12.tgz#b0c26536f37776162ca8bde25e42040c203f2824" + integrity sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w== + +"@esbuild/android-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.12.tgz#cb13e2211282012194d89bf3bfe7721273473b3d" + integrity sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew== + +"@esbuild/darwin-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz#cbee41e988020d4b516e9d9e44dd29200996275e" + integrity sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g== + +"@esbuild/darwin-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz#e37d9633246d52aecf491ee916ece709f9d5f4cd" + integrity sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A== + +"@esbuild/freebsd-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz#1ee4d8b682ed363b08af74d1ea2b2b4dbba76487" + integrity sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA== + +"@esbuild/freebsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz#37a693553d42ff77cd7126764b535fb6cc28a11c" + integrity sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg== + +"@esbuild/linux-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz#be9b145985ec6c57470e0e051d887b09dddb2d4b" + integrity sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA== + +"@esbuild/linux-arm@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz#207ecd982a8db95f7b5279207d0ff2331acf5eef" + integrity sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w== + +"@esbuild/linux-ia32@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz#d0d86b5ca1562523dc284a6723293a52d5860601" + integrity sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA== + +"@esbuild/linux-loong64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz#9a37f87fec4b8408e682b528391fa22afd952299" + integrity sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA== + +"@esbuild/linux-mips64el@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz#4ddebd4e6eeba20b509d8e74c8e30d8ace0b89ec" + integrity sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w== + +"@esbuild/linux-ppc64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz#adb67dadb73656849f63cd522f5ecb351dd8dee8" + integrity sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg== + +"@esbuild/linux-riscv64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz#11bc0698bf0a2abf8727f1c7ace2112612c15adf" + integrity sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg== + +"@esbuild/linux-s390x@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz#e86fb8ffba7c5c92ba91fc3b27ed5a70196c3cc8" + integrity sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg== + +"@esbuild/linux-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz#5f37cfdc705aea687dfe5dfbec086a05acfe9c78" + integrity sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg== + +"@esbuild/netbsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz#29da566a75324e0d0dd7e47519ba2f7ef168657b" + integrity sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA== + +"@esbuild/openbsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz#306c0acbdb5a99c95be98bdd1d47c916e7dc3ff0" + integrity sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw== + +"@esbuild/sunos-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz#0933eaab9af8b9b2c930236f62aae3fc593faf30" + integrity sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA== + +"@esbuild/win32-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz#773bdbaa1971b36db2f6560088639ccd1e6773ae" + integrity sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A== + +"@esbuild/win32-ia32@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz#000516cad06354cc84a73f0943a4aa690ef6fd67" + integrity sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ== + +"@esbuild/win32-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz#c57c8afbb4054a3ab8317591a0b7320360b444ae" + integrity sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA== "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" @@ -1000,32 +1010,32 @@ globby "^11.0.0" read-yaml-file "^1.1.0" -"@microsoft/api-extractor-model@7.28.2": - version "7.28.2" - resolved "https://registry.yarnpkg.com/@microsoft/api-extractor-model/-/api-extractor-model-7.28.2.tgz#91c66dd820ccc70e0c163e06b392d8363f1b9269" - integrity sha512-vkojrM2fo3q4n4oPh4uUZdjJ2DxQ2+RnDQL/xhTWSRUNPF6P4QyrvY357HBxbnltKcYu+nNNolVqc6TIGQ73Ig== +"@microsoft/api-extractor-model@7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@microsoft/api-extractor-model/-/api-extractor-model-7.28.3.tgz#f6a213e41a2274d5195366b646954daee39e8493" + integrity sha512-wT/kB2oDbdZXITyDh2SQLzaWwTOFbV326fP0pUwNW00WeliARs0qjmXBWmGWardEzp2U3/axkO3Lboqun6vrig== dependencies: "@microsoft/tsdoc" "0.14.2" "@microsoft/tsdoc-config" "~0.16.1" - "@rushstack/node-core-library" "3.61.0" + "@rushstack/node-core-library" "3.62.0" -"@microsoft/api-extractor@^7.38.0": - version "7.38.0" - resolved "https://registry.yarnpkg.com/@microsoft/api-extractor/-/api-extractor-7.38.0.tgz#e72546d6766b3866578a462b040f71b17779e1c5" - integrity sha512-e1LhZYnfw+JEebuY2bzhw0imDCl1nwjSThTrQqBXl40hrVo6xm3j/1EpUr89QyzgjqmAwek2ZkIVZbrhaR+cqg== +"@microsoft/api-extractor@7.39.0": + version "7.39.0" + resolved "https://registry.yarnpkg.com/@microsoft/api-extractor/-/api-extractor-7.39.0.tgz#41c25f7f522e8b9376debda07364ff234e602eff" + integrity sha512-PuXxzadgnvp+wdeZFPonssRAj/EW4Gm4s75TXzPk09h3wJ8RS3x7typf95B4vwZRrPTQBGopdUl+/vHvlPdAcg== dependencies: - "@microsoft/api-extractor-model" "7.28.2" + "@microsoft/api-extractor-model" "7.28.3" "@microsoft/tsdoc" "0.14.2" "@microsoft/tsdoc-config" "~0.16.1" - "@rushstack/node-core-library" "3.61.0" + "@rushstack/node-core-library" "3.62.0" "@rushstack/rig-package" "0.5.1" - "@rushstack/ts-command-line" "4.16.1" + "@rushstack/ts-command-line" "4.17.1" colors "~1.2.1" lodash "~4.17.15" resolve "~1.22.1" semver "~7.5.4" source-map "~0.6.1" - typescript "~5.0.4" + typescript "5.3.3" "@microsoft/tsdoc-config@~0.16.1": version "0.16.2" @@ -1104,29 +1114,94 @@ dependencies: playwright "1.42.1" -"@polka/url@^1.0.0-next.20": - version "1.0.0-next.23" - resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.23.tgz#498e41218ab3b6a1419c735e5c6ae2c5ed609b6c" - integrity sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg== +"@polka/url@^1.0.0-next.24": + version "1.0.0-next.25" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.25.tgz#f077fdc0b5d0078d30893396ff4827a13f99e817" + integrity sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ== "@popperjs/core@^2.11.8": version "2.11.8" resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== -"@rollup/pluginutils@^5.0.5": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.5.tgz#bbb4c175e19ebfeeb8c132c2eea0ecb89941a66c" - integrity sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q== +"@rollup/pluginutils@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz#7e53eddc8c7f483a4ad0b94afb1f7f5fd3c771e0" + integrity sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g== dependencies: "@types/estree" "^1.0.0" estree-walker "^2.0.2" picomatch "^2.3.1" -"@rushstack/node-core-library@3.61.0": - version "3.61.0" - resolved "https://registry.yarnpkg.com/@rushstack/node-core-library/-/node-core-library-3.61.0.tgz#7441a0d2ae5268b758a7a49588a78cd55af57e66" - integrity sha512-tdOjdErme+/YOu4gPed3sFS72GhtWCgNV9oDsHDnoLY5oDfwjKUc9Z+JOZZ37uAxcm/OCahDHfuu2ugqrfWAVQ== +"@rollup/rollup-android-arm-eabi@4.12.1": + version "4.12.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.12.1.tgz#11aaa02a933864b87f0b31cf2b755734e1f22787" + integrity sha512-iU2Sya8hNn1LhsYyf0N+L4Gf9Qc+9eBTJJJsaOGUp+7x4n2M9dxTt8UvhJl3oeftSjblSlpCfvjA/IfP3g5VjQ== + +"@rollup/rollup-android-arm64@4.12.1": + version "4.12.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.12.1.tgz#b1e606fb4b46b38dc32bf010d513449462d669e9" + integrity sha512-wlzcWiH2Ir7rdMELxFE5vuM7D6TsOcJ2Yw0c3vaBR3VOsJFVTx9xvwnAvhgU5Ii8Gd6+I11qNHwndDscIm0HXg== + +"@rollup/rollup-darwin-arm64@4.12.1": + version "4.12.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.12.1.tgz#dc21df1be9402671a8b6b15a93dd5953c68ec114" + integrity sha512-YRXa1+aZIFN5BaImK+84B3uNK8C6+ynKLPgvn29X9s0LTVCByp54TB7tdSMHDR7GTV39bz1lOmlLDuedgTwwHg== + +"@rollup/rollup-darwin-x64@4.12.1": + version "4.12.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.12.1.tgz#397dcc4427d774f29b9954676893574ac563bf0b" + integrity sha512-opjWJ4MevxeA8FhlngQWPBOvVWYNPFkq6/25rGgG+KOy0r8clYwL1CFd+PGwRqqMFVQ4/Qd3sQu5t7ucP7C/Uw== + +"@rollup/rollup-linux-arm-gnueabihf@4.12.1": + version "4.12.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.12.1.tgz#d851fd49d617e7792e7cde8e5a95ca51ea520fe5" + integrity sha512-uBkwaI+gBUlIe+EfbNnY5xNyXuhZbDSx2nzzW8tRMjUmpScd6lCQYKY2V9BATHtv5Ef2OBq6SChEP8h+/cxifQ== + +"@rollup/rollup-linux-arm64-gnu@4.12.1": + version "4.12.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.12.1.tgz#e41a271ae51f79ffee6fb2b5597cc81b4ef66ad9" + integrity sha512-0bK9aG1kIg0Su7OcFTlexkVeNZ5IzEsnz1ept87a0TUgZ6HplSgkJAnFpEVRW7GRcikT4GlPV0pbtVedOaXHQQ== + +"@rollup/rollup-linux-arm64-musl@4.12.1": + version "4.12.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.12.1.tgz#d3b4cd6ef18d0aa7103129755e0c535701624fac" + integrity sha512-qB6AFRXuP8bdkBI4D7UPUbE7OQf7u5OL+R94JE42Z2Qjmyj74FtDdLGeriRyBDhm4rQSvqAGCGC01b8Fu2LthQ== + +"@rollup/rollup-linux-riscv64-gnu@4.12.1": + version "4.12.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.12.1.tgz#215101b2bb768cce2f2227145b8dd5c3c716c259" + integrity sha512-sHig3LaGlpNgDj5o8uPEoGs98RII8HpNIqFtAI8/pYABO8i0nb1QzT0JDoXF/pxzqO+FkxvwkHZo9k0NJYDedg== + +"@rollup/rollup-linux-x64-gnu@4.12.1": + version "4.12.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.12.1.tgz#34a12fa305e167105eab70dbf577cd41e5199709" + integrity sha512-nD3YcUv6jBJbBNFvSbp0IV66+ba/1teuBcu+fBBPZ33sidxitc6ErhON3JNavaH8HlswhWMC3s5rgZpM4MtPqQ== + +"@rollup/rollup-linux-x64-musl@4.12.1": + version "4.12.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.12.1.tgz#3f000b5a92a32b844e385e1166979c87882930a3" + integrity sha512-7/XVZqgBby2qp/cO0TQ8uJK+9xnSdJ9ct6gSDdEr4MfABrjTyrW6Bau7HQ73a2a5tPB7hno49A0y1jhWGDN9OQ== + +"@rollup/rollup-win32-arm64-msvc@4.12.1": + version "4.12.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.12.1.tgz#27977d91f5059645ebb3b7fbf4429982de2278d3" + integrity sha512-CYc64bnICG42UPL7TrhIwsJW4QcKkIt9gGlj21gq3VV0LL6XNb1yAdHVp1pIi9gkts9gGcT3OfUYHjGP7ETAiw== + +"@rollup/rollup-win32-ia32-msvc@4.12.1": + version "4.12.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.12.1.tgz#0d252acd5af0274209c74374867ee8b949843d75" + integrity sha512-LN+vnlZ9g0qlHGlS920GR4zFCqAwbv2lULrR29yGaWP9u7wF5L7GqWu9Ah6/kFZPXPUkpdZwd//TNR+9XC9hvA== + +"@rollup/rollup-win32-x64-msvc@4.12.1": + version "4.12.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.12.1.tgz#cd8d175e001c212d5ac71c7827ef1d5c5e14494c" + integrity sha512-n+vkrSyphvmU0qkQ6QBNXCGr2mKjhP08mPRM/Xp5Ck2FV4NrHU+y6axzDeixUrCBHVUS51TZhjqrKBBsHLKb2Q== + +"@rushstack/node-core-library@3.62.0": + version "3.62.0" + resolved "https://registry.yarnpkg.com/@rushstack/node-core-library/-/node-core-library-3.62.0.tgz#a30a44a740b522944165f0faa6644134eb95be1d" + integrity sha512-88aJn2h8UpSvdwuDXBv1/v1heM6GnBf3RjEy6ZPP7UnzHNCqOHA2Ut+ScYUbXcqIdfew9JlTAe3g+cnX9xQ/Aw== dependencies: colors "~1.2.1" fs-extra "~7.0.1" @@ -1144,10 +1219,10 @@ resolve "~1.22.1" strip-json-comments "~3.1.1" -"@rushstack/ts-command-line@4.16.1": - version "4.16.1" - resolved "https://registry.yarnpkg.com/@rushstack/ts-command-line/-/ts-command-line-4.16.1.tgz#3537bbc323f77c8646646465c579b992d39feb16" - integrity sha512-+OCsD553GYVLEmz12yiFjMOzuPeCiZ3f8wTiFHL30ZVXexTyPmgjwXEhg2K2P0a2lVf+8YBy7WtPoflB2Fp8/A== +"@rushstack/ts-command-line@4.17.1": + version "4.17.1" + resolved "https://registry.yarnpkg.com/@rushstack/ts-command-line/-/ts-command-line-4.17.1.tgz#c78db928ce5b93f2e98fd9e14c24f3f3876e57f1" + integrity sha512-2jweO1O57BYP5qdBGl6apJLB+aRIn5ccIRTPDyULh0KMwVzFqWtw6IZWt1qtUoZD/pD2RNkIOosH6Cq45rIYeg== dependencies: "@types/argparse" "1.0.38" argparse "~1.0.9" @@ -1263,34 +1338,6 @@ "@types/babel__generator" "^7.6.5" "@types/babel__traverse" "^7.20.2" -"@testing-library/dom@^9.3.3": - version "9.3.3" - resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-9.3.3.tgz#108c23a5b0ef51121c26ae92eb3179416b0434f5" - integrity sha512-fB0R+fa3AUqbLHWyxXa2kGVtf1Fe1ZZFr0Zp6AIbIAzXb2mKbEXl+PCQNUOaq5lbTab5tfctfXRNsWXxa2f7Aw== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/runtime" "^7.12.5" - "@types/aria-query" "^5.0.1" - aria-query "5.1.3" - chalk "^4.1.0" - dom-accessibility-api "^0.5.9" - lz-string "^1.5.0" - pretty-format "^27.0.2" - -"@testing-library/jest-dom@^6.1.4": - version "6.1.4" - resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.1.4.tgz#cf0835c33bc5ef00befb9e672b1e3e6a710e30e3" - integrity sha512-wpoYrCYwSZ5/AxcrjLxJmCU6I5QAJXslEeSiMQqaWmP2Kzpd1LvF/qxmAIW2qposULGWq2gw30GgVNFLSc2Jnw== - dependencies: - "@adobe/css-tools" "^4.3.1" - "@babel/runtime" "^7.9.2" - aria-query "^5.0.0" - chalk "^3.0.0" - css.escape "^1.5.1" - dom-accessibility-api "^0.5.6" - lodash "^4.17.15" - redent "^3.0.0" - "@tootallnate/once@2": version "2.0.0" resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" @@ -1316,15 +1363,10 @@ resolved "https://registry.yarnpkg.com/@types/argparse/-/argparse-1.0.38.tgz#a81fd8606d481f873a3800c6ebae4f1d768a56a9" integrity sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA== -"@types/aria-query@^5.0.1": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.3.tgz#07570ebd25f9b516c910a91f7244052c9b58eabc" - integrity sha512-0Z6Tr7wjKJIk4OUEjVUQMtyunLDy339vcMaj38Kpj6jM2OE1p3S4kXExKZ7a3uXQAPCoy3sbrP1wibDKaf39oA== - -"@types/babel__core@^7.20.2": - version "7.20.3" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.3.tgz#d5625a50b6f18244425a1359a858c73d70340778" - integrity sha512-54fjTSeSHwfan8AyHWrKbfBWiEUrNTZsUwPTDSNaaP1QDQIZbeNUg3a59E9D+375MzUw/x1vx2/0F5LBz+AeYA== +"@types/babel__core@^7.20.4": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" + integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== dependencies: "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" @@ -1392,6 +1434,11 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.2.tgz#ff02bc3dc8317cd668dfec247b750ba1f1d62453" integrity sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA== +"@types/estree@1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + "@types/is-ci@^3.0.0": version "3.0.2" resolved "https://registry.yarnpkg.com/@types/is-ci/-/is-ci-3.0.2.tgz#62acd24fc99bf31047086e0f6b1a657919837f15" @@ -1562,69 +1609,76 @@ "@babel/plugin-transform-typescript" "^7.23.3" "@vue/babel-plugin-jsx" "^1.1.5" -"@vitejs/plugin-vue@^5.0.3": +"@vitejs/plugin-vue@^5.0.4": version "5.0.4" resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.0.4.tgz#508d6a0f2440f86945835d903fcc0d95d1bb8a37" integrity sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ== -"@vitest/browser@^1.0.0-beta.3": - version "1.0.0-beta.3" - resolved "https://registry.yarnpkg.com/@vitest/browser/-/browser-1.0.0-beta.3.tgz#37389c5da0df0f1eda628900c9aacdfa72c0df94" - integrity sha512-28889TGaSeNkIxZz4t3mTHnvGQaGG76+AdRB4SVlx5F9e5bFOEMDcAVEh7wqVf87S66H/v/f0Ij6NbIa5GTNew== +"@vitest/browser@^1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@vitest/browser/-/browser-1.3.1.tgz#79662d6d3923d14f9127a3e266d461bf9c628a22" + integrity sha512-pRof8G8nqRWwg3ouyIctyhfIVk5jXgF056uF//sqdi37+pVtDz9kBI/RMu0xlc8tgCyJ2aEMfbgJZPUydlEVaQ== dependencies: - estree-walker "^3.0.3" + "@vitest/utils" "1.3.1" magic-string "^0.30.5" - sirv "^2.0.3" + sirv "^2.0.4" -"@vitest/expect@1.0.0-beta.3": - version "1.0.0-beta.3" - resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-1.0.0-beta.3.tgz#9fc5a19a6b53e4dc3fd5710b4d18c3a82710f3ed" - integrity sha512-fbDKa7aj/xiCcS9X6RwlPXTZ5SNQpvPl0eswD+d3Lnp8gmuB8j2mb+CDUMe7VRg+ah5Cm/kqAc9DzYTe2IcvgQ== +"@vitest/expect@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-1.3.1.tgz#d4c14b89c43a25fd400a6b941f51ba27fe0cb918" + integrity sha512-xofQFwIzfdmLLlHa6ag0dPV8YsnKOCP1KdAeVVh34vSjN2dcUiXYCD9htu/9eM7t8Xln4v03U9HLxLpPlsXdZw== dependencies: - "@vitest/spy" "1.0.0-beta.3" - "@vitest/utils" "1.0.0-beta.3" + "@vitest/spy" "1.3.1" + "@vitest/utils" "1.3.1" chai "^4.3.10" -"@vitest/runner@1.0.0-beta.3": - version "1.0.0-beta.3" - resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-1.0.0-beta.3.tgz#54767e52dee4676770f76472f04d26d0ee612cd6" - integrity sha512-9xakpVjEpuFiyoCt42d0Ff/PiPOlBLQeKjEZbnT3LURi1M26llNVZ2I9ogDQipH3EH9IK0/xDfYAxOjs2jYaDw== +"@vitest/runner@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-1.3.1.tgz#e7f96cdf74842934782bfd310eef4b8695bbfa30" + integrity sha512-5FzF9c3jG/z5bgCnjr8j9LNq/9OxV2uEBAITOXfoe3rdZJTdO7jzThth7FXv/6b+kdY65tpRQB7WaKhNZwX+Kg== dependencies: - "@vitest/utils" "1.0.0-beta.3" - p-limit "^4.0.0" + "@vitest/utils" "1.3.1" + p-limit "^5.0.0" pathe "^1.1.1" -"@vitest/snapshot@1.0.0-beta.3": - version "1.0.0-beta.3" - resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-1.0.0-beta.3.tgz#121e5f926cece32fc4f102509b91d1e4eaffbae6" - integrity sha512-fun2daxMGuXo2wBi6ItFgUFl0xnN4v2hVXvIYGvoJG9SoPobfPlQ79MO8gMKOt++rWlUXNj7J23KHcoOyZ2Wwg== +"@vitest/snapshot@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-1.3.1.tgz#193a5d7febf6ec5d22b3f8c5a093f9e4322e7a88" + integrity sha512-EF++BZbt6RZmOlE3SuTPu/NfwBF6q4ABS37HHXzs2LUVPBLx2QoY/K0fKpRChSo8eLiuxcbCVfqKgx/dplCDuQ== dependencies: magic-string "^0.30.5" pathe "^1.1.1" - pretty-format "^29.5.0" + pretty-format "^29.7.0" -"@vitest/spy@1.0.0-beta.3": - version "1.0.0-beta.3" - resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-1.0.0-beta.3.tgz#b0c0e2141acd3dc64908340488a42142d6a5eaa2" - integrity sha512-ybwJagwd1f3awJixX9YWdGtZNHXbJozzEekRfYdHmTudPgIX5bxFCcH4cG/gtGY6VbVuvExwk0Es04bFx2YkLA== +"@vitest/spy@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-1.3.1.tgz#814245d46d011b99edd1c7528f5725c64e85a88b" + integrity sha512-xAcW+S099ylC9VLU7eZfdT9myV67Nor9w9zhf0mGCYJSO+zM2839tOeROTdikOi/8Qeusffvxb/MyBSOja1Uig== dependencies: tinyspy "^2.2.0" -"@vitest/utils@1.0.0-beta.3": - version "1.0.0-beta.3" - resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-1.0.0-beta.3.tgz#258754559931bba3f0e7f46897c1fc2338e4d168" - integrity sha512-8j7Xg3A13kt78DqWJC3ludyMsBbKQn/LcX9wcULxZFMGQqmSkUFN8ij6JWFQs67w39T+clLWzPrV+NRxe+Mc9g== +"@vitest/ui@^1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@vitest/ui/-/ui-1.3.1.tgz#89e6a049f3fa68f6dad804318f0b8477cd5392da" + integrity sha512-2UrFLJ62c/eJGPHcclstMKlAR7E1WB1ITe1isuowEPJJHi3HfqofvsUqQ1cGrEF7kitG1DJuwURUA3HLDtQkXA== dependencies: - diff-sequences "^29.4.3" - loupe "^2.3.7" - pretty-format "^29.5.0" + "@vitest/utils" "1.3.1" + fast-glob "^3.3.2" + fflate "^0.8.1" + flatted "^3.2.9" + pathe "^1.1.1" + picocolors "^1.0.0" + sirv "^2.0.4" -"@volar/language-core@1.10.4", "@volar/language-core@~1.10.4": - version "1.10.4" - resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-1.10.4.tgz#0340dbbb152fa375978f6af57153ad02f57de752" - integrity sha512-Na69qA6uwVIdA0rHuOc2W3pHtVQQO8hCNim7FOaKNpRJh0oAFnu5r9i7Oopo5C4cnELZkPNjTrbmpcCTiW+CMQ== +"@vitest/utils@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-1.3.1.tgz#7b05838654557544f694a372de767fcc9594d61a" + integrity sha512-d3Waie/299qqRyHTm2DjADeTaNdNSVsnwHPWrs20JMpjh6eiVq7ggggweO8rc4arhf6rRkWuHKwvxGvejUXZZQ== dependencies: - "@volar/source-map" "1.10.4" + diff-sequences "^29.6.3" + estree-walker "^3.0.3" + loupe "^2.3.7" + pretty-format "^29.7.0" "@volar/language-core@1.11.1", "@volar/language-core@~1.11.1": version "1.11.1" @@ -1633,13 +1687,6 @@ dependencies: "@volar/source-map" "1.11.1" -"@volar/source-map@1.10.4", "@volar/source-map@~1.10.4": - version "1.10.4" - resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-1.10.4.tgz#1d5d0daf9c6bbecec4d1ec103f1bb6ed699b143d" - integrity sha512-RxZdUEL+pV8p+SMqnhVjzy5zpb1QRZTlcwSk4bdcBO7yOu4rtEWqDGahVCEj4CcXour+0yJUMrMczfSCpP9Uxg== - dependencies: - muggle-string "^0.3.1" - "@volar/source-map@1.11.1", "@volar/source-map@~1.11.1": version "1.11.1" resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-1.11.1.tgz#535b0328d9e2b7a91dff846cab4058e191f4452f" @@ -1647,13 +1694,6 @@ dependencies: muggle-string "^0.3.1" -"@volar/typescript@~1.10.4": - version "1.10.4" - resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-1.10.4.tgz#78c8b56c1a4cc406fed50fc88d92874f947f82d6" - integrity sha512-BCCUEBASBEMCrz7qmNSi2hBEWYsXD0doaktRKpmmhvb6XntM2sAWYu6gbyK/MluLDgluGLFiFRpWgobgzUqolg== - dependencies: - "@volar/language-core" "1.10.4" - "@volar/typescript@~1.11.1": version "1.11.1" resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-1.11.1.tgz#ba86c6f326d88e249c7f5cfe4b765be3946fd627" @@ -1777,21 +1817,7 @@ "@typescript-eslint/parser" "^7.1.1" vue-eslint-parser "^9.3.1" -"@vue/language-core@1.8.20", "@vue/language-core@^1.8.20": - version "1.8.20" - resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-1.8.20.tgz#f7f83bad3f6a52f5d006b874630dd424233f1e08" - integrity sha512-vNJaqjCTSrWEr+erSq6Rq0CqDC8MOAwyxirxwK8esOxd+1LmAUJUTG2p7I84Mj1Izy5uHiHQAkRTVR2QxMBY+A== - dependencies: - "@volar/language-core" "~1.10.4" - "@volar/source-map" "~1.10.4" - "@vue/compiler-dom" "^3.3.0" - "@vue/shared" "^3.3.0" - computeds "^0.0.1" - minimatch "^9.0.3" - muggle-string "^0.3.1" - vue-template-compiler "^2.7.14" - -"@vue/language-core@1.8.27": +"@vue/language-core@1.8.27", "@vue/language-core@^1.8.26": version "1.8.27" resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-1.8.27.tgz#2ca6892cb524e024a44e554e4c55d7a23e72263f" integrity sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA== @@ -1861,19 +1887,6 @@ resolved "https://registry.yarnpkg.com/@vue/tsconfig/-/tsconfig-0.5.1.tgz#3124ec16cc0c7e04165b88dc091e6b97782fffa9" integrity sha512-VcZK7MvpjuTPx2w6blwnwZAu5/LgBUtejFOi3pPGQFXQN5Ela03FUtd2Qtg4yWGGissVL0dr6Ro1LfOFh+PCuQ== -"@vue/typescript@1.8.20": - version "1.8.20" - resolved "https://registry.yarnpkg.com/@vue/typescript/-/typescript-1.8.20.tgz#b1dcc0823f9b51340569c11e3b747dda440178d2" - integrity sha512-F0XX1wK71Fo9ewtzLSCSo5dfOuwKrSi/dR2AlI00iTJ4Bfk0wq1BNTRgnlvfx4kz/vQovaGXqwpIkif14W9KrA== - dependencies: - "@volar/typescript" "~1.10.4" - "@vue/language-core" "1.8.20" - -abab@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" - integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== - abbrev@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" @@ -1889,10 +1902,10 @@ acorn-jsx@^5.3.2: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn-walk@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" - integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== +acorn-walk@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa" + integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A== acorn@^8.10.0, acorn@^8.9.0: version "8.10.0" @@ -2015,20 +2028,6 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -aria-query@5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" - integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== - dependencies: - deep-equal "^2.0.5" - -aria-query@^5.0.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" - integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== - dependencies: - dequal "^2.0.3" - array-buffer-byte-length@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" @@ -2085,10 +2084,10 @@ available-typed-arrays@^1.0.5: resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== -babel-plugin-jsx-dom-expressions@^0.37.2: - version "0.37.2" - resolved "https://registry.yarnpkg.com/babel-plugin-jsx-dom-expressions/-/babel-plugin-jsx-dom-expressions-0.37.2.tgz#5f72d27d80692879de4d41ed367a653e4ae30091" - integrity sha512-u3VKB+On86cYSLAbw9j0m0X8ZejL4MR7oG7TRlrMQ/y1mauR/ZpM2xkiOPZEUlzHLo1GYGlTdP9s5D3XuA6iSQ== +babel-plugin-jsx-dom-expressions@^0.37.17: + version "0.37.17" + resolved "https://registry.yarnpkg.com/babel-plugin-jsx-dom-expressions/-/babel-plugin-jsx-dom-expressions-0.37.17.tgz#3bf0a756e2701e0ea830a95b4f8d7e5b617aabaf" + integrity sha512-1bv8rOTzs6TR3DVyVZ7ElxyPEhnS556FMWRIsB3gBPfkn/cSKaLvXLGk+X1lvI+SzcUo4G+UcmJrn3vr1ig8mQ== dependencies: "@babel/helper-module-imports" "7.18.6" "@babel/plugin-syntax-jsx" "^7.18.6" @@ -2101,12 +2100,12 @@ babel-plugin-transform-jsbi-to-bigint@^1.4.0: resolved "https://registry.yarnpkg.com/babel-plugin-transform-jsbi-to-bigint/-/babel-plugin-transform-jsbi-to-bigint-1.4.0.tgz#04db5036c7821916c248b90ded792a1272bc9c8d" integrity sha512-59f6ClwQBY/SKMVwKV/xoAqH/gnyZ6C5gSSPsEUCLPvvZULCDSE5Y3T62wjNTbpBcFzh0ReYz2mIe3u44mW9UQ== -babel-preset-solid@^1.8.0: - version "1.8.2" - resolved "https://registry.yarnpkg.com/babel-preset-solid/-/babel-preset-solid-1.8.2.tgz#3738fe82a0fa499932f72bde2714aa1621d7760b" - integrity sha512-hEIy4K1CGPQwCekFJ9NV3T92fezS4GQV0SQXEGVe9dyo+7iI7Fjuu6OKIdE5z/S4IfMEL6gCU+1AZ3yK6PnGMg== +babel-preset-solid@^1.8.4: + version "1.8.15" + resolved "https://registry.yarnpkg.com/babel-preset-solid/-/babel-preset-solid-1.8.15.tgz#59a80e7048a6ab7142768de6f7f1f887cfc5fdcc" + integrity sha512-P2yOQbB7Hn/m4YvpXV6ExHIMcgNWXWXcvY4kJzG3yqAB3hKS58OZRsvJ7RObsZWqXRvZTITBIwnpK0BMGu+ZIQ== dependencies: - babel-plugin-jsx-dom-expressions "^0.37.2" + babel-plugin-jsx-dom-expressions "^0.37.17" balanced-match@^1.0.0: version "1.0.2" @@ -2251,15 +2250,6 @@ call-bind@^1.0.0, call-bind@^1.0.2: function-bind "^1.1.1" get-intrinsic "^1.0.2" -call-bind@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" - integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== - dependencies: - function-bind "^1.1.2" - get-intrinsic "^1.2.1" - set-function-length "^1.1.1" - callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -2316,15 +2306,7 @@ chalk@^2.1.0, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: +chalk@^4.0.0, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -2514,23 +2496,11 @@ crypto-js@^4.1.1: resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf" integrity sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw== -css.escape@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" - integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== - cssesc@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssstyle@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-3.0.0.tgz#17ca9c87d26eac764bb8cfd00583cff21ce0277a" - integrity sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg== - dependencies: - rrweb-cssom "^0.6.0" - cssstyle@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-4.0.1.tgz#ef29c598a1e90125c870525490ea4f354db0660a" @@ -2573,15 +2543,6 @@ csv@^5.5.3: csv-stringify "^5.6.5" stream-transform "^2.1.3" -data-urls@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-4.0.0.tgz#333a454eca6f9a5b7b0f1013ff89074c3f522dd4" - integrity sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g== - dependencies: - abab "^2.0.6" - whatwg-mimetype "^3.0.0" - whatwg-url "^12.0.0" - data-urls@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-5.0.0.tgz#2f76906bce1824429ffecb6920f45a0b30f00dde" @@ -2639,30 +2600,6 @@ deep-eql@^4.1.3: dependencies: type-detect "^4.0.0" -deep-equal@^2.0.5: - version "2.2.2" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.2.tgz#9b2635da569a13ba8e1cc159c2f744071b115daa" - integrity sha512-xjVyBf0w5vH0I42jdAZzOKVldmPgSulmiyPRywoyq7HXC9qdgo17kxJE+rdnif5Tz6+pIrpJI8dCpMNLIGkUiA== - dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.2" - es-get-iterator "^1.1.3" - get-intrinsic "^1.2.1" - is-arguments "^1.1.1" - is-array-buffer "^3.0.2" - is-date-object "^1.0.5" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - isarray "^2.0.5" - object-is "^1.1.5" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.5.0" - side-channel "^1.0.4" - which-boxed-primitive "^1.0.2" - which-collection "^1.0.1" - which-typed-array "^1.1.9" - deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" @@ -2707,15 +2644,6 @@ define-data-property@^1.0.1: gopd "^1.0.1" has-property-descriptors "^1.0.0" -define-data-property@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" - integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== - dependencies: - get-intrinsic "^1.2.1" - gopd "^1.0.1" - has-property-descriptors "^1.0.0" - define-lazy-prop@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" @@ -2740,11 +2668,6 @@ delegates@^1.0.0: resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== -dequal@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" - integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== - detect-indent@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" @@ -2755,7 +2678,7 @@ detect-libc@^2.0.0: resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.2.tgz#8ccf2ba9315350e1241b88d0ac3b0e1fbd99605d" integrity sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw== -diff-sequences@^29.4.3: +diff-sequences@^29.6.3: version "29.6.3" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== @@ -2774,18 +2697,6 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -dom-accessibility-api@^0.5.6, dom-accessibility-api@^0.5.9: - version "0.5.16" - resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz#5a7429e6066eb3664d911e33fb0e45de8eb08453" - integrity sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg== - -domexception@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673" - integrity sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw== - dependencies: - webidl-conversions "^7.0.0" - dotenv@^8.1.0: version "8.6.0" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" @@ -2925,21 +2836,6 @@ es-abstract@^1.22.1: unbox-primitive "^1.0.2" which-typed-array "^1.1.11" -es-get-iterator@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" - integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - has-symbols "^1.0.3" - is-arguments "^1.1.1" - is-map "^2.0.2" - is-set "^2.0.2" - is-string "^1.0.7" - isarray "^2.0.5" - stop-iteration-iterator "^1.0.0" - es-set-tostringtag@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" @@ -2965,33 +2861,34 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild@^0.18.10: - version "0.18.20" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6" - integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA== +esbuild@^0.19.3: + version "0.19.12" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.12.tgz#dc82ee5dc79e82f5a5c3b4323a2a641827db3e04" + integrity sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg== optionalDependencies: - "@esbuild/android-arm" "0.18.20" - "@esbuild/android-arm64" "0.18.20" - "@esbuild/android-x64" "0.18.20" - "@esbuild/darwin-arm64" "0.18.20" - "@esbuild/darwin-x64" "0.18.20" - "@esbuild/freebsd-arm64" "0.18.20" - "@esbuild/freebsd-x64" "0.18.20" - "@esbuild/linux-arm" "0.18.20" - "@esbuild/linux-arm64" "0.18.20" - "@esbuild/linux-ia32" "0.18.20" - "@esbuild/linux-loong64" "0.18.20" - "@esbuild/linux-mips64el" "0.18.20" - "@esbuild/linux-ppc64" "0.18.20" - "@esbuild/linux-riscv64" "0.18.20" - "@esbuild/linux-s390x" "0.18.20" - "@esbuild/linux-x64" "0.18.20" - "@esbuild/netbsd-x64" "0.18.20" - "@esbuild/openbsd-x64" "0.18.20" - "@esbuild/sunos-x64" "0.18.20" - "@esbuild/win32-arm64" "0.18.20" - "@esbuild/win32-ia32" "0.18.20" - "@esbuild/win32-x64" "0.18.20" + "@esbuild/aix-ppc64" "0.19.12" + "@esbuild/android-arm" "0.19.12" + "@esbuild/android-arm64" "0.19.12" + "@esbuild/android-x64" "0.19.12" + "@esbuild/darwin-arm64" "0.19.12" + "@esbuild/darwin-x64" "0.19.12" + "@esbuild/freebsd-arm64" "0.19.12" + "@esbuild/freebsd-x64" "0.19.12" + "@esbuild/linux-arm" "0.19.12" + "@esbuild/linux-arm64" "0.19.12" + "@esbuild/linux-ia32" "0.19.12" + "@esbuild/linux-loong64" "0.19.12" + "@esbuild/linux-mips64el" "0.19.12" + "@esbuild/linux-ppc64" "0.19.12" + "@esbuild/linux-riscv64" "0.19.12" + "@esbuild/linux-s390x" "0.19.12" + "@esbuild/linux-x64" "0.19.12" + "@esbuild/netbsd-x64" "0.19.12" + "@esbuild/openbsd-x64" "0.19.12" + "@esbuild/sunos-x64" "0.19.12" + "@esbuild/win32-arm64" "0.19.12" + "@esbuild/win32-ia32" "0.19.12" + "@esbuild/win32-x64" "0.19.12" escalade@^3.1.1: version "3.1.1" @@ -3198,6 +3095,21 @@ execa@^7.1.1: signal-exit "^3.0.7" strip-final-newline "^3.0.0" +execa@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c" + integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^8.0.1" + human-signals "^5.0.0" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^4.1.0" + strip-final-newline "^3.0.0" + expand-template@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" @@ -3243,6 +3155,17 @@ fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.9, fast-glob@^3.3.0: merge2 "^1.3.0" micromatch "^4.0.4" +fast-glob@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" @@ -3260,6 +3183,11 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" +fflate@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.8.2.tgz#fc8631f5347812ad6028bbe4a2308b2792aa1dea" + integrity sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A== + file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" @@ -3383,7 +3311,7 @@ fsevents@2.3.2: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== -fsevents@~2.3.2: +fsevents@~2.3.2, fsevents@~2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== @@ -3393,11 +3321,6 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - function.prototype.name@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" @@ -3452,21 +3375,16 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@ has-proto "^1.0.1" has-symbols "^1.0.3" -get-intrinsic@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" - integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== - dependencies: - function-bind "^1.1.2" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - get-stream@^6.0.0, get-stream@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== +get-stream@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2" + integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== + get-symbol-description@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" @@ -3640,13 +3558,6 @@ has@^1.0.3: resolved "https://registry.yarnpkg.com/has/-/has-1.0.4.tgz#2eb2860e000011dae4f1406a86fe80e530fb2ec6" integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ== -hasown@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" - integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== - dependencies: - function-bind "^1.1.2" - he@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" @@ -3657,13 +3568,6 @@ hosted-git-info@^2.1.4: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== -html-encoding-sniffer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9" - integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA== - dependencies: - whatwg-encoding "^2.0.0" - html-encoding-sniffer@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz#696df529a7cfd82446369dc5193e590a3735b448" @@ -3703,7 +3607,7 @@ http-proxy-agent@^7.0.0: agent-base "^7.1.0" debug "^4.3.4" -https-proxy-agent@^5.0.0, https-proxy-agent@^5.0.1: +https-proxy-agent@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== @@ -3734,6 +3638,11 @@ human-signals@^4.3.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== +human-signals@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" + integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== + humanize-ms@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" @@ -3806,15 +3715,6 @@ ini@^1.3.4, ini@~1.3.0: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -internal-slot@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" - integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== - dependencies: - get-intrinsic "^1.2.2" - hasown "^2.0.0" - side-channel "^1.0.4" - internal-slot@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" @@ -3829,14 +3729,6 @@ ip@^2.0.0: resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== -is-arguments@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" @@ -3892,7 +3784,7 @@ is-core-module@^2.1.0, is-core-module@^2.13.0: dependencies: has "^1.0.3" -is-date-object@^1.0.1, is-date-object@^1.0.5: +is-date-object@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== @@ -3938,11 +3830,6 @@ is-lambda@^1.0.1: resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== -is-map@^2.0.1, is-map@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" - integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== - is-negative-zero@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" @@ -3983,11 +3870,6 @@ is-regex@^1.1.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-set@^2.0.1, is-set@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" - integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== - is-shared-array-buffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" @@ -4033,11 +3915,6 @@ is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: dependencies: which-typed-array "^1.1.11" -is-weakmap@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" - integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== - is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" @@ -4045,14 +3922,6 @@ is-weakref@^1.0.2: dependencies: call-bind "^1.0.2" -is-weakset@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" - integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - is-what@^4.1.8: version "4.1.15" resolved "https://registry.yarnpkg.com/is-what/-/is-what-4.1.15.tgz#de43a81090417a425942d67b1ae86e7fae2eee0e" @@ -4120,6 +3989,11 @@ js-tokens@^4.0.0: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== +js-tokens@^8.0.2: + version "8.0.3" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-8.0.3.tgz#1c407ec905643603b38b6be6977300406ec48775" + integrity sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw== + js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.6.1: version "3.14.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" @@ -4140,35 +4014,6 @@ jsbi@^4.3.0: resolved "https://registry.yarnpkg.com/jsbi/-/jsbi-4.3.0.tgz#b54ee074fb6fcbc00619559305c8f7e912b04741" integrity sha512-SnZNcinB4RIcnEyZqFPdGPVgrg2AcnykiBy0sHVJQKHYeaLUvi3Exj+iaPpLnFVkDPZIV4U0yvgC9/R4uEAZ9g== -jsdom@^22.1.0: - version "22.1.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-22.1.0.tgz#0fca6d1a37fbeb7f4aac93d1090d782c56b611c8" - integrity sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw== - dependencies: - abab "^2.0.6" - cssstyle "^3.0.0" - data-urls "^4.0.0" - decimal.js "^10.4.3" - domexception "^4.0.0" - form-data "^4.0.0" - html-encoding-sniffer "^3.0.0" - http-proxy-agent "^5.0.0" - https-proxy-agent "^5.0.1" - is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.4" - parse5 "^7.1.2" - rrweb-cssom "^0.6.0" - saxes "^6.0.0" - symbol-tree "^3.2.4" - tough-cookie "^4.1.2" - w3c-xmlserializer "^4.0.0" - webidl-conversions "^7.0.0" - whatwg-encoding "^2.0.0" - whatwg-mimetype "^3.0.0" - whatwg-url "^12.0.1" - ws "^8.13.0" - xml-name-validator "^4.0.0" - jsdom@^24.0.0: version "24.0.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-24.0.0.tgz#e2dc04e4c79da368481659818ee2b0cd7c39007c" @@ -4288,10 +4133,13 @@ load-yaml-file@^0.2.0: pify "^4.0.1" strip-bom "^3.0.0" -local-pkg@^0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.3.tgz#0ff361ab3ae7f1c19113d9bb97b98b905dbc4963" - integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g== +local-pkg@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.5.0.tgz#093d25a346bae59a99f80e75f6e9d36d7e8c925c" + integrity sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg== + dependencies: + mlly "^1.4.2" + pkg-types "^1.0.3" locate-path@^5.0.0: version "5.0.0" @@ -4327,7 +4175,7 @@ lodash.startcase@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" integrity sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== -lodash@^4.17.15, lodash@^4.17.21, lodash@~4.17.15: +lodash@^4.17.21, lodash@~4.17.15: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -4378,11 +4226,6 @@ lru-cache@^7.7.1: resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.0.1.tgz#0a3be479df549cca0e5d693ac402ff19537a6b7a" integrity sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g== -lz-string@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" - integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== - magic-string@^0.30.5: version "0.30.5" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9" @@ -4628,7 +4471,7 @@ mkdirp@^1.0.3, mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mlly@^1.2.0, mlly@^1.4.0: +mlly@^1.2.0: version "1.4.2" resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.4.2.tgz#7cf406aa319ff6563d25da6b36610a93f2a8007e" integrity sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg== @@ -4638,10 +4481,20 @@ mlly@^1.2.0, mlly@^1.4.0: pkg-types "^1.0.3" ufo "^1.3.0" -mrmime@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.1.tgz#5f90c825fad4bdd41dc914eff5d1a8cfdaf24f27" - integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw== +mlly@^1.4.2: + version "1.6.1" + resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.6.1.tgz#0983067dc3366d6314fc5e12712884e6978d028f" + integrity sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA== + dependencies: + acorn "^8.11.3" + pathe "^1.1.2" + pkg-types "^1.0.3" + ufo "^1.3.2" + +mrmime@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-2.0.0.tgz#151082a6e06e59a9a39b46b3e14d5cfe92b3abb4" + integrity sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw== ms@2.1.2: version "2.1.2" @@ -4663,11 +4516,6 @@ nan@^2.17.0: resolved "https://registry.yarnpkg.com/nan/-/nan-2.18.0.tgz#26a6faae7ffbeb293a39660e88a76b82e30b7554" integrity sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w== -nanoid@^3.3.6: - version "3.3.6" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" - integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== - nanoid@^3.3.7: version "3.3.7" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" @@ -4807,7 +4655,7 @@ nth-check@^2.1.1: dependencies: boolbase "^1.0.0" -nwsapi@^2.2.4, nwsapi@^2.2.7: +nwsapi@^2.2.7: version "2.2.7" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30" integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ== @@ -4817,14 +4665,6 @@ object-inspect@^1.12.3, object-inspect@^1.9.0: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== -object-is@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" - integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" @@ -4931,10 +4771,10 @@ p-limit@^3.0.2: dependencies: yocto-queue "^0.1.0" -p-limit@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" - integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== +p-limit@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-5.0.0.tgz#6946d5b7140b649b7a33a027d89b4c625b3a5985" + integrity sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ== dependencies: yocto-queue "^1.0.0" @@ -5041,6 +4881,11 @@ pathe@^1.1.0, pathe@^1.1.1: resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.1.tgz#1dd31d382b974ba69809adc9a7a347e65d84829a" integrity sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q== +pathe@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec" + integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== + pathval@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" @@ -5104,16 +4949,7 @@ postcss-selector-parser@^6.0.15: cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss@^8.4.27: - version "8.4.31" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" - integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== - dependencies: - nanoid "^3.3.6" - picocolors "^1.0.0" - source-map-js "^1.0.2" - -postcss@^8.4.33: +postcss@^8.4.33, postcss@^8.4.35: version "8.4.35" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.35.tgz#60997775689ce09011edf083a549cea44aabe2f7" integrity sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA== @@ -5172,16 +5008,7 @@ prettier@^3.2.5: resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368" integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A== -pretty-format@^27.0.2: - version "27.5.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" - integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== - dependencies: - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^17.0.1" - -pretty-format@^29.5.0: +pretty-format@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== @@ -5221,7 +5048,7 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.0: +punycode@^2.1.0, punycode@^2.1.1: version "2.3.0" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== @@ -5256,11 +5083,6 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-is@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== - react-is@^18.0.0: version "18.2.0" resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" @@ -5332,7 +5154,7 @@ regenerator-runtime@^0.14.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== -regexp.prototype.flags@^1.5.0, regexp.prototype.flags@^1.5.1: +regexp.prototype.flags@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== @@ -5407,11 +5229,26 @@ rimraf@^5.0.5: dependencies: glob "^10.3.7" -rollup@^3.27.1: - version "3.29.4" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981" - integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw== +rollup@^4.2.0: + version "4.12.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.12.1.tgz#0659cb02551cde4c5b210e9bd3af050b5b5b415d" + integrity sha512-ggqQKvx/PsB0FaWXhIvVkSWh7a/PCLQAsMjBc+nA2M8Rv2/HG0X6zvixAB7KyZBRtifBUhy5k8voQX/mRnABPg== + dependencies: + "@types/estree" "1.0.5" optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.12.1" + "@rollup/rollup-android-arm64" "4.12.1" + "@rollup/rollup-darwin-arm64" "4.12.1" + "@rollup/rollup-darwin-x64" "4.12.1" + "@rollup/rollup-linux-arm-gnueabihf" "4.12.1" + "@rollup/rollup-linux-arm64-gnu" "4.12.1" + "@rollup/rollup-linux-arm64-musl" "4.12.1" + "@rollup/rollup-linux-riscv64-gnu" "4.12.1" + "@rollup/rollup-linux-x64-gnu" "4.12.1" + "@rollup/rollup-linux-x64-musl" "4.12.1" + "@rollup/rollup-win32-arm64-msvc" "4.12.1" + "@rollup/rollup-win32-ia32-msvc" "4.12.1" + "@rollup/rollup-win32-x64-msvc" "4.12.1" fsevents "~2.3.2" rrweb-cssom@^0.6.0: @@ -5503,16 +5340,6 @@ set-blocking@^2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== -set-function-length@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" - integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== - dependencies: - define-data-property "^1.1.1" - get-intrinsic "^1.2.1" - gopd "^1.0.1" - has-property-descriptors "^1.0.0" - set-function-name@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" @@ -5575,7 +5402,7 @@ signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -signal-exit@^4.0.1: +signal-exit@^4.0.1, signal-exit@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== @@ -5594,13 +5421,13 @@ simple-get@^4.0.0: once "^1.3.1" simple-concat "^1.0.0" -sirv@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/sirv/-/sirv-2.0.3.tgz#ca5868b87205a74bef62a469ed0296abceccd446" - integrity sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA== +sirv@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-2.0.4.tgz#5dd9a725c578e34e449f332703eb2a74e46a29b0" + integrity sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ== dependencies: - "@polka/url" "^1.0.0-next.20" - mrmime "^1.0.0" + "@polka/url" "^1.0.0-next.24" + mrmime "^2.0.0" totalist "^3.0.0" slash@^3.0.0: @@ -5655,14 +5482,14 @@ solid-js@^1.8.3: csstype "^3.1.0" seroval "^0.11.6" -solid-refresh@^0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/solid-refresh/-/solid-refresh-0.5.3.tgz#41b97fa1ee655d86125abda8e398861683f926b6" - integrity sha512-Otg5it5sjOdZbQZJnvo99TEBAr6J7PQ5AubZLNU6szZzg3RQQ5MX04oteBIIGDs0y2Qv8aXKm9e44V8z+UnFdw== +solid-refresh@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/solid-refresh/-/solid-refresh-0.6.3.tgz#d23ef80f04e177619c9234a809c573cb16360627" + integrity sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA== dependencies: - "@babel/generator" "^7.21.1" - "@babel/helper-module-imports" "^7.18.6" - "@babel/types" "^7.21.2" + "@babel/generator" "^7.23.6" + "@babel/helper-module-imports" "^7.22.15" + "@babel/types" "^7.23.6" source-map-js@^1.0.2: version "1.0.2" @@ -5725,17 +5552,10 @@ stackback@0.0.2: resolved "https://registry.yarnpkg.com/stackback/-/stackback-0.0.2.tgz#1ac8a0d9483848d1695e418b6d031a3c3ce68e3b" integrity sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw== -std-env@^3.3.3: - version "3.4.3" - resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.4.3.tgz#326f11db518db751c83fd58574f449b7c3060910" - integrity sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q== - -stop-iteration-iterator@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" - integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== - dependencies: - internal-slot "^1.0.4" +std-env@^3.5.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.7.0.tgz#c9f7386ced6ecf13360b6c6c55b8aaa4ef7481d2" + integrity sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg== stream-transform@^2.1.3: version "2.1.3" @@ -5847,12 +5667,12 @@ strip-json-comments@^3.1.1, strip-json-comments@~3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -strip-literal@^1.0.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-1.3.0.tgz#db3942c2ec1699e6836ad230090b84bb458e3a07" - integrity sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg== +strip-literal@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-2.0.0.tgz#5d063580933e4e03ebb669b12db64d2200687527" + integrity sha512-f9vHgsCWBq2ugHAkGMiiYY+AYG0D/cbloKKg0nhaaaSNsujdGIpVXCNsrJpCKr5M0f4aI31mr13UjY6GAuXCKA== dependencies: - acorn "^8.10.0" + js-tokens "^8.0.2" supports-color@^5.3.0: version "5.5.0" @@ -5942,15 +5762,15 @@ text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== -tinybench@^2.5.0: - version "2.5.1" - resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.5.1.tgz#3408f6552125e53a5a48adee31261686fd71587e" - integrity sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg== +tinybench@^2.5.1: + version "2.6.0" + resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.6.0.tgz#1423284ee22de07c91b3752c048d2764714b341b" + integrity sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA== -tinypool@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.8.1.tgz#b6c4e4972ede3e3e5cda74a3da1679303d386b03" - integrity sha512-zBTCK0cCgRROxvs9c0CGK838sPkeokNGdQVUUwHAbynHFlmyJYj825f/oRs528HaIJ97lo0pLIlDUzwN+IorWg== +tinypool@^0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.8.2.tgz#84013b03dc69dacb322563a475d4c0a9be00f82a" + integrity sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ== tinyspy@^2.2.0: version "2.2.0" @@ -5986,7 +5806,7 @@ totalist@^3.0.0: resolved "https://registry.yarnpkg.com/totalist/-/totalist-3.0.1.tgz#ba3a3d600c915b1a97872348f79c127475f6acf8" integrity sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ== -tough-cookie@^4.1.2, tough-cookie@^4.1.3: +tough-cookie@^4.1.3: version "4.1.3" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf" integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== @@ -5996,13 +5816,6 @@ tough-cookie@^4.1.2, tough-cookie@^4.1.3: universalify "^0.2.0" url-parse "^1.5.3" -tr46@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-4.1.1.tgz#281a758dcc82aeb4fe38c7dfe4d11a395aac8469" - integrity sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw== - dependencies: - punycode "^2.3.0" - tr46@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/tr46/-/tr46-5.0.0.tgz#3b46d583613ec7283020d79019f1335723801cec" @@ -6212,10 +6025,10 @@ typescript-eslint@^7.1.1: "@typescript-eslint/eslint-plugin" "7.1.1" "@typescript-eslint/parser" "7.1.1" -typescript@~5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.4.tgz#b217fd20119bd61a94d4011274e0ab369058da3b" - integrity sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw== +typescript@5.3.3: + version "5.3.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" + integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== typescript@~5.2.2: version "5.2.2" @@ -6227,6 +6040,11 @@ ufo@^1.3.0: resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.3.1.tgz#e085842f4627c41d4c1b60ebea1f75cdab4ce86b" integrity sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw== +ufo@^1.3.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.4.0.tgz#39845b31be81b4f319ab1d99fd20c56cac528d32" + integrity sha512-Hhy+BhRBleFjpJ2vchUNN40qgkh0366FWJGqVLYBHev0vpHTrXSA0ryT+74UiW6KWsldNurQMKGqCm1M2zBciQ== + unbox-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" @@ -6278,10 +6096,10 @@ universalify@^0.2.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== -unplugin-fonts@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/unplugin-fonts/-/unplugin-fonts-1.0.3.tgz#5b85f29f227305f085d382a42f6983317db19621" - integrity sha512-6Wq0SMhMznUx7DTkqr/ogCvWg2vFSCApHmhUcUISxqfnuME2B/KRLa6+bWyX3sbPNhYsW4zI7jvUkkmIumwenw== +unplugin-fonts@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unplugin-fonts/-/unplugin-fonts-1.1.1.tgz#cd6600d2a048d8237a010b53c9c4dfb1ea73d80f" + integrity sha512-/Aw/rL9D2aslGGM0vi+2R2aG508RSwawLnnBuo+JDSqYc4cHJO1R1phllhN6GysEhBp/6a4B6+vSFPVapWyAAw== dependencies: fast-glob "^3.2.12" unplugin "^1.3.1" @@ -6352,34 +6170,33 @@ validator@^13.7.0: resolved "https://registry.yarnpkg.com/validator/-/validator-13.11.0.tgz#23ab3fd59290c61248364eabf4067f04955fbb1b" integrity sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ== -vite-node@1.0.0-beta.3: - version "1.0.0-beta.3" - resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-1.0.0-beta.3.tgz#caef069652f50dc12f708e3ef0f922ac51224df3" - integrity sha512-qpdoB+N9LV2Lr3W6k8vZwm/lN3hdmz+c0Tixh2ktnX/ywF0OkQf7wIWLeiFLvW4Fa/iw4qhye7xiBBMP1o6/sA== +vite-node@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-1.3.1.tgz#a93f7372212f5d5df38e945046b945ac3f4855d2" + integrity sha512-azbRrqRxlWTJEVbzInZCTchx0X69M/XPTCz4H+TLvlTcR/xH/3hkRqhOakT41fMJCMzXTu4UvegkZiEoJAWvng== dependencies: cac "^6.7.14" debug "^4.3.4" - mlly "^1.4.0" pathe "^1.1.1" picocolors "^1.0.0" - vite "^3.0.0 || ^4.0.0 || ^5.0.0-0" + vite "^5.0.0" -vite-plugin-babel@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/vite-plugin-babel/-/vite-plugin-babel-1.1.3.tgz#4ce93f573f8f49e1760bce51b07860876f705c76" - integrity sha512-WE8ORQm8530kj0geiDL1r/+P2MaU0b+5wL5E8Jq07aounFwRIUeJXziGiMr2DFQs78vaefB5GRKh257M8Z6gFQ== +vite-plugin-babel@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/vite-plugin-babel/-/vite-plugin-babel-1.2.0.tgz#0d803d489c2a7e63ceb93e37533de298e1537c71" + integrity sha512-ltAnq535Ubf9sDbVCkztAdkwx5aQbNrwPFs+iZTJ5FaAhTdxjqmLGpxsAaRfJWEKBJ/kFf9KwMoTdArm0IRUUw== -vite-plugin-dts@^3.6.1: - version "3.6.1" - resolved "https://registry.yarnpkg.com/vite-plugin-dts/-/vite-plugin-dts-3.6.1.tgz#62d8acb2bf5d8ac75bd4e2250c198b7308672ae1" - integrity sha512-Juy5qsDVxag9p0seSjkcdXnAkTfI9WtYcP9ccJbxZlavtK5nGY17ViqjuKpj0+qk+003PPcC6j/CIV/KIorlAg== +vite-plugin-dts@^3.7.3: + version "3.7.3" + resolved "https://registry.yarnpkg.com/vite-plugin-dts/-/vite-plugin-dts-3.7.3.tgz#072ec78face3b76a7a492ffeb83469ef5318ce0b" + integrity sha512-26eTlBYdpjRLWCsTJebM8vkCieE+p9gP3raf+ecDnzzK5E3FG6VE1wcy55OkRpfWWVlVvKkYFe6uvRHYWx7Nog== dependencies: - "@microsoft/api-extractor" "^7.38.0" - "@rollup/pluginutils" "^5.0.5" - "@vue/language-core" "^1.8.20" + "@microsoft/api-extractor" "7.39.0" + "@rollup/pluginutils" "^5.1.0" + "@vue/language-core" "^1.8.26" debug "^4.3.4" kolorist "^1.8.0" - vue-tsc "^1.8.20" + vue-tsc "^1.8.26" vite-plugin-no-bundle@^3.0.0: version "3.0.0" @@ -6389,78 +6206,65 @@ vite-plugin-no-bundle@^3.0.0: fast-glob "^3.2.12" micromatch "^4.0.5" -vite-plugin-solid@^2.7.2: - version "2.7.2" - resolved "https://registry.yarnpkg.com/vite-plugin-solid/-/vite-plugin-solid-2.7.2.tgz#36fe4df470669cb77692831bd11a0aacc246f396" - integrity sha512-GV2SMLAibOoXe76i02AsjAg7sbm/0lngBlERvJKVN67HOrJsHcWgkt0R6sfGLDJuFkv2aBe14Zm4vJcNME+7zw== +vite-plugin-solid@^2.10.1: + version "2.10.1" + resolved "https://registry.yarnpkg.com/vite-plugin-solid/-/vite-plugin-solid-2.10.1.tgz#f09a353c6b9414c62b258422ddeb73f9d320dd92" + integrity sha512-kfVdNLWaJqaJVL52U6iCCKNW/nXE7bS1VVGOWPGllOkJfcNILymVSY0LCBLSnyy0iYnRtrXpiHm14rMuzeC7CA== dependencies: - "@babel/core" "^7.23.0" - "@babel/preset-typescript" "^7.23.0" - "@types/babel__core" "^7.20.2" - babel-preset-solid "^1.8.0" + "@babel/core" "^7.23.3" + "@types/babel__core" "^7.20.4" + babel-preset-solid "^1.8.4" merge-anything "^5.1.7" - solid-refresh "^0.5.3" - vitefu "^0.2.4" + solid-refresh "^0.6.3" + vitefu "^0.2.5" -"vite@^3.0.0 || ^4.0.0 || ^5.0.0-0", "vite@^3.1.0 || ^4.0.0 || ^5.0.0-0": - version "4.4.11" - resolved "https://registry.yarnpkg.com/vite/-/vite-4.4.11.tgz#babdb055b08c69cfc4c468072a2e6c9ca62102b0" - integrity sha512-ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A== +vite@^5.0.0, vite@^5.1.5: + version "5.1.5" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.1.5.tgz#bdbc2b15e8000d9cc5172f059201178f9c9de5fb" + integrity sha512-BdN1xh0Of/oQafhU+FvopafUp6WaYenLU/NFoL5WyJL++GxkNfieKzBhM24H3HVsPQrlAqB7iJYTHabzaRed5Q== dependencies: - esbuild "^0.18.10" - postcss "^8.4.27" - rollup "^3.27.1" + esbuild "^0.19.3" + postcss "^8.4.35" + rollup "^4.2.0" optionalDependencies: - fsevents "~2.3.2" + fsevents "~2.3.3" -vite@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/vite/-/vite-4.5.0.tgz#ec406295b4167ac3bc23e26f9c8ff559287cff26" - integrity sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw== - dependencies: - esbuild "^0.18.10" - postcss "^8.4.27" - rollup "^3.27.1" - optionalDependencies: - fsevents "~2.3.2" - -vitefu@^0.2.4: +vitefu@^0.2.5: version "0.2.5" resolved "https://registry.yarnpkg.com/vitefu/-/vitefu-0.2.5.tgz#c1b93c377fbdd3e5ddd69840ea3aa70b40d90969" integrity sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q== -vitest-github-actions-reporter@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/vitest-github-actions-reporter/-/vitest-github-actions-reporter-0.10.0.tgz#926183b196f3b6f62a913a3628b1b0ffea7595aa" - integrity sha512-ctFM1xlOVsXCNp5+LkaBZBhN1Iq5y9vVMZ9+Czls2CimOUKt0lH24MV1S0EzKysNUT7efs2OOSdmc6lgR8hqXg== +vitest-github-actions-reporter@^0.11.1: + version "0.11.1" + resolved "https://registry.yarnpkg.com/vitest-github-actions-reporter/-/vitest-github-actions-reporter-0.11.1.tgz#42ffaaf9d3b182cfb7552532f9d1e290190914e0" + integrity sha512-ZHHB0wBgOPhMYCB17WKVlJZa+5SdudBZFoVoebwfq3ioIUTeLQGYHwh85vpdJAxRghLP8d0qI/6eCTueGyDVXA== dependencies: "@actions/core" "^1.10.0" -vitest@^1.0.0-beta.3: - version "1.0.0-beta.3" - resolved "https://registry.yarnpkg.com/vitest/-/vitest-1.0.0-beta.3.tgz#a65165fb2e10d966a9d80eb2e62f4932bf03f041" - integrity sha512-Ytj70kgJq1MxWpS8U33nRwF7Mngzr0NxD6J1J8WZGZrYhGRktW3t0AwbjLyFg1URiW3ds6FSp/T3C8JEnP49cA== - dependencies: - "@vitest/expect" "1.0.0-beta.3" - "@vitest/runner" "1.0.0-beta.3" - "@vitest/snapshot" "1.0.0-beta.3" - "@vitest/spy" "1.0.0-beta.3" - "@vitest/utils" "1.0.0-beta.3" - acorn "^8.9.0" - acorn-walk "^8.2.0" - cac "^6.7.14" +vitest@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-1.3.1.tgz#2d7e9861f030d88a4669392a4aecb40569d90937" + integrity sha512-/1QJqXs8YbCrfv/GPQ05wAZf2eakUPLPa18vkJAKE7RXOKfVHqMZZ1WlTjiwl6Gcn65M5vpNUB6EFLnEdRdEXQ== + dependencies: + "@vitest/expect" "1.3.1" + "@vitest/runner" "1.3.1" + "@vitest/snapshot" "1.3.1" + "@vitest/spy" "1.3.1" + "@vitest/utils" "1.3.1" + acorn-walk "^8.3.2" chai "^4.3.10" debug "^4.3.4" - local-pkg "^0.4.3" + execa "^8.0.1" + local-pkg "^0.5.0" magic-string "^0.30.5" pathe "^1.1.1" picocolors "^1.0.0" - std-env "^3.3.3" - strip-literal "^1.0.1" - tinybench "^2.5.0" - tinypool "^0.8.1" - vite "^3.1.0 || ^4.0.0 || ^5.0.0-0" - vite-node "1.0.0-beta.3" + std-env "^3.5.0" + strip-literal "^2.0.0" + tinybench "^2.5.1" + tinypool "^0.8.2" + vite "^5.0.0" + vite-node "1.3.1" why-is-node-running "^2.2.2" vue-component-type-helpers@^1.8.21: @@ -6496,16 +6300,7 @@ vue-template-compiler@^2.7.14: de-indent "^1.0.2" he "^1.2.0" -vue-tsc@^1.8.20: - version "1.8.20" - resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-1.8.20.tgz#e21e57987b315454a797efd2ee1de5f5cb61b8cc" - integrity sha512-bIADlyxJl+1ZWQQHAi47NZoi2iTiw/lBwQLL98wXROcQlUuGVtyroAIiqvto9pJotcyhtU0JbGvsHN6JN0fYfg== - dependencies: - "@vue/language-core" "1.8.20" - "@vue/typescript" "1.8.20" - semver "^7.5.4" - -vue-tsc@^1.8.27: +vue-tsc@^1.8.26, vue-tsc@^1.8.27: version "1.8.27" resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-1.8.27.tgz#feb2bb1eef9be28017bb9e95e2bbd1ebdd48481c" integrity sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg== @@ -6525,13 +6320,6 @@ vue@^3.4.19: "@vue/server-renderer" "3.4.19" "@vue/shared" "3.4.19" -w3c-xmlserializer@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz#aebdc84920d806222936e3cdce408e32488a3073" - integrity sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw== - dependencies: - xml-name-validator "^4.0.0" - w3c-xmlserializer@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz#f925ba26855158594d907313cedd1476c5967f6c" @@ -6546,10 +6334,10 @@ wcwidth@^1.0.1: dependencies: defaults "^1.0.3" -web-tree-sitter@^0.20.8: - version "0.20.8" - resolved "https://registry.yarnpkg.com/web-tree-sitter/-/web-tree-sitter-0.20.8.tgz#1e371cb577584789cadd75cb49c7ddfbc99d04c8" - integrity sha512-weOVgZ3aAARgdnb220GqYuh7+rZU0Ka9k9yfKtGAzEYMa6GgiCzW9JjQRJyCJakvibQW+dfjJdihjInKuuCAUQ== +web-tree-sitter@0.21.0: + version "0.21.0" + resolved "https://registry.yarnpkg.com/web-tree-sitter/-/web-tree-sitter-0.21.0.tgz#5f92f28f67049c3d1da450b3e88ee28df2fc1909" + integrity sha512-iJ+QJ6ikN9D9cG7Kh6q3KtAstYFUQbYZ8OjuPEJYWfj2kLrmp5I3C2n6WjE1Y3jvj7nJbkcrJytJGWUEhCxn+g== webidl-conversions@^3.0.0: version "3.0.1" @@ -6571,13 +6359,6 @@ webpack-virtual-modules@^0.5.0: resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz#362f14738a56dae107937ab98ea7062e8bdd3b6c" integrity sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw== -whatwg-encoding@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53" - integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg== - dependencies: - iconv-lite "0.6.3" - whatwg-encoding@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz#d0f4ef769905d426e1688f3e34381a99b60b76e5" @@ -6585,24 +6366,11 @@ whatwg-encoding@^3.1.1: dependencies: iconv-lite "0.6.3" -whatwg-mimetype@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" - integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== - whatwg-mimetype@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz#bc1bf94a985dc50388d54a9258ac405c3ca2fc0a" integrity sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg== -whatwg-url@^12.0.0, whatwg-url@^12.0.1: - version "12.0.1" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-12.0.1.tgz#fd7bcc71192e7c3a2a97b9a8d6b094853ed8773c" - integrity sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ== - dependencies: - tr46 "^4.1.1" - webidl-conversions "^7.0.0" - whatwg-url@^14.0.0: version "14.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-14.0.0.tgz#00baaa7fd198744910c4b1ef68378f2200e4ceb6" @@ -6630,16 +6398,6 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-collection@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" - integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== - dependencies: - is-map "^2.0.1" - is-set "^2.0.1" - is-weakmap "^2.0.1" - is-weakset "^2.0.1" - which-module@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" @@ -6669,17 +6427,6 @@ which-typed-array@^1.1.11: gopd "^1.0.1" has-tostringtag "^1.0.0" -which-typed-array@^1.1.9: - version "1.1.13" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" - integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.4" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - which@^1.2.9: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" @@ -6741,11 +6488,6 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -ws@^8.13.0: - version "8.14.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f" - integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== - ws@^8.16.0: version "8.16.0" resolved "https://registry.yarnpkg.com/ws/-/ws-8.16.0.tgz#d1cd774f36fbc07165066a60e40323eab6446fd4" From 35cf6514f78ede11bf62c6772dd2b472d8dcdb6a Mon Sep 17 00:00:00 2001 From: eyelidlessness Date: Mon, 11 Mar 2024 16:59:57 -0700 Subject: [PATCH 09/14] Fix CI scope for `@odk-web-forms/tree-sitter-xpath` test run --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a6b6700e4..258ca8c41 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -408,7 +408,7 @@ jobs: key: build-${{ matrix.node-version }}-${{ github.sha }} fail-on-cache-miss: true - - run: 'yarn workspace tree-sitter-xpath test' + - run: 'yarn workspace @odk-web-forms/tree-sitter-xpath test' ui-solid: name: 'ui-solid' From 1154b7436ce23857c9b7ac9b603df152e1d1932f Mon Sep 17 00:00:00 2001 From: eyelidlessness Date: Mon, 11 Mar 2024 17:00:25 -0700 Subject: [PATCH 10/14] Fix: no longer special case `loupe` transitive dep of Vitest in `@odk-web-forms/common` --- packages/common/vitest.config.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/common/vitest.config.ts b/packages/common/vitest.config.ts index cad6484d6..b27a669fe 100644 --- a/packages/common/vitest.config.ts +++ b/packages/common/vitest.config.ts @@ -42,8 +42,6 @@ export default defineConfig(() => { target: 'esnext', }, force: true, - // Vitest... - include: ['loupe'], }, test: { browser: { From 4b0c15d32baedc30133f8362683e551e630eb628 Mon Sep 17 00:00:00 2001 From: eyelidlessness Date: Tue, 12 Mar 2024 08:43:13 -0700 Subject: [PATCH 11/14] Fix lint on sub-expression example tests --- .../e2e/sub-expression-queries.test.ts | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/tree-sitter-xpath/e2e/sub-expression-queries.test.ts b/packages/tree-sitter-xpath/e2e/sub-expression-queries.test.ts index 1146aa5a4..0cfda0eae 100644 --- a/packages/tree-sitter-xpath/e2e/sub-expression-queries.test.ts +++ b/packages/tree-sitter-xpath/e2e/sub-expression-queries.test.ts @@ -1,6 +1,6 @@ import { expect, test } from '@playwright/test'; -import Parser from 'web-tree-sitter'; import { resolve as resolvePath } from 'node:path'; +import Parser from 'web-tree-sitter'; const { describe } = test; const it = test; @@ -2387,10 +2387,18 @@ describe('Parsing subexpressions', () => { const parsed = parser.parse(expression); const visited = new Set(); + // Workaround: `SyntaxNode.id` was removed from the `web-tree-sitter` + // types in a recent release. It's unclear if that was a mistake, but we + // likely won't maintain these tests or logic that requires this id + // indefinitely anyway. + const getNodeId = (node: Parser.SyntaxNode): number => { + return node.walk().nodeId; + }; + const allCaptures = pathExpressionsQuery.captures(parsed.rootNode); const captures = allCaptures.filter((capture) => { const { node } = capture; - const { id } = node; + const id = getNodeId(node); if (visited.has(id)) { return false; @@ -2403,7 +2411,7 @@ describe('Parsing subexpressions', () => { node.parent! ); - if (potentiallyVisited.some((ancestor) => visited.has(ancestor.id))) { + if (potentiallyVisited.some((ancestor) => visited.has(getNodeId(ancestor)))) { return false; } From d3a2ac369025bb92c54d213d959cd5b199748d1b Mon Sep 17 00:00:00 2001 From: eyelidlessness Date: Tue, 12 Mar 2024 09:08:42 -0700 Subject: [PATCH 12/14] Update xforms-engine/ui-solid READMEs --- packages/ui-solid/README.md | 62 ++++++++++++++++++++++++++++++++ packages/xforms-engine/README.md | 34 +++--------------- 2 files changed, 67 insertions(+), 29 deletions(-) diff --git a/packages/ui-solid/README.md b/packages/ui-solid/README.md index 51184229d..07bb02ae8 100644 --- a/packages/ui-solid/README.md +++ b/packages/ui-solid/README.md @@ -1 +1,63 @@ # @odk-web-forms/ui-solid + +A [Solid](https://www.solidjs.com/) UI for ODK web forms; currently a reference client of [`@odk-web-forms/xforms-engine`][vue-client]. + +> **Note** +> The future of this package is unclear! Its current state reflects an early spike/prototyping effort to explore viability of the ODK web forms project. As development of the project proceeds overall, it is likely that the [Vue client](../ui-vue/) will be be more mature and actively developed. + +## Install + +Install with `npm` (or the equivalent command for your preferred package manager): + +```sh +npm install @odk-web-forms/ui-solid +``` + +## Development + +> **Note** +> All commands should be run from the root of the monorepo, not this package's subdirectory. + +To run in development mode: + +```sh +yarn workspace @odk-web-forms/ui-solid dev +``` + +Test commands: + +```sh +# Single run +yarn workspace @odk-web-forms/ui-solid test-node:jsdom +yarn workspace @odk-web-forms/ui-solid test-browser:chromium +yarn workspace @odk-web-forms/ui-solid test-browser:firefox +yarn workspace @odk-web-forms/ui-solid test-browser:webkit + +# Watch mode (convenient during development) +yarn workspace @odk-web-forms/ui-solid test-watch:jsdom +yarn workspace @odk-web-forms/ui-solid test-watch:chromium +yarn workspace @odk-web-forms/ui-solid test-watch:firefox +yarn workspace @odk-web-forms/ui-solid test-watch:webkit +``` + +## Component structure + +- `src/components/styled`: concerned only with presentation—generally visual, typically augmenting base Material UI components provided by [SUID](https://suid.io/) +- `src/components/XForm`: designed to take XForms data (either raw or parsed into runtime data structures used throughout the system) and render form UI, generally deferring to more user-/UI-specialized components +- `src/components/Widget`: intended to correspond as closely as possible to [ODK Collect](https://docs.getodk.org/form-question-types/) question types (there also referred to as "widgets" at this time) +- `src/components/XForm/controls`: specific to visible form controls as defined in an XForm's `body` +- `src/components/XForm/debugging`: as the name suggests, these are being used to convey visible developer-facing information about aspects of the rendered form which might be of interest (and should this concept persist, they would not be user facing outside of development) +- The remaining components are named, and grouped where appropriate, around user-facing features or sets of related features + +This structure is mostly an aspirational attempt at conveying a sense of where abstraction and composition boundaries were/are anticipated for the view layer. All are subject to change and refinement, and may be superceded by the structure of the [Vue client][vue-client]. + +## Supported/tested environments + +- Browsers (latest versions): + - Chrome/Chromium-based browsers (tested only in Chromium) + - Firefox + - Safari/WebKit (tested in WebKit directly) +- Non-browser runtimes with a DOM compatibility environement: + - Node (current/LTS; tested with [jsdom](https://github.com/jsdom/jsdom)). Server-side rendering of forms is not presently supported or targeted beyond testing, though it may be considered in the future. Inclusion of Node in the automated test suites helps us to keep this option open. + +[vue-client]: ../ui-vue/ diff --git a/packages/xforms-engine/README.md b/packages/xforms-engine/README.md index 9e397668b..c24d0f246 100644 --- a/packages/xforms-engine/README.md +++ b/packages/xforms-engine/README.md @@ -1,6 +1,9 @@ -# ODK Web Forms +# @odk-web-forms/xforms-engine -[ODK XForms](https://getodk.github.io/xforms-spec/#:~:text=The%20ODK%20XForms%20specification%20is,in%20the%20W3C%20XForms%20specification.) for the web. This package is still in very early stages! +Implementation of the [ODK XForms specification](https://getodk.github.io/xforms-spec/)'s data model and computation logic. This package does not handle presentation or user interaction. Those aspects of web forms are meant to be handled by a client. Presently, those clients are: + +- [`@odk-web-forms/ui-vue`](../ui-vue) +- [`@odk-web-forms/ui-solid`](../ui-solid) ## Install @@ -15,12 +18,6 @@ npm install @odk-web-forms/xforms-engine > **Note** > All commands should be run from the root of the monorepo, not this package's subdirectory. -To run @odk-web-forms/xforms-engine in development mode: - -```sh -yarn workspace @odk-web-forms/xforms-engine dev -``` - Test commands: ```sh @@ -37,27 +34,6 @@ yarn workspace @odk-web-forms/xforms-engine test-watch:firefox yarn workspace @odk-web-forms/xforms-engine test-watch:webkit ``` -### Project structure (WIP) - -As noted, this package is still young. This structure may change as development progresses, but this captures the general intent for now. - -#### Components - -Aspects of a form concerned with presentation and user interaction are developed as components, under the `src/components` directory. These components are further structured by abstraction/composition layer and/or domain concern, e.g.: - -- `src/styled`: concerned only with presentation—generally visual, typically augmenting base Material UI components provided by [SUID](https://suid.io/) -- `src/components/XForm`: designed to take XForms data (either raw or parsed into runtime data structures used throughout the system) and render form UI, generally deferring to more user-/UI-specialized components -- `src/components/Widget`: intended to correspond as closely as possible to [ODK Collect](https://docs.getodk.org/form-question-types/) question types (there also referred to as "widgets" at this time) -- `src/components/XForm/controls`: specific to visible form controls as defined in an XForm's `body` -- `src/components/XForm/debugging`: as the name suggests, these are being used to convey visible developer-facing information about aspects of the rendered form which might be of interest (and should this concept persist, they would not be user facing outside of development) -- The remaining components are named, and grouped where appropriate, around user-facing features or sets of related features - -Being (again) early stages, this structure is mostly an aspirational attempt at conveying a sense of where abstraction and composition boundaries are anticipated for the view layer. All are subject to change and refinement. - -#### Non-view logic - -All non-view logic is presently implemented in `src/lib`. It is highly likely that this will be reduced to more conventional "library"-style logic, with e.g. XForms-specific implementation details broken out into a more explicit structure. This aspect of code organization was deferred until more of that logic is introduced. - ## Supported/tested environments - Browsers (latest versions): From 899074477490e85e8757e70d6ff7843ddb9d67a3 Mon Sep 17 00:00:00 2001 From: eyelidlessness Date: Tue, 12 Mar 2024 09:11:55 -0700 Subject: [PATCH 13/14] Move most of xforms engine out of src/lib Some of the lib stuff really is still library-ish. But now the rest is actually just the source implementation --- packages/xforms-engine/package.json | 6 ++--- .../src/{lib/xform => }/XFormDOM.test.ts | 0 .../src/{lib/xform => }/XFormDOM.ts | 2 +- .../src/{lib/xform => }/XFormDataType.ts | 0 .../{lib/xform => }/XFormDefinition.test.ts | 0 .../src/{lib/xform => }/XFormDefinition.ts | 0 .../xform => }/body/BodyDefinition.test.ts | 0 .../{lib/xform => }/body/BodyDefinition.ts | 0 .../xform => }/body/BodyElementDefinition.ts | 0 .../{lib/xform => }/body/RepeatDefinition.ts | 0 .../body/UnsupportedBodyElementDefinition.ts | 0 .../body/control/ControlDefinition.ts | 0 .../body/control/InputDefinition.ts | 0 .../body/control/select/ItemDefinition.ts | 2 +- .../body/control/select/ItemsetDefinition.ts | 2 +- .../control/select/ItemsetNodesetContext.ts | 0 .../select/ItemsetNodesetExpression.ts | 0 .../control/select/ItemsetValueExpression.ts | 0 .../body/control/select/SelectDefinition.ts | 2 +- .../body/group/BaseGroupDefinition.ts | 2 +- .../body/group/LogicalGroupDefinition.ts | 0 .../body/group/PresentationGroupDefinition.ts | 0 .../body/group/RepeatGroupDefinition.ts | 2 +- .../body/group/StructuralGroupDefinition.ts | 0 .../xform => }/body/text/HintDefinition.ts | 2 +- .../xform => }/body/text/LabelDefinition.ts | 2 +- .../body/text/TextElementDefinition.ts | 0 .../body/text/TextElementOutputPart.ts | 0 .../xform => }/body/text/TextElementPart.ts | 0 .../body/text/TextElementReferencePart.ts | 0 .../body/text/TextElementStaticPart.ts | 0 .../expression/DependencyContext.ts | 0 .../expression/DependentExpression.ts | 2 +- packages/xforms-engine/src/index.ts | 19 ++++++++++++++++ .../src/lib/{xform => dom}/query.ts | 2 +- packages/xforms-engine/src/lib/index.ts | 22 ------------------- .../{lib/xform => }/model/BindComputation.ts | 0 .../xform => }/model/BindDefinition.test.ts | 0 .../{lib/xform => }/model/BindDefinition.ts | 0 .../src/{lib/xform => }/model/BindElement.ts | 0 .../model/DescendentNodeDefinition.ts | 0 .../xform => }/model/ModelBindMap.test.ts | 0 .../src/{lib/xform => }/model/ModelBindMap.ts | 0 .../xform => }/model/ModelDefinition.test.ts | 0 .../{lib/xform => }/model/ModelDefinition.ts | 0 .../{lib/xform => }/model/NodeDefinition.ts | 0 .../model/RepeatInstanceDefinition.ts | 0 .../model/RepeatSequenceDefinition.ts | 0 .../model/RepeatTemplateDefinition.ts | 0 .../{lib/xform => }/model/RootDefinition.ts | 0 .../xform => }/model/SubtreeDefinition.ts | 0 .../xform => }/model/ValueNodeDefinition.ts | 0 .../xform => }/state/DescendantNodeState.ts | 2 +- .../{lib/xform => }/state/EntryState.test.ts | 0 .../src/{lib/xform => }/state/EntryState.ts | 0 .../src/{lib/xform => }/state/NodeState.ts | 0 .../xform => }/state/NodeStateValidity.ts | 0 .../xform => }/state/RepeatInstanceState.ts | 0 .../xform => }/state/RepeatSequenceState.ts | 0 .../src/{lib/xform => }/state/SubtreeState.ts | 0 .../{lib/xform => }/state/TranslationState.ts | 0 .../{lib/xform => }/state/ValueNodeState.ts | 4 ++-- .../xform => }/state/select/SelectState.ts | 0 .../state/select/SelectStateItem.ts | 0 .../{src => }/test/jr/repeat.test.ts | 0 .../{src => }/test/scenario/Scenario.ts | 18 +++++++-------- .../{src => }/test/scenario/assert.ts | 0 .../{src => }/test/scenario/cast.ts | 0 packages/xforms-engine/tsconfig.json | 2 +- packages/xforms-engine/vite.config.ts | 4 ++-- 70 files changed, 47 insertions(+), 50 deletions(-) rename packages/xforms-engine/src/{lib/xform => }/XFormDOM.test.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/XFormDOM.ts (99%) rename packages/xforms-engine/src/{lib/xform => }/XFormDataType.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/XFormDefinition.test.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/XFormDefinition.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/body/BodyDefinition.test.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/body/BodyDefinition.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/body/BodyElementDefinition.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/body/RepeatDefinition.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/body/UnsupportedBodyElementDefinition.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/body/control/ControlDefinition.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/body/control/InputDefinition.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/body/control/select/ItemDefinition.ts (91%) rename packages/xforms-engine/src/{lib/xform => }/body/control/select/ItemsetDefinition.ts (94%) rename packages/xforms-engine/src/{lib/xform => }/body/control/select/ItemsetNodesetContext.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/body/control/select/ItemsetNodesetExpression.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/body/control/select/ItemsetValueExpression.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/body/control/select/SelectDefinition.ts (96%) rename packages/xforms-engine/src/{lib/xform => }/body/group/BaseGroupDefinition.ts (98%) rename packages/xforms-engine/src/{lib/xform => }/body/group/LogicalGroupDefinition.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/body/group/PresentationGroupDefinition.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/body/group/RepeatGroupDefinition.ts (98%) rename packages/xforms-engine/src/{lib/xform => }/body/group/StructuralGroupDefinition.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/body/text/HintDefinition.ts (92%) rename packages/xforms-engine/src/{lib/xform => }/body/text/LabelDefinition.ts (96%) rename packages/xforms-engine/src/{lib/xform => }/body/text/TextElementDefinition.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/body/text/TextElementOutputPart.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/body/text/TextElementPart.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/body/text/TextElementReferencePart.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/body/text/TextElementStaticPart.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/expression/DependencyContext.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/expression/DependentExpression.ts (99%) create mode 100644 packages/xforms-engine/src/index.ts rename packages/xforms-engine/src/lib/{xform => dom}/query.ts (96%) delete mode 100644 packages/xforms-engine/src/lib/index.ts rename packages/xforms-engine/src/{lib/xform => }/model/BindComputation.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/model/BindDefinition.test.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/model/BindDefinition.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/model/BindElement.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/model/DescendentNodeDefinition.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/model/ModelBindMap.test.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/model/ModelBindMap.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/model/ModelDefinition.test.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/model/ModelDefinition.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/model/NodeDefinition.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/model/RepeatInstanceDefinition.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/model/RepeatSequenceDefinition.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/model/RepeatTemplateDefinition.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/model/RootDefinition.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/model/SubtreeDefinition.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/model/ValueNodeDefinition.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/state/DescendantNodeState.ts (99%) rename packages/xforms-engine/src/{lib/xform => }/state/EntryState.test.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/state/EntryState.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/state/NodeState.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/state/NodeStateValidity.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/state/RepeatInstanceState.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/state/RepeatSequenceState.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/state/SubtreeState.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/state/TranslationState.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/state/ValueNodeState.ts (96%) rename packages/xforms-engine/src/{lib/xform => }/state/select/SelectState.ts (100%) rename packages/xforms-engine/src/{lib/xform => }/state/select/SelectStateItem.ts (100%) rename packages/xforms-engine/{src => }/test/jr/repeat.test.ts (100%) rename packages/xforms-engine/{src => }/test/scenario/Scenario.ts (94%) rename packages/xforms-engine/{src => }/test/scenario/assert.ts (100%) rename packages/xforms-engine/{src => }/test/scenario/cast.ts (100%) diff --git a/packages/xforms-engine/package.json b/packages/xforms-engine/package.json index dd453d042..ce1455375 100644 --- a/packages/xforms-engine/package.json +++ b/packages/xforms-engine/package.json @@ -11,11 +11,11 @@ }, "bugs": "https://github.com/getodk/web-forms/issues", "homepage": "https://getodk.org/", - "types": "./dist/lib/index.d.ts", + "types": "./dist/index.d.ts", "exports": { ".": { - "types": "./dist/lib/index.d.ts", - "default": "./dist/lib/index.js" + "types": "./dist/index.d.ts", + "default": "./dist/index.js" } }, "files": [ diff --git a/packages/xforms-engine/src/lib/xform/XFormDOM.test.ts b/packages/xforms-engine/src/XFormDOM.test.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/XFormDOM.test.ts rename to packages/xforms-engine/src/XFormDOM.test.ts diff --git a/packages/xforms-engine/src/lib/xform/XFormDOM.ts b/packages/xforms-engine/src/XFormDOM.ts similarity index 99% rename from packages/xforms-engine/src/lib/xform/XFormDOM.ts rename to packages/xforms-engine/src/XFormDOM.ts index 2fc4a6307..574e5a771 100644 --- a/packages/xforms-engine/src/lib/xform/XFormDOM.ts +++ b/packages/xforms-engine/src/XFormDOM.ts @@ -1,6 +1,6 @@ import { XFORMS_NAMESPACE_URI } from '@odk-web-forms/common/constants/xmlns.ts'; import { XFormsXPathEvaluator } from '@odk-web-forms/xpath'; -import { xpathEvaluator } from '../xpath/evaluator.ts'; +import { xpathEvaluator } from './lib/xpath/evaluator.ts'; const domParser = new DOMParser(); diff --git a/packages/xforms-engine/src/lib/xform/XFormDataType.ts b/packages/xforms-engine/src/XFormDataType.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/XFormDataType.ts rename to packages/xforms-engine/src/XFormDataType.ts diff --git a/packages/xforms-engine/src/lib/xform/XFormDefinition.test.ts b/packages/xforms-engine/src/XFormDefinition.test.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/XFormDefinition.test.ts rename to packages/xforms-engine/src/XFormDefinition.test.ts diff --git a/packages/xforms-engine/src/lib/xform/XFormDefinition.ts b/packages/xforms-engine/src/XFormDefinition.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/XFormDefinition.ts rename to packages/xforms-engine/src/XFormDefinition.ts diff --git a/packages/xforms-engine/src/lib/xform/body/BodyDefinition.test.ts b/packages/xforms-engine/src/body/BodyDefinition.test.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/body/BodyDefinition.test.ts rename to packages/xforms-engine/src/body/BodyDefinition.test.ts diff --git a/packages/xforms-engine/src/lib/xform/body/BodyDefinition.ts b/packages/xforms-engine/src/body/BodyDefinition.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/body/BodyDefinition.ts rename to packages/xforms-engine/src/body/BodyDefinition.ts diff --git a/packages/xforms-engine/src/lib/xform/body/BodyElementDefinition.ts b/packages/xforms-engine/src/body/BodyElementDefinition.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/body/BodyElementDefinition.ts rename to packages/xforms-engine/src/body/BodyElementDefinition.ts diff --git a/packages/xforms-engine/src/lib/xform/body/RepeatDefinition.ts b/packages/xforms-engine/src/body/RepeatDefinition.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/body/RepeatDefinition.ts rename to packages/xforms-engine/src/body/RepeatDefinition.ts diff --git a/packages/xforms-engine/src/lib/xform/body/UnsupportedBodyElementDefinition.ts b/packages/xforms-engine/src/body/UnsupportedBodyElementDefinition.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/body/UnsupportedBodyElementDefinition.ts rename to packages/xforms-engine/src/body/UnsupportedBodyElementDefinition.ts diff --git a/packages/xforms-engine/src/lib/xform/body/control/ControlDefinition.ts b/packages/xforms-engine/src/body/control/ControlDefinition.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/body/control/ControlDefinition.ts rename to packages/xforms-engine/src/body/control/ControlDefinition.ts diff --git a/packages/xforms-engine/src/lib/xform/body/control/InputDefinition.ts b/packages/xforms-engine/src/body/control/InputDefinition.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/body/control/InputDefinition.ts rename to packages/xforms-engine/src/body/control/InputDefinition.ts diff --git a/packages/xforms-engine/src/lib/xform/body/control/select/ItemDefinition.ts b/packages/xforms-engine/src/body/control/select/ItemDefinition.ts similarity index 91% rename from packages/xforms-engine/src/lib/xform/body/control/select/ItemDefinition.ts rename to packages/xforms-engine/src/body/control/select/ItemDefinition.ts index a4cc1b365..63e44cc5a 100644 --- a/packages/xforms-engine/src/lib/xform/body/control/select/ItemDefinition.ts +++ b/packages/xforms-engine/src/body/control/select/ItemDefinition.ts @@ -1,5 +1,5 @@ +import { getValueElement, type ItemElement } from '../../../lib/dom/query.ts'; import type { XFormDefinition } from '../../../XFormDefinition.ts'; -import { getValueElement, type ItemElement } from '../../../query.ts'; import { BodyElementDefinition } from '../../BodyElementDefinition.ts'; import { LabelDefinition } from '../../text/LabelDefinition.ts'; import type { AnySelectDefinition } from './SelectDefinition.ts'; diff --git a/packages/xforms-engine/src/lib/xform/body/control/select/ItemsetDefinition.ts b/packages/xforms-engine/src/body/control/select/ItemsetDefinition.ts similarity index 94% rename from packages/xforms-engine/src/lib/xform/body/control/select/ItemsetDefinition.ts rename to packages/xforms-engine/src/body/control/select/ItemsetDefinition.ts index aa1231ebd..7b6a935e6 100644 --- a/packages/xforms-engine/src/lib/xform/body/control/select/ItemsetDefinition.ts +++ b/packages/xforms-engine/src/body/control/select/ItemsetDefinition.ts @@ -1,5 +1,5 @@ +import { getValueElement, type ItemsetElement } from '../../../lib/dom/query.ts'; import type { XFormDefinition } from '../../../XFormDefinition.ts'; -import { getValueElement, type ItemsetElement } from '../../../query.ts'; import { BodyElementDefinition } from '../../BodyElementDefinition.ts'; import { LabelDefinition } from '../../text/LabelDefinition.ts'; import { ItemsetNodesetExpression } from './ItemsetNodesetExpression.ts'; diff --git a/packages/xforms-engine/src/lib/xform/body/control/select/ItemsetNodesetContext.ts b/packages/xforms-engine/src/body/control/select/ItemsetNodesetContext.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/body/control/select/ItemsetNodesetContext.ts rename to packages/xforms-engine/src/body/control/select/ItemsetNodesetContext.ts diff --git a/packages/xforms-engine/src/lib/xform/body/control/select/ItemsetNodesetExpression.ts b/packages/xforms-engine/src/body/control/select/ItemsetNodesetExpression.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/body/control/select/ItemsetNodesetExpression.ts rename to packages/xforms-engine/src/body/control/select/ItemsetNodesetExpression.ts diff --git a/packages/xforms-engine/src/lib/xform/body/control/select/ItemsetValueExpression.ts b/packages/xforms-engine/src/body/control/select/ItemsetValueExpression.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/body/control/select/ItemsetValueExpression.ts rename to packages/xforms-engine/src/body/control/select/ItemsetValueExpression.ts diff --git a/packages/xforms-engine/src/lib/xform/body/control/select/SelectDefinition.ts b/packages/xforms-engine/src/body/control/select/SelectDefinition.ts similarity index 96% rename from packages/xforms-engine/src/lib/xform/body/control/select/SelectDefinition.ts rename to packages/xforms-engine/src/body/control/select/SelectDefinition.ts index 201ce5d3a..568dfd1e3 100644 --- a/packages/xforms-engine/src/lib/xform/body/control/select/SelectDefinition.ts +++ b/packages/xforms-engine/src/body/control/select/SelectDefinition.ts @@ -1,7 +1,7 @@ import type { CollectionValues } from '@odk-web-forms/common/types/collections/CollectionValues.ts'; import type { LocalNamedElement } from '@odk-web-forms/common/types/dom.ts'; import type { XFormDefinition } from '../../../XFormDefinition.ts'; -import { getItemElements, getItemsetElement } from '../../../query.ts'; +import { getItemElements, getItemsetElement } from '../../../lib/dom/query.ts'; import type { AnyBodyElementDefinition, BodyElementParentContext } from '../../BodyDefinition.ts'; import { ControlDefinition } from '../ControlDefinition.ts'; import { ItemDefinition } from './ItemDefinition.ts'; diff --git a/packages/xforms-engine/src/lib/xform/body/group/BaseGroupDefinition.ts b/packages/xforms-engine/src/body/group/BaseGroupDefinition.ts similarity index 98% rename from packages/xforms-engine/src/lib/xform/body/group/BaseGroupDefinition.ts rename to packages/xforms-engine/src/body/group/BaseGroupDefinition.ts index d14c0f22c..1e4ab28be 100644 --- a/packages/xforms-engine/src/lib/xform/body/group/BaseGroupDefinition.ts +++ b/packages/xforms-engine/src/body/group/BaseGroupDefinition.ts @@ -2,7 +2,7 @@ import { UpsertableMap } from '@odk-web-forms/common/lib/collections/UpsertableM // eslint-disable-next-line @typescript-eslint/no-unused-vars -- refrenced in JSDoc import type { XFormDOM } from '../../XFormDOM.ts'; import type { XFormDefinition } from '../../XFormDefinition.ts'; -import { getLabelElement, getRepeatElement } from '../../query.ts'; +import { getLabelElement, getRepeatElement } from '../../lib/dom/query.ts'; import { BodyDefinition, type BodyElementDefinitionArray, diff --git a/packages/xforms-engine/src/lib/xform/body/group/LogicalGroupDefinition.ts b/packages/xforms-engine/src/body/group/LogicalGroupDefinition.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/body/group/LogicalGroupDefinition.ts rename to packages/xforms-engine/src/body/group/LogicalGroupDefinition.ts diff --git a/packages/xforms-engine/src/lib/xform/body/group/PresentationGroupDefinition.ts b/packages/xforms-engine/src/body/group/PresentationGroupDefinition.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/body/group/PresentationGroupDefinition.ts rename to packages/xforms-engine/src/body/group/PresentationGroupDefinition.ts diff --git a/packages/xforms-engine/src/lib/xform/body/group/RepeatGroupDefinition.ts b/packages/xforms-engine/src/body/group/RepeatGroupDefinition.ts similarity index 98% rename from packages/xforms-engine/src/lib/xform/body/group/RepeatGroupDefinition.ts rename to packages/xforms-engine/src/body/group/RepeatGroupDefinition.ts index d58f76fc0..fe3f0ba81 100644 --- a/packages/xforms-engine/src/lib/xform/body/group/RepeatGroupDefinition.ts +++ b/packages/xforms-engine/src/body/group/RepeatGroupDefinition.ts @@ -1,5 +1,5 @@ +import { getRepeatElement } from '../../lib/dom/query.ts'; import type { XFormDefinition } from '../../XFormDefinition.ts'; -import { getRepeatElement } from '../../query.ts'; import type { BodyElementDefinitionArray, BodyElementParentContext } from '../BodyDefinition.ts'; import { RepeatDefinition } from '../RepeatDefinition.ts'; import { BaseGroupDefinition } from './BaseGroupDefinition.ts'; diff --git a/packages/xforms-engine/src/lib/xform/body/group/StructuralGroupDefinition.ts b/packages/xforms-engine/src/body/group/StructuralGroupDefinition.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/body/group/StructuralGroupDefinition.ts rename to packages/xforms-engine/src/body/group/StructuralGroupDefinition.ts diff --git a/packages/xforms-engine/src/lib/xform/body/text/HintDefinition.ts b/packages/xforms-engine/src/body/text/HintDefinition.ts similarity index 92% rename from packages/xforms-engine/src/lib/xform/body/text/HintDefinition.ts rename to packages/xforms-engine/src/body/text/HintDefinition.ts index 46538a7c2..69d8d0191 100644 --- a/packages/xforms-engine/src/lib/xform/body/text/HintDefinition.ts +++ b/packages/xforms-engine/src/body/text/HintDefinition.ts @@ -1,5 +1,5 @@ +import { getHintElement } from '../../lib/dom/query.ts'; import type { XFormDefinition } from '../../XFormDefinition.ts'; -import { getHintElement } from '../../query.ts'; import type { AnyControlDefinition } from '../control/ControlDefinition.ts'; import type { TextElement } from './TextElementDefinition.ts'; import { TextElementDefinition } from './TextElementDefinition.ts'; diff --git a/packages/xforms-engine/src/lib/xform/body/text/LabelDefinition.ts b/packages/xforms-engine/src/body/text/LabelDefinition.ts similarity index 96% rename from packages/xforms-engine/src/lib/xform/body/text/LabelDefinition.ts rename to packages/xforms-engine/src/body/text/LabelDefinition.ts index 68354120e..e51831975 100644 --- a/packages/xforms-engine/src/lib/xform/body/text/LabelDefinition.ts +++ b/packages/xforms-engine/src/body/text/LabelDefinition.ts @@ -1,5 +1,5 @@ +import { getLabelElement } from '../../lib/dom/query.ts'; import type { XFormDefinition } from '../../XFormDefinition.ts'; -import { getLabelElement } from '../../query.ts'; import type { AnyControlDefinition } from '../control/ControlDefinition.ts'; import type { ItemDefinition } from '../control/select/ItemDefinition.ts'; import type { ItemsetDefinition } from '../control/select/ItemsetDefinition.ts'; diff --git a/packages/xforms-engine/src/lib/xform/body/text/TextElementDefinition.ts b/packages/xforms-engine/src/body/text/TextElementDefinition.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/body/text/TextElementDefinition.ts rename to packages/xforms-engine/src/body/text/TextElementDefinition.ts diff --git a/packages/xforms-engine/src/lib/xform/body/text/TextElementOutputPart.ts b/packages/xforms-engine/src/body/text/TextElementOutputPart.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/body/text/TextElementOutputPart.ts rename to packages/xforms-engine/src/body/text/TextElementOutputPart.ts diff --git a/packages/xforms-engine/src/lib/xform/body/text/TextElementPart.ts b/packages/xforms-engine/src/body/text/TextElementPart.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/body/text/TextElementPart.ts rename to packages/xforms-engine/src/body/text/TextElementPart.ts diff --git a/packages/xforms-engine/src/lib/xform/body/text/TextElementReferencePart.ts b/packages/xforms-engine/src/body/text/TextElementReferencePart.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/body/text/TextElementReferencePart.ts rename to packages/xforms-engine/src/body/text/TextElementReferencePart.ts diff --git a/packages/xforms-engine/src/lib/xform/body/text/TextElementStaticPart.ts b/packages/xforms-engine/src/body/text/TextElementStaticPart.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/body/text/TextElementStaticPart.ts rename to packages/xforms-engine/src/body/text/TextElementStaticPart.ts diff --git a/packages/xforms-engine/src/lib/xform/expression/DependencyContext.ts b/packages/xforms-engine/src/expression/DependencyContext.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/expression/DependencyContext.ts rename to packages/xforms-engine/src/expression/DependencyContext.ts diff --git a/packages/xforms-engine/src/lib/xform/expression/DependentExpression.ts b/packages/xforms-engine/src/expression/DependentExpression.ts similarity index 99% rename from packages/xforms-engine/src/lib/xform/expression/DependentExpression.ts rename to packages/xforms-engine/src/expression/DependentExpression.ts index 124e2bd89..7ed7dd3bc 100644 --- a/packages/xforms-engine/src/lib/xform/expression/DependentExpression.ts +++ b/packages/xforms-engine/src/expression/DependentExpression.ts @@ -1,5 +1,5 @@ import type { XFormsXPathEvaluator } from '@odk-web-forms/xpath'; -import { getNodesetDependencies, isItextFunctionCalled } from '../../xpath/analysis.ts'; +import { getNodesetDependencies, isItextFunctionCalled } from '../lib/xpath/analysis.ts'; import type { DependencyContext } from './DependencyContext.ts'; const evaluatorMethodsByResultType = { diff --git a/packages/xforms-engine/src/index.ts b/packages/xforms-engine/src/index.ts new file mode 100644 index 000000000..b2c9ec196 --- /dev/null +++ b/packages/xforms-engine/src/index.ts @@ -0,0 +1,19 @@ +export type { AnyBodyElementDefinition, BodyDefinition } from './body/BodyDefinition.ts'; +export type { ControlDefinition } from './body/control/ControlDefinition.ts'; +export type { InputDefinition } from './body/control/InputDefinition.ts'; +export type { + AnySelectDefinition, + SelectDefinition, +} from './body/control/select/SelectDefinition.ts'; +export type { LabelDefinition } from './body/text/LabelDefinition.ts'; +export type { TranslationState } from './state/TranslationState.ts'; + +export type { AnyDescendantNodeState, DescendantNodeState } from './state/DescendantNodeState.ts'; +export type { AnyChildState, AnyParentState, NodeState } from './state/NodeState.ts'; +export type { RepeatInstanceState } from './state/RepeatInstanceState.ts'; +export type { RepeatSequenceState } from './state/RepeatSequenceState.ts'; +export type { SubtreeState } from './state/SubtreeState.ts'; +export type { ValueNodeState } from './state/ValueNodeState.ts'; + +export { XFormDefinition } from './XFormDefinition.ts'; +export { EntryState } from './state/EntryState.ts'; diff --git a/packages/xforms-engine/src/lib/xform/query.ts b/packages/xforms-engine/src/lib/dom/query.ts similarity index 96% rename from packages/xforms-engine/src/lib/xform/query.ts rename to packages/xforms-engine/src/lib/dom/query.ts index 6fc6d6ba4..3c9e35b27 100644 --- a/packages/xforms-engine/src/lib/xform/query.ts +++ b/packages/xforms-engine/src/lib/dom/query.ts @@ -3,7 +3,7 @@ import type { KnownAttributeLocalNamedElement, LocalNamedElement, } from '@odk-web-forms/common/types/dom.ts'; -import type { SelectElement } from './body/control/select/SelectDefinition'; +import type { SelectElement } from '../../body/control/select/SelectDefinition'; const hintLookup = new ScopedElementLookup(':scope > hint', 'hint'); const itemLookup = new ScopedElementLookup(':scope > item', 'item'); diff --git a/packages/xforms-engine/src/lib/index.ts b/packages/xforms-engine/src/lib/index.ts deleted file mode 100644 index 3454450b7..000000000 --- a/packages/xforms-engine/src/lib/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -export type { AnyBodyElementDefinition, BodyDefinition } from './xform/body/BodyDefinition.ts'; -export type { ControlDefinition } from './xform/body/control/ControlDefinition.ts'; -export type { InputDefinition } from './xform/body/control/InputDefinition.ts'; -export type { - AnySelectDefinition, - SelectDefinition, -} from './xform/body/control/select/SelectDefinition.ts'; -export type { LabelDefinition } from './xform/body/text/LabelDefinition.ts'; -export type { TranslationState } from './xform/state/TranslationState.ts'; - -export type { - AnyDescendantNodeState, - DescendantNodeState, -} from './xform/state/DescendantNodeState.ts'; -export type { AnyChildState, AnyParentState, NodeState } from './xform/state/NodeState.ts'; -export type { RepeatInstanceState } from './xform/state/RepeatInstanceState.ts'; -export type { RepeatSequenceState } from './xform/state/RepeatSequenceState.ts'; -export type { SubtreeState } from './xform/state/SubtreeState.ts'; -export type { ValueNodeState } from './xform/state/ValueNodeState.ts'; - -export { XFormDefinition } from './xform/XFormDefinition.ts'; -export { EntryState } from './xform/state/EntryState.ts'; diff --git a/packages/xforms-engine/src/lib/xform/model/BindComputation.ts b/packages/xforms-engine/src/model/BindComputation.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/model/BindComputation.ts rename to packages/xforms-engine/src/model/BindComputation.ts diff --git a/packages/xforms-engine/src/lib/xform/model/BindDefinition.test.ts b/packages/xforms-engine/src/model/BindDefinition.test.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/model/BindDefinition.test.ts rename to packages/xforms-engine/src/model/BindDefinition.test.ts diff --git a/packages/xforms-engine/src/lib/xform/model/BindDefinition.ts b/packages/xforms-engine/src/model/BindDefinition.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/model/BindDefinition.ts rename to packages/xforms-engine/src/model/BindDefinition.ts diff --git a/packages/xforms-engine/src/lib/xform/model/BindElement.ts b/packages/xforms-engine/src/model/BindElement.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/model/BindElement.ts rename to packages/xforms-engine/src/model/BindElement.ts diff --git a/packages/xforms-engine/src/lib/xform/model/DescendentNodeDefinition.ts b/packages/xforms-engine/src/model/DescendentNodeDefinition.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/model/DescendentNodeDefinition.ts rename to packages/xforms-engine/src/model/DescendentNodeDefinition.ts diff --git a/packages/xforms-engine/src/lib/xform/model/ModelBindMap.test.ts b/packages/xforms-engine/src/model/ModelBindMap.test.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/model/ModelBindMap.test.ts rename to packages/xforms-engine/src/model/ModelBindMap.test.ts diff --git a/packages/xforms-engine/src/lib/xform/model/ModelBindMap.ts b/packages/xforms-engine/src/model/ModelBindMap.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/model/ModelBindMap.ts rename to packages/xforms-engine/src/model/ModelBindMap.ts diff --git a/packages/xforms-engine/src/lib/xform/model/ModelDefinition.test.ts b/packages/xforms-engine/src/model/ModelDefinition.test.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/model/ModelDefinition.test.ts rename to packages/xforms-engine/src/model/ModelDefinition.test.ts diff --git a/packages/xforms-engine/src/lib/xform/model/ModelDefinition.ts b/packages/xforms-engine/src/model/ModelDefinition.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/model/ModelDefinition.ts rename to packages/xforms-engine/src/model/ModelDefinition.ts diff --git a/packages/xforms-engine/src/lib/xform/model/NodeDefinition.ts b/packages/xforms-engine/src/model/NodeDefinition.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/model/NodeDefinition.ts rename to packages/xforms-engine/src/model/NodeDefinition.ts diff --git a/packages/xforms-engine/src/lib/xform/model/RepeatInstanceDefinition.ts b/packages/xforms-engine/src/model/RepeatInstanceDefinition.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/model/RepeatInstanceDefinition.ts rename to packages/xforms-engine/src/model/RepeatInstanceDefinition.ts diff --git a/packages/xforms-engine/src/lib/xform/model/RepeatSequenceDefinition.ts b/packages/xforms-engine/src/model/RepeatSequenceDefinition.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/model/RepeatSequenceDefinition.ts rename to packages/xforms-engine/src/model/RepeatSequenceDefinition.ts diff --git a/packages/xforms-engine/src/lib/xform/model/RepeatTemplateDefinition.ts b/packages/xforms-engine/src/model/RepeatTemplateDefinition.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/model/RepeatTemplateDefinition.ts rename to packages/xforms-engine/src/model/RepeatTemplateDefinition.ts diff --git a/packages/xforms-engine/src/lib/xform/model/RootDefinition.ts b/packages/xforms-engine/src/model/RootDefinition.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/model/RootDefinition.ts rename to packages/xforms-engine/src/model/RootDefinition.ts diff --git a/packages/xforms-engine/src/lib/xform/model/SubtreeDefinition.ts b/packages/xforms-engine/src/model/SubtreeDefinition.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/model/SubtreeDefinition.ts rename to packages/xforms-engine/src/model/SubtreeDefinition.ts diff --git a/packages/xforms-engine/src/lib/xform/model/ValueNodeDefinition.ts b/packages/xforms-engine/src/model/ValueNodeDefinition.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/model/ValueNodeDefinition.ts rename to packages/xforms-engine/src/model/ValueNodeDefinition.ts diff --git a/packages/xforms-engine/src/lib/xform/state/DescendantNodeState.ts b/packages/xforms-engine/src/state/DescendantNodeState.ts similarity index 99% rename from packages/xforms-engine/src/lib/xform/state/DescendantNodeState.ts rename to packages/xforms-engine/src/state/DescendantNodeState.ts index 959ad4956..5f6f7011d 100644 --- a/packages/xforms-engine/src/lib/xform/state/DescendantNodeState.ts +++ b/packages/xforms-engine/src/state/DescendantNodeState.ts @@ -1,6 +1,5 @@ import type { Accessor } from 'solid-js'; import { createComputed, createMemo, createSignal, on } from 'solid-js'; -import { createUninitializedAccessor } from '../../reactivity/primitives/uninitialized.ts'; import type { AnyTextElementDefinition } from '../body/text/TextElementDefinition.ts'; import type { AnyTextElementPart } from '../body/text/TextElementPart.ts'; import type { @@ -8,6 +7,7 @@ import type { DependentExpressionResult, DependentExpressionResultType, } from '../expression/DependentExpression.ts'; +import { createUninitializedAccessor } from '../lib/reactivity/primitives/uninitialized.ts'; import type { BindComputation } from '../model/BindComputation.ts'; import type { EntryState } from './EntryState.ts'; import type { diff --git a/packages/xforms-engine/src/lib/xform/state/EntryState.test.ts b/packages/xforms-engine/src/state/EntryState.test.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/state/EntryState.test.ts rename to packages/xforms-engine/src/state/EntryState.test.ts diff --git a/packages/xforms-engine/src/lib/xform/state/EntryState.ts b/packages/xforms-engine/src/state/EntryState.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/state/EntryState.ts rename to packages/xforms-engine/src/state/EntryState.ts diff --git a/packages/xforms-engine/src/lib/xform/state/NodeState.ts b/packages/xforms-engine/src/state/NodeState.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/state/NodeState.ts rename to packages/xforms-engine/src/state/NodeState.ts diff --git a/packages/xforms-engine/src/lib/xform/state/NodeStateValidity.ts b/packages/xforms-engine/src/state/NodeStateValidity.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/state/NodeStateValidity.ts rename to packages/xforms-engine/src/state/NodeStateValidity.ts diff --git a/packages/xforms-engine/src/lib/xform/state/RepeatInstanceState.ts b/packages/xforms-engine/src/state/RepeatInstanceState.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/state/RepeatInstanceState.ts rename to packages/xforms-engine/src/state/RepeatInstanceState.ts diff --git a/packages/xforms-engine/src/lib/xform/state/RepeatSequenceState.ts b/packages/xforms-engine/src/state/RepeatSequenceState.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/state/RepeatSequenceState.ts rename to packages/xforms-engine/src/state/RepeatSequenceState.ts diff --git a/packages/xforms-engine/src/lib/xform/state/SubtreeState.ts b/packages/xforms-engine/src/state/SubtreeState.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/state/SubtreeState.ts rename to packages/xforms-engine/src/state/SubtreeState.ts diff --git a/packages/xforms-engine/src/lib/xform/state/TranslationState.ts b/packages/xforms-engine/src/state/TranslationState.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/state/TranslationState.ts rename to packages/xforms-engine/src/state/TranslationState.ts diff --git a/packages/xforms-engine/src/lib/xform/state/ValueNodeState.ts b/packages/xforms-engine/src/state/ValueNodeState.ts similarity index 96% rename from packages/xforms-engine/src/lib/xform/state/ValueNodeState.ts rename to packages/xforms-engine/src/state/ValueNodeState.ts index a3df7591e..ca6beb32c 100644 --- a/packages/xforms-engine/src/lib/xform/state/ValueNodeState.ts +++ b/packages/xforms-engine/src/state/ValueNodeState.ts @@ -1,8 +1,8 @@ import type { Accessor, Signal } from 'solid-js'; import { createComputed, createSignal, untrack } from 'solid-js'; -import { createLatest } from '../../reactivity/primitives/createLatest.ts'; -import { createUninitialized } from '../../reactivity/primitives/uninitialized.ts'; import type { AnySelectDefinition } from '../body/control/select/SelectDefinition.ts'; +import { createLatest } from '../lib/reactivity/primitives/createLatest.ts'; +import { createUninitialized } from '../lib/reactivity/primitives/uninitialized.ts'; import type { ValueNodeDefinition } from '../model/ValueNodeDefinition.ts'; import { DescendantNodeState } from './DescendantNodeState.ts'; import type { EntryState } from './EntryState.ts'; diff --git a/packages/xforms-engine/src/lib/xform/state/select/SelectState.ts b/packages/xforms-engine/src/state/select/SelectState.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/state/select/SelectState.ts rename to packages/xforms-engine/src/state/select/SelectState.ts diff --git a/packages/xforms-engine/src/lib/xform/state/select/SelectStateItem.ts b/packages/xforms-engine/src/state/select/SelectStateItem.ts similarity index 100% rename from packages/xforms-engine/src/lib/xform/state/select/SelectStateItem.ts rename to packages/xforms-engine/src/state/select/SelectStateItem.ts diff --git a/packages/xforms-engine/src/test/jr/repeat.test.ts b/packages/xforms-engine/test/jr/repeat.test.ts similarity index 100% rename from packages/xforms-engine/src/test/jr/repeat.test.ts rename to packages/xforms-engine/test/jr/repeat.test.ts diff --git a/packages/xforms-engine/src/test/scenario/Scenario.ts b/packages/xforms-engine/test/scenario/Scenario.ts similarity index 94% rename from packages/xforms-engine/src/test/scenario/Scenario.ts rename to packages/xforms-engine/test/scenario/Scenario.ts index 69441b6ab..ba745925b 100644 --- a/packages/xforms-engine/src/test/scenario/Scenario.ts +++ b/packages/xforms-engine/test/scenario/Scenario.ts @@ -4,18 +4,18 @@ import type { XFormsElement } from '@odk-web-forms/common/test/fixtures/xform-ds import type { CollectionValues } from '@odk-web-forms/common/types/collections/CollectionValues.ts'; import { createMemo, createSignal, type Accessor, type Signal } from 'solid-js'; import { afterEach, expect } from 'vitest'; -import { XFormDefinition } from '../../lib/xform/XFormDefinition.ts'; +import { XFormDefinition } from '../../src/XFormDefinition.ts'; import type { AnyBodyElementDefinition, NonRepeatGroupElementDefinition, -} from '../../lib/xform/body/BodyDefinition.ts'; -import type { AnyControlDefinition } from '../../lib/xform/body/control/ControlDefinition.ts'; -import { EntryState } from '../../lib/xform/state/EntryState.ts'; -import type { AnyNodeState } from '../../lib/xform/state/NodeState.ts'; -import type { RepeatInstanceState } from '../../lib/xform/state/RepeatInstanceState.ts'; -import type { RepeatSequenceState } from '../../lib/xform/state/RepeatSequenceState.ts'; -import type { SubtreeState } from '../../lib/xform/state/SubtreeState.ts'; -import { ValueNodeState } from '../../lib/xform/state/ValueNodeState.ts'; +} from '../../src/body/BodyDefinition.ts'; +import type { AnyControlDefinition } from '../../src/body/control/ControlDefinition.ts'; +import { EntryState } from '../../src/state/EntryState.ts'; +import type { AnyNodeState } from '../../src/state/NodeState.ts'; +import type { RepeatInstanceState } from '../../src/state/RepeatInstanceState.ts'; +import type { RepeatSequenceState } from '../../src/state/RepeatSequenceState.ts'; +import type { SubtreeState } from '../../src/state/SubtreeState.ts'; +import { ValueNodeState } from '../../src/state/ValueNodeState.ts'; import { castToString } from './cast.ts'; interface BodyElementSpecifier< diff --git a/packages/xforms-engine/src/test/scenario/assert.ts b/packages/xforms-engine/test/scenario/assert.ts similarity index 100% rename from packages/xforms-engine/src/test/scenario/assert.ts rename to packages/xforms-engine/test/scenario/assert.ts diff --git a/packages/xforms-engine/src/test/scenario/cast.ts b/packages/xforms-engine/test/scenario/cast.ts similarity index 100% rename from packages/xforms-engine/src/test/scenario/cast.ts rename to packages/xforms-engine/test/scenario/cast.ts diff --git a/packages/xforms-engine/tsconfig.json b/packages/xforms-engine/tsconfig.json index 6eecaccf0..2e18ba59b 100644 --- a/packages/xforms-engine/tsconfig.json +++ b/packages/xforms-engine/tsconfig.json @@ -1,6 +1,6 @@ { "extends": "../../tsconfig.json", - "include": ["src", "test/**/*.ts", "test/**/*.tsx", "tools/**/*.ts", "vite-env.d.ts"], + "include": ["src", "test", "tools/**/*.ts", "vite-env.d.ts"], "compilerOptions": { "allowSyntheticDefaultImports": false, "declarationDir": "./dist", diff --git a/packages/xforms-engine/vite.config.ts b/packages/xforms-engine/vite.config.ts index fe7df5786..a3c1c14ad 100644 --- a/packages/xforms-engine/vite.config.ts +++ b/packages/xforms-engine/vite.config.ts @@ -38,7 +38,7 @@ const TEST_ENVIRONMENT = BROWSER_ENABLED ? 'node' : 'jsdom'; export default defineConfig(({ mode }) => { const isTest = mode === 'test'; - const entries = ['./src/lib/index.ts']; + const entries = ['./src/index.ts']; // Mapping entry names with path-based keys gives a more predictable output // which we control at the filesystem level, so the exports in package.json @@ -89,7 +89,7 @@ export default defineConfig(({ mode }) => { dts({ entryRoot: './src', exclude: ['@odk-web-forms/common', 'test', 'vite-env.d.ts'], - include: ['src/lib/**/*.ts'], + include: ['src/**/*.ts'], }), ], From 0365b1e7f8f3763083a9a42ab4fcd8c7dd9a6cfa Mon Sep 17 00:00:00 2001 From: eyelidlessness Date: Tue, 12 Mar 2024 11:14:34 -0700 Subject: [PATCH 14/14] Fix: engine and solid test commands, move Playwright e2e config to ui-solid --- packages/ui-solid/package.json | 2 +- packages/{xforms-engine => ui-solid}/playwright.config.ts | 0 packages/xforms-engine/package.json | 3 +-- 3 files changed, 2 insertions(+), 3 deletions(-) rename packages/{xforms-engine => ui-solid}/playwright.config.ts (100%) diff --git a/packages/ui-solid/package.json b/packages/ui-solid/package.json index 5450086d3..671931bef 100644 --- a/packages/ui-solid/package.json +++ b/packages/ui-solid/package.json @@ -31,7 +31,7 @@ "build:clean": "rimraf dist/", "build:js": "vite build", "dev": "vite", - "test": "npm-run-all -nl test:*", + "test": "npm-run-all --print-name --print-label test:* test-node:* test-browser:*", "test:e2e": "playwright test", "test-node:jsdom": "vitest run", "test-browser:chromium": "BROWSER_NAME=chromium vitest run", diff --git a/packages/xforms-engine/playwright.config.ts b/packages/ui-solid/playwright.config.ts similarity index 100% rename from packages/xforms-engine/playwright.config.ts rename to packages/ui-solid/playwright.config.ts diff --git a/packages/xforms-engine/package.json b/packages/xforms-engine/package.json index ce1455375..497f79e86 100644 --- a/packages/xforms-engine/package.json +++ b/packages/xforms-engine/package.json @@ -31,8 +31,7 @@ "build:clean": "rimraf dist/", "build:js": "vite build", "dev": "vite", - "test": "npm-run-all -nl test:*", - "test:e2e": "playwright test", + "test": "npm-run-all --print-name --print-label test-node:* test-browser:*", "test-node:jsdom": "vitest run", "test-browser:chromium": "BROWSER_NAME=chromium vitest run", "test-browser:firefox": "BROWSER_NAME=firefox vitest run",