Skip to content

Migrate Smart Filters packages into the repo #16817

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 102 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
102 commits
Select commit Hold shift + click to select a range
946cb67
Empty smart filters core dev package
AmoebaChant Jun 5, 2025
5910ca0
SF Core with published B Core link
AmoebaChant Jun 5, 2025
e3587e2
Some formatting and lint fixes
AmoebaChant Jun 5, 2025
c5469fa
Lint fixes
AmoebaChant Jun 5, 2025
79ef6d7
shaderCodeUtils.ts lint fixes
AmoebaChant Jun 5, 2025
2fe0912
more lint fixes
AmoebaChant Jun 5, 2025
a9249be
lint fixes
AmoebaChant Jun 5, 2025
a7ac15d
Final lint issues
AmoebaChant Jun 5, 2025
852e814
Get public for core working
AmoebaChant Jun 5, 2025
0661cef
Fix up es6 build
AmoebaChant Jun 5, 2025
aff1916
Now updating version.ts
AmoebaChant Jun 5, 2025
178b585
enable TS strict mode
AmoebaChant Jun 9, 2025
b088a2d
Copied over blocks library
AmoebaChant Jun 9, 2025
35852e4
blocks dev is building
AmoebaChant Jun 9, 2025
7cb1dbb
eslint fixes for blocks package
AmoebaChant Jun 9, 2025
30a80fc
Fixing up block -> core references
AmoebaChant Jun 10, 2025
aac36f5
note to self
AmoebaChant Jun 10, 2025
0a580cc
blocks dev build using node_modules BJS core and mono repo SF core co…
AmoebaChant Jun 10, 2025
77f97a4
Public blocks building too
AmoebaChant Jun 10, 2025
1cab4b5
Merge branch 'master' into create-smart-filters-packages
AmoebaChant Jun 10, 2025
67a1da6
Fixed up publish (now publishes source maps as it did before)
AmoebaChant Jun 11, 2025
dba152a
Remove temp code
AmoebaChant Jun 11, 2025
75300eb
Fix SmartFilterCoreVersion updating during publish to ensure the ts a…
AmoebaChant Jun 11, 2025
e21c960
Fix tests for smart filter core
AmoebaChant Jun 11, 2025
fe057f5
Have public smart filters package add .js back
AmoebaChant Jun 12, 2025
ea2a4c8
Fix consumption of build tools in smartFilters from smartFilterBlocks…
AmoebaChant Jun 12, 2025
8c36f73
Remove requirement that their be UTs for the blocks package
AmoebaChant Jun 12, 2025
98b4daa
lock file update
AmoebaChant Jun 12, 2025
6fecb5d
Merge branch 'master' into create-smart-filters-packages
AmoebaChant Jun 12, 2025
530b61d
Fix dependency ordering, add @babylonjs/shared-ui-components as a dep…
AmoebaChant Jun 12, 2025
05d1814
Fixed "@dev/smart-filters" devDep reference
AmoebaChant Jun 12, 2025
f86555e
Fix blocks package to not reference tslib - now core and blocks are done
AmoebaChant Jun 12, 2025
4e45250
Add @dev/smart-filters-editor package - not building yet
AmoebaChant Jun 12, 2025
b7b371c
SFE control: Replace @babylonjs/core with core
AmoebaChant Jun 12, 2025
fec6ec6
Rename SFE control folder
AmoebaChant Jun 12, 2025
3c16a14
SFE control: replace @babylonjs/shared-ui-components with shared-ui-c…
AmoebaChant Jun 13, 2025
8a74381
SFE control - adding needed build flags
AmoebaChant Jun 13, 2025
81f03cf
SFE editor: clean build
AmoebaChant Jun 13, 2025
30895dc
SFE control lint fixes
AmoebaChant Jun 13, 2025
7564e4c
Remove .js from ts in blocks dev package for future compat with UTs
AmoebaChant Jun 13, 2025
89ca9ae
SF demo files
AmoebaChant Jun 13, 2025
117a487
Switch to SFE
AmoebaChant Jun 13, 2025
2818759
SFE: Starting to work on webpack config
AmoebaChant Jun 13, 2025
19f0ed2
Fix some references in webpack config for imports
AmoebaChant Jun 13, 2025
27adf51
Webpack build working for the first time
AmoebaChant Jun 13, 2025
96984e7
Seeing the HTML, but for some reason getting an error about BABYLON n…
AmoebaChant Jun 13, 2025
4fe3a21
SFE serve:dev working
AmoebaChant Jun 13, 2025
03be63d
rimraf tidy up
AmoebaChant Jun 16, 2025
9362eb3
Debugger: Copied files over
AmoebaChant Jun 17, 2025
1b1117f
Readme and gitignore fixes
AmoebaChant Jun 17, 2025
d2792d9
Building, but CSS not there
AmoebaChant Jun 17, 2025
85cf747
Lint fixes
AmoebaChant Jun 17, 2025
b0be3b6
Start of SFE launch config - watch not working right, launch never ha…
AmoebaChant Jun 19, 2025
a573e35
Fixed browser extension
AmoebaChant Jun 19, 2025
5d26229
debugger md and lint fixes
AmoebaChant Jun 19, 2025
d23fc0d
SFE now refers to other packages by src instead of dist in vscode
AmoebaChant Jun 20, 2025
0c610f6
lint fixes for SFE
AmoebaChant Jun 20, 2025
b146037
Other SF packages now refer to each other by src rather than dist in …
AmoebaChant Jun 20, 2025
e84d74a
lint fixes
AmoebaChant Jun 20, 2025
df8e66d
Merge branch 'master' into create-smart-filters-packages
AmoebaChant Jun 20, 2025
f356b33
lock file update
AmoebaChant Jun 20, 2025
f5f2621
Merge branch 'master' into create-smart-filters-packages
AmoebaChant Jun 24, 2025
6706882
Put SF packages at the end of the TSC list
AmoebaChant Jun 24, 2025
18c32d1
Start of fix for glsl processing - have buildTools step call into SF …
AmoebaChant Jun 24, 2025
f4daa69
Revert buildTools build config
AmoebaChant Jun 24, 2025
48e7b0e
Hooking up to the buildShaders.ts and modifying it to allow one file …
AmoebaChant Jun 24, 2025
87a062b
SF core: add .js to imports and exports
AmoebaChant Jun 25, 2025
678459f
Fix SF editor control build - now it can resolve the blocks package
AmoebaChant Jun 25, 2025
9e6930f
Update SF blocks package to use .js extensions
AmoebaChant Jun 25, 2025
09713dc
Port: Add serialization support for outputTextureOptions
AmoebaChant Jun 25, 2025
b4f78be
Fixed some missing .js extensions
AmoebaChant Jun 25, 2025
34c04d3
Fix F5 to rely on a different task - now changes in all packages are …
AmoebaChant Jun 25, 2025
8c8f420
Fix paths in tsconfigs
AmoebaChant Jun 25, 2025
03560db
Add .js to tests
AmoebaChant Jun 26, 2025
8fdc8dd
Fix UTs
AmoebaChant Jun 26, 2025
b24106e
merge repair
AmoebaChant Jun 27, 2025
dfc4fd0
merge repair
AmoebaChant Jun 27, 2025
377730c
merge repair
AmoebaChant Jun 27, 2025
49fc27b
Merge repair (8.13.0)
AmoebaChant Jun 27, 2025
a384760
Merge repair (many checkins)
AmoebaChant Jun 27, 2025
41ff9fa
More merge repair
AmoebaChant Jun 27, 2025
02c967c
More merge repair
AmoebaChant Jun 27, 2025
d5a24ff
Revert changelog merge issue
AmoebaChant Jun 27, 2025
c9ba6ca
Merge branch 'master' into create-smart-filters-packages
AmoebaChant Jun 27, 2025
e59de97
merge repair
AmoebaChant Jun 27, 2025
d58fbb2
Revert change to unmark shared-ui-components as private
AmoebaChant Jun 27, 2025
2863438
lock update
AmoebaChant Jun 27, 2025
85fd0e1
Rename temp babylon packages used just by SF to lock to a stable vers…
AmoebaChant Jun 27, 2025
709618c
Removing special version of Babylon for SF - not building - core can'…
AmoebaChant Jun 27, 2025
aa51e39
build:tools now builds all SF dependencies
AmoebaChant Jun 30, 2025
c0aef87
Move install of build-tools to correct place in script sequence
AmoebaChant Jun 30, 2025
f6b8aae
Approach working using tsx
AmoebaChant Jun 30, 2025
178553e
Fix imports and configs for the other SF projects
AmoebaChant Jun 30, 2025
82e75a6
Fixed public blocks build
AmoebaChant Jun 30, 2025
eaa9aeb
Fix dependencies so public es6 SF and SFB builds work
AmoebaChant Jun 30, 2025
c348a01
Add SFE to dev build
AmoebaChant Jun 30, 2025
0685ac3
SFE: replace imports with aliases
AmoebaChant Jun 30, 2025
33d6510
Fix SFE build
AmoebaChant Jun 30, 2025
a077f0b
Fix debugger paths
AmoebaChant Jun 30, 2025
219a3b3
Remove path mappings from tsconfigs, just use the root set of mappings
AmoebaChant Jun 30, 2025
2b98e6d
Fix extension imports in SFE
AmoebaChant Jun 30, 2025
7dcc793
Merge branch 'master' into create-smart-filters-packages
AmoebaChant Jun 30, 2025
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
13 changes: 12 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,15 @@ test-results
playwright-report
playwright/.cache/
.nx
.DS_Store
.DS_Store

# generated Smart Filter block TS files
**/*.block.ts

# Smart Filters publish their src files - we copy them during the build - ignore them
packages/public/@babylonjs/smart-filters/src
packages/public/@babylonjs/smart-filters-blocks/src

# Smart Filters Editor files
packages/tools/smartFiltersEditor/www/scripts/**
packages/tools/smartFiltersEditor/www/index.html
14 changes: 14 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -253,6 +253,20 @@
"url": "http://localhost:1345",
"preLaunchTask": "Node Particle Editor Serve (Dev)"
},
{
"type": "msedge",
"request": "launch",
"name": "Smart Filter Editor development (Edge)",
"url": "http://localhost:1346",
"preLaunchTask": "Smart Filter Editor Serve (Dev)"
},
{
"type": "chrome",
"request": "launch",
"name": "Smart Filter Editor development (Chrome)",
"url": "http://localhost:1346",
"preLaunchTask": "Smart Filter Editor Serve (Dev)"
},
{
/*
Launch the playground to be use to test changes in dev packages
Expand Down
20 changes: 18 additions & 2 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,20 @@
{
"cSpell.words": ["babylonjs", "fluentui", "Pickable"],
"cSpell.words": [
"acumin",
"babylonjs",
"desaturated",
"fluentui"
"multilines",
"ONEDEF",
"Pickable",
"Premultiplies",
"Resizer",
"smartfilter",
"Spector",
"spritesheet",
"webgl",
"webgpu"
],
"files.exclude": {
"**/node_modules": true,
"**/dist": false,
Expand All @@ -11,7 +26,8 @@
"**/packages/dev/**/shadersWGSL/**/*.ts": true,
"**/*.fragment.ts": true,
"**/*.vertex.ts": true,
"**/*.compute.ts": true
"**/*.compute.ts": true,
"**/*.block.ts": true
},
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
Expand Down
18 changes: 18 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -503,6 +503,24 @@
},
"problemMatcher": ["$ts-webpack-watch", "$tslint-webpack-watch"]
},
{
"label": "Smart Filter Editor Serve (Dev)",
"type": "shell",
"command": "npm",
"dependsOn": "Watch all (Dev)",
"runOptions": {
"instanceLimit": 1
},
"options": {
"cwd": "${workspaceFolder}"
},
"args": ["run", "serve", "-w", "@tools/smart-filters-editor"],
"isBackground": true,
"presentation": {
"group": "serve"
},
"problemMatcher": ["$ts-webpack-watch", "$tslint-webpack-watch"]
},
{
"label": "VSM Serve for core (Dev)",
"type": "shell",
Expand Down
15 changes: 14 additions & 1 deletion jest.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,15 @@ import { JestConfigWithTsJest, pathsToModuleNameMapper } from "ts-jest";

const compilerOptions = JSON.parse(fs.readFileSync(path.resolve(__dirname, "./tsconfig.json"), "utf8")).compilerOptions;

const stripAnyJsExtensionFound = (mappings: any): any => {
const newMappings: any = {};
for (const key in mappings) {
// Remove the .js extension from the end if it is there
newMappings[key.replace("(.*)$", "(.*?)(?:\\.js)?$")] = mappings[key];
}
return newMappings;
};

const createProject = (type: string) => {
const setupFileLocation = path.resolve(".", `jest.${type}.setup.ts`);
const setupFilesAfterEnvLocation = path.resolve(".", `jest.${type}.setup.afterEnv.ts`);
Expand All @@ -20,7 +29,11 @@ const createProject = (type: string) => {
color: "yellow",
},
testRegex: [`/test/${type}/.*test\\.[tj]sx?$`],
moduleNameMapper: pathsToModuleNameMapper(compilerOptions.paths, { prefix: "<rootDir>/packages/" }) as any,
moduleNameMapper: {
...stripAnyJsExtensionFound(pathsToModuleNameMapper(compilerOptions.paths, { prefix: "<rootDir>/packages/" })),
// Remove .js from imports (for packages that include .js in the import paths)
"^(.+)\\.js$": "$1",
},
roots: [path.resolve(".")],
setupFilesAfterEnv: ["@alex_neo/jest-expect-message"],
transform: {
Expand Down
Loading