Skip to content

Develop#47

Merged
chillenious merged 21 commits into
masterfrom
develop
Mar 20, 2026
Merged

Develop#47
chillenious merged 21 commits into
masterfrom
develop

Conversation

@chillenious
Copy link
Copy Markdown
Contributor

No description provided.

chillenious and others added 21 commits January 26, 2026 11:19
Fixes #35 test failures by addressing version detection and extractor logic issues.

**Issues Fixed:**
1. QTI 3.0 version detection not recognizing fragment elements
2. Broken canHandle methods after refactoring
3. Missing QTI 3.0 element name checks in extractors
4. Registry API not converting element types to canonical form

**Changes:**

Version Detection (detectQtiVersion.ts):
- Enhanced to recognize any qti- prefixed element as QTI 3.0
- Added regex pattern for kebab-case QTI 3.0 elements in string detection

Extractor canHandle Methods:
- Reverted 14 extractors to check element.rawTagName (proper validation)
- Added QTI 3.0 kebab-case element name checks for 3 extractors:
  - textEntryExtractor: checks both 'textEntryInteraction' and 'qti-text-entry-interaction'
  - extendedTextExtractor: checks both camelCase and kebab-case
  - matchExtractor: checks both camelCase and kebab-case

Registry API (ExtractionRegistry.ts):
- Fixed getExtractorsForType() to convert input to canonical form

Tests (qti3-attribute-extraction.test.ts):
- Fixed querySelector calls to use lowercase for HTML parser compatibility

**Test Results:**
✅ All 1568 tests passing (previously 10 failures)

Co-Authored-By: Claude <noreply@anthropic.com>
Remove unnecessary Svelte/SvelteKit/DaisyUI dependencies from non-UI packages, align package manifests/helpers/types, and include the related workspace housekeeping updates.

Co-authored-by: Cursor <cursoragent@cursor.com>
Bring across high-value PR #39 fixes for matching/media/hottext behavior and drawing file handling, and add targeted regression tests plus ts-check hardening to keep CI stable.

Co-authored-by: Cursor <cursoragent@cursor.com>
Avoid triggering publish-mode release runs on metadata-only package.json edits by detecting real version field changes.

Co-authored-by: Cursor <cursoragent@cursor.com>
Enforce workspace fixed-versioning checks during release and harden manual release workflow intent/auth handling while aligning package and docs metadata for Node 20.19 and related version bumps.

Made-with: Cursor
Reorganize demo, docs, and transform applications under apps/ with updated package scopes and references to simplify workspace structure. Stabilize dev startup by using deterministic dependency prebuilds and a single shared app launcher that keeps local workflows reliable.

Made-with: Cursor
Replace invented names with QTI spec equivalents across the codebase:

- ParsedQuestionRef / questionRefs → ParsedAssessmentItemRef / assessmentItemRefs
- QuestionRef (UI type) / questionRef prop → ItemRef / itemRef
- FlatQuestion / questions / getCurrentQuestion() / flattenQuestions() → FlatItem / items / getCurrentItem() / flattenItems()
- SecureSection.items → SecureSection.assessmentItemRefs
- SecureTestPart.rubrics / SecureSection.rubrics → rubricBlocks

No behavioural changes; purely a naming alignment to match QTI 2.x spec terms.
- Add npm-auth-env.mjs: temp .npmrc from NPM_TOKEN for CI and local publish
- Add changeset-publish-resolved-workspaces.mjs: resolves workspace:* to real
  versions before changeset publish (required by npm), restores after, retries once
- Add restore-workspace-ranges.mjs: standalone workspace range restoration
- Add create-temporary-release-changeset.mjs: synthetic patch changeset for all
  publishable packages (enables one-command local release)
- Add check-npm-auth.mjs: pre-flight npm auth + org access check
- Add pack-local.mjs: produce local tarballs for testing without publishing
- Add check-published-closure.mjs: post-publish check for leaked workspace ranges
- Upgrade release.mjs to delegate to changeset-publish-resolved-workspaces
- Upgrade check-fixed-versioning.mjs with npm version sequence check
  (local must be exactly one patch ahead of published; skippable via
  SKIP_NPM_VERSION_SEQUENCE_CHECK=1)
- Fix .changeset/config.json: remove nonexistent @pie-qti/transform-cli entry
  (package lives in tools/cli and is correctly discovered at runtime)
- Add .env.example documenting NPM_TOKEN for local publishing
- Add @dotenvx/dotenvx devDependency for .env loading
- Add release:with-version, restore:workspace-ranges, check:npm-auth, pack:local
  scripts to package.json
- Update CI workflow: skip heavy jobs on changeset-release/* PRs and
  [skip-heavy-ci] PRs; upload build artifacts
- Update release workflow: use workspace-range-resolved publish, add
  check-published-closure post-publish, improve version-bump detection
…e deps

- Move assignProps, touchDrag helpers into packages/qti-common/src/dom/
  so item-player and default-components share one implementation
- Refactor logger: consolidate server.ts, remove duplicated utils in core
- Consolidate ims-cp parsing into ims-cp-core; slim down to-pie's local copy
- Add tests for eventHelpers and webComponentHelpers in default-components
- Add dom-utils tests in qti-common
- Minor updates to demo/transform app fixtures and playwright tests
Strengthen CI/release checks for deployability and package publishability, and align lockstep patch release workflow with automated changeset preparation on master.

Made-with: Cursor
@chillenious chillenious merged commit feb5200 into master Mar 20, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant