tjs-lang 0.8.6 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/CLAUDE.md +12 -4
  2. package/bin/docs.js +3 -2
  3. package/demo/docs.json +2 -2
  4. package/dist/experiments/ambient/probe.d.ts +52 -0
  5. package/dist/index.js +115 -171
  6. package/dist/index.js.map +4 -4
  7. package/dist/scripts/build-editors.d.ts +19 -0
  8. package/dist/src/css/dimensions.d.ts +23 -0
  9. package/dist/src/css/index.d.ts +85 -0
  10. package/dist/src/css/predicates.d.ts +38 -0
  11. package/dist/src/css/shorthands.d.ts +31 -0
  12. package/dist/src/css/style.d.ts +48 -0
  13. package/dist/src/lang/emitters/js.d.ts +9 -1
  14. package/dist/src/lang/index.d.ts +2 -2
  15. package/dist/src/lang/parser-transforms.d.ts +9 -5
  16. package/dist/src/lang/parser.d.ts +2 -0
  17. package/dist/src/lang/predicate.d.ts +60 -0
  18. package/dist/src/lang/transpiler.d.ts +3 -2
  19. package/dist/src/lang/types.d.ts +16 -0
  20. package/dist/src/schema/index.d.ts +12 -0
  21. package/dist/tjs-browser-from-ts.js +20 -20
  22. package/dist/tjs-browser-from-ts.js.map +3 -3
  23. package/dist/tjs-browser.js +100 -90
  24. package/dist/tjs-browser.js.map +4 -4
  25. package/dist/tjs-css.js +193 -0
  26. package/dist/tjs-css.js.map +7 -0
  27. package/dist/tjs-eval.js +43 -42
  28. package/dist/tjs-eval.js.map +4 -4
  29. package/dist/tjs-from-ts.js +13 -13
  30. package/dist/tjs-from-ts.js.map +2 -2
  31. package/dist/tjs-lang.js +102 -92
  32. package/dist/tjs-lang.js.map +4 -4
  33. package/dist/tjs-runtime.js +10 -0
  34. package/dist/tjs-runtime.js.map +7 -0
  35. package/dist/tjs-schema.js +6 -0
  36. package/dist/tjs-schema.js.map +7 -0
  37. package/dist/tjs-vm.js +55 -54
  38. package/dist/tjs-vm.js.map +4 -4
  39. package/docs/ambient-contracts.md +261 -0
  40. package/editors/ace/ajs-mode.js +214 -233
  41. package/editors/codemirror/ajs-language.js +1570 -233
  42. package/editors/editors-build.test.ts +29 -0
  43. package/editors/monaco/ajs-monarch.js +239 -195
  44. package/llms.txt +4 -0
  45. package/package.json +35 -4
  46. package/src/css/css.test.ts +122 -0
  47. package/src/css/dimensions.test.ts +112 -0
  48. package/src/css/dimensions.ts +146 -0
  49. package/src/css/index.ts +243 -0
  50. package/src/css/perf.bench.test.ts +109 -0
  51. package/src/css/predicates.ts +232 -0
  52. package/src/css/property-aware.test.ts +84 -0
  53. package/src/css/shorthands.test.ts +90 -0
  54. package/src/css/shorthands.ts +113 -0
  55. package/src/css/style.test.ts +125 -0
  56. package/src/css/style.ts +134 -0
  57. package/src/index-tsfree.test.ts +58 -0
  58. package/src/lang/bare-assignments.test.ts +48 -0
  59. package/src/lang/doc-comment-position.test.ts +32 -0
  60. package/src/lang/docs.ts +6 -2
  61. package/src/lang/emit-verified-predicate.test.ts +95 -0
  62. package/src/lang/emitters/dts.test.ts +31 -0
  63. package/src/lang/emitters/dts.ts +23 -4
  64. package/src/lang/emitters/from-ts.ts +4 -1
  65. package/src/lang/emitters/js.ts +33 -1
  66. package/src/lang/from-ts.test.ts +1 -1
  67. package/src/lang/generic-verified-predicate.test.ts +39 -0
  68. package/src/lang/index.ts +14 -5
  69. package/src/lang/parser-transforms.ts +120 -18
  70. package/src/lang/parser.ts +22 -6
  71. package/src/lang/predicate-evaluator.test.ts +49 -0
  72. package/src/lang/predicate-report.test.ts +54 -0
  73. package/src/lang/predicate.ts +268 -0
  74. package/src/lang/redos-lint.test.ts +81 -0
  75. package/src/lang/transpiler.ts +13 -0
  76. package/src/lang/type-verified-predicate.test.ts +83 -0
  77. package/src/lang/types.ts +17 -0
  78. package/src/lang/typescript-syntax.test.ts +2 -1
  79. package/src/schema/index.ts +62 -0
  80. package/src/schema/schema.test.ts +66 -0
  81. package/src/use-cases/bootstrap.test.ts +14 -4
@@ -14,6 +14,7 @@
14
14
  import { describe, it, expect } from 'bun:test'
15
15
  import { fromTS } from '../lang/emitters/from-ts'
16
16
  import { tjs } from '../lang'
17
+ import { emitVerifiedPredicate } from '../lang/predicate'
17
18
  import * as fs from 'fs'
18
19
  import * as path from 'path'
19
20
 
@@ -528,10 +529,16 @@ describe('Bootstrap Canary', () => {
528
529
  // Step 2: Execute the combined transpiled parser modules
529
530
  const execStart = performance.now()
530
531
 
531
- const parserModule = new Function(`
532
+ // parser-transforms.ts calls emitVerifiedPredicate (from predicate.ts, an
533
+ // acorn-backed engine module not in this parser-only bundle) — inject the
534
+ // native one so the self-hosted preprocess can verify Type/Generic predicates.
535
+ const parserModule = new Function(
536
+ 'emitVerifiedPredicate',
537
+ `
532
538
  ${combinedCode}
533
539
  return { preprocess };
534
- `)()
540
+ `
541
+ )(emitVerifiedPredicate)
535
542
  const execTime = performance.now() - execStart
536
543
 
537
544
  expect(typeof parserModule.preprocess).toBe('function')
@@ -639,10 +646,13 @@ describe('Bootstrap Canary', () => {
639
646
  combinedCode += stripped + '\n'
640
647
  }
641
648
 
642
- const bootstrappedParser = new Function(`
649
+ const bootstrappedParser = new Function(
650
+ 'emitVerifiedPredicate',
651
+ `
643
652
  ${combinedCode}
644
653
  return { preprocess };
645
- `)()
654
+ `
655
+ )(emitVerifiedPredicate)
646
656
 
647
657
  // Import native parser
648
658
  const nativeParser = require('../lang/parser')