Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
8cee40f
refactor(SOF-8032): rework Job against esse's flattened job schema, m…
k0stik Aug 20, 2026
2e2c7d9
chore(SOF-8032): repin @mat3ra/ide to wip-d33453e (RMSNotificationsHa…
k0stik Aug 20, 2026
9c9e4a6
chore(SOF-8032): repin @mat3ra/ide to wip-8db04e1 (computedEntityMixi…
k0stik Aug 20, 2026
356213b
chore(SOF-8032): repin @mat3ra/ide to wip-a5b4e7c (dead filesRootDir …
k0stik Aug 20, 2026
9e0ebb3
chore(SOF-8032): repin @mat3ra/ide to wip-9be76b6 (getApproximateChar…
k0stik Aug 20, 2026
d5758c1
chore(SOF-8032): repin @mat3ra/esse to wip-4b9b167 (isExternal restor…
k0stik Aug 20, 2026
7e5e0fa
chore(SOF-8032): repin @mat3ra/ide to wip-ea09356 (computedEntityMixi…
k0stik Aug 20, 2026
b7d1db4
chore(SOF-8032): repin @mat3ra/ide to wip-17e163b (warnings/isExterna…
k0stik Aug 20, 2026
cf51805
chore(SOF-8032): repin @mat3ra/esse to wip-0fdb21e (isExternal remove…
k0stik Aug 20, 2026
b7a880d
chore(SOF-8032): repin ade/mode/prode/standata/utils to latest publis…
k0stik Aug 21, 2026
fe42895
chore(SOF-8032): repin @mat3ra/ide to wip-6c4177b (timeLimit/computeQ…
k0stik Aug 21, 2026
d1c7028
chore(SOF-8032): retrigger release-wip for CoreJob work [release]
k0stik Aug 21, 2026
0b92089
fix(SOF-8032): regenerate package-lock.json without --legacy-peer-deps
k0stik Aug 21, 2026
0c31ae8
chore(SOF-8032): retrigger release-wip after lockfile fix [release]
k0stik Aug 21, 2026
5731e34
chore(SOF-8032): add eslint/prettier devDependencies and fix lint errors
k0stik Aug 21, 2026
7d9064d
chore(SOF-8032): release jode with eslint setup + <S> cleanup [release]
k0stik Aug 21, 2026
dae1dcc
fix(SOF-8032): use wode's WorkflowSchema for JobEntity.workflow [rele…
k0stik Aug 21, 2026
7bba177
fix(SOF-8032): hand-write Job.workflow against WorkflowSchema, implem…
k0stik Aug 21, 2026
4006164
fix(SOF-8032): write straight to _json in setWorkflow to avoid recurs…
k0stik Aug 25, 2026
3826cd4
chore(SOF-8032): repin @mat3ra/esse to a valid, durable WIP release […
k0stik Aug 25, 2026
fc3d362
fix(SOF-8032): render templates via precompile+run, not compile [rele…
k0stik Aug 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5,293 changes: 3,438 additions & 1,855 deletions package-lock.json

Large diffs are not rendered by default.

33 changes: 26 additions & 7 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
"lint": "eslint src/js tests/js && prettier --write src/js tests/js",
"lint:fix": "eslint --fix --cache src/js tests/js && prettier --write src/js tests/js",
"transpile": "tsc -p tsconfig-transpile.json",
"generate-mixins": "ts-node scripts/generate-mixins.ts",
"prettier": "prettier --check src/js tests/js",
"prepare": "husky install || exit 0",
"prepublishOnly": "npm run transpile"
Expand Down Expand Up @@ -39,22 +40,40 @@
"@mat3ra/wode": "*"
},
"devDependencies": {
"@mat3ra/ade": "https://github.com/mat3ra/ade/releases/download/wip-27f6c05/ade.tgz",
"@exabyte-io/eslint-config": "2025.5.13-0",
"@mat3ra/ade": "2026.8.18-0",
"@mat3ra/code": "2026.8.18-0",
"@mat3ra/esse": "2026.8.18-2",
"@mat3ra/ide": "2026.8.18-0",
"@mat3ra/esse": "https://github.com/mat3ra/esse/releases/download/wip-b0bf9ef/esse.tgz",
"@mat3ra/ide": "https://github.com/mat3ra/ide/releases/download/wip-6c4177b/ide.tgz",
"@mat3ra/made": "2026.8.18-0",
"@mat3ra/mode": "https://github.com/mat3ra/mode/releases/download/wip-02b85be/mode.tgz",
"@mat3ra/prode": "https://github.com/mat3ra/prode/releases/download/wip-52f33d4/prode.tgz",
"@mat3ra/standata": "https://github.com/mat3ra/standata/releases/download/wip-35eaef7/standata.tgz",
"@mat3ra/mode": "2026.8.18-0",
"@mat3ra/prode": "2026.8.18-0",
"@mat3ra/standata": "2026.8.18-0",
"@mat3ra/tsconfig": "^2024.6.3-0",
"@mat3ra/utils": "https://github.com/mat3ra/utils/releases/download/wip-9a19d0d/utils.tgz",
"@mat3ra/utils": "2026.8.18-1",
"@mat3ra/wode": "2026.8.18-0",
"@types/json-schema": "^7.0.15",
"@types/mocha": "^10.0.1",
"@types/node": "^20.11.30",
"@typescript-eslint/eslint-plugin": "^5.62.0",
"@typescript-eslint/parser": "^5.62.0",
"chai": "^4.3.4",
"eslint": "^7.32.0",
"eslint-config-airbnb": "^19.0.2",
"eslint-config-prettier": "^8.5.0",
"eslint-import-resolver-exports": "^1.0.0-beta.5",
"eslint-import-resolver-meteor": "^0.4.0",
"eslint-import-resolver-node": "^0.3.9",
"eslint-plugin-import": "^2.25.3",
"eslint-plugin-jsdoc": "^37.1.0",
"eslint-plugin-jsx-a11y": "^6.5.1",
"eslint-plugin-mui-path-imports": "0.0.15",
"eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-react": "^7.30.0",
"eslint-plugin-simple-import-sort": "^7.0.0",
"mocha": "^9.1.3",
"moment": "^2.29.4",
"prettier": "^2.7.1",
"ts-node": "^10.9.2",
"typescript": "^5.6.6",
"husky": "^7.0.4",
Expand Down
53 changes: 53 additions & 0 deletions scripts/generate-mixins.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#!/usr/bin/env node

/**
* Script to generate mixin properties from JSON schema
*
* Usage:
* npx ts-node scripts/generate-mixins.ts
*/

import generateSchemaMixin from "@mat3ra/code/dist/js/generateSchemaMixin";
import allSchemas from "@mat3ra/esse/dist/js/schemas.json";
import type { JSONSchema7 } from "json-schema";

/**
* Fields already provided by InMemoryEntity / NamedInMemoryEntity / DefaultableMixin
* (via the `job` schema's `named_defaultable_has_metadata` composition) - skipped so
* the generated mixin does not redeclare them.
*
* `workflow` is also skipped: the schema's own recursive `workflow.workflows` field (sub-workflows
* share the parent's schema) resolves to a bare `{ type: "object" }` with no properties, so the
* generated type would be `{}[]` - unusable. `Job.ts` hand-writes `workflow` against wode's real
* `WorkflowSchema` instead (same reason wode's own `Workflow.workflows` is hand-written rather
* than generated - see `workflow/base`'s `OUTPUT_PATHS` entry in wode's own generate-mixins.ts).
*/
const SKIP_FIELDS = [
"_id",
"slug",
"systemName",
"schemaVersion",
"name",
"isDefault",
"metadata",
"workflow",
];

/**
* Output file paths for each schema
*/
const OUTPUT_PATHS = {
job: "src/js/generated/JobSchemaMixin.ts",
};

function main() {
// Type assertion to handle schema compatibility - the schemas from esse may have slightly different types
const result = generateSchemaMixin(allSchemas as JSONSchema7[], OUTPUT_PATHS, SKIP_FIELDS);

if (result.errorCount > 0) {
process.exit(1);
}
}

// Run the script if it's executed directly
main();
Loading